117 for( v = 0; v < nbinvars; ++v )
132 for( varfixing = 0; varfixing < 2; ++varfixing )
143 while( i0 < nimpls[0] && i1 < nimpls[1] )
151 while( index0 < index1 )
154 if( i0 == nimpls[0] )
161 while( index1 < index0 )
164 if( i1 == nimpls[1] )
173 if( index0 == index1 )
178 assert(implvars[0][i0] == implvars[1][i1]);
183 if( impltypes[0][i0] == impltypes[1][i1] )
191 bdchgvars[nbdchgs] = implvars[0][i0];
192 bdchgtypes[nbdchgs] = impltypes[0][i0];
194 bdchgvals[nbdchgs] =
MIN(implbounds[0][i0], implbounds[1][i1]);
196 bdchgvals[nbdchgs] =
MAX(implbounds[0][i0], implbounds[1][i1]);
198 SCIPdebugMsg(
scip,
" -> <%s> = 0 -> <%s> %s %g, and <%s> = 1 -> <%s> %s %g: tighten <%s> %s %g\n",
225 aggrvars[naggregations] = implvars[0][i0];
226 aggraggvars[naggregations] =
vars[v];
227 aggrcoefs[naggregations] = implvarub - implvarlb;
228 aggrconsts[naggregations] = implvarlb;
230 SCIPdebugMsg(
scip,
" -> <%s> = 0 -> <%s> = %g, and <%s> = 1 -> <%s> = %g: aggregate <%s> = %g %+g<%s>\n",
233 SCIPvarGetName(aggrvars[naggregations]), aggrconsts[naggregations], aggrcoefs[naggregations],
247 aggrvars[naggregations] = implvars[0][i0];
248 aggraggvars[naggregations] =
vars[v];
249 aggrcoefs[naggregations] = implvarlb - implvarub;
250 aggrconsts[naggregations] = implvarub;
252 SCIPdebugMsg(
scip,
" -> <%s> = 0 -> <%s> = %g, and <%s> = 1 -> <%s> = %g: aggregate <%s> = %g %+g<%s>\n",
255 SCIPvarGetName(aggrvars[naggregations]), aggrconsts[naggregations], aggrcoefs[naggregations],
328 &infeasible, &redundant, &aggregated) );
335 else if( aggregated )
SCIP_RETCODE SCIPincludePresolBasic(SCIP *scip, SCIP_PRESOL **presolptr, const char *name, const char *desc, int priority, int maxrounds, SCIP_PRESOLTIMING timing, SCIP_DECL_PRESOLEXEC((*presolexec)), SCIP_PRESOLDATA *presoldata)
SCIP_RETCODE SCIPaggregateVars(SCIP *scip, SCIP_VAR *varx, SCIP_VAR *vary, SCIP_Real scalarx, SCIP_Real scalary, SCIP_Real rhs, SCIP_Bool *infeasible, SCIP_Bool *redundant, SCIP_Bool *aggregated)