lines 5-121 of file: include/cppad/core/forward/forward_zero.xrst {xrst_begin forward_zero} {xrst_spell cout ostream } Zero Order Forward Mode: Function Values ######################################## Syntax ****** *y0* = *f* . ``Forward`` (0, *x0* ) *y0* = *f* . ``Forward`` (0, *x0* , *s* ) Purpose ******* We use :math:`F : \B{R}^n \rightarrow \B{R}^m` to denote the :ref:`glossary@AD Function` corresponding to *f* . The result of the syntax above is .. math:: y0 = F(x0) See the :ref:`FunCheck discussion` for possible differences between :math:`F(x)` and the algorithm that defined the operation sequence. f * The object *f* has prototype ``ADFun`` < *Base* > *f* Note that the :ref:`ADFun-name` object *f* is not ``const`` . After this call to ``Forward`` , the value returned by *f* . ``size_order`` () will be equal to one (see :ref:`size_order-name` ). x0 ** The argument *x0* has prototype ``const`` *Vector* & *x0* (see :ref:`forward_zero@Vector` below) and its size must be equal to *n* , the dimension of the :ref:`fun_property@Domain` space for *f* . s * If the argument *s* is not present, ``std::cout`` is used in its place. Otherwise, this argument has prototype ``std::ostream&`` *s* It specifies where the output corresponding to :ref:`PrintFor-name` , and this zero order forward mode call, will be written. y0 ** The result *y0* has prototype *Vector* *y0* (see :ref:`forward_zero@Vector` below) and its value is :math:`F(x)` at *x* = *x0* . The size of *y0* is equal to *m* , the dimension of the :ref:`fun_property@Range` space for *f* . Vector ****** The type *Vector* must be a :ref:`SimpleVector-name` class with :ref:`elements of type` *Base* . The routine :ref:`CheckSimpleVector-name` will generate an error message if this is not the case. Example ******* The file :ref:`forward.cpp-name` contains an example and test of this operation. Special Case ************ This is special case of :ref:`forward_order-name` where .. math:: :nowrap: \begin{eqnarray} Y(t) & = & F[ X(t) ] \\ X(t) & = & x^{(0)} t^0 + x^{(1)} * t^1 + \cdots, + x^{(q)} * t^q + o( t^q ) \\ Y(t) & = & y^{(0)} t^0 + y^{(1)} * t^1 + \cdots, + y^{(q)} * t^q + o( t^q ) \end{eqnarray} and :math:`o( t^q ) * t^{-q} \rightarrow 0` as :math:`t \rightarrow 0`. For this special case, :math:`q = 0`, :math:`x^{(0)}` = *x0* , :math:`X(t) = x^{(0)}`, and .. math:: y^{(0)} = Y(t) = F[ X(t) ] = F( x^{(0)} ) which agrees with the specifications for *y0* in the :ref:`forward_zero@Purpose` above. {xrst_end forward_zero}