User experience: Python vs R, PyMC vs Stan, PyTensor vs JAX

Largely performance and design flexibility. See the evaluations that start on about page 67 of our autodiff paper.

The design that we extended is Sacado (from the COIN-OR project). We cite the David Gay paper that explains how Sacado’s autodiff works. We just had to engineer a more efficient version. The evaluations compare Stan’s autodiff to CppAD, Sacado, Adept, and adolc.

I go over a basic C++ autodiff design from scratch based on functional C++ with continuations and then refactor the lambda-based closure design to the custom version used in Stan:

1 Like