#![cfg_attr(docsrs, feature(doc_cfg), doc(auto_cfg))]
#![deny(missing_docs)]
#![deny(rustdoc::broken_intra_doc_links)]
pub mod core;
pub mod line_search;
#[cfg(feature = "problems")]
pub mod problems;
pub mod solver;
pub use crate::core::augmented_lagrangian::AugmentedLagrangian;
pub use crate::core::barrier::LogBarrier;
pub use crate::core::constraint::{
BoxConstraints, LinearEqualityConstraints, LinearInequalityConstraints,
};
pub use crate::core::executor::{Executor, OptimizationResult, StepOutcome, Stepper, run_loop};
pub use crate::core::inner::{InnerExecutor, WarmStart};
pub use crate::core::math::{
AddDiagonalInPlace, AddDiagonalVectorInPlace, BoxAffineScaling, ClampInPlace, DenseMatrix,
DenseMatrixFromFn, Dot, GramMatrix, LinearSolveError, LinearSolveSpd, MatTransposeVec, MatVec,
MaxDiagonal, NegInPlace, NormInfinity, NormSquared, SampleUniformBox, Scalar, ScaledAdd,
VectorIndex,
};
pub use crate::core::numdiff::{
FiniteDiff, Method, central_difference_gradient, central_difference_hessian,
central_difference_jacobian, forward_difference_gradient, forward_difference_hessian,
forward_difference_jacobian,
};
pub use crate::core::observer::{Observe, ObserverMode};
pub use crate::core::problem::{
CostFunction, EvalCounts, Gradient, Hessian, Jacobian, MiniBatchGradient, Problem, Residual,
};
pub use crate::core::solver::Solver;
#[cfg(feature = "faer")]
pub use crate::core::state::FaerQuasiNewtonState;
#[cfg(feature = "nalgebra")]
pub use crate::core::state::NalgebraQuasiNewtonState;
pub use crate::core::state::{
BasicPopulationState, BasicSimplexState, BasicState, CmaEsState, CountsMirror, GradientState,
IntoInitialSimplex, LbfgsState, PopulationState, SimplexState, State,
};
pub use crate::core::state::{DenseQuasiNewtonState, QuasiNewtonState};
pub use crate::core::termination::{
CmaEsTolerance, CostTolerance, GradientTolerance, MaxCostEvals, MaxGradientEvals, MaxIter,
MaxTime, NoImprovement, ParamTolerance, ProjectedGradientTolerance, RelativeCostTolerance,
RelativeGradientTolerance, RelativeParamTolerance, SimplexTolerance, TargetCost,
TerminationCriterion, TerminationReason,
};
pub use crate::line_search::{Backtracking, Constant, LineSearch, MoreThuente, Wolfe};
#[allow(deprecated)]
pub use crate::solver::BFGS;
pub use crate::solver::Bfgs;
#[allow(deprecated)]
pub use crate::solver::lbfgs::{LBFGS, LBFGSB};
pub use crate::solver::lbfgs::{Lbfgs, Lbfgsb};
pub use crate::solver::{
AugmentedLagrangianMethod, BarrierMethod, BoundedCmaEs, BoundedCmaInject, Brent, ClosureInner,
CmaEs, CmaInject, De, DeInject, GaussNewton, GradientDescent, LevenbergMarquardt, MaLsChCma,
MaLsChState, MemeticInner, NelderMead, ProjectedGradientDescent, RandomSearch, Sgd, Ssga, Trf,
};