|
template<class Vector_set >
void reverse_sparse_jacobian_load_op |
( |
OpCode |
op, |
|
|
size_t |
i_z, |
|
|
const size_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
where v is a VecAD<Base> vector and x is an AD<Base> index.
- Template Parameters:
-
- Parameters:
-
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. |
- Checked Assertions
- NumArg(op) == 3
- NumRes(op) == 1
- 0 < arg[0]
- arg[0] < num_combined
- i_v < vecad_sparsity.n_set()
Definition at line 329 of file load_op.hpp.
Referenced by RevJacSweep().
|