SCIP Doxygen Documentation
Loading...
Searching...
No Matches
Exact LP Relaxation

Detailed Description

functions to manage exact LP relaxation

Functions

SCIP_RETCODE SCIPcreateEmptyRowConsExact (SCIP *scip, SCIP_ROWEXACT **rowexact, SCIP_ROW *fprow, SCIP_ROW *fprowrhs, SCIP_RATIONAL *lhs, SCIP_RATIONAL *rhs, SCIP_Bool isfprelaxable)
SCIP_RETCODE SCIPcreateRowExact (SCIP *scip, SCIP_ROWEXACT **row, SCIP_ROW *fprow, int len, SCIP_COLEXACT **cols, SCIP_RATIONAL **vals, SCIP_RATIONAL *lhs, SCIP_RATIONAL *rhs, SCIP_Bool isfprelaxable)
SCIP_RETCODE SCIPcreateRowExactFromRow (SCIP *scip, SCIP_ROW *fprow)
SCIP_RETCODE SCIPgenerateFpRowsFromRowExact (SCIP *scip, SCIP_ROWEXACT *row, SCIP_ROW *rowlhs, SCIP_ROW *rowrhs, SCIP_Bool *onerowrelax, SCIP_Bool *hasfprelax)
SCIP_RETCODE SCIPcaptureRowExact (SCIP *scip, SCIP_ROWEXACT *row)
SCIP_RETCODE SCIPreleaseRowExact (SCIP *scip, SCIP_ROWEXACT **row)
SCIP_RETCODE SCIPchgRowExactLhs (SCIP *scip, SCIP_ROWEXACT *row, SCIP_RATIONAL *lhs)
SCIP_RETCODE SCIPchgRowExactRhs (SCIP *scip, SCIP_ROWEXACT *row, SCIP_RATIONAL *rhs)
SCIP_RETCODE SCIPaddVarsToRowExact (SCIP *scip, SCIP_ROWEXACT *row, int nvars, SCIP_VAR **vars, SCIP_RATIONAL **vals)
SCIP_Bool SCIPgetRowSolActivityWithErrorboundExact (SCIP *scip, SCIP_ROWEXACT *row, SCIP_SOL *sol, SCIP_Real *activity, SCIP_Real *errorbound)
SCIP_RETCODE SCIPgetRowSolActivityExact (SCIP *scip, SCIP_ROWEXACT *row, SCIP_SOL *sol, SCIP_Bool useexact, SCIP_RATIONAL *result)
SCIP_RETCODE SCIPgetRowSolFeasibilityExact (SCIP *scip, SCIP_ROWEXACT *row, SCIP_SOL *sol, SCIP_RATIONAL *result)
SCIP_RETCODE SCIPprintRowExact (SCIP *scip, SCIP_ROWEXACT *row, FILE *file)
SCIP_Bool SCIPlpExactIsSolved (SCIP *scip)
SCIP_LPSOLSTAT SCIPgetLPExactSolstat (SCIP *scip)
void SCIPgetLPExactObjval (SCIP *scip, SCIP_RATIONAL *result)
SCIP_RETCODE SCIPchgVarLbExactDive (SCIP *scip, SCIP_VAR *var, SCIP_RATIONAL *newbound)
SCIP_RETCODE SCIPchgVarUbExactDive (SCIP *scip, SCIP_VAR *var, SCIP_RATIONAL *newbound)
SCIP_RETCODE SCIPsolveExactDiveLP (SCIP *scip, int itlim, SCIP_Bool *lperror, SCIP_Bool *cutoff)
SCIP_RETCODE SCIPstartExactDive (SCIP *scip)
SCIP_Bool SCIPisExactDivePossible (SCIP *scip)
SCIP_Bool SCIPinExactDive (SCIP *scip)
SCIP_RETCODE SCIPendExactDive (SCIP *scip)
SCIP_RETCODE SCIPwriteLPexact (SCIP *scip, const char *filename)

Function Documentation

◆ SCIPcreateEmptyRowConsExact()

SCIP_RETCODE SCIPcreateEmptyRowConsExact ( SCIP * scip,
SCIP_ROWEXACT ** rowexact,
SCIP_ROW * fprow,
SCIP_ROW * fprowrhs,
SCIP_RATIONAL * lhs,
SCIP_RATIONAL * rhs,
SCIP_Bool isfprelaxable )

creates and captures an LP row without any coefficients from a constraint handler

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
this method can be called in one of the following stages of the SCIP solving process:
Parameters
scipSCIP data structure
rowexactpointer to row
fprowcorresponding fp-row
fprowrhsrhs-part of fp-relaxation of this row if necessary, NULL otherwise
lhsleft hand side of row
rhsright hand side of row
isfprelaxableis it possible to create an fp relaxation of this row?

Definition at line 228 of file scip_lpexact.c.

References assert(), FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_ROWORIGINTYPE_CONS, SCIPcheckStage, SCIProwExactCreate(), SCIProwGetOriginCons(), SCIProwGetOrigintype(), and TRUE.

Referenced by createRows().

◆ SCIPcreateRowExact()

SCIP_RETCODE SCIPcreateRowExact ( SCIP * scip,
SCIP_ROWEXACT ** row,
SCIP_ROW * fprow,
int len,
SCIP_COLEXACT ** cols,
SCIP_RATIONAL ** vals,
SCIP_RATIONAL * lhs,
SCIP_RATIONAL * rhs,
SCIP_Bool isfprelaxable )

creates and captures an exact LP row

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
this method can be called in one of the following stages of the SCIP solving process:
Parameters
scipSCIP data structure
rowpointer to row
fprowcorresponding fp approximation/relaxation
lennumber of nonzeros in the row
colsarray with columns of row entries
valsarray with coefficients of row entries
lhsleft hand side of row
rhsright hand side of row
isfprelaxableis it possible to make fp-relaxation of this row

Definition at line 256 of file scip_lpexact.c.

References FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPcheckStage, SCIProwExactCreate(), and TRUE.

Referenced by getObjectiveRow().

◆ SCIPcreateRowExactFromRow()

SCIP_RETCODE SCIPcreateRowExactFromRow ( SCIP * scip,
SCIP_ROW * fprow )

creates and captures an exact LP row from an existing fp row

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
this method can be called in one of the following stages of the SCIP solving process:
Parameters
scipSCIP data structure
fprowcorresponding fp approximation/relaxation

Definition at line 285 of file scip_lpexact.c.

References assert(), FALSE, NULL, SCIP_Row::rowexact, SCIP_CALL, SCIP_OKAY, SCIPcheckStage, SCIProwExactCreateFromRow(), and TRUE.

Referenced by addCut().

◆ SCIPgenerateFpRowsFromRowExact()

SCIP_RETCODE SCIPgenerateFpRowsFromRowExact ( SCIP * scip,
SCIP_ROWEXACT * row,
SCIP_ROW * rowlhs,
SCIP_ROW * rowrhs,
SCIP_Bool * onerowrelax,
SCIP_Bool * hasfprelax )

generates two fprows that are a relaxation of the exact row wrt the lhs/rhs, respectively

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
this method can be called in one of the following stages of the SCIP solving process:
Parameters
scipSCIP data structure
rowSCIP exact row
rowlhsfp row-relaxation wrt lhs
rowrhsfp row-relaxation wrt rhs
onerowrelaxis one row enough to represent the exact row
hasfprelaxis it possible to generate relaxations at all for this row?

Definition at line 309 of file scip_lpexact.c.

References assert(), FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPcheckStage, SCIProwExactGenerateFpRows(), and TRUE.

Referenced by createRows().

◆ SCIPcaptureRowExact()

SCIP_RETCODE SCIPcaptureRowExact ( SCIP * scip,
SCIP_ROWEXACT * row )

increases usage counter of exact LP row

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
this method can be called in one of the following stages of the SCIP solving process:
Parameters
scipSCIP data structure
rowrow to capture

Definition at line 88 of file scip_lpexact.c.

References FALSE, SCIP_CALL, SCIP_OKAY, SCIPcheckStage, SCIProwExactCapture(), and TRUE.

Referenced by createRows().

◆ SCIPreleaseRowExact()

SCIP_RETCODE SCIPreleaseRowExact ( SCIP * scip,
SCIP_ROWEXACT ** row )

decreases usage counter of LP row, and frees memory if necessary

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
this method can be called in one of the following stages of the SCIP solving process:
Parameters
scipSCIP data structure
rowpointer to LP row

Definition at line 110 of file scip_lpexact.c.

References FALSE, SCIP_CALL, SCIP_OKAY, SCIPcheckStage, SCIProwExactRelease(), and TRUE.

Referenced by SCIP_DECL_CONSEXITSOL(), and SCIPgetDualProof().

◆ SCIPchgRowExactLhs()

SCIP_RETCODE SCIPchgRowExactLhs ( SCIP * scip,
SCIP_ROWEXACT * row,
SCIP_RATIONAL * lhs )

changes left hand side of exact LP row

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
this method can be called in one of the following stages of the SCIP solving process:
Parameters
scipSCIP data structure
rowLP row
lhsnew left hand side

Definition at line 131 of file scip_lpexact.c.

References assert(), FALSE, SCIP_RowExact::lppos, SCIP_CALL, SCIP_OKAY, SCIPcheckStage, SCIPlpExactDiving(), SCIProwExactChgLhs(), and TRUE.

Referenced by chgLhs().

◆ SCIPchgRowExactRhs()

SCIP_RETCODE SCIPchgRowExactRhs ( SCIP * scip,
SCIP_ROWEXACT * row,
SCIP_RATIONAL * rhs )

changes right hand side of exact LP row

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
this method can be called in one of the following stages of the SCIP solving process:
Parameters
scipSCIP data structure
rowLP row
rhsnew right hand side

Definition at line 155 of file scip_lpexact.c.

References assert(), FALSE, SCIP_RowExact::lppos, SCIP_CALL, SCIP_OKAY, SCIPcheckStage, SCIPlpExactDiving(), SCIProwExactChgRhs(), and TRUE.

Referenced by chgRhs().

◆ SCIPaddVarsToRowExact()

SCIP_RETCODE SCIPaddVarsToRowExact ( SCIP * scip,
SCIP_ROWEXACT * row,
int nvars,
SCIP_VAR ** vars,
SCIP_RATIONAL ** vals )

resolves variables to columns and adds them with the coefficients to the row; this method caches the row extensions and flushes them afterwards to gain better performance

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Attention
If a coefficients absolute value is below the SCIP epsilon tolerance, the variable with its value is not added.
Precondition
this method can be called in one of the following stages of the SCIP solving process:
Parameters
scipSCIP data structure
rowLP row
nvarsnumber of variables to add to the row
varsproblem variables to add
valsvalues of coefficients

Definition at line 182 of file scip_lpexact.c.

References assert(), FALSE, SCIP_RowExact::fprow, NULL, nvars, SCIP_Row::rowexact, SCIP_CALL, SCIP_OKAY, SCIPcheckStage, SCIPdebug, SCIPgetMessagehdlr(), SCIProwExactDelaySort(), SCIProwExactEnsureSize(), SCIProwExactForceSort(), SCIProwExactPrint(), SCIProwGetNNonz(), SCIProwPrint(), SCIPvarAddToRowExact(), TRUE, and vars.

Referenced by addCoef(), and createRows().

◆ SCIPgetRowSolActivityWithErrorboundExact()

SCIP_Bool SCIPgetRowSolActivityWithErrorboundExact ( SCIP * scip,
SCIP_ROWEXACT * row,
SCIP_SOL * sol,
SCIP_Real * activity,
SCIP_Real * errorbound )

returns the activity of a row for the given primal solution with running error analysis

Returns
the activitiy of a row for the given primal solution and the error bound of the activity; returns true on success
Precondition
this method can be called in one of the following stages of the SCIP solving process:
Parameters
scipSCIP data structure
rowLP row
solprimal CIP solution
activitythe approximate activity
errorboundthe error bound

Definition at line 396 of file scip_lpexact.c.

References FALSE, SCIP_Bool, SCIP_CALL_ABORT, SCIP_Real, SCIPcheckStage, SCIProwExactGetSolActivityWithErrorbound(), sol, and TRUE.

Referenced by consdataComputeSolActivityWithErrorbound().

◆ SCIPgetRowSolActivityExact()

SCIP_RETCODE SCIPgetRowSolActivityExact ( SCIP * scip,
SCIP_ROWEXACT * row,
SCIP_SOL * sol,
SCIP_Bool useexact,
SCIP_RATIONAL * result )

returns the activity of a row for the given primal solution

Returns
the activitiy of a row for the given primal solution
Precondition
this method can be called in one of the following stages of the SCIP solving process:
Parameters
scipSCIP data structure
rowLP row
solprimal CIP solution
useexacttrue if sol should be considered instead of sol
resultresult pointer

Definition at line 367 of file scip_lpexact.c.

References FALSE, NULL, result, SCIP_Bool, SCIP_CALL, SCIP_CALL_ABORT, SCIP_OKAY, SCIPcheckStage, SCIPrationalSetRational(), SCIProwExactGetLPActivity(), SCIProwExactGetPseudoActivity(), SCIProwExactGetSolActivity(), SCIPtreeHasCurrentNodeLP(), sol, and TRUE.

Referenced by checkCons(), and SCIPgetActivityExactLinear().

◆ SCIPgetRowSolFeasibilityExact()

SCIP_RETCODE SCIPgetRowSolFeasibilityExact ( SCIP * scip,
SCIP_ROWEXACT * row,
SCIP_SOL * sol,
SCIP_RATIONAL * result )

returns the feasibility of a row for the given primal solution

Returns
the feasibility of a row for the given primal solution
Precondition
this method can be called in one of the following stages of the SCIP solving process:
Parameters
scipSCIP data structure
rowLP row
solprimal CIP solution
resultresult pointer

Definition at line 335 of file scip_lpexact.c.

References FALSE, NULL, result, SCIP_CALL, SCIP_CALL_ABORT, SCIP_OKAY, SCIPcheckStage, SCIProwExactGetLPFeasibility(), SCIProwExactGetPseudoFeasibility(), SCIProwExactGetSolFeasibility(), SCIPtreeHasCurrentNodeLP(), sol, and TRUE.

Referenced by SCIPgetFeasibilityExactLinear().

◆ SCIPprintRowExact()

SCIP_RETCODE SCIPprintRowExact ( SCIP * scip,
SCIP_ROWEXACT * row,
FILE * file )

output exact row to file stream via the message handler system

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
this method can be called in one of the following stages of the SCIP solving process:
Parameters
scipSCIP data structure
rowLP row
fileoutput file (or NULL for standard output)

Definition at line 419 of file scip_lpexact.c.

References assert(), FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIPcheckStage, SCIProwExactPrint(), and TRUE.

Referenced by addRelaxation(), and rowExactCreateFromRowLimitEncodingLength().

◆ SCIPlpExactIsSolved()

SCIP_Bool SCIPlpExactIsSolved ( SCIP * scip)

returns whether the exact lp was solved

Parameters
scipSCIP data structure

Definition at line 456 of file scip_lpexact.c.

References assert(), NULL, and SCIP_Bool.

Referenced by checkCons(), enforceConstraint(), and SCIPlinkLPSolExact().

◆ SCIPgetLPExactSolstat()

SCIP_LPSOLSTAT SCIPgetLPExactSolstat ( SCIP * scip)

gets solution status of current exact LP

Returns
the solution status of current exact LP.
Precondition
This method can be called if scip is in one of the following stages:

See SCIP_STAGE for a complete list of all possible solving stages.

Parameters
scipSCIP data structure

Definition at line 475 of file scip_lpexact.c.

References FALSE, SCIP_CALL_ABORT, SCIP_LPSOLSTAT_NOTSOLVED, SCIPcheckStage, SCIPlpExactGetSolstat(), SCIPtreeIsFocusNodeLPConstructed(), and TRUE.

Referenced by SCIP_DECL_CONSCHECK().

◆ SCIPgetLPExactObjval()

void SCIPgetLPExactObjval ( SCIP * scip,
SCIP_RATIONAL * result )

gets objective value of current exact LP (which is the sum of column and loose objective value)

Precondition
This method can be called if scip is in one of the following stages:
Note
This method returns the objective value of the current LP solution, which might be primal or dual infeasible if a limit was hit during solving. It must not be used as a dual bound if the exact LP solution status returned by SCIPgetLPExactSolstat() is SCIP_LPSOLSTAT_ITERLIMIT or SCIP_LPSOLSTAT_TIMELIMIT.

See SCIP_STAGE for a complete list of all possible solving stages.

gets objective value of current exact LP (which is the sum of column and loose objective value)

Precondition
This method can be called if scip is in one of the following stages:
Note
This method returns the objective value of the current exact LP solution, which might be primal or dual infeasible if a limit was hit during solving. It must not be used as a dual bound if the exact LP solution status returned by SCIPgetLPExactSolstat() is SCIP_LPSOLSTAT_ITERLIMIT or SCIP_LPSOLSTAT_TIMELIMIT.

See SCIP_STAGE for a complete list of all possible solving stages.

Parameters
scipSCIP data structure
resultresult pointer

Definition at line 445 of file scip_lpexact.c.

References FALSE, result, SCIP_CALL_ABORT, SCIPcheckStage, SCIPlpExactGetObjval(), and TRUE.

Referenced by SCIPsolveExactDiveLP().

◆ SCIPchgVarLbExactDive()

SCIP_RETCODE SCIPchgVarLbExactDive ( SCIP * scip,
SCIP_VAR * var,
SCIP_RATIONAL * newbound )

changes variable's lower bound in current exact dive

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:

See SCIP_STAGE for a complete list of all possible solving stages.

Parameters
scipSCIP data structure
varvariable to change the bound for
newboundnew value for bound

Definition at line 710 of file scip_lpexact.c.

References assert(), FALSE, NULL, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPcheckStage, SCIPerrorMessage, SCIPlpExactDiving(), SCIPvarChgLbExactDive(), TRUE, and var.

Referenced by SCIP_DECL_CONSCHECK().

◆ SCIPchgVarUbExactDive()

SCIP_RETCODE SCIPchgVarUbExactDive ( SCIP * scip,
SCIP_VAR * var,
SCIP_RATIONAL * newbound )

changes variable's upper bound in current exact dive

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:

See SCIP_STAGE for a complete list of all possible solving stages.

Parameters
scipSCIP data structure
varvariable to change the bound for
newboundnew value for bound

Definition at line 742 of file scip_lpexact.c.

References assert(), FALSE, NULL, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPcheckStage, SCIPerrorMessage, SCIPlpExactDiving(), SCIPvarChgUbExactDive(), TRUE, and var.

Referenced by SCIP_DECL_CONSCHECK().

◆ SCIPsolveExactDiveLP()

SCIP_RETCODE SCIPsolveExactDiveLP ( SCIP * scip,
int itlim,
SCIP_Bool * lperror,
SCIP_Bool * cutoff )

solves the exact LP of the current dive; no separation or pricing is applied

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:

See SCIP_STAGE for a complete list of all possible solving stages.

Parameters
scipSCIP data structure
itlimmaximal number of LP iterations to perform, or -1 for no limit
lperrorpointer to store whether an unresolved LP error occurred
cutoffpointer to store whether the diving LP was infeasible or the objective limit was reached (or NULL, if not needed)

Definition at line 653 of file scip_lpexact.c.

References assert(), cutoff, FALSE, lperror, NULL, objval, SCIP_Bool, SCIP_CALL, SCIP_INVALIDCALL, SCIP_Longint, SCIP_LPSOLSTAT_INFEASIBLE, SCIP_LPSOLSTAT_OBJLIMIT, SCIP_LPSOLSTAT_OPTIMAL, SCIP_OKAY, SCIPcheckStage, SCIPerrorMessage, SCIPgetCutoffboundExact(), SCIPgetLPExactObjval(), SCIPlpExactDiving(), SCIPlpExactGetSolstat(), SCIPlpExactSolveAndEval(), SCIPrationalCreateBuffer(), SCIPrationalFreeBuffer(), SCIPrationalIsGE(), and TRUE.

Referenced by SCIP_DECL_CONSCHECK().

◆ SCIPstartExactDive()

SCIP_RETCODE SCIPstartExactDive ( SCIP * scip)

initiates exact LP diving, making methods SCIPchgVarObjExactDive(), SCIPchgVarLbExactDive(), and SCIPchgVarUbExactDive() available

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:

See SCIP_STAGE for a complete list of all possible solving stages.

Note
In parallel to exact LP diving, this method also starts the regular LP diving mode by calling SCIPstartDive().
Parameters
scipSCIP data structure

Definition at line 502 of file scip_lpexact.c.

References assert(), FALSE, NULL, SCIP_CALL, SCIP_INVALIDCALL, SCIP_NODETYPE_FOCUSNODE, SCIP_OKAY, SCIPcheckStage, SCIPerrorMessage, SCIPgetCurrentNode(), SCIPlpDiving(), SCIPlpExactDiving(), SCIPlpExactStartDive(), SCIPnodeGetType(), SCIPstartDive(), SCIPtreeProbing(), and TRUE.

Referenced by SCIP_DECL_CONSCHECK().

◆ SCIPisExactDivePossible()

SCIP_Bool SCIPisExactDivePossible ( SCIP * scip)

checks if exact diving mode is possible at this point in time

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:

See SCIP_STAGE for a complete list of all possible solving stages.

Note
In parallel to exact LP diving, this method also starts the regular LP diving mode by calling SCIPstartDive().
Parameters
scipSCIP data structure

Definition at line 551 of file scip_lpexact.c.

References assert(), FALSE, NULL, SCIP_Bool, SCIP_CALL_ABORT, SCIP_NODETYPE_FOCUSNODE, SCIPcheckStage, SCIPgetCurrentNode(), SCIPlpDiving(), SCIPlpExactDiving(), SCIPlpIsSolved(), SCIPnodeGetType(), SCIPtreeProbing(), and TRUE.

Referenced by SCIP_DECL_CONSCHECK().

◆ SCIPinExactDive()

SCIP_Bool SCIPinExactDive ( SCIP * scip)

returns whether we are in exact diving mode

Returns
whether we are in exact diving mode.
Precondition
This method can be called if scip is in one of the following stages:

See SCIP_STAGE for a complete list of all possible solving stages.

Parameters
scipSCIP data structure

Definition at line 594 of file scip_lpexact.c.

References assert(), FALSE, NULL, SCIP_Bool, SCIP_CALL_ABORT, SCIPcheckStage, SCIPlpExactDiving(), and TRUE.

Referenced by SCIP_DECL_CONSCHECK().

◆ SCIPendExactDive()

SCIP_RETCODE SCIPendExactDive ( SCIP * scip)

quits exact LP diving and resets bounds and objective values of columns to the current node's values

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:

See SCIP_STAGE for a complete list of all possible solving stages.

Parameters
scipSCIP data structure

Definition at line 615 of file scip_lpexact.c.

References assert(), FALSE, NULL, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPcheckStage, SCIPendDive(), SCIPerrorMessage, SCIPlpExactDiving(), SCIPlpExactEndDive(), SCIPlpSetCutoffbound(), and TRUE.

Referenced by SCIP_DECL_CONSCHECK().

◆ SCIPwriteLPexact()

SCIP_RETCODE SCIPwriteLPexact ( SCIP * scip,
const char * filename )

writes current exact LP to a file

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:

See SCIP_STAGE for a complete list of all possible solving stages.

Parameters
scipSCIP data structure
filenamefile name

Definition at line 774 of file scip_lpexact.c.

References cutoff, FALSE, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPcheckStage, SCIPconstructCurrentLP(), SCIPlpExactFlush(), SCIPlpExactSyncLPs(), SCIPlpExactWrite(), SCIPtreeIsFocusNodeLPConstructed(), and TRUE.