#![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::{
ClampInPlace, ComponentMulAssign, DenseMatrix, DenseMatrixFromFn, Dot, GramMatrix,
LinearSolveError, LinearSolveLstsq, LinearSolveSpd, MatTransposeVec, MatVec,
MatrixFromDiagonal, MatrixIdentity, NegInPlace, NormInfinity, NormSquared,
SampleStandardNormal, SampleUniformBox, Scalar, ScaleInPlace, ScaledAdd, SymmetricEigen,
SymmetricEigenError, VectorIndex, VectorLen,
};
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, NllsState, PopulationState, ScalarState, 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, GoldenSection, GradientDescent,
LevenbergMarquardt, MaLsChCma, MaLsChState, MemeticInner, NelderMead, ProjectedGradientDescent,
RandomSearch, Sgd, Ssga, Trf,
};