Scippy

    SCIP

    Solving Constraint Integer Programs

    Detailed Description

    exact LP interface for SoPlex

    Author
    Leon Eifler

    This is an implementation of SCIP's LP interface for SoPlex.

    For debugging purposes, the SoPlex results can be double checked with CPLEX if WITH_LPSCHECK is defined. This may yield false positives, since the LP is dumped to a file for transferring it to CPLEX, hence, precision may be lost.

    Definition in file lpiexact_spx.cpp.

    #include "scip/def.h"
    #include "blockmemshell/memory.h"
    #include "scip/type_retcode.h"
    #include "lpiexact/type_lpiexact.h"
    #include "lpiexact/lpiexact.h"
    #include "scip/rational.h"
    #include "scip/rationalgmp.h"
    #include "soplex.h"
    #include "spxgithash.h"
    #include "scip/pub_message.h"
    #include "scip/struct_rational.h"
    #include <cassert>
    #include "scip/bitencode.h"

    Go to the source code of this file.

    Data Structures

    class  SPxexSCIP
     
    struct  SCIP_LPiExact
     
    struct  SCIP_LPiState
     

    Macros

    #define CHECK_SOPLEX_PARAM(x)
     
    #define SOPLEX_SUBVERSION   0
     
    #define SOPLEX_APIVERSION   0
     
    #define SOPLEX_VERBLEVEL   5
     
    #define NULL   0
     
    #define SOPLEX_TRY(messagehdlr, x)
     
    #define SOPLEX_TRY_ABORT(x)
     
    #define COLS_PER_PACKET   SCIP_DUALPACKETSIZE
     
    #define ROWS_PER_PACKET   SCIP_DUALPACKETSIZE
     

    Typedefs

    typedef SCIP_DUALPACKET COLPACKET
     
    typedef SCIP_DUALPACKET ROWPACKET
     

    Functions

    static void RsetSpxR (SCIP_LPIEXACT *lpi, SCIP_RATIONAL *r, const soplex::Rational &spxr)
     
    static void RsetSpxVector (SCIP_LPIEXACT *lpi, SCIP_RATIONAL **r, VectorRational src)
     
    static void SpxRSetRat (SCIP_LPIEXACT *lpi, soplex::Rational &spxr, SCIP_RATIONAL *src)
     
    static SCIP_RETCODE ensureCstatMem (SCIP_LPIEXACT *lpi, int num)
     
    static SCIP_RETCODE ensureRstatMem (SCIP_LPIEXACT *lpi, int num)
     
    static int colpacketNum (int ncols)
     
    static int rowpacketNum (int nrows)
     
    static void lpistatePack (SCIP_LPISTATE *lpistate, const int *cstat, const int *rstat)
     
    static void lpistateUnpack (const SCIP_LPISTATE *lpistate, int *cstat, int *rstat)
     
    static SCIP_RETCODE lpistateCreate (SCIP_LPISTATE **lpistate, BMS_BLKMEM *blkmem, int ncols, int nrows)
     
    static void lpistateFree (SCIP_LPISTATE **lpistate, BMS_BLKMEM *blkmem)
     
    static void invalidateSolution (SCIP_LPIEXACT *lpi)
     
    Miscellaneous Methods
    const char * SCIPlpiExactGetSolverName (void)
     
    const char * SCIPlpiExactGetSolverDesc (void)
     
    void * SCIPlpiExactGetSolverPointer (SCIP_LPIEXACT *lpi)
     
    SCIP_RETCODE SCIPlpiExactSetIntegralityInformation (SCIP_LPIEXACT *lpi, int ncols, int *intInfo)
     
    SCIP_Bool SCIPlpiExactHasPrimalSolve (void)
     
    SCIP_Bool SCIPlpiExactHasDualSolve (void)
     
    SCIP_Bool SCIPlpiExactHasBarrierSolve (void)
     
    LPI Creation and Destruction Methods
    SCIP_RETCODE SCIPlpiExactCreate (SCIP_LPIEXACT **lpi, SCIP_MESSAGEHDLR *messagehdlr, const char *name, SCIP_OBJSEN objsen)
     
    SCIP_RETCODE SCIPlpiExactFree (SCIP_LPIEXACT **lpi)
     
    Modification Methods
    SCIP_RETCODE SCIPlpiExactLoadColLP (SCIP_LPIEXACT *lpi, SCIP_OBJSEN objsen, int ncols, SCIP_RATIONAL **obj, SCIP_RATIONAL **lb, SCIP_RATIONAL **ub, char **colnames, int nrows, SCIP_RATIONAL **lhs, SCIP_RATIONAL **rhs, char **, int nnonz, int *beg, int *ind, SCIP_RATIONAL **val)
     
    SCIP_RETCODE SCIPlpiExactAddCols (SCIP_LPIEXACT *lpi, int ncols, SCIP_RATIONAL **obj, SCIP_RATIONAL **lb, SCIP_RATIONAL **ub, char **colnames, int nnonz, int *beg, int *ind, SCIP_RATIONAL **val)
     
    SCIP_RETCODE SCIPlpiExactDelCols (SCIP_LPIEXACT *lpi, int firstcol, int lastcol)
     
    SCIP_RETCODE SCIPlpiDelColset (SCIP_LPIEXACT *lpi, int *dstat)
     
    SCIP_RETCODE SCIPlpiExactAddRows (SCIP_LPIEXACT *lpi, int nrows, SCIP_RATIONAL **lhs, SCIP_RATIONAL **rhs, char **rownames, int nnonz, int *beg, int *ind, SCIP_RATIONAL **val)
     
    SCIP_RETCODE SCIPlpiExactDelRows (SCIP_LPIEXACT *lpi, int firstrow, int lastrow)
     
    SCIP_RETCODE SCIPlpiExactDelRowset (SCIP_LPIEXACT *lpi, int *dstat)
     
    SCIP_RETCODE SCIPlpiExactClear (SCIP_LPIEXACT *lpi)
     
    SCIP_RETCODE SCIPlpiExactChgBounds (SCIP_LPIEXACT *lpi, int ncols, int *ind, SCIP_RATIONAL **lb, SCIP_RATIONAL **ub)
     
    SCIP_RETCODE SCIPlpiExactChgSides (SCIP_LPIEXACT *lpi, int nrows, int *ind, SCIP_RATIONAL **lhs, SCIP_RATIONAL **rhs)
     
    SCIP_RETCODE SCIPlpiExactChgCoef (SCIP_LPIEXACT *lpi, int row, int col, SCIP_RATIONAL *newval)
     
    SCIP_RETCODE SCIPlpiExactChgObjsen (SCIP_LPIEXACT *lpi, SCIP_OBJSEN objsen)
     
    SCIP_RETCODE SCIPlpiExactChgObj (SCIP_LPIEXACT *lpi, int ncols, int *ind, SCIP_RATIONAL **obj)
     
    Data Accessing Methods
    SCIP_RETCODE SCIPlpiExactGetNRows (SCIP_LPIEXACT *lpi, int *nrows)
     
    SCIP_RETCODE SCIPlpiExactGetNCols (SCIP_LPIEXACT *lpi, int *ncols)
     
    SCIP_RETCODE SCIPlpiExactGetNNonz (SCIP_LPIEXACT *lpi, int *nnonz)
     
    SCIP_RETCODE SCIPlpiExactGetCols (SCIP_LPIEXACT *lpi, int firstcol, int lastcol, SCIP_RATIONAL **lb, SCIP_RATIONAL **ub, int *nnonz, int *beg, int *ind, SCIP_RATIONAL **val)
     
    SCIP_RETCODE SCIPlpiExactGetRows (SCIP_LPIEXACT *lpi, int firstrow, int lastrow, SCIP_RATIONAL **lhs, SCIP_RATIONAL **rhs, int *nnonz, int *beg, int *ind, SCIP_RATIONAL **val)
     
    SCIP_RETCODE SCIPlpiExactGetColNames (SCIP_LPIEXACT *lpi, int firstcol, int lastcol, char **colnames, char *namestorage, int namestoragesize, int *storageleft)
     
    SCIP_RETCODE SCIPlpiExactGetRowNames (SCIP_LPIEXACT *lpi, int firstrow, int lastrow, char **rownames, char *namestorage, int namestoragesize, int *storageleft)
     
    SCIP_RETCODE SCIPlpiExactGetObjsen (SCIP_LPIEXACT *lpi, SCIP_OBJSEN *objsen)
     
    SCIP_RETCODE SCIPlpiExactGetObj (SCIP_LPIEXACT *lpi, int firstcol, int lastcol, SCIP_RATIONAL **vals)
     
    SCIP_RETCODE SCIPlpiExactGetBounds (SCIP_LPIEXACT *lpi, int firstcol, int lastcol, SCIP_RATIONAL **lbs, SCIP_RATIONAL **ubs)
     
    SCIP_RETCODE SCIPlpiExactGetSides (SCIP_LPIEXACT *lpi, int firstrow, int lastrow, SCIP_RATIONAL **lhss, SCIP_RATIONAL **rhss)
     
    SCIP_RETCODE SCIPlpiExactGetCoef (SCIP_LPIEXACT *lpi, int row, int col, SCIP_RATIONAL *val)
     
    Solving Methods
    static SCIP_RETCODE spxSolve (SCIP_LPIEXACT *lpi)
     
    SCIP_RETCODE SCIPlpiExactSolvePrimal (SCIP_LPIEXACT *lpi)
     
    SCIP_RETCODE SCIPlpiExactSolveDual (SCIP_LPIEXACT *lpi)
     
    SCIP_RETCODE SCIPlpiExactSolveBarrier (SCIP_LPIEXACT *lpi, SCIP_Bool crossover)
     
    SCIP_RETCODE SCIPlpiExactStartStrongbranch (SCIP_LPIEXACT *lpi)
     
    SCIP_RETCODE SCIPlpiExactEndStrongbranch (SCIP_LPIEXACT *lpi)
     
    Solution Information Methods
    SCIP_Bool SCIPlpiExactWasSolved (SCIP_LPIEXACT *lpi)
     
    SCIP_RETCODE SCIPlpiExactGetSolFeasibility (SCIP_LPIEXACT *lpi, SCIP_Bool *primalfeasible, SCIP_Bool *dualfeasible)
     
    SCIP_Bool SCIPlpiExactExistsPrimalRay (SCIP_LPIEXACT *lpi)
     
    SCIP_Bool SCIPlpiExactHasPrimalRay (SCIP_LPIEXACT *lpi)
     
    SCIP_Bool SCIPlpiExactIsPrimalUnbounded (SCIP_LPIEXACT *lpi)
     
    SCIP_Bool SCIPlpiExactIsPrimalInfeasible (SCIP_LPIEXACT *lpi)
     
    SCIP_Bool SCIPlpiExactIsPrimalFeasible (SCIP_LPIEXACT *lpi)
     
    SCIP_Bool SCIPlpiExactExistsDualRay (SCIP_LPIEXACT *lpi)
     
    SCIP_Bool SCIPlpiExactHasDualRay (SCIP_LPIEXACT *lpi)
     
    SCIP_Bool SCIPlpiExactIsDualUnbounded (SCIP_LPIEXACT *lpi)
     
    SCIP_Bool SCIPlpiExactIsDualInfeasible (SCIP_LPIEXACT *lpi)
     
    SCIP_Bool SCIPlpiExactIsDualFeasible (SCIP_LPIEXACT *lpi)
     
    SCIP_Bool SCIPlpiExactIsOptimal (SCIP_LPIEXACT *lpi)
     
    SCIP_Bool SCIPlpiExactIsObjlimExc (SCIP_LPIEXACT *lpi)
     
    SCIP_Bool SCIPlpiExactIsIterlimExc (SCIP_LPIEXACT *lpi)
     
    SCIP_Bool SCIPlpiExactIsTimelimExc (SCIP_LPIEXACT *lpi)
     
    int SCIPlpiExactGetInternalStatus (SCIP_LPIEXACT *lpi)
     
    SCIP_RETCODE SCIPlpiExactIgnoreInstability (SCIP_LPIEXACT *lpi, SCIP_Bool *success)
     
    SCIP_RETCODE SCIPlpiExactGetObjval (SCIP_LPIEXACT *lpi, SCIP_RATIONAL *objval)
     
    SCIP_RETCODE SCIPlpiExactGetSol (SCIP_LPIEXACT *lpi, SCIP_RATIONAL *objval, SCIP_RATIONAL **primsol, SCIP_RATIONAL **dualsol, SCIP_RATIONAL **activity, SCIP_RATIONAL **redcost)
     
    SCIP_RETCODE SCIPlpiExactGetPrimalRay (SCIP_LPIEXACT *lpi, SCIP_RATIONAL **ray)
     
    SCIP_RETCODE SCIPlpiExactGetDualfarkas (SCIP_LPIEXACT *lpi, SCIP_RATIONAL **dualfarkas)
     
    SCIP_RETCODE SCIPlpiExactGetIterations (SCIP_LPIEXACT *lpi, int *iterations)
     
    LP Basis Methods
    SCIP_RETCODE SCIPlpiExactGetBase (SCIP_LPIEXACT *lpi, int *cstat, int *rstat)
     
    SCIP_RETCODE SCIPlpiExactSetBase (SCIP_LPIEXACT *lpi, int *cstat, int *rstat)
     
    SCIP_RETCODE SCIPlpiExactGetBasisInd (SCIP_LPIEXACT *lpi, int *bind)
     
    SCIP_RETCODE SCIPlpiExactGetBInvRow (SCIP_LPIEXACT *lpi, int r, SCIP_RATIONAL **coef, int *inds, int *ninds)
     
    SCIP_RETCODE SCIPlpiExactGetBInvCol (SCIP_LPIEXACT *lpi, int c, SCIP_RATIONAL **coef, int *inds, int *ninds)
     
    LP State Methods
    SCIP_RETCODE SCIPlpiExactGetState (SCIP_LPIEXACT *lpi, BMS_BLKMEM *blkmem, SCIP_LPISTATE **lpistate)
     
    SCIP_RETCODE SCIPlpiExactSetState (SCIP_LPIEXACT *lpi, BMS_BLKMEM *blkmem, SCIP_LPISTATE *lpistate)
     
    SCIP_RETCODE SCIPlpiExactClearState (SCIP_LPIEXACT *lpi)
     
    SCIP_RETCODE SCIPlpiExactFreeState (SCIP_LPIEXACT *lpi, BMS_BLKMEM *blkmem, SCIP_LPISTATE **lpistate)
     
    SCIP_Bool SCIPlpiExactHasStateBasis (SCIP_LPIEXACT *lpi, SCIP_LPISTATE *lpistate)
     
    SCIP_RETCODE SCIPlpiExactReadState (SCIP_LPIEXACT *lpi, const char *fname)
     
    SCIP_RETCODE SCIPlpiExactWriteState (SCIP_LPIEXACT *lpi, const char *fname)
     
    Parameter Methods
    SCIP_RETCODE SCIPlpiExactGetIntpar (SCIP_LPIEXACT *lpi, SCIP_LPPARAM type, int *ival)
     
    SCIP_RETCODE SCIPlpiExactSetIntpar (SCIP_LPIEXACT *lpi, SCIP_LPPARAM type, int ival)
     
    SCIP_RETCODE SCIPlpiExactGetRealpar (SCIP_LPIEXACT *lpi, SCIP_LPPARAM type, SCIP_Real *dval)
     
    SCIP_RETCODE SCIPlpiExactSetRealpar (SCIP_LPIEXACT *lpi, SCIP_LPPARAM type, SCIP_Real dval)
     
    Numerical Methods
    SCIP_Real SCIPlpiExactInfinity (SCIP_LPIEXACT *lpi)
     
    SCIP_Bool SCIPlpiExactIsInfinity (SCIP_LPIEXACT *lpi, SCIP_Real val)
     
    File Interface Methods
    static SCIP_Bool fileExists (const char *filename)
     
    SCIP_RETCODE SCIPlpiExactReadLP (SCIP_LPIEXACT *lpi, const char *fname)
     
    SCIP_RETCODE SCIPlpiExactWriteLP (SCIP_LPIEXACT *lpi, const char *fname)
     

    Variables

    static const char spxname [20] = {'S', 'o', 'P', 'l', 'e', 'x', ' ', SOPLEX_VERSION/100 + '0', '.', (SOPLEX_VERSION % 100)/10 + '0', '.', SOPLEX_VERSION % 10 + '0', '\0'}
     
    static const char spxdesc [200]
     

    Macro Definition Documentation

    ◆ CHECK_SOPLEX_PARAM

    #define CHECK_SOPLEX_PARAM (   x)
    Value:
    if( !x ) \
    { \
    SCIPmessagePrintWarning(_messagehdlr, "SoPlex: unsupported parameter value\n"); \
    }
    SCIP_VAR ** x
    Definition: circlepacking.c:63

    Definition at line 46 of file lpiexact_spx.cpp.

    ◆ SOPLEX_SUBVERSION

    #define SOPLEX_SUBVERSION   0

    Definition at line 72 of file lpiexact_spx.cpp.

    ◆ SOPLEX_APIVERSION

    #define SOPLEX_APIVERSION   0

    Definition at line 76 of file lpiexact_spx.cpp.

    ◆ SOPLEX_VERBLEVEL

    #define SOPLEX_VERBLEVEL   5

    verbosity level for LPINFO

    Definition at line 114 of file lpiexact_spx.cpp.

    ◆ NULL

    #define NULL   0

    Definition at line 125 of file lpiexact_spx.cpp.

    ◆ SOPLEX_TRY

    #define SOPLEX_TRY (   messagehdlr,
      x 
    )
    Value:
    do \
    { \
    try \
    { \
    (x); \
    } \
    catch( const SPxMemoryException& E ) \
    { \
    std::string s = E.what(); \
    SCIPerrorMessage("SoPlex threw a memory exception: %s\n", s.c_str()); \
    return SCIP_ERROR; \
    } \
    catch( const SPxException& E ) \
    { \
    std::string s = E.what(); \
    SCIPmessagePrintWarning((messagehdlr), "SoPlex threw an exception: %s\n", s.c_str()); \
    return SCIP_LPERROR; \
    } \
    } \
    while( FALSE )
    #define FALSE
    Definition: def.h:94
    @ SCIP_LPERROR
    Definition: type_retcode.h:49
    @ SCIP_ERROR
    Definition: type_retcode.h:43

    Macro for a single SoPlex call for which exceptions have to be catched - return an LP error. We make no distinction between different exception types, e.g., between memory allocation and other exceptions.

    Definition at line 136 of file lpiexact_spx.cpp.

    ◆ SOPLEX_TRY_ABORT

    #define SOPLEX_TRY_ABORT (   x)
    Value:
    do \
    { \
    try \
    { \
    (x); \
    } \
    catch( const SPxException& E ) \
    { \
    std::string s = E.what(); \
    SCIPerrorMessage("SoPlex threw an exception: %s\n", s.c_str()); \
    abort(); \
    } \
    } \
    while( FALSE )

    Definition at line 181 of file lpiexact_spx.cpp.

    ◆ COLS_PER_PACKET

    #define COLS_PER_PACKET   SCIP_DUALPACKETSIZE

    Definition at line 545 of file lpiexact_spx.cpp.

    ◆ ROWS_PER_PACKET

    #define ROWS_PER_PACKET   SCIP_DUALPACKETSIZE

    Definition at line 547 of file lpiexact_spx.cpp.

    Typedef Documentation

    ◆ COLPACKET

    Definition at line 544 of file lpiexact_spx.cpp.

    ◆ ROWPACKET

    Definition at line 546 of file lpiexact_spx.cpp.

    Function Documentation

    ◆ RsetSpxR()

    ◆ RsetSpxVector()

    static void RsetSpxVector ( SCIP_LPIEXACT lpi,
    SCIP_RATIONAL **  r,
    VectorRational  src 
    )
    static
    Parameters
    lpiexact LPI
    rSCIP_RATIONAL array
    srcSoPlex rational vector

    Definition at line 220 of file lpiexact_spx.cpp.

    References NULL, r, and RsetSpxR().

    Referenced by SCIPlpiExactGetDualfarkas(), SCIPlpiExactGetPrimalRay(), and SCIPlpiExactGetSol().

    ◆ SpxRSetRat()

    static void SpxRSetRat ( SCIP_LPIEXACT lpi,
    soplex::Rational &  spxr,
    SCIP_RATIONAL src 
    )
    static

    set the value of a SoPlex rational from a SCIP_RATIONAL

    Parameters
    lpiexact LPI
    spxrSoPlex Rational
    srcSCIP_RATIONAL

    Definition at line 235 of file lpiexact_spx.cpp.

    References SCIPlpiExactInfinity(), SCIPrationalGetReal(), SCIPrationalIsAbsInfinity(), and SCIPrationalIsPositive().

    Referenced by SCIPlpiExactAddCols(), SCIPlpiExactAddRows(), SCIPlpiExactChgBounds(), SCIPlpiExactChgCoef(), SCIPlpiExactChgObj(), SCIPlpiExactChgSides(), and SCIPlpiExactLoadColLP().

    ◆ ensureCstatMem()

    static SCIP_RETCODE ensureCstatMem ( SCIP_LPIEXACT lpi,
    int  num 
    )
    static

    resizes cstat array to have at least num entries

    Parameters
    lpiLP interface structure
    numminimal number of entries in array

    Definition at line 582 of file lpiexact_spx.cpp.

    References BMSreallocMemoryArray, SCIP_LPiExact::cstat, SCIP_LPiExact::cstatsize, MAX, NULL, SCIP_ALLOC, and SCIP_OKAY.

    Referenced by SCIPlpiExactGetState(), and SCIPlpiExactSetState().

    ◆ ensureRstatMem()

    static SCIP_RETCODE ensureRstatMem ( SCIP_LPIEXACT lpi,
    int  num 
    )
    static

    resizes rstat array to have at least num entries

    Parameters
    lpiLP interface structure
    numminimal number of entries in array

    Definition at line 604 of file lpiexact_spx.cpp.

    References BMSreallocMemoryArray, MAX, NULL, SCIP_LPiExact::rstat, SCIP_LPiExact::rstatsize, SCIP_ALLOC, and SCIP_OKAY.

    Referenced by SCIPlpiExactGetState(), and SCIPlpiExactSetState().

    ◆ colpacketNum()

    static int colpacketNum ( int  ncols)
    static

    returns the number of packets needed to store column packet information

    Parameters
    ncolsnumber of columns to store

    Definition at line 633 of file lpiexact_spx.cpp.

    References COLS_PER_PACKET.

    Referenced by lpistateCreate(), and lpistateFree().

    ◆ rowpacketNum()

    static int rowpacketNum ( int  nrows)
    static

    returns the number of packets needed to store row packet information

    Parameters
    nrowsnumber of rows to store

    Definition at line 642 of file lpiexact_spx.cpp.

    References ROWS_PER_PACKET.

    Referenced by lpistateCreate(), and lpistateFree().

    ◆ lpistatePack()

    static void lpistatePack ( SCIP_LPISTATE lpistate,
    const int *  cstat,
    const int *  rstat 
    )
    static

    store row and column basis status in a packed LPi state object

    Parameters
    lpistatepointer to LPi state data
    cstatbasis status of columns in unpacked format
    rstatbasis status of rows in unpacked format

    Definition at line 651 of file lpiexact_spx.cpp.

    References SCIP_LPiState::ncols, SCIP_LPiState::nrows, NULL, SCIP_LPiState::packcstat, SCIP_LPiState::packrstat, and SCIPencodeDualBit().

    Referenced by SCIPlpiExactGetState().

    ◆ lpistateUnpack()

    static void lpistateUnpack ( const SCIP_LPISTATE lpistate,
    int *  cstat,
    int *  rstat 
    )
    static

    unpacks row and column basis status from a packed LPi state object

    Parameters
    lpistatepointer to LPi state data
    cstatbuffer for storing basis status of columns in unpacked format
    rstatbuffer for storing basis status of rows in unpacked format

    Definition at line 667 of file lpiexact_spx.cpp.

    References SCIP_LPiState::ncols, SCIP_LPiState::nrows, NULL, SCIP_LPiState::packcstat, SCIP_LPiState::packrstat, and SCIPdecodeDualBit().

    Referenced by SCIPlpiExactSetState().

    ◆ lpistateCreate()

    static SCIP_RETCODE lpistateCreate ( SCIP_LPISTATE **  lpistate,
    BMS_BLKMEM blkmem,
    int  ncols,
    int  nrows 
    )
    static

    creates LPi state information object

    Parameters
    lpistatepointer to LPi state
    blkmemblock memory
    ncolsnumber of columns to store
    nrowsnumber of rows to store

    Definition at line 683 of file lpiexact_spx.cpp.

    References BMSallocBlockMemory, BMSallocBlockMemoryArray, colpacketNum(), NULL, rowpacketNum(), SCIP_ALLOC, and SCIP_OKAY.

    Referenced by SCIPlpiExactGetState().

    ◆ lpistateFree()

    static void lpistateFree ( SCIP_LPISTATE **  lpistate,
    BMS_BLKMEM blkmem 
    )
    static

    frees LPi state information

    Parameters
    lpistatepointer to LPi state information (like basis information)
    blkmemblock memory

    Definition at line 707 of file lpiexact_spx.cpp.

    References BMSfreeBlockMemory, BMSfreeBlockMemoryArray, colpacketNum(), NULL, and rowpacketNum().

    Referenced by SCIPlpiExactFreeState().

    ◆ invalidateSolution()

    ◆ spxSolve()

    static SCIP_RETCODE spxSolve ( SCIP_LPIEXACT lpi)
    static

    ◆ fileExists()

    static SCIP_Bool fileExists ( const char *  filename)
    static

    returns, whether the given file exists

    Parameters
    filenamefile name

    Definition at line 3405 of file lpiexact_spx.cpp.

    References FALSE, NULL, and TRUE.

    Referenced by SCIPlpiExactReadLP().

    Variable Documentation

    ◆ spxname

    const char spxname[20] = {'S', 'o', 'P', 'l', 'e', 'x', ' ', SOPLEX_VERSION/100 + '0', '.', (SOPLEX_VERSION % 100)/10 + '0', '.', SOPLEX_VERSION % 10 + '0', '\0'}
    static

    Definition at line 754 of file lpiexact_spx.cpp.

    Referenced by SCIPlpiExactGetSolverName().

    ◆ spxdesc

    const char spxdesc[200]
    static
    Initial value:
    = {'L', 'i', 'n', 'e', 'a', 'r', ' ', 'p', 'r', 'o', 'g', 'r', 'a', 'm', 'm', 'i', 'n', 'g',
    ' ', 's', 'o', 'l', 'v', 'e', 'r', ' ' , 'd', 'e', 'v', 'e', 'l', 'o', 'p', 'e', 'd',
    ' ', 'a', 't', ' ', 'Z', 'u', 's', 'e', ' ', 'I', 'n', 's', 't', 'i', 't', 'u', 't', 'e',
    ' ', 'B', 'e', 'r', 'l', 'i', 'n', ' ', '(', 's', 'o', 'p', 'l', 'e', 'x', '.', 'z', 'i', 'b', '.', 'd', 'e', ')',
    ' ', '[', 'G', 'i', 't', 'H', 'a', 's', 'h', ':', ' ',
    getGitHash()[0], getGitHash()[1], getGitHash()[2], getGitHash()[3],
    getGitHash()[4], getGitHash()[5], getGitHash()[6], getGitHash()[7],
    ']', '\0'}

    Definition at line 756 of file lpiexact_spx.cpp.

    Referenced by SCIPlpiExactGetSolverDesc().