[Numpy-discussion] Automatic differentiation (was Re: second-order gradient)

Sebastian Walter sebastian.walter at gmail.com
Wed Mar 11 06:12:07 EDT 2009


There are several possibilities, some of them are listed on
http://en.wikipedia.org/wiki/Automatic_differentiation

== pycppad
http://www.seanet.com/~bradbell/pycppad/index.xml
pycppad is a wrapper of the C++ library CppAD  ( http://www.coin-or.org/CppAD/ )

the wrapper can do up to second order derivatives very efficiently in
the so-called reverse mode of AD
requires boost::python

== pyadolc
http://github.com/b45ch1/pyadolc
which is a wrapper for the C++ library ADOL-C (
http://www.math.tu-dresden.de/~adol-c/ )

this can do abritrary degree of derivatives and works quite well with
numpy, i.e. you can work with numpy arrays
also quite efficient in the so-called reverse mode of AD
requires boost::python

== ScientificPython
 http://dirac.cnrs-orleans.fr/ScientificPython/ScientificPythonManual/
can provide first order derivatives. But as far as I understand only
first order derivatives of functions
f: R -> R
and only in the usually not so efficient forward mode of AD

pure python

== Algopy
http://github.com/b45ch1/algopy/tree/master
pure python, arbitrary derivatives in forward and reverse mode
still quite experimental.
Offers also the possibility to differentiate functions that make heavy
use of matrix operations.

== sympy
this is not automatic differentiation but symbolic differentiation but
is sometimes useful

hope that helps,
Sebastian



On Wed, Mar 11, 2009 at 4:13 AM, Osman <osman at fuse.net> wrote:
> Hi,
>
> I just saw this python package : PyDX  which may answer your needs.
> The original URL is not working, but the svn location exists.
>
> http://gr.anu.edu.au/svn/people/sdburton/pydx/doc/user-guide.html
>
> svn co http://gr.anu.edu.au/svn/people/sdburton/pydx
>
> br
> -osman
>
> _______________________________________________
> Numpy-discussion mailing list
> Numpy-discussion at scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>



More information about the NumPy-Discussion mailing list