60 if( command[0] ==
'\0' )
65 else if( strcmp(command,
"..") == 0 )
68 if( *nextdialog ==
NULL )
83 else if( nfound >= 2 )
102 const char* valuestr,
106 assert( scip !=
NULL );
107 assert( valuestr !=
NULL );
108 assert( error !=
NULL );
112 switch( valuestr[0] )
147 assert( scip !=
NULL );
156 for( r = 0; r < nreaders; ++r )
194 if( filename[0] !=
'\0' )
227 if( extension ==
NULL )
235 "select a suitable reader by extension (or return): ", &extension, &endoffile) );
237 if( extension[0] ==
'\0' )
259 while( extension !=
NULL );
272 assert(dialog !=
NULL);
326 printf(
"<%s>\n", str);
328 SCIP_CALL(
SCIPparseCons(
scip, &cons, str,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE, &success) );
379 if( varname[0] ==
'\0' || endoffile )
387 while( var ==
NULL );
406 if( boundstr[0] !=
'\0' )
410 bound = strtod(boundstr, &endptr);
411 if( endptr == boundstr || *endptr !=
'\0' )
413 printf(
"<%s> <%s>\n", endptr, boundstr);
434 if( boundstr[0] !=
'\0' )
438 bound = strtod(boundstr, &endptr);
439 if( endptr == boundstr || *endptr !=
'\0' )
445 SCIPdialogMessage(
scip,
NULL,
"ignore new upper bound <%.15g> since it is smaller than the current lower bound <%.15g>\n",
497 if( objsense[0] !=
'\0' && !endoffile )
499 if( strncmp(objsense,
"max", 3) == 0 )
503 else if( strncmp(objsense ,
"min", 3) == 0 )
578 assert(nextdialog !=
NULL);
596 if( filename[0] !=
'\0' )
632 SCIPsortPtr((
void**)sorted, SCIPbranchruleComp, nbranchrules);
638 for( i = 0; i < nbranchrules; ++i )
680 SCIPsortPtr((
void**)sorted, SCIPrelaxComp, nrelaxs);
686 for( i = 0; i < nrelaxs; ++i )
688 assert(sorted !=
NULL);
724 SCIPsortPtr((
void**)sorted, SCIPconflicthdlrComp, nconflicthdlrs);
730 for( i = 0; i < nconflicthdlrs; ++i )
767 for( i = 0; i < nconshdlrs; ++i )
808 for( i = 0; i < ndisps; ++i )
860 for( i = 0; i < nheurs; ++i )
921 for( i = 0; i < nnlpis; ++i )
923 assert(sorted !=
NULL);
960 for( i = 0; i < nnodesels; ++i )
1013 for( i = 0; i < npresols; ++i )
1049 for( i = 0; i < npricers; ++i )
1106 for( i = 0; i < nprops; ++i )
1156 for( i = 0; i < nsepas; ++i )
1198 assert(fixedvars !=
NULL || nfixedvars == 0);
1201 for( v = 0; v < nfixedvars; ++v )
1212 If you want SCIP to display an optimal solution without infinite values, use 'display finitesolution'.\n");
1231 if( bestsol !=
NULL )
1331 if ( idx < 0 || idx >= nsols )
1340 assert( sols[idx] !=
NULL );
1393 SCIPsortPtr((
void**)sorted, SCIPcomprComp, ncomprs);
1399 for( i = 0; i < ncomprs; ++i )
1468 if( varname[0] !=
'\0' )
1783 if( filename[0] !=
'\0' )
1806 if( extension ==
NULL )
1810 tmpfilename, extension);
1818 if( extension ==
NULL )
1826 "select a suitable reader by extension (or return): ", &extension, &endoffile) );
1828 if( extension[0] ==
'\0' )
1844 while( extension !=
NULL );
1887 if( filename[0] !=
'\0' )
1921 if( filename[0] !=
'\0' )
1958 if( filename[0] !=
'\0' )
2013 if( valuestr[0] ==
'\0' )
2020 SCIPdialogMessage(
scip,
NULL,
"\nInvalid value <%s> for bool parameter <%s>. Must be <0>, <1>, <FALSE>, or <TRUE>.\n\n",
2045 if( valuestr[0] ==
'\0' )
2064 (void)
SCIPsnprintf(prompt,
SCIP_MAXSTRLEN,
"current value: %" SCIP_LONGINT_FORMAT
", new value [%" SCIP_LONGINT_FORMAT
",%" SCIP_LONGINT_FORMAT
"]: ",
2072 if( valuestr[0] ==
'\0' )
2079 SCIPdialogMessage(
scip,
NULL,
"\nInvalid value <%s> for longint parameter <%s>. Must be integral in range [%" SCIP_LONGINT_FORMAT
",%" SCIP_LONGINT_FORMAT
"].\n\n",
2098 if( valuestr[0] ==
'\0' )
2105 SCIPdialogMessage(
scip,
NULL,
"\nInvalid real parameter value <%s> for parameter <%s>. Must be in range [%.15g,%.15g].\n\n",
2123 if( valuestr[0] ==
'\0' )
2148 if( valuestr[0] ==
'\0' )
2201 if( strchr(valuestr,
'.') ==
NULL && strchr(valuestr,
'e') ==
NULL )
2251 if( valuestr[0] ==
'\0' )
2317 if( valuestr[0] ==
'\0' )
2342 SCIPerrorMessage(
"invalid preferred branching direction <%d> of variable <%s>\n",
2355 if( valuestr[0] ==
'\0' )
2360 if( sscanf(valuestr,
"%d", &direction) != 1 )
2365 if( direction < -1 || direction > +1 )
2372 if( direction == -1 )
2374 else if( direction == 0 )
2409 if( valuestr[0] ==
'\0' )
2430 if( valuestr[0] ==
'\0' )
2435 if( sscanf(valuestr,
"%d", &priority) != 1 )
2713 if( valuestr[0] ==
'\0' )
2769 if( filename[0] !=
'\0' )
2829 if( valuestr[0] ==
'\0' )
2836 "using generic variable and row names (TRUE/FALSE): ",
2837 &valuestr, &endoffile) );
2844 if( valuestr[0] ==
'\0' )
2863 "using original objective function (TRUE/FALSE): ",
2864 &valuestr, &endoffile) );
2871 if( valuestr[0] ==
'\0' )
2889 "output removable rows as lazy constraints (TRUE/FALSE): ",
2890 &valuestr, &endoffile) );
2897 if( valuestr[0] ==
'\0' )
2959 if( filename[0] !=
'\0' )
3036 if( filename[0] !=
'\0' )
3042 file = fopen(filename,
"w");
3087 if( filename[0] !=
'\0' )
3093 file = fopen(filename,
"w");
3144 if( filename[0] !=
'\0' )
3155 "check that the directory exists and that you have correct permissions\n", filename);
3186 if( filename[0] !=
'\0' )
3192 file = fopen(filename,
"w");
3209 if( bestsol !=
NULL )
3264 if( filename[0] !=
'\0' )
3270 file = fopen(filename,
"w");
3343 const char* primaldual[] = {
"primal",
"dual"};
3344 char promptbuffer[100];
3348 for( i = 0; i < 2; ++i )
3352 sprintf(promptbuffer,
"Please enter %s validation reference bound (or use +/-infinity) :", primaldual[i]);
3356 if( endoffile || strncmp(refstrs[i],
"\0", 1) == 0 )
3360 else if( strncmp(refstrs[i],
"q", 1) == 0 )
3372 assert(refvals[0] != SCIP_INVALID);
3373 assert(refvals[1] != SCIP_INVALID);
3391 SCIPdialogExecMenuLazy,
NULL,
NULL,
3392 "SCIP",
"SCIP's main menu",
TRUE,
NULL) );
3424 "change",
"change the problem",
TRUE,
NULL) );
3439 SCIPdialogExecChangeAddCons,
NULL,
NULL,
3440 "add",
"add constraint",
FALSE,
NULL) );
3450 SCIPdialogExecChangeBounds,
NULL,
NULL,
3451 "bounds",
"change bounds of a variable",
FALSE,
NULL) );
3461 SCIPdialogExecChangeFreetransproblem,
NULL,
NULL,
3462 "freetransproblem",
"free transformed problem",
FALSE,
NULL) );
3472 SCIPdialogExecChangeObjSense,
NULL,
NULL,
3473 "objsense",
"change objective sense",
FALSE,
NULL) );
3483 SCIPdialogExecChecksol,
NULL,
NULL,
3484 "checksol",
"double checks best solution w.r.t. original problem",
FALSE,
NULL) );
3495 "display",
"display information",
TRUE,
NULL) );
3510 SCIPdialogExecDisplayBranching,
NULL,
NULL,
3511 "branching",
"display branching rules",
FALSE,
NULL) );
3521 SCIPdialogExecDisplayCompression,
NULL,
NULL,
3522 "compression",
"display compression techniques",
FALSE,
NULL) );
3532 SCIPdialogExecDisplayConflict,
NULL,
NULL,
3533 "conflict",
"display conflict handlers",
FALSE,
NULL) );
3543 SCIPdialogExecDisplayConshdlrs,
NULL,
NULL,
3544 "conshdlrs",
"display constraint handlers",
FALSE,
NULL) );
3554 SCIPdialogExecDisplayDisplaycols,
NULL,
NULL,
3555 "displaycols",
"display display columns",
FALSE,
NULL) );
3565 SCIPdialogExecDisplayHeuristics,
NULL,
NULL,
3566 "heuristics",
"display primal heuristics",
FALSE,
NULL) );
3576 SCIPdialogExecDisplayMemory,
NULL,
NULL,
3577 "memory",
"display memory diagnostics",
FALSE,
NULL) );
3587 SCIPdialogExecDisplayNlpi,
NULL,
NULL,
3588 "nlpis",
"display NLP solver interfaces",
FALSE,
NULL) );
3598 SCIPdialogExecDisplayNodeselectors,
NULL,
NULL,
3599 "nodeselectors",
"display node selectors",
FALSE,
NULL) );
3609 SCIPdialogExecDisplayParameters,
NULL,
NULL,
3610 "parameters",
"display non-default parameter settings",
FALSE,
NULL) );
3620 SCIPdialogExecDisplayPresolvers,
NULL,
NULL,
3621 "presolvers",
"display presolvers",
FALSE,
NULL) );
3631 SCIPdialogExecDisplayPricers,
NULL,
NULL,
3632 "pricers",
"display pricers",
FALSE,
NULL) );
3642 SCIPdialogExecDisplayProblem,
NULL,
NULL,
3643 "problem",
"display original problem",
FALSE,
NULL) );
3653 SCIPdialogExecDisplayPropagators,
NULL,
NULL,
3654 "propagators",
"display propagators",
FALSE,
NULL) );
3664 SCIPdialogExecDisplayReaders,
NULL,
NULL,
3665 "readers",
"display file readers",
FALSE,
NULL) );
3675 SCIPdialogExecDisplayRelaxators,
NULL,
NULL,
3676 "relaxators",
"display relaxators",
FALSE,
NULL) );
3686 SCIPdialogExecDisplaySeparators,
NULL,
NULL,
3687 "separators",
"display cut separators",
FALSE,
NULL) );
3697 SCIPdialogExecDisplaySolution,
NULL,
NULL,
3698 "solution",
"display best primal solution",
FALSE,
NULL) );
3708 SCIPdialogExecDisplayFiniteSolution,
NULL,
NULL,
3709 "finitesolution",
"display best primal solution (try to make solution values finite, first)",
FALSE,
NULL) );
3719 SCIPdialogExecDisplayDualSolution,
NULL,
NULL,
3720 "dualsolution",
"display dual solution vector (LP only, without presolving)",
FALSE,
NULL) );
3730 SCIPdialogExecDisplaySolutionPool,
NULL,
NULL,
3731 "sols",
"display solutions from pool",
FALSE,
NULL) );
3741 SCIPdialogExecDisplayStatistics,
NULL,
NULL,
3742 "statistics",
"display problem and optimization statistics",
FALSE,
NULL) );
3752 SCIPdialogExecDisplayReoptStatistics,
NULL,
NULL,
3753 "reoptstatistics",
"display reoptimitazion statistics",
FALSE,
NULL) );
3763 SCIPdialogExecDisplayTransproblem,
NULL,
NULL,
3764 "transproblem",
"display current node transformed problem",
FALSE,
NULL) );
3774 SCIPdialogExecDisplayValue,
NULL,
NULL,
3775 "value",
"display value of single variable in best primal solution",
FALSE,
NULL) );
3785 SCIPdialogExecDisplayVarbranchstatistics,
NULL,
NULL,
3786 "varbranchstatistics",
"display statistics for branching on variables",
FALSE,
NULL) );
3796 SCIPdialogExecDisplayLPSolutionQuality,
NULL,
NULL,
3797 "lpsolquality",
"display quality of the current LP solution, if available",
FALSE,
NULL) );
3807 SCIPdialogExecDisplayTranssolution,
NULL,
NULL,
3808 "transsolution",
"display best primal solution in transformed variables",
FALSE,
NULL) );
3819 "free",
"free current problem from memory",
FALSE,
NULL) );
3830 "help",
"display this help",
FALSE,
NULL) );
3840 SCIPdialogExecNewstart,
NULL,
NULL,
3841 "newstart",
"reset branch and bound tree to start again from root",
FALSE,
NULL) );
3852 SCIPdialogExecTransform,
NULL,
NULL,
3853 "transform",
"transforms problem from original state",
FALSE,
NULL) );
3864 SCIPdialogExecOptimize,
NULL,
NULL,
3865 "optimize",
"solve the problem",
FALSE,
NULL) );
3875 SCIPdialogExecConcurrentOpt,
NULL,
NULL,
3876 "concurrentopt",
"solve the problem using concurrent solvers",
FALSE,
NULL) );
3886 SCIPdialogExecPresolve,
NULL,
NULL,
3887 "presolve",
"solve the problem, but stop after presolving stage",
FALSE,
NULL) );
3909 "read",
"read a problem",
FALSE,
NULL) );
3926 "write",
"write information to file",
TRUE,
NULL) );
3942 "lp",
"write current node LP relaxation in LP format to file",
FALSE,
NULL) );
3952 SCIPdialogExecWriteMip,
NULL,
NULL,
3953 "mip",
"write current node MIP relaxation in LP format to file",
FALSE,
NULL) );
3963 SCIPdialogExecWriteNlp,
NULL,
NULL,
3964 "nlp",
"write current node NLP relaxation to file",
FALSE,
NULL) );
3974 SCIPdialogExecWriteProblem,
NULL,
NULL,
3976 "write original problem to file (format is given by file extension, e.g., orig.{lp,rlp,cip,mps})",
3987 SCIPdialogExecWriteGenProblem,
NULL,
NULL,
3989 "write original problem with generic names to file (format is given by file extension, e.g., orig.{lp,rlp,cip,mps})",
4000 SCIPdialogExecWriteSolution,
NULL,
NULL,
4001 "solution",
"write best primal solution to file",
FALSE,
NULL) );
4011 SCIPdialogExecWriteFiniteSolution,
NULL,
NULL,
4012 "finitesolution",
"write best primal solution to file (try to make solution values finite, first)",
FALSE,
NULL) );
4022 SCIPdialogExecWriteMIPStart,
NULL,
NULL,
4023 "mipstart",
"write mip start to file",
FALSE,
NULL) );
4033 SCIPdialogExecWriteStatistics,
NULL,
NULL,
4034 "statistics",
"write statistics to file",
FALSE,
NULL) );
4044 SCIPdialogExecWriteTransproblem,
NULL,
NULL,
4046 "write current node transformed problem to file (format is given by file extension, e.g., trans.{lp,rlp,cip,mps})",
4057 SCIPdialogExecWriteGenTransproblem,
NULL,
NULL,
4059 "write current node transformed problem with generic names to file (format is given by file extension, e.g., trans.{lp,rlp,cip,mps})",
4070 SCIPdialogExecCliquegraph,
NULL,
NULL,
4072 "write graph of cliques and implications of binary variables to GML file (better call after presolving)",
4083 SCIPdialogExecWriteCommandHistory,
NULL,
NULL,
4085 "write command line history to a file (only works if SCIP was compiled with 'readline')",
4096 "validate the solution against external objective reference interval",
4119 assert(paramname !=
NULL);
4122 slash = strchr(paramname,
'/');
4150 if( advmenu ==
NULL )
4161 SCIPdialogExecSetParam, SCIPdialogDescSetParam,
NULL,
4172 SCIPdialogExecSetParam, SCIPdialogDescSetParam,
NULL,
4185 paramname = slash+1;
4203 if( submenu ==
NULL )
4230 assert(paramname !=
NULL);
4233 slash = strchr(paramname,
'/');
4261 if( advmenu ==
NULL )
4272 SCIPdialogExecFixParam, SCIPdialogDescFixParam,
NULL,
4283 SCIPdialogExecFixParam, SCIPdialogDescFixParam,
NULL,
4296 paramname = slash+1;
4314 if( submenu ==
NULL )
4339 "emphasis",
"predefined parameter settings",
TRUE,
NULL) );
4349 assert(*submenu !=
NULL);
4406 "set",
"load/save/change parameters",
TRUE,
NULL) );
4421 SCIPdialogExecSetDefault,
NULL,
NULL,
4422 "default",
"reset parameter settings to their default values",
FALSE,
NULL) );
4433 "load",
"load parameter settings from a file",
FALSE,
NULL) );
4444 "save",
"save parameter settings to a file",
FALSE,
NULL) );
4454 SCIPdialogExecSetDiffsave,
NULL,
NULL,
4455 "diffsave",
"save non-default parameter settings to a file",
FALSE,
NULL) );
4466 "branching",
"change parameters for branching rules",
TRUE,
NULL) );
4479 for( i = 0; i < nbranchrules; ++i )
4497 SCIPdialogExecSetBranchingPriority,
NULL,
NULL,
4498 "priority",
"change branching priority of a single variable",
FALSE,
NULL) );
4508 SCIPdialogExecSetBranchingDirection,
NULL,
NULL,
4509 "direction",
"change preferred branching direction of a single variable (-1:down, 0:auto, +1:up)",
4521 "conflict",
"change parameters for conflict handlers",
TRUE,
NULL) );
4534 for( i = 0; i < nconflicthdlrs; ++i )
4553 "constraints",
"change parameters for constraint handlers",
TRUE,
NULL) );
4566 for( i = 0; i < nconshdlrs; ++i )
4585 "display",
"change parameters for display columns",
TRUE,
NULL) );
4598 for( i = 0; i < ndisps; ++i )
4617 "heuristics",
"change parameters for primal heuristics",
TRUE,
NULL) );
4630 for( i = 0; i < nheurs; ++i )
4645 assert(emphasismenu !=
NULL);
4651 NULL, SCIPdialogExecSetHeuristicsAggressive,
NULL,
NULL,
4652 "aggressive",
"sets heuristics <aggressive>",
FALSE,
NULL) );
4662 "default",
"sets heuristics settings to <default> ",
FALSE,
NULL) );
4672 "fast",
"sets heuristics <fast>",
FALSE,
NULL) );
4682 "off",
"turns <off> all heuristics",
FALSE,
NULL) );
4693 "limits",
"change parameters for time, memory, objective value, and other limits",
TRUE,
NULL) );
4698 SCIPdialogExecSetLimitsObjective,
NULL,
NULL,
4699 "objective",
"set limit on objective function, such that only solutions better than this limit are accepted",
FALSE,
NULL) );
4712 "lp",
"change parameters for linear programming relaxations",
TRUE,
NULL) );
4723 "nlp",
"change parameters for nonlinear programming relaxations",
TRUE,
NULL) );
4734 "memory",
"change parameters for memory management",
TRUE,
NULL) );
4745 "misc",
"change parameters for miscellaneous stuff",
TRUE,
NULL) );
4756 "nlpi",
"change parameters for NLP solver interfaces",
TRUE,
NULL) );
4769 for( i = 0; i < nnlpis; ++i )
4788 "nodeselection",
"change parameters for node selectors",
TRUE,
NULL) );
4801 for( i = 0; i < nnodesels; ++i )
4820 "numerics",
"change parameters for numerical values",
TRUE,
NULL) );
4831 "parallel",
"change parameters for parallel implementation",
TRUE,
NULL) );
4842 "presolving",
"change parameters for presolving",
TRUE,
NULL) );
4855 for( i = 0; i < npresols; ++i )
4869 assert(emphasismenu !=
NULL);
4875 NULL, SCIPdialogExecSetPresolvingAggressive,
NULL,
NULL,
4876 "aggressive",
"sets presolving <aggressive>",
FALSE,
NULL) );
4886 "default",
"sets presolving settings to <default>",
FALSE,
NULL) );
4896 "fast",
"sets presolving <fast>",
FALSE,
NULL) );
4906 "off",
"turns <off> all presolving",
FALSE,
NULL) );
4917 "pricing",
"change parameters for pricing variables",
TRUE,
NULL) );
4930 for( i = 0; i < npricers; ++i )
4949 "propagating",
"change parameters for constraint propagation",
TRUE,
NULL) );
4960 "reading",
"change parameters for problem file readers",
TRUE,
NULL) );
4973 for( i = 0; i < nreaders; ++i )
4991 "separating",
"change parameters for cut separators",
TRUE,
NULL) );
5004 for( i = 0; i < nsepas; ++i )
5018 assert(emphasismenu !=
NULL);
5024 NULL, SCIPdialogExecSetSeparatingAggressive,
NULL,
NULL,
5025 "aggressive",
"sets separating <aggressive>",
FALSE,
NULL) );
5035 "default",
"sets separating settings to <default>",
FALSE,
NULL) );
5045 "fast",
"sets separating <fast>",
FALSE,
NULL) );
5055 "off",
"turns <off> all separation",
FALSE,
NULL) );
5065 "timing",
"change parameters for timing issues",
TRUE,
NULL) );
5075 "visual",
"change parameters for visualization output",
TRUE,
NULL) );
5088 for( i = 0; i < nparams; ++i )
5103 "counter",
"predefined parameter settings for a \"feasible\" and \"fast\" counting process",
FALSE,
NULL) );
5112 "cpsolver",
"predefined parameter settings for CP like search",
FALSE,
NULL) );
5121 "easycip",
"predefined parameter settings for easy problems",
FALSE,
NULL) );
5130 "feasibility",
"predefined parameter settings for feasibility problems",
FALSE,
NULL) );
5139 "hardlp",
"predefined parameter settings for problems with a hard LP",
FALSE,
NULL) );
5148 "optimality",
"predefined parameter settings for proving optimality fast",
FALSE,
NULL) );
5206 "fix",
"fix/unfix parameters",
TRUE,
NULL) );
5222 "branching",
"fix parameters for branching rules",
TRUE,
NULL) );
5235 for( i = 0; i < nbranchrules; ++i )
5254 "conflict",
"fix parameters for conflict handlers",
TRUE,
NULL) );
5267 for( i = 0; i < nconflicthdlrs; ++i )
5286 "constraints",
"fix parameters for constraint handlers",
TRUE,
NULL) );
5299 for( i = 0; i < nconshdlrs; ++i )
5318 "display",
"fix parameters for display columns",
TRUE,
NULL) );
5331 for( i = 0; i < ndisps; ++i )
5350 "heuristics",
"fix parameters for primal heuristics",
TRUE,
NULL) );
5363 for( i = 0; i < nheurs; ++i )
5382 "limits",
"fix parameters for time, memory, objective value, and other limits",
TRUE,
NULL) );
5394 "lp",
"fix parameters for linear programming relaxations",
TRUE,
NULL) );
5405 "nlp",
"fix parameters for nonlinear programming relaxations",
TRUE,
NULL) );
5416 "memory",
"fix parameters for memory management",
TRUE,
NULL) );
5427 "misc",
"fix parameters for miscellaneous stuff",
TRUE,
NULL) );
5438 "nlpi",
"fix parameters for NLP solver interfaces",
TRUE,
NULL) );
5451 for( i = 0; i < nnlpis; ++i )
5470 "nodeselection",
"fix parameters for node selectors",
TRUE,
NULL) );
5483 for( i = 0; i < nnodesels; ++i )
5502 "numerics",
"fix parameters for numerical values",
TRUE,
NULL) );
5513 "presolving",
"fix parameters for presolving",
TRUE,
NULL) );
5526 for( i = 0; i < npresols; ++i )
5544 "pricing",
"fix parameters for pricing variables",
TRUE,
NULL) );
5557 for( i = 0; i < npricers; ++i )
5576 "propagating",
"fix parameters for constraint propagation",
TRUE,
NULL) );
5587 "reading",
"fix parameters for problem file readers",
TRUE,
NULL) );
5600 for( i = 0; i < nreaders; ++i )
5618 "separating",
"fix parameters for cut separators",
TRUE,
NULL) );
5631 for( i = 0; i < nsepas; ++i )
5648 "timing",
"fix parameters for timing issues",
TRUE,
NULL) );
5658 for( i = 0; i < nparams; ++i )
SCIP_Bool SCIPsolIsOriginal(SCIP_SOL *sol)
SCIP_RETCODE SCIPprintReoptStatistics(SCIP *scip, FILE *file)
SCIP_RETCODE SCIPprintBestSol(SCIP *scip, FILE *file, SCIP_Bool printzeros)
SCIP_DECL_DIALOGDESC(SCIPdialogDescSetParam)
const char * SCIPcomprGetDesc(SCIP_COMPR *compr)
SCIP_PARAM ** SCIPgetParams(SCIP *scip)
SCIP_RETCODE SCIPchgVarLbGlobal(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound)
SCIP_RETCODE SCIPsetSeparating(SCIP *scip, SCIP_PARAMSETTING paramsetting, SCIP_Bool quiet)
SCIP_RETCODE SCIPincludeDialogDefault(SCIP *scip)
SCIP_Real SCIPfeastol(SCIP *scip)
const char * SCIPconflicthdlrGetDesc(SCIP_CONFLICTHDLR *conflicthdlr)
int SCIPheurGetPriority(SCIP_HEUR *heur)
SCIP_Bool SCIPisNLPConstructed(SCIP *scip)
void SCIPdialoghdlrClearBuffer(SCIP_DIALOGHDLR *dialoghdlr)
int SCIPnodeselGetMemsavePriority(SCIP_NODESEL *nodesel)
const char * SCIPpricerGetName(SCIP_PRICER *pricer)
SCIP_STAGE SCIPgetStage(SCIP *scip)
SCIP_NODESEL ** SCIPgetNodesels(SCIP *scip)
SCIP_PRESOLTIMING SCIPpropGetPresolTiming(SCIP_PROP *prop)
int SCIPgetNRelaxs(SCIP *scip)
SCIP_DISPSTATUS SCIPdispGetStatus(SCIP_DISP *disp)
SCIP_Real SCIPbranchruleGetMaxbounddist(SCIP_BRANCHRULE *branchrule)
void SCIPdialogMessage(SCIP *scip, FILE *file, const char *formatstr,...)
int SCIPcomprGetMinNodes(SCIP_COMPR *compr)
SCIP_RETCODE SCIPaddDialogEntry(SCIP *scip, SCIP_DIALOG *dialog, SCIP_DIALOG *subdialog)
SCIP_BRANCHDIR SCIPvarGetBranchDirection(SCIP_VAR *var)
SCIP_RETCODE SCIPwriteLP(SCIP *scip, const char *filename)
SCIP_Bool SCIPreaderCanWrite(SCIP_READER *reader)
SCIP_Real SCIPvarGetLbGlobal(SCIP_VAR *var)
SCIP_RETCODE SCIPgetRealParam(SCIP *scip, const char *name, SCIP_Real *value)
int SCIPnlpiGetPriority(SCIP_NLPI *nlpi)
SCIP_Bool SCIPparseReal(SCIP *scip, const char *str, SCIP_Real *value, char **endptr)
static SCIP_DECL_DIALOGCOPY(dialogCopyDefault)
char SCIPparamGetChar(SCIP_PARAM *param)
int SCIPcomprGetPriority(SCIP_COMPR *compr)
SCIP_Bool SCIPisStringParamValid(SCIP *scip, SCIP_PARAM *param, const char *value)
int SCIPpropGetPriority(SCIP_PROP *prop)
#define SCIP_CALL_FINALLY(x, y)
SCIP_RELAX ** SCIPgetRelaxs(SCIP *scip)
SCIP_Bool SCIPpropIsDelayed(SCIP_PROP *prop)
internal methods for NLPI solver interfaces
int SCIPdispGetWidth(SCIP_DISP *disp)
SCIP_RETCODE SCIPprintTransProblem(SCIP *scip, FILE *file, const char *extension, SCIP_Bool genericnames)
const char * SCIPreaderGetName(SCIP_READER *reader)
const char * SCIPbranchruleGetDesc(SCIP_BRANCHRULE *branchrule)
static SCIP_RETCODE dialogExecMenu(SCIP *scip, SCIP_DIALOG *dialog, SCIP_DIALOGHDLR *dialoghdlr, SCIP_DIALOG **nextdialog)
const char * SCIPnodeselGetDesc(SCIP_NODESEL *nodesel)
SCIP_RETCODE SCIPsetHeuristics(SCIP *scip, SCIP_PARAMSETTING paramsetting, SCIP_Bool quiet)
SCIP_RETCODE SCIPdialogDisplayCompletions(SCIP_DIALOG *dialog, SCIP *scip, const char *entryname)
SCIP_SOL ** SCIPgetSols(SCIP *scip)
SCIP_PRESOLTIMING SCIPconshdlrGetPresolTiming(SCIP_CONSHDLR *conshdlr)
SCIP_Bool SCIPisIntParamValid(SCIP *scip, SCIP_PARAM *param, int value)
SCIP_RETCODE SCIPparseCons(SCIP *scip, SCIP_CONS **cons, const char *str, 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_Bool *success)
int SCIPsnprintf(char *t, int len, const char *s,...)
const char * SCIPsepaGetName(SCIP_SEPA *sepa)
enum SCIP_Retcode SCIP_RETCODE
#define SCIP_PRESOLTIMING_EXHAUSTIVE
SCIP_RETCODE SCIPwriteOrigProblem(SCIP *scip, const char *filename, const char *extension, SCIP_Bool genericnames)
SCIP_RETCODE SCIPsetPresolving(SCIP *scip, SCIP_PARAMSETTING paramsetting, SCIP_Bool quiet)
int SCIPheurGetFreqofs(SCIP_HEUR *heur)
SCIP_HEUR ** SCIPgetHeurs(SCIP *scip)
int SCIPdispGetPriority(SCIP_DISP *disp)
const char * SCIPparamGetName(SCIP_PARAM *param)
const char * SCIPnlpiGetName(SCIP_NLPI *nlpi)
int SCIPdialogFindEntry(SCIP_DIALOG *dialog, const char *entryname, SCIP_DIALOG **subdialog)
SCIP_RETCODE SCIPchgRealParam(SCIP *scip, SCIP_PARAM *param, SCIP_Real value)
struct SCIP_DialogData SCIP_DIALOGDATA
const char * SCIPdispGetDesc(SCIP_DISP *disp)
SCIP_Bool SCIPstrToIntValue(const char *str, int *value, char **endptr)
SCIP_MESSAGEHDLR * SCIPgetMessagehdlr(SCIP *scip)
#define SCIPduplicateBufferArray(scip, ptr, source, num)
int SCIPconshdlrGetSepaFreq(SCIP_CONSHDLR *conshdlr)
const char * SCIPpresolGetDesc(SCIP_PRESOL *presol)
int SCIPgetNPresols(SCIP *scip)
SCIP_Bool SCIPisEQ(SCIP *scip, SCIP_Real val1, SCIP_Real val2)
#define SCIPfreeBufferArray(scip, ptr)
SCIP_Bool SCIPisTransformed(SCIP *scip)
SCIP_RETCODE SCIPchgStringParam(SCIP *scip, SCIP_PARAM *param, const char *value)
SCIP_RETCODE SCIPchgVarUbGlobal(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound)
SCIP_Real SCIPparamGetReal(SCIP_PARAM *param)
const char * SCIPconshdlrGetDesc(SCIP_CONSHDLR *conshdlr)
SCIP_RETCODE SCIPprintStatistics(SCIP *scip, FILE *file)
SCIP_DIALOG * SCIPdialogGetParent(SCIP_DIALOG *dialog)
void SCIPinfoMessage(SCIP *scip, FILE *file, const char *formatstr,...)
int SCIPconshdlrGetSepaPriority(SCIP_CONSHDLR *conshdlr)
#define SCIP_PRESOLTIMING_FAST
int SCIPgetNConshdlrs(SCIP *scip)
SCIP_RETCODE SCIPprintBranchingStatistics(SCIP *scip, FILE *file)
SCIP_Bool SCIPfileExists(const char *filename)
int SCIPgetNFixedVars(SCIP *scip)
int SCIPpricerGetPriority(SCIP_PRICER *pricer)
SCIP_VAR * SCIPfindVar(SCIP *scip, const char *name)
SCIP_VAR ** SCIPgetFixedVars(SCIP *scip)
SCIP_Bool SCIPisCharParamValid(SCIP *scip, SCIP_PARAM *param, const char value)
SCIP_RETCODE SCIPresetParams(SCIP *scip)
int SCIPconshdlrGetCheckPriority(SCIP_CONSHDLR *conshdlr)
SCIP_DIALOG * SCIPgetRootDialog(SCIP *scip)
SCIP_Real SCIPvarGetUbGlobal(SCIP_VAR *var)
SCIP_READER ** SCIPgetReaders(SCIP *scip)
int SCIPsepaGetFreq(SCIP_SEPA *sepa)
SCIP_Longint SCIPparamGetLongint(SCIP_PARAM *param)
char * SCIPparamGetString(SCIP_PARAM *param)
SCIP_RETCODE SCIPincludeDialog(SCIP *scip, SCIP_DIALOG **dialog, SCIP_DECL_DIALOGCOPY((*dialogcopy)), SCIP_DECL_DIALOGEXEC((*dialogexec)), SCIP_DECL_DIALOGDESC((*dialogdesc)), SCIP_DECL_DIALOGFREE((*dialogfree)), const char *name, const char *desc, SCIP_Bool issubmenu, SCIP_DIALOGDATA *dialogdata)
void SCIPprintMemoryDiagnostic(SCIP *scip)
int SCIPconshdlrGetEagerFreq(SCIP_CONSHDLR *conshdlr)
SCIP_RETCODE SCIPsetObjsense(SCIP *scip, SCIP_OBJSENSE objsense)
SCIP_Bool SCIPisBoolParamValid(SCIP *scip, SCIP_PARAM *param, SCIP_Bool value)
SCIP_CONFLICTHDLR ** SCIPgetConflicthdlrs(SCIP *scip)
#define SCIP_PRESOLTIMING_MEDIUM
SCIP_RETCODE SCIPsolve(SCIP *scip)
SCIP_PROP ** SCIPgetProps(SCIP *scip)
const char * SCIPheurGetName(SCIP_HEUR *heur)
#define BMSfreeMemoryArray(ptr)
const char * SCIPconshdlrGetName(SCIP_CONSHDLR *conshdlr)
SCIP_RETCODE SCIPaddCons(SCIP *scip, SCIP_CONS *cons)
SCIP_CONSHDLR ** SCIPgetConshdlrs(SCIP *scip)
SCIP_RETCODE SCIPincludeDialogDefaultFix(SCIP *scip)
SCIP_Bool SCIPisLT(SCIP *scip, SCIP_Real val1, SCIP_Real val2)
SCIP_RETCODE SCIPwriteNLP(SCIP *scip, const char *filename)
SCIP_RETCODE SCIPfreeProb(SCIP *scip)
SCIP_RETCODE SCIPreadProb(SCIP *scip, const char *filename, const char *extension)
SCIP_RETCODE SCIPdialogWriteHistory(const char *filename)
int SCIPgetNConflicthdlrs(SCIP *scip)
static SCIP_RETCODE addSetParamDialog(SCIP *scip, SCIP_DIALOG *menu, SCIP_PARAM *param, char *paramname)
SCIP_RETCODE SCIPchgCharParam(SCIP *scip, SCIP_PARAM *param, char value)
SCIP_Bool SCIPreaderCanRead(SCIP_READER *reader)
#define SCIPfreeBufferArrayNull(scip, ptr)
static SCIP_RETCODE addFixParamDialog(SCIP *scip, SCIP_DIALOG *menu, SCIP_PARAM *param, char *paramname)
SCIP_RETCODE SCIPpresolve(SCIP *scip)
int SCIPgetNDisps(SCIP *scip)
static SCIP_RETCODE writeProblem(SCIP *scip, SCIP_DIALOG *dialog, SCIP_DIALOGHDLR *dialoghdlr, SCIP_DIALOG **nextdialog, SCIP_Bool transformed, SCIP_Bool genericnames)
SCIP_Bool SCIPparamIsFixed(SCIP_PARAM *param)
void SCIPescapeString(char *t, int bufsize, const char *s)
int SCIPrelaxGetPriority(SCIP_RELAX *relax)
SCIP_RETCODE SCIPcheckSolOrig(SCIP *scip, SCIP_SOL *sol, SCIP_Bool *feasible, SCIP_Bool printreason, SCIP_Bool completely)
SCIP_RETCODE SCIPdialogDisplayMenu(SCIP_DIALOG *dialog, SCIP *scip)
const char * SCIPheurGetDesc(SCIP_HEUR *heur)
const char * SCIPvarGetName(SCIP_VAR *var)
SCIP_RETCODE SCIPgetBoolParam(SCIP *scip, const char *name, SCIP_Bool *value)
const char * SCIPdispGetHeader(SCIP_DISP *disp)
SCIP_RETCODE SCIPprintOrigProblem(SCIP *scip, FILE *file, const char *extension, SCIP_Bool genericnames)
int SCIPpresolGetPriority(SCIP_PRESOL *presol)
int SCIPgetNNlpis(SCIP *scip)
int SCIPheurGetFreq(SCIP_HEUR *heur)
static SCIP_Bool parseBoolValue(SCIP *scip, const char *valuestr, SCIP_Bool *error)
const char * SCIPrelaxGetName(SCIP_RELAX *relax)
int SCIPconshdlrGetPropFreq(SCIP_CONSHDLR *conshdlr)
void SCIPsortPtr(void **ptrarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int len)
SCIP_RETCODE SCIPprintStatus(SCIP *scip, FILE *file)
SCIP_RETCODE SCIPsetEmphasis(SCIP *scip, SCIP_PARAMEMPHASIS paramemphasis, SCIP_Bool quiet)
SCIP_Real SCIPsepaGetMaxbounddist(SCIP_SEPA *sepa)
int SCIPrelaxGetFreq(SCIP_RELAX *relax)
SCIP_Bool SCIPisLongintParamValid(SCIP *scip, SCIP_PARAM *param, SCIP_Longint value)
const char * SCIPsepaGetDesc(SCIP_SEPA *sepa)
#define BMSduplicateMemoryArray(ptr, source, num)
SCIP_PARAMTYPE SCIPparamGetType(SCIP_PARAM *param)
SCIP_COMPR ** SCIPgetComprs(SCIP *scip)
SCIP_RETCODE SCIPfreeTransform(SCIP *scip)
int SCIPdispGetPosition(SCIP_DISP *disp)
SCIP_Real SCIPgetObjlimit(SCIP *scip)
int SCIPconflicthdlrGetPriority(SCIP_CONFLICTHDLR *conflicthdlr)
SCIP_RETCODE SCIPwriteTransProblem(SCIP *scip, const char *filename, const char *extension, SCIP_Bool genericnames)
void SCIPprintSysError(const char *message)
SCIP_RETCODE SCIPvalidateSolve(SCIP *scip, SCIP_Real primalreference, SCIP_Real dualreference, SCIP_Real reftol, SCIP_Bool quiet, SCIP_Bool *feasible, SCIP_Bool *primalboundcheck, SCIP_Bool *dualboundcheck)
SCIP_RETCODE SCIPprintBestTransSol(SCIP *scip, FILE *file, SCIP_Bool printzeros)
static const char * paramname[]
SCIP_RETCODE SCIPsetObjlimit(SCIP *scip, SCIP_Real objlimit)
int SCIPgetNPricers(SCIP *scip)
int SCIPvarGetBranchPriority(SCIP_VAR *var)
SCIP_Bool SCIPdialogHasEntry(SCIP_DIALOG *dialog, const char *entryname)
SCIP_RETCODE SCIPchgLongintParam(SCIP *scip, SCIP_PARAM *param, SCIP_Longint value)
const char * SCIPrelaxGetDesc(SCIP_RELAX *relax)
int SCIPpresolGetMaxrounds(SCIP_PRESOL *presol)
const char * SCIPpresolGetName(SCIP_PRESOL *presol)
const char * SCIPnodeselGetName(SCIP_NODESEL *nodesel)
SCIP_RETCODE SCIPwriteCliqueGraph(SCIP *scip, const char *fname, SCIP_Bool writenodeweights)
SCIP_RETCODE SCIPfreeSol(SCIP *scip, SCIP_SOL **sol)
SCIP_Real SCIPvarGetObj(SCIP_VAR *var)
SCIP_RETCODE SCIPprintDualSol(SCIP *scip, FILE *file, SCIP_Bool printzeros)
int SCIPgetNSols(SCIP *scip)
SCIP_RETCODE SCIPcreateRootDialog(SCIP *scip, SCIP_DIALOG **root)
SCIP_RETCODE SCIPdialoghdlrGetWord(SCIP_DIALOGHDLR *dialoghdlr, SCIP_DIALOG *dialog, const char *prompt, char **inputword, SCIP_Bool *endoffile)
const char * SCIPpropGetDesc(SCIP_PROP *prop)
SCIP_RETCODE SCIPchgVarBranchPriority(SCIP *scip, SCIP_VAR *var, int branchpriority)
SCIP_RETCODE SCIPchgFeastol(SCIP *scip, SCIP_Real feastol)
const char * SCIPreaderGetDesc(SCIP_READER *reader)
SCIP_Bool SCIPparamGetBool(SCIP_PARAM *param)
SCIP_Bool SCIPisRealParamValid(SCIP *scip, SCIP_PARAM *param, SCIP_Real value)
SCIP_Bool SCIPisInfinity(SCIP *scip, SCIP_Real val)
int SCIPconshdlrGetEnfoPriority(SCIP_CONSHDLR *conshdlr)
SCIP_RETCODE SCIPdialoghdlrAddHistory(SCIP_DIALOGHDLR *dialoghdlr, SCIP_DIALOG *dialog, const char *command, SCIP_Bool escapecommand)
int SCIPparamGetIntMax(SCIP_PARAM *param)
SCIP_Bool SCIPpricerIsDelayed(SCIP_PRICER *pricer)
const char * SCIPpropGetName(SCIP_PROP *prop)
int SCIPbranchruleGetMaxdepth(SCIP_BRANCHRULE *branchrule)
int SCIPparamGetInt(SCIP_PARAM *param)
SCIP_PRESOL ** SCIPgetPresols(SCIP *scip)
int SCIPgetNHeurs(SCIP *scip)
int SCIPpropGetPresolPriority(SCIP_PROP *prop)
SCIP_RETCODE SCIPincludeDialogDefaultSet(SCIP *scip)
const char * SCIPcomprGetName(SCIP_COMPR *compr)
SCIP_DIALOG * SCIPdialoghdlrGetRoot(SCIP_DIALOGHDLR *dialoghdlr)
SCIP_RETCODE SCIPprintLPSolutionQuality(SCIP *scip, FILE *file)
SCIP_RETCODE SCIPwriteMIP(SCIP *scip, const char *filename, SCIP_Bool genericnames, SCIP_Bool origobj, SCIP_Bool lazyconss)
SCIP_SOL * SCIPgetBestSol(SCIP *scip)
SCIP_Bool SCIPisGT(SCIP *scip, SCIP_Real val1, SCIP_Real val2)
SCIP_RETCODE SCIPprintMIPStart(SCIP *scip, SCIP_SOL *sol, FILE *file)
int SCIPgetNNodesels(SCIP *scip)
SCIP_Real SCIPtransformObj(SCIP *scip, SCIP_Real obj)
char * SCIPparamGetCharAllowedValues(SCIP_PARAM *param)
int SCIPgetNReaders(SCIP *scip)
int SCIPgetNBranchrules(SCIP *scip)
SCIP_Bool SCIPdialoghdlrIsBufferEmpty(SCIP_DIALOGHDLR *dialoghdlr)
SCIP_BRANCHRULE ** SCIPgetBranchrules(SCIP *scip)
SCIP_RETCODE SCIPreleaseCons(SCIP *scip, SCIP_CONS **cons)
SCIP_RETCODE SCIPreadParams(SCIP *scip, const char *filename)
const char * SCIPconflicthdlrGetName(SCIP_CONFLICTHDLR *conflicthdlr)
SCIP_DECL_DIALOGEXEC(SCIPdialogExecMenu)
void SCIPmessageFPrintInfo(SCIP_MESSAGEHDLR *messagehdlr, FILE *file, const char *formatstr,...)
SCIP_Longint SCIPparamGetLongintMax(SCIP_PARAM *param)
const char * SCIPparamGetDesc(SCIP_PARAM *param)
SCIP_VARSTATUS SCIPvarGetStatus(SCIP_VAR *var)
default user interface dialog
SCIP_Bool SCIPsepaIsDelayed(SCIP_SEPA *sepa)
const char * SCIPbranchruleGetName(SCIP_BRANCHRULE *branchrule)
const char * SCIPpricerGetDesc(SCIP_PRICER *pricer)
SCIP_RETCODE SCIPsolveParallel(SCIP *scip)
SCIP_RETCODE SCIPchgVarBranchDirection(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR branchdirection)
char SCIPheurGetDispchar(SCIP_HEUR *heur)
int SCIPparamGetIntMin(SCIP_PARAM *param)
int SCIPgetNCompr(SCIP *scip)
SCIP_RETCODE SCIPdialoghdlrGetLine(SCIP_DIALOGHDLR *dialoghdlr, SCIP_DIALOG *dialog, const char *prompt, char **inputline, SCIP_Bool *endoffile)
SCIP_RETCODE SCIPreleaseDialog(SCIP *scip, SCIP_DIALOG **dialog)
static void displayReaders(SCIP *scip, SCIP_Bool reader, SCIP_Bool writer)
int SCIPpropGetFreq(SCIP_PROP *prop)
SCIP_RETCODE SCIPtransformProb(SCIP *scip)
SCIP_SEPA ** SCIPgetSepas(SCIP *scip)
SCIP_Real SCIPparamGetRealMin(SCIP_PARAM *param)
SCIP_RETCODE SCIPwriteParams(SCIP *scip, const char *filename, SCIP_Bool comments, SCIP_Bool onlychanged)
SCIP_NLPI ** SCIPgetNlpis(SCIP *scip)
SCIP_DISP ** SCIPgetDisps(SCIP *scip)
int SCIPgetNSepas(SCIP *scip)
static SCIP_RETCODE createEmphasisSubmenu(SCIP *scip, SCIP_DIALOG *root, SCIP_DIALOG **submenu)
SCIP_DIALOGDATA * SCIPdialogGetData(SCIP_DIALOG *dialog)
SCIP_Longint SCIPparamGetLongintMin(SCIP_PARAM *param)
SCIP_Bool SCIPparamIsAdvanced(SCIP_PARAM *param)
SCIP_RETCODE SCIPfreeSolve(SCIP *scip, SCIP_Bool restart)
SCIP_RETCODE SCIPchgIntParam(SCIP *scip, SCIP_PARAM *param, int value)
SCIP_RETCODE SCIPsetRootDialog(SCIP *scip, SCIP_DIALOG *dialog)
const char * SCIPdispGetName(SCIP_DISP *disp)
int SCIPnodeselGetStdPriority(SCIP_NODESEL *nodesel)
const char * SCIPnlpiGetDesc(SCIP_NLPI *nlpi)
const char * SCIPreaderGetExtension(SCIP_READER *reader)
int SCIPgetNParams(SCIP *scip)
SCIP_Real SCIPgetSolVal(SCIP *scip, SCIP_SOL *sol, SCIP_VAR *var)
SCIP_RETCODE SCIPchgBoolParam(SCIP *scip, SCIP_PARAM *param, SCIP_Bool value)
int SCIPgetNProps(SCIP *scip)
int SCIPsepaGetPriority(SCIP_SEPA *sepa)
SCIP_Real SCIPparamGetRealMax(SCIP_PARAM *param)
void SCIPparamSetFixed(SCIP_PARAM *param, SCIP_Bool fixed)
SCIP_PRESOLTIMING SCIPpresolGetTiming(SCIP_PRESOL *presol)
SCIP_RETCODE SCIPcreateFiniteSolCopy(SCIP *scip, SCIP_SOL **sol, SCIP_SOL *sourcesol, SCIP_Bool *success)
int SCIPbranchruleGetPriority(SCIP_BRANCHRULE *branchrule)
SCIP_PRICER ** SCIPgetPricers(SCIP *scip)
SCIP_RETCODE SCIPprintSol(SCIP *scip, SCIP_SOL *sol, FILE *file, SCIP_Bool printzeros)