NLPDirect interface for a specialized NLP.
More...
#include <NLPInterfacePack_ExampleNLPDirect.hpp>
Inheritance diagram for NLPInterfacePack::ExampleNLPDirect:
Overridden public members from NLP | |
| void | initialize (bool test_setup) |
| | |
| bool | is_initialized () const |
| | |
Overridden public members from NLPDirect | |
| Range1D | var_dep () const |
| | |
| Range1D | var_indep () const |
| | |
| const mat_fcty_ptr_t | factory_D () const |
| | |
| void | calc_point (const Vector &x, value_type *f, VectorMutable *c, bool recalc_c, VectorMutable *Gf, VectorMutable *py, VectorMutable *rGf, MatrixOp *GcU, MatrixOp *D, MatrixOp *Uz) const |
| | |
| void | calc_semi_newton_step (const Vector &x, VectorMutable *c, bool recalc_c, VectorMutable *py) const |
| | |
Public Member Functions | |
| ExampleNLPDirect (const VectorSpace::space_ptr_t &vec_space, value_type xo, bool has_bounds, bool dep_bounded) | |
| Constructor. | |
NLPDirect interface for a specialized NLP.
For the NLP formulation see ExampleNLPObjGrad.
In this NLP we will select the first n/2 variables as the dependent or basis variables. Note that the variable bounds are on the dependent or independent variables variables if has_bounds = true. Otherwise there are no variable bounds. Also the starting point can be varied.
The implementation of this NLP subclass is actually independent from the vector space for the dependent and independent variables (same vector space). This implementation is defined entirely based on an arbitrary VectorSpace object that is passed to the constructor ExampleNLPDirect(). This NLP subclass uses a VectorSpaceBlocked object to represent the space for [ x_dep; x_indep ]
The quantities computed by this subclass include:
py = -inv(C)*c
D = -inv(C)*N
where:
Gc' = [ C , N ]
[ x(m+1) - 1 ]
[ x(m+2) - 1 ]
C = [ . ]
[ . ]
[ x(m+m) - 1 ]
[ x(1) - 10 ]
[ x(2) - 10 ]
N = [ . ]
[ . ]
[ x(m) - 10 ]
Gc is never computed explicitly.
To make this possible this subclass relies on some specialized RTOp operators which are implemented in C (for portability). These operator classes are declared in the header file NLPInterfacePack_ExampleNLPDirect.hpp and are documented here.
Definition at line 90 of file NLPInterfacePack_ExampleNLPDirect.hpp.
|
||||||||||||||||||||
|
Constructor.
Definition at line 62 of file NLPInterfacePack_ExampleNLPDirect.cpp. |
|
|
Reimplemented from NLPInterfacePack::NLPDirect. Definition at line 84 of file NLPInterfacePack_ExampleNLPDirect.cpp. |
|
|
Reimplemented from NLPInterfacePack::ExampleNLPObjGrad. Definition at line 99 of file NLPInterfacePack_ExampleNLPDirect.cpp. |
|
|
Reimplemented from NLPInterfacePack::NLPDirect. Definition at line 106 of file NLPInterfacePack_ExampleNLPDirect.cpp. |
|
|
Reimplemented from NLPInterfacePack::NLPDirect. Definition at line 111 of file NLPInterfacePack_ExampleNLPDirect.cpp. |
|
|
Implements NLPInterfacePack::NLPDirect. Definition at line 117 of file NLPInterfacePack_ExampleNLPDirect.cpp. |
|
||||||||||||||||||||||||||||||||||||||||||||
|
Implements NLPInterfacePack::NLPDirect. Definition at line 122 of file NLPInterfacePack_ExampleNLPDirect.cpp. |
|
||||||||||||||||||||
|
Implements NLPInterfacePack::NLPDirect. Definition at line 279 of file NLPInterfacePack_ExampleNLPDirect.cpp. |
1.3.9.1