$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
Subject: [boost] New library proposal: Autodiff
From: Matt Pulver (mpulver_at_[hidden])
Date: 2018-12-18 16:37:35
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_concepts.html>.
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