First Order Reverse Mode
Keywords: first order reverse mode derivative syntax purpose f x w dw vector example

| Prev | Next |  |  |  |  |  |  |

First Order Reverse Mode
Syntax
`dw = f.Reverse(1, w)`
Purpose
We use F : B n → B m to denote the AD function corresponding to `f` . The function W : B n → B is defined by W ( x ) = w 0 * F 0 ( x ) + ⋯ + w m -1 * F m -1 ( x ) The result of this operation is the derivative dw = W ( 1 ) ( x ) ; i.e., dw = w 0 * F 0 ( 1 ) ( x ) + ⋯ + w m -1 * F m -1 ( 1 ) ( x ) Note that if w is the `i`-th elementary vector , dw = F i ( 1 ) ( x ) .
f
The object `f` has prototype `
const ADFun<Base> f
` Before this call to `Reverse`, the value returned by `
f.size_order()
` must be greater than or equal one (see size_order ).
x
The vector `x` in expression for `dw` above corresponds to the previous call to forward_zero using this ADFun object `f` ; i.e., `
f.Forward(0, x)
` If there is no previous call with the first argument zero, the value of the independent variables during the recording of the AD sequence of operations is used for `x` .
w
The argument `w` has prototype `
const Vector &w
` (see Vector below) and its size must be equal to `m` , the dimension of the range space for `f` .
dw
The result `dw` has prototype `
Vector dw
` (see Vector below) and its value is the derivative W ( 1 ) ( x ) . The size of `dw` is equal to `n` , the dimension of the domain space for `f` .
Vector
The type `Vector` must be a SimpleVector class with elements of type `Base` . The routine CheckSimpleVector will generate an error message if this is not the case.
Example
The file reverse_one.cpp contains an example and test of this operation. It returns true if it succeeds and false otherwise.

Input File: omh/reverse/reverse_one.omh