CppAD: A C++ Algorithmic Differentiation Package
20130918
|
void cppad_ipopt::hes_fg_map | ( | cppad_ipopt_fg_info * | fg_info, |
size_t | m, | ||
size_t | n, | ||
size_t | K, | ||
const CppAD::vector< size_t > & | L, | ||
const CppAD::vector< size_t > & | p, | ||
const CppAD::vector< size_t > & | q, | ||
const CppAD::vector< CppAD::vectorBool > & | pattern_hes_r, | ||
CppAD::vector< size_t > & | I, | ||
CppAD::vector< size_t > & | J, | ||
CppAD::vector< std::map< size_t, size_t > > & | index_hes_fg | ||
) |
Create mapping from CppAD to Ipopt sparse representations of Hessian of F(x).
The functions and
are defined by the Users Representation. We define the function
by
fg_info | For k = 0 , ... , K-1 , for ell = 0 , ... , L[k] , the function call fg_info->index(k, ell, I, J); hes_fg_map . The values k and ell are inputs. The input size of I ( J ) is greater than or equal p[k] ( q[k] ) and this size is not changed. The input values of the elements of I and J are not specified. The output value of the elements of I define
J define
|
m | is the dimension of the range space for ![]() ![]() |
n | is the dimension of the domain space for ![]() ![]() ![]() |
K | is the number of functions ![]() ![]() ![]() |
L | is a vector with size K . For k = 0 , ... , K-1, L[k] is the number of terms that use ![]() ![]() ![]() |
p | is a vector with size K . For k = 0 , ... , K-1, p[k] is dimension of the range space for ![]() ![]() |
q | is a vector with size K . For k = 0 , ... , K-1, q[k] is dimension of the domain space for ![]() ![]() |
pattern_hes_r | is a vector with size K . For k = 0 , ... , K-1, pattern_jac_r[k] is a CppAD sparsity pattern for the Hessian of the function
pattern_hes_r[k].size() == q[k] * q[k] . |
I | is a work vector of length greater than or equal p[k] for all k . The input and output value of its elements are unspecified. The size of I is not changed. |
J | is a work vector of length greater than or equal q[k] for all k . The input and output value of its elements are unspecified. The size of J is not changed. |
index_hes_fg,: | On input, this is empty; i.e., index_jac_g.size() == 0 . On output, it is the index mapping from ![]() ![]() index_jac_g[i].find(j) == index_jac_g[i].end() , then the ![]() ![]() |
Definition at line 117 of file hes_fg_map.cpp.
Referenced by cppad_ipopt::cppad_ipopt_nlp::cppad_ipopt_nlp().