casadi 3.6.4__cp27-none-manylinux1_i686.whl → 3.6.6__cp27-none-manylinux1_i686.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- casadi/_casadi.so +0 -0
- casadi/casadi.py +982 -498
- casadi/cbc +0 -0
- casadi/clp +0 -0
- casadi/cmake/casadi-config-version.cmake +1 -1
- casadi/include/casadi/casadi.i +33 -15
- casadi/include/casadi/casadi_c.h +2 -0
- casadi/include/casadi/config.h +8 -8
- casadi/include/casadi/core/casadi_common.hpp +1 -0
- casadi/include/casadi/core/casadi_misc.hpp +13 -0
- casadi/include/casadi/core/casadi_types.hpp +3 -2
- casadi/include/casadi/core/code_generator.hpp +59 -2
- casadi/include/casadi/core/core.hpp +1 -0
- casadi/include/casadi/core/generic_expression.hpp +1 -1
- casadi/include/casadi/core/generic_type.hpp +25 -1
- casadi/include/casadi/core/global_options.hpp +2 -0
- casadi/include/casadi/core/matrix_decl.hpp +15 -0
- casadi/include/casadi/core/mx.hpp +13 -3
- casadi/include/casadi/core/optistack.hpp +23 -0
- casadi/include/casadi/core/runtime/casadi_nlp.hpp +133 -6
- casadi/include/casadi/core/runtime/casadi_ocp_block.hpp +55 -0
- casadi/include/casadi/core/runtime/casadi_oracle.hpp +44 -0
- casadi/include/casadi/core/runtime/casadi_oracle_callback.hpp +39 -0
- casadi/include/casadi/core/runtime/casadi_runtime.hpp +4 -1
- casadi/include/casadi/core/runtime/casadi_scaled_copy.hpp +31 -0
- casadi/include/casadi/core/runtime/casadi_sqpmethod.hpp +11 -1
- casadi/include/casadi/core/serializing_stream.hpp +2 -2
- casadi/include/casadi/core/sparsity.hpp +12 -3
- casadi/include/casadi/core/tools.hpp +67 -0
- casadi/include/casadi/doc.i +2283 -1491
- casadi/include/casadi/doc_merged.i +1522 -1065
- casadi/include/casadi/mem.h +1 -0
- casadi/include/coin-or/IpAlgBuilder.hpp +417 -0
- casadi/include/coin-or/IpAlgStrategy.hpp +201 -0
- casadi/include/coin-or/IpAlgTypes.hpp +64 -0
- casadi/include/coin-or/IpAugSystemSolver.hpp +212 -0
- casadi/include/coin-or/IpBlas.hpp +426 -0
- casadi/include/coin-or/IpCachedResults.hpp +897 -0
- casadi/include/coin-or/IpCompoundMatrix.hpp +423 -0
- casadi/include/coin-or/IpCompoundSymMatrix.hpp +348 -0
- casadi/include/coin-or/IpCompoundVector.hpp +395 -0
- casadi/include/coin-or/IpConvCheck.hpp +97 -0
- casadi/include/coin-or/IpDebug.hpp +167 -0
- casadi/include/coin-or/IpDenseVector.hpp +626 -0
- casadi/include/coin-or/IpDiagMatrix.hpp +158 -0
- casadi/include/coin-or/IpEqMultCalculator.hpp +76 -0
- casadi/include/coin-or/IpException.hpp +156 -0
- casadi/include/coin-or/IpExpansionMatrix.hpp +245 -0
- casadi/include/coin-or/IpGenTMatrix.hpp +290 -0
- casadi/include/coin-or/IpHessianUpdater.hpp +73 -0
- casadi/include/coin-or/IpIdentityMatrix.hpp +167 -0
- casadi/include/coin-or/IpIpoptAlg.hpp +257 -0
- casadi/include/coin-or/IpIpoptApplication.hpp +367 -0
- casadi/include/coin-or/IpIpoptCalculatedQuantities.hpp +1009 -0
- casadi/include/coin-or/IpIpoptData.hpp +966 -0
- casadi/include/coin-or/IpIpoptNLP.hpp +328 -0
- casadi/include/coin-or/IpIterateInitializer.hpp +68 -0
- casadi/include/coin-or/IpIteratesVector.hpp +840 -0
- casadi/include/coin-or/IpIterationOutput.hpp +78 -0
- casadi/include/coin-or/IpJournalist.hpp +573 -0
- casadi/include/coin-or/IpLapack.hpp +227 -0
- casadi/include/coin-or/IpLibraryLoader.hpp +76 -0
- casadi/include/coin-or/IpLineSearch.hpp +106 -0
- casadi/include/coin-or/IpLinearSolvers.h +46 -0
- casadi/include/coin-or/IpMatrix.hpp +434 -0
- casadi/include/coin-or/IpMuUpdate.hpp +77 -0
- casadi/include/coin-or/IpNLP.hpp +306 -0
- casadi/include/coin-or/IpNLPScaling.hpp +582 -0
- casadi/include/coin-or/IpObserver.hpp +422 -0
- casadi/include/coin-or/IpOptionsList.hpp +412 -0
- casadi/include/coin-or/IpOrigIpoptNLP.hpp +603 -0
- casadi/include/coin-or/IpPDSystemSolver.hpp +137 -0
- casadi/include/coin-or/IpReferenced.hpp +262 -0
- casadi/include/coin-or/IpRegOptions.hpp +1152 -0
- casadi/include/coin-or/IpReturnCodes.h +23 -0
- casadi/include/coin-or/IpReturnCodes.hpp +18 -0
- casadi/include/coin-or/IpReturnCodes.inc +71 -0
- casadi/include/coin-or/IpReturnCodes_inc.h +45 -0
- casadi/include/coin-or/IpScaledMatrix.hpp +291 -0
- casadi/include/coin-or/IpSearchDirCalculator.hpp +72 -0
- casadi/include/coin-or/IpSmartPtr.hpp +865 -0
- casadi/include/coin-or/IpSolveStatistics.hpp +210 -0
- casadi/include/coin-or/IpSparseSymLinearSolverInterface.hpp +260 -0
- casadi/include/coin-or/IpStdAugSystemSolver.cpp +555 -0
- casadi/include/coin-or/IpStdCInterface.h +428 -0
- casadi/include/coin-or/IpSumSymMatrix.hpp +186 -0
- casadi/include/coin-or/IpSymLinearSolver.hpp +141 -0
- casadi/include/coin-or/IpSymMatrix.hpp +167 -0
- casadi/include/coin-or/IpSymScaledMatrix.hpp +255 -0
- casadi/include/coin-or/IpSymTMatrix.hpp +275 -0
- casadi/include/coin-or/IpTNLP.hpp +820 -0
- casadi/include/coin-or/IpTNLPAdapter.hpp +648 -0
- casadi/include/coin-or/IpTNLPReducer.hpp +274 -0
- casadi/include/coin-or/IpTaggedObject.hpp +128 -0
- casadi/include/coin-or/IpTimedTask.hpp +218 -0
- casadi/include/coin-or/IpTimingStatistics.hpp +323 -0
- casadi/include/coin-or/IpTripletHelper.hpp +308 -0
- casadi/include/coin-or/IpTypes.h +81 -0
- casadi/include/coin-or/IpTypes.hpp +30 -0
- casadi/include/coin-or/IpUtils.hpp +166 -0
- casadi/include/coin-or/IpVector.hpp +892 -0
- casadi/include/coin-or/IpZeroSymMatrix.hpp +155 -0
- casadi/include/coin-or/IpoptConfig.h +45 -0
- casadi/include/coin-or/SensAlgorithm.hpp +114 -0
- casadi/include/coin-or/SensApplication.hpp +188 -0
- casadi/include/coin-or/SensBacksolver.hpp +36 -0
- casadi/include/coin-or/SensMeasurement.hpp +56 -0
- casadi/include/coin-or/SensPCalculator.hpp +137 -0
- casadi/include/coin-or/SensRegOp.hpp +21 -0
- casadi/include/coin-or/SensSchurData.hpp +182 -0
- casadi/include/coin-or/SensSchurDriver.hpp +118 -0
- casadi/include/coin-or/SensSimpleBacksolver.hpp +49 -0
- casadi/include/coin-or/SensStepCalc.hpp +85 -0
- casadi/include/coin-or/SensUtils.hpp +63 -0
- casadi/include/coin-or/metis/defs.h +161 -0
- casadi/include/coin-or/metis/macros.h +143 -0
- casadi/include/coin-or/metis/metis.h +37 -0
- casadi/include/coin-or/metis/proto.h +505 -0
- casadi/include/coin-or/metis/rename.h +418 -0
- casadi/include/coin-or/metis/struct.h +251 -0
- casadi/include/coin-or/mumps/dmumps_c.h +142 -0
- casadi/include/coin-or/mumps/mumps_c_types.h +72 -0
- casadi/include/coin-or/mumps/mumps_compat.h +27 -0
- casadi/include/coin-or/mumps/mumps_int_def.h +11 -0
- casadi/include/coin-or/mumps/mumps_mpi.h +67 -0
- casadi/include/daqp/api.h +46 -0
- casadi/include/daqp/auxiliary.h +29 -0
- casadi/include/daqp/bnb.h +32 -0
- casadi/include/daqp/codegen.h +18 -0
- casadi/include/daqp/constants.h +92 -0
- casadi/include/daqp/daqp.h +22 -0
- casadi/include/daqp/daqp_prox.h +18 -0
- casadi/include/daqp/factorization.h +18 -0
- casadi/include/daqp/types.h +161 -0
- casadi/include/daqp/utils.h +44 -0
- casadi/include/licenses/daqp-external/LICENSE +21 -0
- casadi/include/osqp/constants.h +2 -3
- casadi/include/osqp/version.h +9 -0
- casadi/lib/libtinyxml2.a +0 -0
- casadi/libCbc.so +0 -0
- casadi/libCbc.so.3 +0 -0
- casadi/libCbc.so.3.10.11 +0 -0
- casadi/libCbcSolver.so +0 -0
- casadi/libCbcSolver.so.3 +0 -0
- casadi/libCbcSolver.so.3.10.11 +0 -0
- casadi/libCgl.so +0 -0
- casadi/libCgl.so.1 +0 -0
- casadi/libCgl.so.1.10.8 +0 -0
- casadi/libClp.so +0 -0
- casadi/libClp.so.1 +0 -0
- casadi/libClp.so.1.14.9 +0 -0
- casadi/libClpSolver.so +0 -0
- casadi/libClpSolver.so.1 +0 -0
- casadi/libClpSolver.so.1.14.9 +0 -0
- casadi/libCoinUtils.so +0 -0
- casadi/libCoinUtils.so.3 +0 -0
- casadi/libCoinUtils.so.3.11.10 +0 -0
- casadi/libOsi.so +0 -0
- casadi/libOsi.so.1 +0 -0
- casadi/libOsi.so.1.13.9 +0 -0
- casadi/libOsiCbc.so +0 -0
- casadi/libOsiCbc.so.3 +0 -0
- casadi/libOsiCbc.so.3.10.11 +0 -0
- casadi/libOsiClp.so +0 -0
- casadi/libOsiClp.so.1 +0 -0
- casadi/libOsiClp.so.1.14.9 +0 -0
- casadi/libOsiCommonTests.so +0 -0
- casadi/libOsiCommonTests.so.1 +0 -0
- casadi/libOsiCommonTests.so.1.13.9 +0 -0
- casadi/libbonmin.so +0 -0
- casadi/libbonmin.so.4 +0 -0
- casadi/libbonmin.so.4.8.9 +0 -0
- casadi/libcasadi.so +0 -0
- casadi/libcasadi.so.3.7 +0 -0
- casadi/libcasadi_conic_cbc.so +0 -0
- casadi/libcasadi_conic_cbc.so.3.7 +0 -0
- casadi/libcasadi_conic_clp.so +0 -0
- casadi/libcasadi_conic_clp.so.3.7 +0 -0
- casadi/libcasadi_conic_daqp.so +0 -0
- casadi/libcasadi_conic_daqp.so.3.7 +0 -0
- casadi/libcasadi_conic_gurobi.so +0 -0
- casadi/libcasadi_conic_gurobi.so.3.7 +0 -0
- casadi/libcasadi_conic_ipqp.so +0 -0
- casadi/libcasadi_conic_ipqp.so.3.7 +0 -0
- casadi/libcasadi_conic_nlpsol.so +0 -0
- casadi/libcasadi_conic_nlpsol.so.3.7 +0 -0
- casadi/libcasadi_conic_osqp.so +0 -0
- casadi/libcasadi_conic_osqp.so.3.7 +0 -0
- casadi/libcasadi_conic_qpoases.so +0 -0
- casadi/libcasadi_conic_qpoases.so.3.7 +0 -0
- casadi/libcasadi_conic_qrqp.so +0 -0
- casadi/libcasadi_conic_qrqp.so.3.7 +0 -0
- casadi/libcasadi_conic_superscs.so +0 -0
- casadi/libcasadi_conic_superscs.so.3.7 +0 -0
- casadi/libcasadi_integrator_collocation.so +0 -0
- casadi/libcasadi_integrator_collocation.so.3.7 +0 -0
- casadi/libcasadi_integrator_cvodes.so +0 -0
- casadi/libcasadi_integrator_cvodes.so.3.7 +0 -0
- casadi/libcasadi_integrator_idas.so +0 -0
- casadi/libcasadi_integrator_idas.so.3.7 +0 -0
- casadi/libcasadi_integrator_rk.so +0 -0
- casadi/libcasadi_integrator_rk.so.3.7 +0 -0
- casadi/libcasadi_nlpsol_ampl.so +0 -0
- casadi/libcasadi_nlpsol_ampl.so.3.7 +0 -0
- casadi/libcasadi_nlpsol_blocksqp.so +0 -0
- casadi/libcasadi_nlpsol_blocksqp.so.3.7 +0 -0
- casadi/libcasadi_nlpsol_bonmin.so +0 -0
- casadi/libcasadi_nlpsol_bonmin.so.3.7 +0 -0
- casadi/libcasadi_nlpsol_feasiblesqpmethod.so +0 -0
- casadi/libcasadi_nlpsol_feasiblesqpmethod.so.3.7 +0 -0
- casadi/libcasadi_nlpsol_ipopt.so +0 -0
- casadi/libcasadi_nlpsol_ipopt.so.3.7 +0 -0
- casadi/libcasadi_nlpsol_knitro.so +0 -0
- casadi/libcasadi_nlpsol_knitro.so.3.7 +0 -0
- casadi/libcasadi_nlpsol_madnlp.so +0 -0
- casadi/libcasadi_nlpsol_madnlp.so.3.7 +0 -0
- casadi/libcasadi_nlpsol_qrsqp.so +0 -0
- casadi/libcasadi_nlpsol_qrsqp.so.3.7 +0 -0
- casadi/libcasadi_nlpsol_scpgen.so +0 -0
- casadi/libcasadi_nlpsol_scpgen.so.3.7 +0 -0
- casadi/libcasadi_nlpsol_snopt.so +0 -0
- casadi/libcasadi_nlpsol_snopt.so.3.7 +0 -0
- casadi/libcasadi_nlpsol_sqpmethod.so +0 -0
- casadi/libcasadi_nlpsol_sqpmethod.so.3.7 +0 -0
- casadi/libcasadi_nlpsol_worhp.so +0 -0
- casadi/libcasadi_nlpsol_worhp.so.3.7 +0 -0
- casadi/libcasadi_rootfinder_fast_newton.so +0 -0
- casadi/libcasadi_rootfinder_fast_newton.so.3.7 +0 -0
- casadi/libcasadi_rootfinder_kinsol.so +0 -0
- casadi/libcasadi_rootfinder_kinsol.so.3.7 +0 -0
- casadi/libcasadi_rootfinder_newton.so +0 -0
- casadi/libcasadi_rootfinder_newton.so.3.7 +0 -0
- casadi/libcasadi_rootfinder_nlpsol.so +0 -0
- casadi/libcasadi_rootfinder_nlpsol.so.3.7 +0 -0
- casadi/libcasadi_sundials_common.so +0 -0
- casadi/libcasadi_sundials_common.so.3.7 +0 -0
- casadi/libdaqp.so +0 -0
- casadi/libdaqpstat.a +0 -0
- casadi/libindirect.a +0 -0
- casadi/libipopt.so +0 -0
- casadi/libipopt.so.3 +0 -0
- casadi/libipopt.so.3.14.11 +0 -0
- casadi/liblinsys.a +0 -0
- casadi/libmatlab_ipc.so +0 -0
- casadi/libosqp.a +0 -0
- casadi/libosqp.so +0 -0
- casadi/libqdldl.a +0 -0
- casadi/libsipopt.so +0 -0
- casadi/libsipopt.so.3 +0 -0
- casadi/libsipopt.so.3.14.11 +0 -0
- casadi/libsuperscs.a +0 -0
- casadi/pkgconfig/casadi.pc +1 -1
- casadi/tools/__init__.py +4 -0
- casadi/tools/bounds.py +3 -3
- {casadi-3.6.4.dist-info → casadi-3.6.6.dist-info}/METADATA +12 -4
- {casadi-3.6.4.dist-info → casadi-3.6.6.dist-info}/RECORD +257 -140
- {casadi-3.6.4.dist-info → casadi-3.6.6.dist-info}/WHEEL +0 -0
@@ -0,0 +1,328 @@
|
|
1
|
+
// Copyright (C) 2004, 2006 International Business Machines and others.
|
2
|
+
// All Rights Reserved.
|
3
|
+
// This code is published under the Eclipse Public License.
|
4
|
+
//
|
5
|
+
// Authors: Carl Laird, Andreas Waechter IBM 2004-08-13
|
6
|
+
|
7
|
+
#ifndef __IPIPOPTNLP_HPP__
|
8
|
+
#define __IPIPOPTNLP_HPP__
|
9
|
+
|
10
|
+
#include "IpNLP.hpp"
|
11
|
+
#include "IpJournalist.hpp"
|
12
|
+
#include "IpNLPScaling.hpp"
|
13
|
+
|
14
|
+
namespace Ipopt
|
15
|
+
{
|
16
|
+
// forward declarations
|
17
|
+
class IteratesVector;
|
18
|
+
|
19
|
+
/** This is the abstract base class for classes that map
|
20
|
+
* the traditional NLP into something that is more useful for %Ipopt.
|
21
|
+
*
|
22
|
+
* As for NLP, the represented %NLP is
|
23
|
+
* \f{eqnarray*}
|
24
|
+
* \mathrm{min} && f(x), \\
|
25
|
+
* \mathrm{s.t.} && c(x) = 0, &\qquad y_c\\
|
26
|
+
* && d_L \leq d(x) \leq d_U, &\qquad y_d \\
|
27
|
+
* && x_L \leq x \leq x_U, &\qquad z_L, z_U
|
28
|
+
* \f}
|
29
|
+
* where \f$y_c\f$, \f$y_d\f$, \f$z_L\f$, \f$z_U\f$ name the dual variables of the corresponding constraints.
|
30
|
+
*
|
31
|
+
* This class takes care of storing the
|
32
|
+
* calculated model results, handles caching, scaling,
|
33
|
+
* and (some day) takes care of addition of slacks.
|
34
|
+
*/
|
35
|
+
class IPOPTLIB_EXPORT IpoptNLP: public ReferencedObject
|
36
|
+
{
|
37
|
+
public:
|
38
|
+
/**@name Constructors/Destructors */
|
39
|
+
///@{
|
40
|
+
IpoptNLP(
|
41
|
+
const SmartPtr<NLPScalingObject> nlp_scaling
|
42
|
+
)
|
43
|
+
: nlp_scaling_(nlp_scaling)
|
44
|
+
{ }
|
45
|
+
|
46
|
+
/** Destructor */
|
47
|
+
virtual ~IpoptNLP()
|
48
|
+
{ }
|
49
|
+
///@}
|
50
|
+
|
51
|
+
/** Initialization method.
|
52
|
+
*
|
53
|
+
* Set the internal options and initialize internal data structures.
|
54
|
+
*/
|
55
|
+
virtual bool Initialize(
|
56
|
+
const Journalist& jnlst,
|
57
|
+
const OptionsList& options,
|
58
|
+
const std::string& prefix
|
59
|
+
)
|
60
|
+
{
|
61
|
+
bool ret = true;
|
62
|
+
if( IsValid(nlp_scaling_) )
|
63
|
+
{
|
64
|
+
ret = nlp_scaling_->Initialize(jnlst, options, prefix);
|
65
|
+
}
|
66
|
+
return ret;
|
67
|
+
}
|
68
|
+
|
69
|
+
/**@name Possible Exceptions */
|
70
|
+
///@{
|
71
|
+
/** thrown if there is any error evaluating values from the nlp */
|
72
|
+
DECLARE_STD_EXCEPTION(Eval_Error);
|
73
|
+
|
74
|
+
///@}
|
75
|
+
/** Initialize (create) structures for the iteration data */
|
76
|
+
virtual bool InitializeStructures(
|
77
|
+
SmartPtr<Vector>& x,
|
78
|
+
bool init_x,
|
79
|
+
SmartPtr<Vector>& y_c,
|
80
|
+
bool init_y_c,
|
81
|
+
SmartPtr<Vector>& y_d,
|
82
|
+
bool init_y_d,
|
83
|
+
SmartPtr<Vector>& z_L,
|
84
|
+
bool init_z_L,
|
85
|
+
SmartPtr<Vector>& z_U,
|
86
|
+
bool init_z_U,
|
87
|
+
SmartPtr<Vector>& v_L,
|
88
|
+
SmartPtr<Vector>& v_U
|
89
|
+
) = 0;
|
90
|
+
|
91
|
+
/** Method accessing the GetWarmStartIterate of the NLP */
|
92
|
+
virtual bool GetWarmStartIterate(
|
93
|
+
IteratesVector& warm_start_iterate
|
94
|
+
) = 0;
|
95
|
+
|
96
|
+
/** Accessor methods for model data */
|
97
|
+
///@{
|
98
|
+
/** Objective value */
|
99
|
+
virtual Number f(
|
100
|
+
const Vector& x
|
101
|
+
) = 0;
|
102
|
+
|
103
|
+
/** Gradient of the objective */
|
104
|
+
virtual SmartPtr<const Vector> grad_f(
|
105
|
+
const Vector& x
|
106
|
+
) = 0;
|
107
|
+
|
108
|
+
/** Equality constraint residual */
|
109
|
+
virtual SmartPtr<const Vector> c(
|
110
|
+
const Vector& x
|
111
|
+
) = 0;
|
112
|
+
|
113
|
+
/** Jacobian Matrix for equality constraints */
|
114
|
+
virtual SmartPtr<const Matrix> jac_c(
|
115
|
+
const Vector& x
|
116
|
+
) = 0;
|
117
|
+
|
118
|
+
/** Inequality constraint residual (reformulated
|
119
|
+
* as equalities with slacks
|
120
|
+
*/
|
121
|
+
virtual SmartPtr<const Vector> d(
|
122
|
+
const Vector& x
|
123
|
+
) = 0;
|
124
|
+
|
125
|
+
/** Jacobian Matrix for inequality constraints */
|
126
|
+
virtual SmartPtr<const Matrix> jac_d(
|
127
|
+
const Vector& x
|
128
|
+
) = 0;
|
129
|
+
|
130
|
+
/** Hessian of the Lagrangian */
|
131
|
+
virtual SmartPtr<const SymMatrix> h(
|
132
|
+
const Vector& x,
|
133
|
+
Number obj_factor,
|
134
|
+
const Vector& yc,
|
135
|
+
const Vector& yd
|
136
|
+
) = 0;
|
137
|
+
|
138
|
+
/** Lower bounds on x */
|
139
|
+
virtual SmartPtr<const Vector> x_L() const = 0;
|
140
|
+
|
141
|
+
/** Permutation matrix (x_L_ -> x) */
|
142
|
+
virtual SmartPtr<const Matrix> Px_L() const = 0;
|
143
|
+
|
144
|
+
/** Upper bounds on x */
|
145
|
+
virtual SmartPtr<const Vector> x_U() const = 0;
|
146
|
+
|
147
|
+
/** Permutation matrix (x_U_ -> x */
|
148
|
+
virtual SmartPtr<const Matrix> Px_U() const = 0;
|
149
|
+
|
150
|
+
/** Lower bounds on d */
|
151
|
+
virtual SmartPtr<const Vector> d_L() const = 0;
|
152
|
+
|
153
|
+
/** Permutation matrix (d_L_ -> d) */
|
154
|
+
virtual SmartPtr<const Matrix> Pd_L() const = 0;
|
155
|
+
|
156
|
+
/** Upper bounds on d */
|
157
|
+
virtual SmartPtr<const Vector> d_U() const = 0;
|
158
|
+
|
159
|
+
/** Permutation matrix (d_U_ -> d */
|
160
|
+
virtual SmartPtr<const Matrix> Pd_U() const = 0;
|
161
|
+
|
162
|
+
/** x_space */
|
163
|
+
virtual SmartPtr<const VectorSpace> x_space() const = 0;
|
164
|
+
|
165
|
+
/** Accessor method to obtain the MatrixSpace for the Hessian
|
166
|
+
* matrix (or it's approximation)
|
167
|
+
*/
|
168
|
+
virtual SmartPtr<const SymMatrixSpace> HessianMatrixSpace() const = 0;
|
169
|
+
///@}
|
170
|
+
|
171
|
+
/** Accessor method for vector/matrix spaces pointers. */
|
172
|
+
virtual void GetSpaces(
|
173
|
+
SmartPtr<const VectorSpace>& x_space,
|
174
|
+
SmartPtr<const VectorSpace>& c_space,
|
175
|
+
SmartPtr<const VectorSpace>& d_space,
|
176
|
+
SmartPtr<const VectorSpace>& x_l_space,
|
177
|
+
SmartPtr<const MatrixSpace>& px_l_space,
|
178
|
+
SmartPtr<const VectorSpace>& x_u_space,
|
179
|
+
SmartPtr<const MatrixSpace>& px_u_space,
|
180
|
+
SmartPtr<const VectorSpace>& d_l_space,
|
181
|
+
SmartPtr<const MatrixSpace>& pd_l_space,
|
182
|
+
SmartPtr<const VectorSpace>& d_u_space,
|
183
|
+
SmartPtr<const MatrixSpace>& pd_u_space,
|
184
|
+
SmartPtr<const MatrixSpace>& Jac_c_space,
|
185
|
+
SmartPtr<const MatrixSpace>& Jac_d_space,
|
186
|
+
SmartPtr<const SymMatrixSpace>& Hess_lagrangian_space
|
187
|
+
) = 0;
|
188
|
+
|
189
|
+
/** Method for adapting the variable bounds. This is called if
|
190
|
+
* slacks are becoming too small */
|
191
|
+
virtual void AdjustVariableBounds(
|
192
|
+
const Vector& new_x_L,
|
193
|
+
const Vector& new_x_U,
|
194
|
+
const Vector& new_d_L,
|
195
|
+
const Vector& new_d_U
|
196
|
+
) = 0;
|
197
|
+
|
198
|
+
/** @name Counters for the number of function evaluations. */
|
199
|
+
///@{
|
200
|
+
virtual Index f_evals() const = 0;
|
201
|
+
virtual Index grad_f_evals() const = 0;
|
202
|
+
virtual Index c_evals() const = 0;
|
203
|
+
virtual Index jac_c_evals() const = 0;
|
204
|
+
virtual Index d_evals() const = 0;
|
205
|
+
virtual Index jac_d_evals() const = 0;
|
206
|
+
virtual Index h_evals() const = 0;
|
207
|
+
///@}
|
208
|
+
|
209
|
+
/** @name Special method for dealing with the fact that the
|
210
|
+
* restoration phase objective function depends on the barrier
|
211
|
+
* parameter */
|
212
|
+
///@{
|
213
|
+
/** Method for telling the IpoptCalculatedQuantities class whether
|
214
|
+
* the objective function depends on the barrier function.
|
215
|
+
*
|
216
|
+
* This is only used for the restoration phase NLP
|
217
|
+
* formulation. Probably only RestoIpoptNLP should overwrite
|
218
|
+
* this.
|
219
|
+
*/
|
220
|
+
virtual bool objective_depends_on_mu() const
|
221
|
+
{
|
222
|
+
return false;
|
223
|
+
}
|
224
|
+
|
225
|
+
/** Replacement for the default objective function method which
|
226
|
+
* knows about the barrier parameter
|
227
|
+
*/
|
228
|
+
virtual Number f(
|
229
|
+
const Vector& x,
|
230
|
+
Number mu
|
231
|
+
) = 0;
|
232
|
+
|
233
|
+
/** Replacement for the default objective gradient method which
|
234
|
+
* knows about the barrier parameter
|
235
|
+
*/
|
236
|
+
virtual SmartPtr<const Vector> grad_f(
|
237
|
+
const Vector& x,
|
238
|
+
Number mu
|
239
|
+
) = 0;
|
240
|
+
|
241
|
+
/** Replacement for the default Lagrangian Hessian method which
|
242
|
+
* knows about the barrier parameter
|
243
|
+
*/
|
244
|
+
virtual SmartPtr<const SymMatrix> h(
|
245
|
+
const Vector& x,
|
246
|
+
Number obj_factor,
|
247
|
+
const Vector& yc,
|
248
|
+
const Vector& yd,
|
249
|
+
Number mu
|
250
|
+
) = 0;
|
251
|
+
|
252
|
+
/** Provides a Hessian matrix from the correct matrix space with
|
253
|
+
* uninitialized values.
|
254
|
+
*
|
255
|
+
* This can be used in LeastSquareMults to obtain a "zero Hessian".
|
256
|
+
*/
|
257
|
+
virtual SmartPtr<const SymMatrix> uninitialized_h() = 0;
|
258
|
+
///@}
|
259
|
+
|
260
|
+
/**@name solution routines */
|
261
|
+
///@{
|
262
|
+
virtual void FinalizeSolution(
|
263
|
+
SolverReturn status,
|
264
|
+
const Vector& x,
|
265
|
+
const Vector& z_L,
|
266
|
+
const Vector& z_U,
|
267
|
+
const Vector& c,
|
268
|
+
const Vector& d,
|
269
|
+
const Vector& y_c,
|
270
|
+
const Vector& y_d,
|
271
|
+
Number obj_value,
|
272
|
+
const IpoptData* ip_data,
|
273
|
+
IpoptCalculatedQuantities* ip_cq
|
274
|
+
) = 0;
|
275
|
+
|
276
|
+
virtual bool IntermediateCallBack(
|
277
|
+
AlgorithmMode mode,
|
278
|
+
Index iter,
|
279
|
+
Number obj_value,
|
280
|
+
Number inf_pr,
|
281
|
+
Number inf_du,
|
282
|
+
Number mu,
|
283
|
+
Number d_norm,
|
284
|
+
Number regularization_size,
|
285
|
+
Number alpha_du,
|
286
|
+
Number alpha_pr,
|
287
|
+
Index ls_trials,
|
288
|
+
SmartPtr<const IpoptData> ip_data,
|
289
|
+
SmartPtr<IpoptCalculatedQuantities> ip_cq
|
290
|
+
) = 0;
|
291
|
+
///@}
|
292
|
+
|
293
|
+
/** Returns the scaling strategy object */
|
294
|
+
SmartPtr<NLPScalingObject> NLP_scaling() const
|
295
|
+
{
|
296
|
+
DBG_ASSERT(IsValid(nlp_scaling_));
|
297
|
+
return nlp_scaling_;
|
298
|
+
}
|
299
|
+
|
300
|
+
private:
|
301
|
+
|
302
|
+
/**@name Default Compiler Generated Methods
|
303
|
+
* (Hidden to avoid implicit creation/calling).
|
304
|
+
*
|
305
|
+
* These methods are not implemented and
|
306
|
+
* we do not want the compiler to implement
|
307
|
+
* them for us, so we declare them private
|
308
|
+
* and do not define them. This ensures that
|
309
|
+
* they will not be implicitly created/called.
|
310
|
+
*/
|
311
|
+
///@{
|
312
|
+
/** Copy Constructor */
|
313
|
+
IpoptNLP(
|
314
|
+
const IpoptNLP&
|
315
|
+
);
|
316
|
+
|
317
|
+
/** Default Assignment Operator */
|
318
|
+
void operator=(
|
319
|
+
const IpoptNLP&
|
320
|
+
);
|
321
|
+
///@}
|
322
|
+
|
323
|
+
SmartPtr<NLPScalingObject> nlp_scaling_;
|
324
|
+
};
|
325
|
+
|
326
|
+
} // namespace Ipopt
|
327
|
+
|
328
|
+
#endif
|
@@ -0,0 +1,68 @@
|
|
1
|
+
// Copyright (C) 2004, 2006 International Business Machines and others.
|
2
|
+
// All Rights Reserved.
|
3
|
+
// This code is published under the Eclipse Public License.
|
4
|
+
//
|
5
|
+
// Authors: Carl Laird, Andreas Waechter IBM 2004-09-24
|
6
|
+
|
7
|
+
#ifndef __IPITERATEINITIALIZER_HPP__
|
8
|
+
#define __IPITERATEINITIALIZER_HPP__
|
9
|
+
|
10
|
+
#include "IpAlgStrategy.hpp"
|
11
|
+
#include "IpIpoptNLP.hpp"
|
12
|
+
#include "IpIpoptData.hpp"
|
13
|
+
#include "IpIpoptCalculatedQuantities.hpp"
|
14
|
+
|
15
|
+
namespace Ipopt
|
16
|
+
{
|
17
|
+
|
18
|
+
/** Base class for all methods for initializing the iterates. */
|
19
|
+
class IPOPTLIB_EXPORT IterateInitializer: public AlgorithmStrategyObject
|
20
|
+
{
|
21
|
+
public:
|
22
|
+
/**@name Constructors/Destructors */
|
23
|
+
///@{
|
24
|
+
/** Default Constructor */
|
25
|
+
IterateInitializer()
|
26
|
+
{ }
|
27
|
+
|
28
|
+
/** Default destructor */
|
29
|
+
virtual ~IterateInitializer()
|
30
|
+
{ }
|
31
|
+
///@}
|
32
|
+
|
33
|
+
virtual bool InitializeImpl(
|
34
|
+
const OptionsList& options,
|
35
|
+
const std::string& prefix
|
36
|
+
) = 0;
|
37
|
+
|
38
|
+
/** Compute the initial iterates and set the into the curr field
|
39
|
+
* of the ip_data object. */
|
40
|
+
virtual bool SetInitialIterates() = 0;
|
41
|
+
|
42
|
+
private:
|
43
|
+
/**@name Default Compiler Generated Methods
|
44
|
+
* (Hidden to avoid implicit creation/calling).
|
45
|
+
*
|
46
|
+
* These methods are not implemented and
|
47
|
+
* we do not want the compiler to implement
|
48
|
+
* them for us, so we declare them private
|
49
|
+
* and do not define them. This ensures that
|
50
|
+
* they will not be implicitly created/called.
|
51
|
+
*/
|
52
|
+
///@{
|
53
|
+
/** Copy Constructor */
|
54
|
+
IterateInitializer(
|
55
|
+
const IterateInitializer&
|
56
|
+
);
|
57
|
+
|
58
|
+
/** Default Assignment Operator */
|
59
|
+
void operator=(
|
60
|
+
const IterateInitializer&
|
61
|
+
);
|
62
|
+
///@}
|
63
|
+
|
64
|
+
};
|
65
|
+
|
66
|
+
} // namespace Ipopt
|
67
|
+
|
68
|
+
#endif
|