Hello, An automatic differentiation https://en.wikipedia.org/wiki/Automatic_differentiation C++ library - Autodiff - is released under the Boost License and is proposed for inclusion into Boost: - Github: https://github.com/pulver/autodiff - Boost Library Incubator: http://blincubator.com/bi_library/autodiff-2/?gform_post_id=1716 Features: - Instances of autodiff variables satisfy Boost's Conceptual Requirements for Real Number Types https://www.boost.org/doc/libs/1_69_0/libs/math/doc/html/math_toolkit/real_c.... In fact the class and function template definitions are based upon the tables in this page. - No use of dynamic memory. The only member variable is a std::array<>. - Consistent with Boost's type promotion templates. When adding/multiplying/etc. variables of differing dimension number and sizes, the resulting data type is calculated at compile-time. - Single header-only file. - Intuitive and minimal API. Requirements: - C++17 compiler that supports constexpr if statements. There are a fair amount of calculations done at compile-time which would require messy SFINAE hacks to make this C++14-compatible. Todo: - A github build matrix that also includes clang and MSVC. - Additional documentation, including the mathematics. Feedback and endorsements for Boost Library inclusion are welcome and requested. Best regards, Matt