Skip to main content

numra_optim/
lib.rs

1//! Optimization algorithms for Numra.
2//!
3//! # Algorithms
4//!
5//! - [`Bfgs`] -- BFGS quasi-Newton method (unconstrained)
6//! - [`Lbfgs`] -- L-BFGS limited-memory quasi-Newton method (unconstrained)
7//! - [`lm_minimize`] -- Levenberg-Marquardt nonlinear least squares
8//! - [`lbfgsb_minimize`] -- L-BFGS-B bound-constrained optimizer
9//! - [`augmented_lagrangian_minimize`] -- Augmented Lagrangian constrained optimizer
10//! - [`OptimProblem`] -- Declarative problem builder with auto solver selection
11//!
12//! Author: Moussa Leblouba
13//! Date: 5 March 2026
14//! Modified: 2 May 2026
15
16pub mod augmented_lagrangian;
17pub mod auto;
18pub mod bfgs;
19pub mod cmaes;
20pub mod derivative_free;
21pub mod error;
22pub mod global;
23pub mod lbfgs;
24pub mod lbfgsb;
25pub mod levenberg_marquardt;
26pub mod lp;
27pub mod milp;
28pub mod multiobjective;
29pub mod optim_sensitivity;
30pub mod problem;
31pub mod qp;
32pub mod robust;
33pub mod sqp;
34pub mod stochastic;
35pub mod types;
36
37pub use augmented_lagrangian::{augmented_lagrangian_minimize, AugLagOptions};
38pub use auto::SolverChoice;
39pub use bfgs::{bfgs_minimize, Bfgs};
40pub use cmaes::{cmaes_minimize, CmaEsOptions};
41pub use derivative_free::{nelder_mead, powell, NelderMeadOptions, PowellOptions};
42pub use error::OptimError;
43pub use global::{de_minimize, DEOptions};
44pub use lbfgs::{lbfgs_minimize, Lbfgs, LbfgsOptions};
45pub use lbfgsb::{lbfgsb_minimize, LbfgsBOptions};
46pub use levenberg_marquardt::{lm_minimize, LmOptions};
47pub use lp::{simplex_solve, LPOptions};
48pub use milp::{milp_solve, MILPOptions};
49pub use multiobjective::{nsga2_optimize, NsgaIIOptions};
50pub use optim_sensitivity::compute_param_sensitivity;
51pub use problem::{
52    Constraint, ConstraintKind, LinearConstraint, ObjectiveKind, OptimProblem, ProblemHint, VarType,
53};
54pub use qp::{active_set_qp_solve, QPOptions};
55pub use robust::{RobustOptions, RobustProblem, RobustResult, UncertainParam};
56pub use sqp::{sqp_minimize, SqpOptions};
57pub use stochastic::{StochasticOptions, StochasticParam, StochasticProblem, StochasticResult};
58pub use types::{
59    IterationRecord, OptimOptions, OptimResult, OptimStatus, ParamSensitivity, ParetoPoint,
60    ParetoResult,
61};