CppAD: A C++ Algorithmic Differentiation Package  20171217
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
template<class Base >
void CppAD::ADFun< Base >::ForSparseJacCheckpoint ( size_t  q,
const local::sparse_list r,
bool  transpose,
bool  dependency,
local::sparse_list s 
)

Forward mode Jacobian sparsity calculation used by checkpoint functions.

Template Parameters
Baseis the base type for this recording.
Parameters
transposeis true (false) s is equal to $ S(x) $ ( $ S(x)^T $) where

\[ S(x) = F^{(1)} (x) * R \]

where $ F $ is the function corresponding to the operation sequence and $ x $ is any argument value.
qis the number of columns in the matrix $ R $.
ris a sparsity pattern for the matrix $ R $.
transposeare the sparsity patterns for $ R $ and $ S(x) $ transposed.
dependencyAre the derivatives with respect to left and right of the expression below considered to be non-zero:
CondExpRel(left, right, if_true, if_false)
This is used by the optimizer to obtain the correct dependency relations.
sThe input size and elements of s do not matter. On output, s is the sparsity pattern for the matrix $ S(x) $ or $ S(x)^T $ depending on transpose.
Side Effects
If VectorSet::value_type is bool, the forward sparsity pattern for all of the variables on the tape is stored in for_jac_sparse_pack__. In this case
     for_jac_sparse_pack_.n_set() == num_var_tape_
     for_jac_sparse_pack_.end() == q
     for_jac_sparse_set_.n_set()  == 0
     for_jac_sparse_set_.end()  == 0


If VectorSet::value_type is std::set<size_t>, the forward sparsity pattern for all of the variables on the tape is stored in for_jac_sparse_set__. In this case
     for_jac_sparse_set_.n_set()   == num_var_tape_
     for_jac_sparse_set_.end()   == q
     for_jac_sparse_pack_.n_set()  == 0
     for_jac_sparse_pack_.end()  == 0

Definition at line 647 of file for_sparse_jac.hpp.