Main Page
Namespaces
Classes
Files
File List
File Members
var
build
temp
tmp.niCloInx4p
4.0-0-0
coinor-ipopt
coinor-ipopt-3.10.2
Ipopt
src
Interfaces
IpTNLP.hpp
Go to the documentation of this file.
1
// Copyright (C) 2004, 2009 International Business Machines and others.
2
// All Rights Reserved.
3
// This code is published under the Eclipse Public License.
4
//
5
// $Id: IpTNLP.hpp 1861 2010-12-21 21:34:47Z andreasw $
6
//
7
// Authors: Carl Laird, Andreas Waechter IBM 2004-08-13
8
9
#ifndef __IPTNLP_HPP__
10
#define __IPTNLP_HPP__
11
12
#include "
IpUtils.hpp
"
13
#include "
IpReferenced.hpp
"
14
#include "
IpException.hpp
"
15
#include "
IpAlgTypes.hpp
"
16
#include "
IpReturnCodes.hpp
"
17
18
#include <map>
19
20
namespace
Ipopt
21
{
22
// forward declarations
23
class
IpoptData;
24
class
IpoptCalculatedQuantities;
25
class
IteratesVector;
26
50
class
TNLP
:
public
ReferencedObject
51
{
52
public
:
54
enum
LinearityType
55
{
56
LINEAR
,
57
NON_LINEAR
58
};
59
62
TNLP
()
63
{}
64
66
virtual
~TNLP
()
67
{}
69
70
DECLARE_STD_EXCEPTION
(INVALID_TNLP);
71
80
enum
IndexStyleEnum
{
C_STYLE
=0,
FORTRAN_STYLE
=1 };
81
virtual
bool
get_nlp_info
(
Index
& n,
Index
&
m
,
Index
& nnz_jac_g,
82
Index
& nnz_h_lag,
IndexStyleEnum
&
index_style
)=0;
83
84
typedef
std::map<std::string, std::vector<std::string> >
StringMetaDataMapType
;
85
typedef
std::map<std::string, std::vector<Index> >
IntegerMetaDataMapType
;
86
typedef
std::map<std::string, std::vector<Number> >
NumericMetaDataMapType
;
87
90
virtual
bool
get_var_con_metadata
(
Index
n,
91
StringMetaDataMapType
& var_string_md,
92
IntegerMetaDataMapType
& var_integer_md,
93
NumericMetaDataMapType
& var_numeric_md,
94
Index
m
,
95
StringMetaDataMapType
& con_string_md,
96
IntegerMetaDataMapType
& con_integer_md,
97
NumericMetaDataMapType
& con_numeric_md)
98
99
{
100
return
false
;
101
}
102
109
virtual
bool
get_bounds_info
(
Index
n,
Number
* x_l,
Number
* x_u,
110
Index
m
,
Number
* g_l,
Number
* g_u)=0;
111
119
virtual
bool
get_scaling_parameters
(
Number
&
obj_scaling
,
120
bool
& use_x_scaling,
Index
n,
121
Number
*
x_scaling
,
122
bool
& use_g_scaling,
Index
m
,
123
Number
*
g_scaling
)
124
{
125
return
false
;
126
}
127
132
virtual
bool
get_variables_linearity
(
Index
n,
LinearityType
* var_types)
133
{
134
return
false
;
135
}
136
140
virtual
bool
get_constraints_linearity
(
Index
m
,
LinearityType
* const_types)
141
{
142
return
false
;
143
}
144
152
virtual
bool
get_starting_point
(
Index
n,
bool
init_x,
Number
*
x
,
153
bool
init_z,
Number
* z_L,
Number
* z_U,
154
Index
m
,
bool
init_lambda,
155
Number
* lambda)=0;
156
161
virtual
bool
get_warm_start_iterate
(
IteratesVector
& warm_start_iterate)
162
{
163
return
false
;
164
}
165
167
virtual
bool
eval_f
(
Index
n,
const
Number
*
x
,
bool
new_x,
168
Number
& obj_value)=0;
169
172
virtual
bool
eval_grad_f
(
Index
n,
const
Number
*
x
,
bool
new_x,
173
Number
* grad_f)=0;
174
176
virtual
bool
eval_g
(
Index
n,
const
Number
*
x
,
bool
new_x,
177
Index
m
,
Number
*
g
)=0;
183
virtual
bool
eval_jac_g
(
Index
n,
const
Number
*
x
,
bool
new_x,
184
Index
m
,
Index
nele_jac
,
Index
* iRow,
185
Index
*jCol,
Number
* values)=0;
186
196
virtual
bool
eval_h
(
Index
n,
const
Number
*
x
,
bool
new_x,
197
Number
obj_factor,
Index
m
,
const
Number
* lambda,
198
bool
new_lambda,
Index
nele_hess
,
199
Index
* iRow,
Index
* jCol,
Number
* values)
200
{
201
return
false
;
202
}
204
208
virtual
void
finalize_solution
(
SolverReturn
status,
209
Index
n,
const
Number
*
x
,
const
Number
* z_L,
const
Number
* z_U,
210
Index
m
,
const
Number
*
g
,
const
Number
* lambda,
211
Number
obj_value,
212
const
IpoptData
* ip_data,
213
IpoptCalculatedQuantities
* ip_cq)=0;
226
virtual
void
finalize_metadata
(
Index
n,
227
const
StringMetaDataMapType
& var_string_md,
228
const
IntegerMetaDataMapType
& var_integer_md,
229
const
NumericMetaDataMapType
& var_numeric_md,
230
Index
m
,
231
const
StringMetaDataMapType
& con_string_md,
232
const
IntegerMetaDataMapType
& con_integer_md,
233
const
NumericMetaDataMapType
& con_numeric_md)
234
{}
235
236
240
virtual
bool
intermediate_callback
(
AlgorithmMode
mode,
241
Index
iter,
Number
obj_value,
242
Number
inf_pr,
Number
inf_du,
243
Number
mu,
Number
d_norm,
244
Number
regularization_size,
245
Number
alpha_du,
Number
alpha_pr,
246
Index
ls_trials,
247
const
IpoptData
* ip_data,
248
IpoptCalculatedQuantities
* ip_cq)
249
{
250
return
true
;
251
}
253
267
virtual
Index
get_number_of_nonlinear_variables
()
268
{
269
return
-1;
270
}
271
272
virtual
bool
get_list_of_nonlinear_variables
(
Index
num_nonlin_vars,
273
Index
* pos_nonlin_vars)
274
{
275
return
false
;
276
}
278
279
private
:
289
//TNLP();
290
292
TNLP
(
const
TNLP
&);
293
295
void
operator=
(
const
TNLP
&);
297
};
298
299
}
// namespace Ipopt
300
301
#endif
Generated on Mon Mar 17 2014 19:49:13 by
1.8.1.2