CppAD: A C++ Algorithmic Differentiation Package  20171217
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
template<class Base , class Vector_set >
void CppAD::local::for_jac_sweep ( const local::player< Base > *  play,
bool  dependency,
size_t  n,
size_t  numvar,
Vector_set &  var_sparsity 
)

Given the sparsity pattern for the independent variables, ForJacSweep computes the sparsity pattern for all the other variables.

Template Parameters
Basethis operation sequence was recorded using AD<Base>.
Vector_setis the type used for vectors of sets. It can be either sparse_pack or sparse_list.
Parameters
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.
nis the number of independent variables on the tape.
numvaris the total number of variables on the tape; i.e., play->num_var_rec().
playThe information stored in play is a recording of the operations corresponding to a function

\[ F : {\bf R}^n \rightarrow {\bf R}^m \]

where $ n $ is the number of independent variables and $ m $ is the number of dependent variables.
var_sparsityInput: For j = 1 , ... , n, the sparsity pattern for the independent variable with index (j-1) corresponds to the set with index j in var_sparsity.

Output: For i = n + 1 , ... , numvar - 1, the sparsity pattern for the variable with index i on the tape corresponds to the set with index i in var_sparsity.
Checked Assertions:
  • numvar == var_sparsity.n_set()
  • numvar == play->num_var_rec()

Definition at line 82 of file for_jac_sweep.hpp.

Referenced by CppAD::ADFun< Base >::for_hes_sparsity(), CppAD::ADFun< Base >::for_jac_sparsity(), CppAD::ADFun< Base >::ForSparseHesCase(), CppAD::ADFun< Base >::ForSparseJacCase(), and CppAD::ADFun< Base >::ForSparseJacCheckpoint().