#![cfg_attr(docsrs, feature(doc_cfg), doc(auto_cfg))]
#![deny(missing_docs)]
#![deny(rustdoc::broken_intra_doc_links)]
mod backend_macros;
#[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 = "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(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 bracket;
pub mod core;
pub mod line_search;
#[cfg(feature = "problems")]
pub mod problems;
pub mod root;
pub mod solver;
pub use crate::bracket::{
BracketError, BracketTerminationReason, MinimumBracketResult,
MinimumBracketer, RootBracketResult, RootBracketer,
};
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::{
BoundSide, BoxBounds, Constrained, ConstraintAxis, ConstraintBlock,
ConstraintDescription, ConstraintError, ConstraintJacobian,
ConstraintSolveError, Constraints, LinearBlock, LinearBlocks, NoBounds,
NoConstraints, NoLinearBlock, NoLinearConstraints, NoNonlinearBlock,
NoNonlinearConstraints, NonlinearBlock, NonlinearBlocks,
NonlinearEqualityValues, NonlinearInequalityValues, ProblemConstraints,
RelaxedInner, SamplingBounds, SamplingDomain,
};
pub use crate::core::convergence::{
ConfiguredSolver, NativeConvergenceDiagnostics, NativeConvergenceTest,
};
pub use crate::core::executor::{
CancellationToken, Executor, OptimizationResult,
OptimizationResultWithSolver, StepOutcome, Stepper, run_loop_with_control,
};
pub use crate::core::inner::{
InitialState, InnerExecutor, ResumableInner, WarmStart,
};
pub use crate::core::least_squares::{
ArctanLoss, CauchyLoss, HuberLoss, LossEvaluation, LossFunction,
RobustLeastSquares, SoftL1Loss, SquaredLoss,
};
pub use crate::core::math::{
AddDiagonalVectorInPlace, ClampInPlace, ComponentMulAssign, DenseBackend,
DenseMatrix, DenseMatrixFromFn, Dot, FactorizePivotedQr,
GeneralRankOneUpdate, GramMatrix, LinearSolveError, LinearSolveLstsq,
LinearSolveSpd, MatTransposeVec, MatTransposeVecInto, MatVec, MatVecInto,
MatrixFinite, MatrixFromDiagonal, MatrixIdentity, MatrixIndex, MatrixShape,
MaxDiagonal, NegInPlace, NormInfinity, NormSquared, QrFactorization,
QrSolveError, RegularizedQrSolve, SampleStandardNormal, SampleUniformBox,
Scalar, ScaleInPlace, ScaleRowsInPlace, ScaledAdd, SymmetricEigen,
SymmetricEigenError, VectorIndex, VectorLen,
};
pub use crate::core::numdiff::{
BoundedFiniteDiff, DerivativeCheckError, DerivativeCheckReport,
DerivativeChecker, DerivativeComparison, DerivativeSource, 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, ObservationEvent, Observe, ObserveSolver, ObserverMode, Report,
};
pub use crate::core::problem::{
CostFunction, EvalCounts, EvaluationKind, Gradient, Hessian,
HessianProduct, Jacobian, MiniBatchGradient, Problem, Residual,
};
pub use crate::core::run_control::RunControl;
pub use crate::core::solver::{Solver, SolverStep};
pub use crate::core::state::{
AcceptanceState, ConstraintViolationState, CountsMirror,
EvaluatedGradientState, EvaluatedState, ExactResumeState, FirstOrderState,
GradientDimensionMismatch, GradientState, IncumbentRef, IncumbentState,
IntoInitialSimplex, MeshState, ObjectiveIncumbentState, PointState,
PopulationProgress, PopulationShapeError, PopulationState, ProposalState,
RawEvaluationState, RhoState, SelectedFirstOrderState, SelectedState,
SimplexProgress, SimplexShapeError, SimplexState, State, ViolationMeasure,
ViolationReport, ViolationScaling, ViolationTransformation,
};
pub use crate::core::termination::{
ApplicationStop, BinaryValue, Convergence, ConvergenceCriterion,
ConvergenceEvidence, ConvergenceTest, ExecutionLimit, Measurement,
NumericalFailure, PartialResultPolicy, Stall, Termination, TerminationCode,
TerminationReport, TerminationStage, Threshold,
};
pub use crate::line_search::{
Backtracking, Constant, HagerZhang, LineSearch, LineSearchBounds,
LineSearchEvaluation, LineSearchOutcome, LineSearchResult, MoreThuente,
Wolfe,
};
pub use crate::root::{
BrentRoot, BrentRootError, HalleyRoot, NewtonRoot, RootError, RootResult,
RootTerminationReason, SecantRoot, Toms748Root,
};
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, BoundedLevenbergMarquardt, Brent,
BrentDerivative, CgUpdate, ClosureInner, CmaEs, CmaInject, Cobyla, De,
DeCrossover, DeInject, DeMutation, Direct, GaussNewton, Gbnm,
GlobalBestPso, GoldenSection, GradientDescent, LevenbergMarquardt,
LevenbergMarquardtQr, Lincoa, LmDamping, MaLsCh, MaLsChCma, MaLsChSw, Mads,
MemeticInner, Metropolis, Neighbor, NelderMead, Newuoa, NonlinearCg,
ProjectedGradientDescent, PsoBoundaryHandling, PsoVelocityLimit,
RandomDisplacement, RandomSearch, Reannealing, Sgd, SimulatedAnnealing,
Slsqp, SlsqpFailure, SolisWets, Ssga, StepTaker, TemperatureSchedule,
TrustRegionReflective,
};