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);
674 SCIPerrorMessage(
"CONOPT returned an unexpected termination status %d\n", SOLSTA);
729 if( MODE == 2 || MODE == 3 )
759 strcpy(NAME,
"LOCNPT");
766 strcpy(NAME,
"RTREDG");
770 strcpy(NAME,
"Flg_NoDefc");
793 const int* hessoffsets;
805 for(
int i = 0;
i < NHESS;
i++ )
808 while(
i == hessoffsets[col+1] )
879 const int* jacoffsets;
880 const int* hessoffsets;
882 const int* objgradnz;
891 if( data->solvetime ==
NULL )
892 if( data->solvetime ==
NULL )
901 for(
int i = 0;
i < nconss;
i++ )
911 COI_Error += COIDEF_EmptyCol(problem->
CntVect, 1);
914 COI_Error += COIDEF_NumVar(problem->
CntVect,
nvars + nrangeconss);
915 COI_Error += COIDEF_NumCon(problem->
CntVect, nconss + 1);
922 COI_Error += COIDEF_NumNz(problem->
CntVect, jacoffsets !=
NULL ? jacoffsets[
nvars] + nrangeconss + nobjgradnz :
923 nrangeconss + nobjgradnz);
926 COI_Error += COIDEF_NumNlNz(problem->
CntVect, nnlnz + nobjgradnls);
930 COI_Error += COIDEF_NumHess(problem->
CntVect, hessoffsets[
nvars]);
933 COI_Error += COIDEF_OptDir(problem->
CntVect, -1);
937 COI_Error += COIDEF_ObjCon(problem->
CntVect, nconss);
951 COI_Error += COIDEF_FVincLin(problem->
CntVect, 1);
954 COI_Error += COIDEF_UsrMem(problem->
CntVect, (
void*)problem);
957 if( data->license_text[0] !=
'\0' )
958 COI_Error += COIDEF_License(problem->
CntVect, data->license_int_1, data->license_int_2, data->license_int_3, data->license_text);
977 SCIPdebugMsg(problem->
scip,
"warmstart parameter not supported by CONOPT interface yet. Ignored.\n");
981 SCIPwarningMessage(problem->
scip,
"lobjlimit parameter not supported by CONOPT interface yet. Ignored.\n");
985 SCIPdebugMsg(problem->
scip,
"fastfail parameter not supported by CONOPT interface yet. Ignored.\n");
1019 if( sourcenlpidata->license_text[0] !=
'\0' )
1025 sourcenlpidata->license_int_2, sourcenlpidata->license_int_3, sourcenlpidata->license_text);
1039 if( (*nlpidata)->solvetime !=
NULL )
1040 if( (*nlpidata)->solvetime !=
NULL )
1051#ifdef SCIP_DISABLED_CODE
1062#define nlpiGetSolverPointerConopt NULL
1075 (*problem)->firstrun =
TRUE;
1076 (*problem)->scip =
scip;
1082 if( COI_Create(&((*problem)->CntVect)) || (*problem)->CntVect ==
NULL )
1104 if( (*problem)->oracle !=
NULL )
1112 if( COI_Free(&((*problem)->CntVect)) )
1121#ifdef PRINT_NLPSTATS
1122 SCIPinfoMessage(
scip,
NULL,
"\nNLP solver CONOPT stats: ncalls = %d, nsuccess = %d, nlimit = %d, nlocinfeas = %d, nother = %d\n",
1123 (*problem)->ncalls, (*problem)->nsuccess, (*problem)->nlimit, (*problem)->nlocinfeas, (*problem)->nother);
1129#ifdef SCIP_DISABLED_CODE
1140#define nlpiGetProblemPointerConopt NULL
1154 problem->firstrun =
TRUE;
1169 nlininds, lininds, linvals, exprs, names) );
1172 problem->firstrun =
TRUE;
1188 problem->firstrun =
TRUE;
1217 oracle = problem->oracle;
1222 for(
int i = 0;
i < nconss; ++
i )
1240 problem->firstrun =
TRUE;
1250 problem->firstrun =
TRUE;
1274 problem->firstrun =
TRUE;
1290 problem->firstrun =
TRUE;
1306 problem->firstrun =
TRUE;
1322 problem->firstrun =
TRUE;
1348 if( primalvalues !=
NULL )
1350 if( !problem->initguess )
1383 if( param.timelimit == 0.0 )
1386 problem->niterations = 0;
1387 problem->solvetime = 0.0;
1394 problem->niterations = -1;
1395 problem->solvetime = -1.0;
1401 if( problem->firstrun )
1404 problem->firstrun =
FALSE;
1412 COI_Error = COI_Solve(problem->CntVect);
1424 SCIPdebugMsg(
scip,
"Problem structure computation error in CONOPT's ReadMatrix callback\n");
1427 SCIPdebugMsg(
scip,
"Errors encountered in CONOPT during solution, %d\n", COI_Error);
1444 return problem->solstat;
1454 return problem->termstat;
1463 if( primalvalues !=
NULL )
1464 *primalvalues = problem->lastprimal;
1466 if( consdualvalues !=
NULL )
1467 *consdualvalues = problem->lastdualcons;
1469 if( varlbdualvalues !=
NULL )
1470 *varlbdualvalues = problem->lastduallb;
1472 if( varubdualvalues !=
NULL )
1473 *varubdualvalues = problem->lastdualub;
1476 *
objval = problem->objval;
1489 statistics->niterations = problem->niterations;
1490 statistics->totaltime = problem->solvetime;
1493 statistics->boundviol = 0.0;
1512#if defined(CONOPT_LICENSE_INT_1) && defined(CONOPT_LICENSE_INT_2) && defined(CONOPT_LICENSE_INT_3) && \
1513 defined(CONOPT_LICENSE_TEXT)
1514 nlpidata->license_int_1 = CONOPT_LICENSE_INT_1;
1515 nlpidata->license_int_2 = CONOPT_LICENSE_INT_2;
1516 nlpidata->license_int_3 = CONOPT_LICENSE_INT_3;
1517 (void)
SCIPsnprintf(nlpidata->license_text, (
int)
sizeof(nlpidata->license_text),
"%s", CONOPT_LICENSE_TEXT);
1525 nlpiAddVarsConopt, nlpiAddConstraintsConopt, nlpiSetObjectiveConopt,
1526 nlpiChgVarBoundsConopt, nlpiChgConsSidesConopt, nlpiDelVarSetConopt, nlpiDelConstraintSetConopt,
1527 nlpiChgLinearCoefsConopt, nlpiChgExprConopt, nlpiChgObjConstantConopt,
1528 nlpiSetInitialGuessConopt, nlpiSolveConopt,
1529 nlpiGetSolstatConopt, nlpiGetTermstatConopt, nlpiGetSolutionConopt, nlpiGetStatisticsConopt,
1552 data->license_int_1 = integer_1;
1553 data->license_int_2 = integer_2;
1554 data->license_int_3 = integer_3;
1555 (void)
SCIPsnprintf(data->license_text, (
int)
sizeof(data->license_text),
"%s", text);
1558#define STR_HELPER(x) #x
1559#define STR(x) STR_HELPER(x)
1566 return "CONOPT " STR(CONOPT_VERSION_MAJOR)
"." STR(CONOPT_VERSION_MINOR)
"." STR(CONOPT_VERSION_PATCH);
1574 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 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)
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 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