Have you compared against naive complex step derivatives :
https://sinews.siam.org/Details-Page/differentiation-without-a-difference
?  For first derivatives, CSD are trivial to apply, and doesn't require any
additional machinations.  I think that would serve as a nice benchmark.

On Tue, Dec 3, 2019, 8:36 AM Michael Tesch <tes...@gmail.com> wrote:

> Hello,
>
> I've written (yet another!) Dual Number implementation for automatic
> differentiation.  It is meant to be used as the value-type in Eigen
> matrices, and has templates for vectorization (shockingly) similar to (and
> based on) Eigen's complex-type vectorizations.  It is quite fast for
> first-order forward diff, and imho pretty easy to use.  There are also
> SSE/SSE3/AVX vectorizations for std::complex<dual< float | double >> types.
>
> The library is here: https://gitlab.com/tesch1/cppduals , and there's a
> small paper in JOSS too: https://doi.org/10.21105/joss.01487
>
> I hope this could be useful for someone and would be glad for any
> feedback, improvements, etc.
>
> It would be interesting to compare this approach to others, by hand-wavey
> arguments I believe it should ultimately be faster in certain cases.
>
> Cheers,
> Michael
>
>

Reply via email to