|
void jac_g_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_jac_r, |
|
|
CppAD::vector< size_t > & |
I, |
|
|
CppAD::vector< size_t > & |
J, |
|
|
CppAD::vector< std::map< size_t, size_t > > & |
index_jac_g |
|
) |
| |
Create mapping from CppAD to Ipopt sparse representations of Jacobian of g.
The functions and are defined by the Users Representation.
- Parameters:
-
fg_info | For k = 0 , ... , K-1 , for ell = 0 , ... , L[k] , the function call
fg_info->index(k, ell, I, J);
is made by jac_g_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
The output value of the elements of J define
|
m | is the dimension of the range space for ; i.e., . |
n | is the dimension of the domain space for and ; i.e., . |
K | is the number of functions used for the representation of and . |
L | is a vector with size K . For k = 0 , ... , K-1, L[k] is the number of terms that use in the representation of and . |
p | is a vector with size K . For k = 0 , ... , K-1, p[k] is dimension of the range space for ; i.e., . |
q | is a vector with size K . For k = 0 , ... , K-1, q[k] is dimension of the domain space for ; i.e., . |
pattern_jac_r | is a vector with size K . For k = 0 , ... , K-1, pattern_jac_r[k] is a CppAD sparsity pattern for the Jacobian of the function . As such, pattern_jac_r[k].size() == p[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_jac_g,: | On input, this is empty; i.e., index_jac_g.size() == 0 . On output, it is the index mapping from in the Jacobian of to the corresponding index value used by Ipopt to represent the Jacobian. Furthermore, if index_jac_g[i].find(j) == index_jac_g[i].end() , then the entry in the Jacobian of is always zero. |
Definition at line 105 of file jac_g_map.cpp.
Referenced by cppad_ipopt_nlp::cppad_ipopt_nlp().
|