CppAD: A C++ Algorithmic Differentiation Package
20130102
|
void forward_store_op_0 | ( | size_t | i_z, |
const addr_t * | arg, | ||
size_t | num_par, | ||
size_t | nc_taylor, | ||
Base * | taylor, | ||
size_t | nc_combined, | ||
bool * | variable, | ||
size_t * | combined | ||
) | [inline] |
Prototype zero order forward implementation of op is one the following: StppOp, StpvOp, StvpOp, or StvvOp.
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 = combined[ arg[0] + i_vec ]
where i_vec is defined under the heading arg[1] below:
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. |
i_z | is the index corresponding to the previous variable on the tape (only used for error checking). |
arg | arg[0] is the offset of this VecAD vector relative to the beginning of the combined VecAD array. arg[1] If this is a StppOp or StpvOp operation (the index x is a parameter), i_vec is defined by i_vec = arg[1] i_vec = floor( taylor[ arg[1] * nc_taylor + 0 ] ) arg[2] index corresponding to the third operand for this operator; i.e. the index corresponding to y. |
num_par | is the total number of parameters on the tape (only used for error checking). |
nc_taylor | number of columns in the matrix containing the Taylor coefficients. |
taylor | Input: in StvpOp and StvvOp cases, taylor[ arg[1] * nc_taylor + 0 ] is used to compute the index in the definition of i_vec above |
nc_combined | is the total number of elements in the combined VecAD array. |
variable | Output: If y is a varable (StpvOp or StvvOp), variable [ arg[0] + i_vec ] is set to true. Otherwise y is a paraemter (StppOp or StvpOp) and variable [ arg[0] + i_vec ] is set to false. |
combined | Output: combined [ arg[0] + i_vec ] is set equal to arg[2]. |
Definition at line 1204 of file prototype_op.hpp.