Prev Next

@(@\newcommand{\B}[1]{ {\bf #1} } \newcommand{\R}[1]{ {\rm #1} }@)@
Reverse Mode AD

Syntax
xq = f.reverse(qyq)

f
This is either a d_fun or a_fun function object and is effectively constant; i.e., not changed.

Notation

f(x)
We use the notation @(@ f: \B{R}^n \rightarrow \B{R}^m @)@ for the function corresponding to f . Note that n is the size of ax and m is the size of ay in to the constructor for f .

X(t), S
This is the same function as X(t) in the previous call to f.forward . We use @(@ S \in \B{R}^{n \times q} @)@ to denote the Taylor coefficients of @(@ X(t) @)@.

Y(t), T
This is the same function as Y(t) in the previous call to f.forward . We use @(@ T \in \B{R}^{m \times q} @)@ to denote the Taylor coefficients of @(@ Y(t) @)@. We also use the notation @(@ T(S) @)@ to express the fact that the Taylor coefficients for @(@ Y(t) @)@ are a function of the Taylor coefficients of @(@ X(t) @)@.

G(T)
We use the notation @(@ G : \B{R}^{m \times p} \rightarrow \B{R} @)@ for a function that the calling routine chooses.

q
This argument has type int and is positive. It is the number of the Taylor coefficient (for each variable) that we are computing the derivative with respect to. It must be greater than zero, and less than or equal the number of Taylor coefficient stored in f ; i.e., f.size_order() .

yq
If f is a d_fun (a_fun) object, yq is a numpy vector with float (a_double) elements, m rows and q columns. For 0 <= i < m and 0 <= k < q , yqik ] is the partial derivative of @(@ G(T) @)@ with respect to the k-th order Taylor coefficient for the i-th component function; i.e., the partial derivative of @(@ G(T) @)@ w.r.t. @(@ Y_i^{(k)} (t) / k ! @)@.

xq
The result is a numpy vector with float (a_double) elements, n rows and q columns. For 0 <= j < n and 0 <= k < q , yqjk ] is the partial derivative of @(@ G(T(S)) @)@ with respect to the k-th order Taylor coefficient for the j-th component function; i.e., the partial derivative of @(@ G(T(S)) @)@ w.r.t. @(@ S_j^{(k)} (t) / k ! @)@.

Example
fun_reverse_xam.py
Input File: lib/python/fun_reverse.py