For computation and optimization, the strongest matches are ceres-solver/ceres-solver (Ceres Solver is a C++ library focused on non-linear), jax-ml/jax (This project is a numerical computing and automatic differentiation) and julianlsolvers/optim.jl (Optim). juliasymbolics/symbolics.jl and davisking/dlib round out the shortlist. Each is ranked by relevance to your query, popularity and recent activity.
Hand-picked open-source mathematical optimization engines. Compare top solvers by speed, features, and activity to find the right fit.
Ceres Solver is a C++ library for numerical optimization, specializing in non-linear least squares and unconstrained optimization problems. It serves as a framework for automatic differentiation and robust curve fitting, providing tools to solve large-scale mathematical models. The library is distinguished by its bundle adjustment capabilities, which exploit sparse matrix structures to refine 3D scene points and camera parameters. It utilizes dual-number automatic differentiation to compute derivatives of cost functions, removing the need for manual Jacobian derivation. The project covers a
Ceres Solver is a C++ library focused on non-linear least squares and numerical optimization that provides automatic differentiation and sparse matrix support, though it lacks linear programming and a native Python interface out of the box.
This project is a high-performance numerical computing library designed for large-scale scientific and machine learning workloads. It functions as an automatic differentiation framework and a just-in-time compilation engine, transforming high-level Python code into optimized machine instructions. By enforcing pure functional programming patterns and immutable array semantics, the library ensures that mathematical functions remain compatible with automated graph transformations and symbolic differentiation. The platform distinguishes itself through its distributed array computing capabilities,
This project is a numerical computing and automatic differentiation library for Python that supports high-performance gradient-based optimization, making it an ideal framework for mathematical modeling.
Optim.jl is a numerical optimization library for the Julia programming language, providing a comprehensive framework for minimizing or maximizing univariate and multivariate functions. It offers a suite of tools for solving both constrained and unconstrained mathematical problems, utilizing a variety of gradient-based, derivative-free, and stochastic search methods. The library distinguishes itself through a modular architecture that leverages language-level multiple dispatch to automatically select efficient solvers based on input data types and objective function properties. It supports com
Optim.jl is a numerical optimization library written in Julia that provides comprehensive tools for constrained and unconstrained mathematical problems, though it lacks a Python interface and built-in linear programming solvers.
Symbolics.jl is a foundational framework for symbolic mathematics, automated differentiation, and scientific compilation within the Julia programming language. It provides a comprehensive system for algebraic manipulation, expression simplification, and the construction of mathematical models, enabling users to represent complex physical and chemical systems as symbolic equations. The library distinguishes itself through a source-to-source compilation engine that translates high-level symbolic representations directly into optimized, parallelized, and hardware-specific numerical code. By util
Symbolics.jl is a mathematical modeling and symbolic computation framework for Julia that supports automatic differentiation, but it lacks the built-in linear programming, convex optimization, and Python interface requested by the visitor.
dlib is a C++ machine learning toolkit and data analysis framework. It provides a collection of algorithms and utilities for building predictive modeling applications and performing statistical analysis on large datasets within native C++ environments. The project functions as a binding library that wraps low-level C++ machine learning algorithms into high-level Python scripting interfaces. This allows for the integration of high-performance native implementations with Python for machine learning development. The framework covers the implementation of predictive models, the execution of mach
This C++ toolkit with Python bindings provides robust numerical optimization algorithms and mathematical modeling tools, fitting the computational needs well despite a primary focus on machine learning.
DeepXDE is a scientific machine learning library and deep learning PDE solver used to compute solutions for forward and inverse ordinary, partial, and integro-differential equations. It functions as a physics-informed neural network library that embeds physical laws and boundary conditions directly into the neural network loss function. The project provides a deep operator network framework for learning operator mappings that approximate relationships between functions in multiphysics problems. It is implemented as a multi-backend tensor library, allowing the system to switch between differen
DeepXDE is a scientific machine learning library focused on physics-informed neural networks and solving differential equations with Python support, fitting the numerical computation domain well despite leaning toward neural solvers rather than traditional operations research.
This project is a comprehensive library for numerical linear algebra and scientific computing, designed to provide optimized routines for matrix decomposition, statistical modeling, and high-performance data analysis. It serves as both a toolkit for solving complex linear systems and an educational resource for understanding the fundamental algorithms behind matrix factorizations and numerical solvers. The library distinguishes itself through a focus on randomized numerical linear algebra, utilizing probabilistic algorithms and approximate methods to perform dimensionality reduction and matri
This project is a numerical linear algebra toolkit providing educational and computational routines for scientific computing, though it is structured as course notebooks rather than a standard installable optimisation framework.
PyTorch is a machine learning framework centered on a GPU-ready tensor library that supports multi-dimensional array operations across both CPU and accelerator hardware. It provides a foundational infrastructure for mathematical computation and dynamic neural network construction, utilizing a tape-based automatic differentiation system that allows for flexible, non-static graph execution. The framework is designed for deep integration with Python, enabling natural usage alongside standard scientific computing ecosystems. It distinguishes itself through a comprehensive distributed training sui
PyTorch provides a foundational GPU-accelerated tensor library with automatic differentiation and deep Python integration, though it is primarily designed for machine learning rather than general operations research or linear programming.
Nevergrad is a gradient-free optimization library and hyperparameter optimization framework designed to find the minimum of objective functions without using derivatives. It serves as an asynchronous optimization engine that decouples parameter suggestions from result reporting to support parallel function evaluations. The project specializes in multi-objective optimization to identify Pareto fronts for competing goals and provides a suite for benchmarking the performance and convergence of different optimization routines. It supports black-box system optimization, enabling the tuning of exte
Nevergrad is a Python-based optimization framework for black-box and hyperparameter tuning, though it focuses on gradient-free methods rather than gradient descent or linear programming.
Taichi is a domain-specific programming language embedded in Python designed for high-performance numerical computing and computer graphics. It functions as a parallel compiler that translates high-level mathematical expressions into optimized machine instructions, enabling developers to write compute-intensive algorithms that execute across diverse hardware architectures, including CPUs, GPUs, and specialized accelerators. The project distinguishes itself through a hardware-agnostic execution layer that maps parallel operations to multiple backends such as CUDA, Metal, and Vulkan. By utilizi
Taichi provides a Python-embedded domain-specific language for high-performance numerical computing and differentiable programming with sparse matrix support, making it well-suited for mathematical modeling despite not being a traditional operations research solver.
OR-Tools is a software suite for combinatorial optimization, constraint programming, and mathematical modeling. It provides a framework for defining complex problems involving variables and logical constraints, enabling the systematic search for feasible or optimal solutions. The project features a high-performance core engine written in C++ that utilizes branch and bound search and local search metaheuristics to navigate large solution spaces. A language-agnostic wrapper layer allows these optimization capabilities to be accessed through idiomatic interfaces in multiple high-level programmin
OR-Tools is a software suite and framework for combinatorial optimization and operations research that includes support for linear programming and Python interfaces, though it lacks deep focus on convex optimization, gradient descent, and automatic differentiation.
NumPy is a foundational library for scientific computing in Python, providing a comprehensive framework for managing and manipulating large-scale numerical information. It centers on high-performance multidimensional array objects that serve as the primary data structure for complex mathematical operations and data analysis workflows. The library distinguishes itself through specialized mechanisms for handling multidimensional data, including advanced indexing, slicing, and broadcasting techniques that allow for efficient operations across arrays of varying shapes. It utilizes strided metadat
NumPy provides the foundational multidimensional array and linear algebra routines essential for scientific computing in Python, though it lacks higher-level operations like optimization and automatic differentiation.
scikit-opt is a Python optimization library and numerical framework designed to solve complex global optimization problems. It provides a suite of metaheuristic algorithms and tools for finding global minima or maxima of objective functions. The library implements a variety of nature-inspired and swarm intelligence algorithms, including Genetic Algorithms, Particle Swarm Optimization, Differential Evolution, Simulated Annealing, and Ant Colony Optimization. It includes specialized solvers for discrete combinatorial challenges, such as the Traveling Salesman Problem. The framework supports th
This repository provides a Python optimization library focused on nature-inspired global optimization algorithms, fitting the numerical computation and optimization intent well despite lacking deep support for gradient descent or automatic differentiation.
OptimLib: a lightweight C++ library of numerical optimization methods for nonlinear functions
OptimLib is a C++ numerical optimization library focused on nonlinear functions, fitting the category well as a specialized tool for operations research and computational mathematics, though it is narrower in scope than a comprehensive framework that includes automatic differentiation and linear programming out of the box.
CVXPY is a Python-embedded domain-specific language for modeling and solving convex optimization problems using natural mathematical syntax. It is built on a disciplined convex programming framework that automatically enforces convexity rules, ensuring that problems formulated by the user are valid for convex solvers. The project also functions as a multi-solver optimization interface, abstracting away backend details and dispatching problems to specialized solvers like ECOS, SCS, and Gurobi without manual configuration. Beyond standard convex optimization, CVXPY extends its reach to geometri
CVXPY is a Python-embedded domain-specific language for convex optimization and problem modeling, though it focuses primarily on convex programming rather than general gradient descent or automatic differentiation.
Nonconvex embedded optimization: code generation for fast real-time optimization ROS support
This library provides real-time nonconvex optimization and code generation with a Python interface, matching the numerical computation and optimization category even though it focuses on embedded control rather than general operations research.
| Repository | Stele | Limbaj | Licență | Ultimul push |
|---|---|---|---|---|
| ceres-solver/ceres-solver | 4.5K | C++ | NOASSERTION | |
| jax-ml/jax | 35.8K | Python | Apache-2.0 | |
| julianlsolvers/optim.jl | 1.2K | Julia | NOASSERTION | |
| juliasymbolics/symbolics.jl | 1.5K | Julia | NOASSERTION | |
| davisking/dlib | 14.4K | C++ | BSL-1.0 | |
| lululxvi/deepxde | 3.9K | Python | lgpl-2.1 | |
| fastai/numerical-linear-algebra | 10.7K | Jupyter Notebook | — | |
| pytorch/pytorch | 100.8K | Python | NOASSERTION | |
| facebookresearch/nevergrad | 4.2K | Python | mit | |
| taichi-dev/taichi | 28K | C++ | apache-2.0 |