10# define COI_CALLCONV __stdcall
15#if defined(__cplusplus)
20typedef struct coiRec *coiHandle_t;
22typedef int (*coiErrorCallback_t) (
int ErrCount,
const char *msg);
23extern int coiAPIErrorCount;
27typedef int (COI_CALLCONV *COI_READMATRIX_t) (
double LOWER[],
double CURR[],
double UPPER[],
int VSTA[],
int TYPEX[],
double RHS[],
int ESTA[],
int COLSTA[],
int ROWNO[],
double VALUE[],
int NLFLAG[],
int NUMVAR,
int NUMCON,
int NUMNZ,
void *USRMEM);
28typedef int (COI_CALLCONV *COI_FDEVAL_t) (
const double X[],
double *G,
double JAC[],
int ROWNO,
const int JACNUM[],
int MODE,
int IGNERR,
int *ERRCNT,
int NUMVAR,
int NUMJAC,
int THREAD,
void *USRMEM);
29typedef int (COI_CALLCONV *COI_FDEVALINI_t) (
const double X[],
const int ROWLIST[],
int MODE,
int LISTSIZE,
int NUMTHREAD,
int IGNERR,
int *ERRCNT,
int NUMVAR,
void *USRMEM);
30typedef int (COI_CALLCONV *COI_FDEVALEND_t) (
int IGNERR,
int *ERRCNT,
void *USRMEM);
31typedef int (COI_CALLCONV *COI_STATUS_t) (
int MODSTA,
int SOLSTA,
int ITER,
double OBJVAL,
void *USRMEM);
32typedef int (COI_CALLCONV *COI_SOLUTION_t) (
const double XVAL[],
const double XMAR[],
const int XBAS[],
const int XSTA[],
const double YVAL[],
const double YMAR[],
const int YBAS[],
const int YSTA[],
int NUMVAR,
int NUMCON,
void *USRMEM);
33typedef int (COI_CALLCONV *COI_MESSAGE_t) (
int SMSG,
int DMSG,
int NMSG,
char *MSGV[],
void *USRMEM);
34typedef int (COI_CALLCONV *COI_ERRMSG_t) (
int ROWNO,
int COLNO,
int POSNO,
const char *MSG,
void *USRMEM);
35typedef int (COI_CALLCONV *COI_PROGRESS_t) (
int LEN_INT,
const int INTX[],
int LEN_RL,
const double RL[],
const double X[],
void *USRMEM);
36typedef int (COI_CALLCONV *COI_OPTION_t) (
int NCALL,
double *RVAL,
int *IVAL,
int *LVAL,
char *NAME,
void *USRMEM);
37typedef int (COI_CALLCONV *COI_TRIORD_t) (
int MODE,
int TYPEX,
int STATUS,
int ROWNO,
int COLNO,
int INF,
double VALUE,
double RESID,
void *USRMEM);
38typedef int (COI_CALLCONV *COI_FDINTERVAL_t) (
const double XMIN[],
const double XMAX[],
double *GMIN,
double *GMAX,
double JMIN[],
double JMAX[],
int ROWNO,
const int JACNUM[],
int MODE,
double PINF,
int NUMVAR,
int NUMJAC,
void *USRMEM);
39typedef int (COI_CALLCONV *COI_2DDIR_t) (
const double X[],
const double DX[],
double D2G[],
int ROWNO,
const int JACNUM[],
int *NODRV,
int NUMVAR,
int NUMJAC,
int THREAD,
void *USRMEM);
40typedef int (COI_CALLCONV *COI_2DDIRINI_t) (
const double X[],
const double DX[],
const int ROWLIST[],
int LISTSIZE,
int NUMTHREAD,
int NEWPT,
int *NODRV,
int NUMVAR,
void *USRMEM);
41typedef int (COI_CALLCONV *COI_2DDIREND_t) (
int *NODRV,
void *USRMEM);
42typedef int (COI_CALLCONV *COI_2DDIRLAGR_t) (
const double X[],
const double DX[],
const double U[],
double D2G[],
int NEWPT,
int *NODRV,
int NUMVAR,
int NUMCON,
void *USRMEM);
43typedef int (COI_CALLCONV *COI_2DLAGRSIZE_t) (
int *NODRV,
int NUMVAR,
int NUMCON,
int *NHESS,
int MAXHESS,
void *USRMEM);
44typedef int (COI_CALLCONV *COI_2DLAGRSTR_t) (
int HSRW[],
int HSCL[],
int *NODRV,
int NUMVAR,
int NUMCON,
int NHESS,
void *USRMEM);
45typedef int (COI_CALLCONV *COI_2DLAGRVAL_t) (
const double X[],
const double U[],
const int HSRW[],
const int HSCL[],
double HSVL[],
int *NODRV,
int NUMVAR,
int NUMCON,
int NHESS,
void *USRMEM);
47#define COIGET_Version C__COIGET_Version
48#define COIDEF_NumVar C__COIDEF_NumVar
49#define COIDEF_NumCon C__COIDEF_NumCon
50#define COIDEF_NumNz C__COIDEF_NumNz
51#define COIDEF_NumNlNz C__COIDEF_NumNlNz
52#define COIDEF_NumHess C__COIDEF_NumHess
53#define COIDEF_Base C__COIDEF_Base
54#define COIDEF_Fortran C__COIDEF_Fortran
55#define COIDEF_C C__COIDEF_C
56#define COIDEF_OptDir C__COIDEF_OptDir
57#define COIDEF_ObjVar C__COIDEF_ObjVar
58#define COIDEF_ObjCon C__COIDEF_ObjCon
59#define COIDEF_DebugFV C__COIDEF_DebugFV
60#define COIDEF_StdOut C__COIDEF_StdOut
61#define COIDEF_Square C__COIDEF_Square
62#define COIDEF_License C__COIDEF_License
63#define COIDEF_ItLim C__COIDEF_ItLim
64#define COIDEF_ErrLim C__COIDEF_ErrLim
65#define COIDEF_IniStat C__COIDEF_IniStat
66#define COIDEF_FVincLin C__COIDEF_FVincLin
67#define COIDEF_FVforAll C__COIDEF_FVforAll
68#define COIDEF_MaxSup C__COIDEF_MaxSup
69#define COIDEF_EmptyRow C__COIDEF_EmptyRow
70#define COIDEF_EmptyCol C__COIDEF_EmptyCol
71#define COIDEF_Debug2D C__COIDEF_Debug2D
72#define COIDEF_DisCont C__COIDEF_DisCont
73#define COIDEF_ClearM C__COIDEF_ClearM
74#define COIDEF_ResLim C__COIDEF_ResLim
75#define COIDEF_HessFac C__COIDEF_HessFac
76#define COIDEF_MaxHeap C__COIDEF_MaxHeap
77#define COIDEF_ThreadS C__COIDEF_ThreadS
78#define COIDEF_ThreadF C__COIDEF_ThreadF
79#define COIDEF_Thread2D C__COIDEF_Thread2D
80#define COIDEF_ThreadC C__COIDEF_ThreadC
81#define COIDEF_Optfile C__COIDEF_Optfile
82#define COIDEF_ReadMatrix C__COIDEF_ReadMatrix
83#define COIDEF_FDEval C__COIDEF_FDEval
84#define COIDEF_FDEvalIni C__COIDEF_FDEvalIni
85#define COIDEF_FDEvalEnd C__COIDEF_FDEvalEnd
86#define COIDEF_Status C__COIDEF_Status
87#define COIDEF_Solution C__COIDEF_Solution
88#define COIDEF_Message C__COIDEF_Message
89#define COIDEF_ErrMsg C__COIDEF_ErrMsg
90#define COIDEF_Progress C__COIDEF_Progress
91#define COIDEF_Option C__COIDEF_Option
92#define COIDEF_TriOrd C__COIDEF_TriOrd
93#define COIDEF_FDInterval C__COIDEF_FDInterval
94#define COIDEF_2DDir C__COIDEF_2DDir
95#define COIDEF_2DDirIni C__COIDEF_2DDirIni
96#define COIDEF_2DDirEnd C__COIDEF_2DDirEnd
97#define COIDEF_2DDirLagr C__COIDEF_2DDirLagr
98#define COIDEF_2DLagrSize C__COIDEF_2DLagrSize
99#define COIDEF_2DLagrStr C__COIDEF_2DLagrStr
100#define COIDEF_2DLagrVal C__COIDEF_2DLagrVal
101#define COIDEF_UsrMem C__COIDEF_UsrMem
102#define COIGET_MaxThreads C__COIGET_MaxThreads
103#define COIGET_MaxHeapUsed C__COIGET_MaxHeapUsed
104#define COIGET_RangeErrors C__COIGET_RangeErrors
105#define COI_Solve C__COI_Solve
154int COI_CALLCONV
coiFree(coiHandle_t *cntvect);
216int COI_CALLCONV
COIDEF_License (coiHandle_t cntvect,
int licint1,
int licint2,
int licint3,
const char *licstring);
379int COI_CALLCONV
COIDEF_FDEval (coiHandle_t cntvect, COI_FDEVAL_t coi_fdeval);
397int COI_CALLCONV
COIDEF_Status (coiHandle_t cntvect, COI_STATUS_t coi_status);
415int COI_CALLCONV
COIDEF_ErrMsg (coiHandle_t cntvect, COI_ERRMSG_t coi_errmsg);
427int COI_CALLCONV
COIDEF_Option (coiHandle_t cntvect, COI_OPTION_t coi_option);
433int COI_CALLCONV
COIDEF_TriOrd (coiHandle_t cntvect, COI_TRIORD_t coi_triord);
445int COI_CALLCONV
COIDEF_2DDir (coiHandle_t cntvect, COI_2DDIR_t coi_2ddir);
485#if defined(__cplusplus)
program fvforall
Main program. A simple setup and call of CONOPT.
program fvinclin
Main program. A simple setup and call of CONOPT.
int COI_CALLCONV COIDEF_ReadMatrix(coiHandle_t cntvect, COI_READMATRIX_t coi_readmatrix)
define callback routine for providing the matrix data to CONOPT.
int COI_CALLCONV COIDEF_Message(coiHandle_t cntvect, COI_MESSAGE_t coi_message)
define callback routine for handling messages returned during the solution process.
int COI_CALLCONV COIDEF_Solution(coiHandle_t cntvect, COI_SOLUTION_t coi_solution)
define callback routine for returning the final solution values.
int COI_CALLCONV COIDEF_Status(coiHandle_t cntvect, COI_STATUS_t coi_status)
define callback routine for returning the completion status.
int COI_CALLCONV COIDEF_ErrMsg(coiHandle_t cntvect, COI_ERRMSG_t coi_errmsg)
define callback routine for returning error messages for row, column or Jacobian elements.
int COI_CALLCONV COIDEF_FDEval(coiHandle_t cntvect, COI_FDEVAL_t coi_fdeval)
define callback routine for performing function and derivative evaluations.
int COI_CALLCONV COIDEF_2DDirEnd(coiHandle_t cntvect, COI_2DDIREND_t coi_2ddirend)
define callback routine for termination the computation of second derivatives for a constraint in a d...
int COI_CALLCONV COIDEF_2DDirLagr(coiHandle_t cntvect, COI_2DDIRLAGR_t coi_2ddirlagr)
define callback routine for computing the second derivative of the Lagrangian in a direction.
int COI_CALLCONV COIDEF_2DDirIni(coiHandle_t cntvect, COI_2DDIRINI_t coi_2ddirini)
define callback routine for initializing the computation of second derivatives for a constraint in a ...
int COI_CALLCONV COIDEF_Progress(coiHandle_t cntvect, COI_PROGRESS_t coi_progress)
define callback routine for monitoring the algorithmic progress.
int COI_CALLCONV COIDEF_FDInterval(coiHandle_t cntvect, COI_FDINTERVAL_t coi_fdinterval)
define callback routine for performing function and derivative evaluations on intervals.
int COI_CALLCONV COIDEF_Option(coiHandle_t cntvect, COI_OPTION_t coi_option)
define callback routine for defining runtime options.
int COI_CALLCONV COIDEF_2DLagrVal(coiHandle_t cntvect, COI_2DLAGRVAL_t coi_2dlagrval)
define callback routine for computing the values of the second derivatives of the Lagrangian.
int COI_CALLCONV COIDEF_UsrMem(coiHandle_t cntvect, void *usrmem)
provides a pointer to user memory that is available in all callback functions. NOTE: this is not a ca...
int COI_CALLCONV COIDEF_2DDir(coiHandle_t cntvect, COI_2DDIR_t coi_2ddir)
define callback routine for computing the second derivative for a constraint in a direction.
int COI_CALLCONV COIDEF_2DLagrStr(coiHandle_t cntvect, COI_2DLAGRSTR_t coi_2dlagrstr)
define callback routine for providing the structure of the second derivatives of the Lagrangian.
int COI_CALLCONV COIDEF_FDEvalIni(coiHandle_t cntvect, COI_FDEVALINI_t coi_fdevalini)
define callback routine to perform initialization tasks for the function and derivative evaluation.
int COI_CALLCONV COIDEF_TriOrd(coiHandle_t cntvect, COI_TRIORD_t coi_triord)
define callback routine for providing the triangular order information.
int COI_CALLCONV COIDEF_Optfile(coiHandle_t cntvect, const char *optfile)
define callback routine for defining an options file.
int COI_CALLCONV COIDEF_FDEvalEnd(coiHandle_t cntvect, COI_FDEVALEND_t coi_fdevalend)
define callback routine for the termination of the function and derivative evaluation.
int COI_CALLCONV COIDEF_ThreadC(coiHandle_t cntvect, int threadc)
check for thread compatibility.
int COI_CALLCONV COIDEF_DebugFV(coiHandle_t cntvect, int debugfv)
turn Debugging of FDEval on and off.
int COI_CALLCONV COIDEF_License(coiHandle_t cntvect, int licint1, int licint2, int licint3, const char *licstring)
define the License Information.
int COI_CALLCONV COIDEF_FVincLin(coiHandle_t cntvect, int fvinclin)
include the linear terms in function evaluations.
int COI_CALLCONV COIDEF_ThreadF(coiHandle_t cntvect, int threadf)
number of threads allowed for simultaneous FDEval calls.
int COI_CALLCONV COIDEF_EmptyCol(coiHandle_t cntvect, int emptycol)
allow empty columns.
int COI_CALLCONV COIDEF_ErrLim(coiHandle_t cntvect, int errlim)
define the Error Limit.
int COI_CALLCONV COIDEF_Base(coiHandle_t cntvect, int base)
define the Base index for vectors.
int COI_CALLCONV COIDEF_C(coiHandle_t cntvect)
define C Conventions for Argument Passing.
int COI_CALLCONV COIDEF_Debug2D(coiHandle_t cntvect, int debug2d)
turn debugging of 2nd derivatives on and off.
int COI_CALLCONV COIDEF_IniStat(coiHandle_t cntvect, int inistat)
handling of the initial status values.
int COI_CALLCONV COIDEF_ResLim(coiHandle_t cntvect, double reslim)
define resource limit.
int COI_CALLCONV COIDEF_Fortran(coiHandle_t cntvect)
define Fortran Conventions for Argument Passing.
int COI_CALLCONV COIDEF_MaxHeap(coiHandle_t cntvect, double maxheap)
define Limit on Heap Memory. ""
int COI_CALLCONV COIDEF_DisCont(coiHandle_t cntvect, int discont)
allow discontinuous functions and derivatives.
int COI_CALLCONV COIDEF_StdOut(coiHandle_t cntvect, int tostdout)
allow output to StdOut.
int COI_CALLCONV COIDEF_ClearM(coiHandle_t cntvect, int clearm)
ClearM.
int COI_CALLCONV COIDEF_HessFac(coiHandle_t cntvect, double hessfac)
factor for Hessian density relative to Jacobian density HessFac.
int COI_CALLCONV COIDEF_ThreadS(coiHandle_t cntvect, int threads)
number of threads allowed internally in CONOPT.
int COI_CALLCONV COIDEF_Thread2D(coiHandle_t cntvect, int thread2d)
number of threads allowed for simultaneous 2DDir calls.
int COI_CALLCONV COIDEF_FVforAll(coiHandle_t cntvect, int fvforall)
call the FDEval for all constraints, including linear constraints.
int COI_CALLCONV COIDEF_Square(coiHandle_t cntvect, int square)
square models.
int COI_CALLCONV COIDEF_ItLim(coiHandle_t cntvect, int itlim)
define the Iteration Limit.
int COI_CALLCONV COIDEF_MaxSup(coiHandle_t cntvect, int maxsup)
limit on superbasics.
int COI_CALLCONV COIDEF_EmptyRow(coiHandle_t cntvect, int emptyrow)
allow empty rows.
int COI_CALLCONV COIDEF_NumHess(coiHandle_t cntvect, int numhess)
defines the Number of Hessian Nonzeros.
int COI_CALLCONV COIDEF_ObjVar(coiHandle_t cntvect, int objvar)
defines the Objective Variable.
int COI_CALLCONV COIDEF_ObjCon(coiHandle_t cntvect, int objcon)
defines the Objective Constraint.
int COI_CALLCONV COIDEF_NumVar(coiHandle_t cntvect, int numvar)
defines the number of variables in the model.
int COI_CALLCONV COIDEF_NumNz(coiHandle_t cntvect, int numnz)
defines the number of nonzero elements in the Jacobian.
int COI_CALLCONV COIDEF_NumCon(coiHandle_t cntvect, int numcon)
defines the number of constraints in the model.
int COI_CALLCONV COIDEF_OptDir(coiHandle_t cntvect, int optdir)
defines the Optimization Direction.
int COI_CALLCONV COIDEF_NumNlNz(coiHandle_t cntvect, int numnlnz)
defines the Number of Nonlinear Nonzeros.
void COI_CALLCONV coiFinalize(void)
finializes the solving process for CONOPT. This must be called when using OpenMP. It will terminate t...
int COI_CALLCONV coiCreate(coiHandle_t *cntvect)
initialises and create the control vector.
int COI_CALLCONV coiFree(coiHandle_t *cntvect)
frees the control vector.
int COI_CALLCONV COI_Solve(coiHandle_t cntvect)
method for starting the solving process of CONOPT.
int COI_CALLCONV COIGET_MaxThreads(coiHandle_t cntvect)
returns the maximum number of threads that can be used by CONOPT.
double COI_CALLCONV COIGET_MaxHeapUsed(coiHandle_t cntvect)
After a model has been solved this method will return the amount of heap memory used.
int COI_CALLCONV COIGET_RangeErrors(coiHandle_t cntvect)
returns the range errors that were encountered.
void COI_CALLCONV COIGET_Version(int *major, int *minor, int *patch)
returns the version number. It can be used to ensure that the modeler is linked to the correct versio...
program square
Main program. A simple setup and call of CONOPT.