CppAD: A C++ Algorithmic Differentiation Package
20130102
|
void reverse_sparse_jacobian_load_op | ( | OpCode | op, |
size_t | i_z, | ||
const addr_t * | arg, | ||
size_t | num_combined, | ||
const size_t * | combined, | ||
Vector_set & | var_sparsity, | ||
Vector_set & | vecad_sparsity | ||
) | [inline] |
Reverse mode Jacobian sparsity operations for LdpOp and LdvOp.
The C++ source code corresponding to this operation is
z = v[x]
where v is a VecAD<Base> vector and x is an AD<Base> index.
Vector_set | is the type used for vectors of sets. It can be either sparse_pack , sparse_set , or sparse_list . |
op | is the code corresponding to this operator; i.e., LdpOp or LdvOp (only used for error checking). |
i_z | is the AD variable index corresponding to the variable z; i.e., the set with index i_z in var_sparsity is the sparsity pattern correpsonding to z. |
arg | arg[0] is the offset corresponding to this VecAD vector in the VecAD combined array. |
num_combined | is the total number of elements in the VecAD combinded array. |
combined | is the VecAD combined array. combined[ arg[0] - 1 ] is the index of the set corresponding to the vector v in vecad_sparsity. We use the notation i_v for this value; i.e., i_v = combined[ \a arg[0] - 1 ] |
var_sparsity | The set with index i_z in var_sparsity is the sparsity pattern for z. This is an output for forward mode operations, and an input for reverse mode operations. |
vecad_sparsity | The set with index i_v is the sparsity pattern for the vector v. This is an input for forward mode operations. For reverse mode operations, the sparsity pattern for z is added to the sparsity pattern for v. |
Definition at line 331 of file load_op.hpp.
Referenced by RevJacSweep().