Challenge: Automatic differentiation in D
Bill Baxter
wbaxter at gmail.com
Tue May 12 10:00:34 PDT 2009
If I had the time I'd love to play around with automatic differentiation in D.
http://en.wikipedia.org/wiki/Automatic_differentiation
I played around with it a bit in C++ before, using the operator
overloading approach, but didn't go much beyond basic polynomials with
it.
The page above offers something of a challenge for a potential D implementation:
"""
Operator overloading for forward accumulation is easy to implement,
and also possible for reverse accumulation. However, current compilers
lag behind in optimizing the code when compared to forward
accumulation.
"""
I wonder if the fancy compile-time machinery offered by D could enable
a more efficient implementation?
Ultimately I'd be interested in using AD for implementing physics-y
things where complicated derivatives end up being necessary all the
time.
Here's a paper where they made use of a simple AD implementation for
doing thin shell simulations:
http://www.cs.columbia.edu/cg/pdfs/10_ds.pdf
You can also find their C++ AD code on the caltech site somewhere.
Just throwing this out there, because occasionally there are folks
looking for little self-contained projects to undertake. And because
I think AD is nifty.
--bb
More information about the Digitalmars-d
mailing list