Scippy

    SCIP

    Solving Constraint Integer Programs

    Detailed Description

    methods for collecting primal CIP solutions and primal informations

    Author
    Tobias Achterberg

    Definition in file primal.c.

    #include <assert.h>
    #include "scip/def.h"
    #include "scip/set.h"
    #include "scip/stat.h"
    #include "scip/visual.h"
    #include "scip/event.h"
    #include "scip/lp.h"
    #include "scip/lpexact.h"
    #include "scip/var.h"
    #include "scip/prob.h"
    #include "scip/sol.h"
    #include "scip/primal.h"
    #include "scip/tree.h"
    #include "scip/reopt.h"
    #include "scip/disp.h"
    #include "scip/struct_event.h"
    #include "scip/struct_lpexact.h"
    #include "scip/pub_message.h"
    #include "scip/pub_var.h"
    #include "scip/scip_message.h"
    #include "scip/scip_solvingstats.h"

    Go to the source code of this file.

    Functions

    static SCIP_RETCODE ensureSolsSize (SCIP_PRIMAL *primal, SCIP_SET *set, int num)
     
    static SCIP_RETCODE ensurePartialsolsSize (SCIP_PRIMAL *primal, SCIP_SET *set, int num)
     
    static SCIP_RETCODE ensureExistingsolsSize (SCIP_PRIMAL *primal, SCIP_SET *set, int num)
     
    SCIP_RETCODE SCIPprimalCreate (SCIP_PRIMAL **primal)
     
    SCIP_RETCODE SCIPprimalFree (SCIP_PRIMAL **primal, BMS_BLKMEM *blkmem)
     
    SCIP_RETCODE SCIPprimalClear (SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem)
     
    static void sortPrimalSols (SCIP_PRIMAL *primal, SCIP_SET *set, SCIP_PROB *origprob, SCIP_PROB *transprob)
     
    static SCIP_RETCODE primalSetCutoffbound (SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_Real cutoffbound)
     
    static SCIP_RETCODE primalSetCutoffboundExact (SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_RATIONAL *cutoffbound)
     
    SCIP_RETCODE SCIPprimalSetCutoffbound (SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_Real cutoffbound, SCIP_Bool useforobjlimit)
     
    static SCIP_RETCODE primalSetUpperbound (SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_PROB *prob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_Real upperbound)
     
    static SCIP_RETCODE primalSetUpperboundExact (SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_PROB *prob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_RATIONAL *upperbound)
     
    SCIP_RETCODE SCIPprimalSetUpperbound (SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_PROB *prob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_Real upperbound)
     
    SCIP_RETCODE SCIPprimalUpdateObjlimit (SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp)
     
    SCIP_RETCODE SCIPprimalUpdateObjoffset (SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp)
     
    SCIP_RETCODE SCIPprimalUpdateObjoffsetExact (SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp)
     
    void SCIPprimalAddOrigObjoffset (SCIP_PRIMAL *primal, SCIP_SET *set, SCIP_Real addval)
     
    void SCIPprimalAddOrigObjoffsetExact (SCIP_PRIMAL *primal, SCIP_SET *set, SCIP_RATIONAL *addval)
     
    SCIP_Bool SCIPprimalUpperboundIsSol (SCIP_PRIMAL *primal, SCIP_SET *set, SCIP_PROB *transprob, SCIP_PROB *origprob)
     
    SCIP_SOLSCIPprimalGetRay (SCIP_PRIMAL *primal)
     
    SCIP_RETCODE SCIPprimalUpdateRay (SCIP_PRIMAL *primal, SCIP_SET *set, SCIP_STAT *stat, SCIP_SOL *primalray, BMS_BLKMEM *blkmem)
     
    static SCIP_RETCODE primalAddSolExact (SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_PROB *origprob, SCIP_PROB *transprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LPEXACT *lpexact, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_SOL **solptr, int insertpos, SCIP_Bool replace)
     
    static SCIP_RETCODE primalAddSol (SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_PROB *origprob, SCIP_PROB *transprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_SOL **solptr, int insertpos, SCIP_Bool replace)
     
    static SCIP_RETCODE primalAddOrigSol (SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_PROB *prob, SCIP_SOL *sol, int insertpos)
     
    static SCIP_RETCODE primalAddOrigPartialSol (SCIP_PRIMAL *primal, SCIP_SET *set, SCIP_PROB *prob, SCIP_SOL *sol)
     
    static int primalSearchSolPos (SCIP_PRIMAL *primal, SCIP_SET *set, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_SOL *sol)
     
    static int primalSearchOrigSolPos (SCIP_PRIMAL *primal, SCIP_SOL *sol)
     
    static SCIP_Bool primalExistsSol (SCIP_PRIMAL *primal, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *origprob, SCIP_PROB *transprob, SCIP_SOL *sol, int *insertpos, SCIP_Bool *replace)
     
    static SCIP_Bool primalExistsOrigSol (SCIP_PRIMAL *primal, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_SOL *sol, int insertpos)
     
    static SCIP_Bool solOfInterest (SCIP_PRIMAL *primal, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *origprob, SCIP_PROB *transprob, SCIP_SOL *sol, int *insertpos, SCIP_Bool *replace)
     
    static SCIP_Bool origsolOfInterest (SCIP_PRIMAL *primal, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *origprob, SCIP_SOL *sol, int *insertpos)
     
    SCIP_RETCODE SCIPprimalAddSol (SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_PROB *origprob, SCIP_PROB *transprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_SOL *sol, SCIP_Bool *stored)
     
    SCIP_RETCODE SCIPprimalAddSolFree (SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_PROB *origprob, SCIP_PROB *transprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_SOL **sol, SCIP_Bool *stored)
     
    SCIP_RETCODE SCIPprimalAddOrigSol (SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_SOL *sol, SCIP_Bool *stored)
     
    SCIP_RETCODE SCIPprimalAddOrigSolFree (SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_SOL **sol, SCIP_Bool *stored)
     
    static SCIP_RETCODE primalLinkCurrentSol (SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_TREE *tree, SCIP_LP *lp, SCIP_HEUR *heur)
     
    SCIP_RETCODE SCIPprimalAddCurrentSol (SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_PROB *origprob, SCIP_PROB *transprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_HEUR *heur, SCIP_Bool *stored)
     
    SCIP_RETCODE SCIPprimalTrySol (SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_PROB *origprob, SCIP_PROB *transprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_SOL *sol, SCIP_Bool printreason, SCIP_Bool completely, SCIP_Bool checkbounds, SCIP_Bool checkintegrality, SCIP_Bool checklprows, SCIP_Bool *stored)
     
    SCIP_RETCODE SCIPprimalTrySolFree (SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_PROB *origprob, SCIP_PROB *transprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_SOL **sol, SCIP_Bool printreason, SCIP_Bool completely, SCIP_Bool checkbounds, SCIP_Bool checkintegrality, SCIP_Bool checklprows, SCIP_Bool *stored)
     
    SCIP_RETCODE SCIPprimalTryCurrentSol (SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_PROB *origprob, SCIP_PROB *transprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_HEUR *heur, SCIP_Bool printreason, SCIP_Bool completely, SCIP_Bool checkintegrality, SCIP_Bool checklprows, SCIP_Bool *stored)
     
    SCIP_RETCODE SCIPprimalSolCreated (SCIP_PRIMAL *primal, SCIP_SET *set, SCIP_SOL *sol)
     
    void SCIPprimalSolFreed (SCIP_PRIMAL *primal, SCIP_SOL *sol)
     
    void SCIPprimalUpdateVarObj (SCIP_PRIMAL *primal, SCIP_VAR *var, SCIP_Real oldobj, SCIP_Real newobj)
     
    SCIP_RETCODE SCIPprimalRetransformSolutions (SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_PROB *origprob, SCIP_PROB *transprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp)
     
    SCIP_RETCODE SCIPprimalTransformSol (SCIP_PRIMAL *primal, SCIP_SOL *sol, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_PROB *origprob, SCIP_PROB *transprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_Real *solvals, SCIP_Bool *solvalset, int solvalssize, SCIP_Bool *added)
     
    SCIP_Bool SCIPprimalUpdateViolations (SCIP_PRIMAL *primal)
     
    void SCIPprimalSetUpdateViolations (SCIP_PRIMAL *primal, SCIP_Bool updateviolations)
     
    SCIP_RETCODE SCIPprimalTrySolFreeExact (SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_PROB *origprob, SCIP_PROB *transprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LPEXACT *lpexact, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_SOL **sol, SCIP_Bool printreason, SCIP_Bool completely, SCIP_Bool checkbounds, SCIP_Bool checkintegrality, SCIP_Bool checklprows, SCIP_Bool *stored)
     
    SCIP_RETCODE SCIPprimalAddSolFreeExact (SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_PROB *origprob, SCIP_PROB *transprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LPEXACT *lpexact, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_SOL **sol, SCIP_Bool *stored)
     

    Function Documentation

    ◆ ensureSolsSize()

    static SCIP_RETCODE ensureSolsSize ( SCIP_PRIMAL primal,
    SCIP_SET set,
    int  num 
    )
    static

    ensures, that sols array can store at least num entries

    Parameters
    primalprimal data
    setglobal SCIP settings
    numminimum number of entries to store

    Definition at line 63 of file primal.c.

    References BMSreallocMemoryArray, SCIP_Primal::nsols, SCIP_ALLOC, SCIP_OKAY, SCIPsetCalcMemGrowSize(), SCIP_Primal::sols, and SCIP_Primal::solssize.

    Referenced by primalAddOrigSol(), and primalAddSol().

    ◆ ensurePartialsolsSize()

    static SCIP_RETCODE ensurePartialsolsSize ( SCIP_PRIMAL primal,
    SCIP_SET set,
    int  num 
    )
    static

    ensures, that partialsols array can store at least num entries

    Parameters
    primalprimal data
    setglobal SCIP settings
    numminimum number of entries to store

    Definition at line 86 of file primal.c.

    References BMSreallocMemoryArray, MIN, SCIP_Primal::npartialsols, SCIP_Primal::partialsols, SCIP_Primal::partialsolssize, SCIP_ALLOC, SCIP_OKAY, and SCIPsetCalcMemGrowSize().

    Referenced by primalAddOrigPartialSol().

    ◆ ensureExistingsolsSize()

    static SCIP_RETCODE ensureExistingsolsSize ( SCIP_PRIMAL primal,
    SCIP_SET set,
    int  num 
    )
    static

    ensures, that existingsols array can store at least num entries

    Parameters
    primalprimal data
    setglobal SCIP settings
    numminimum number of entries to store

    Definition at line 111 of file primal.c.

    References BMSreallocMemoryArray, SCIP_Primal::existingsols, SCIP_Primal::existingsolssize, SCIP_Primal::nexistingsols, SCIP_ALLOC, SCIP_OKAY, and SCIPsetCalcMemGrowSize().

    Referenced by SCIPprimalSolCreated().

    ◆ SCIPprimalCreate()

    SCIP_RETCODE SCIPprimalCreate ( SCIP_PRIMAL **  primal)

    creates primal data

    Parameters
    primalpointer to primal data

    Definition at line 133 of file primal.c.

    References BMSallocMemory, NULL, SCIP_ALLOC, SCIP_INVALID, SCIP_OKAY, and TRUE.

    Referenced by copyProb(), SCIPcreateProb(), and SCIPtransformProb().

    ◆ SCIPprimalFree()

    SCIP_RETCODE SCIPprimalFree ( SCIP_PRIMAL **  primal,
    BMS_BLKMEM blkmem 
    )

    frees primal data

    Parameters
    primalpointer to primal data
    blkmemblock memory

    Definition at line 165 of file primal.c.

    References BMSfreeMemory, BMSfreeMemoryArrayNull, NULL, SCIP_CALL, SCIP_OKAY, SCIPprimalClear(), and SCIPrationalFreeBlock().

    Referenced by freeTransform(), freeTransforming(), and SCIPfreeProb().

    ◆ SCIPprimalClear()

    ◆ sortPrimalSols()

    static void sortPrimalSols ( SCIP_PRIMAL primal,
    SCIP_SET set,
    SCIP_PROB origprob,
    SCIP_PROB transprob 
    )
    static

    sorts primal solutions by objective value

    Parameters
    primalprimal data
    setglobal SCIP settings
    origproboriginal problem
    transprobtransformed problem

    Definition at line 241 of file primal.c.

    References SCIP_Primal::nsols, SCIP_Real, SCIPsolGetObj(), and SCIP_Primal::sols.

    Referenced by SCIPprimalRetransformSolutions(), SCIPprimalUpdateObjoffset(), and SCIPprimalUpdateObjoffsetExact().

    ◆ primalSetCutoffbound()

    static SCIP_RETCODE primalSetCutoffbound ( SCIP_PRIMAL primal,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_STAT stat,
    SCIP_PROB prob,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_TREE tree,
    SCIP_REOPT reopt,
    SCIP_LP lp,
    SCIP_Real  cutoffbound 
    )
    static

    sets the cutoff bound in primal data and in LP solver

    Parameters
    primalprimal data
    blkmemblock memory
    setglobal SCIP settings
    statproblem statistics data
    probproblem data
    eventqueueevent queue
    eventfilterglobal event filter
    treebranch and bound tree
    reoptreoptimization data structure
    lpcurrent LP data
    cutoffboundnew cutoff bound

    Definition at line 268 of file primal.c.

    References SCIP_Primal::cutoffbound, SCIP_Primal::cutoffboundexact, MIN, NULL, SCIP_CALL, SCIP_INVALID, SCIP_OKAY, SCIPlpSetCutoffbound(), SCIPrationalCreateBuffer(), SCIPrationalFreeBuffer(), SCIPrationalIsGT(), SCIPrationalSetRational(), SCIPrationalSetReal(), SCIPsetDebugMsg, SCIPsetInfinity(), SCIPsetIsLE(), SCIPtreeCutoff(), SCIPtreeInRepropagation(), and SCIP_Primal::upperbound.

    Referenced by primalSetUpperbound(), SCIPprimalSetCutoffbound(), SCIPprimalUpdateObjlimit(), and SCIPprimalUpdateObjoffset().

    ◆ primalSetCutoffboundExact()

    static SCIP_RETCODE primalSetCutoffboundExact ( SCIP_PRIMAL primal,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_STAT stat,
    SCIP_PROB prob,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_TREE tree,
    SCIP_REOPT reopt,
    SCIP_LP lp,
    SCIP_RATIONAL cutoffbound 
    )
    static

    sets the cutoff bound in primal data and in LP solver

    Parameters
    primalprimal data
    blkmemblock memory
    setglobal SCIP settings
    statproblem statistics data
    probproblem data
    eventqueueevent queue
    eventfilterglobal event filter
    treebranch and bound tree
    reoptreoptimization data structure
    lpcurrent LP data
    cutoffboundnew cutoff bound

    Definition at line 314 of file primal.c.

    References SCIP_Primal::cutoffbound, SCIP_Primal::cutoffboundexact, NULL, SCIP_CALL, SCIP_OKAY, SCIP_R_ROUND_UPWARDS, SCIPlpSetCutoffbound(), SCIPrationalDebugMessage, SCIPrationalIsLEReal(), SCIPrationalMin(), SCIPrationalRoundReal(), SCIPsetInfinity(), SCIPtreeCutoff(), SCIPtreeInRepropagation(), and SCIP_Primal::upperboundexact.

    Referenced by primalSetUpperboundExact(), and SCIPprimalUpdateObjoffsetExact().

    ◆ SCIPprimalSetCutoffbound()

    SCIP_RETCODE SCIPprimalSetCutoffbound ( SCIP_PRIMAL primal,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_STAT stat,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_PROB transprob,
    SCIP_PROB origprob,
    SCIP_TREE tree,
    SCIP_REOPT reopt,
    SCIP_LP lp,
    SCIP_Real  cutoffbound,
    SCIP_Bool  useforobjlimit 
    )

    sets the cutoff bound in primal data and in LP solver

    Parameters
    primalprimal data
    blkmemblock memory
    setglobal SCIP settings
    statproblem statistics data
    eventqueueevent queue
    eventfilterglobal event filter
    transprobtransformed problem data
    origproboriginal problem data
    treebranch and bound tree
    reoptreoptimization data structure
    lpcurrent LP data
    cutoffboundnew cutoff bound
    useforobjlimitshould the cutoff bound be used to update the objective limit, if better?

    Definition at line 348 of file primal.c.

    References SCIP_Primal::cutoffbound, NULL, primalSetCutoffbound(), SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_Real, SCIPerrorMessage, SCIPprobExternObjval(), SCIPprobGetObjlim(), SCIPprobSetObjlim(), SCIPsetDebugMsg, and SCIPsetInfinity().

    Referenced by initSolve(), and SCIPupdateCutoffbound().

    ◆ primalSetUpperbound()

    static SCIP_RETCODE primalSetUpperbound ( SCIP_PRIMAL primal,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_STAT stat,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_PROB prob,
    SCIP_TREE tree,
    SCIP_REOPT reopt,
    SCIP_LP lp,
    SCIP_Real  upperbound 
    )
    static

    sets upper bound in primal data and in LP solver

    Parameters
    primalprimal data
    blkmemblock memory
    setglobal SCIP settings
    statproblem statistics data
    eventqueueevent queue
    eventfilterglobal event filter
    probtransformed problem after presolve
    treebranch and bound tree
    reoptreoptimization data structure
    lpcurrent LP data
    upperboundnew upper bound

    Definition at line 402 of file primal.c.

    References MIN, SCIP_Stat::nnodes, NULL, primalSetCutoffbound(), SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPprobIsObjIntegral(), SCIPsetCutoffbounddelta(), SCIPsetDebugMsg, SCIPsetFeasCeil(), SCIPsetInfinity(), SCIPsetIsInfinity(), SCIPtreeGetCurrentDepth(), SCIPvisualUpperbound(), SCIP_Primal::upperbound, and SCIP_Stat::visual.

    Referenced by SCIPprimalSetUpperbound(), SCIPprimalUpdateObjlimit(), and SCIPprimalUpdateObjoffset().

    ◆ primalSetUpperboundExact()

    static SCIP_RETCODE primalSetUpperboundExact ( SCIP_PRIMAL primal,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_STAT stat,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_PROB prob,
    SCIP_TREE tree,
    SCIP_REOPT reopt,
    SCIP_LP lp,
    SCIP_RATIONAL upperbound 
    )
    static

    sets upper bound in primal data and in LP solver

    Parameters
    primalprimal data
    blkmemblock memory
    setglobal SCIP settings
    statproblem statistics data
    eventqueueevent queue
    eventfilterglobal event filter
    probtransformed problem after presolve
    treebranch and bound tree
    reoptreoptimization data structure
    lpcurrent LP data
    upperboundnew upper bound

    Definition at line 458 of file primal.c.

    References SCIP_Primal::cutoffboundexact, SCIP_Stat::nnodes, NULL, primalSetCutoffboundExact(), SCIP_CALL, SCIP_OKAY, SCIP_R_ROUND_UPWARDS, SCIP_Real, SCIPprobIsObjIntegral(), SCIPrationalAddReal(), SCIPrationalCreateBuffer(), SCIPrationalDebugMessage, SCIPrationalDiffReal(), SCIPrationalFreeBuffer(), SCIPrationalIsInfinity(), SCIPrationalIsLEReal(), SCIPrationalIsLT(), SCIPrationalRoundInteger(), SCIPrationalRoundReal(), SCIPrationalSetRational(), SCIPsetCutoffbounddelta(), SCIPsetInfinity(), SCIPtreeGetCurrentDepth(), SCIPvisualUpperbound(), SCIP_Primal::upperbound, SCIP_Primal::upperboundexact, and SCIP_Stat::visual.

    Referenced by primalAddSol(), and SCIPprimalUpdateObjoffsetExact().

    ◆ SCIPprimalSetUpperbound()

    SCIP_RETCODE SCIPprimalSetUpperbound ( SCIP_PRIMAL primal,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_STAT stat,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_PROB prob,
    SCIP_TREE tree,
    SCIP_REOPT reopt,
    SCIP_LP lp,
    SCIP_Real  upperbound 
    )

    sets upper bound in primal data and in LP solver

    Parameters
    primalprimal data
    blkmemblock memory
    setglobal SCIP settings
    statproblem statistics data
    eventqueueevent queue
    eventfilterglobal event filter
    probtransformed problem after presolve
    treebranch and bound tree
    reoptreoptimization data structure
    lpcurrent LP data
    upperboundnew upper bound

    Definition at line 518 of file primal.c.

    References NULL, primalSetUpperbound(), SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIPerrorMessage, SCIPsetInfinity(), and SCIP_Primal::upperbound.

    Referenced by primalAddSol(), and SCIPprimalRetransformSolutions().

    ◆ SCIPprimalUpdateObjlimit()

    SCIP_RETCODE SCIPprimalUpdateObjlimit ( SCIP_PRIMAL primal,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_STAT stat,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_PROB transprob,
    SCIP_PROB origprob,
    SCIP_TREE tree,
    SCIP_REOPT reopt,
    SCIP_LP lp 
    )

    updates upper bound and cutoff bound in primal data after a tightening of the problem's objective limit

    Parameters
    primalprimal data
    blkmemblock memory
    setglobal SCIP settings
    statproblem statistics data
    eventqueueevent queue
    eventfilterglobal event filter
    transprobtransformed problem data
    origproboriginal problem data
    treebranch and bound tree
    reoptreoptimization data structure
    lpcurrent LP data

    Definition at line 550 of file primal.c.

    References MIN, NULL, primalSetCutoffbound(), primalSetUpperbound(), SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPprobGetObjlim(), SCIPprobInternObjval(), and SCIPsetInfinity().

    Referenced by initSolve(), presolve(), SCIPsetObjlimit(), and SCIPtransformProb().

    ◆ SCIPprimalUpdateObjoffset()

    SCIP_RETCODE SCIPprimalUpdateObjoffset ( SCIP_PRIMAL primal,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_STAT stat,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_PROB transprob,
    SCIP_PROB origprob,
    SCIP_TREE tree,
    SCIP_REOPT reopt,
    SCIP_LP lp 
    )

    recalculates upper bound and cutoff bound in primal data after a change of the problem's objective offset

    Parameters
    primalprimal data
    blkmemblock memory
    setglobal SCIP settings
    statproblem statistics data
    eventqueueevent queue
    eventfilterglobal event filter
    transprobtranformed problem data
    origproboriginal problem data
    treebranch and bound tree
    reoptreoptimization data structure
    lpcurrent LP data

    Definition at line 590 of file primal.c.

    References MIN, SCIP_Primal::nsols, NULL, primalSetCutoffbound(), primalSetUpperbound(), SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_STAGE_PRESOLVED, SCIPprobGetObjlim(), SCIPprobInternObjval(), SCIPsetGetStage(), SCIPsetInfinity(), SCIPsolGetObj(), SCIPsolIsOriginal(), SCIP_Primal::sols, and sortPrimalSols().

    Referenced by probCheckObjIntegralExact(), SCIPaddObjoffset(), SCIPprobCheckObjIntegral(), SCIPprobScaleObj(), and SCIPvarAddObj().

    ◆ SCIPprimalUpdateObjoffsetExact()

    SCIP_RETCODE SCIPprimalUpdateObjoffsetExact ( SCIP_PRIMAL primal,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_STAT stat,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_PROB transprob,
    SCIP_PROB origprob,
    SCIP_TREE tree,
    SCIP_REOPT reopt,
    SCIP_LP lp 
    )

    recalculates upper bound and cutoff bound in primal data after a change of the problem's objective offset

    Parameters
    primalprimal data
    blkmemblock memory
    setglobal SCIP settings
    statproblem statistics data
    eventqueueevent queue
    eventfilterglobal event filter
    transprobtranformed problem data
    origproboriginal problem data
    treebranch and bound tree
    reoptreoptimization data structure
    lpcurrent LP data

    Definition at line 646 of file primal.c.

    References SCIP_Primal::nsols, NULL, primalSetCutoffboundExact(), primalSetUpperboundExact(), SCIP_CALL, SCIP_OKAY, SCIP_STAGE_PRESOLVED, SCIPprobGetObjlim(), SCIPprobInternObjvalExact(), SCIPrationalCreateBuffer(), SCIPrationalFreeBuffer(), SCIPrationalMin(), SCIPrationalSetInfinity(), SCIPrationalSetReal(), SCIPsetGetStage(), SCIPsolGetObj(), SCIPsolGetObjExact(), SCIPsolIsExact(), SCIPsolIsOriginal(), SCIP_Primal::sols, and sortPrimalSols().

    Referenced by probScaleObjExact(), and SCIPvarAddObjExact().

    ◆ SCIPprimalAddOrigObjoffset()

    void SCIPprimalAddOrigObjoffset ( SCIP_PRIMAL primal,
    SCIP_SET set,
    SCIP_Real  addval 
    )

    adds additional objective offset in original space to all existing solution (in original space)

    Parameters
    primalprimal data
    setglobal SCIP settings
    addvaladditional objective offset in original space

    Definition at line 719 of file primal.c.

    References SCIP_Primal::existingsols, SCIP_Primal::nexistingsols, SCIP_Primal::nsols, NULL, SCIP_SOLORIGIN_ORIGINAL, SCIP_STAGE_PROBLEM, SCIPsetGetStage(), SCIPsetIsLE(), SCIPsolGetOrigin(), SCIPsolGetOrigObj(), SCIPsolOrigAddObjval(), and SCIP_Primal::sols.

    Referenced by SCIPaddOrigObjoffset().

    ◆ SCIPprimalAddOrigObjoffsetExact()

    void SCIPprimalAddOrigObjoffsetExact ( SCIP_PRIMAL primal,
    SCIP_SET set,
    SCIP_RATIONAL addval 
    )

    adds additional objective offset in original space to all existing solution (in original space)

    Parameters
    primalprimal data
    setglobal SCIP settings
    addvaladditional objective offset in original space

    Definition at line 752 of file primal.c.

    References SCIP_Primal::existingsols, SCIP_Primal::nexistingsols, SCIP_Primal::nsols, NULL, SCIP_SOLORIGIN_ORIGINAL, SCIP_STAGE_PROBLEM, SCIPsetGetStage(), SCIPsetIsLE(), SCIPsolGetOrigin(), SCIPsolGetOrigObj(), SCIPsolOrigAddObjvalExact(), and SCIP_Primal::sols.

    Referenced by SCIPaddOrigObjoffsetExact().

    ◆ SCIPprimalUpperboundIsSol()

    SCIP_Bool SCIPprimalUpperboundIsSol ( SCIP_PRIMAL primal,
    SCIP_SET set,
    SCIP_PROB transprob,
    SCIP_PROB origprob 
    )

    returns whether the current primal bound is justified with a feasible primal solution; if not, the primal bound was set from the user as objective limit

    Parameters
    primalprimal data
    setglobal SCIP settings
    transprobtranformed problem data
    origproboriginal problem data

    Definition at line 787 of file primal.c.

    References SCIP_Primal::nsols, NULL, SCIPsetIsEQ(), SCIPsolGetObj(), SCIP_Primal::sols, and SCIP_Primal::upperbound.

    Referenced by SCIPisPrimalboundSol().

    ◆ SCIPprimalGetRay()

    SCIP_SOL * SCIPprimalGetRay ( SCIP_PRIMAL primal)

    returns the primal ray thats proves unboundedness

    Parameters
    primalprimal data

    Definition at line 800 of file primal.c.

    References NULL, and SCIP_Primal::primalray.

    ◆ SCIPprimalUpdateRay()

    SCIP_RETCODE SCIPprimalUpdateRay ( SCIP_PRIMAL primal,
    SCIP_SET set,
    SCIP_STAT stat,
    SCIP_SOL primalray,
    BMS_BLKMEM blkmem 
    )

    update the primal ray thats proves unboundedness

    Parameters
    primalprimal data
    setglobal SCIP settings
    statdynamic SCIP statistics
    primalraythe new primal ray
    blkmemblock memory

    Definition at line 810 of file primal.c.

    References NULL, SCIP_Primal::primalray, SCIP_CALL, SCIP_OKAY, SCIPsolCopy(), and SCIPsolFree().

    Referenced by SCIPupdatePrimalRay().

    ◆ primalAddSolExact()

    static SCIP_RETCODE primalAddSolExact ( SCIP_PRIMAL primal,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_MESSAGEHDLR messagehdlr,
    SCIP_STAT stat,
    SCIP_PROB origprob,
    SCIP_PROB transprob,
    SCIP_TREE tree,
    SCIP_REOPT reopt,
    SCIP_LPEXACT lpexact,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_SOL **  solptr,
    int  insertpos,
    SCIP_Bool  replace 
    )
    static

    forward declaration; adds exact primal solution to solution storage at given position

    adds exact primal solution to solution storage at given position

    Parameters
    primalprimal data
    blkmemblock memory
    setglobal SCIP settings
    messagehdlrmessage handler
    statproblem statistics data
    origproboriginal problem
    transprobtransformed problem after presolve
    treebranch and bound tree
    reoptreoptimization data structure
    lpexactcurrent LP data
    eventqueueevent queue
    eventfilterevent filter for global (not variable dependent) events
    solptrpointer to primal CIP solution
    insertposposition in solution storage to add solution to
    replaceshould the solution at insertpos be replaced by the new solution?

    Definition at line 2323 of file primal.c.

    References FALSE, SCIP_LpExact::fplp, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPdebug, SCIPprimalAddSolFree(), SCIPrationalCreateBuffer(), SCIPrationalFreeBuffer(), SCIPrationalGetReal(), SCIPsetDebugMsg, SCIPsolGetObjExact(), SCIPsolOverwriteFPSolWithExact(), SCIPsolPrintExact(), SCIPsolUnlinkExact(), and SCIPtreeInRepropagation().

    Referenced by primalAddSol(), SCIPprimalAddSol(), SCIPprimalAddSolFreeExact(), and SCIPprimalTrySolFreeExact().

    ◆ primalAddSol()

    static SCIP_RETCODE primalAddSol ( SCIP_PRIMAL primal,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_MESSAGEHDLR messagehdlr,
    SCIP_STAT stat,
    SCIP_PROB origprob,
    SCIP_PROB transprob,
    SCIP_TREE tree,
    SCIP_REOPT reopt,
    SCIP_LP lp,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_SOL **  solptr,
    int  insertpos,
    SCIP_Bool  replace 
    )
    static

    adds primal solution to solution storage at given position

    Parameters
    primalprimal data
    blkmemblock memory
    setglobal SCIP settings
    messagehdlrmessage handler
    statproblem statistics data
    origproboriginal problem
    transprobtransformed problem after presolve
    treebranch and bound tree
    reoptreoptimization data structure
    lpcurrent LP data
    eventqueueevent queue
    eventfilterglobal event filter
    solptrpointer to primal CIP solution
    insertposposition in solution storage to add solution to
    replaceshould the solution at insertpos be replaced by the new solution?

    Definition at line 859 of file primal.c.

    References SCIP_Stat::bestsolnode, ensureSolsSize(), FALSE, SCIP_Stat::firstprimalbound, SCIP_Stat::firstprimaldepth, SCIP_Stat::firstprimalheur, SCIP_Stat::firstprimaltime, SCIP_Lp::lpexact, MIN, SCIP_Primal::nbestsolsfound, SCIP_Primal::nlimsolsfound, SCIP_Stat::nnodes, SCIP_Stat::nnodesbeforefirst, SCIP_Stat::nrunsbeforefirst, SCIP_Primal::nsols, SCIP_Primal::nsolsfound, NULL, primalAddSolExact(), primalSetUpperboundExact(), SCIP_Bool, SCIP_CALL, SCIP_EVENTTYPE_BESTSOLFOUND, SCIP_EVENTTYPE_POORSOLFOUND, SCIP_LONGINT_FORMAT, SCIP_OBJSENSE_MINIMIZE, SCIP_OKAY, SCIP_Real, SCIP_SOLORIGIN_ORIGINAL, SCIP_STAGE_PRESOLVED, SCIP_STAGE_SOLVING, SCIPdebug, SCIPdebugSolIsEnabled, SCIPdispPrintLine(), SCIPerrorMessage, SCIPeventChgSol(), SCIPeventChgType(), SCIPeventProcess(), SCIPgetDualbound(), SCIPgetLowerbound(), SCIPmessagePrintWarning(), SCIPprimalSetUpperbound(), SCIPprimalTransformSol(), SCIPprobExternObjval(), SCIPprobGetObjlim(), SCIPprobGetObjsense(), SCIPprobInternObjval(), SCIPrationalCreateBuffer(), SCIPrationalFreeBuffer(), SCIPrationalIsLT(), SCIPsetDebugMsg, SCIPsetGetStage(), SCIPsetIsFeasGE(), SCIPsetIsFeasGT(), SCIPsetIsFeasLE(), SCIPsetIsInfinity(), SCIPsolCheck(), SCIPsolFree(), SCIPsolGetDepth(), SCIPsolGetHeur(), SCIPsolGetNodenum(), SCIPsolGetObj(), SCIPsolGetObjExact(), SCIPsolGetOrigin(), SCIPsolGetOrigObj(), SCIPsolGetRunnum(), SCIPsolGetTime(), SCIPsolIsExact(), SCIPsolIsOriginal(), SCIPsolMakeExact(), SCIPsolPrint(), SCIPsolRetransform(), SCIPsolTransform(), SCIPsolUnlink(), SCIPsolUpdateVarsum(), SCIPtreeGetCurrentNode(), SCIPtreeInRepropagation(), SCIPvisualFoundSolution(), SCIP_Primal::sols, TRUE, SCIP_Primal::upperboundexact, and SCIP_Stat::visual.

    Referenced by SCIPprimalAddSol(), SCIPprimalAddSolFree(), SCIPprimalTrySol(), and SCIPprimalTrySolFree().

    ◆ primalAddOrigSol()

    static SCIP_RETCODE primalAddOrigSol ( SCIP_PRIMAL primal,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_PROB prob,
    SCIP_SOL sol,
    int  insertpos 
    )
    static

    adds primal solution to solution storage at given position

    Parameters
    primalprimal data
    blkmemblock memory
    setglobal SCIP settings
    proboriginal problem data
    solprimal CIP solution
    insertposposition in solution storage to add solution to

    Definition at line 1122 of file primal.c.

    References ensureSolsSize(), MIN, SCIP_Primal::nlimsolsfound, SCIP_Primal::nsols, SCIP_Primal::nsolsfound, NULL, SCIP_CALL, SCIP_LONGINT_FORMAT, SCIP_OKAY, SCIPprobGetObjlim(), SCIPsetDebugMsg, SCIPsetIsFeasLE(), SCIPsolFree(), SCIPsolGetOrigObj(), and SCIP_Primal::sols.

    Referenced by SCIPprimalAddOrigSol(), and SCIPprimalAddOrigSolFree().

    ◆ primalAddOrigPartialSol()

    static SCIP_RETCODE primalAddOrigPartialSol ( SCIP_PRIMAL primal,
    SCIP_SET set,
    SCIP_PROB prob,
    SCIP_SOL sol 
    )
    static

    adds primal solution to solution storage

    Parameters
    primalprimal data
    setglobal SCIP settings
    proboriginal problem data
    solprimal CIP solution

    Definition at line 1174 of file primal.c.

    References ensurePartialsolsSize(), SCIP_Primal::npartialsols, NULL, SCIP_Primal::partialsols, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPerrorMessage, and SCIPsetDebugMsg.

    Referenced by SCIPprimalAddOrigSol(), and SCIPprimalAddOrigSolFree().

    ◆ primalSearchSolPos()

    static int primalSearchSolPos ( SCIP_PRIMAL primal,
    SCIP_SET set,
    SCIP_PROB transprob,
    SCIP_PROB origprob,
    SCIP_SOL sol 
    )
    static

    uses binary search to find position in solution storage

    Parameters
    primalprimal data
    setglobal SCIP settings
    transprobtranformed problem data
    origproboriginal problem data
    solprimal solution to search position for

    Definition at line 1205 of file primal.c.

    References SCIP_Primal::nsols, NULL, SCIP_Real, SCIPsetIsEQ(), SCIPsolGetObj(), SCIPsolIsOriginal(), and SCIP_Primal::sols.

    Referenced by solOfInterest().

    ◆ primalSearchOrigSolPos()

    static int primalSearchOrigSolPos ( SCIP_PRIMAL primal,
    SCIP_SOL sol 
    )
    static

    uses binary search to find position in solution storage

    Parameters
    primalprimal data
    solprimal solution to search position for

    Definition at line 1255 of file primal.c.

    References SCIP_Primal::nsols, NULL, SCIP_Real, SCIPsolGetOrigObj(), and SCIP_Primal::sols.

    Referenced by origsolOfInterest().

    ◆ primalExistsSol()

    static SCIP_Bool primalExistsSol ( SCIP_PRIMAL primal,
    SCIP_SET set,
    SCIP_STAT stat,
    SCIP_PROB origprob,
    SCIP_PROB transprob,
    SCIP_SOL sol,
    int *  insertpos,
    SCIP_Bool replace 
    )
    static

    returns whether the given primal solution is already existent in the solution storage

    Parameters
    primalprimal data
    setglobal SCIP settings
    statproblem statistics data
    origproboriginal problem
    transprobtransformed problem after presolve
    solprimal solution to search position for
    insertpospointer to insertion position returned by primalSearchSolPos(); the position might be changed if an existing solution should be replaced
    replacepointer to store whether the solution at insertpos should be replaced

    Definition at line 1290 of file primal.c.

    References FALSE, SCIP_Primal::nsols, NULL, REALABS, SCIP_Real, SCIP_STAGE_PRESOLVED, SCIPsetEpsilon(), SCIPsetIsFeasGE(), SCIPsetIsFeasLE(), SCIPsetIsGE(), SCIPsetIsGT(), SCIPsetIsLE(), SCIPsetIsLT(), SCIPsolGetObj(), SCIPsolIsOriginal(), SCIPsolsAreEqual(), SCIP_Primal::sols, and TRUE.

    Referenced by solOfInterest().

    ◆ primalExistsOrigSol()

    static SCIP_Bool primalExistsOrigSol ( SCIP_PRIMAL primal,
    SCIP_SET set,
    SCIP_STAT stat,
    SCIP_PROB prob,
    SCIP_SOL sol,
    int  insertpos 
    )
    static

    returns whether the given primal solution is already existent in the original solution candidate storage

    Parameters
    primalprimal data
    setglobal SCIP settings
    statproblem statistics data
    proboriginal problem
    solprimal solution to search position for
    insertposinsertion position returned by primalSearchOrigSolPos()

    Definition at line 1372 of file primal.c.

    References FALSE, SCIP_Primal::nsols, NULL, SCIP_Real, SCIPsetIsGE(), SCIPsetIsGT(), SCIPsetIsLE(), SCIPsetIsLT(), SCIPsolGetOrigObj(), SCIPsolsAreEqual(), SCIP_Primal::sols, and TRUE.

    Referenced by origsolOfInterest().

    ◆ solOfInterest()

    static SCIP_Bool solOfInterest ( SCIP_PRIMAL primal,
    SCIP_SET set,
    SCIP_STAT stat,
    SCIP_PROB origprob,
    SCIP_PROB transprob,
    SCIP_SOL sol,
    int *  insertpos,
    SCIP_Bool replace 
    )
    static

    check if we are willing to check the solution for feasibility

    Parameters
    primalprimal data
    setglobal SCIP settings
    statproblem statistics data
    origproboriginal problem
    transprobtransformed problem after presolve
    solprimal CIP solution
    insertpospointer to store the insert position of that solution
    replacepointer to store whether the solution at insertpos should be replaced (e.g., because it lives in the original space)

    Definition at line 1424 of file primal.c.

    References SCIP_Primal::cutoffbound, SCIP_Primal::cutoffboundexact, FALSE, primalExistsSol(), primalSearchSolPos(), SCIP_Bool, SCIP_CALL_ABORT, SCIP_Real, SCIPrationalCreateBuffer(), SCIPrationalFreeBuffer(), SCIPrationalIsInfinity(), SCIPrationalIsLT(), SCIPrationalSetReal(), SCIPsetIsInfinity(), SCIPsolGetObj(), SCIPsolGetObjExact(), SCIPsolIsExact(), SCIPwarningMessage(), and TRUE.

    Referenced by SCIPprimalAddSol(), SCIPprimalAddSolFree(), SCIPprimalAddSolFreeExact(), SCIPprimalTrySol(), SCIPprimalTrySolFree(), and SCIPprimalTrySolFreeExact().

    ◆ origsolOfInterest()

    static SCIP_Bool origsolOfInterest ( SCIP_PRIMAL primal,
    SCIP_SET set,
    SCIP_STAT stat,
    SCIP_PROB origprob,
    SCIP_SOL sol,
    int *  insertpos 
    )
    static

    check if we are willing to store the solution candidate for later checking

    Parameters
    primalprimal data
    setglobal SCIP settings
    statproblem statistics data
    origproboriginal problem
    solprimal CIP solution
    insertpospointer to store the insert position of that solution

    Definition at line 1502 of file primal.c.

    References FALSE, primalExistsOrigSol(), primalSearchOrigSolPos(), SCIPsolIsOriginal(), and TRUE.

    Referenced by SCIPprimalAddOrigSol(), and SCIPprimalAddOrigSolFree().

    ◆ SCIPprimalAddSol()

    SCIP_RETCODE SCIPprimalAddSol ( SCIP_PRIMAL primal,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_MESSAGEHDLR messagehdlr,
    SCIP_STAT stat,
    SCIP_PROB origprob,
    SCIP_PROB transprob,
    SCIP_TREE tree,
    SCIP_REOPT reopt,
    SCIP_LP lp,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_SOL sol,
    SCIP_Bool stored 
    )

    adds primal solution to solution storage by copying it

    Parameters
    primalprimal data
    blkmemblock memory
    setglobal SCIP settings
    messagehdlrmessage handler
    statproblem statistics data
    origproboriginal problem
    transprobtransformed problem after presolve
    treebranch and bound tree
    reoptreoptimization data structure
    lpcurrent LP data
    eventqueueevent queue
    eventfilterglobal event filter
    solprimal CIP solution
    storedstores whether given solution was good enough to keep

    Definition at line 1523 of file primal.c.

    References FALSE, SCIP_Lp::lpexact, SCIP_Primal::nsols, NULL, primalAddSol(), primalAddSolExact(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPsetIsLE(), SCIPsolCopy(), SCIPsolGetObj(), SCIPsolIsExact(), SCIPsolIsPartial(), solOfInterest(), SCIP_Primal::sols, and TRUE.

    Referenced by SCIPaddSol(), SCIPprimalAddCurrentSol(), SCIPtransformProb(), and SCIPtrySol().

    ◆ SCIPprimalAddSolFree()

    SCIP_RETCODE SCIPprimalAddSolFree ( SCIP_PRIMAL primal,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_MESSAGEHDLR messagehdlr,
    SCIP_STAT stat,
    SCIP_PROB origprob,
    SCIP_PROB transprob,
    SCIP_TREE tree,
    SCIP_REOPT reopt,
    SCIP_LP lp,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_SOL **  sol,
    SCIP_Bool stored 
    )

    adds primal solution to solution storage, frees the solution afterwards

    Parameters
    primalprimal data
    blkmemblock memory
    setglobal SCIP settings
    messagehdlrmessage handler
    statproblem statistics data
    origproboriginal problem
    transprobtransformed problem after presolve
    treebranch and bound tree
    reoptreoptimization data structure
    lpcurrent LP data
    eventqueueevent queue
    eventfilterglobal event filter
    solpointer to primal CIP solution; is cleared in function call
    storedstores whether given solution was good enough to keep

    Definition at line 1599 of file primal.c.

    References FALSE, NULL, primalAddSol(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPsolFree(), solOfInterest(), and TRUE.

    Referenced by addCurrentSolution(), primalAddSolExact(), SCIPaddSolFree(), and SCIPtrySolFree().

    ◆ SCIPprimalAddOrigSol()

    SCIP_RETCODE SCIPprimalAddOrigSol ( SCIP_PRIMAL primal,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_STAT stat,
    SCIP_PROB prob,
    SCIP_SOL sol,
    SCIP_Bool stored 
    )

    adds primal solution to solution candidate storage of original problem space

    Parameters
    primalprimal data
    blkmemblock memory
    setglobal SCIP settings
    statproblem statistics data
    proboriginal problem data
    solprimal CIP solution; is cleared in function call
    storedstores whether given solution was good enough to keep

    Definition at line 1654 of file primal.c.

    References FALSE, NULL, origsolOfInterest(), primalAddOrigPartialSol(), primalAddOrigSol(), SCIP_CALL, SCIP_OKAY, SCIPsolCopy(), SCIPsolIsOriginal(), SCIPsolIsPartial(), and TRUE.

    Referenced by freeTransform(), and SCIPaddSol().

    ◆ SCIPprimalAddOrigSolFree()

    SCIP_RETCODE SCIPprimalAddOrigSolFree ( SCIP_PRIMAL primal,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_STAT stat,
    SCIP_PROB prob,
    SCIP_SOL **  sol,
    SCIP_Bool stored 
    )

    adds primal solution to solution candidate storage of original problem space, frees the solution afterwards

    Parameters
    primalprimal data
    blkmemblock memory
    setglobal SCIP settings
    statproblem statistics data
    proboriginal problem data
    solpointer to primal CIP solution; is cleared in function call
    storedstores whether given solution was good enough to keep

    Definition at line 1709 of file primal.c.

    References FALSE, NULL, origsolOfInterest(), primalAddOrigPartialSol(), primalAddOrigSol(), SCIP_CALL, SCIP_OKAY, SCIPsolFree(), SCIPsolIsOriginal(), SCIPsolIsPartial(), and TRUE.

    Referenced by SCIPaddSolFree().

    ◆ primalLinkCurrentSol()

    static SCIP_RETCODE primalLinkCurrentSol ( SCIP_PRIMAL primal,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_STAT stat,
    SCIP_PROB prob,
    SCIP_TREE tree,
    SCIP_LP lp,
    SCIP_HEUR heur 
    )
    static

    links temporary solution of primal data to current solution

    Parameters
    primalprimal data
    blkmemblock memory
    setglobal SCIP settings
    statproblem statistics data
    probtransformed problem data
    treebranch and bound tree
    lpcurrent LP data
    heurheuristic that found the solution (or NULL if it's from the tree)

    Definition at line 1766 of file primal.c.

    References SCIP_Primal::currentsol, NULL, SCIP_CALL, SCIP_OKAY, SCIPsolCreateCurrentSol(), SCIPsolLinkCurrentSol(), and SCIPsolSetHeur().

    Referenced by SCIPprimalAddCurrentSol(), and SCIPprimalTryCurrentSol().

    ◆ SCIPprimalAddCurrentSol()

    SCIP_RETCODE SCIPprimalAddCurrentSol ( SCIP_PRIMAL primal,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_MESSAGEHDLR messagehdlr,
    SCIP_STAT stat,
    SCIP_PROB origprob,
    SCIP_PROB transprob,
    SCIP_TREE tree,
    SCIP_REOPT reopt,
    SCIP_LP lp,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_HEUR heur,
    SCIP_Bool stored 
    )

    adds current LP/pseudo solution to solution storage

    Parameters
    primalprimal data
    blkmemblock memory
    setglobal SCIP settings
    messagehdlrmessage handler
    statproblem statistics data
    origproboriginal problem
    transprobtransformed problem after presolve
    treebranch and bound tree
    reoptreoptimization data structure
    lpcurrent LP data
    eventqueueevent queue
    eventfilterglobal event filter
    heurheuristic that found the solution (or NULL if it's from the tree)
    storedstores whether given solution was good enough to keep

    Definition at line 1793 of file primal.c.

    References SCIP_Primal::currentsol, NULL, primalLinkCurrentSol(), SCIP_CALL, SCIP_OKAY, and SCIPprimalAddSol().

    Referenced by SCIPaddCurrentSol().

    ◆ SCIPprimalTrySol()

    SCIP_RETCODE SCIPprimalTrySol ( SCIP_PRIMAL primal,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_MESSAGEHDLR messagehdlr,
    SCIP_STAT stat,
    SCIP_PROB origprob,
    SCIP_PROB transprob,
    SCIP_TREE tree,
    SCIP_REOPT reopt,
    SCIP_LP lp,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_SOL sol,
    SCIP_Bool  printreason,
    SCIP_Bool  completely,
    SCIP_Bool  checkbounds,
    SCIP_Bool  checkintegrality,
    SCIP_Bool  checklprows,
    SCIP_Bool stored 
    )

    checks primal solution; if feasible, adds it to storage by copying it

    Parameters
    primalprimal data
    blkmemblock memory
    setglobal SCIP settings
    messagehdlrmessage handler
    statproblem statistics data
    origproboriginal problem
    transprobtransformed problem after presolve
    treebranch and bound tree
    reoptreoptimization data structure
    lpcurrent LP data
    eventqueueevent queue
    eventfilterglobal event filter
    solprimal CIP solution
    printreasonShould all reasons of violations be printed?
    completelyShould all violations be checked?
    checkboundsShould the bounds of the variables be checked?
    checkintegralityHas integrality to be checked?
    checklprowsDo constraints represented by rows in the current LP have to be checked?
    storedstores whether given solution was feasible and good enough to keep

    Definition at line 1823 of file primal.c.

    References FALSE, NULL, primalAddSol(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPsolCheck(), SCIPsolCopy(), solOfInterest(), and TRUE.

    Referenced by SCIPprimalTryCurrentSol(), SCIPtrySol(), solveNode(), and solveNodeLP().

    ◆ SCIPprimalTrySolFree()

    SCIP_RETCODE SCIPprimalTrySolFree ( SCIP_PRIMAL primal,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_MESSAGEHDLR messagehdlr,
    SCIP_STAT stat,
    SCIP_PROB origprob,
    SCIP_PROB transprob,
    SCIP_TREE tree,
    SCIP_REOPT reopt,
    SCIP_LP lp,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_SOL **  sol,
    SCIP_Bool  printreason,
    SCIP_Bool  completely,
    SCIP_Bool  checkbounds,
    SCIP_Bool  checkintegrality,
    SCIP_Bool  checklprows,
    SCIP_Bool stored 
    )

    checks primal solution; if feasible, adds it to storage; solution is freed afterwards

    Parameters
    primalprimal data
    blkmemblock memory
    setglobal SCIP settings
    messagehdlrmessage handler
    statproblem statistics data
    origproboriginal problem
    transprobtransformed problem after presolve
    treebranch and bound tree
    reoptreoptimization data structure
    lpcurrent LP data
    eventqueueevent queue
    eventfilterglobal event filter
    solpointer to primal CIP solution; is cleared in function call
    printreasonShould all the reasons of violations be printed?
    completelyShould all violations be checked?
    checkboundsShould the bounds of the variables be checked?
    checkintegralityHas integrality to be checked?
    checklprowsDo constraints represented by rows in the current LP have to be checked?
    storedstores whether solution was feasible and good enough to keep

    Definition at line 1893 of file primal.c.

    References FALSE, NULL, primalAddSol(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPsolCheck(), SCIPsolFree(), solOfInterest(), and TRUE.

    Referenced by addCurrentSolution(), SCIPprimalTransformSol(), SCIPtrySolFree(), solveNode(), and solveNodeLP().

    ◆ SCIPprimalTryCurrentSol()

    SCIP_RETCODE SCIPprimalTryCurrentSol ( SCIP_PRIMAL primal,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_MESSAGEHDLR messagehdlr,
    SCIP_STAT stat,
    SCIP_PROB origprob,
    SCIP_PROB transprob,
    SCIP_TREE tree,
    SCIP_REOPT reopt,
    SCIP_LP lp,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_HEUR heur,
    SCIP_Bool  printreason,
    SCIP_Bool  completely,
    SCIP_Bool  checkintegrality,
    SCIP_Bool  checklprows,
    SCIP_Bool stored 
    )

    checks current LP/pseudo solution; if feasible, adds it to storage

    Parameters
    primalprimal data
    blkmemblock memory
    setglobal SCIP settings
    messagehdlrmessage handler
    statproblem statistics data
    origproboriginal problem
    transprobtransformed problem after presolve
    treebranch and bound tree
    reoptreoptimization data structure
    lpcurrent LP data
    eventqueueevent queue
    eventfilterglobal event filter
    heurheuristic that found the solution (or NULL if it's from the tree)
    printreasonShould all reasons of violations be printed?
    completelyShould all violations be checked?
    checkintegralityHas integrality to be checked?
    checklprowsDo constraints represented by rows in the current LP have to be checked?
    storedstores whether given solution was good enough to keep

    Definition at line 1967 of file primal.c.

    References SCIP_Primal::currentsol, FALSE, NULL, primalLinkCurrentSol(), SCIP_CALL, SCIP_OKAY, and SCIPprimalTrySol().

    Referenced by SCIPtryCurrentSol().

    ◆ SCIPprimalSolCreated()

    SCIP_RETCODE SCIPprimalSolCreated ( SCIP_PRIMAL primal,
    SCIP_SET set,
    SCIP_SOL sol 
    )

    inserts solution into the global array of all existing primal solutions

    Parameters
    primalprimal data
    setglobal SCIP settings
    solprimal CIP solution

    Definition at line 2002 of file primal.c.

    References ensureExistingsolsSize(), SCIP_Primal::existingsols, SCIP_Primal::nexistingsols, NULL, SCIP_CALL, SCIP_OKAY, SCIPsolGetPrimalIndex(), and SCIPsolSetPrimalIndex().

    Referenced by SCIPsolCopy(), SCIPsolCreate(), SCIPsolCreateOriginal(), SCIPsolCreatePartial(), and SCIPsolCreateUnknown().

    ◆ SCIPprimalSolFreed()

    void SCIPprimalSolFreed ( SCIP_PRIMAL primal,
    SCIP_SOL sol 
    )

    removes solution from the global array of all existing primal solutions

    Parameters
    primalprimal data
    solprimal CIP solution

    Definition at line 2024 of file primal.c.

    References SCIP_Primal::existingsols, SCIP_Primal::nexistingsols, NULL, SCIPsolGetPrimalIndex(), and SCIPsolSetPrimalIndex().

    Referenced by SCIPsolFree().

    ◆ SCIPprimalUpdateVarObj()

    void SCIPprimalUpdateVarObj ( SCIP_PRIMAL primal,
    SCIP_VAR var,
    SCIP_Real  oldobj,
    SCIP_Real  newobj 
    )

    updates all existing primal solutions after a change in a variable's objective value

    Parameters
    primalprimal data
    varproblem variable
    oldobjold objective value
    newobjnew objective value

    Definition at line 2054 of file primal.c.

    References SCIP_Primal::existingsols, SCIP_Primal::nexistingsols, NULL, SCIPsolIsOriginal(), and SCIPsolUpdateVarObj().

    Referenced by SCIPeventProcess().

    ◆ SCIPprimalRetransformSolutions()

    SCIP_RETCODE SCIPprimalRetransformSolutions ( SCIP_PRIMAL primal,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_STAT stat,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_PROB origprob,
    SCIP_PROB transprob,
    SCIP_TREE tree,
    SCIP_REOPT reopt,
    SCIP_LP lp 
    )

    retransforms all existing solutions to original problem space

    Note
    as a side effect, the objective value of the solutions can change (numerical errors) so we update the objective cutoff value and upper bound accordingly
    Parameters
    primalprimal data
    blkmemblock memory
    setglobal SCIP settings
    statproblem statistics data
    eventqueueevent queue
    eventfilterglobal event filter
    origproboriginal problem
    transprobtransformed problem
    treebranch and bound tree
    reoptreoptimization data structure
    lpcurrent LP data

    Definition at line 2077 of file primal.c.

    References SCIP_Primal::nsols, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_SOLORIGIN_ZERO, SCIPprimalSetUpperbound(), SCIPsolGetObj(), SCIPsolGetOrigin(), SCIPsolRetransform(), SCIP_Primal::sols, and sortPrimalSols().

    Referenced by initPresolve().

    ◆ SCIPprimalTransformSol()

    SCIP_RETCODE SCIPprimalTransformSol ( SCIP_PRIMAL primal,
    SCIP_SOL sol,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_MESSAGEHDLR messagehdlr,
    SCIP_STAT stat,
    SCIP_PROB origprob,
    SCIP_PROB transprob,
    SCIP_TREE tree,
    SCIP_REOPT reopt,
    SCIP_LP lp,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_Real solvals,
    SCIP_Bool solvalset,
    int  solvalssize,
    SCIP_Bool added 
    )

    tries to transform original solution to the transformed problem space

    Parameters
    primalprimal data
    solprimal solution
    blkmemblock memory
    setglobal SCIP settings
    messagehdlrmessage handler
    statproblem statistics data
    origproboriginal problem
    transprobtransformed problem after presolve
    treebranch and bound tree
    reoptreoptimization data structure
    lpcurrent LP data
    eventqueueevent queue
    eventfilterglobal event filter
    solvalsarray for internal use to store solution values, or NULL; if the method is called multiple times in a row, an array with size >= number of active variables should be given for performance reasons
    solvalsetarray for internal use to store which solution values were set, or NULL; if the method is called multiple times in a row, an array with size >= number of active variables should be given for performance reasons
    solvalssizesize of solvals and solvalset arrays, should be >= number of active variables
    addedpointer to store whether the solution was added

    Definition at line 2126 of file primal.c.

    References BMSclearMemoryArray, FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_FIXED, SCIP_VARSTATUS_MULTAGGR, SCIPprimalTrySolFree(), SCIPprobGetNVars(), SCIPprobGetVars(), SCIPsetAllocBufferArray, SCIPsetDebugMsg, SCIPsetFreeBufferArray, SCIPsetIsEQ(), SCIPsetIsInfinity(), SCIPsolCreate(), SCIPsolGetHeur(), SCIPsolGetOrigObj(), SCIPsolGetVal(), SCIPsolIsOriginal(), SCIPsolSetVal(), SCIPvarGetName(), SCIPvarGetProbindex(), SCIPvarGetProbvarSum(), SCIPvarGetStatus(), SCIPvarIsActive(), and TRUE.

    Referenced by primalAddSol(), and transformSols().

    ◆ SCIPprimalUpdateViolations()

    SCIP_Bool SCIPprimalUpdateViolations ( SCIP_PRIMAL primal)

    is the updating of violations enabled for this problem?

    Parameters
    primalproblem data

    Definition at line 2301 of file primal.c.

    References NULL, and SCIP_Primal::updateviolations.

    Referenced by SCIPsolCheckOrig(), SCIPupdateSolBoundViolation(), SCIPupdateSolConsViolation(), SCIPupdateSolIntegralityViolation(), SCIPupdateSolLPConsViolation(), and SCIPupdateSolLPRowViolation().

    ◆ SCIPprimalSetUpdateViolations()

    void SCIPprimalSetUpdateViolations ( SCIP_PRIMAL primal,
    SCIP_Bool  updateviolations 
    )

    set whether the updating of violations is turned on

    Parameters
    primalproblem data
    updateviolationsmarks whether the updating of violations is turned on

    Definition at line 2311 of file primal.c.

    References NULL, and SCIP_Primal::updateviolations.

    Referenced by SCIPactivateSolViolationUpdates(), and SCIPdeactivateSolViolationUpdates().

    ◆ SCIPprimalTrySolFreeExact()

    SCIP_RETCODE SCIPprimalTrySolFreeExact ( SCIP_PRIMAL primal,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_MESSAGEHDLR messagehdlr,
    SCIP_STAT stat,
    SCIP_PROB origprob,
    SCIP_PROB transprob,
    SCIP_TREE tree,
    SCIP_REOPT reopt,
    SCIP_LPEXACT lpexact,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_SOL **  sol,
    SCIP_Bool  printreason,
    SCIP_Bool  completely,
    SCIP_Bool  checkbounds,
    SCIP_Bool  checkintegrality,
    SCIP_Bool  checklprows,
    SCIP_Bool stored 
    )

    adds exact primal solution to solution storage, frees the solution afterwards

    Parameters
    primalprimal data
    blkmemblock memory
    setglobal SCIP settings
    messagehdlrmessage handler
    statproblem statistics data
    origproboriginal problem
    transprobtransformed problem after presolve
    treebranch and bound tree
    reoptreoptimization data structure
    lpexactcurrent LP data
    eventqueueevent queue
    eventfilterevent filter for global (not variable dependent) events
    solpointer to primal CIP solution; is cleared in function call
    printreasonShould all the reasons of violations be printed?
    completelyShould all violations be checked?
    checkboundsShould the bounds of the variables be checked?
    checkintegralityHas integrality to be checked?
    checklprowsDo constraints represented by rows in the current LP have to be checked?
    storedstores whether given solution was good enough to keep

    Definition at line 2382 of file primal.c.

    References FALSE, NULL, primalAddSolExact(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPsolCheck(), SCIPsolFree(), solOfInterest(), and TRUE.

    Referenced by addCurrentSolution(), SCIPtrySolFreeExact(), and solveNodeLP().

    ◆ SCIPprimalAddSolFreeExact()

    SCIP_RETCODE SCIPprimalAddSolFreeExact ( SCIP_PRIMAL primal,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_MESSAGEHDLR messagehdlr,
    SCIP_STAT stat,
    SCIP_PROB origprob,
    SCIP_PROB transprob,
    SCIP_TREE tree,
    SCIP_REOPT reopt,
    SCIP_LPEXACT lpexact,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_SOL **  sol,
    SCIP_Bool stored 
    )

    adds exact primal solution to solution storage by copying it and frees the solution afterwards

    Parameters
    primalprimal data
    blkmemblock memory
    setglobal SCIP settings
    messagehdlrmessage handler
    statproblem statistics data
    origproboriginal problem
    transprobtransformed problem after presolve
    treebranch and bound tree
    reoptreoptimization data structure
    lpexactcurrent exact LP data
    eventqueueevent queue
    eventfilterevent filter for global (not variable dependent) events
    solprimal CIP solution
    storedstores whether given solution was good enough to keep

    Definition at line 2449 of file primal.c.

    References FALSE, NULL, primalAddSolExact(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPsolFree(), SCIPsolIsPartial(), solOfInterest(), and TRUE.

    Referenced by SCIPtrySolFreeExact().