py_jac_sparsity#

View page source

Jacobian Sparsity Patterns#

Syntax#

f.for_jac_sparsity ( pattern_in , pattern_out )
f.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

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

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

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

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#

This object must have been returned by a previous call to the python d_fun constructor. The object f is not constant 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#

This argument must have be a pattern returned by the sparse_rc constructor. It specifies the sparsity pattern for \(R\).

pattern_out#

This argument must have be a pattern returned by the sparse_rc constructor. This 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 )\).

Example#

python