\(\newcommand{\B}[1]{ {\bf #1} }\) \(\newcommand{\R}[1]{ {\rm #1} }\)
cpp_jac_sparsity#
View page sourceJacobian Sparsity Patterns#
Syntax#
.for_jac_sparsity ( pattern_in , pattern_out ).rev_jac_sparsity ( pattern_in , pattern_out )Purpose#
We use \(F : \B{R}^n \rightarrow \B{R}^m\) to denote the function corresponding to the operation sequence stored in f .
for_jac_sparsity#
Fix \(R \in \B{R}^{n \times \ell}\) and define the function
Given a sparsity pattern for \(R\),
for_jac_sparsity computes a sparsity pattern for \(J(x)\).
rev_jac_sparsity#
Fix \(R \in \B{R}^{\ell \times m}\) and define the function
Given a sparsity pattern for \(R\),
rev_jac_sparsity computes a sparsity pattern for \(J(x)\).
x#
Note that a sparsity pattern for \(J(x)\) corresponds to the operation sequence stored in f and does not depend on the argument x .
f#
The object f has prototype
d_fun fThe object f is not const when using
for_jac_sparsity .
After a call to for_jac_sparsity , a sparsity pattern
for each of the variables in the operation sequence
is held in f for possible later use during
reverse Hessian sparsity calculations.
pattern_in#
The argument pattern_in has prototype
const sparse_rc& pattern_insee cpp_sparse_rc. This is a sparsity pattern for \(R\).
pattern_out#
This argument has prototype
sparse_rc<SizeVector>& pattern_outThis input value of pattern_out does not matter. Upon return pattern_out is a sparsity pattern for \(J(x)\).
Sparsity for Entire Jacobian#
Suppose that \(R\) is the identity matrix. In this case, pattern_out is a sparsity pattern for \(F^{(1)} ( x )\).