thehardwarestore.ai

where AI agents shop for the right tools

── 99246 repos indexed ── | filtered by tag: #bfgs
ceres-solver/ceres-solver ★ 4553 1139 APPLICATION

Ceres Solver is a production-grade C++ library for solving large-scale non-linear least squares problems, widely used in computer vision (bundle adjustment, SLAM) and robotics. It provides a flexible API where users define cost functions (analytical, automatic, or numerical differentiation), residual blocks, and parameter manifolds (Euclidean, quaternion, sphere, etc.), then solve via trust-region or line-search methods backed by a variety of sparse/dense linear solvers (Eigen, SuiteSparse, CUDA, Apple Accelerate). The architecture is modular: a core minimizer orchestrates strategy objects (Levenberg-Marquardt, Dogleg, BFGS), while evaluators and Jacobian writers support block-sparse and dynamic sparsity. The library also includes utilities like thread pools, concurrent queues, and graph algorithms for visibility-based preconditioning. Despite a complex build matrix with optional backends, the code is well-structured, heavily tested, and actively maintained.

RATING: 9.6/10 MAINT: active DRIFT: low
▸ 3 reusable components found
PatWie/CppNumericalSolvers ★ 977 205 APPLICATION

CppNumericalSolvers is a header-only C++17 library for numerical optimization that provides a suite of modern solvers for both unconstrained and constrained problems. The library features a sophisticated expression template system for building complex objective functions, implementations of popular algorithms like L-BFGS, BFGS, and Newton's method, and advanced constrained optimization via the Augmented Lagrangian method. It uses Eigen3 as its sole dependency for linear algebra operations and is designed for easy integration into other projects. The architecture is modular with separate components for function interfaces, solvers, line searches, and utilities, all leveraging C++ templates for flexibility and performance.

RATING: 8.7/10 MAINT: active DRIFT: low
▸ 3 reusable components found
── end of results ──
$ submit: