Scippy

    SCIP

    Solving Constraint Integer Programs

    Detailed Description

    methods 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 FALSE, NULL, 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_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 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 FALSE, NULL, 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 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 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 FALSE, SCIP_RowExact::fprow, NULL, SCIP_Row::rowexact, SCIP_CALL, SCIP_OKAY, SCIPcheckStage, SCIPdebug, SCIPgetMessagehdlr(), SCIProwExactDelaySort(), SCIProwExactEnsureSize(), SCIProwExactForceSort(), SCIProwExactPrint(), SCIProwGetNNonz(), SCIProwPrint(), SCIPvarAddToRowExact(), and TRUE.

    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_CALL_ABORT, SCIPcheckStage, SCIProwExactGetSolActivityWithErrorbound(), 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, SCIP_CALL, SCIP_CALL_ABORT, SCIP_OKAY, SCIPcheckStage, SCIPrationalSetRational(), SCIProwExactGetLPActivity(), SCIProwExactGetPseudoActivity(), SCIProwExactGetSolActivity(), SCIPtreeHasCurrentNodeLP(), 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, SCIP_CALL, SCIP_CALL_ABORT, SCIP_OKAY, SCIPcheckStage, SCIProwExactGetLPFeasibility(), SCIProwExactGetPseudoFeasibility(), SCIProwExactGetSolFeasibility(), SCIPtreeHasCurrentNodeLP(), 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 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 NULL.

    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, 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 FALSE, NULL, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPcheckStage, SCIPerrorMessage, SCIPlpExactDiving(), SCIPvarChgLbExactDive(), and TRUE.

    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 FALSE, NULL, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPcheckStage, SCIPerrorMessage, SCIPlpExactDiving(), SCIPvarChgUbExactDive(), and TRUE.

    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 FALSE, NULL, 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 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 FALSE, NULL, 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 FALSE, NULL, 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 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 FALSE, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPcheckStage, SCIPconstructCurrentLP(), SCIPlpExactFlush(), SCIPlpExactSyncLPs(), SCIPlpExactWrite(), SCIPtreeIsFocusNodeLPConstructed(), and TRUE.