|
CppAD: A C++ Algorithmic Differentiation Package
20130102
|
| size_t ADFun< Base >::SparseHessian | ( | const VectorBase & | x, |
| const VectorBase & | w, | ||
| const VectorSet & | p, | ||
| const VectorSize & | row, | ||
| const VectorSize & | col, | ||
| VectorBase & | hes, | ||
| sparse_hessian_work & | work | ||
| ) |
Compute user specified subset of a sparse Hessian.
The C++ source code corresponding to this operation is
SparceHessian(x, w, p, row, col, hes, work)
| Base | is the base type for the recording that is stored in this ADFun<Base object. |
| VectorBase | is a simple vector class with elements of type Base. |
| VectorSet | is a simple vector class with elements of type bool or std::set<size_t>. |
| VectorSize | is a simple vector class with elements of type size_t. |
| x | is a vector specifing the point at which to compute the Hessian. |
| w | is the weighting vector that defines a scalar valued function by a weighted sum of the components of the vector valued function $latex F(x)$$. |
| p | is the sparsity pattern for the Hessian that we are calculating. |
| row | is the vector of row indices for the returned Hessian values. |
| col | is the vector of columns indices for the returned Hessian values. It must have the same size are r. |
| hes | is the vector of Hessian values. It must have the same size are r. The return value hes[k] is the second partial of with respect to the row[k] and col[k] component of . |
| work | contains information that depends on the function object, sparsity pattern, row, and col vector. If these values are the same, work does not need to be recomputed. To be more specific, r_sort is sorted copy of row , c_sort is sorted copy of col , k_sort[k] is the original index corresponding to the values r_sort[k] and c_sort[k]. The order for the sort is by columns. Let n the domain dimension, and K the size of row , col , and hes. There is one extra entry in the sorted row array and it has value r_sort[K]=n. The color vector is set and used by SparseHessianCompute. |
Definition at line 921 of file sparse_hessian.hpp.