Crate apex_solver

Crate apex_solver 

Source
Expand description

§Apex Solver

A comprehensive Rust library for nonlinear least squares optimization, specifically designed for computer vision applications such as bundle adjustment, graph-based pose optimization, and SLAM.

§Features

  • Multiple Optimization Algorithms: Gauss-Newton, Levenberg-Marquardt, and Dog Leg solvers
  • Flexible Linear Algebra Backend: Support for both Sparse Cholesky and Sparse QR decomposition
  • Configurable Solver System: Easy-to-use configuration system for algorithm and backend selection
  • High Performance: Built on the faer linear algebra library for optimal performance
  • Comprehensive Testing: Extensive test suite ensuring correctness and reliability

§Solver Types

  • Gauss-Newton: Fast convergence for well-conditioned problems
  • Levenberg-Marquardt: Robust algorithm with adaptive damping
  • Dog Leg: Trust region method combining Gauss-Newton and steepest descent

§Linear Algebra Backends

  • Sparse Cholesky: Efficient for positive definite systems
  • Sparse QR: More robust for rank-deficient or ill-conditioned systems

Re-exports§

pub use core::variable::Variable;
pub use error::ApexSolverError;
pub use error::ApexSolverResult;
pub use factors::BetweenFactor;
pub use factors::Factor;
pub use factors::PriorFactor;
pub use factors::ProjectionFactor;
pub use factors::camera::BundleAdjustment;
pub use factors::camera::CameraModel;
pub use factors::camera::DoubleSphereCamera;
pub use factors::camera::EucmCamera;
pub use factors::camera::FovCamera;
pub use factors::camera::KannalaBrandtCamera;
pub use factors::camera::LandmarksAndIntrinsics;
pub use factors::camera::OnlyIntrinsics;
pub use factors::camera::OnlyLandmarks;
pub use factors::camera::OnlyPose;
pub use factors::camera::OptimizeParams;
pub use factors::camera::PinholeCamera;
pub use factors::camera::PoseAndIntrinsics;
pub use factors::camera::RadTanCamera;
pub use factors::camera::SelfCalibration;
pub use factors::camera::UcmCamera;
pub use linalg::LinearSolverType;
pub use linalg::SparseCholeskySolver;
pub use linalg::SparseLinearSolver;
pub use linalg::SparseQRSolver;
pub use logger::init_logger;
pub use logger::init_logger_with_level;
pub use optimizer::LevenbergMarquardt;
pub use optimizer::OptObserver;
pub use optimizer::OptObserverVec;
pub use optimizer::OptimizerType;
pub use optimizer::Solver;
pub use optimizer::levenberg_marquardt::LevenbergMarquardtConfig;

Modules§

core
Core optimization components for the apex-solver library
error
Error types for the apex-solver library
factors
Factor implementations for graph-based optimization problems.
io
linalg
logger
Centralized logging configuration for apex-solver binaries and examples
manifold
Manifold representations for optimization on non-Euclidean spaces.
observers
Observer pattern for optimization monitoring.
optimizer
Optimization solvers for nonlinear least squares problems.