- Main Page
- Namespaces
- Classes
- Files

- File List
- File Members

# /home/coin/SVN-release/Ipopt-3.2.1/Ipopt/src/Interfaces/IpStdCInterface.h File Reference

`#include "IpReturnCodes.h"`

Include dependency graph for IpStdCInterface.h:

This graph shows which files directly or indirectly include this file:

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 IpoptProblemInfo * | IpoptProblem
| 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, char *keyword, char *val)
| Function for adding a string option.
Bool | AddIpoptNumOption (IpoptProblem ipopt_problem, char *keyword, Number val)
| Function for adding a Number option.
Bool | AddIpoptIntOption (IpoptProblem ipopt_problem, 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 TRUE (1)

Definition at line 45 of file IpStdCInterface.h.

#define FALSE (0)

Definition at line 48 of file IpStdCInterface.h.

## Typedef Documentation

typedef double Number

Type for all number.

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

Definition at line 21 of file IpStdCInterface.h.

typedef int Index

Type for all incides.

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

Definition at line 25 of file IpStdCInterface.h.

typedef int Int

Type for all integers.

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

Definition at line 29 of file IpStdCInterface.h.

typedef struct IpoptProblemInfo* IpoptProblem

Pointer to a Ipopt Problem.

Definition at line 40 of file IpStdCInterface.h.

typedef int Bool

define a boolean type for C

Definition at line 43 of file IpStdCInterface.h.

typedef void* UserDataPtr

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

Definition at line 53 of file IpStdCInterface.h.

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.

Definition at line 58 of file IpStdCInterface.h.

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.

Definition at line 64 of file IpStdCInterface.h.

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.

Definition at line 70 of file IpStdCInterface.h.

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.

Definition at line 76 of file IpStdCInterface.h.

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.

Definition at line 84 of file IpStdCInterface.h.

## Function Documentation

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

void FreeIpoptProblem | ( | IpoptProblem | ipopt_problem | ) |

Method for freeing a previously created IpoptProblem.

After freeing an IpoptProblem, it cannot be used anymore.

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

Function for adding a string option.

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

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

Function for adding a Number option.

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

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

Function for adding an Int option.

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

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.

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.