#![cfg_attr(docsrs, feature(doc_cfg), doc(auto_cfg))]
#![deny(missing_docs)]
#![deny(rustdoc::broken_intra_doc_links)]
#[cfg(feature = "nalgebra_v0_35")]
extern crate nalgebra;
#[cfg(all(
not(any(
feature = "nalgebra_v0_35",
feature = "nalgebra_v0_34",
feature = "nalgebra_v0_33"
)),
feature = "nalgebra_v0_32"
))]
extern crate nalgebra_0_32 as nalgebra;
#[cfg(all(
not(any(feature = "nalgebra_v0_35", feature = "nalgebra_v0_34")),
feature = "nalgebra_v0_33"
))]
extern crate nalgebra_0_33 as nalgebra;
#[cfg(all(not(feature = "nalgebra_v0_35"), feature = "nalgebra_v0_34"))]
extern crate nalgebra_0_34 as nalgebra;
#[cfg(feature = "nalgebra_v0_35")]
extern crate nalgebra_sparse;
#[cfg(all(
not(any(feature = "nalgebra_v0_35", feature = "nalgebra_v0_34")),
feature = "nalgebra_v0_33"
))]
extern crate nalgebra_sparse_0_10 as nalgebra_sparse;
#[cfg(all(not(feature = "nalgebra_v0_35"), feature = "nalgebra_v0_34"))]
extern crate nalgebra_sparse_0_11 as nalgebra_sparse;
#[cfg(all(
not(any(
feature = "nalgebra_v0_35",
feature = "nalgebra_v0_34",
feature = "nalgebra_v0_33"
)),
feature = "nalgebra_v0_32"
))]
extern crate nalgebra_sparse_0_9 as nalgebra_sparse;
#[cfg(feature = "nalgebra_v0_35-lapack")]
extern crate nalgebra_lapack;
#[cfg(all(
not(any(
feature = "nalgebra_v0_35",
feature = "nalgebra_v0_34",
feature = "nalgebra_v0_33"
)),
feature = "nalgebra_v0_32-lapack"
))]
extern crate nalgebra_lapack_0_24 as nalgebra_lapack;
#[cfg(all(
not(any(feature = "nalgebra_v0_35", feature = "nalgebra_v0_34")),
feature = "nalgebra_v0_33-lapack"
))]
extern crate nalgebra_lapack_0_25 as nalgebra_lapack;
#[cfg(all(not(feature = "nalgebra_v0_35"), feature = "nalgebra_v0_34-lapack"))]
extern crate nalgebra_lapack_0_27 as nalgebra_lapack;
#[cfg(feature = "ndarray_v0_17")]
extern crate ndarray;
#[cfg(all(
not(any(feature = "ndarray_v0_17", feature = "ndarray_v0_16")),
feature = "ndarray_v0_15"
))]
extern crate ndarray_0_15 as ndarray;
#[cfg(all(not(feature = "ndarray_v0_17"), feature = "ndarray_v0_16"))]
extern crate ndarray_0_16 as ndarray;
#[cfg(feature = "faer_v0_24")]
extern crate faer;
#[cfg(all(
not(any(feature = "faer_v0_24", feature = "faer_v0_23")),
feature = "faer_v0_22"
))]
extern crate faer_0_22 as faer;
#[cfg(all(not(feature = "faer_v0_24"), feature = "faer_v0_23"))]
extern crate faer_0_23 as faer;
#[cfg(feature = "faer_v0_24")]
extern crate faer_traits;
#[cfg(all(
not(any(feature = "faer_v0_24", feature = "faer_v0_23")),
feature = "faer_v0_22"
))]
extern crate faer_traits_0_22 as faer_traits;
#[cfg(all(not(feature = "faer_v0_24"), feature = "faer_v0_23"))]
extern crate faer_traits_0_23 as faer_traits;
#[cfg(all(
feature = "nalgebra_all",
not(any(
feature = "nalgebra_v0_32",
feature = "nalgebra_v0_33",
feature = "nalgebra_v0_34",
feature = "nalgebra_v0_35"
))
))]
compile_error!("`nalgebra_all` is internal; enable a `nalgebra_v*` feature");
#[cfg(all(
feature = "ndarray_all",
not(any(
feature = "ndarray_v0_15",
feature = "ndarray_v0_16",
feature = "ndarray_v0_17"
))
))]
compile_error!("`ndarray_all` is internal; enable an `ndarray_v*` feature");
#[cfg(all(
feature = "faer_all",
not(any(
feature = "faer_v0_22",
feature = "faer_v0_23",
feature = "faer_v0_24"
))
))]
compile_error!("`faer_all` is internal; enable a `faer_v*` feature");
pub mod core;
pub mod line_search;
#[cfg(feature = "problems")]
pub mod problems;
pub mod root;
pub mod solver;
pub use crate::core::augmented_lagrangian::AugmentedLagrangian;
pub use crate::core::barrier::LogBarrier;
pub use crate::core::checkpoint::{CheckpointSink, ExactCheckpoint};
#[cfg(all(feature = "serde", not(target_arch = "wasm32")))]
pub use crate::core::checkpoint::{
CheckpointStatus, CheckpointWriteError, ExactCheckpointWriter,
read_exact_checkpoint,
};
pub use crate::core::constraint::{
BoxConstraints, LinearConstraints, LinearEqualityConstraints,
LinearInequalityConstraints, NonlinearInequalityConstraints,
};
pub use crate::core::executor::{
CancellationToken, Executor, OptimizationResult, StepOutcome, Stepper,
run_loop,
};
pub use crate::core::inner::{
InitialState, InnerExecutor, ResumableInner, WarmStart,
};
pub use crate::core::math::{
AddDiagonalVectorInPlace, ClampInPlace, ComponentMulAssign, DenseMatrix,
DenseMatrixFromFn, Dot, GramMatrix, LinearSolveError, LinearSolveLstsq,
LinearSolveSpd, MatTransposeVec, MatVec, MatrixFromDiagonal,
MatrixIdentity, MaxDiagonal, 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_hessian_product,
central_difference_jacobian, forward_difference_gradient,
forward_difference_hessian, forward_difference_hessian_product,
forward_difference_jacobian,
};
#[cfg(all(feature = "serde", not(target_arch = "wasm32")))]
pub use crate::core::observer::{CheckpointWriter, read_checkpoint};
pub use crate::core::observer::{History, Observe, ObserverMode, Report};
pub use crate::core::problem::{
CostFunction, EvalCounts, Gradient, Hessian, HessianProduct, Jacobian,
MiniBatchGradient, Problem, Residual,
};
pub use crate::core::solver::Solver;
#[cfg(feature = "faer_all")]
pub use crate::core::state::FaerQuasiNewtonState;
#[cfg(feature = "nalgebra_all")]
pub use crate::core::state::NalgebraQuasiNewtonState;
#[cfg(feature = "ndarray_all")]
pub use crate::core::state::NdarrayQuasiNewtonState;
pub use crate::core::state::{
AcceptanceState, BasicPopulationState, BasicSimplexState, BasicState,
BobyqaState, CmaEsState, CobylaState, ConstrainedMadsState, CountsMirror,
ExactResumeState, GlobalBestPsoState, GradientState, IntoInitialSimplex,
LbfgsState, LincoaState, MadsState, MeshState, NewuoaState, NllsState,
PopulationState, RhoState, ScalarGradientState, ScalarState, SimplexState,
SimulatedAnnealingState, SolisWetsState, State,
};
pub use crate::core::state::{DenseQuasiNewtonState, QuasiNewtonState};
pub use crate::core::termination::{
CmaEsTolerance, CostTolerance, GradientTolerance, MaxCostEvals,
MaxGradientEvals, MaxIter, MaxTime, MeshTolerance, NoAcceptance,
NoImprovement, ParamTolerance, ProjectedGradientTolerance,
RelativeCostTolerance, RelativeGradientTolerance, RelativeParamTolerance,
RhoTolerance, SimplexTolerance, TargetCost, TerminationCriterion,
TerminationReason,
};
pub use crate::line_search::{
Backtracking, Constant, HagerZhang, LineSearch, LineSearchOutcome,
MoreThuente, Wolfe,
};
pub use crate::root::{
BrentRoot, BrentRootError, RootResult, RootTerminationReason,
};
pub use crate::solver::Bfgs;
pub use crate::solver::lbfgs::{Lbfgs, Lbfgsb};
pub use crate::solver::trust_region::{
CauchyPoint, Dogleg, ExactHessian, MatrixFree, MoreSorensen, Steihaug,
TrustRegion,
};
pub use crate::solver::{
AcceptanceTest, AugmentedLagrangianMethod, BarrierMethod, BasinHopping,
Bobyqa, BoundedCmaEs, BoundedCmaInject, Brent, BrentDerivative,
ClosureInner, CmaEs, CmaInject, Cobyla, De, DeInject, GaussNewton,
GlobalBestPso, GoldenSection, GradientDescent, LevenbergMarquardt, Lincoa,
MaLsCh, MaLsChCma, MaLsChGenericState, MaLsChState, MaLsChSw,
MaLsChSwState, Mads, MemeticInner, Metropolis, Neighbor, NelderMead,
Newuoa, ProjectedGradientDescent, PsoBoundaryHandling, PsoVelocityLimit,
RandomDisplacement, RandomSearch, Reannealing, Sgd, SimulatedAnnealing,
SolisWets, Ssga, StepTaker, TemperatureSchedule, Trf,
};