CppAD: A C++ Algorithmic Differentiation Package  20171217
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
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
Basebase type for the operator; i.e., this operation was recorded using AD< Base > and computations by this routine are done using type Base .
Parameters
pis the lowest order Taylor coefficient that will be calculated.
qis the highest order Taylor coefficient that will be calculated.
ris the number of directions, for each order, that will be calculated (except for order zero wich only has one direction).
i_zvariable index corresponding to the result for this operation; i.e. the row index in taylor corresponding to z.
argarg[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_ordermaximum 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
taylorInput: 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().