Scippy

    SCIP

    Solving Constraint Integer Programs

    Detailed Description

    methods for certificate output

    Author
    Ambros Gleixner
    Daniel Steffy
    Leon Eifler

    Definition in file certificate.cpp.

    #include <stdio.h>
    #include <assert.h>
    #include <string.h>
    #include <map>
    #include "lpiexact/lpiexact.h"
    #include "scip/def.h"
    #include "blockmemshell/memory.h"
    #include "scip/lp.h"
    #include "scip/lpexact.h"
    #include "scip/misc.h"
    #include "scip/pub_cons.h"
    #include "scip/pub_lpexact.h"
    #include "scip/pub_misc.h"
    #include "scip/pub_message.h"
    #include "scip/pub_tree.h"
    #include "scip/pub_var.h"
    #include "scip/prob.h"
    #include "scip/cuts.h"
    #include "scip/cons_exactlinear.h"
    #include "scip/scip_certificate.h"
    #include "scip/scip_exact.h"
    #include "scip/scip_general.h"
    #include "scip/scip_lp.h"
    #include "scip/scip_mem.h"
    #include "scip/scip_message.h"
    #include "scip/scip_numerics.h"
    #include "scip/scip_prob.h"
    #include "scip/scip_probing.h"
    #include "scip/scip_sol.h"
    #include "scip/scip_solve.h"
    #include "scip/scip_solvingstats.h"
    #include "scip/scip_tree.h"
    #include "scip/set.h"
    #include "scip/sol.h"
    #include "scip/struct_certificate.h"
    #include "scip/struct_lpexact.h"
    #include "scip/struct_scip.h"
    #include "scip/struct_stat.h"
    #include "scip/struct_var.h"
    #include "scip/var.h"
    #include "scip/certificate.h"

    Go to the source code of this file.

    Macros

    #define SCIP_HASHSIZE_CERTIFICATE   500
     
    #define SCIP_MB_TO_CHAR_RATE   1048576.0
     

    Functions

    static SCIP_Bool checkAndUpdateFilesize (SCIP_CERTIFICATE *certificate, SCIP_Real nchars)
     
    static SCIP_Bool certificateIsLeftNode (SCIP_CERTIFICATE *certificate, SCIP_NODE *node)
     
    static SCIP_Longint printBoundAssumption (SCIP_CERTIFICATE *certificate, SCIP_VAR *var, SCIP_RATIONAL *boundval, SCIP_BOUNDTYPE boundtype)
     
    static SCIP_RETCODE certificateFreeNodeData (SCIP_CERTIFICATE *certificate, SCIP_NODE *node)
     
    static SCIP_RETCODE certificatePrintDualbound (SCIP_CERTIFICATE *certificate, const char *linename, SCIP_RATIONAL *lowerbound, int len, SCIP_Longint *ind, SCIP_RATIONAL **val)
     
    static SCIP_RETCODE certificatePrintSol (SCIP *scip, SCIP_Bool isorigfile, SCIP_CERTIFICATE *certificate, SCIP_SOL *sol)
     
    SCIP_RETCODE SCIPcertificateUpdateBoundData (SCIP_CERTIFICATE *certificate, SCIP_NODE *node, SCIP_Longint fileindex, SCIP_RATIONAL *newbound)
     
    SCIP_RETCODE SCIPcertificateCreate (SCIP_CERTIFICATE **certificate, SCIP_MESSAGEHDLR *messagehdlr)
     
    void SCIPcertificateFree (SCIP_CERTIFICATE **certificate)
     
    SCIP_RETCODE SCIPcertificateInit (SCIP *scip, SCIP_CERTIFICATE *certificate, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr)
     
    SCIP_RETCODE SCIPcertificateInitTransFile (SCIP *scip)
     
    static void concatenateCertificate (SCIP_CERTIFICATE *certificate)
     
    SCIP_RETCODE SCIPcertificateExit (SCIP *scip)
     
    SCIP_CERTIFICATESCIPgetCertificate (SCIP *scip)
     
    SCIP_Bool SCIPcertificateIsEnabled (SCIP_CERTIFICATE *certificate)
     
    SCIP_Real SCIPcertificateGetFilesize (SCIP_CERTIFICATE *certificate)
     
    SCIP_Longint SCIPcertificateGetCurrentIndex (SCIP_CERTIFICATE *certificate)
     
    SCIP_Bool SCIPcertificateEnsureLastBoundInfoConsistent (SCIP_CERTIFICATE *certificate, SCIP_VAR *var, SCIP_BOUNDTYPE boundtype, SCIP_Real newbound, SCIP_Bool needsglobal)
     
    SCIP_RETCODE SCIPcertificateSetAndPrintObjective (SCIP_CERTIFICATE *certificate, SCIP_Bool isorigfile, BMS_BLKMEM *blkmem, SCIP_RATIONAL **coefs, int nvars)
     
    SCIP_RETCODE SCIPcertificatePrintResult (SCIP *scip, SCIP_Bool isorigfile, SCIP_SET *set, SCIP_CERTIFICATE *certificate)
     
    SCIP_RETCODE SCIPcertificateSaveFinalbound (SCIP *scip, SCIP_CERTIFICATE *certificate)
     
    void SCIPcertificatePrintProblemMessage (SCIP_CERTIFICATE *certificate, SCIP_Bool isorigfile, const char *formatstr,...)
     
    void SCIPcertificatePrintProofMessage (SCIP_CERTIFICATE *certificate, const char *formatstr,...)
     
    SCIP_RETCODE SCIPcertificatePrintProblemRational (SCIP_CERTIFICATE *certificate, SCIP_Bool isorigfile, SCIP_RATIONAL *val)
     
    SCIP_RETCODE SCIPcertificatePrintProofRational (SCIP_CERTIFICATE *certificate, SCIP_RATIONAL *val)
     
    void SCIPcertificatePrintProblemComment (SCIP_CERTIFICATE *certificate, SCIP_Bool isorigfile, const char *formatstr,...)
     
    void SCIPcertificatePrintProofComment (SCIP_CERTIFICATE *certificate, const char *formatstr,...)
     
    void SCIPcertificatePrintVersionHeader (SCIP_CERTIFICATE *certificate, SCIP_Bool isorigfile)
     
    void SCIPcertificatePrintVarHeader (SCIP_CERTIFICATE *certificate, SCIP_Bool isorigfile, int nvars)
     
    void SCIPcertificatePrintIntHeader (SCIP_CERTIFICATE *certificate, SCIP_Bool isorigfile, int nintvars)
     
    void SCIPcertificatePrintConsHeader (SCIP_CERTIFICATE *certificate, SCIP_Bool isorigfile, int nconss, int nboundconss)
     
    void SCIPcertificatePrintDerHeader (SCIP_CERTIFICATE *certificate, SCIP_Bool isorigfile)
     
    SCIP_RETCODE SCIPcertificatePrintCons (SCIP_CERTIFICATE *certificate, SCIP_Bool isorigfile, const char *consname, const char sense, SCIP_RATIONAL *side, int len, int *ind, SCIP_RATIONAL **val)
     
    static SCIP_RETCODE certificatePrintRow (SCIP_SET *set, SCIP_CERTIFICATE *certificate, SCIP_ROWEXACT *rowexact, SCIP_Real alternativerhs)
     
    static SCIP_RETCODE certificatePrintMirSplit (SCIP_SET *set, SCIP_PROB *prob, SCIP_CERTIFICATE *certificate, SCIP_ROW *row)
     
    static SCIP_RETCODE certificatePrintWeakDerStart (SCIP_CERTIFICATE *certificate, SCIP_PROB *prob, SCIP_Bool local)
     
    SCIP_RETCODE SCIPcertificatePrintMirCut (SCIP_SET *set, SCIP_LP *lp, SCIP_CERTIFICATE *certificate, SCIP_PROB *prob, SCIP_ROW *row, const char sense)
     
    SCIP_RETCODE SCIPcertificatePrintBoundCons (SCIP_CERTIFICATE *certificate, SCIP_Bool isorigfile, const char *boundname, SCIP_VAR *var, SCIP_RATIONAL *boundval, SCIP_Bool isupper)
     
    SCIP_RETCODE SCIPcertificateUpdateParentData (SCIP_CERTIFICATE *certificate, SCIP_NODE *node, SCIP_Longint fileindex, SCIP_RATIONAL *newbound)
     
    SCIP_RETCODE SCIPcertificatePrintDualboundExactLP (SCIP_CERTIFICATE *certificate, SCIP_LPEXACT *lpexact, SCIP_SET *set, SCIP_NODE *node, SCIP_PROB *prob, SCIP_Bool usefarkas)
     
    SCIP_RETCODE SCIPcertificatePrintDualboundPseudo (SCIP_CERTIFICATE *certificate, SCIP_LPEXACT *lpexact, SCIP_NODE *node, SCIP_SET *set, SCIP_PROB *prob, SCIP_Bool lowerchanged, int modifiedvarindex, SCIP_Longint boundchangeindex, SCIP_Real psval)
     
    SCIP_RETCODE SCIPcertificatePrintInheritedBound (SCIP_SET *set, SCIP_CERTIFICATE *certificate, SCIP_NODE *node)
     
    SCIP_Longint SCIPcertificateGetRowIndex (SCIP_CERTIFICATE *certificate, SCIP_ROWEXACT *row, SCIP_Bool rhs)
     
    SCIP_RETCODE SCIPcertificateUpdateBranchingData (SCIP_SET *set, SCIP_CERTIFICATE *certificate, SCIP_STAT *stat, SCIP_LP *lp, SCIP_NODE *node, SCIP_VAR *branchvar, SCIP_BOUNDTYPE boundtype, SCIP_Real newbound)
     
    SCIP_RETCODE SCIPcertificateNewNodeData (SCIP_CERTIFICATE *certificate, SCIP_STAT *stat, SCIP_NODE *node)
     
    SCIP_RETCODE SCIPcertificatePrintCutoffBound (SCIP *scip, SCIP_CERTIFICATE *certificate, SCIP_RATIONAL *bound, SCIP_Longint *certificateline)
     
    SCIP_RETCODE SCIPcertificatePrintAggrrow (SCIP_SET *set, SCIP_PROB *prob, SCIP_CERTIFICATE *certificate, SCIP_AGGRROW *aggrrow, SCIP_ROW **aggrrows, SCIP_Real *weights, int naggrrows, SCIP_Bool local, SCIP_Longint *certificateline)
     
    SCIP_RETCODE SCIPcertificateClearAggrinfo (SCIP *scip)
     
    SCIP_RETCODE SCIPcertificateClearMirinfo (SCIP *scip)
     
    SCIP_RETCODE SCIPcertificateFreeAggrInfo (SCIP_SET *set, SCIP_CERTIFICATE *certificate, SCIP_LP *lp, SCIP_AGGREGATIONINFO *aggrinfo, SCIP_ROW *row)
     
    SCIP_RETCODE SCIPcertificateFreeMirInfo (SCIP_SET *set, SCIP_CERTIFICATE *certificate, SCIP_LP *lp, SCIP_MIRINFO *mirinfo, SCIP_ROW *row)
     
    SCIP_RETCODE SCIPcertificateFreeRowInfo (SCIP *scip, SCIP_ROW *row)
     
    SCIP_RETCODE SCIPcertificateNewAggrInfo (SCIP *scip, SCIP_AGGRROW *aggrrow, SCIP_ROW **aggrrows, SCIP_Real *weights, int naggrrows, SCIP_ROW **negslackrows, SCIP_Real *negslackweights, int nnegslackrows)
     
    SCIP_RETCODE SCIPcertificateNewMirInfo (SCIP *scip)
     
    SCIP_RETCODE SCIPcertificatePrintUnsplitting (SCIP_SET *set, SCIP_CERTIFICATE *certificate, SCIP_NODE *node)
     
    SCIP_RETCODE SCIPcertificatePrintRtpRange (SCIP_CERTIFICATE *certificate, SCIP_Bool isorigfile, SCIP_RATIONAL *lowerbound, SCIP_RATIONAL *upperbound)
     
    void SCIPcertificatePrintRtpInfeas (SCIP_CERTIFICATE *certificate, SCIP_Bool isorigfile)
     
    SCIP_RETCODE SCIPcertificateSetLastBoundIndex (SCIP_CERTIFICATE *certificate, SCIP_Longint index)
     
    SCIP_Longint SCIPcertificateGetLastBoundIndex (SCIP_CERTIFICATE *certificate)
     
    SCIP_RETCODE SCIPcertificatePrintCutoffConflictingBounds (SCIP *scip, SCIP_CERTIFICATE *certificate, SCIP_VAR *var, SCIP_RATIONAL *lb, SCIP_RATIONAL *ub, SCIP_Longint lbindex, SCIP_Longint ubindex)
     
    SCIP_RETCODE SCIPcertificatePrintGlobalBound (SCIP *scip, SCIP_CERTIFICATE *certificate, SCIP_VAR *var, SCIP_BOUNDTYPE boundtype, SCIP_RATIONAL *value, SCIP_Longint certificateindex)
     
    SCIP_RETCODE SCIPconsPrintCertificateExactLinear (SCIP *scip, SCIP_CONS *cons)
     
    SCIP_Longint SCIPcertificateGetConsIndex (SCIP_CERTIFICATE *certificate, SCIP_CONS *cons, SCIP_RATIONAL *lhs, SCIP_RATIONAL *rhs, SCIP_Bool useRhs)
     

    Macro Definition Documentation

    ◆ SCIP_HASHSIZE_CERTIFICATE

    #define SCIP_HASHSIZE_CERTIFICATE   500

    size of hash map for certificate -> nodesdata mapping used for certificate output

    Definition at line 77 of file certificate.cpp.

    ◆ SCIP_MB_TO_CHAR_RATE

    #define SCIP_MB_TO_CHAR_RATE   1048576.0

    conversion rate from MB to characters

    Definition at line 78 of file certificate.cpp.

    Function Documentation

    ◆ checkAndUpdateFilesize()

    static SCIP_Bool checkAndUpdateFilesize ( SCIP_CERTIFICATE certificate,
    SCIP_Real  nchars 
    )
    static

    updates file size and returns whether maximum file size has been reached

    Parameters
    certificatecertificate information
    ncharsnumber of characters printed

    Definition at line 82 of file certificate.cpp.

    References FALSE, SCIP_Certificate::filesize, SCIP_Certificate::maxfilesize, SCIP_MB_TO_CHAR_RATE, and TRUE.

    Referenced by SCIPcertificateExit(), SCIPcertificatePrintProblemComment(), SCIPcertificatePrintProblemMessage(), SCIPcertificatePrintProblemRational(), SCIPcertificatePrintProofComment(), SCIPcertificatePrintProofMessage(), and SCIPcertificatePrintProofRational().

    ◆ certificateIsLeftNode()

    static SCIP_Bool certificateIsLeftNode ( SCIP_CERTIFICATE certificate,
    SCIP_NODE node 
    )
    static

    checks whether node is a left node or not

    Parameters
    certificatecertificate information
    nodenode from branch and bound tree

    Definition at line 96 of file certificate.cpp.

    References SCIP_Certnodedata::assumptionindex_left, FALSE, nodedata, SCIP_Certificate::nodedatahash, NULL, SCIP_NODETYPE_PROBINGNODE, SCIPcertificateIsEnabled(), SCIPhashmapExists(), SCIPhashmapGetImage(), SCIPnodeGetParent(), SCIPnodeGetType(), and TRUE.

    Referenced by SCIPcertificateUpdateParentData().

    ◆ printBoundAssumption()

    static SCIP_Longint printBoundAssumption ( SCIP_CERTIFICATE certificate,
    SCIP_VAR var,
    SCIP_RATIONAL boundval,
    SCIP_BOUNDTYPE  boundtype 
    )
    static

    prints variable bound assumption into certificate

    Returns
    index of this bound in the certificate file
    Parameters
    certificatecertificate information
    varvariable to print assumption for
    boundvalvalue of the bound
    boundtypeis it the upper bound?

    Definition at line 131 of file certificate.cpp.

    References SCIP_CertificateBound::boundtype, SCIP_CertificateBound::boundval, SCIP_CertificateBound::certificateindex, FALSE, SCIP_Certificate::indexcounter, SCIP_CertificateBound::isbound, SCIP_CertificateBound::isglobal, SCIP_Certificate::lastinfo, NULL, SCIP_BOUNDTYPE_LOWER, SCIP_CALL, SCIPcertificateIsEnabled(), SCIPcertificatePrintProofMessage(), SCIPcertificatePrintProofRational(), SCIPrationalSetRational(), SCIPvarGetCertificateIndex(), TRUE, and SCIP_CertificateBound::varindex.

    Referenced by SCIPcertificateUpdateBranchingData().

    ◆ certificateFreeNodeData()

    static SCIP_RETCODE certificateFreeNodeData ( SCIP_CERTIFICATE certificate,
    SCIP_NODE node 
    )
    static

    free nodedata of corresponding node

    Parameters
    certificatecertificate information
    nodefocus node

    Definition at line 162 of file certificate.cpp.

    References SCIP_Certificate::blkmem, BMSfreeBlockMemory, nodedata, SCIP_Certificate::nodedatahash, NULL, SCIP_CALL, SCIP_OKAY, SCIPcertificateIsEnabled(), SCIPhashmapExists(), SCIPhashmapGetImage(), SCIPhashmapRemove(), and SCIPrationalFreeBlock().

    Referenced by SCIPcertificatePrintUnsplitting().

    ◆ certificatePrintDualbound()

    static SCIP_RETCODE certificatePrintDualbound ( SCIP_CERTIFICATE certificate,
    const char *  linename,
    SCIP_RATIONAL lowerbound,
    int  len,
    SCIP_Longint ind,
    SCIP_RATIONAL **  val 
    )
    static

    prints dual bound to proof section and increments indexcounter

    Parameters
    certificatecertificate data structure
    linenamename of the unsplitting line
    lowerboundpointer to lower bound on the objective, NULL indicating infeasibility
    lennumber of dual multipiers
    indindex array
    valarray of dual multipliers

    Definition at line 186 of file certificate.cpp.

    References FALSE, SCIP_Certificate::indexcounter, SCIP_CertificateBound::isbound, SCIP_Certificate::lastinfo, NULL, SCIP_Certificate::objintegral, SCIP_CALL, SCIP_OKAY, SCIP_R_ROUND_UPWARDS, SCIPcertificateIsEnabled(), SCIPcertificatePrintProofMessage(), SCIPcertificatePrintProofRational(), SCIPrationalIsAbsInfinity(), SCIPrationalIsInfinity(), SCIPrationalIsIntegral(), SCIPrationalIsNegInfinity(), and SCIPrationalRoundInteger().

    Referenced by SCIPcertificatePrintDualboundExactLP(), SCIPcertificatePrintDualboundPseudo(), SCIPcertificatePrintInheritedBound(), and SCIPcertificatePrintUnsplitting().

    ◆ certificatePrintSol()

    static SCIP_RETCODE certificatePrintSol ( SCIP scip,
    SCIP_Bool  isorigfile,
    SCIP_CERTIFICATE certificate,
    SCIP_SOL sol 
    )
    static

    prints the best solution found

    Parameters
    scipSCIP data structure
    isorigfileshould the original solution be printed or in transformed space
    certificatecertificate information
    solsolution to be printed

    Definition at line 264 of file certificate.cpp.

    References NULL, SCIP_Certificate::origfile, SCIP_CALL, SCIP_OKAY, SCIPbuffer(), SCIPcertificatePrintProblemMessage(), SCIPcertificatePrintProblemRational(), SCIPgetOrigVarsData(), SCIPgetVarsData(), SCIPmakeSolExact(), SCIPrationalCreateBufferArray(), SCIPrationalFreeBufferArray(), SCIPrationalIsZero(), SCIPsolGetValExact(), SCIPsolIsExact(), and SCIPvarGetCertificateIndex().

    Referenced by SCIPcertificatePrintResult().

    ◆ SCIPcertificateUpdateBoundData()

    SCIP_RETCODE SCIPcertificateUpdateBoundData ( SCIP_CERTIFICATE certificate,
    SCIP_NODE node,
    SCIP_Longint  fileindex,
    SCIP_RATIONAL newbound 
    )

    updates the current derived bound of the node with newbound, if newbound is better

    Parameters
    certificatecertificate information
    nodenode data structure
    fileindexindex of new bound's proof
    newboundvalue of new bound

    Definition at line 333 of file certificate.cpp.

    References FALSE, nodedata, SCIP_Certificate::nodedatahash, SCIP_OKAY, SCIPcertificateIsEnabled(), SCIPhashmapExists(), SCIPhashmapGetImage(), SCIPrationalIsLT(), and SCIPrationalSetRational().

    Referenced by SCIPcertificatePrintDualboundExactLP(), and SCIPcertificatePrintDualboundPseudo().

    ◆ SCIPcertificateCreate()

    SCIP_RETCODE SCIPcertificateCreate ( SCIP_CERTIFICATE **  certificate,
    SCIP_MESSAGEHDLR messagehdlr 
    )

    creates certificate data structure

    Parameters
    certificatepointer to store the certificate information
    messagehdlrmessage handler

    Definition at line 360 of file certificate.cpp.

    References BMSallocMemory, FALSE, NULL, SCIP_ALLOC, SCIP_OKAY, and SCIP_REAL_MAX.

    Referenced by SCIPstatCreate().

    ◆ SCIPcertificateFree()

    void SCIPcertificateFree ( SCIP_CERTIFICATE **  certificate)

    frees certificate data structure

    Parameters
    certificatepointer to store the certificate information

    Definition at line 403 of file certificate.cpp.

    References BMSfreeMemory, and NULL.

    Referenced by SCIPstatFree().

    ◆ SCIPcertificateInit()

    SCIP_RETCODE SCIPcertificateInit ( SCIP scip,
    SCIP_CERTIFICATE certificate,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_MESSAGEHDLR messagehdlr 
    )

    initializes certificate information and creates files for certificate output

    Parameters
    scipscip data structure
    certificatecertificate information
    blkmemblock memory
    setglobal SCIP settings
    messagehdlrmessage handler

    Definition at line 418 of file certificate.cpp.

    References SCIP_Certificate::aggrinfo, SCIP_Certificate::aggrinfohash, SCIP_Certificate::aggrinfosize, SCIP_Certificate::blkmem, BMSallocMemoryArray, BMScopyMemoryArray, SCIP_Certificate::derivationfile, SCIP_Certificate::derivationfilename, FALSE, SCIP_Certificate::finalbound, SCIP_Certificate::maxfilesize, SCIP_Certificate::mirinfo, SCIP_Certificate::mirinfohash, SCIP_Certificate::mirinfosize, SCIP_Certificate::nodedatahash, NULL, SCIP_Certificate::origfile, SCIP_Certificate::origfilename, SCIP_Certificate::rootbound, SCIP_Certificate::rowdatahash, SCIP_ALLOC, SCIP_CALL, SCIP_ERROR, SCIP_FILECREATEERROR, SCIP_HASHSIZE_CERTIFICATE, SCIP_OKAY, SCIP_VARTYPE_BINARY, SCIP_VARTYPE_INTEGER, SCIP_VERBLEVEL_NORMAL, SCIPABORT, SCIPallocBlockMemoryArray, SCIPblkmem(), SCIPbuffer(), SCIPcertificatePrintBoundCons(), SCIPcertificatePrintConsHeader(), SCIPcertificatePrintIntHeader(), SCIPcertificatePrintProblemMessage(), SCIPcertificatePrintVarHeader(), SCIPcertificatePrintVersionHeader(), SCIPcertificateSetAndPrintObjective(), SCIPcertifyConsOrigExactLinear(), SCIPconsGetHdlr(), SCIPconshdlrGetName(), SCIPerrorMessage, SCIPfopen(), SCIPgetLhsExactLinear(), SCIPgetNConss(), SCIPgetNOrigConss(), SCIPgetNVars(), SCIPgetOrigConss(), SCIPgetOrigVarsData(), SCIPgetRhsExactLinear(), SCIPgetVarsData(), SCIPhashmapCreate(), SCIPmessagePrintVerbInfo(), SCIPprintSysError(), SCIPrationalCreateBlock(), SCIPrationalCreateBlockArray(), SCIPrationalCreateBufferArray(), SCIPrationalFreeBufferArray(), SCIPrationalIsAbsInfinity(), SCIPrationalIsEQ(), SCIPrationalSetRational(), SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, SCIPvarGetCertificateIndex(), SCIPvarGetLbGlobalExact(), SCIPvarGetName(), SCIPvarGetObjExact(), SCIPvarGetType(), SCIPvarGetUbGlobalExact(), SCIPvarSetCertificateIndex(), SCIP_Certificate::transfile, TRUE, SCIP_Certificate::vals, and SCIP_Certificate::valssize.

    Referenced by initSolve().

    ◆ SCIPcertificateInitTransFile()

    SCIP_RETCODE SCIPcertificateInitTransFile ( SCIP scip)

    initializes certificate information and creates files for certificate output

    Parameters
    scipscip data structure

    Definition at line 617 of file certificate.cpp.

    References SCIP_Certificate::derivationfile, FALSE, SCIP_Certificate::indexcounter, NULL, SCIP_Certificate::origfile, SCIP_Bool, SCIP_CALL, SCIP_ERROR, SCIP_FILECREATEERROR, SCIP_OKAY, SCIP_VARTYPE_BINARY, SCIP_VARTYPE_INTEGER, SCIPABORT, SCIPblkmem(), SCIPbuffer(), SCIPcertificatePrintBoundCons(), SCIPcertificatePrintConsHeader(), SCIPcertificatePrintIntHeader(), SCIPcertificatePrintProblemMessage(), SCIPcertificatePrintVarHeader(), SCIPcertificatePrintVersionHeader(), SCIPcertificateSetAndPrintObjective(), SCIPconsGetHdlr(), SCIPconshdlrGetName(), SCIPconsPrintCertificateExactLinear(), SCIPconstructLP(), SCIPdebug, SCIPdebugMessage, SCIPerrorMessage, SCIPgetCertificate(), SCIPgetConss(), SCIPgetLhsExactLinear(), SCIPgetNConss(), SCIPgetRhsExactLinear(), SCIPgetVarsData(), SCIPisLPConstructed(), SCIPprintCons(), SCIPprintSysError(), SCIPrationalCreateBufferArray(), SCIPrationalFreeBufferArray(), SCIPrationalIsAbsInfinity(), SCIPrationalIsEQ(), SCIPrationalSetRational(), SCIPvarGetCertificateIndex(), SCIPvarGetLbGlobalExact(), SCIPvarGetName(), SCIPvarGetObjExact(), SCIPvarGetType(), SCIPvarGetUbGlobalExact(), SCIPvarSetCertificateIndex(), SCIPvarSetLbCertificateIndexGlobal(), SCIPvarSetUbCertificateIndexGlobal(), SCIP_Certificate::transfile, SCIP_Certificate::transfile_initialized, and TRUE.

    Referenced by SCIPsolveCIP().

    ◆ concatenateCertificate()

    static void concatenateCertificate ( SCIP_CERTIFICATE certificate)
    static

    concatenates the certificate and the _der file and deletes the _der file

    Parameters
    certificatethe certificate pointer

    Definition at line 782 of file certificate.cpp.

    References SCIP_Certificate::derivationfilename, SCIP_MAXSTRLEN, SCIPfclose(), SCIPfopen(), SCIPfread(), SCIPfwrite(), and SCIP_Certificate::transfile.

    Referenced by SCIPcertificateExit().

    ◆ SCIPcertificateExit()

    ◆ SCIPgetCertificate()

    ◆ SCIPcertificateIsEnabled()

    SCIP_Bool SCIPcertificateIsEnabled ( SCIP_CERTIFICATE certificate)

    returns whether the certificate output is activated

    Parameters
    certificatecertificate information

    Definition at line 896 of file certificate.cpp.

    References SCIP_Certificate::derivationfile, FALSE, NULL, SCIP_Certificate::origfile, SCIP_Certificate::transfile, and TRUE.

    Referenced by certificateFreeNodeData(), certificateIsLeftNode(), certificatePrintDualbound(), certificatePrintMirSplit(), certificatePrintRow(), certificatePrintWeakDerStart(), printBoundAssumption(), SCIPcertificateClearAggrinfo(), SCIPcertificateClearMirinfo(), SCIPcertificateEnsureLastBoundInfoConsistent(), SCIPcertificateExit(), SCIPcertificateFreeAggrInfo(), SCIPcertificateFreeMirInfo(), SCIPcertificateGetCurrentIndex(), SCIPcertificateGetFilesize(), SCIPcertificateGetLastBoundIndex(), SCIPcertificateNewAggrInfo(), SCIPcertificateNewMirInfo(), SCIPcertificateNewNodeData(), SCIPcertificatePrintAggrrow(), SCIPcertificatePrintBoundCons(), SCIPcertificatePrintCons(), SCIPcertificatePrintConsHeader(), SCIPcertificatePrintCutoffBound(), SCIPcertificatePrintDerHeader(), SCIPcertificatePrintDualboundExactLP(), SCIPcertificatePrintDualboundPseudo(), SCIPcertificatePrintInheritedBound(), SCIPcertificatePrintIntHeader(), SCIPcertificatePrintMirCut(), SCIPcertificatePrintProblemComment(), SCIPcertificatePrintProblemMessage(), SCIPcertificatePrintProblemRational(), SCIPcertificatePrintProofComment(), SCIPcertificatePrintProofMessage(), SCIPcertificatePrintProofRational(), SCIPcertificatePrintResult(), SCIPcertificatePrintRtpInfeas(), SCIPcertificatePrintRtpRange(), SCIPcertificatePrintUnsplitting(), SCIPcertificatePrintVarHeader(), SCIPcertificatePrintVersionHeader(), SCIPcertificateSaveFinalbound(), SCIPcertificateSetAndPrintObjective(), SCIPcertificateSetLastBoundIndex(), SCIPcertificateUpdateBoundData(), SCIPcertificateUpdateBranchingData(), SCIPcertificateUpdateParentData(), SCIPdomchgAddCurrentCertificateIndex(), SCIPfreeSolve(), and SCIPisCertified().

    ◆ SCIPcertificateGetFilesize()

    SCIP_Real SCIPcertificateGetFilesize ( SCIP_CERTIFICATE certificate)

    returns current certificate file size in MB

    Parameters
    certificatecertificate information

    Definition at line 906 of file certificate.cpp.

    References SCIP_Certificate::filesize, and SCIPcertificateIsEnabled().

    ◆ SCIPcertificateGetCurrentIndex()

    SCIP_Longint SCIPcertificateGetCurrentIndex ( SCIP_CERTIFICATE certificate)

    ◆ SCIPcertificateEnsureLastBoundInfoConsistent()

    SCIP_Bool SCIPcertificateEnsureLastBoundInfoConsistent ( SCIP_CERTIFICATE certificate,
    SCIP_VAR var,
    SCIP_BOUNDTYPE  boundtype,
    SCIP_Real  newbound,
    SCIP_Bool  needsglobal 
    )

    ◆ SCIPcertificateSetAndPrintObjective()

    SCIP_RETCODE SCIPcertificateSetAndPrintObjective ( SCIP_CERTIFICATE certificate,
    SCIP_Bool  isorigfile,
    BMS_BLKMEM blkmem,
    SCIP_RATIONAL **  coefs,
    int  nvars 
    )

    sets the objective function used when printing dual bounds

    Parameters
    certificatecertificate information
    isorigfileshould the line be printed to the origfile or the transfile
    blkmemblock memory
    coefsobjective function coefficients
    nvarsnumber of variables

    Definition at line 964 of file certificate.cpp.

    References BMSallocBlockMemory, SCIP_CertificateBound::boundval, SCIP_Certificate::lastinfo, NULL, SCIP_ALLOC, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIPcertificateIsEnabled(), SCIPcertificatePrintProblemMessage(), SCIPcertificatePrintProblemRational(), SCIPrationalCreateBlock(), SCIPrationalIsZero(), and SCIPsnprintf().

    Referenced by SCIPcertificateInit(), and SCIPcertificateInitTransFile().

    ◆ SCIPcertificatePrintResult()

    SCIP_RETCODE SCIPcertificatePrintResult ( SCIP scip,
    SCIP_Bool  isorigfile,
    SCIP_SET set,
    SCIP_CERTIFICATE certificate 
    )

    ◆ SCIPcertificateSaveFinalbound()

    SCIP_RETCODE SCIPcertificateSaveFinalbound ( SCIP scip,
    SCIP_CERTIFICATE certificate 
    )

    prints the last part of the certificate header (RTP range/sol, ...)

    Parameters
    scipSCIP data structure
    certificatecertificate information

    Definition at line 1131 of file certificate.cpp.

    References SCIP_Certificate::finalbound, NULL, SCIP_OKAY, SCIPcertificateIsEnabled(), and SCIPgetLowerboundExact().

    Referenced by SCIPsolve().

    ◆ SCIPcertificatePrintProblemMessage()

    void SCIPcertificatePrintProblemMessage ( SCIP_CERTIFICATE certificate,
    SCIP_Bool  isorigfile,
    const char *  formatstr,
      ... 
    )

    prints a string to the problem section of the certificate file

    Parameters
    certificatecertificate information
    isorigfileshould the line be printed to the origfile or the transfile
    formatstrformat string like in printf() function
    ...format arguments line in printf() function

    Definition at line 1147 of file certificate.cpp.

    References checkAndUpdateFilesize(), SCIP_Certificate::origfile, SCIP_MAXSTRLEN, SCIPcertificateIsEnabled(), SCIPfprintf(), and SCIP_Certificate::transfile.

    Referenced by certificatePrintSol(), SCIPcertificateInit(), SCIPcertificateInitTransFile(), SCIPcertificatePrintBoundCons(), SCIPcertificatePrintCons(), SCIPcertificatePrintConsHeader(), SCIPcertificatePrintDerHeader(), SCIPcertificatePrintIntHeader(), SCIPcertificatePrintRtpInfeas(), SCIPcertificatePrintRtpRange(), SCIPcertificatePrintVarHeader(), SCIPcertificatePrintVersionHeader(), and SCIPcertificateSetAndPrintObjective().

    ◆ SCIPcertificatePrintProofMessage()

    void SCIPcertificatePrintProofMessage ( SCIP_CERTIFICATE certificate,
    const char *  formatstr,
      ... 
    )

    ◆ SCIPcertificatePrintProblemRational()

    SCIP_RETCODE SCIPcertificatePrintProblemRational ( SCIP_CERTIFICATE certificate,
    SCIP_Bool  isorigfile,
    SCIP_RATIONAL val 
    )

    prints a rational number to the problem section of the certificate file

    Parameters
    certificatecertificate information
    isorigfileshould the line be printed to the origfile or the transfile
    valrational number to print

    Definition at line 1199 of file certificate.cpp.

    References BMSallocMemoryArray, BMSfreeMemoryArray, checkAndUpdateFilesize(), NULL, SCIP_Certificate::origfile, SCIP_ALLOC, SCIP_OKAY, SCIPcertificateIsEnabled(), SCIPfputs(), SCIPrationalStrLen(), SCIPrationalToString(), and SCIP_Certificate::transfile.

    Referenced by certificatePrintSol(), SCIPcertificatePrintBoundCons(), SCIPcertificatePrintCons(), SCIPcertificatePrintRtpRange(), and SCIPcertificateSetAndPrintObjective().

    ◆ SCIPcertificatePrintProofRational()

    ◆ SCIPcertificatePrintProblemComment()

    void SCIPcertificatePrintProblemComment ( SCIP_CERTIFICATE certificate,
    SCIP_Bool  isorigfile,
    const char *  formatstr,
      ... 
    )

    prints a comment to the problem section of the certificate file

    Parameters
    certificatecertificate information
    isorigfileshould the line be printed to the origfile or the transfile
    formatstrformat string like in printf() function
    ...format arguments line in printf() function

    Definition at line 1252 of file certificate.cpp.

    References checkAndUpdateFilesize(), SCIP_Certificate::origfile, SCIP_MAXSTRLEN, SCIPcertificateIsEnabled(), SCIPfprintf(), and SCIP_Certificate::transfile.

    ◆ SCIPcertificatePrintProofComment()

    void SCIPcertificatePrintProofComment ( SCIP_CERTIFICATE certificate,
    const char *  formatstr,
      ... 
    )

    prints a comment to the proof section of the certificate file

    Parameters
    certificatecertificate information
    formatstrformat string like in printf() function
    ...format arguments line in printf() function

    Definition at line 1282 of file certificate.cpp.

    References checkAndUpdateFilesize(), SCIP_Certificate::derivationfile, SCIP_MAXSTRLEN, SCIPcertificateIsEnabled(), and SCIPfprintf().

    ◆ SCIPcertificatePrintVersionHeader()

    void SCIPcertificatePrintVersionHeader ( SCIP_CERTIFICATE certificate,
    SCIP_Bool  isorigfile 
    )

    prints version header

    Parameters
    certificatecertificate information
    isorigfileshould the line be printed to the origfile or the transfile

    Definition at line 1307 of file certificate.cpp.

    References NULL, SCIPcertificateIsEnabled(), and SCIPcertificatePrintProblemMessage().

    Referenced by SCIPcertificateInit(), and SCIPcertificateInitTransFile().

    ◆ SCIPcertificatePrintVarHeader()

    void SCIPcertificatePrintVarHeader ( SCIP_CERTIFICATE certificate,
    SCIP_Bool  isorigfile,
    int  nvars 
    )

    prints variable section header

    Parameters
    certificatecertificate information
    isorigfileshould the line be printed to the origfile or the transfile
    nvarsnumber of variables

    Definition at line 1322 of file certificate.cpp.

    References NULL, SCIPcertificateIsEnabled(), and SCIPcertificatePrintProblemMessage().

    Referenced by SCIPcertificateInit(), and SCIPcertificateInitTransFile().

    ◆ SCIPcertificatePrintIntHeader()

    void SCIPcertificatePrintIntHeader ( SCIP_CERTIFICATE certificate,
    SCIP_Bool  isorigfile,
    int  nintvars 
    )

    prints integer section header

    Parameters
    certificatecertificate information
    isorigfileshould the line be printed to the origfile or the transfile
    nintvarsnumber of integer variables

    Definition at line 1340 of file certificate.cpp.

    References NULL, SCIPcertificateIsEnabled(), and SCIPcertificatePrintProblemMessage().

    Referenced by SCIPcertificateInit(), and SCIPcertificateInitTransFile().

    ◆ SCIPcertificatePrintConsHeader()

    void SCIPcertificatePrintConsHeader ( SCIP_CERTIFICATE certificate,
    SCIP_Bool  isorigfile,
    int  nconss,
    int  nboundconss 
    )

    prints constraint section header

    Parameters
    certificatecertificate information
    isorigfileshould the line be printed to the origfile or the transfile
    nconssnumber of all constraints
    nboundconssnumber of bound constraints

    Definition at line 1358 of file certificate.cpp.

    References NULL, SCIPcertificateIsEnabled(), and SCIPcertificatePrintProblemMessage().

    Referenced by SCIPcertificateInit(), and SCIPcertificateInitTransFile().

    ◆ SCIPcertificatePrintDerHeader()

    void SCIPcertificatePrintDerHeader ( SCIP_CERTIFICATE certificate,
    SCIP_Bool  isorigfile 
    )

    prints derivation section header

    Parameters
    certificatecertificate information
    isorigfileshould the line be printed to the origfile or the transfile

    Definition at line 1377 of file certificate.cpp.

    References SCIP_Certificate::conscounter, SCIP_Certificate::indexcounter, NULL, SCIP_Longint, SCIPcertificateIsEnabled(), and SCIPcertificatePrintProblemMessage().

    Referenced by SCIPcertificatePrintResult().

    ◆ SCIPcertificatePrintCons()

    SCIP_RETCODE SCIPcertificatePrintCons ( SCIP_CERTIFICATE certificate,
    SCIP_Bool  isorigfile,
    const char *  consname,
    const char  sense,
    SCIP_RATIONAL side,
    int  len,
    int *  ind,
    SCIP_RATIONAL **  val 
    )

    prints constraint

    Parameters
    certificatecertificate information
    isorigfileshould the line be printed to the origfile or the transfile
    consnamename of the constraint
    sensesense of the constraint, i.e., G, L, or E
    sideleft/right-hand side
    lennumber of nonzeros
    indindex array
    valcoefficient array

    Definition at line 1399 of file certificate.cpp.

    References SCIP_Certificate::conscounter, FALSE, SCIP_Certificate::indexcounter, SCIP_Certificate::indexcounter_ori, SCIP_CertificateBound::isbound, SCIP_Certificate::lastinfo, NULL, SCIP_CALL, SCIP_Longint, SCIP_OKAY, SCIPcertificateIsEnabled(), SCIPcertificatePrintProblemMessage(), and SCIPcertificatePrintProblemRational().

    Referenced by SCIPcertifyCons(), and SCIPconsPrintCertificateExactLinear().

    ◆ certificatePrintRow()

    static SCIP_RETCODE certificatePrintRow ( SCIP_SET set,
    SCIP_CERTIFICATE certificate,
    SCIP_ROWEXACT rowexact,
    SCIP_Real  alternativerhs 
    )
    static

    prints a line for an exact row to the certificate (without derivation)

    Parameters
    alternativerhsis used instead of the real rhs of the row (infinity if real rhs should be used). This is necessary for integer cut where the rhs was rounded down from the original rhs
    Parameters
    setglobal SCIP settings
    certificatecertificate structure
    rowexactexact SCIP row
    alternativerhsrhs to be used instead or rowexact->rhs (infinity to disable this)

    Definition at line 1458 of file certificate.cpp.

    References SCIP_Row::cols, SCIP_RowExact::cols, FALSE, SCIP_ColExact::fpcol, SCIP_RowExact::fprow, SCIP_Var::index, SCIP_Certificate::indexcounter, SCIP_CertificateBound::isbound, SCIP_Certificate::lastinfo, SCIP_Row::name, NULL, SCIP_CALL, SCIP_OKAY, SCIPcertificateIsEnabled(), SCIPcertificatePrintProofMessage(), SCIPcertificatePrintProofRational(), SCIPcolExactGetVar(), SCIPrationalCreateBuffer(), SCIPrationalFreeBuffer(), SCIPrationalSetReal(), SCIProwExactGetCols(), SCIProwExactGetNNonz(), SCIProwExactGetRhs(), SCIProwExactGetRow(), SCIProwExactGetVals(), SCIProwGetNNonz(), SCIPsetIsInfinity(), SCIPvarGetCertificateIndex(), and SCIP_Col::var.

    Referenced by SCIPcertificatePrintMirCut().

    ◆ certificatePrintMirSplit()

    ◆ certificatePrintWeakDerStart()

    ◆ SCIPcertificatePrintMirCut()

    SCIP_RETCODE SCIPcertificatePrintMirCut ( SCIP_SET set,
    SCIP_LP lp,
    SCIP_CERTIFICATE certificate,
    SCIP_PROB prob,
    SCIP_ROW row,
    const char  sense 
    )

    prints verification of row as a MIR cut (viewed as a split cut)

    Parameters
    setSCIP settings
    lpSCIP lp data structure
    certificatecertificate information
    probSCIP problem data
    rowthe row to be printed
    sensesense of the constraint, i.e., G, L, or E

    Definition at line 1778 of file certificate.cpp.

    References SCIP_Certificate::aggrinfohash, SCIP_AggregationInfo::aggrrows, certificatePrintMirSplit(), certificatePrintRow(), certificatePrintWeakDerStart(), SCIP_MirInfo::frac, SCIP_Certificate::indexcounter, SCIP_Certificate::mirinfohash, SCIP_AggregationInfo::naggrrows, SCIP_Row::name, SCIP_AggregationInfo::negslackrows, SCIP_AggregationInfo::negslackweights, SCIP_AggregationInfo::nnegslackrows, SCIP_MirInfo::nrounddownslacks, SCIP_MirInfo::nslacks, NULL, SCIP_Certificate::rowdatahash, SCIP_MirInfo::scale, SCIP_CALL, SCIP_Longint, SCIP_OKAY, SCIP_R_ROUND_UPWARDS, SCIPcertificateFreeAggrInfo(), SCIPcertificateFreeMirInfo(), SCIPcertificateGetRowIndex(), SCIPcertificateIsEnabled(), SCIPcertificatePrintMirCut(), SCIPcertificatePrintProofMessage(), SCIPcertificatePrintProofRational(), SCIPdebug, SCIPdebugMessage, SCIPhashmapExists(), SCIPhashmapGetImage(), SCIPhashmapInsertLong(), SCIPlpGetNRows(), SCIPlpGetRows(), SCIPrationalAddReal(), SCIPrationalCreateBuffer(), SCIPrationalDebugMessage, SCIPrationalDiff(), SCIPrationalDiffReal(), SCIPrationalDiv(), SCIPrationalDivReal(), SCIPrationalFreeBuffer(), SCIPrationalGetReal(), SCIPrationalIsPositive(), SCIPrationalMultReal(), SCIPrationalNegate(), SCIPrationalRoundLong(), SCIPrationalSetRational(), SCIPrationalSetReal(), SCIProwExactPrint(), SCIProwGetRowExact(), SCIProwIsLocal(), SCIPsetInfinity(), SCIPsetIsInfinity(), SCIP_MirInfo::slackcoefficients, SCIP_MirInfo::slackroundeddown, SCIP_MirInfo::slackrows, SCIP_MirInfo::slackscale, SCIP_MirInfo::slacksign, SCIP_MirInfo::slackusedcoef, SCIP_MirInfo::slackweight, SCIP_AggregationInfo::substfactor, SCIP_MirInfo::unroundedrhs, and SCIP_AggregationInfo::weights.

    Referenced by SCIPcertificatePrintDualboundExactLP(), SCIPcertificatePrintMirCut(), SCIPcertifyMirCut(), SCIPgetDualProof(), and SCIPgetFarkasProof().

    ◆ SCIPcertificatePrintBoundCons()

    SCIP_RETCODE SCIPcertificatePrintBoundCons ( SCIP_CERTIFICATE certificate,
    SCIP_Bool  isorigfile,
    const char *  boundname,
    SCIP_VAR var,
    SCIP_RATIONAL boundval,
    SCIP_Bool  isupper 
    )

    prints a variable bound to the problem section of the certificate file and returns line index

    Parameters
    certificatecertificate information
    isorigfileshould the line be printed to the origfile or the transfile
    boundnamename of the bound constraint
    varvariable to print the bound cons for
    boundvalvalue of the bound
    isupperis it the upper bound?

    Definition at line 2096 of file certificate.cpp.

    References SCIP_CertificateBound::boundtype, SCIP_CertificateBound::boundval, SCIP_CertificateBound::certificateindex, SCIP_Certificate::conscounter, SCIP_Certificate::indexcounter, SCIP_Certificate::indexcounter_ori, SCIP_CertificateBound::isbound, SCIP_CertificateBound::isglobal, SCIP_Certificate::lastinfo, NULL, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_OKAY, SCIPcertificateIsEnabled(), SCIPcertificatePrintProblemMessage(), SCIPcertificatePrintProblemRational(), SCIPrationalSetRational(), SCIPvarGetCertificateIndex(), SCIPvarSetLbCertificateIndexGlobal(), SCIPvarSetUbCertificateIndexGlobal(), TRUE, and SCIP_CertificateBound::varindex.

    Referenced by SCIPcertificateInit(), and SCIPcertificateInitTransFile().

    ◆ SCIPcertificateUpdateParentData()

    ◆ SCIPcertificatePrintDualboundExactLP()

    SCIP_RETCODE SCIPcertificatePrintDualboundExactLP ( SCIP_CERTIFICATE certificate,
    SCIP_LPEXACT lpexact,
    SCIP_SET set,
    SCIP_NODE node,
    SCIP_PROB prob,
    SCIP_Bool  usefarkas 
    )

    prints a dual bound from an exact lp solution

    Parameters
    certificatescip certificate struct
    lpexactthe exact lp
    setscip settings
    nodethe current node
    probproblem data
    usefarkasshould an infeasibility proof be printed?

    Definition at line 2224 of file certificate.cpp.

    References SCIP_Certificate::blkmem, certificatePrintDualbound(), SCIP_LpExact::cols, SCIP_RowExact::dualfarkas, SCIP_RowExact::dualsol, SCIP_ColExact::farkascoef, SCIP_LpExact::fplp, SCIP_ColExact::index, SCIP_Certificate::indexcounter, SCIP_LpExact::lpiexact, SCIP_LpExact::lpobjval, SCIP_Var::name, SCIP_LpExact::ncols, SCIP_LpExact::nrows, NULL, SCIP_Certificate::objintegral, SCIP_ColExact::redcost, SCIP_Certificate::rowdatahash, SCIP_LpExact::rows, SCIP_CALL, SCIP_Longint, SCIP_LONGINT_MAX, SCIP_OKAY, SCIP_ROWORIGINTYPE_SEPA, SCIPcertificateIsEnabled(), SCIPcertificatePrintMirCut(), SCIPcertificateUpdateBoundData(), SCIPcertificateUpdateParentData(), SCIPcolExactGetVar(), SCIPdebug, SCIPdebugMessage, SCIPhashmapGetImageLong(), SCIPlpExactGetObjval(), SCIPlpiExactGetObjval(), SCIPnodeGetLowerboundExact(), SCIPnodeGetParent(), SCIPprobIsObjIntegral(), SCIPrationalAddProd(), SCIPrationalCreateBuffer(), SCIPrationalDebugMessage, SCIPrationalDiffProd(), SCIPrationalFreeBuffer(), SCIPrationalIsAbsInfinity(), SCIPrationalIsEQ(), SCIPrationalIsInfinity(), SCIPrationalIsLT(), SCIPrationalIsNegative(), SCIPrationalIsPositive(), SCIPrationalIsZero(), SCIPrationalNegate(), SCIPrationalReallocBlockArray(), SCIPrationalSetInfinity(), SCIPrationalSetRational(), SCIProwExactGetCols(), SCIProwExactGetNNonz(), SCIProwExactGetRow(), SCIProwExactPrint(), SCIProwGetOrigintype(), SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, SCIPvarGetLbCertificateIndexLocal(), SCIPvarGetLbLocalExact(), SCIPvarGetUbCertificateIndexLocal(), SCIPvarGetUbLocalExact(), SCIP_Certificate::transfile, SCIP_Certificate::vals, SCIP_Certificate::valssize, and SCIP_ColExact::var.

    Referenced by priceAndCutLoop(), SCIPnodeUpdateLowerboundLP(), and solveNode().

    ◆ SCIPcertificatePrintDualboundPseudo()

    SCIP_RETCODE SCIPcertificatePrintDualboundPseudo ( SCIP_CERTIFICATE certificate,
    SCIP_LPEXACT lpexact,
    SCIP_NODE node,
    SCIP_SET set,
    SCIP_PROB prob,
    SCIP_Bool  lowerchanged,
    int  modifiedvarindex,
    SCIP_Longint  boundchangeindex,
    SCIP_Real  psval 
    )

    prints a dual bound from the pseudo solution

    in case of a bound change (branching), this happens before the bound change is processed; therefore we add the option to give on varindex, boundchgindex pair to pass directly to the method

    Parameters
    certificatescip certificate struct
    lpexactthe exact lp
    nodecurrent node
    setscip settings
    probproblem data
    lowerchangeddo the modified indices address a change in lb or ub?
    modifiedvarindexindex of modified variable, or -1
    boundchangeindexindex of unprocessed bound change in the certificate, or -1
    psvalthe pseudo obj value (or inf to use exact lp value)

    Definition at line 2392 of file certificate.cpp.

    References certificatePrintDualbound(), SCIP_Certificate::indexcounter, NULL, SCIP_Certificate::objintegral, SCIP_CALL, SCIP_Longint, SCIP_OKAY, SCIPcertificateIsEnabled(), SCIPcertificateUpdateBoundData(), SCIPcertificateUpdateParentData(), SCIPlpExactGetPseudoObjval(), SCIPnodeGetLowerbound(), SCIPnodeGetParent(), SCIPprobGetNObjVars(), SCIPprobGetNVars(), SCIPprobGetVars(), SCIPprobIsObjIntegral(), SCIPrationalCreateBuffer(), SCIPrationalCreateBufferArray(), SCIPrationalFreeBuffer(), SCIPrationalFreeBufferArray(), SCIPrationalIsAbsInfinity(), SCIPrationalIsPositive(), SCIPrationalIsZero(), SCIPrationalSetRational(), SCIPrationalSetReal(), SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, SCIPsetIsInfinity(), SCIPvarGetCertificateIndex(), SCIPvarGetLbCertificateIndexLocal(), SCIPvarGetObjExact(), and SCIPvarGetUbCertificateIndexLocal().

    Referenced by applyBounding(), propAndSolve(), SCIPnodeAddBoundinfer(), SCIPnodeAddBoundinferExact(), and solveNode().

    ◆ SCIPcertificatePrintInheritedBound()

    SCIP_RETCODE SCIPcertificatePrintInheritedBound ( SCIP_SET set,
    SCIP_CERTIFICATE certificate,
    SCIP_NODE node 
    )

    ◆ SCIPcertificateGetRowIndex()

    SCIP_Longint SCIPcertificateGetRowIndex ( SCIP_CERTIFICATE certificate,
    SCIP_ROWEXACT row,
    SCIP_Bool  rhs 
    )

    returns the index for a row in the certificate

    Parameters
    certificatecertificate data structure
    rowrow to consider
    rhswhether we want the index for the rhs or the lhs

    Definition at line 2541 of file certificate.cpp.

    References SCIP_RowExact::lhs, SCIP_RowExact::rhs, SCIP_Certificate::rowdatahash, SCIP_Longint, SCIP_LONGINT_MAX, SCIPhashmapGetImageLong(), SCIPrationalIsAbsInfinity(), and SCIPrationalIsEQ().

    Referenced by SCIPcertificatePrintAggrrow(), SCIPcertificatePrintMirCut(), SCIPcertifyActivityConflict(), SCIPcertifyActivityVarBoundExact(), and SCIPgetFarkasProof().

    ◆ SCIPcertificateUpdateBranchingData()

    SCIP_RETCODE SCIPcertificateUpdateBranchingData ( SCIP_SET set,
    SCIP_CERTIFICATE certificate,
    SCIP_STAT stat,
    SCIP_LP lp,
    SCIP_NODE node,
    SCIP_VAR branchvar,
    SCIP_BOUNDTYPE  boundtype,
    SCIP_Real  newbound 
    )

    updates the parent certificate node data when branching

    Parameters
    setgeneral SCIP settings
    certificatecertificate information
    statdynamic problem statistics
    lpLP informations
    nodenode data
    branchvarthe variable that gets branched on
    boundtypethe bounding type
    newboundthe new bound

    Definition at line 2557 of file certificate.cpp.

    References SCIP_Certnodedata::assumptionindex_left, SCIP_Certnodedata::assumptionindex_right, SCIP_Lp::diving, nodedata, SCIP_Certificate::nodedatahash, NULL, printBoundAssumption(), SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_NODETYPE_PROBINGNODE, SCIP_OKAY, SCIPcertificateIsEnabled(), SCIPhashmapGetImage(), SCIPnodeGetParent(), SCIPnodeGetType(), SCIPrationalCreateBuffer(), SCIPrationalFreeBuffer(), SCIPrationalIsIntegral(), SCIPrationalSetReal(), and SCIP_Certificate::transfile.

    Referenced by SCIPtreeBranchVar(), and SCIPtreeBranchVarExact().

    ◆ SCIPcertificateNewNodeData()

    SCIP_RETCODE SCIPcertificateNewNodeData ( SCIP_CERTIFICATE certificate,
    SCIP_STAT stat,
    SCIP_NODE node 
    )

    ◆ SCIPcertificatePrintCutoffBound()

    SCIP_RETCODE SCIPcertificatePrintCutoffBound ( SCIP scip,
    SCIP_CERTIFICATE certificate,
    SCIP_RATIONAL bound,
    SCIP_Longint certificateline 
    )

    prints cutoff bound for objective value

    Parameters
    scipSCIP data structure
    certificateSCIP certificate
    boundthe bound
    certificatelinesave the line index

    Definition at line 2669 of file certificate.cpp.

    References bound, SCIP_Certificate::indexcounter, SCIP_CALL, SCIP_OKAY, SCIP_R_ROUND_DOWNWARDS, SCIPbuffer(), SCIPcertificateIsEnabled(), SCIPcertificatePrintProofMessage(), SCIPcertificatePrintProofRational(), SCIPisObjIntegral(), SCIPrationalCreateBuffer(), SCIPrationalFreeBuffer(), SCIPrationalIsIntegral(), SCIPrationalRoundInteger(), and SCIPrationalSetRational().

    Referenced by SCIPgetDualProof().

    ◆ SCIPcertificatePrintAggrrow()

    SCIP_RETCODE SCIPcertificatePrintAggrrow ( SCIP_SET set,
    SCIP_PROB prob,
    SCIP_CERTIFICATE certificate,
    SCIP_AGGRROW aggrrow,
    SCIP_ROW **  aggrrows,
    SCIP_Real weights,
    int  naggrrows,
    SCIP_Bool  local,
    SCIP_Longint certificateline 
    )

    create a new node data structure for the current node

    Parameters
    setgeneral SCIP settings
    probSCIP problem data
    certificateSCIP certificate
    aggrrowagrrrow that results from the aggregation
    aggrrowsarray of rows used fo the aggregation
    weightsarray of weights
    naggrrowslength of the arrays
    localtrue if local bound information can be used
    certificatelinepointer to store the certificate line index or NULL

    Definition at line 2700 of file certificate.cpp.

    References certificatePrintWeakDerStart(), FALSE, SCIP_Certificate::indexcounter, SCIP_CertificateBound::isbound, SCIP_Certificate::lastinfo, NULL, SCIP_Certificate::rowdatahash, SCIP_CALL, SCIP_Longint, SCIP_OKAY, SCIPaggrRowGetInds(), SCIPaggrRowGetNNz(), SCIPaggrRowGetRhs(), SCIPaggrRowGetValueSafely(), SCIPaggrRowPrint(), SCIPcertificateGetRowIndex(), SCIPcertificateIsEnabled(), SCIPcertificatePrintProofMessage(), SCIPcertificatePrintProofRational(), SCIPdebug, SCIPdebugMessage, SCIPhashmapExists(), SCIPprobGetVars(), SCIPrationalCreateBuffer(), SCIPrationalFreeBuffer(), SCIPrationalIsPositive(), SCIPrationalSetReal(), SCIProwExactPrint(), SCIProwGetRowExact(), and SCIPvarGetCertificateIndex().

    Referenced by SCIPgetDualProof(), and SCIPgetFarkasProof().

    ◆ SCIPcertificateClearAggrinfo()

    ◆ SCIPcertificateClearMirinfo()

    ◆ SCIPcertificateFreeAggrInfo()

    ◆ SCIPcertificateFreeMirInfo()

    ◆ SCIPcertificateFreeRowInfo()

    SCIP_RETCODE SCIPcertificateFreeRowInfo ( SCIP scip,
    SCIP_ROW row 
    )

    ◆ SCIPcertificateNewAggrInfo()

    SCIP_RETCODE SCIPcertificateNewAggrInfo ( SCIP scip,
    SCIP_AGGRROW aggrrow,
    SCIP_ROW **  aggrrows,
    SCIP_Real weights,
    int  naggrrows,
    SCIP_ROW **  negslackrows,
    SCIP_Real negslackweights,
    int  nnegslackrows 
    )

    create a new node data structure for the current node

    Parameters
    scipSCIP data structure
    aggrrowagrrrow that results from the aggregation
    aggrrowsarray of rows used fo the aggregation
    weightsarray of weights
    naggrrowslength of the arrays
    negslackrowsarray of rows that are added implicitly with negative slack
    negslackweightsarray of negative slack weights
    nnegslackrowslength of the negative slack array

    Definition at line 3004 of file certificate.cpp.

    References SCIP_Certificate::aggrinfo, SCIP_Certificate::aggrinfosize, SCIP_AggregationInfo::aggrrow, SCIP_AggregationInfo::aggrrows, SCIP_AggregationInfo::arpos, SCIP_AggregationInfo::fileindex, SCIP_Certificate::indexcounter, SCIP_Certificate::naggrinfos, SCIP_AggregationInfo::naggrrows, SCIP_AggregationInfo::negslackrows, SCIP_AggregationInfo::negslackweights, SCIP_AggregationInfo::nnegslackrows, NULL, SCIP_CALL, SCIP_OKAY, SCIPaggrRowCopy(), SCIPallocBlockMemory, SCIPallocBlockMemoryArray, SCIPcertificateIsEnabled(), SCIPdebugMessage, SCIPgetCertificate(), SCIPreallocBlockMemoryArray, SCIProwCapture(), SCIProwGetName(), SCIP_AggregationInfo::substfactor, TRUE, SCIP_AggregationInfo::weights, and SCIP_Certificate::workingaggrinfo.

    Referenced by SCIPaddCertificateAggrInfo().

    ◆ SCIPcertificateNewMirInfo()

    ◆ SCIPcertificatePrintUnsplitting()

    ◆ SCIPcertificatePrintRtpRange()

    SCIP_RETCODE SCIPcertificatePrintRtpRange ( SCIP_CERTIFICATE certificate,
    SCIP_Bool  isorigfile,
    SCIP_RATIONAL lowerbound,
    SCIP_RATIONAL upperbound 
    )

    prints RTP section with lowerbound and upperbound range

    Parameters
    certificatecertificate data structure
    isorigfileshould the original solution be printed or in transformed space
    lowerboundpointer to lower bound on the objective
    upperboundpointer to upper bound on the objective

    Definition at line 3234 of file certificate.cpp.

    References SCIP_CALL, SCIP_OKAY, SCIPcertificateIsEnabled(), SCIPcertificatePrintProblemMessage(), SCIPcertificatePrintProblemRational(), SCIPrationalIsInfinity(), and SCIPrationalIsNegInfinity().

    Referenced by SCIPcertificatePrintResult().

    ◆ SCIPcertificatePrintRtpInfeas()

    void SCIPcertificatePrintRtpInfeas ( SCIP_CERTIFICATE certificate,
    SCIP_Bool  isorigfile 
    )

    prints RTP section for infeasibility

    Parameters
    certificatecertificate data structure
    isorigfileshould the original solution be printed or in transformed space

    Definition at line 3270 of file certificate.cpp.

    References SCIPcertificateIsEnabled(), and SCIPcertificatePrintProblemMessage().

    Referenced by SCIPcertificatePrintResult().

    ◆ SCIPcertificateSetLastBoundIndex()

    SCIP_RETCODE SCIPcertificateSetLastBoundIndex ( SCIP_CERTIFICATE certificate,
    SCIP_Longint  index 
    )

    sets the last bound index for the certificate

    Parameters
    certificatecertificate data structure
    indexindex of new bound

    Definition at line 3283 of file certificate.cpp.

    References SCIP_Certificate::lastboundindex, SCIP_OKAY, and SCIPcertificateIsEnabled().

    Referenced by boundchgApplyExact(), SCIPboundchgApply(), SCIPboundchgUndo(), and SCIPcertifyActivityVarBoundExact().

    ◆ SCIPcertificateGetLastBoundIndex()

    SCIP_Longint SCIPcertificateGetLastBoundIndex ( SCIP_CERTIFICATE certificate)

    returns the last bound index for the certificate

    Parameters
    certificatecertificate data structure

    Definition at line 3297 of file certificate.cpp.

    References SCIP_Certificate::lastboundindex, and SCIPcertificateIsEnabled().

    Referenced by SCIPvarChgLbLocal(), SCIPvarChgLbLocalExact(), SCIPvarChgUbLocal(), SCIPvarChgUbLocalExact(), varProcessChgLbLocal(), and varProcessChgUbLocal().

    ◆ SCIPcertificatePrintCutoffConflictingBounds()

    SCIP_RETCODE SCIPcertificatePrintCutoffConflictingBounds ( SCIP scip,
    SCIP_CERTIFICATE certificate,
    SCIP_VAR var,
    SCIP_RATIONAL lb,
    SCIP_RATIONAL ub,
    SCIP_Longint  lbindex,
    SCIP_Longint  ubindex 
    )

    ◆ SCIPcertificatePrintGlobalBound()

    SCIP_RETCODE SCIPcertificatePrintGlobalBound ( SCIP scip,
    SCIP_CERTIFICATE certificate,
    SCIP_VAR var,
    SCIP_BOUNDTYPE  boundtype,
    SCIP_RATIONAL value,
    SCIP_Longint  certificateindex 
    )

    ◆ SCIPconsPrintCertificateExactLinear()

    ◆ SCIPcertificateGetConsIndex()

    SCIP_Longint SCIPcertificateGetConsIndex ( SCIP_CERTIFICATE certificate,
    SCIP_CONS cons,
    SCIP_RATIONAL lhs,
    SCIP_RATIONAL rhs,
    SCIP_Bool  useRhs 
    )

    returns the index of the given constraint in the certificate

    Parameters
    certificatecertificate data structure
    consconstraint
    lhslhs of the constraint
    rhsrhs of the constraint
    useRhswhether to return the index of the rhs or lhs

    Definition at line 3550 of file certificate.cpp.

    References SCIP_Certificate::rowdatahash, SCIP_Longint, SCIP_LONGINT_MAX, SCIPhashmapGetImageLong(), SCIPrationalIsAbsInfinity(), and SCIPrationalIsEQ().

    Referenced by SCIPcertifyActivityConflict(), and SCIPcertifyActivityVarBoundExact().