\(\newcommand{\B}[1]{ {\bf #1} }\) \(\newcommand{\R}[1]{ {\rm #1} }\)
cpp_sparsity#
View page sourceHessian Sparsity Patterns#
Syntax#
.for_hes_sparsity ( select_domain , select_range , pattern_out ).rev_hes_sparsity ( select_domain , select_range , 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 . Fix a diagonal matrix \(D \in \B{R}^{n \times n}\), fix a vector \(r \in \B{R}^m\), and define
Given a sparsity pattern for \(D\) and \(r\), these routines compute a sparsity pattern for \(H(x)\).
x#
Note that a sparsity pattern for \(H(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 fselect_domain#
The argument select_domain has prototype
const vec_bool& select_domainIt has size n and is a sparsity pattern for the diagonal of \(D\); i.e., select_domain [ j ] is true if and only if \(D_{j,j}\) is possibly non-zero.
select_range#
The argument select_range has prototype
const vec_bool& select_rangeIt has size m and is a sparsity pattern for the vector \(r\); i.e., select_range [ i ] is true if and only if \(r_i\) is possibly non-zero.
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 Component Wise Hessian#
Suppose that \(D\) is the identity matrix, and only the i-th component of r is possibly non-zero. In this case, pattern_out is a sparsity pattern for \(F_i^{(2)} ( x )\).