Prev Next RevJacSweep

Reverse Computation of Jacobian Sparsity Pattern

Syntax
void RevJacSweep(
     size_t 
npv,
     size_t 
numvar,
     const player<
Base> *Rec,
     size_t 
TaylorColDim,
     const 
Base *Taylor,
     
Pack *RevJac
)


Rec
The information stored in Rec is a recording of the operations corresponding to a function  \[
     F : B^n \rightarrow B^m
\] 


Description
Given the Jacobian sparsity pattern for the dependent variables, RevJacSweep computes the sparsity pattern for the dependent variables with respect to the independent variables.

numvar
is the number of rows in the entire sparsity pattern RevJac. It must also be equal to Rec->TotNumVar().

npv
Is the number of elements of type Pack (per variable) in the sparsity pattern RevJac.

TaylorColDim
Is the number of columns currently stored in the matrix Taylor.

Taylor
For  i = 1 , \ldots , numvar , Taylor[i * TaylorColDim] is the value of the variable with index i.

On Input

Dependent Variables and Operators
The dependent variable records come last. For  i = numvar-m, \ldots , numvar-1 and  j = 0 , \ldots , npv , RevJac[i * npv + j] is the j-th subset of the sparsity pattern for variable with index i.

Other Variables and Operators
The other variables follow the independent variables. For  i = 0, \ldots , numvar-m-1 ,  j = 1 , \ldots , npv-1 , RevJac[i * npv + j] is equal to zero (all false).

On Output

Dependent Variables
For  i = numvar-m, \ldots , numvar-1 and  j = 0 , \ldots , npv-1 , RevJac[i * npv + j] is not modified.

Other Variables
For  i = 1, \ldots , numvar-m-1 and  j = 0 , \ldots , npv-1 , RevJac[i * npv + j] is the j-th subset of the sparsity pattern for the variable with index i.
Input File: cppad/local/rev_jac_sweep.hpp