Scippy

SoPlex

Sequential object-oriented simPlex

soplex Namespace Reference

Everything should be within this namespace. More...

Classes

class  Array
 Safe arrays of arbitrary types. More...
 
class  ClassArray
 Safe arrays of class objects. More...
 
class  ClassSet
 Set of class objects. More...
 
class  CLUFactor
 Implementation of sparse LU factorization. More...
 
class  CLUFactorRational
 Implementation of sparse LU factorization with Rational precision. More...
 
class  DataArray
 Safe arrays of data objects. More...
 
class  DataHashTable
 Generic hash table for data objects. More...
 
class  DataKey
 Entry identifier class for items of a DataSet. More...
 
class  DataSet
 Set of data objects. More...
 
class  DIdxSet
 Dynamic index set. More...
 
class  DSVectorBase
 Dynamic sparse vectors. More...
 
struct  EnableDebugOutput
 
class  IdElement
 Elements for IdLists. More...
 
class  IdList
 Generic Real linked list. More...
 
class  IdxSet
 Set of indices. More...
 
class  IsElement
 Elements for IsLists. More...
 
class  IsList
 Generic single linked list. More...
 
class  LPColBase
 LP column. More...
 
class  LPColSetBase
 Set of LP columns. More...
 
class  LPRowBase
 (In)equality for LPs. More...
 
class  LPRowSetBase
 Set of LP rows. More...
 
class  MPSInput
 
class  NameSet
 Set of strings. More...
 
class  Nonzero
 Sparse vector nonzero element. More...
 
class  NoTimer
 
class  Presol
 
class  Random
 Random numbers. More...
 
class  SLinSolver
 Sparse Linear Solver virtual base class. More...
 
class  SLinSolverRational
 Sparse Linear Solver virtual base class with Rational precision. More...
 
class  SLUFactor
 Implementation of Sparse Linear Solver. More...
 
class  SLUFactorRational
 Implementation of Sparse Linear Solver with Rational precision. More...
 
class  SolBase
 Class for storing a primal-dual solution with basis information. More...
 
class  SoPlexBase
 
class  SPxAutoPR
 Auto pricer. More...
 
class  SPxBasisBase
 Simplex basis. More...
 
class  SPxBoundFlippingRT
 Bound flipping ratio test ("long step dual") for SoPlex. More...
 
class  SPxColId
 Ids for LP columns. More...
 
class  SPxDantzigPR
 Dantzig pricer. More...
 
class  SPxDefaultRT
 Textbook ratio test for SoPlex. More...
 
class  SPxDevexPR
 Devex pricer. More...
 
class  SPxEquiliSC
 Equilibrium row/column scaling. More...
 
class  SPxException
 Exception base class. More...
 
class  SPxFastRT
 Fast shifting ratio test. More...
 
class  SPxGeometSC
 Geometric mean row/column scaling. More...
 
class  SPxHarrisRT
 Harris pricing with shifting. More...
 
class  SPxHybridPR
 Hybrid pricer. More...
 
class  SPxId
 Generic Ids for LP rows or columns. More...
 
class  SPxInterfaceException
 Exception class for incorrect usage of interface methods. More...
 
class  SPxInternalCodeException
 Exception class for things that should NEVER happen. More...
 
class  SPxLeastSqSC
 Least squares scaling. More...
 
class  SPxLPBase
 Saving LPs in a form suitable for SoPlex. More...
 
class  SPxMainSM
 LP simplifier for removing uneccessary row/columns. More...
 
class  SPxMemoryException
 Exception class for out of memory exceptions. More...
 
class  SPxOut
 Wrapper for several output streams. A verbosity level is used to decide which stream to use and whether to really print a given message. Regardless of whether the verbosity level is set via a manipulator or via the member function, it is persistent until a new value is set. More...
 
class  SPxParMultPR
 Partial multiple pricing. More...
 
class  SPxPricer
 Abstract pricer base class. More...
 
class  SPxRatioTester
 Abstract ratio test base class. More...
 
class  SPxRowId
 Ids for LP rows. More...
 
class  SPxScaler
 LP scaler abstract base class. More...
 
class  SPxSimplifier
 LP simplification abstract base class. More...
 
class  SPxSolverBase
 Sequential object-oriented SimPlex. More...
 
class  SPxStarter
 SoPlex start basis generation base class. More...
 
class  SPxStatusException
 Exception class for status exceptions during the computations. More...
 
class  SPxSteepExPR
 Steepest edge pricer. More...
 
class  SPxSteepPR
 Steepest edge pricer. More...
 
class  SPxSumST
 Simple heuristic SPxStarter. More...
 
class  SPxVectorST
 Solution vector based start basis. More...
 
class  SPxWeightPR
 Weighted pricing. More...
 
class  SPxWeightST
 Weighted start basis. More...
 
class  SSVectorBase
 Semi sparse vector. More...
 
class  StableSum
 
class  StableSum< double >
 
class  SVectorBase
 Sparse vectors. More...
 
class  SVSetBase
 Sparse vector set. More...
 
class  Timer
 Wrapper for the system time query methods. More...
 
class  TimerFactory
 Class to create new timers and to switch types of exiting ones. More...
 
class  Tolerances
 
class  UnitVectorBase
 Sparse vector \(e_i\). More...
 
class  UpdateVector
 Dense Vector with semi-sparse Vector for updates. More...
 
class  UserTimer
 
class  Validation
 
class  VectorBase
 Dense vector. More...
 
class  WallclockTimer
 

Typedefs

typedef SoPlexBase< RealSoPlex
 
typedef DSVectorBase< RealDSVector
 
typedef DSVectorBase< RealDSVectorReal
 
typedef DSVectorBase< RationalDSVectorRational
 
typedef VectorBase< RealDVector
 
typedef VectorBase< RealDVectorReal
 
typedef VectorBase< RationalDVectorRational
 
typedef LPColBase< RealLPCol
 
typedef LPColBase< RealLPColReal
 
typedef LPColBase< RationalLPColRational
 
typedef LPColSetBase< RealLPColSet
 
typedef LPColSetBase< RealLPColSetReal
 
typedef LPColSetBase< RationalLPColSetRational
 
typedef LPRowBase< RealLPRow
 
typedef LPRowBase< RealLPRowReal
 
typedef LPRowBase< RationalLPRowRational
 
typedef LPRowSetBase< RealLPRowSet
 
typedef LPRowSetBase< RealLPRowSetReal
 
typedef LPRowSetBase< RationalLPRowSetRational
 
using Rational = number< gmp_rational, et_off >
 
using Integer = number< gmp_int, et_off >
 
typedef SolBase< RealSolReal
 
typedef SolBase< RationalSolRational
 
typedef SPxBasisBase< RealSPxBasis
 
typedef double Real
 
typedef std::ifstream spxifstream
 
typedef SPxLPBase< RealSPxLP
 
typedef SPxLPBase< RealSPxLPReal
 
typedef SPxLPBase< RationalSPxLPRational
 
typedef SPxSolverBase< RealSPxSolver
 
typedef SSVectorBase< RealSSVector
 
typedef SSVectorBase< RealSSVectorReal
 
typedef SSVectorBase< RationalSSVectorRational
 
typedef SVectorBase< RealSVector
 
typedef SVectorBase< RealSVectorReal
 
typedef SVectorBase< RationalSVectorRational
 
typedef SVSetBase< RealSVSet
 
typedef UnitVectorBase< RealUnitVector
 
typedef UnitVectorBase< RealUnitVectorReal
 
typedef UnitVectorBase< RationalUnitVectorRational
 
typedef VectorBase< RealVector
 
typedef VectorBase< RealVectorReal
 
typedef VectorBase< RationalVectorRational
 

Functions

template<class R >
std::ostream & operator<< (std::ostream &s, const VectorBase< R > &vec)
 Output operator. More...
 
template<class R >
VectorBase< R > operator- (const SVectorBase< R > &v, const VectorBase< R > &w)
 Subtraction. More...
 
template<class R >
DSVectorBase< R > operator* (const SVectorBase< R > &v, R x)
 Scaling. More...
 
template<class R >
DSVectorBase< R > operator* (R x, const SVectorBase< R > &v)
 Scaling. More...
 
template<class R >
std::istream & operator>> (std::istream &s, VectorBase< R > &vec)
 
template<class R >
std::ostream & operator<< (std::ostream &os, const SVectorBase< R > &v)
 Output operator. More...
 
template<class R >
std::ostream & operator<< (std::ostream &os, const SVSetBase< R > &s)
 Output operator. More...
 
static void clear_from (char *buf, int pos)
 fill the line from pos up to column 80 with blanks. More...
 
static void patch_field (char *buf, int beg, int end)
 change all blanks inside a field to PATCH_CHAR. More...
 
static int NameSetNameHashFunction (const NameSet::Name *str)
 returns the hash value of the name. More...
 
std::ostream & operator<< (std::ostream &s, const NameSet &nset)
 
void SpxLcm (Integer &result, Integer a, Integer b)
 
void SpxGcd (Integer &result, Integer a, Integer b)
 
void printRational (Rational r)
 
void printInteger (Integer r)
 
bool isAdjacentTo (const Rational &r, const double &d)
 
void invert (Rational &r)
 
void powRound (Rational &r)
 round up to next power of two More...
 
int orderOfMagnitude (Rational &r)
 returns the order of magnitude of the given rational More...
 
static std::string::const_iterator findSubStringIC (const std::string &substr, const std::string &str)
 
Rational ratFromString (const char *desc)
 
int sizeInBase (const Rational R, const int base)
 Size in specified base (bit size for base 2) More...
 
int totalSizeRational (const Rational *vector, const int length, const int base)
 Total size of rational vector. More...
 
int dlcmSizeRational (const Rational *vector, const int length, const int base)
 Size of least common multiple of denominators in rational vector. More...
 
int dmaxSizeRational (const Rational *vector, const int length, const int base)
 Size of largest denominator in rational vector. More...
 
bool reconstructVector (VectorRational &input, const Rational &denomBoundSquared, const DIdxSet *indexSet=nullptr)
 
bool reconstructSol (SolRational &solution)
 
template<class T , class COMPARATOR >
void SPxShellsort (T *keys, int end, COMPARATOR &compare, int start=0)
 
template<class T , class COMPARATOR >
void SPxQuicksort (T *keys, int end, COMPARATOR &compare, int start=0, bool type=true)
 Generic QuickSort implementation. More...
 
template<class T , class COMPARATOR >
int SPxQuicksortPart (T *keys, COMPARATOR &compare, int start, int end, int size, int start2=0, int end2=0, bool type=true)
 Generic implementation of Partial QuickSort. More...
 
template<class R >
std::ostream & operator<< (std::ostream &os, const typename SPxBasisBase< R >::SPxStatus &status)
 Pretty-printing of basis status. More...
 
bool EQ (int a, int b)
 
bool msginconsistent (const char *name, const char *file, int line)
 
template<class R >
spxAbs (R a)
 
Real spxNextafter (Real x, Real y)
 
template<>
Real spxAbs (Real a)
 returns |a| More...
 
Real spxSqrt (Real a)
 returns square root More...
 
Real maxAbs (Real a, Real b)
 returns max(|a|,|b|) More...
 
Real relDiff (Real a, Real b)
 returns (a-b) / max(|a|,|b|,1.0) More...
 
int spxSnprintf (char *t, size_t len, const char *s,...)
 safe version of snprintf More...
 
template<boost::multiprecision::expression_template_option eto>
number< gmp_rational, eto > ldexp (number< gmp_rational, eto >, int exp)
 
template<boost::multiprecision::expression_template_option eto>
number< gmp_rational, eto > frexp (number< gmp_rational, eto >, int *exp)
 
template<typename T , boost::multiprecision::expression_template_option eto>
boost::multiprecision::number< T, eto > spxFrexp (boost::multiprecision::number< T, eto > y, int *exp)
 
template<typename T , boost::multiprecision::expression_template_option eto>
boost::multiprecision::number< T > spxLdexp (boost::multiprecision::number< T, eto > x, int exp)
 
template<typename T , expression_template_option ep>
number< T, ep > spxSqrt (number< T, ep > a)
 
template<typename T , expression_template_option eto>
number< T, eto > spxNextafter (number< T, eto > x, number< T, eto > y)
 
template<typename T >
number< T > spxSqrt (number< T > a)
 
template<typename T , expression_template_option et>
number< T, et > maxAbs (number< T, et > a, number< T, et > b)
 returns max(|a|,|b|) More...
 
template<typename T , expression_template_option et>
number< T, et > relDiff (number< T, et > a, number< T, et > b)
 
const char * getGitHash ()
 
std::ostream & operator<< (std::ostream &os, const SPxId &id)
 
template<class R >
std::ostream & operator<< (std::ostream &os, const typename SPxSimplifier< R >::Result &status)
 Pretty-printing of simplifier status. More...
 
template<class R >
std::ostream & operator<< (std::ostream &os, const typename SPxSolverBase< R >::VarStatus &status)
 Pretty-printing of variable status. More...
 
template<class R >
std::ostream & operator<< (std::ostream &os, const typename SPxSolverBase< R >::Status &status)
 Pretty-printing of solver status. More...
 
template<class R >
std::ostream & operator<< (std::ostream &os, const typename SPxSolverBase< R >::Type &status)
 Pretty-printing of algorithm. More...
 
template<class R >
std::ostream & operator<< (std::ostream &os, const typename SPxSolverBase< R >::Representation &status)
 Pretty-printing of representation. More...
 
template<class T >
std::ostream & operator<< (std::ostream &s, const StableSum< T > &sum)
 Output operator. More...
 
Memory allocation routines

Here we have cover functions for malloc/realloc/free, to make sure that we allays succeed. Otherwise an exception is thrown.

We use templates to get the types right, otherwise casts would have been neccessary.

template<class T >
void spx_alloc (T &p, int n=1)
 Allocate memory. More...
 
template<class T >
void spx_realloc (T &p, int n)
 Change amount of allocated memory. More...
 
template<class T >
void spx_free (T &p)
 Release memory. More...
 
Verbosity manipulator

Manipulators are implemented in a similar way as done for setw(), setprecision(), etc. in the standard library file iomanip. For instance, the non-member function verb(v) returns a struct struct_Verbosity which contains only the verbosity level. Calling

SPxOut spxout;
spxout << verb( SPxOut::ERROR ) << "This is an error!" << std::endl;
Wrapper for several output streams. A verbosity level is used to decide which stream to use and wheth...
Definition: spxout.h:78
SPxOut::struct_Verbosity verb(const SPxOut::Verbosity &v)
manipulator to be used in an output statement
Definition: spxout.h:252

passes such a struct to the output operator defined below, which extracts the verbosity level from the struct and passes it to the member function SPxOut::setVerbosity().

SPxOut::struct_Verbosity verb (const SPxOut::Verbosity &v)
 manipulator to be used in an output statement More...
 
SPxOutoperator<< (SPxOut &stream, const SPxOut::struct_Verbosity &verbosity)
 output operator with verbosity level struct More...
 
Output of standard manipulators and other types

We have to define an output operator for many kinds of numeric types here because they can all be more or less casted into each other. When using only a template type, it is not clear what the compiler makes out of it (according to lint).

SPxOutoperator<< (SPxOut &_spxout, long t)
 Passes instances of type Type to the current stream. More...
 
SPxOutoperator<< (SPxOut &_spxout, unsigned long t)
 
SPxOutoperator<< (SPxOut &_spxout, bool t)
 
SPxOutoperator<< (SPxOut &_spxout, short t)
 
SPxOutoperator<< (SPxOut &_spxout, unsigned short t)
 
SPxOutoperator<< (SPxOut &_spxout, int t)
 
SPxOutoperator<< (SPxOut &_spxout, unsigned int t)
 
SPxOutoperator<< (SPxOut &_spxout, double t)
 
SPxOutoperator<< (SPxOut &_spxout, float t)
 
SPxOutoperator<< (SPxOut &_spxout, long double t)
 
SPxOutoperator<< (SPxOut &_spxout, const void *t)
 
SPxOutoperator<< (SPxOut &_spxout, std::ostream &(*manip)(std::ostream &))
 Passes standard manipulators without arguments, like std::endl or std::ios::right to the current stream. More...
 
template<typename T >
SPxOutoperator<< (SPxOut &_spxout, T t)
 Passes everything else to the current stream. In particular, this includes structs corresponding to manipulators with arguments, such as the struct _Setw for the setw() manipulator. More...
 

Variables

SOPLEX_THREADLOCAL const Real infinity = SOPLEX_DEFAULT_INFINITY
 

Detailed Description

Everything should be within this namespace.

We have put the whole class library in the namespace soplex. If anything here is defined outside, this is a mistake and should be reported.

Todo:

implement automatic rep switch, based on row/col dim

introduce status codes for SoPlex, especially for rational solving

Todo:

record and return "best" solutions found during IR (Ambros)

implement main IR loop for primal and dual feasible case with fail otherwise (Ambros)

implement statistical info (time, factor time, iters, ...) since last call to solveReal() or solveRational() (Ambros?)

implement performInfeasibilityIR (Ambros?)

extend IR loop to infeasible case (Dan?)

extend IR loop to unbounded case (Dan?)

Todo:

interface rational reconstruction code for rational vectors

integrate rational reconstruction into IR loop

integrate rational SPxSolver and distinguish between original and transformed rational LP

rational scalers

rational simplifier

Typedef Documentation

◆ DSVector

Definition at line 37 of file dsvector.h.

◆ DSVectorRational

Definition at line 39 of file dsvector.h.

◆ DSVectorReal

Definition at line 38 of file dsvector.h.

◆ DVector

typedef VectorBase< Real > DVector

Definition at line 40 of file dvector.h.

◆ DVectorRational

Definition at line 42 of file dvector.h.

◆ DVectorReal

Definition at line 41 of file dvector.h.

◆ Integer

using Integer = number<gmp_int, et_off>

Definition at line 30 of file rational.h.

◆ LPCol

typedef LPColBase< Real > LPCol

Definition at line 38 of file lpcol.h.

◆ LPColRational

Definition at line 40 of file lpcol.h.

◆ LPColReal

typedef LPColBase< Real > LPColReal

Definition at line 39 of file lpcol.h.

◆ LPColSet

Definition at line 36 of file lpcolset.h.

◆ LPColSetRational

Definition at line 38 of file lpcolset.h.

◆ LPColSetReal

Definition at line 37 of file lpcolset.h.

◆ LPRow

typedef LPRowBase< Real > LPRow

Definition at line 36 of file lprow.h.

◆ LPRowRational

Definition at line 38 of file lprow.h.

◆ LPRowReal

typedef LPRowBase< Real > LPRowReal

Definition at line 37 of file lprow.h.

◆ LPRowSet

Definition at line 36 of file lprowset.h.

◆ LPRowSetRational

Definition at line 38 of file lprowset.h.

◆ LPRowSetReal

Definition at line 37 of file lprowset.h.

◆ Rational

using Rational = number<gmp_rational, et_off>

Definition at line 29 of file rational.h.

◆ Real

typedef double Real

Definition at line 269 of file spxdefines.h.

◆ SolRational

Definition at line 37 of file sol.h.

◆ SolReal

typedef SolBase<Real> SolReal

Definition at line 36 of file sol.h.

◆ SoPlex

Definition at line 2590 of file soplex.h.

◆ SPxBasis

Definition at line 1017 of file spxbasis.h.

◆ spxifstream

typedef std::ifstream spxifstream

Definition at line 52 of file spxfileio.h.

◆ SPxLP

typedef SPxLPBase< Real > SPxLP

Definition at line 44 of file spxlp.h.

◆ SPxLPRational

Definition at line 46 of file spxlp.h.

◆ SPxLPReal

typedef SPxLPBase< Real > SPxLPReal

Definition at line 45 of file spxlp.h.

◆ SPxSolver

Definition at line 2403 of file spxsolver.h.

◆ SSVector

Definition at line 37 of file ssvector.h.

◆ SSVectorRational

Definition at line 39 of file ssvector.h.

◆ SSVectorReal

Definition at line 38 of file ssvector.h.

◆ SVector

typedef SVectorBase< Real > SVector

Definition at line 38 of file svector.h.

◆ SVectorRational

Definition at line 40 of file svector.h.

◆ SVectorReal

Definition at line 39 of file svector.h.

◆ SVSet

typedef SVSetBase<Real> SVSet

Definition at line 37 of file svset.h.

◆ UnitVector

Definition at line 38 of file unitvector.h.

◆ UnitVectorRational

Definition at line 40 of file unitvector.h.

◆ UnitVectorReal

Definition at line 39 of file unitvector.h.

◆ Vector

typedef VectorBase< Real > Vector

Definition at line 38 of file vector.h.

◆ VectorRational

Definition at line 40 of file vector.h.

◆ VectorReal

Definition at line 39 of file vector.h.

Function Documentation

◆ clear_from()

static void soplex::clear_from ( char *  buf,
int  pos 
)
static

fill the line from pos up to column 80 with blanks.

Definition at line 44 of file mpsinput.cpp.

References BLANK.

Referenced by MPSInput::readLine().

◆ dlcmSizeRational()

int soplex::dlcmSizeRational ( const Rational vector,
const int  length,
const int  base 
)

Size of least common multiple of denominators in rational vector.

Definition at line 1027 of file rational.h.

References sizeInBase(), SPX_MSG_ERROR, and SpxLcm().

Referenced by SolBase< R >::dlcmSizeDual(), and SolBase< R >::dlcmSizePrimal().

◆ dmaxSizeRational()

int soplex::dmaxSizeRational ( const Rational vector,
const int  length,
const int  base 
)

Size of largest denominator in rational vector.

Definition at line 1049 of file rational.h.

References sizeInBase(), and SPX_MSG_ERROR.

Referenced by SolBase< R >::dmaxSizeDual(), and SolBase< R >::dmaxSizePrimal().

◆ EQ()

◆ findSubStringIC()

static std::string::const_iterator soplex::findSubStringIC ( const std::string &  substr,
const std::string &  str 
)
static

Definition at line 136 of file rational.h.

Referenced by ratFromString().

◆ frexp()

number< gmp_rational, eto > soplex::frexp ( number< gmp_rational, eto >  ,
int *  exp 
)

Definition at line 499 of file spxdefines.h.

Referenced by spxFrexp().

◆ getGitHash()

const char * getGitHash ( )

returns the current git hash of SoPlex

Definition at line 32 of file spxgithash.cpp.

References SPX_GITHASH.

◆ invert()

void soplex::invert ( Rational r)

Definition at line 101 of file rational.h.

◆ isAdjacentTo()

bool soplex::isAdjacentTo ( const Rational r,
const double &  d 
)

Definition at line 75 of file rational.h.

◆ ldexp()

number< gmp_rational, eto > soplex::ldexp ( number< gmp_rational, eto >  ,
int  exp 
)

Definition at line 492 of file spxdefines.h.

Referenced by spxLdexp().

◆ maxAbs() [1/2]

number< T, et > soplex::maxAbs ( number< T, et >  a,
number< T, et >  b 
)

returns max(|a|,|b|)

Definition at line 563 of file spxdefines.h.

References spxAbs().

◆ maxAbs() [2/2]

Real soplex::maxAbs ( Real  a,
Real  b 
)

returns max(|a|,|b|)

Definition at line 432 of file spxdefines.h.

References spxAbs().

Referenced by relDiff().

◆ msginconsistent()

bool msginconsistent ( const char *  name,
const char *  file,
int  line 
)

Definition at line 43 of file spxdefines.cpp.

References SPX_MSG_ERROR.

◆ NameSetNameHashFunction()

static int soplex::NameSetNameHashFunction ( const NameSet::Name str)
static

returns the hash value of the name.

Definition at line 200 of file nameset.cpp.

References NameSet::Name::name.

◆ operator*() [1/2]

DSVectorBase< R > soplex::operator* ( const SVectorBase< R > &  v,
x 
)

◆ operator*() [2/2]

DSVectorBase< R > soplex::operator* ( x,
const SVectorBase< R > &  v 
)

Scaling.

Definition at line 1195 of file basevectors.h.

◆ operator-()

VectorBase< R > soplex::operator- ( const SVectorBase< R > &  v,
const VectorBase< R > &  w 
)

Subtraction.

Definition at line 1162 of file basevectors.h.

References VectorBase< R >::dim().

◆ operator<<() [1/26]

SPxOut & soplex::operator<< ( SPxOut _spxout,
bool  t 
)

Definition at line 292 of file spxout.h.

References SPxOut::getCurrentStream().

◆ operator<<() [2/26]

SPxOut & soplex::operator<< ( SPxOut _spxout,
const void *  t 
)

Definition at line 340 of file spxout.h.

References SPxOut::getCurrentStream().

◆ operator<<() [3/26]

SPxOut & soplex::operator<< ( SPxOut _spxout,
double  t 
)

Definition at line 322 of file spxout.h.

References SPxOut::getCurrentStream().

◆ operator<<() [4/26]

SPxOut & soplex::operator<< ( SPxOut _spxout,
float  t 
)

Definition at line 328 of file spxout.h.

References SPxOut::getCurrentStream().

◆ operator<<() [5/26]

SPxOut & soplex::operator<< ( SPxOut _spxout,
int  t 
)

Definition at line 310 of file spxout.h.

References SPxOut::getCurrentStream().

◆ operator<<() [6/26]

SPxOut & soplex::operator<< ( SPxOut _spxout,
long double  t 
)

Definition at line 334 of file spxout.h.

References SPxOut::getCurrentStream().

◆ operator<<() [7/26]

SPxOut & soplex::operator<< ( SPxOut _spxout,
long  t 
)

Passes instances of type Type to the current stream.

Definition at line 280 of file spxout.h.

References SPxOut::getCurrentStream().

◆ operator<<() [8/26]

SPxOut & soplex::operator<< ( SPxOut _spxout,
short  t 
)

Definition at line 298 of file spxout.h.

References SPxOut::getCurrentStream().

◆ operator<<() [9/26]

SPxOut & soplex::operator<< ( SPxOut _spxout,
std::ostream &(*)(std::ostream &)  manip 
)

Passes standard manipulators without arguments, like std::endl or std::ios::right to the current stream.

Definition at line 348 of file spxout.h.

References SPxOut::getCurrentStream().

◆ operator<<() [10/26]

SPxOut & soplex::operator<< ( SPxOut _spxout,
t 
)

Passes everything else to the current stream. In particular, this includes structs corresponding to manipulators with arguments, such as the struct _Setw for the setw() manipulator.

Definition at line 361 of file spxout.h.

References SPxOut::getCurrentStream().

◆ operator<<() [11/26]

SPxOut & soplex::operator<< ( SPxOut _spxout,
unsigned int  t 
)

Definition at line 316 of file spxout.h.

References SPxOut::getCurrentStream().

◆ operator<<() [12/26]

SPxOut & soplex::operator<< ( SPxOut _spxout,
unsigned long  t 
)

Definition at line 286 of file spxout.h.

References SPxOut::getCurrentStream().

◆ operator<<() [13/26]

SPxOut & soplex::operator<< ( SPxOut _spxout,
unsigned short  t 
)

Definition at line 304 of file spxout.h.

References SPxOut::getCurrentStream().

◆ operator<<() [14/26]

SPxOut & soplex::operator<< ( SPxOut stream,
const SPxOut::struct_Verbosity verbosity 
)

output operator with verbosity level struct

Definition at line 260 of file spxout.h.

References SPxOut::setVerbosity(), and SPxOut::struct_Verbosity::v_.

◆ operator<<() [15/26]

std::ostream & soplex::operator<< ( std::ostream &  os,
const SPxId id 
)

Definition at line 61 of file spxid.cpp.

◆ operator<<() [16/26]

std::ostream & soplex::operator<< ( std::ostream &  os,
const SVectorBase< R > &  v 
)

Output operator.

Definition at line 1256 of file basevectors.h.

References SVectorBase< R >::index(), SVectorBase< R >::size(), and SVectorBase< R >::value().

◆ operator<<() [17/26]

std::ostream & soplex::operator<< ( std::ostream &  os,
const SVSetBase< R > &  s 
)

Output operator.

Definition at line 1285 of file basevectors.h.

References SVSetBase< R >::num().

◆ operator<<() [18/26]

std::ostream & soplex::operator<< ( std::ostream &  os,
const typename SPxBasisBase< R >::SPxStatus &  status 
)

Pretty-printing of basis status.

◆ operator<<() [19/26]

std::ostream & soplex::operator<< ( std::ostream &  os,
const typename SPxSimplifier< R >::Result &  status 
)

Pretty-printing of simplifier status.

◆ operator<<() [20/26]

std::ostream & soplex::operator<< ( std::ostream &  os,
const typename SPxSolverBase< R >::Representation &  status 
)

Pretty-printing of representation.

◆ operator<<() [21/26]

std::ostream & soplex::operator<< ( std::ostream &  os,
const typename SPxSolverBase< R >::Status &  status 
)

Pretty-printing of solver status.

◆ operator<<() [22/26]

std::ostream & soplex::operator<< ( std::ostream &  os,
const typename SPxSolverBase< R >::Type &  status 
)

Pretty-printing of algorithm.

◆ operator<<() [23/26]

std::ostream & soplex::operator<< ( std::ostream &  os,
const typename SPxSolverBase< R >::VarStatus &  status 
)

Pretty-printing of variable status.

◆ operator<<() [24/26]

std::ostream & operator<< ( std::ostream &  s,
const NameSet nset 
)

Definition at line 259 of file nameset.cpp.

References DataKey::idx, DataKey::info, NameSet::key(), and NameSet::num().

◆ operator<<() [25/26]

std::ostream & soplex::operator<< ( std::ostream &  s,
const StableSum< T > &  sum 
)

Output operator.

Definition at line 111 of file stablesum.h.

◆ operator<<() [26/26]

std::ostream & soplex::operator<< ( std::ostream &  s,
const VectorBase< R > &  vec 
)

Output operator.

Definition at line 1143 of file basevectors.h.

References VectorBase< R >::dim().

◆ operator>>()

std::istream & soplex::operator>> ( std::istream &  s,
VectorBase< R > &  vec 
)

Definition at line 1204 of file basevectors.h.

References VectorBase< R >::dim(), and VectorBase< R >::reDim().

◆ orderOfMagnitude()

int soplex::orderOfMagnitude ( Rational r)

returns the order of magnitude of the given rational

Definition at line 126 of file rational.h.

◆ patch_field()

static void soplex::patch_field ( char *  buf,
int  beg,
int  end 
)
static

change all blanks inside a field to PATCH_CHAR.

Definition at line 53 of file mpsinput.cpp.

References BLANK, and PATCH_CHAR.

Referenced by MPSInput::readLine().

◆ powRound()

void soplex::powRound ( Rational r)

round up to next power of two

Definition at line 107 of file rational.h.

◆ printInteger()

void soplex::printInteger ( Integer  r)

Definition at line 71 of file rational.h.

◆ printRational()

void soplex::printRational ( Rational  r)

Definition at line 66 of file rational.h.

◆ ratFromString()

Rational soplex::ratFromString ( const char *  desc)

Definition at line 149 of file rational.h.

References findSubStringIC(), and SOPLEX_MIN.

◆ reconstructSol()

bool soplex::reconstructSol ( SolRational solution)

reconstruct a rational solution

◆ reconstructVector()

bool soplex::reconstructVector ( VectorRational input,
const Rational denomBoundSquared,
const DIdxSet indexSet = nullptr 
)

reconstruct a rational vector

◆ relDiff() [1/2]

number< T, et > soplex::relDiff ( number< T, et >  a,
number< T, et >  b 
)

Definition at line 573 of file spxdefines.h.

References maxAbs().

◆ relDiff() [2/2]

Real soplex::relDiff ( Real  a,
Real  b 
)

returns (a-b) / max(|a|,|b|,1.0)

Definition at line 441 of file spxdefines.h.

References maxAbs().

◆ sizeInBase()

int soplex::sizeInBase ( const Rational  R,
const int  base 
)

Size in specified base (bit size for base 2)

Definition at line 976 of file rational.h.

References SPX_MSG_ERROR.

Referenced by dlcmSizeRational(), dmaxSizeRational(), and totalSizeRational().

◆ spx_alloc()

◆ spx_free()

◆ spx_realloc()

void soplex::spx_realloc ( T &  p,
int  n 
)

Change amount of allocated memory.

Parameters
psome pointer
nthe number of elements p should point to.
Exceptions
SPxMemoryExceptionif memory could not be allocated.

Definition at line 90 of file spxalloc.h.

Referenced by NameSet::memRemax(), ClassSet< T >::reMax(), DataSet< DATA >::reMax(), DataArray< T >::reMax(), DSVectorBase< R >::setMax(), SSVectorBase< R >::setMax(), and DIdxSet::setMax().

◆ spxAbs() [1/2]

◆ spxAbs() [2/2]

Real soplex::spxAbs ( Real  a)

returns |a|

Definition at line 420 of file spxdefines.h.

◆ spxFrexp()

boost::multiprecision::number< T, eto > soplex::spxFrexp ( boost::multiprecision::number< T, eto >  y,
int *  exp 
)

Definition at line 520 of file spxdefines.h.

References frexp().

◆ SpxGcd()

void soplex::SpxGcd ( Integer result,
Integer  a,
Integer  b 
)

Definition at line 35 of file rational.h.

◆ SpxLcm()

void soplex::SpxLcm ( Integer result,
Integer  a,
Integer  b 
)

Definition at line 31 of file rational.h.

Referenced by dlcmSizeRational().

◆ spxLdexp()

boost::multiprecision::number< T > soplex::spxLdexp ( boost::multiprecision::number< T, eto >  x,
int  exp 
)

◆ spxNextafter() [1/2]

number< T, eto > soplex::spxNextafter ( number< T, eto >  x,
number< T, eto >  y 
)

Definition at line 541 of file spxdefines.h.

◆ spxNextafter() [2/2]

Real soplex::spxNextafter ( Real  x,
Real  y 
)

Definition at line 408 of file spxdefines.h.

◆ SPxQuicksort()

void soplex::SPxQuicksort ( T *  keys,
int  end,
COMPARATOR &  compare,
int  start = 0,
bool  type = true 
)

Generic QuickSort implementation.

This template function sorts an array t holding n elements of type T using compare for comparisons. Class COMPARATOR must provide an overloaded operator()(const T& t1,const T& t2) which returns

  • < 0, if t1 is to appear before t2,
  • = 0, if t1 and t2 can appear in any order, or
  • > 0, if t1 is to appear after t2.

Definition at line 82 of file sorter.h.

References SOPLEX_SHELLSORTMAX, SPxQuicksort(), and SPxShellsort().

Referenced by SPxQuicksort(), and SPxQuicksortPart().

◆ SPxQuicksortPart()

int soplex::SPxQuicksortPart ( T *  keys,
COMPARATOR &  compare,
int  start,
int  end,
int  size,
int  start2 = 0,
int  end2 = 0,
bool  type = true 
)

Generic implementation of Partial QuickSort.

This template function sorts an array t holding n elements of type T partially using compare for comparisons, i.e. ensures that the size smallest elements are sorted to the front.

Class COMPARATOR must provide an overloaded operator()(const T& t1,const T& t2) which returns

  • < 0, if t1 is to appear before t2,
  • = 0, if t1 and t2 can appear in any order, or
  • > 0, if t1 is to appear after t2.
Parameters
keysarray of elements to be sorted between index start and end
comparecomparator
startindex of first element in range to be sorted
endindex of last element in range to be sorted, plus 1
sizeguaranteed number of sorted elements
start2auxiliary start index of sub range used for recursive call
end2auxiliary end index of sub range used for recursive call
typetype of sorting, to be more flexable on degenerated cases

Definition at line 246 of file sorter.h.

References SPxQuicksort(), and SPxQuicksortPart().

Referenced by SPxQuicksortPart().

◆ SPxShellsort()

void soplex::SPxShellsort ( T *  keys,
int  end,
COMPARATOR &  compare,
int  start = 0 
)

shell-sort an array of data elements; use it only for arrays smaller than 25 entries

Definition at line 39 of file sorter.h.

Referenced by SPxQuicksort().

◆ spxSnprintf()

int soplex::spxSnprintf ( char *  t,
size_t  len,
const char *  s,
  ... 
)

safe version of snprintf

Parameters
ttarget string
lenlength of the string to copy
ssource string
...further parameters

Definition at line 447 of file spxdefines.h.

References SPX_MSG_ERROR.

Referenced by NameSet::add(), NameSet::memPack(), runSoPlex(), MPSInput::setObjName(), and MPSInput::setProbName().

◆ spxSqrt() [1/3]

number< T > soplex::spxSqrt ( number< T >  a)

Definition at line 556 of file spxdefines.h.

◆ spxSqrt() [2/3]

number< T, ep > soplex::spxSqrt ( number< T, ep >  a)

Definition at line 534 of file spxdefines.h.

◆ spxSqrt() [3/3]

Real soplex::spxSqrt ( Real  a)

returns square root

Definition at line 426 of file spxdefines.h.

Referenced by SSVectorBase< R >::length(), and VectorBase< R >::length().

◆ totalSizeRational()

int soplex::totalSizeRational ( const Rational vector,
const int  length,
const int  base 
)

Total size of rational vector.

Definition at line 1012 of file rational.h.

References sizeInBase().

Referenced by SolBase< R >::totalSizeDual(), and SolBase< R >::totalSizePrimal().

◆ verb()

SPxOut::struct_Verbosity soplex::verb ( const SPxOut::Verbosity v)

manipulator to be used in an output statement

Definition at line 252 of file spxout.h.

References SPxOut::struct_Verbosity::v_.

Variable Documentation

◆ infinity