Prev Next

@(@\newcommand{\W}[1]{ \; #1 \; } \newcommand{\R}[1]{ {\rm #1} } \newcommand{\B}[1]{ {\bf #1} } \newcommand{\D}[2]{ \frac{\partial #1}{\partial #2} } \newcommand{\DD}[3]{ \frac{\partial^2 #1}{\partial #2 \partial #3} } \newcommand{\Dpow}[2]{ \frac{\partial^{#1}}{\partial {#2}^{#1}} } \newcommand{\dpow}[2]{ \frac{ {\rm d}^{#1}}{{\rm d}\, {#2}^{#1}} }@)@This is cppad-20221105 documentation. Here is a link to its current documentation .
Forward Mode Second Partial Derivative Driver

Syntax
ddy = f.ForTwo(xjk)

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<
Basef
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.
Input File: include/cppad/core/for_two.hpp