55#define NLPI_NAME "conopt"
56#define NLPI_DESC "CONOPT interface"
57#define NLPI_PRIORITY 2000
59#define DEFAULT_RANDSEED 107
60#define MAXPERTURB 0.01
72 char license_text[81];
148 assert(NUMVAR >= noraclevars);
151 assert(NUMCON == noracleconss + 1);
181 assert(noraclevars <= problem->varsolsize);
182 assert(noracleconss <= problem->conssolsize);
205 for(
int i = 0;
i < noraclevars;
i++ )
209 else if( XBAS[
i] == 1 )
213 for(
int i = 0;
i < NUMCON-1;
i++ )
248 int* rangeconsidxs =
NULL;
250 const int* jaccoloffsets;
268 SCIPdebugMsg(
scip,
"NLP sizes passed to CONOPT: NUMVAR = %d, NUMCON = %d, NUMNZ = %d\n", NUMVAR, NUMCON, NUMNZ);
275 if( NUMVAR - norigvars > 0 )
286 for(
int i = 0;
i < norigvars;
i++ )
301 for(
int i = 0;
i < norigvars; ++
i )
303 if( lbs[
i] > CURR[
i] )
305 else if( ubs[
i] < CURR[
i] )
314 SCIPdebugMsg(
scip,
"CONOPT started without initial primal values; make up starting guess by projecting 0 onto variable bounds\n");
316 for(
int i = 0;
i < norigvars; ++
i )
320 else if( ubs[
i] < 0.0 )
328 for(
int i = 0;
i < NUMCON-1;
i++ )
345 LOWER[norigvars + nslackvars] = lhs;
346 UPPER[norigvars + nslackvars] = rhs;
357 rangeconsidxs[nslackvars] =
i;
376 assert(norigvars + nslackvars == NUMVAR);
390 assert(jaccoloffsets ==
NULL || jaccoloffsets[norigvars] <= NUMNZ);
409 for(
int i = 0;
i < norigvars;
i++ )
412 COLSTA[
i] = jaccoloffsets !=
NULL ? jaccoloffsets[
i] + objnzcnt : objnzcnt;
414 if( jaccoloffsets !=
NULL )
417 for(
int j = jaccoloffsets[
i]; j < jaccoloffsets[
i+1]; j++ )
419 ROWNO[j+objnzcnt] = jacrows[j];
420 NLFLAG[j+objnzcnt] = jacrownlflags[j] ? 1 : 0;
421 if( NLFLAG[j+objnzcnt] == 0 )
425 ++(nrownz[jacrows[j]]);
431 if( objnz !=
NULL && objnzcnt < nobjnz &&
i == objnz[objnzcnt] )
433 int idx = jaccoloffsets !=
NULL ? jaccoloffsets[
i+1] + objnzcnt : objnzcnt;
435 ROWNO[idx] = NUMCON - 1;
436 NLFLAG[idx] = objnlflags[objnzcnt] ? 1 : 0;
437 if( NLFLAG[idx] == 0 )
441 ++(nrownz[NUMCON-1]);
447 COLSTA[norigvars] = jaccoloffsets !=
NULL ? jaccoloffsets[norigvars] + objnzcnt : objnzcnt;
454 for(
int i = 0;
i < nslackvars;
i++ )
456 COLSTA[norigvars+
i] = COLSTA[norigvars] +
i;
457 ROWNO[COLSTA[norigvars+
i]] = rangeconsidxs[
i];
458 NLFLAG[COLSTA[norigvars+
i]] = 0;
459 VALUE[COLSTA[norigvars+
i]] = -1.0;
462 COLSTA[NUMVAR] = NUMNZ;
466 for(
int i = 0;
i < NUMNZ; ++
i )
467 assert(ROWNO[
i] >= 0 && ROWNO[
i] < NUMCON);
470#ifdef STRUCTURE_DEBUG
473 for(
int i = 0;
i <= NUMVAR;
i++ )
478 for(
int i = 0;
i < NUMNZ;
i++ )
483 for(
int i = 0;
i < NUMNZ;
i++ )
488 for(
int i = 0;
i < NUMNZ;
i++ )
489 if( VALUE[
i] == 1.234e34 )
529 for(
int i = 0;
i < SMSG;
i++ )
533 for(
int i = 0;
i < SMSG ||
i < DMSG;
i++ )
554 if( ROWNO == -1 && COLNO == -1 )
556 else if( ROWNO == -1 )
558 else if( COLNO == -1 )
561 SCIPinfoMessage(problem->
scip,
NULL,
"\nCONOPT error/warning: variable %d appearing in constraint %d: ", COLNO, ROWNO);
628 SCIPdebugMsg(
scip,
"NLP problem status unknown (CONOPT status %d)\n", MODSTA);
633 SCIPerrorMessage(
"CONOPT returned an unexpected solution status %d\n", MODSTA);
675 SCIPerrorMessage(
"CONOPT returned an unexpected termination status %d\n", SOLSTA);
730 if( MODE == 2 || MODE == 3 )
815 strcpy(NAME,
"LOCNPT");
822 strcpy(NAME,
"RTREDG");
826 strcpy(NAME,
"Flg_NoDefc");
849 const int* hessoffsets;
861 for(
int i = 0;
i < NHESS;
i++ )
864 while(
i == hessoffsets[col+1] )
935 const int* jacoffsets;
936 const int* hessoffsets;
938 const int* objgradnz;
947 if( data->solvetime ==
NULL )
948 if( data->solvetime ==
NULL )
957 for(
int i = 0;
i < nconss;
i++ )
967 COI_Error += COIDEF_EmptyCol(problem->
CntVect, 1);
970 COI_Error += COIDEF_NumVar(problem->
CntVect,
nvars + nrangeconss);
971 COI_Error += COIDEF_NumCon(problem->
CntVect, nconss + 1);
978 COI_Error += COIDEF_NumNz(problem->
CntVect, jacoffsets !=
NULL ? jacoffsets[
nvars] + nrangeconss + nobjgradnz :
979 nrangeconss + nobjgradnz);
982 COI_Error += COIDEF_NumNlNz(problem->
CntVect, nnlnz + nobjgradnls);
986 COI_Error += COIDEF_NumHess(problem->
CntVect, hessoffsets[
nvars]);
989 COI_Error += COIDEF_OptDir(problem->
CntVect, -1);
993 COI_Error += COIDEF_ObjCon(problem->
CntVect, nconss);
1008 COI_Error += COIDEF_FVincLin(problem->
CntVect, 1);
1011 COI_Error += COIDEF_UsrMem(problem->
CntVect, (
void*)problem);
1014 if( data->license_text[0] !=
'\0' )
1015 COI_Error += COIDEF_License(problem->
CntVect, data->license_int_1, data->license_int_2, data->license_int_3, data->license_text);
1034 SCIPdebugMsg(problem->
scip,
"warmstart parameter not supported by CONOPT interface yet. Ignored.\n");
1038 SCIPwarningMessage(problem->
scip,
"lobjlimit parameter not supported by CONOPT interface yet. Ignored.\n");
1042 SCIPdebugMsg(problem->
scip,
"fastfail parameter not supported by CONOPT interface yet. Ignored.\n");
1076 if( sourcenlpidata->license_text[0] !=
'\0' )
1082 sourcenlpidata->license_int_2, sourcenlpidata->license_int_3, sourcenlpidata->license_text);
1096 if( (*nlpidata)->solvetime !=
NULL )
1097 if( (*nlpidata)->solvetime !=
NULL )
1108#ifdef SCIP_DISABLED_CODE
1119#define nlpiGetSolverPointerConopt NULL
1132 (*problem)->firstrun =
TRUE;
1133 (*problem)->scip =
scip;
1139 if( COI_Create(&((*problem)->CntVect)) || (*problem)->CntVect ==
NULL )
1161 if( (*problem)->oracle !=
NULL )
1169 if( COI_Free(&((*problem)->CntVect)) )
1178#ifdef PRINT_NLPSTATS
1179 SCIPinfoMessage(
scip,
NULL,
"\nNLP solver CONOPT stats: ncalls = %d, nsuccess = %d, nlimit = %d, nlocinfeas = %d, nother = %d\n",
1180 (*problem)->ncalls, (*problem)->nsuccess, (*problem)->nlimit, (*problem)->nlocinfeas, (*problem)->nother);
1186#ifdef SCIP_DISABLED_CODE
1197#define nlpiGetProblemPointerConopt NULL
1211 problem->firstrun =
TRUE;
1226 nlininds, lininds, linvals, exprs, names) );
1229 problem->firstrun =
TRUE;
1245 problem->firstrun =
TRUE;
1274 oracle = problem->oracle;
1279 for(
int i = 0;
i < nconss; ++
i )
1297 problem->firstrun =
TRUE;
1307 problem->firstrun =
TRUE;
1331 problem->firstrun =
TRUE;
1347 problem->firstrun =
TRUE;
1363 problem->firstrun =
TRUE;
1379 problem->firstrun =
TRUE;
1405 if( primalvalues !=
NULL )
1407 if( !problem->initguess )
1440 if( param.timelimit == 0.0 )
1443 problem->niterations = 0;
1444 problem->solvetime = 0.0;
1451 problem->niterations = -1;
1452 problem->solvetime = -1.0;
1458 if( problem->firstrun )
1461 problem->firstrun =
FALSE;
1469 COI_Error = COI_Solve(problem->CntVect);
1481 SCIPdebugMsg(
scip,
"Problem structure computation error in CONOPT's ReadMatrix callback\n");
1484 SCIPdebugMsg(
scip,
"Errors encountered in CONOPT during solution, %d\n", COI_Error);
1501 return problem->solstat;
1511 return problem->termstat;
1520 if( primalvalues !=
NULL )
1521 *primalvalues = problem->lastprimal;
1523 if( consdualvalues !=
NULL )
1524 *consdualvalues = problem->lastdualcons;
1526 if( varlbdualvalues !=
NULL )
1527 *varlbdualvalues = problem->lastduallb;
1529 if( varubdualvalues !=
NULL )
1530 *varubdualvalues = problem->lastdualub;
1533 *
objval = problem->objval;
1546 statistics->niterations = problem->niterations;
1547 statistics->totaltime = problem->solvetime;
1550 statistics->boundviol = 0.0;
1569#if defined(CONOPT_LICENSE_INT_1) && defined(CONOPT_LICENSE_INT_2) && defined(CONOPT_LICENSE_INT_3) && \
1570 defined(CONOPT_LICENSE_TEXT)
1571 nlpidata->license_int_1 = CONOPT_LICENSE_INT_1;
1572 nlpidata->license_int_2 = CONOPT_LICENSE_INT_2;
1573 nlpidata->license_int_3 = CONOPT_LICENSE_INT_3;
1574 (void)
SCIPsnprintf(nlpidata->license_text, (
int)
sizeof(nlpidata->license_text),
"%s", CONOPT_LICENSE_TEXT);
1582 nlpiAddVarsConopt, nlpiAddConstraintsConopt, nlpiSetObjectiveConopt,
1583 nlpiChgVarBoundsConopt, nlpiChgConsSidesConopt, nlpiDelVarSetConopt, nlpiDelConstraintSetConopt,
1584 nlpiChgLinearCoefsConopt, nlpiChgExprConopt, nlpiChgObjConstantConopt,
1585 nlpiSetInitialGuessConopt, nlpiSolveConopt,
1586 nlpiGetSolstatConopt, nlpiGetTermstatConopt, nlpiGetSolutionConopt, nlpiGetStatisticsConopt,
1609 data->license_int_1 = integer_1;
1610 data->license_int_2 = integer_2;
1611 data->license_int_3 = integer_3;
1612 (void)
SCIPsnprintf(data->license_text, (
int)
sizeof(data->license_text),
"%s", text);
1615#define STR_HELPER(x) #x
1616#define STR(x) STR_HELPER(x)
1623 return "CONOPT " STR(CONOPT_VERSION_MAJOR)
"." STR(CONOPT_VERSION_MINOR)
"." STR(CONOPT_VERSION_PATCH);
1631 return "Feasible path solver for large-scale nonlinear problems (conopt.com)";
void SCIPinfoMessage(SCIP *scip, FILE *file, const char *formatstr,...)
#define SCIPdebugMsgPrint
void SCIPwarningMessage(SCIP *scip, const char *formatstr,...)
SCIP_RETCODE SCIPincludeNlpSolverConopt(SCIP *scip)
SCIP_RETCODE SCIPnlpiOracleEvalObjectiveValue(SCIP *scip, SCIP_NLPIORACLE *oracle, const SCIP_Real *x, SCIP_Real *objval)
SCIP_RETCODE SCIPnlpiOracleChgLinearCoefs(SCIP *scip, SCIP_NLPIORACLE *oracle, int considx, int nentries, const int *varidxs, const SCIP_Real *newcoefs)
SCIP_RETCODE SCIPnlpiOracleEvalConstraintInterval(SCIP *scip, SCIP_NLPIORACLE *oracle, SCIP_Real infinity, int considx, const SCIP_Real *xmin, const SCIP_Real *xmax, SCIP_Real *conmin, SCIP_Real *conmax)
SCIP_RETCODE SCIPnlpiOracleGetHessianLagSparsity(SCIP *scip, SCIP_NLPIORACLE *oracle, const int **offset, const int **allnz, SCIP_Bool colwise)
SCIP_RETCODE SCIPnlpiOracleChgVarBounds(SCIP *scip, SCIP_NLPIORACLE *oracle, int nvars, const int *indices, const SCIP_Real *lbs, const SCIP_Real *ubs)
SCIP_RETCODE SCIPnlpiOracleAddConstraints(SCIP *scip, SCIP_NLPIORACLE *oracle, int nconss, const SCIP_Real *lhss, const SCIP_Real *rhss, const int *nlininds, int *const *lininds, SCIP_Real *const *linvals, SCIP_EXPR **exprs, const char **consnames)
SCIP_RETCODE SCIPnlpiOracleDelVarSet(SCIP *scip, SCIP_NLPIORACLE *oracle, int *delstats)
SCIP_RETCODE SCIPnlpiOracleCreate(SCIP *scip, SCIP_NLPIORACLE **oracle)
SCIP_RETCODE SCIPnlpiOracleEvalObjectiveGradient(SCIP *scip, SCIP_NLPIORACLE *oracle, const SCIP_Real *x, SCIP_Bool isnewx, SCIP_Real *objval, SCIP_Real *objgrad)
SCIP_RETCODE SCIPnlpiOracleResetEvalTime(SCIP *scip, SCIP_NLPIORACLE *oracle)
SCIP_RETCODE SCIPnlpiOracleSetObjective(SCIP *scip, SCIP_NLPIORACLE *oracle, const SCIP_Real constant, int nlin, const int *lininds, const SCIP_Real *linvals, SCIP_EXPR *expr)
SCIP_Real SCIPnlpiOracleGetConstraintRhs(SCIP_NLPIORACLE *oracle, int considx)
SCIP_Real SCIPnlpiOracleGetEvalTime(SCIP *scip, SCIP_NLPIORACLE *oracle)
SCIP_RETCODE SCIPnlpiOracleChgConsSides(SCIP *scip, SCIP_NLPIORACLE *oracle, int nconss, const int *indices, const SCIP_Real *lhss, const SCIP_Real *rhss)
SCIP_Real SCIPnlpiOracleGetConstraintLhs(SCIP_NLPIORACLE *oracle, int considx)
SCIP_RETCODE SCIPnlpiOracleGetJacobianColSparsity(SCIP *scip, SCIP_NLPIORACLE *oracle, const int **coloffsets, const int **rows, const SCIP_Bool **rownlflags, int *nnlnz)
SCIP_RETCODE SCIPnlpiOracleAddVars(SCIP *scip, SCIP_NLPIORACLE *oracle, int nvars, const SCIP_Real *lbs, const SCIP_Real *ubs, const char **varnames)
SCIP_RETCODE SCIPnlpiOracleEvalHessianLag(SCIP *scip, SCIP_NLPIORACLE *oracle, const SCIP_Real *x, SCIP_Bool isnewx_obj, SCIP_Bool isnewx_cons, SCIP_Real objfactor, const SCIP_Real *lambda, SCIP_Real *hessian, SCIP_Bool colwise)
SCIP_RETCODE SCIPnlpiOracleEvalConstraintGradient(SCIP *scip, SCIP_NLPIORACLE *oracle, const int considx, const SCIP_Real *x, SCIP_Bool isnewx, SCIP_Real *conval, SCIP_Real *congrad)
int SCIPnlpiOracleGetNVars(SCIP_NLPIORACLE *oracle)
int SCIPnlpiOracleGetNConstraints(SCIP_NLPIORACLE *oracle)
SCIP_RETCODE SCIPnlpiOracleGetObjGradientNnz(SCIP *scip, SCIP_NLPIORACLE *oracle, const int **nz, const SCIP_Bool **nlnz, int *nnz, int *nnlnz)
SCIP_RETCODE SCIPnlpiOracleDelConsSet(SCIP *scip, SCIP_NLPIORACLE *oracle, int *delstats)
SCIP_RETCODE SCIPnlpiOracleSetProblemName(SCIP *scip, SCIP_NLPIORACLE *oracle, const char *name)
SCIP_RETCODE SCIPnlpiOracleChgObjConstant(SCIP *scip, SCIP_NLPIORACLE *oracle, SCIP_Real objconstant)
SCIP_RETCODE SCIPnlpiOracleEvalConstraintValue(SCIP *scip, SCIP_NLPIORACLE *oracle, int considx, const SCIP_Real *x, SCIP_Real *conval)
SCIP_Real SCIPnlpiOracleGetConstraintLinearCoef(SCIP_NLPIORACLE *oracle, int considx, int varpos)
SCIP_RETCODE SCIPnlpiOracleEvalObjectiveInterval(SCIP *scip, SCIP_NLPIORACLE *oracle, SCIP_Real infinity, const SCIP_Real *xmin, const SCIP_Real *xmax, SCIP_Real *objmin, SCIP_Real *objmax)
const SCIP_Real * SCIPnlpiOracleGetVarLbs(SCIP_NLPIORACLE *oracle)
const SCIP_Real * SCIPnlpiOracleGetVarUbs(SCIP_NLPIORACLE *oracle)
SCIP_RETCODE SCIPnlpiOracleFree(SCIP *scip, SCIP_NLPIORACLE **oracle)
struct SCIP_NlpiOracle SCIP_NLPIORACLE
SCIP_RETCODE SCIPnlpiOracleChgExpr(SCIP *scip, SCIP_NLPIORACLE *oracle, int considx, SCIP_EXPR *expr)
void SCIPsetLicenseConopt(SCIP_NLPI *nlpi, int integer_1, int integer_2, int integer_3, const char *text)
const char * SCIPgetSolverDescConopt(void)
SCIP_Bool SCIPisConoptAvailableConopt(void)
const char * SCIPgetSolverNameConopt(void)
SCIP_RETCODE SCIPincludeExternalCodeInformation(SCIP *scip, const char *name, const char *description)
#define SCIPfreeCleanBufferArray(scip, ptr)
#define SCIPallocCleanBufferArray(scip, ptr, num)
#define SCIPfreeMemoryArrayNull(scip, ptr)
#define SCIPallocClearBlockMemory(scip, ptr)
#define SCIPallocClearBlockMemoryArray(scip, ptr, num)
#define SCIPallocBufferArray(scip, ptr, num)
#define SCIPfreeBufferArray(scip, ptr)
#define SCIPduplicateMemoryArray(scip, ptr, source, num)
#define SCIPfreeBlockMemory(scip, ptr)
#define SCIPfreeBlockMemoryArrayNull(scip, ptr, num)
#define SCIPduplicateBlockMemoryArray(scip, ptr, source, num)
SCIP_RETCODE SCIPincludeNlpi(SCIP *scip, const char *name, const char *description, int priority, SCIP_DECL_NLPICOPY((*nlpicopy)), SCIP_DECL_NLPIFREE((*nlpifree)), SCIP_DECL_NLPIGETSOLVERPOINTER((*nlpigetsolverpointer)), SCIP_DECL_NLPICREATEPROBLEM((*nlpicreateproblem)), SCIP_DECL_NLPIFREEPROBLEM((*nlpifreeproblem)), SCIP_DECL_NLPIGETPROBLEMPOINTER((*nlpigetproblempointer)), SCIP_DECL_NLPIADDVARS((*nlpiaddvars)), SCIP_DECL_NLPIADDCONSTRAINTS((*nlpiaddconstraints)), SCIP_DECL_NLPISETOBJECTIVE((*nlpisetobjective)), SCIP_DECL_NLPICHGVARBOUNDS((*nlpichgvarbounds)), SCIP_DECL_NLPICHGCONSSIDES((*nlpichgconssides)), SCIP_DECL_NLPIDELVARSET((*nlpidelvarset)), SCIP_DECL_NLPIDELCONSSET((*nlpidelconsset)), SCIP_DECL_NLPICHGLINEARCOEFS((*nlpichglinearcoefs)), SCIP_DECL_NLPICHGEXPR((*nlpichgexpr)), SCIP_DECL_NLPICHGOBJCONSTANT((*nlpichgobjconstant)), SCIP_DECL_NLPISETINITIALGUESS((*nlpisetinitialguess)), SCIP_DECL_NLPISOLVE((*nlpisolve)), SCIP_DECL_NLPIGETSOLSTAT((*nlpigetsolstat)), SCIP_DECL_NLPIGETTERMSTAT((*nlpigettermstat)), SCIP_DECL_NLPIGETSOLUTION((*nlpigetsolution)), SCIP_DECL_NLPIGETSTATISTICS((*nlpigetstatistics)), SCIP_NLPIDATA *nlpidata)
SCIP_NLPI * SCIPfindNlpi(SCIP *scip, const char *name)
SCIP_NLPIDATA * SCIPnlpiGetData(SCIP_NLPI *nlpi)
SCIP_RETCODE SCIPcreateClock(SCIP *scip, SCIP_CLOCK **clck)
SCIP_RETCODE SCIPresetClock(SCIP *scip, SCIP_CLOCK *clck)
SCIP_RETCODE SCIPfreeClock(SCIP *scip, SCIP_CLOCK **clck)
SCIP_Real SCIPgetClockTime(SCIP *scip, SCIP_CLOCK *clck)
SCIP_RETCODE SCIPstartClock(SCIP *scip, SCIP_CLOCK *clck)
SCIP_Bool SCIPisInfinity(SCIP *scip, SCIP_Real val)
SCIP_Bool SCIPisEQ(SCIP *scip, SCIP_Real val1, SCIP_Real val2)
SCIP_Bool SCIPisLT(SCIP *scip, SCIP_Real val1, SCIP_Real val2)
SCIP_Real SCIPrandomGetReal(SCIP_RANDNUMGEN *randnumgen, SCIP_Real minrandval, SCIP_Real maxrandval)
int SCIPsnprintf(char *t, int len, const char *s,...)
SCIPfreeRandom(scip, &heurdata->randnumgen)
SCIPcreateRandom(scip, &heurdata->randnumgen, DEFAULT_RANDSEED, TRUE))
assert(minobj< SCIPgetCutoffbound(scip))
#define BMScopyMemoryArray(ptr, source, num)
#define BMSclearMemoryArray(ptr, num)
static int COI_CALLCONV LagrStr(int HSRW[], int HSCL[], int *NODRV, int NUMVAR, int NUMCON, int NHESS, void *USRMEM)
static void handleConoptParam(SCIP_NLPIPROBLEM *problem, const SCIP_NLPPARAM param)
static int COI_CALLCONV ReadMatrix(double LOWER[], double CURR[], double UPPER[], int VSTA[], int TYPE[], double RHS[], int ESTA[], int COLSTA[], int ROWNO[], double VALUE[], int NLFLAG[], int NUMVAR, int NUMCON, int NUMNZ, void *USRMEM)
static int COI_CALLCONV FDInterval(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)
static int COI_CALLCONV FDEval(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)
static int COI_CALLCONV LagrVal(const double X[], const double U[], const int HSRW[], const int HSCL[], double HSVL[], int *NODRV, int NUMVAR, int NUMCON, int NHESS, void *USRMEM)
#define nlpiGetSolverPointerConopt
#define nlpiGetProblemPointerConopt
static int COI_CALLCONV Solution(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)
static int COI_CALLCONV ErrMsg(int ROWNO, int COLNO, int POSNO, const char *MSG, void *USRMEM)
static SCIP_RETCODE initConopt(SCIP *scip, SCIP_NLPIDATA *data, SCIP_NLPIPROBLEM *problem)
static int COI_CALLCONV Status(int MODSTA, int SOLSTA, int ITER, double OBJVAL, void *USRMEM)
static int COI_CALLCONV Message(int SMSG, int DMSG, int NMSG, char *MSGV[], void *USRMEM)
static int COI_CALLCONV Option(int NCALL, double *RVAL, int *IVAL, int *LVAL, char *NAME, void *USRMEM)
static void invalidateSolution(SCIP_NLPIPROBLEM *problem)
methods to store an NLP and request function, gradient, and Hessian values
public methods for message output
public data structures and miscellaneous methods
public methods for memory management
public methods for message handling
public methods for nonlinear relaxation
public methods for NLPI solver interfaces
public methods for numerical tolerances
public methods for random numbers
public methods for timing
SCIP_NLPPARAM_FASTFAIL fastfail
SCIP_RANDNUMGEN * randnumgen
SCIP_NLPTERMSTAT termstat
type definitions for clocks and timing issues
struct SCIP_Clock SCIP_CLOCK
struct SCIP_RandNumGen SCIP_RANDNUMGEN
#define SCIP_DECL_NLPISOLVE(x)
struct SCIP_NlpiProblem SCIP_NLPIPROBLEM
#define SCIP_DECL_NLPICHGLINEARCOEFS(x)
#define SCIP_DECL_NLPICHGOBJCONSTANT(x)
#define SCIP_NLPPARAM_PRINT(param)
#define SCIP_DECL_NLPIGETSOLUTION(x)
#define SCIP_DECL_NLPISETOBJECTIVE(x)
#define SCIP_DECL_NLPICREATEPROBLEM(x)
#define SCIP_DECL_NLPIGETSTATISTICS(x)
#define SCIP_DECL_NLPIDELCONSSET(x)
#define SCIP_DECL_NLPICHGCONSSIDES(x)
struct SCIP_Nlpi SCIP_NLPI
#define SCIP_DECL_NLPIDELVARSET(x)
#define SCIP_DECL_NLPICHGEXPR(x)
#define SCIP_DECL_NLPIADDVARS(x)
enum SCIP_NlpSolStat SCIP_NLPSOLSTAT
#define SCIP_DECL_NLPISETINITIALGUESS(x)
#define SCIP_DECL_NLPIFREEPROBLEM(x)
@ SCIP_NLPTERMSTAT_TIMELIMIT
@ SCIP_NLPTERMSTAT_NUMERICERROR
@ SCIP_NLPTERMSTAT_EVALERROR
@ SCIP_NLPTERMSTAT_ITERLIMIT
@ SCIP_NLPTERMSTAT_INTERRUPT
#define SCIP_DECL_NLPICOPY(x)
#define SCIP_DECL_NLPIGETSOLVERPOINTER(x)
#define SCIP_DECL_NLPIGETSOLSTAT(x)
#define SCIP_DECL_NLPICHGVARBOUNDS(x)
#define SCIP_DECL_NLPIGETPROBLEMPOINTER(x)
#define SCIP_DECL_NLPIFREE(x)
#define SCIP_DECL_NLPIADDCONSTRAINTS(x)
@ SCIP_NLPSOLSTAT_UNBOUNDED
@ SCIP_NLPSOLSTAT_GLOBINFEASIBLE
@ SCIP_NLPSOLSTAT_LOCINFEASIBLE
@ SCIP_NLPSOLSTAT_FEASIBLE
@ SCIP_NLPSOLSTAT_GLOBOPT
@ SCIP_NLPSOLSTAT_UNKNOWN
#define SCIP_DECL_NLPIGETTERMSTAT(x)
struct SCIP_NlpParam SCIP_NLPPARAM
enum SCIP_NlpTermStat SCIP_NLPTERMSTAT
struct SCIP_NlpiData SCIP_NLPIDATA
enum SCIP_Retcode SCIP_RETCODE