#[cfg(feature = "least-squares-covariance")]
pub mod covariance;
mod error;
#[cfg(feature = "least-squares-nonlinear-expert")]
mod expert;
#[cfg(feature = "least-squares-nonlinear-easy")]
mod solver;
pub mod linear;
pub mod nonlinear;
#[cfg(feature = "least-squares-covariance")]
pub use covariance::{
CovarianceEligibility, CovarianceError, CovarianceOptions, CovarianceResult, CovarianceScaling,
CovarianceStatus, estimate_covariance, estimate_covariance_f32,
estimate_covariance_finite_difference, estimate_covariance_finite_difference_f32,
};
#[cfg(all(
feature = "least-squares-covariance",
feature = "least-squares-nonlinear-expert"
))]
pub use covariance::{covariance_from_expert_fit, covariance_from_expert_fit_f32};
pub use error::LeastSquaresError;
#[cfg(feature = "least-squares-nonlinear-expert")]
pub use expert::{
ExpertLeastSquaresOptions, ExpertLeastSquaresResult, LeastSquaresScaling, least_squares_expert,
least_squares_expert_f32, least_squares_with_jacobian, least_squares_with_jacobian_f32,
};
#[cfg(feature = "least-squares-nonlinear-easy")]
pub use solver::{LeastSquaresOptions, LeastSquaresResult, least_squares, least_squares_f32};
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub enum LeastSquaresStatus {
ConvergedResidual,
ConvergedParameters,
ConvergedResidualAndParameters,
ConvergedOrthogonality,
MaximumEvaluations,
ResidualToleranceTooSmall,
ParameterToleranceTooSmall,
GradientToleranceTooSmall,
}