Skip to main content

scirs2_optimize/second_order/
mod.rs

1//! Second-order stochastic optimization algorithms.
2//!
3//! This module provides second-order quasi-Newton methods suitable for both
4//! deterministic and stochastic optimization:
5//!
6//! - **L-BFGS-B** (`lbfgsb`): Limited-memory BFGS with box constraints,
7//!   featuring strong Wolfe line search and Cauchy-point computation.
8//! - **SR1** (`sr1`): Symmetric rank-1 quasi-Newton with trust-region
9//!   globalization and limited-memory compact representation.
10//! - **S-L-BFGS** (`slbfgs`): Stochastic L-BFGS combining mini-batch
11//!   gradients, curvature pairs from large batches, and optional SVRG
12//!   variance reduction.
13//!
14//! ## References
15//!
16//! - Byrd et al. (1995). "A limited memory algorithm for bound constrained
17//!   optimization." SIAM J. Sci. Comput.
18//! - Byrd, Khalfan & Schnabel (1994). "Analysis of a symmetric rank-one
19//!   trust region method." SIAM J. Optim.
20//! - Moritz, Nishihara & Jordan (2016). "A linearly-convergent stochastic
21//!   L-BFGS algorithm." AISTATS.
22
23pub mod lbfgsb;
24pub mod slbfgs;
25pub mod sr1;
26pub mod types;
27
28// Re-exports for convenient access
29pub use lbfgsb::{
30    cauchy_point, hv_product, project, projected_grad_norm, wolfe_line_search, LbfgsBOptimizer,
31};
32pub use slbfgs::{Lcg, SlbfgsOptimizer};
33pub use sr1::{lsr1_hv_product, sr1_update_dense, trust_region_step, Sr1Optimizer};
34pub use types::{HessianApprox, LbfgsBConfig, OptResult, SlbfgsConfig, Sr1Config};