autodiff
CppAD
Our great sponsors
autodiff | CppAD | |
---|---|---|
7 | 1 | |
1,532 | 429 | |
2.5% | 4.2% | |
7.5 | 9.5 | |
21 days ago | 8 days ago | |
C++ | C++ | |
MIT License | GNU General Public License v3.0 or later |
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.
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.
CppAD
-
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.
What are some alternatives?
FastAD - FastAD is a C++ implementation of automatic differentiation both forward and reverse mode.
ceres-solver - A large scale non-linear optimization library
MathNet - Math.NET Numerics
MKL.NET - A simple cross platform .NET API for Intel MKL
CppRobotics - Header-only C++ library for robotics, control, and path planning algorithms. Work in progress, contributions are welcome!
PythonRobotics - Python sample codes for robotics algorithms.
Microsoft Automatic Graph Layout - A set of tools for graph layout and viewing
allwpilib - Official Repository of WPILibJ and WPILibC
geodesic_raytracing
Rationals - 🔟 Implementation of rational number arithmetic for .NET with arbitrary precision.
Math3D - A .NET Standard 2.0 library for simple and efficient 3D math that is a feature-rich replacement for System.Numerics https://vimaec.github.io/Math3D
astray - A performance-portable geodesic ray tracing library.