Main Page
Namespaces
Classes
Files
File List
File Members
tmp
buildd
coinor-ipopt-3.10.2
Ipopt
examples
ScalableProblems
MittelmannDistCntrlNeumA.hpp
Go to the documentation of this file.
1
// Copyright (C) 2005, 2006 International Business Machines and others.
2
// All Rights Reserved.
3
// This code is published under the Eclipse Public License.
4
//
5
// $Id: MittelmannDistCntrlNeumA.hpp 2005 2011-06-06 12:55:16Z stefan $
6
//
7
// Authors: Andreas Waechter IBM 2005-10-18
8
// based on MyNLP.hpp
9
10
#ifndef __MITTELMANNDISTRCNTRLNEUMA_HPP__
11
#define __MITTELMANNDISTRCNTRLNEUMA_HPP__
12
13
#include "
IpTNLP.hpp
"
14
#include "
RegisteredTNLP.hpp
"
15
16
#ifdef HAVE_CONFIG_H
17
#include "config.h"
18
#else
19
#include "
configall_system.h
"
20
#endif
21
22
#ifdef HAVE_CMATH
23
# include <cmath>
24
#else
25
# ifdef HAVE_MATH_H
26
# include <math.h>
27
# else
28
# error "don't have header file for math"
29
# endif
30
#endif
31
32
#ifdef HAVE_CSTDIO
33
# include <cstdio>
34
#else
35
# ifdef HAVE_STDIO_H
36
# include <stdio.h>
37
# else
38
# error "don't have header file for stdio"
39
# endif
40
#endif
41
42
using namespace
Ipopt;
43
50
class
MittelmannDistCntrlNeumABase
:
public
RegisteredTNLP
51
{
52
public
:
55
MittelmannDistCntrlNeumABase
();
56
58
virtual
~
MittelmannDistCntrlNeumABase
();
59
63
virtual
bool
get_nlp_info(
Index
& n,
Index
&
m
,
Index
& nnz_jac_g,
64
Index
& nnz_h_lag,
IndexStyleEnum
&
index_style
);
65
67
virtual
bool
get_bounds_info(
Index
n,
Number
* x_l,
Number
* x_u,
68
Index
m,
Number
* g_l,
Number
* g_u);
69
71
virtual
bool
get_starting_point(
Index
n,
bool
init_x,
Number
*
x
,
72
bool
init_z,
Number
* z_L,
Number
* z_U,
73
Index
m,
bool
init_lambda,
74
Number
* lambda);
75
77
virtual
bool
eval_f
(
Index
n,
const
Number
* x,
bool
new_x,
Number
& obj_value);
78
80
virtual
bool
eval_grad_f
(
Index
n,
const
Number
* x,
bool
new_x,
Number
* grad_f);
81
83
virtual
bool
eval_g
(
Index
n,
const
Number
* x,
bool
new_x,
Index
m,
Number
*
g
);
84
89
virtual
bool
eval_jac_g
(
Index
n,
const
Number
* x,
bool
new_x,
90
Index
m,
Index
nele_jac
,
Index
* iRow,
Index
*jCol,
91
Number
* values);
92
97
virtual
bool
eval_h
(
Index
n,
const
Number
* x,
bool
new_x,
98
Number
obj_factor,
Index
m,
const
Number
* lambda,
99
bool
new_lambda,
Index
nele_hess
,
Index
* iRow,
100
Index
* jCol,
Number
* values);
101
103
105
virtual
bool
get_scaling_parameters(
Number
&
obj_scaling
,
106
bool
& use_x_scaling,
Index
n,
107
Number
*
x_scaling
,
108
bool
& use_g_scaling,
Index
m,
109
Number
*
g_scaling
);
110
115
virtual
void
finalize_solution(
SolverReturn
status,
116
Index
n,
const
Number
* x,
const
Number
* z_L,
const
Number
* z_U,
117
Index
m,
const
Number
* g,
const
Number
* lambda,
118
Number
obj_value,
119
const
IpoptData
* ip_data,
120
IpoptCalculatedQuantities
* ip_cq);
122
123
protected
:
127
void
SetBaseParameters(
Index
N,
Number
lb_y,
128
Number
ub_y,
Number
lb_u,
Number
ub_u,
129
Number
b_0j,
Number
b_1j,
Number
b_i0,
Number
b_i1,
130
Number
u_init);
131
135
virtual
Number
y_d_cont(
Number
x1,
Number
x2)
const
=0;
137
virtual
Number
fint_cont(
Number
x1,
Number
x2,
Number
y,
Number
u)
const
=0;
139
virtual
Number
fint_cont_dy(
Number
x1,
Number
x2,
Number
y,
Number
u)
const
=0;
141
virtual
Number
fint_cont_du(
Number
x1,
Number
x2,
Number
y,
Number
u)
const
=0;
143
virtual
Number
fint_cont_dydy(
Number
x1,
Number
x2,
Number
y,
Number
u)
const
=0;
146
virtual
bool
fint_cont_dydy_alwayszero()
const
=0;
148
virtual
Number
fint_cont_dudu(
Number
x1,
Number
x2,
Number
y,
Number
u)
const
=0;
151
virtual
bool
fint_cont_dudu_alwayszero()
const
=0;
153
virtual
Number
fint_cont_dydu(
Number
x1,
Number
x2,
Number
y,
Number
u)
const
=0;
156
virtual
bool
fint_cont_dydu_alwayszero()
const
=0;
158
virtual
Number
d_cont(
Number
x1,
Number
x2,
Number
y,
Number
u)
const
=0;
160
virtual
Number
d_cont_dy(
Number
x1,
Number
x2,
Number
y,
Number
u)
const
=0;
162
virtual
Number
d_cont_du(
Number
x1,
Number
x2,
Number
y,
Number
u)
const
=0;
164
virtual
Number
d_cont_dydy(
Number
x1,
Number
x2,
Number
y,
Number
u)
const
=0;
167
virtual
bool
d_cont_dydy_alwayszero()
const
=0;
169
virtual
Number
d_cont_dudu(
Number
x1,
Number
x2,
Number
y,
Number
u)
const
=0;
172
virtual
bool
d_cont_dudu_alwayszero()
const
=0;
174
virtual
Number
d_cont_dydu(
Number
x1,
Number
x2,
Number
y,
Number
u)
const
=0;
177
virtual
bool
d_cont_dydu_alwayszero()
const
=0;
179
180
private
:
192
MittelmannDistCntrlNeumABase
(
const
MittelmannDistCntrlNeumABase
&);
193
MittelmannDistCntrlNeumABase
& operator=(
const
MittelmannDistCntrlNeumABase
&);
195
199
Index
N_
;
201
Number
h_
;
203
Number
hh_
;
205
Number
lb_y_
;
207
Number
ub_y_
;