CppAD: A C++ Algorithmic Differentiation Package  20171217
template<class Base >
 void CppAD::local::forward_dis_op ( size_t p, size_t q, size_t r, size_t i_z, const addr_t * arg, size_t cap_order, Base * taylor )
inline

forward mode Taylor coefficient for result of op = DisOp.

The C++ source code corresponding to this operation is

z = f(x)

where f is a piecewise constant function (and it's derivative is always calculated as zero).

Template Parameters
 Base base type for the operator; i.e., this operation was recorded using AD< Base > and computations by this routine are done using type Base .
Parameters
 p is the lowest order Taylor coefficient that will be calculated. q is the highest order Taylor coefficient that will be calculated. r is the number of directions, for each order, that will be calculated (except for order zero wich only has one direction). i_z variable index corresponding to the result for this operation; i.e. the row index in taylor corresponding to z. arg arg[0] is the index, in the order of the discrete functions defined by the user, for this discrete function. arg[1] variable index corresponding to the argument for this operator; i.e. the row index in taylor corresponding to x. cap_order maximum number of orders that will fit in the taylor array.
tpv
We use the notation tpv = (cap_order-1) * r + 1 which is the number of Taylor coefficients per variable
Parameters
 taylor Input: taylor [ arg[1] * tpv + 0 ] is the zero order Taylor coefficient corresponding to x. Output: if p == 0 taylor [ i_z * tpv + 0 ] is the zero order Taylor coefficient corresponding to z. For k = max(p, 1), ... , q, taylor [ i_z * tpv + (k-1)*r + 1 + ell ] is the k-th order Taylor coefficient corresponding to z (which is zero).
Checked Assertions where op is the unary operator with one result:
• NumArg(op) == 2
• NumRes(op) == 1
• q < cap_order
• 0 < r

Definition at line 90 of file discrete_op.hpp.

Referenced by forward0sweep(), forward1sweep(), and forward2sweep().