Ipopt Documentation  
 
Loading...
Searching...
No Matches
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
22extern "C"
23{
24#endif
25
30typedef double Number;
31
36typedef int Index;
37
42typedef int Int;
43
44/* This includes the SolverReturn enum type */
45#include "IpReturnCodes.h"
46
48struct IpoptProblemInfo;
49
51typedef struct IpoptProblemInfo* IpoptProblem;
52
54typedef int Bool;
55#ifndef TRUE
56# define TRUE (1)
57#endif
58#ifndef FALSE
59# define FALSE (0)
60#endif
61
63typedef void* UserDataPtr;
64
71typedef Bool (*Eval_F_CB)(
72 Index n,
73 Number* x,
74 Bool new_x,
75 Number* obj_value,
76 UserDataPtr user_data
77);
78
86 Index n,
87 Number* x,
88 Bool new_x,
89 Number* grad_f,
90 UserDataPtr user_data
91);
92
99typedef 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
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
132typedef 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
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
ApplicationReturnStatus
Return codes for the Optimize call for an application.
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_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.
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.
IPOPTLIB_EXPORT Bool AddIpoptIntOption(IpoptProblem ipopt_problem, char *keyword, Int val)
Function for adding an Int 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...
double Number
Type for all number.
void * UserDataPtr
A pointer for anything that is to be passed between the called and individual callback function.
IPOPTLIB_EXPORT void FreeIpoptProblem(IpoptProblem ipopt_problem)
Method for freeing a previously created IpoptProblem.
int Index
Type for all indices.
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.
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.
int Int
Type for all integers.
IPOPTLIB_EXPORT Bool SetIntermediateCallback(IpoptProblem ipopt_problem, Intermediate_CB intermediate_cb)
Setting a callback function for the "intermediate callback" method in the TNLP.
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.
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.
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.
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.
IPOPTLIB_EXPORT Bool AddIpoptStrOption(IpoptProblem ipopt_problem, char *keyword, char *val)
Function for adding a string option.
struct IpoptProblemInfo * IpoptProblem
Pointer to an Ipopt Problem.
IPOPTLIB_EXPORT Bool AddIpoptNumOption(IpoptProblem ipopt_problem, char *keyword, Number val)
Function for adding a Number option.
int Bool
define a boolean type for C
#define IPOPTLIB_EXPORT