IpStdCInterface.h File Reference

#include "IpReturnCodes.h"

Go to the source code of this file.

Defines

#define TRUE   (1)
#define FALSE   (0)

Typedefs

typedef double Number
 Type for all number.
typedef int Index
 Type for all incides.
typedef int Int
 Type for all integers.
typedef struct IpoptProblemInfoIpoptProblem
 Pointer to a Ipopt Problem.
typedef int Bool
 define a boolean type for C
typedef void * UserDataPtr
 A pointer for anything that is to be passed between the called and individual callback function.
typedef 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.
typedef 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.
typedef 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.
typedef 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.
typedef 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.

Functions

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.
void FreeIpoptProblem (IpoptProblem ipopt_problem)
 Method for freeing a previously created IpoptProblem.
Bool AddIpoptStrOption (IpoptProblem ipopt_problem, const char *keyword, const char *val)
 Function for adding a string option.
Bool AddIpoptNumOption (IpoptProblem ipopt_problem, const char *keyword, Number val)
 Function for adding a Number option.
Bool AddIpoptIntOption (IpoptProblem ipopt_problem, const char *keyword, Int val)
 Function for adding an Int option.
Bool OpenIpoptOutputFile (IpoptProblem ipopt_problem, char *file_name, Int print_level)
 Function for opening an output file for a given name with given printlevel.
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 CreateIpoptProblem.


Define Documentation

#define FALSE   (0)

#define TRUE   (1)


Typedef Documentation

typedef int Bool

define a boolean type for C

typedef 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.

Return value should be set to false if there was a problem doing the evaluation.

typedef 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.

Return value should be set to false if there was a problem doing the evaluation.

typedef 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.

Return value should be set to false if there was a problem doing the evaluation.

typedef 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.

Return value should be set to false if there was a problem doing the evaluation.

typedef 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.

Return value should be set to false if there was a problem doing the evaluation.

typedef int Index

Type for all incides.

We need to make sure that this is identical with what is defined in Common/IpTypes.hpp

typedef int Int

Type for all integers.

We need to make sure that this is identical with what is defined in Common/IpTypes.hpp

typedef struct IpoptProblemInfo* IpoptProblem

Pointer to a Ipopt Problem.

typedef double Number

Type for all number.

We need to make sure that this is identical with what is defined in Common/IpTypes.hpp

typedef void* UserDataPtr

A pointer for anything that is to be passed between the called and individual callback function.


Function Documentation

Bool AddIpoptIntOption ( IpoptProblem  ipopt_problem,
const char *  keyword,
Int  val 
)

Function for adding an Int option.

Returns FALSE the option could not be set (e.g., if keyword is unknown)

References IpoptProblemInfo::app.

Referenced by F77_FUNC().

Bool AddIpoptNumOption ( IpoptProblem  ipopt_problem,
const char *  keyword,
Number  val 
)

Function for adding a Number option.

Returns FALSE the option could not be set (e.g., if keyword is unknown)

References IpoptProblemInfo::app.

Referenced by F77_FUNC().

Bool AddIpoptStrOption ( IpoptProblem  ipopt_problem,
const char *  keyword,
const char *  val 
)

Function for adding a string option.

Returns FALSE the option could not be set (e.g., if keyword is unknown)

References IpoptProblemInfo::app.

Referenced by F77_FUNC().

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.

This function returns an object that can be passed to the IpoptSolve call. It contains the basic definition of the optimization problem, such as number of variables and constraints, bounds on variables and constraints, information about the derivatives, and the callback function for the computation of the optimization problem functions and derivatives. During this call, the options file PARAMS.DAT is read as well.

If NULL is returned, there was a problem with one of the inputs or reading the options file.

Parameters:
n  Number of optimization variables
x_L  Lower bounds on variables. This array of size n is copied internally, so that the caller can change the incoming data after return without that IpoptProblem is modified. Any value less or equal than the number specified by option 'nlp_lower_bound_inf' is interpreted to be minus infinity.
x_U  Upper bounds on variables. This array of size n is copied internally, so that the caller can change the incoming data after return without that IpoptProblem is modified. Any value greater or equal than the number specified by option 'nlp_upper_bound_inf' is interpreted to be plus infinity.
m  Number of constraints.
g_L  Lower bounds on constraints. This array of size m is copied internally, so that the caller can change the incoming data after return without that IpoptProblem is modified. Any value less or equal than the number specified by option 'nlp_lower_bound_inf' is interpreted to be minus infinity.
g_U  Upper bounds on constraints. This array of size m is copied internally, so that the caller can change the incoming data after return without that IpoptProblem is modified. Any value greater or equal than the number specified by option 'nlp_upper_bound_inf' is interpreted to be plus infinity.
nele_jac  Number of non-zero elements in constraint Jacobian.
nele_hess  Number of non-zero elements in Hessian of Lagrangian.
index_style  indexing style for iRow & jCol, 0 for C style, 1 for Fortran style
eval_f  Callback function for evaluating objective function
eval_g  Callback function for evaluating constraint functions
eval_grad_f  Callback function for evaluating gradient of objective function
eval_jac_g  Callback function for evaluating Jacobian of constraint functions
eval_h  Callback function for evaluating Hessian of Lagrangian function

References IpoptProblemInfo::app, IpoptProblemInfo::eval_f, IpoptProblemInfo::eval_g, IpoptProblemInfo::eval_grad_f, IpoptProblemInfo::eval_h, IpoptProblemInfo::eval_jac_g, IpoptProblemInfo::g_L, IpoptProblemInfo::g_U, fkinkryx::i, IpoptProblemInfo::index_style, IpoptProblemInfo::m, IpoptProblemInfo::n, IpoptProblemInfo::nele_hess, IpoptProblemInfo::nele_jac, IpoptProblemInfo::x_L, and IpoptProblemInfo::x_U.

Referenced by F77_FUNC().

void FreeIpoptProblem ( IpoptProblem  ipopt_problem  ) 

Method for freeing a previously created IpoptProblem.

After freeing an IpoptProblem, it cannot be used anymore.

References IpoptProblemInfo::app, IpoptProblemInfo::g_L, IpoptProblemInfo::g_U, IpoptProblemInfo::m, IpoptProblemInfo::x_L, and IpoptProblemInfo::x_U.

Referenced by F77_FUNC().

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 CreateIpoptProblem.

The return specified outcome of the optimization procedure (e.g., success, failure etc).

Parameters:
ipopt_problem  Problem that is to be optimized. Ipopt will use the options previously specified with AddIpoptOption (etc) for this problem.
x  Input: Starting point Output: Optimal solution
g  Values of constraint at final point (output only - ignored if set to NULL)
obj_val  Final value of objective function (output only - ignored if set to NULL)
mult_g  Final multipliers for constraints (output only - ignored if set to NULL)
mult_x_L  Final multipliers for lower variable bounds (output only - ignored if set to NULL)
mult_x_U  Final multipliers for upper variable bounds (output only - ignored if set to NULL)
user_data  Pointer to user data. This will be passed unmodified to the callback functions.

References IpoptProblemInfo::app, IpoptProblemInfo::eval_f, IpoptProblemInfo::eval_g, IpoptProblemInfo::eval_grad_f, IpoptProblemInfo::eval_h, IpoptProblemInfo::eval_jac_g, IpoptProblemInfo::g_L, IpoptProblemInfo::g_U, fkinkryx::i, IpoptProblemInfo::index_style, Ipopt::Invalid_Problem_Definition, Ipopt::J_ERROR, IpoptProblemInfo::m, IpoptProblemInfo::n, IpoptProblemInfo::nele_hess, IpoptProblemInfo::nele_jac, IpoptProblemInfo::x_L, and IpoptProblemInfo::x_U.

Referenced by F77_FUNC().

Bool OpenIpoptOutputFile ( IpoptProblem  ipopt_problem,
char *  file_name,
Int  print_level 
)

Function for opening an output file for a given name with given printlevel.

Returns false, if there was a problem opening the file.

References IpoptProblemInfo::app.

Referenced by F77_FUNC().


Generated on Fri Sep 26 07:44:21 2008 for SimTKcore by  doxygen 1.5.6