sadET
Simple Automatic Differentiation (using) Expression Templates (by dkaramit)
FastAD
FastAD is a C++ implementation of automatic differentiation both forward and reverse mode. (by JamesYang007)
Our great sponsors
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
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.
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.
sadET
Posts with mentions or reviews of sadET.
We have used some of these posts to build our list of alternatives
and similar projects.
-
Assign expression-template to variable in C++
Then, each expression should carry enough information that you can call different member functions, such as derivative for their derivative, or conjugate to take its complex conjugate, etc. Now, the conjugate (and derivative) member function should somehow inherit its behaviour from the sub expressionss. You only need to define what conjugate means for the Number class, and then all other expressions, just apply this function to its sub expressions, until a Number is reached. I am not sure if this is detailed enough, but I apply this logic here. In this piece of code, I am using ETs to that define expressions, and then use these expressions to take their derivatives. This is an autodiff library (without dual numbers), which works well, but it suffers from the the problem; can't find a way to assign and reassign variables to expressions.
FastAD
Posts with mentions or reviews of FastAD.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2021-01-22.
-
WG21 January 2021 Mailing
What stage is the differentiation proposal in? It seems odd they talked about reverse mode AD but made no mention of memory management for it. They also don't mention anything about FastAD or Stan Math which I think do some pretty innovative things in this space.
What are some alternatives?
When comparing sadET and FastAD you can also consider the following projects:
Zygote.jl - 21st century AD
autodiff - automatic differentiation made easier for C++
papers - ISO/IEC JTC1 SC22 WG21 paper scheduling and management
geodesic_raytracing
TemporalSetInversion - Reference implementation for "Temporal Set Inversion for Animated Implicits" (SIGGRAPH 2023)
giada - Your Hardcore Loop Machine.
filesystem - An implementation of C++17 std::filesystem for C++11 /C++14/C++17/C++20 on Windows, macOS, Linux and FreeBSD.
Mission : Impossible (AutoDiff) - A concise C++17 implementation of automatic differentiation (operator overloading)
papers