Prev | Next | forward_one |
y1 = f.Forward(1, x1)
f
.
The result of the syntax above is
@[@
y1 = F^{(1)} (x0) * x1
@]@
where @(@
F^{(1)} (x0)
@)@ is the Jacobian of @(@
F
@)@
evaluated at
x0
.
f
has prototype
ADFun<Base> f
Note that the ADFun
object
f
is not const
.
Before this call to Forward
, the value returned by
f.size_order()
must be greater than or equal one.
After this call it will be will be two (see size_order
).
x0
in the formula
@[@
y1 = F^{(1)} (x0) * x1
@]@
corresponds to the previous call to forward_zero
using this ADFun object
f
; i.e.,
f.Forward(0, x0)
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
x0
.
x1
has prototype
const Vector& x1
(see Vector
below)
and its size must be equal to
n
, the dimension of the
domain
space for
f
.
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.
= x0
,
@(@
x^{(1)}
@)@
= x1
,
@(@
X(t) = x^{(0)} + x^{(1)} t
@)@, and
@[@
y^{(0)} + y^{(1)} t = F [ x^{(0)} + x^{(1)} t ] + o(t)
@]@
Taking the derivative with respect to @(@
t
@)@, at @(@
t = 0
@)@,
we obtain
@[@
y^{(1)} = F^{(1)} [ x^{(0)} ] x^{(1)}
@]@
which agrees with the specifications for
y1
in the purpose
above.