Ipopt Documentation  
IpStdCInterface.h
Go to the documentation of this file.
1 /* Copyright (C) 2004, 2010 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-02
6  */
7 
8 #ifndef __IPSTDCINTERFACE_H__
9 #define __IPSTDCINTERFACE_H__
10 
11 #include "IpoptConfig.h"
12 
13 #ifndef IPOPT_EXPORT
14 #ifdef _MSC_VER
15 #define IPOPT_EXPORT(type) type __cdecl
16 #else
17 #define IPOPT_EXPORT(type) type
18 #endif
19 #endif
20 
21 #ifdef __cplusplus
22 extern "C"
23 {
24 #endif
25 
30 typedef double Number;
31 
36 typedef int Index;
37 
42 typedef int Int;
43 
44 /* This includes the SolverReturn enum type */
45 #include "IpReturnCodes.h"
46 
48 struct IpoptProblemInfo;
49 
51 typedef struct IpoptProblemInfo* IpoptProblem;
52 
54 typedef int Bool;
55 #ifndef TRUE
56 # define TRUE (1)
57 #endif
58 #ifndef FALSE
59 # define FALSE (0)
60 #endif
61 
63 typedef void* UserDataPtr;
64 
71 typedef Bool (*Eval_F_CB)(
72  Index n,
73  Number* x,
74  Bool new_x,
75  Number* obj_value,
76  UserDataPtr user_data
77 );
78 
85 typedef Bool (*Eval_Grad_F_CB)(
86  Index n,
87  Number* x,
88  Bool new_x,
89  Number* grad_f,
90  UserDataPtr user_data
91 );
92 
99 typedef Bool (*Eval_G_CB)(
100  Index n,
101  Number* x,
102  Bool new_x,
103  Index m,
104  Number* g,
105  UserDataPtr user_data
106 );
107 
114 typedef Bool (*Eval_Jac_G_CB)(
115  Index n,
116  Number* x,
117  Bool new_x,
118  Index m,
119  Index nele_jac,
120  Index* iRow,
121  Index* jCol,
122  Number* values,
123  UserDataPtr user_data
124 );
125 
132 typedef Bool (*Eval_H_CB)(
133  Index n,
134  Number* x,
135  Bool new_x,
136  Number obj_factor,
137  Index m,
138  Number* lambda,
139  Bool new_lambda,
140  Index nele_hess,
141  Index* iRow,
142  Index* jCol,
143  Number* values,
144  UserDataPtr user_data
145 );
146 
158  Index alg_mod,
159  Index iter_count,
160  Number obj_value,
161  Number inf_pr,
162  Number inf_du,
163  Number mu,
164  Number d_norm,
165  Number regularization_size,
166  Number alpha_du,
167  Number alpha_pr,
168  Index ls_trials,
169  UserDataPtr user_data
170 );
171 
188  Index n,
189  Number* x_L,
197  Number* x_U,
205  Index m,
206  Number* g_L,
214  Number* g_U,
222  Index nele_jac,
223  Index nele_hess,
224  Index index_style,
225  Eval_F_CB eval_f,
226  Eval_G_CB eval_g,
227  Eval_Grad_F_CB eval_grad_f,
228  Eval_Jac_G_CB eval_jac_g,
229  Eval_H_CB eval_h
230 );
231 
236 IPOPTLIB_EXPORT IPOPT_EXPORT(void) FreeIpoptProblem(
237  IpoptProblem ipopt_problem
238 );
239 
245  IpoptProblem ipopt_problem,
246  char* keyword,
247  char* val
248 );
249 
255  IpoptProblem ipopt_problem,
256  char* keyword,
257  Number val
258 );
259 
265  IpoptProblem ipopt_problem,
266  char* keyword,
267  Int val
268 );
269 
275  IpoptProblem ipopt_problem,
276  char* file_name,
277  Int print_level
278 );
279 
287  IpoptProblem ipopt_problem,
288  Number obj_scaling,
289  Number* x_scaling,
290  Number* g_scaling
291 );
292 
304  IpoptProblem ipopt_problem,
305  Intermediate_CB intermediate_cb
306 );
307 
314  IpoptProblem ipopt_problem,
319  Number* x,
320  Number* g,
321  Number* obj_val,
322  Number* mult_g,
325  Number* mult_x_L,
328  Number* mult_x_U,
331  UserDataPtr user_data
335 );
336 
337 #ifdef __cplusplus
338 } /* extern "C" { */
339 #endif
340 
341 #endif
int Index
Type for all indices.
IPOPTLIB_EXPORT Bool OpenIpoptOutputFile(IpoptProblem ipopt_problem, char *file_name, Int print_level)
Function for opening an output file for a given name with given printlevel.
Bool(* Eval_Jac_G_CB)(Index n, Number *x, Bool new_x, Index m, Index nele_jac, Index *iRow, Index *jCol, Number *values, UserDataPtr user_data)
Type defining the callback function for evaluating the Jacobian of the constrant functions.
int Int
Type for all integers.
Bool(* Eval_Grad_F_CB)(Index n, Number *x, Bool new_x, Number *grad_f, UserDataPtr user_data)
Type defining the callback function for evaluating the gradient of the objective function.
IPOPTLIB_EXPORT Bool SetIpoptProblemScaling(IpoptProblem ipopt_problem, Number obj_scaling, Number *x_scaling, Number *g_scaling)
Optional function for setting scaling parameter for the NLP.
int Bool
define a boolean type for C
struct IpoptProblemInfo * IpoptProblem
Pointer to an Ipopt Problem.
Bool(* Eval_H_CB)(Index n, Number *x, Bool new_x, Number obj_factor, Index m, Number *lambda, Bool new_lambda, Index nele_hess, Index *iRow, Index *jCol, Number *values, UserDataPtr user_data)
Type defining the callback function for evaluating the Hessian of the Lagrangian function.
IPOPTLIB_EXPORT IpoptProblem CreateIpoptProblem(Index n, Number *x_L, Number *x_U, Index m, Number *g_L, Number *g_U, Index nele_jac, Index nele_hess, Index index_style, Eval_F_CB eval_f, Eval_G_CB eval_g, Eval_Grad_F_CB eval_grad_f, Eval_Jac_G_CB eval_jac_g, Eval_H_CB eval_h)
Function for creating a new Ipopt Problem object.
Bool(* Eval_G_CB)(Index n, Number *x, Bool new_x, Index m, Number *g, UserDataPtr user_data)
Type defining the callback function for evaluating the value of the constraint functions.
double Number
Type for all number.
#define IPOPTLIB_EXPORT
IPOPTLIB_EXPORT Bool AddIpoptStrOption(IpoptProblem ipopt_problem, char *keyword, char *val)
Function for adding a string option.
IPOPTLIB_EXPORT enum ApplicationReturnStatus IpoptSolve(IpoptProblem ipopt_problem, Number *x, Number *g, Number *obj_val, Number *mult_g, Number *mult_x_L, Number *mult_x_U, UserDataPtr user_data)
Function calling the Ipopt optimization algorithm for a problem previously defined with CreateIpoptPr...
IPOPTLIB_EXPORT void FreeIpoptProblem(IpoptProblem ipopt_problem)
Method for freeing a previously created IpoptProblem.
IPOPTLIB_EXPORT Bool AddIpoptNumOption(IpoptProblem ipopt_problem, char *keyword, Number val)
Function for adding a Number option.
Bool(* Intermediate_CB)(Index alg_mod, Index iter_count, Number obj_value, Number inf_pr, Number inf_du, Number mu, Number d_norm, Number regularization_size, Number alpha_du, Number alpha_pr, Index ls_trials, UserDataPtr user_data)
Type defining the callback function for giving intermediate execution control to the user...
void * UserDataPtr
A pointer for anything that is to be passed between the called and individual callback function...
Bool(* Eval_F_CB)(Index n, Number *x, Bool new_x, Number *obj_value, UserDataPtr user_data)
Type defining the callback function for evaluating the value of the objective function.
ApplicationReturnStatus
Return codes for the Optimize call for an application.
IPOPTLIB_EXPORT Bool AddIpoptIntOption(IpoptProblem ipopt_problem, char *keyword, Int val)
Function for adding an Int option.
IPOPTLIB_EXPORT Bool SetIntermediateCallback(IpoptProblem ipopt_problem, Intermediate_CB intermediate_cb)
Setting a callback function for the "intermediate callback" method in the TNLP.