ceres-solver
autodiff
Our great sponsors
ceres-solver | autodiff | |
---|---|---|
8 | 7 | |
3,601 | 1,532 | |
2.6% | 2.5% | |
8.1 | 7.5 | |
7 days ago | 21 days ago | |
C++ | C++ | |
3-Clause BSD License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
ceres-solver
-
The Elements of Differentiable Programming
I can't reply to the guy saying julia is the only one. But there are others.
Ceres uses dual numbers
https://github.com/ceres-solver/ceres-solver/blob/master/inc...
This library from google is used everywhere in robotics, so it's hardly some backwater little side project.
So does c++ autodiff
- A large scale non-linear optimization library
-
Photometric Bundle Adjustment library?
http://ceres-solver.org (if you want to implement it manually, see tutorials & openCV sfm module)
-
Gradients Without Backpropagation
http://ceres-solver.org/ works well, in my experience.
-
Is there a library for non-linear optimization in Rust?
Hey, people! I was wondering if there is a library for non-linear optimization, equivalent to that for Ceres Solver that you have in C++?
-
What libraries do you miss from other languages?
I've not yet seen anything comparable to http://ceres-solver.org/
-
Non-linear equation solver for microcontrollers
Disclaimer: I'm one of the authors of Ceres Solver which is widely used for solving computational geometry problems in computer vision. I also wrote TinySolver. And nowadays, I focus on Pigweed; a collection of embedded libraries targeting high-volume consumer electronics products. It's fun to see an overlap of these two areas expertise!
autodiff
- The Elements of Differentiable Programming
-
Astray: A performance-portable geodesic ray tracing library.
I completely agree. Specifying the metric rather than the Christoffel symbols would make it much easier for the users. Something like https://github.com/autodiff/autodiff might just work as the metric tensor is made up of primitives.
-
Point-to-Point Distance Constraint: Gradient of Forward Kinematics
Old username :D So far I have been using Eigen for linear algebra and NLOPT for optimization algorithms. I have found "autodiff" that hopefully looks easy to use: https://github.com/autodiff/autodiff
- Autodiff: Simple C++17 library for Automatic Differentiation
-
Gradients Without Backpropagation
Forward-mode differentiation is easy to implement in C++ with templates, operator overloading, and dual numbers (https://en.wikipedia.org/wiki/Automatic_differentiation#Auto...). Some libraries such as autodiff (https://github.com/autodiff/autodiff) and CppAD (https://github.com/coin-or/CppAD) use this method.
- Ensmallen: A C++ Library for Efficient Numerical Optimization
-
I am creating a fast, header-only, C++ library for control algorithms
I was thinking of adding [autodiff](https://github.com/autodiff/autodiff) in the future, mainly because it works seamlessly with *Eigen*. One big advantage would be that I could use it for AD for NonlinearSystems as well.
What are some alternatives?
Eigen
CppAD - A C++ Algorithmic Differentiation Package: Home Page
casadi - CasADi is a symbolic framework for numeric optimization implementing automatic differentiation in forward and reverse modes on sparse matrix-valued computational graphs. It supports self-contained C-code generation and interfaces state-of-the-art codes such as SUNDIALS, IPOPT etc. It can be used from C++, Python or Matlab/Octave.
FastAD - FastAD is a C++ implementation of automatic differentiation both forward and reverse mode.
GLM - OpenGL Mathematics (GLM)
MathNet - Math.NET Numerics
OpenBLAS - OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version.
MKL.NET - A simple cross platform .NET API for Intel MKL
QuantLib - The QuantLib C++ library
CppRobotics - Header-only C++ library for robotics, control, and path planning algorithms. Work in progress, contributions are welcome!
CGal - The public CGAL repository, see the README below
PythonRobotics - Python sample codes for robotics algorithms.