ForTwo

View page source

Forward Mode Second Partial Derivative Driver

Syntax

ddy = f . ForTwo ( x , j , k )

Purpose

We use \(F : \B{R}^n \rightarrow \B{R}^m\) to denote the AD Function corresponding to f . The syntax above sets

\[ddy [ i * p + \ell ] = \DD{ F_i }{ x_{j[ \ell ]} }{ x_{k[ \ell ]} } (x)\]

for \(i = 0 , \ldots , m-1\) and \(\ell = 0 , \ldots , p\), where \(p\) is the size of the vectors j and k .

f

The object f has prototype

ADFun < Base > f

Note that the ADFun object f is not const (see ForTwo Uses Forward below).

x

The argument x has prototype

const BaseVector & x

(see BaseVector below) and its size must be equal to n , the dimension of the Domain space for f . It specifies that point at which to evaluate the partial derivatives listed above.

j

The argument j has prototype

const SizeVector_t & j

(see SizeVector_t below) We use p to denote the size of the vector j . All of the indices in j must be less than n ; i.e., for \(\ell = 0 , \ldots , p-1\), \(j[ \ell ] < n\).

k

The argument k has prototype

const SizeVector_t & k

(see SizeVector_t below) and its size must be equal to p , the size of the vector j . All of the indices in k must be less than n ; i.e., for \(\ell = 0 , \ldots , p-1\), \(k[ \ell ] < n\).

ddy

The result ddy has prototype

BaseVector ddy

(see BaseVector below) and its size is \(m * p\). It contains the requested partial derivatives; to be specific, for \(i = 0 , \ldots , m - 1\) and \(\ell = 0 , \ldots , p - 1\)

\[ddy [ i * p + \ell ] = \DD{ F_i }{ x_{j[ \ell ]} }{ x_{k[ \ell ]} } (x)\]

BaseVector

The type BaseVector must be a SimpleVector class with elements of type Base . The routine CheckSimpleVector will generate an error message if this is not the case.

SizeVector_t

The type SizeVector_t must be a SimpleVector class with elements of type size_t . The routine CheckSimpleVector will generate an error message if this is not the case.

ForTwo Uses Forward

After each call to Forward , the object f contains the corresponding Taylor coefficients . After a call to ForTwo , the zero order Taylor coefficients correspond to f . Forward (0, x ) and the other coefficients are unspecified.

Examples

The routine ForTwo is both an example and test. It returns true , if it succeeds and false otherwise.