[] =
"#*+/-@$[](){}";
99assert( vars !=
NULL);
100assert( *vars !=
NULL);
103assert( nvars !=
NULL);
104assert( varssize !=
NULL);
105assert( *varssize >= *nvars );
106assert( constant !=
NULL);
112 if( requiredsize > *varssize )
119assert(requiredsize <= *varssize);
124 for( v = 0; v < *nvars; ++v )
140assert( linebuffer !=
NULL);
141assert( linecnt !=
NULL);
144linebuffer[0] =
'\0';
157assert( linebuffer !=
NULL);
158assert( linecnt !=
NULL);
161 if( (*linecnt) > 0 )
163linebuffer[(*linecnt)] =
'\0';
179assert( linebuffer !=
NULL);
180assert( linecnt !=
NULL);
183 if( (*linecnt) > 0 )
185linebuffer[(*linecnt)] =
'\0';
199 const char* extension
204assert( linebuffer !=
NULL);
205assert( linecnt !=
NULL);
206assert( extension !=
NULL);
213len = strlen(linebuffer);
216(*linecnt) += (int) strlen(extension);
218 SCIPdebugMsg(
scip,
"linebuffer <%s>, length = %lu\n", linebuffer, (
unsigned long)len);
230 const char* badchar;
232assert( name !=
NULL);
234 for( badchar =
badchars; *badchar; ++badchar )
236 char* c = strchr(name, *badchar);
240assert( *c == *badchar );
243c = strchr(c, *badchar);
266 if( replaceforbiddenchars )
303assert( vars !=
NULL|| nvars == 0 );
329 for( v = 0; v < nactivevars; ++v )
332activevarssize = nactivevars;
337assert( nactivevars == 0 || activevals !=
NULL);
355closingbracket = nactivevars;
360 while(
SCIPisZero(
scip, activevals[closingbracket]) && closingbracket > 0 );
364 for( v = 0; v < nactivevars; ++v )
367assert( var !=
NULL);
379varname, (v == closingbracket) ?
")":
"", (v == closingbracket && suffix) ? suffix :
"");
382varname, (v == closingbracket) ?
")":
"", (v == closingbracket && suffix) ? suffix :
"");
383 else if( strchr(ext,
'(') !=
NULL)
385activevals[v], varname, (v == closingbracket) ?
")":
"", (v == closingbracket && suffix) ? suffix :
"");
388activevals[v], varname, (v == closingbracket) ?
")":
"", (v == closingbracket && suffix) ? suffix :
"");
408 else if( strchr(ext,
'(') !=
NULL)
434 const char* rowname,
435 const char* rownameextension,
453assert( strcmp(type,
"=e=") == 0 || strcmp(type,
"=l=") == 0 || strcmp(type,
"=g=") == 0);
454assert( nvars == 0 || (vars !=
NULL&& vals !=
NULL) );
462 if( strlen(rowname) > 0 || strlen(rownameextension) > 0 )
481 for( v = 0; v < nvars; ++v )
483assert(vars !=
NULL);
484assert(vals !=
NULL);
487assert( var !=
NULL);
521 const char* rowname,
538assert( rowname !=
NULL);
541assert( nvars == 0 || vars !=
NULL);
543assert( lhs <= rhs );
561 for( v = 0; v < nactivevars; ++v )
564activevarssize = nactivevars;
577nactivevars, activevars, activevals, rhs - activeconstant) );
585nactivevars, activevars, activevals, lhs - activeconstant) );
591nactivevars, activevars, activevals, rhs - activeconstant) );
616 const char* rowname,
632assert( strlen(rowname) > 0 );
636assert( sossetdeclr !=
NULL);
645 switch( indicatorform )
664 SCIPwarningMessage(
scip,
"do not have upper bound on slack variable <%s> in indicator constraint <%s>, will use M = %g.\n",
697*sossetdeclr =
TRUE;
706 SCIP_CALL(
printActiveVariables(
scip, file, linebuffer, &linecnt,
NULL,
"$sameas(sosset,'slack')", 1, &s, &coef, transformed) );
710 SCIP_CALL(
printActiveVariables(
scip, file, linebuffer, &linecnt,
" + (1-(",
"))$sameas(sosset,'bin');", 1, &z, &coef, transformed) );
714 SCIP_CALL(
printActiveVariables(
scip, file, linebuffer, &linecnt,
" + ",
"$sameas(sosset,'bin');", 1, &z, &coef, transformed) );
722 SCIPerrorMessage(
"wrong value '%c' for parameter reading/gmsreader/indicatorreform\n", indicatorform);
744 const char* rowname,
760assert( strlen(rowname) > 0 );
761assert( vars !=
NULL|| nvars == 0 );
762assert( sostype == 1 || sostype == 2 );
776(void)
SCIPsnprintf(buffer,
GMS_MAX_PRINTLEN,
" SOS%d Variable %s_sosvar(%s_sosset); %s_sosvar.lo(%s_sosset) = -inf;", sostype, consname, consname, consname, consname);
785 for( v = 0; v < nvars; ++v )
812 unsigned intparentprecedence;
820 unsigned intsumprecedence;
823assert(linebuffer !=
NULL);
824assert(linecnt !=
NULL);
825assert(nsmooth !=
NULL);
826assert(nqcons !=
NULL);
827assert(expr !=
NULL);
835fpos = ftell(file) - *linecnt;
862parentprecedence = 0;
869fpos = ftell(file) - 5;
881activecoefs[0] = 1.0;
886 if( nactivevars == 1 && activecoefs[0] == 1.0 && activeconstant == 0.0 )
897 if( sumprecedence <= parentprecedence )
900 if( activeconstant != 0.0 )
905 for( i = 0; i < nactivevars; ++i )
907 if(
REALABS(activecoefs[i]) != 1.0 )
911 else if( activecoefs[i] == 1.0 && needsign )
915 else if( activecoefs[i] == -1.0 )
929fpos = ftell(file) - 5;
933 if( sumprecedence <= parentprecedence )
943 if( exponent == 2.0 )
951 else if(
EPSISINT(exponent, 0.0) )
961 else if( exponent == 0.5 )
983 SCIP_CALL( SCIPcallExprPrint(
scip, expr, stage, currentchild, parentprecedence, file) );
1018 const char* rowname,
1019 const char* rownameextension,
1034assert( strlen(rowname) > 0 || strlen(rownameextension) > 0 );
1035assert( strcmp(type,
"=e=") == 0 || strcmp(type,
"=l=") == 0 || strcmp(type,
"=g=") == 0 );
1063 const char* rowname,
1073assert( strlen(rowname) > 0 );
1088 SCIP_CALL(
printNonlinearRow(
scip, file, rowname,
SCIPisInfinity(
scip, rhs) ?
"":
"_lhs",
"=g=", expr, lhs, transformed, nsmooth, nqcons) );
1093 SCIP_CALL(
printNonlinearRow(
scip, file, rowname,
SCIPisInfinity(
scip, -lhs) ?
"":
"_rhs",
"=l=", expr, rhs, transformed, nsmooth, nqcons) );
1119 const char* badchar;
1122assert( vars !=
NULL);
1127 for( badchar =
badchars; *badchar; ++badchar )
1129 for( v = 0; v < nvars; ++v )
1132assert( var !=
NULL);
1136 if( replaceforbiddenchars )
1138 SCIPinfoMessage(
scip,
NULL,
"there is a variable name with symbol '%c', not allowed in GAMS format; all '%c' replaced by '_' (consider using 'write genproblem'/'write gentransproblem').\n", *badchar, *badchar);
1142 SCIPwarningMessage(
scip,
"there is a variable name with symbol '%c', not allowed in GAMS format; use 'write genproblem'/'write gentransproblem', or set 'reading/gmsreader/replaceforbiddenchars' to TRUE and risk duplicate variable names.\n", *badchar);
1151 for( v = 0; v < nvars; ++v )
1154assert( var !=
NULL);
1158 SCIPwarningMessage(
scip,
"there is a variable name which has to be cut down to %d characters; GAMS model might be corrupted.\n",
1179 const char* conshdlrname;
1181 const char* badchar;
1184assert( conss !=
NULL);
1189 for( badchar =
badchars; *badchar; ++badchar )
1191 for( c = 0; c < nconss; ++c )
1194assert( cons !=
NULL);
1198 if( replaceforbiddenchars )
1200 SCIPinfoMessage(
scip,
NULL,
"there is a constraint name with symbol '%c', not allowed in GAMS format; all '%c' replaced by '_' (consider using 'write genproblem'/'write gentransproblem').\n", *badchar, *badchar);
1204 SCIPwarningMessage(
scip,
"there is a constraint name with symbol '%c', not allowed in GAMS format; use 'write genproblem'/'write gentransproblem', or set 'reading/gmsreader/replaceforbiddenchars' to TRUE and risk duplicate variable names.\n", *badchar);
1213 for( c = 0; c < nconss; ++c )
1216assert( cons !=
NULL);
1222assert( conshdlr !=
NULL);
1227 if( strcmp(conshdlrname,
"linear") == 0 || strcmp(conshdlrname,
"nonlinear") == 0 )
1265assert(reader !=
NULL);
1280nvars, nbinvars, nintvars, nimplvars, ncontvars, conss, nconss, result) );
1305 "reading/gmsreader/replaceforbiddenchars",
"shall characters '#', '*', '+', '/', and '-' in variable and constraint names be replaced by '_'?",
1309 "reading/gmsreader/bigmdefault",
"default M value for big-M reformulation of indicator constraints in case no bound on slack variable is given",
1313 "reading/gmsreader/indicatorreform",
"which reformulation to use for indicator constraints: 'b'ig-M, 's'os1",
1317 "reading/gmsreader/signpower",
"is it allowed to use the gams function signpower(x,a)?",
1356 const char* conshdlrname;
1380assert( vars !=
NULL|| nvars == 0 );
1393 if( objscale == 1.0 && objoffset == 0.0 )
1395 for( v = 0; v < nvars; ++v )
1400 if( objvar ==
NULL)
1424 SCIPinfoMessage(
scip, file,
"* Variables : %d (%d binary, %d integer, %d implicit integer, %d continuous)\n",
1425nvars, nbinvars, nintvars, nimplvars, ncontvars);
1436 if( objvar ==
NULL)
1443 for( v = 0; v < nvars; ++v )
1446assert( var !=
NULL);
1452 if( (linecnt > 0 && (v == nbinvars - 1 || v == nbinvars + nintvars - 1 ||
1453v == nbinvars + nintvars + nimplvars - 1)) || v == nvars - 1 )
1468 for( v = 0; v < nbinvars; ++v )
1488 for( v = 0; v < nintvars; ++v )
1490var = vars[nbinvars + v];
1503nondefbounds =
FALSE;
1505 for( v = 0; v < nvars; ++v )
1508assert( var !=
NULL);
1532nondefbounds =
TRUE;
1539 if( v < nbinvars + nintvars )
1548nondefbounds =
TRUE;
1555nondefbounds =
TRUE;
1565nondefbounds =
TRUE;
1568 else if( v < nbinvars + nintvars )
1574nondefbounds =
TRUE;
1583nondefbounds =
TRUE;
1588 if( !nondefbounds )
1589 SCIPinfoMessage(
scip, file,
"* (All other bounds at default value: binary [0,1], integer [0,+inf], continuous [-inf,+inf].)\n");
1593 if( nconss > 0 || objvar ==
NULL)
1600 if( objvar ==
NULL)
1607 for( c = 0; c < nconss; ++c )
1610assert( cons !=
NULL);
1613assert( conshdlr !=
NULL);
1619rangedrow = strcmp(conshdlrname,
"linear") == 0
1622rangedrow = rangedrow || (strcmp(conshdlrname,
"nonlinear") == 0
1625rangedrow = rangedrow || (strcmp(conshdlrname,
"varbound") == 0
1630 if( strcmp(conshdlrname,
"knapsack") != 0 && strcmp(conshdlrname,
"logicor") != 0 && strcmp(conshdlrname,
"setppc") != 0
1631&& strcmp(conshdlrname,
"linear") != 0 && strcmp(conshdlrname,
"SOS1") != 0 && strcmp(conshdlrname,
"SOS2") != 0
1632&& strcmp(conshdlrname,
"nonlinear") != 0
1633&& strcmp(conshdlrname,
"varbound") != 0
1634&& strcmp(conshdlrname,
"indicator") != 0 )
1657 if( nconss > 0 || objvar ==
NULL)
1666 if( objvar ==
NULL)
1670 if( objoffset != 0.0 )
1678 for( v = 0; v < nvars; ++v )
1681assert( var !=
NULL);
1697discrete = nbinvars > 0 || nintvars > 0;
1698indicatorsosdef =
FALSE;
1699 for( c = 0; c < nconss; ++c )
1702assert( cons !=
NULL);
1708assert( conshdlr !=
NULL);
1714 if( strcmp(conshdlrname,
"knapsack") == 0 )
1724 for( v = 0; v < nconsvars; ++v )
1732 else if( strcmp(conshdlrname,
"linear") == 0 )
1738 else if( strcmp(conshdlrname,
"logicor") == 0 )
1744 else if( strcmp(conshdlrname,
"nonlinear") == 0 )
1750 else if( strcmp(conshdlrname,
"setppc") == 0 )
1759nconsvars, consvars,
NULL, 1.0, 1.0, transformed) );
1771 else if( strcmp(conshdlrname,
"varbound") == 0 )
17832, consvars, consvals,
1789 else if( strcmp(conshdlrname,
"indicator") == 0 )
1795 else if( strcmp(conshdlrname,
"SOS1") == 0 )
1802 else if( strcmp(conshdlrname,
"SOS2") == 0 )
1820assert(nlcons || !nsmooth);
1833discrete ?
"MI":
"", nlcons ? (nqcons ?
"QCP": ((nsmooth && !discrete) ?
"DNLP":
"NLP")) : (discrete > 0 ?
"P":
"LP"));
1835 if( objvar !=
NULL)
constraint handler for indicator constraints
Constraint handler for knapsack constraints of the form , x binary and .
Constraint handler for linear constraints in their most general form, .
Constraint handler for logicor constraints (equivalent to set covering, but algorithms are suited fo...
constraint handler for nonlinear constraints specified by algebraic expressions
Constraint handler for the set partitioning / packing / covering constraints .
constraint handler for SOS type 1 constraints
constraint handler for SOS type 2 constraints
Constraint handler for variable bound constraints .
absolute expression handler
int SCIPgetNVarsKnapsack(SCIP *scip, SCIP_CONS *cons)
SCIP_Real SCIPgetVbdcoefVarbound(SCIP *scip, SCIP_CONS *cons)
int SCIPgetNVarsLogicor(SCIP *scip, SCIP_CONS *cons)
SCIP_Real SCIPgetRhsLinear(SCIP *scip, SCIP_CONS *cons)
SCIP_VAR ** SCIPgetVarsLinear(SCIP *scip, SCIP_CONS *cons)
SCIP_VAR ** SCIPgetVarsSOS2(SCIP *scip, SCIP_CONS *cons)
SCIP_Real SCIPgetLhsLinear(SCIP *scip, SCIP_CONS *cons)
int SCIPgetNVarsLinear(SCIP *scip, SCIP_CONS *cons)
SCIP_Real * SCIPgetValsLinear(SCIP *scip, SCIP_CONS *cons)
SCIP_VAR * SCIPgetVbdvarVarbound(SCIP *scip, SCIP_CONS *cons)
int SCIPgetNVarsSetppc(SCIP *scip, SCIP_CONS *cons)
int SCIPgetNVarsSOS2(SCIP *scip, SCIP_CONS *cons)
SCIP_VAR ** SCIPgetVarsSetppc(SCIP *scip, SCIP_CONS *cons)
SCIP_EXPR * SCIPgetExprNonlinear(SCIP_CONS *cons)
SCIP_Real SCIPgetRhsNonlinear(SCIP_CONS *cons)
SCIP_VAR * SCIPgetBinaryVarIndicator(SCIP_CONS *cons)
SCIP_VAR * SCIPgetVarVarbound(SCIP *scip, SCIP_CONS *cons)
SCIP_Longint * SCIPgetWeightsKnapsack(SCIP *scip, SCIP_CONS *cons)
SCIP_VAR * SCIPgetSlackVarIndicator(SCIP_CONS *cons)
SCIP_Longint SCIPgetCapacityKnapsack(SCIP *scip, SCIP_CONS *cons)
SCIP_Real SCIPgetLhsVarbound(SCIP *scip, SCIP_CONS *cons)
SCIP_SETPPCTYPE SCIPgetTypeSetppc(SCIP *scip, SCIP_CONS *cons)
SCIP_VAR ** SCIPgetVarsSOS1(SCIP *scip, SCIP_CONS *cons)
SCIP_VAR ** SCIPgetVarsLogicor(SCIP *scip, SCIP_CONS *cons)
SCIP_Real SCIPgetRhsVarbound(SCIP *scip, SCIP_CONS *cons)
SCIP_VAR ** SCIPgetVarsKnapsack(SCIP *scip, SCIP_CONS *cons)
int SCIPgetNVarsSOS1(SCIP *scip, SCIP_CONS *cons)
SCIP_Real SCIPgetLhsNonlinear(SCIP_CONS *cons)
@ SCIP_SETPPCTYPE_PARTITIONING
@ SCIP_SETPPCTYPE_COVERING
@ SCIP_SETPPCTYPE_PACKING
SCIP_Bool SCIPisExprAbs(SCIP *scip, SCIP_EXPR *expr)
SCIP_RETCODE SCIPwriteGms(SCIP *scip, FILE *file, const char *name, SCIP_Bool transformed, SCIP_OBJSENSE objsense, SCIP_Real objscale, SCIP_Real objoffset, SCIP_VAR **vars, int nvars, int nbinvars, int nintvars, int nimplvars, int ncontvars, SCIP_CONS **conss, int nconss, SCIP_RESULT *result)
SCIP_RETCODE SCIPincludeReaderGms(SCIP *scip)
void SCIPinfoMessage(SCIP *scip, FILE *file, const char *formatstr,...)
void SCIPwarningMessage(SCIP *scip, const char *formatstr,...)
SCIP_RETCODE SCIPgetBoolParam(SCIP *scip, const char *name, SCIP_Bool *value)
SCIP_RETCODE SCIPaddCharParam(SCIP *scip, const char *name, const char *desc, char *valueptr, SCIP_Bool isadvanced, char defaultvalue, const char *allowedvalues, SCIP_DECL_PARAMCHGD((*paramchgd)), SCIP_PARAMDATA *paramdata)
SCIP_RETCODE SCIPaddRealParam(SCIP *scip, const char *name, const char *desc, SCIP_Real *valueptr, SCIP_Bool isadvanced, SCIP_Real defaultvalue, SCIP_Real minvalue, SCIP_Real maxvalue, SCIP_DECL_PARAMCHGD((*paramchgd)), SCIP_PARAMDATA *paramdata)
SCIP_RETCODE SCIPgetRealParam(SCIP *scip, const char *name, SCIP_Real *value)
SCIP_RETCODE SCIPaddBoolParam(SCIP *scip, const char *name, const char *desc, SCIP_Bool *valueptr, SCIP_Bool isadvanced, SCIP_Bool defaultvalue, SCIP_DECL_PARAMCHGD((*paramchgd)), SCIP_PARAMDATA *paramdata)
SCIP_RETCODE SCIPgetCharParam(SCIP *scip, const char *name, char *value)
const char * SCIPconshdlrGetName(SCIP_CONSHDLR *conshdlr)
SCIP_CONSHDLR * SCIPconsGetHdlr(SCIP_CONS *cons)
SCIP_RETCODE SCIPprintCons(SCIP *scip, SCIP_CONS *cons, FILE *file)
SCIP_Bool SCIPconsIsTransformed(SCIP_CONS *cons)
SCIP_Bool SCIPconsIsEnabled(SCIP_CONS *cons)
const char * SCIPconsGetName(SCIP_CONS *cons)
unsigned int SCIPexprhdlrGetPrecedence(SCIP_EXPRHDLR *exprhdlr)
SCIP_EXPRHDLR * SCIPgetExprhdlrSum(SCIP *scip)
SCIP_Real SCIPgetExponentExprPow(SCIP_EXPR *expr)
SCIP_Bool SCIPisExprProduct(SCIP *scip, SCIP_EXPR *expr)
SCIP_Bool SCIPexpriterIsEnd(SCIP_EXPRITER *iterator)
SCIP_Bool SCIPisExprSum(SCIP *scip, SCIP_EXPR *expr)
SCIP_Bool SCIPexprAreQuadraticExprsVariables(SCIP_EXPR *expr)
SCIP_Bool SCIPisExprValue(SCIP *scip, SCIP_EXPR *expr)
void SCIPexpriterSetStagesDFS(SCIP_EXPRITER *iterator, SCIP_EXPRITER_STAGE stopstages)
SCIP_Bool SCIPisExprVar(SCIP *scip, SCIP_EXPR *expr)
SCIP_RETCODE SCIPcreateExpriter(SCIP *scip, SCIP_EXPRITER **iterator)
SCIP_EXPR * SCIPexpriterGetParentDFS(SCIP_EXPRITER *iterator)
SCIP_Bool SCIPisExprPower(SCIP *scip, SCIP_EXPR *expr)
SCIP_EXPR * SCIPexpriterGetNext(SCIP_EXPRITER *iterator)
SCIP_RETCODE SCIPcheckExprQuadratic(SCIP *scip, SCIP_EXPR *expr, SCIP_Bool *isquadratic)
SCIP_VAR * SCIPgetVarExprVar(SCIP_EXPR *expr)
int SCIPexpriterGetChildIdxDFS(SCIP_EXPRITER *iterator)
void SCIPfreeExpriter(SCIP_EXPRITER **iterator)
SCIP_EXPRITER_STAGE SCIPexpriterGetStageDFS(SCIP_EXPRITER *iterator)
SCIP_RETCODE SCIPexpriterInit(SCIP_EXPRITER *iterator, SCIP_EXPR *expr, SCIP_EXPRITER_TYPE type, SCIP_Bool allowrevisit)
SCIP_EXPRHDLR * SCIPexprGetHdlr(SCIP_EXPR *expr)
int SCIPcalcMemGrowSize(SCIP *scip, int num)
#define SCIPallocBufferArray(scip, ptr, num)
#define SCIPreallocBufferArray(scip, ptr, num)
#define SCIPfreeBufferArray(scip, ptr)
#define SCIPduplicateBufferArray(scip, ptr, source, num)
SCIP_RETCODE SCIPincludeReaderBasic(SCIP *scip, SCIP_READER **readerptr, const char *name, const char *desc, const char *extension, SCIP_READERDATA *readerdata)
SCIP_RETCODE SCIPsetReaderCopy(SCIP *scip, SCIP_READER *reader, SCIP_DECL_READERCOPY((*readercopy)))
const char * SCIPreaderGetName(SCIP_READER *reader)
SCIP_RETCODE SCIPsetReaderWrite(SCIP *scip, SCIP_READER *reader, SCIP_DECL_READERWRITE((*readerwrite)))
SCIP_Real SCIPinfinity(SCIP *scip)
SCIP_Bool SCIPisFeasEQ(SCIP *scip, SCIP_Real val1, SCIP_Real val2)
SCIP_Real SCIPfloor(SCIP *scip, SCIP_Real val)
SCIP_Real SCIPfeasFloor(SCIP *scip, SCIP_Real val)
SCIP_Bool SCIPisInfinity(SCIP *scip, SCIP_Real val)
SCIP_Real SCIPceil(SCIP *scip, SCIP_Real val)
SCIP_Bool SCIPisEQ(SCIP *scip, SCIP_Real val1, SCIP_Real val2)
SCIP_Bool SCIPisZero(SCIP *scip, SCIP_Real val)
SCIP_RETCODE SCIPgetProbvarLinearSum(SCIP *scip, SCIP_VAR **vars, SCIP_Real *scalars, int *nvars, int varssize, SCIP_Real *constant, int *requiredsize, SCIP_Bool mergemultiples)
SCIP_RETCODE SCIPvarGetOrigvarSum(SCIP_VAR **var, SCIP_Real *scalar, SCIP_Real *constant)
SCIP_Bool SCIPvarIsActive(SCIP_VAR *var)
SCIP_Bool SCIPvarIsBinary(SCIP_VAR *var)
SCIP_VARSTATUS SCIPvarGetStatus(SCIP_VAR *var)
SCIP_Real SCIPvarGetUbLocal(SCIP_VAR *var)
SCIP_Real SCIPvarGetLbOriginal(SCIP_VAR *var)
SCIP_Real SCIPvarGetObj(SCIP_VAR *var)
SCIP_VARTYPE SCIPvarGetType(SCIP_VAR *var)
SCIP_Real SCIPvarGetUbGlobal(SCIP_VAR *var)
const char * SCIPvarGetName(SCIP_VAR *var)
SCIP_Real SCIPvarGetUbOriginal(SCIP_VAR *var)
SCIP_RETCODE SCIPgetNegatedVar(SCIP *scip, SCIP_VAR *var, SCIP_VAR **negvar)
SCIP_Real SCIPvarGetLbLocal(SCIP_VAR *var)
SCIP_Bool SCIPvarIsNegated(SCIP_VAR *var)
int SCIPsnprintf(char *t, int len, const char *s,...)
static const SCIP_Real scalars[]
memory allocation routines
public methods for managing constraints
public methods for message output
public data structures and miscellaneous methods
public methods for input file readers
public methods for problem variables
static SCIP_DECL_READERWRITE(readerWriteGms)
static void clearLine(char *linebuffer, int *linecnt)
static SCIP_DECL_READERCOPY(readerCopyGms)
static SCIP_RETCODE printNonlinearCons(SCIP *scip, FILE *file, const char *rowname, SCIP_EXPR *expr, SCIP_Real lhs, SCIP_Real rhs, SCIP_Bool transformed, SCIP_Bool *nsmooth, SCIP_Bool *nqcons)
static SCIP_RETCODE printSOSCons(SCIP *scip, FILE *file, const char *rowname, int nvars, SCIP_VAR **vars, int sostype, SCIP_Bool transformed)
static void endLineNoNewline(SCIP *scip, FILE *file, char *linebuffer, int *linecnt)
#define GMS_DEFAULT_INDICATORREFORM
#define GMS_DEFAULT_SIGNPOWER
static SCIP_RETCODE checkVarnames(SCIP *scip, SCIP_VAR **vars, int nvars)
static SCIP_RETCODE printLinearRow(SCIP *scip, FILE *file, const char *rowname, const char *rownameextension, const char *type, int nvars, SCIP_VAR **vars, SCIP_Real *vals, SCIP_Real rhs)
static SCIP_RETCODE checkConsnames(SCIP *scip, SCIP_CONS **conss, int nconss, SCIP_Bool transformed)
static SCIP_RETCODE printNonlinearRow(SCIP *scip, FILE *file, const char *rowname, const char *rownameextension, const char *type, SCIP_EXPR *expr, SCIP_Real rhs, SCIP_Bool transformed, SCIP_Bool *nsmooth, SCIP_Bool *nqcons)
static SCIP_RETCODE printLinearCons(SCIP *scip, FILE *file, const char *rowname, int nvars, SCIP_VAR **vars, SCIP_Real *vals, SCIP_Real lhs, SCIP_Real rhs, SCIP_Bool transformed)
static SCIP_RETCODE printConformName(SCIP *scip, char *t, int len, const char *name)
static SCIP_RETCODE printActiveVariables(SCIP *scip, FILE *file, char *linebuffer, int *linecnt, const char *prefix, const char *suffix, int nvars, SCIP_VAR **vars, SCIP_Real *vals, SCIP_Bool transformed)
static void conformName(char *name)
static void endLine(SCIP *scip, FILE *file, char *linebuffer, int *linecnt)
static SCIP_RETCODE printIndicatorCons(SCIP *scip, FILE *file, const char *rowname, SCIP_VAR *z, SCIP_VAR *s, SCIP_Bool *sossetdeclr, SCIP_Bool transformed)
static SCIP_RETCODE printExpr(SCIP *scip, FILE *file, char *linebuffer, int *linecnt, SCIP_Bool *nsmooth, SCIP_Bool *nqcons, SCIP_Bool transformed, SCIP_EXPR *expr)
static const char badchars[]
static void appendLine(SCIP *scip, FILE *file, char *linebuffer, int *linecnt, const char *extension)
static SCIP_RETCODE getActiveVariables(SCIP *scip, SCIP_VAR ***vars, SCIP_Real **scalars, int *nvars, int *varssize, SCIP_Real *constant, SCIP_Bool transformed)
GAMS file reader and writer.
public methods for constraint handler plugins and constraints
public methods for memory management
public methods for message handling
public methods for numerical tolerances
public methods for SCIP parameter handling
public methods for reader plugins
public methods for SCIP variables
#define SCIP_EXPRITER_VISITINGCHILD
#define SCIP_EXPRITER_VISITEDCHILD
#define SCIP_EXPRITER_LEAVEEXPR
#define SCIP_EXPRITER_ALLSTAGES
#define SCIP_EXPRITER_ENTEREXPR
unsigned int SCIP_EXPRITER_STAGE
enum SCIP_Objsense SCIP_OBJSENSE
enum SCIP_Result SCIP_RESULT
enum SCIP_Retcode SCIP_RETCODE
@ SCIP_VARSTATUS_ORIGINAL
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4