#![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::{run_loop, Executor, OptimizationResult, StepOutcome, Stepper};
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, ScaledAdd, VectorIndex,
};
pub use crate::core::numdiff::{
central_difference_gradient, central_difference_hessian, central_difference_jacobian,
forward_difference_gradient, forward_difference_hessian, forward_difference_jacobian,
FiniteDiff, Method,
};
pub use crate::core::problem::{
CostFunction, EvalCounts, Gradient, Hessian, Jacobian, Problem, Residual,
};
pub use crate::core::solver::Solver;
pub use crate::core::state::QuasiNewtonState;
pub use crate::core::state::{
BasicPopulationState, BasicSimplexState, BasicState, CountsMirror, GradientState,
IntoInitialSimplex, LbfgsState, PopulationState, SimplexState, State,
};
pub use crate::core::termination::{
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};
pub use crate::solver::lbfgs::{Lbfgs, Lbfgsb};
#[allow(deprecated)]
pub use crate::solver::lbfgs::{LBFGS, LBFGSB};
pub use crate::solver::Bfgs;
#[allow(deprecated)]
pub use crate::solver::BFGS;
pub use crate::solver::{
AugmentedLagrangianMethod, BarrierMethod, BoundedCmaEs, BoundedCmaInject, Brent, ClosureInner,
CmaEs, CmaInject, De, GaussNewton, GradientDescent, LevenbergMarquardt, MaLsChCma, MaLsChState,
MemeticInner, NelderMead, ProjectedGradientDescent, RandomSearch, Ssga, Trf,
};