35#define _USE_MATH_DEFINES
69#define READER_NAME "osilreader"
70#define READER_DESC "file reader for OS instance language (OSiL) format"
71#define READER_EXTENSION "osil"
84 SCIP_Bool initialconss,
85 SCIP_Bool dynamicconss,
86 SCIP_Bool dynamiccols,
87 SCIP_Bool dynamicrows,
117 SCIPerrorMessage(
"Attribute \"numberOfVariables\" not found in <variables> node.\n");
123 if( *
attrval !=
'\0' || varssize < 0 )
144 if( varssize == *
nvars )
247 SCIP_CALL(
SCIPcreateVar(
scip, &(*
vars)[*
nvars],
varname,
varlb,
varub, 0.0, vartype, !dynamiccols, dynamiccols,
NULL,
NULL,
NULL,
NULL,
NULL) );
262 consvars[0] = (*vars)[*
nvars];
263 consvars[1] = (*vars)[*
nvars];
281 if( *
nvars < varssize )
298 SCIP_Bool dynamiccols,
315 if( objective ==
NULL )
374 SCIPerrorMessage(
"Invalid variable index '%d' of objective coefficient.\n", idx);
418 SCIP_CALL(
SCIPcreateVar(
scip, &
objconstvar,
"objconstvar",
objconst,
objconst, 1.0,
SCIP_VARTYPE_CONTINUOUS, !dynamiccols, dynamiccols,
NULL,
NULL,
NULL,
NULL,
NULL) );
456 if( constraints ==
NULL )
463 SCIPerrorMessage(
"Attribute \"numberOfConstraints\" not found in <constraints> node.\n");
469 if( *
attrval !=
'\0' || *nconss < 0 )
496 SCIP_Bool initialconss,
497 SCIP_Bool dynamicconss,
498 SCIP_Bool dynamicrows
519 nlinvars, linvars, lincoefs, lhs, rhs, initialconss,
578 SCIP_Real coefs[2] = {1.0, -1.0};
632 SCIP_Real** lincoefs,
639 SCIP_Bool initialconss,
640 SCIP_Bool dynamicconss,
641 SCIP_Bool dynamicrows,
666 if( constraints ==
NULL )
672 const char* consname;
678 SCIPerrorMessage(
"Expected %d constraints, but got at least %d many.\n", nconss,
c+1);
685 if( consname ==
NULL )
695 SCIPerrorMessage(
"Constraint attribute 'mult' not supported (while parsing constraint <%s>).\n", consname);
854 SCIP_Real** lincoefs,
882 if( lincoef ==
NULL )
889 SCIPerrorMessage(
"Attribute \"numberOfValues\" not found for <linearConstraintCoefficients> node.\n");
895 if( *
attrval !=
'\0' || nnz < 0 )
897 SCIPerrorMessage(
"Invalid value '%s' for \"numberOfValues\" attribute in <linearConstraintCoefficients> node.\n",
xmlGetAttrval(lincoef,
"numberOfValues"));
907 SCIPerrorMessage(
"Node <start> not found inside <linearConstraintCoefficients> node.\n");
917 SCIPerrorMessage(
"Both <rowIdx> and <colIdx> found under <linearConstraintCoefficients> node.\n");
928 SCIPerrorMessage(
"Both <rowIdx> and <colIdx> not found under <linearConstraintCoefficients> node.\n");
938 SCIPerrorMessage(
"<value> node not found under <linearConstraintCoefficients> node.\n");
962 SCIPerrorMessage(
"Too many elements under <start> node in <linearConstraintCoefficients>, expected %d many, got at least %d.\n", (
rowmajor ? nconss :
nvars) + 1, count + 1);
968 SCIPerrorMessage(
"No data in <el> node in <linearConstraintCoefficients>.\n");
992 SCIPerrorMessage(
"Too many elements under <start> node in <linearConstraintCoefficients>, expected %d many, got at least %d.\n", (
rowmajor ? nconss :
nvars) + 1, count + 1);
1001 SCIPerrorMessage(
"Got only %d <start> entries in <linearConstraintCoefficients>, but expected %d many.\n", count, (
rowmajor ? nconss :
nvars) + 1);
1021 SCIPerrorMessage(
"Too many elements under <%s> node in <linearConstraintCoefficients>, expected %d many, but got at least %d.\n",
rowmajor ?
"colIdx" :
"rowIdx", nnz, count + 1);
1027 SCIPerrorMessage(
"No data in <el> node under <%s> node in <linearConstraintCoefficients>.\n",
rowmajor ?
"colIdx" :
"rowIdx");
1051 SCIPerrorMessage(
"Too many elements under <%s> node in <linearConstraintCoefficients>, expected %d many, got at least %d.\n",
rowmajor ?
"colIdx" :
"rowIdx", nnz, count + 1);
1055 idx[count] = idx[count-1] +
incrint;
1060 SCIPerrorMessage(
"Got only %d entries in <%s> node in <linearConstraintCoefficients>, expected %d many.\n", count,
rowmajor ?
"colIdx" :
"rowIdx", nnz);
1080 SCIPerrorMessage(
"Too many elements under <value> node in <linearConstraintCoefficients>, expected %d many, got at least %d.\n", nnz, count + 1);
1086 SCIPerrorMessage(
"No data in <el> node under <value> node in <linearConstraintCoefficients>.\n");
1110 SCIPerrorMessage(
"Too many elements under <value> node in <linearConstraintCoefficients>, expected %d many, got at least %d.\n", nnz, count + 1);
1114 val[count] = val[count-1] +
incrreal;
1119 SCIPerrorMessage(
"Got only %d entries under <value> node in <linearConstraintCoefficients>, expected %d many.\n", count, nnz);
1129 for( row = 0; row < nconss; ++row )
1141 assert(nlinvars[row] == 0);
1147 for( pos =
start[row]; pos <
start[row+1]; ++pos )
1155 linvars[row][nlinvars[row]] =
vars[idx[pos]];
1156 lincoefs[row][nlinvars[row]] = val[pos];
1169 for(
k = 0;
k < 2; ++
k )
1171 for( col = 0; col <
nvars; ++col )
1178 for( pos =
start[col]; pos <
start[col+1]; ++pos )
1206 for(
c = 0;
c < nconss; ++
c )
1269 SCIPerrorMessage(
"Attribute \"numberOfQuadraticTerms\" not found for <quadraticCoefficients> node.\n");
1302 SCIPerrorMessage(
"Too many quadratic terms under <quadraticCoefficients> node, expected %d many, but got at least %d.\n",
nqterms, count + 1);
1311 SCIPerrorMessage(
"Missing \"idx\" attribute in %d'th <qTerm> node under <quadraticCoefficients> node.\n", count);
1328 SCIPerrorMessage(
"Missing \"idxOne\" attribute in %d'th <qTerm> node under <quadraticCoefficients> node.\n", count);
1345 SCIPerrorMessage(
"Missing \"idxTwo\" attribute in %d'th <qTerm> node under <quadraticCoefficients> node.\n", count);
1363 if( *
attrval !=
'\0' || (coef != coef) )
1400 SCIPerrorMessage(
"Got only %d quadratic terms under <quadraticCoefficients> node, but expected %d many.\n", count,
nqterms);
1446 SCIPerrorMessage(
"Attribute \"idx\" required for <variable> node in nonlinear expression\n");
1611 SCIP_Real coef = 1.0/
log(10.0);
1627 SCIPwarningMessage(
scip,
"Danger! You're entering a construction area. Implementation of support for 'erf' is incomplete.\n");
1677 SCIP_Real coefs[2] = {1.0, -1.0};
1709 SCIPerrorMessage(
"Negative base in <power> node with nonconstant exponent not allowed in nonlinear expression.\n");
1716 SCIP_Real coef =
log(value);
1750 SCIPerrorMessage(
"Signpower only supported for exponents > 1, but got %g.\n",
1796 if( args[0] !=
NULL )
1800 if( args[1] !=
NULL )
1941 SCIPerrorMessage(
"Missing \"idxOne\" attribute in %d'th <qpTerm> node under <quadratic> node in nonlinear expression.\n",
nquadelems);
1959 SCIPerrorMessage(
"Missing \"idxTwo\" attribute in %d'th <qpTerm> node under <quadratic> node in nonlinear expression.\n",
nquadelems);
1992 SCIP_CALL(
SCIPcreateExprQuadratic(
scip, expr, 0,
NULL,
NULL,
nquadelems,
quadvars1,
quadvars2,
quadcoefs,
NULL,
NULL) );
2036 SCIPerrorMessage(
"Attribute \"numberOfNonlinearExpressions\" in <nonlinearExpressions> node not found.\n");
2062 SCIPerrorMessage(
"Too many nonlinear expressions under <nonlinearExpressions> node, expected %d many, but got at least %d.\n",
nnlexprs, count + 1);
2075 SCIPerrorMessage(
"Missing \"idx\" attribute in %d'th <nl> node under <nonlinearExpressions> node.\n", count);
2083 SCIPerrorMessage(
"Invalid value '%s' in \"idx\" attribute of %d'th <nl> node under <nonlinearExpressions> node.\n",
xmlGetAttrval(nlexpr,
"idx"), count);
2119 SCIP_Bool initialconss,
2120 SCIP_Bool dynamicconss,
2121 SCIP_Bool dynamicrows,
2142 SCIP_Bool removable;
2146 initial = initialconss;
2152 dynamic = dynamicconss;
2153 removable = dynamicrows;
2164 SCIPerrorMessage(
"Attribute \"numberOfSOS in <specialOrderedSets> node not found.\n");
2194 SCIPerrorMessage(
"Too many sos under <specialOrderedSets> node, expected %d many, but got at least %d.\n",
nsoscons, count + 1);
2243 SCIP_CALL(
SCIPcreateConsSOS1(
scip, &cons, name, 0,
NULL,
NULL, initial, separate, enforce, check,
propagate,
2244 local, dynamic, removable,
FALSE) );
2247 SCIP_CALL(
SCIPcreateConsSOS2(
scip, &cons, name, 0,
NULL,
NULL, initial, separate, enforce, check,
propagate,
2248 local, dynamic, removable,
FALSE) );
2263 SCIPerrorMessage(
"Attribute \"idx\" in <var> node below <specialOrderedSets> node not found.\n");
2329 SCIP_Bool initialconss;
2330 SCIP_Bool dynamicconss;
2331 SCIP_Bool dynamiccols;
2332 SCIP_Bool dynamicrows;
2340 SCIP_Real** lincoefs =
NULL;
2341 int* nlinvars =
NULL;
2369 SCIPerrorMessage(
"Some error occurred when parsing the OSiL XML file '%s'.\n", filename);
2378 if( header !=
NULL )
2412 SCIP_CALL_TERMINATE( retcode,
readVariables(
scip, data, &
vars, &
nvars, initialconss, dynamicconss, dynamiccols, dynamicrows, &
doingfine),
CLEANUP );
2438 SCIP_CALL_TERMINATE( retcode,
readLinearCoefs(
scip, data,
vars,
nvars, nconss, linvars, lincoefs, nlinvars, &
doingfine),
CLEANUP );
2484 for(
c = nconss;
c >= 0; --
c )
constraint handler for bound disjunction constraints
Constraint handler for linear constraints in their most general form, .
constraint handler for nonlinear constraints specified by algebraic expressions
constraint handler for SOS type 1 constraints
constraint handler for SOS type 2 constraints
#define SCIP_CALL_TERMINATE(retcode, x, TERM)
absolute expression handler
SCIP_RETCODE SCIPcreateExprErf(SCIP *scip, SCIP_EXPR **expr, SCIP_EXPR *child, SCIP_DECL_EXPR_OWNERCREATE((*ownercreate)), void *ownercreatedata)
handler for Gaussian error function expressions
exponential expression handler
logarithm expression handler
power and signed power expression handlers
product expression handler
handler for sin expressions
constant value expression handler
variable expression handler
SCIP_RETCODE SCIPaddCoefLinear(SCIP *scip, SCIP_CONS *cons, SCIP_VAR *var, SCIP_Real val)
SCIP_RETCODE SCIPaddVarSOS1(SCIP *scip, SCIP_CONS *cons, SCIP_VAR *var, SCIP_Real weight)
SCIP_RETCODE SCIPcreateConsBounddisjunction(SCIP *scip, SCIP_CONS **cons, const char *name, int nvars, SCIP_VAR **vars, SCIP_BOUNDTYPE *boundtypes, SCIP_Real *bounds, SCIP_Bool initial, SCIP_Bool separate, SCIP_Bool enforce, SCIP_Bool check, SCIP_Bool propagate, SCIP_Bool local, SCIP_Bool modifiable, SCIP_Bool dynamic, SCIP_Bool removable, SCIP_Bool stickingatnode)
SCIP_RETCODE SCIPcreateConsSOS1(SCIP *scip, SCIP_CONS **cons, const char *name, int nvars, SCIP_VAR **vars, SCIP_Real *weights, SCIP_Bool initial, SCIP_Bool separate, SCIP_Bool enforce, SCIP_Bool check, SCIP_Bool propagate, SCIP_Bool local, SCIP_Bool dynamic, SCIP_Bool removable, SCIP_Bool stickingatnode)
SCIP_RETCODE SCIPcreateConsNonlinear(SCIP *scip, SCIP_CONS **cons, const char *name, SCIP_EXPR *expr, SCIP_Real lhs, SCIP_Real rhs, SCIP_Bool initial, SCIP_Bool separate, SCIP_Bool enforce, SCIP_Bool check, SCIP_Bool propagate, SCIP_Bool local, SCIP_Bool modifiable, SCIP_Bool dynamic, SCIP_Bool removable)
SCIP_RETCODE SCIPcreateConsSOS2(SCIP *scip, SCIP_CONS **cons, const char *name, int nvars, SCIP_VAR **vars, SCIP_Real *weights, SCIP_Bool initial, SCIP_Bool separate, SCIP_Bool enforce, SCIP_Bool check, SCIP_Bool propagate, SCIP_Bool local, SCIP_Bool dynamic, SCIP_Bool removable, SCIP_Bool stickingatnode)
SCIP_RETCODE SCIPcreateConsLinear(SCIP *scip, SCIP_CONS **cons, const char *name, int nvars, SCIP_VAR **vars, SCIP_Real *vals, SCIP_Real lhs, SCIP_Real rhs, SCIP_Bool initial, SCIP_Bool separate, SCIP_Bool enforce, SCIP_Bool check, SCIP_Bool propagate, SCIP_Bool local, SCIP_Bool modifiable, SCIP_Bool dynamic, SCIP_Bool removable, SCIP_Bool stickingatnode)
SCIP_RETCODE SCIPaddVarSOS2(SCIP *scip, SCIP_CONS *cons, SCIP_VAR *var, SCIP_Real weight)
SCIP_RETCODE SCIPcreateExprVar(SCIP *scip, SCIP_EXPR **expr, SCIP_VAR *var, SCIP_DECL_EXPR_OWNERCREATE((*ownercreate)), void *ownercreatedata)
SCIP_RETCODE SCIPcreateExprProduct(SCIP *scip, SCIP_EXPR **expr, int nchildren, SCIP_EXPR **children, SCIP_Real coefficient, SCIP_DECL_EXPR_OWNERCREATE((*ownercreate)), void *ownercreatedata)
SCIP_RETCODE SCIPcreateExprSin(SCIP *scip, SCIP_EXPR **expr, SCIP_EXPR *child, SCIP_DECL_EXPR_OWNERCREATE((*ownercreate)), void *ownercreatedata)
SCIP_RETCODE SCIPcreateExprCos(SCIP *scip, SCIP_EXPR **expr, SCIP_EXPR *child, SCIP_DECL_EXPR_OWNERCREATE((*ownercreate)), void *ownercreatedata)
SCIP_RETCODE SCIPcreateExprAbs(SCIP *scip, SCIP_EXPR **expr, SCIP_EXPR *child, SCIP_DECL_EXPR_OWNERCREATE((*ownercreate)), void *ownercreatedata)
SCIP_RETCODE SCIPappendExprSumExpr(SCIP *scip, SCIP_EXPR *expr, SCIP_EXPR *child, SCIP_Real childcoef)
SCIP_RETCODE SCIPcreateExprSignpower(SCIP *scip, SCIP_EXPR **expr, SCIP_EXPR *child, SCIP_Real exponent, SCIP_DECL_EXPR_OWNERCREATE((*ownercreate)), void *ownercreatedata)
SCIP_RETCODE SCIPcreateExprLog(SCIP *scip, SCIP_EXPR **expr, SCIP_EXPR *child, SCIP_DECL_EXPR_OWNERCREATE((*ownercreate)), void *ownercreatedata)
SCIP_RETCODE SCIPcreateExprExp(SCIP *scip, SCIP_EXPR **expr, SCIP_EXPR *child, SCIP_DECL_EXPR_OWNERCREATE((*ownercreate)), void *ownercreatedata)
SCIP_RETCODE SCIPcreateExprSum(SCIP *scip, SCIP_EXPR **expr, int nchildren, SCIP_EXPR **children, SCIP_Real *coefficients, SCIP_Real constant, SCIP_DECL_EXPR_OWNERCREATE((*ownercreate)), void *ownercreatedata)
SCIP_RETCODE SCIPcreateExprValue(SCIP *scip, SCIP_EXPR **expr, SCIP_Real value, SCIP_DECL_EXPR_OWNERCREATE((*ownercreate)), void *ownercreatedata)
SCIP_RETCODE SCIPcreateExprPow(SCIP *scip, SCIP_EXPR **expr, SCIP_EXPR *child, SCIP_Real exponent, SCIP_DECL_EXPR_OWNERCREATE((*ownercreate)), void *ownercreatedata)
SCIP_RETCODE SCIPincludeReaderOsil(SCIP *scip)
SCIP_RETCODE SCIPaddVar(SCIP *scip, SCIP_VAR *var)
SCIP_RETCODE SCIPaddCons(SCIP *scip, SCIP_CONS *cons)
SCIP_RETCODE SCIPsetObjsense(SCIP *scip, SCIP_OBJSENSE objsense)
SCIP_OBJSENSE SCIPgetObjsense(SCIP *scip)
SCIP_RETCODE SCIPcreateProb(SCIP *scip, const char *name, SCIP_DECL_PROBDELORIG((*probdelorig)), SCIP_DECL_PROBTRANS((*probtrans)), SCIP_DECL_PROBDELTRANS((*probdeltrans)), SCIP_DECL_PROBINITSOL((*probinitsol)), SCIP_DECL_PROBEXITSOL((*probexitsol)), SCIP_DECL_PROBCOPY((*probcopy)), SCIP_PROBDATA *probdata)
void SCIPwarningMessage(SCIP *scip, const char *formatstr,...)
SCIP_RETCODE SCIPgetBoolParam(SCIP *scip, const char *name, SCIP_Bool *value)
SCIP_RETCODE SCIPreleaseCons(SCIP *scip, SCIP_CONS **cons)
SCIP_RETCODE SCIPcreateExprQuadratic(SCIP *scip, SCIP_EXPR **expr, int nlinvars, SCIP_VAR **linvars, SCIP_Real *lincoefs, int nquadterms, SCIP_VAR **quadvars1, SCIP_VAR **quadvars2, SCIP_Real *quadcoefs, SCIP_DECL_EXPR_OWNERCREATE((*ownercreate)), void *ownercreatedata)
SCIP_Bool SCIPisExprSum(SCIP *scip, SCIP_EXPR *expr)
SCIP_Bool SCIPisExprValue(SCIP *scip, SCIP_EXPR *expr)
SCIP_RETCODE SCIPreleaseExpr(SCIP *scip, SCIP_EXPR **expr)
SCIP_Real SCIPgetValueExprValue(SCIP_EXPR *expr)
void SCIPcaptureExpr(SCIP_EXPR *expr)
#define SCIPallocClearBufferArray(scip, ptr, num)
int SCIPcalcMemGrowSize(SCIP *scip, int num)
#define SCIPallocBufferArray(scip, ptr, num)
#define SCIPreallocBufferArray(scip, ptr, num)
#define SCIPfreeBufferArray(scip, ptr)
#define SCIPfreeBufferArrayNull(scip, ptr)
SCIP_RETCODE SCIPsetReaderCopy(SCIP *scip, SCIP_READER *reader,)
SCIP_RETCODE SCIPincludeReaderBasic(SCIP *scip, SCIP_READER **readerptr, const char *name, const char *desc, const char *extension, SCIP_READERDATA *readerdata)
SCIP_RETCODE SCIPsetReaderRead(SCIP *scip, SCIP_READER *reader,)
SCIP_Real SCIPinfinity(SCIP *scip)
SCIP_Real SCIPfloor(SCIP *scip, SCIP_Real val)
SCIP_Real SCIPceil(SCIP *scip, SCIP_Real val)
const char * SCIPvarGetName(SCIP_VAR *var)
SCIP_RETCODE SCIPreleaseVar(SCIP *scip, SCIP_VAR **var)
SCIP_RETCODE SCIPcreateVar(SCIP *scip, SCIP_VAR **var, const char *name, SCIP_Real lb, SCIP_Real ub, SCIP_Real obj, SCIP_VARTYPE vartype, SCIP_Bool initial, SCIP_Bool removable, SCIP_DECL_VARDELORIG((*vardelorig)), SCIP_DECL_VARTRANS((*vartrans)), SCIP_DECL_VARDELTRANS((*vardeltrans)), SCIP_DECL_VARCOPY((*varcopy)), SCIP_VARDATA *vardata)
SCIP_RETCODE SCIPchgVarObj(SCIP *scip, SCIP_VAR *var, SCIP_Real newobj)
int SCIPsnprintf(char *t, int len, const char *s,...)
assert(minobj< SCIPgetCutoffbound(scip))
static SCIP_Bool propagate
static volatile int nterms
memory allocation routines
public methods for managing constraints
public methods for message output
public data structures and miscellaneous methods
public methods for NLP management
public methods for problem variables
static SCIP_RETCODE readConstraints(SCIP *scip, const XML_NODE *datanode, int nconss, SCIP_VAR ***linvars, SCIP_Real **lincoefs, int *nlinvars, SCIP_VAR ***quadvars1, SCIP_VAR ***quadvars2, SCIP_Real **quadcoefs, int *nquadterms, SCIP_EXPR **nlexprs, SCIP_Bool initialconss, SCIP_Bool dynamicconss, SCIP_Bool dynamicrows, SCIP_Bool *doingfine)
static SCIP_RETCODE readExpression(SCIP *scip, SCIP_EXPR **expr, const XML_NODE *node, SCIP_VAR **vars, int nvars, SCIP_Bool *doingfine)
static SCIP_RETCODE readQuadraticCoefs(SCIP *scip, const XML_NODE *datanode, SCIP_VAR **vars, int nvars, int nconss, SCIP_VAR ***quadvars1, SCIP_VAR ***quadvars2, SCIP_Real **quadcoefs, int *nquadterms, SCIP_Bool *doingfine)
static SCIP_RETCODE readLinearCoefs(SCIP *scip, const XML_NODE *datanode, SCIP_VAR **vars, int nvars, int nconss, SCIP_VAR ***linvars, SCIP_Real **lincoefs, int *nlinvars, SCIP_Bool *doingfine)
static SCIP_RETCODE createConstraint(SCIP *scip, SCIP_VAR **linvars, SCIP_Real *lincoefs, int nlinvars, SCIP_VAR **quadvars1, SCIP_VAR **quadvars2, SCIP_Real *quadcoefs, int nquadterms, SCIP_EXPR *nlexpr, SCIP_Real lhs, SCIP_Real rhs, const char *name, SCIP_Bool objcons, SCIP_Bool initialconss, SCIP_Bool dynamicconss, SCIP_Bool dynamicrows)
static SCIP_RETCODE readVariables(SCIP *scip, const XML_NODE *datanode, SCIP_VAR ***vars, int *nvars, SCIP_Bool initialconss, SCIP_Bool dynamicconss, SCIP_Bool dynamiccols, SCIP_Bool dynamicrows, SCIP_Bool *doingfine)
static SCIP_RETCODE readObjective(SCIP *scip, const XML_NODE *datanode, SCIP_VAR **vars, int nvars, SCIP_Bool dynamiccols, SCIP_Bool *doingfine)
static SCIP_RETCODE readNonlinearExprs(SCIP *scip, const XML_NODE *datanode, SCIP_VAR **vars, int nvars, int nconss, SCIP_EXPR **exprs, SCIP_Bool *doingfine)
static SCIP_RETCODE readSOScons(SCIP *scip, const XML_NODE *datanode, SCIP_VAR **vars, int nvars, SCIP_Bool initialconss, SCIP_Bool dynamicconss, SCIP_Bool dynamicrows, SCIP_Bool *doingfine)
static void readMultIncr(const XML_NODE *node, int *mult, int *incrint, SCIP_Real *incrreal, SCIP_Bool *doingfine)
static SCIP_RETCODE readNConstraints(SCIP *scip, const XML_NODE *datanode, int *nconss, SCIP_Bool *doingfine)
OS instance language (OSiL) format file reader.
public methods for constraint handler plugins and constraints
public methods for memory management
public methods for numerical tolerances
public methods for SCIP parameter handling
public methods for global and local (sub)problems
public methods for reader plugins
public methods for SCIP variables
enum SCIP_BoundType SCIP_BOUNDTYPE
#define SCIP_DECL_READERREAD(x)
#define SCIP_DECL_READERCOPY(x)
enum SCIP_Retcode SCIP_RETCODE
@ SCIP_VARTYPE_CONTINUOUS
enum SCIP_Vartype SCIP_VARTYPE
declarations for XML parsing
const XML_NODE * xmlFirstChild(const XML_NODE *node)
const XML_NODE * xmlFindNodeMaxdepth(const XML_NODE *node, const char *name, int depth, int maxdepth)
const char * xmlGetName(const XML_NODE *node)
const char * xmlGetAttrval(const XML_NODE *node, const char *name)
struct XML_NODE_struct XML_NODE
void xmlShowNode(const XML_NODE *root)
const XML_NODE * xmlNextSibl(const XML_NODE *node)
XML_NODE * xmlProcess(const char *filename)
const char * xmlGetData(const XML_NODE *node)
void xmlFreeNode(XML_NODE *node)