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_load_op ( const local::player< Base > *  play,
OpCode  op,
size_t  p,
size_t  q,
size_t  r,
size_t  cap_order,
size_t  i_z,
const addr_t *  arg,
const addr_t *  var_by_load_op,
Base *  taylor 

Forward mode, except for zero order, for op = LdpOp or op = LdvOp.

The C++ source code corresponding to this operation is

     v[x] = y

where v is a VecAD<Base> vector, x is an AD<Base> object, and y is AD<Base> or Base objects. We define the index corresponding to v[x] by

     i_v_x = index_by_ind[ arg[0] + i_vec ]

where i_vec is defined under the heading arg[1] below:

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.
playis the tape that this operation appears in. This is for error detection and not used when NDEBUG is defined.
opis the code corresponding to this operator; i.e., LdpOp or LdvOp (only used for error checking).
pis the lowest order of the Taylor coefficient that we are computing.
qis the highest order of the Taylor coefficient that we are computing.
ris the number of directions for the Taylor coefficients that we are computing.
cap_ordernumber of columns in the matrix containing the Taylor coefficients.
We use the notation tpv = (cap_order-1) * r + 1 which is the number of Taylor coefficients per variable
i_zis the AD variable index corresponding to the variable z.
argarg[2] Is the index of this vecad load instruction in the var_by_load_op array.
var_by_load_opis a vector with size play->num_load_op_rec(). It contains the variable index corresponding to each load instruction. In the case where the index is zero, the instruction corresponds to a parameter (not variable).
We use the notation
     i_var = size_t( var_by_load_op[ arg[2] ] )
If i_var > 0, v[x] is a variable and for k = 1 , ... , q taylor[ i_var * tpv + (k-1)*r+1+ell ] is the k-th order coefficient for v[x] in the ell-th direction,

for k = p , ... , q, taylor[ i_z * tpv + (k-1)*r+1+ell ] is set to the k-order Taylor coefficient for z in the ell-th direction.

Definition at line 414 of file load_op.hpp.

Referenced by forward1sweep(), and forward2sweep().