Scippy

SoPlex

Sequential object-oriented simPlex

Class Hierarchy

Go to the graphical class hierarchy

This inheritance list is sorted roughly, but not completely, alphabetically:
[detail level 12345]
 CArray< T >Safe arrays of arbitrary types.Class Array provides safe arrays of arbitrary type. Array elements are accessed just like ordinary C++ array elements by means of the index operator[](). Safety is provided by
 CArray< DSVectorBase< Real > >
 CArray< soplex::UnitVectorBase >
 CSPxBoundFlippingRT::Breakpoint
 CSPxBoundFlippingRT::BreakpointCompare
 CClassArray< T >Safe arrays of class objects.Class ClassArray provides safe arrays of general C++ objects (in contrast to data objects). The elements of an instance of ClassArray can be accessed just like ordinary C++ array elements by means of the index operator[](). Safety is provided by
 CClassArray< Nonzero< R > >
 CClassArray< Nonzero< Rational > >
 CClassArray< Nonzero< Real > >
 CCLUFactorImplementation of sparse LU factorization.This class implements a sparse LU factorization with either FOREST-TOMLIN or ETA updates, using dynamic Markowitz pivoting
 CCLUFactorRationalImplementation of sparse LU factorization with Rational precision.This class implements a sparse LU factorization with either FOREST-TOMLIN or ETA updates, using dynamic Markowitz pivoting
 CCLUFactorRational::U::Col
 CCLUFactor::U::Col
 CCompareCompare class for row weights, used for sorting
 CDataArray< T >Safe arrays of data objects.Class DataArray provides safe arrays of Data Objects. For general C++ objects (in contrast to data objects) class Array is provided which manages memory in a C++ compliant way
 CDataArray< bool >
 CDataArray< const soplex::SVectorBase * >
 CDataArray< IdxElement >
 CDataArray< int >
 CDataArray< RangeType >
 CDataArray< Real >
 CDataArray< soplex::DataHashTable::Element >
 CDataArray< soplex::SPxBoundFlippingRT::Breakpoint >
 CDataArray< soplex::SPxId >
 CDataArray< soplex::SPxMainSM::PostStep * >
 CDataArray< soplex::SPxParMultPR::SPxParMultPr_Tmp >
 CDataArray< soplex::SPxSolver::VarStatus >
 CDataArray< soplex::UnitVectorBase * >
 CDataArray< Status >
 CDataHashTable< HashItem, Info >Generic hash table for data objects.Class DataHashTable provides a generic hash table for Data Objects, i.e., a map that maps arguments called HashItems to values called Infos. HashItem and Info types are passed as template arguments. HashItems must provide a comparison operator==(). Furthermore, both the HashItem and Info must be data objects in the sense that the assignment operator is equivalent to a memcpy() of the structure and no destructor is required
 CDataHashTable< soplex::NameSet::Name, soplex::DataKey >
 CDataKeyEntry identifier class for items of a DataSet.Every item in a DataSet is assigned a DataKey by which it can be accessed (using DataSet::operator[]()). A DataKey consists of an integer member idx, which is a positive number for any valid DataKey. No idx of an element in a DataSet may exceed the sets max(). This property may be used to build arrays with additional information to the elements of a DataSet
 CDataSet< DATA >Set of data objects.Class DataSet manages of sets of data objects of a template type DATA. For constructing a DataSet the maximum number of entries must be given. The current maximum number may be inquired with method max()
 CDataSet< int >
 CDataSet< soplex::SVSetBase::DLPSV >
 CSPxBasis::DescBasis descriptor
 CCLUFactor::Dring
 CCLUFactorRational::Dring
 CDataHashTable< HashItem, Info >::Element< ElemHashItem, ElemInfo >Template class for elements stored in the hash table
 CSPxMainSM::ElementCompareComparator for class SVector::Element: compare nonzeros according to value
 CSPxMainSM::IdxCompareComparator for class SVector::Element: compare nonzeros according to index
 CSPxPricer::IdxCompareCompare class to sort idx/val pairs, used for hypersparse pricing leaving
 CSPxPricer::IdxElement
 CIdxSetSet of indices.Class IdxSet provides a set of indices. At construction it must be given an array of int where to store the indice and its length. The array will from then on be managed by the IdxSet
 CIsList< T >Generic single linked list.Class IsList implements an intrusive single linked list of elements of a template class T. As an intrusive list, the objects of type T must provide methods next() for setting and inquiring a pointer to the next element in a list. The user is responsible for not modifying the next() pointer of elements currently residing in a list, which may destroy the lists integrity. For this, class IsList provides enough methods for modifying a list in a save way. See the method list for a description
 CIsList< soplex::Rational::Private >
 CIsList< soplex::SVSetBase::DLPSV >
 CDataSet< DATA >::Item
 CCLUFactorRational::LData structures for saving the working matrix and L factor
 CCLUFactor::LData structures for saving the working matrix and L factor
 CLPColBase< R >LP column.Class LPColBase provides a datatype for storing the column of an LP a the form similar to

\[ \begin{array}{rl} \hbox{max} & c^T x \\ \hbox{s.t.} & Ax \le b \\ & l \le x \le u \end{array} \]

Hence, an LPColBase consists of an objective value, a column DSVector and an upper and lower bound to the corresponding variable, which may include $\pm\infty$. However, it depends on the LP code to use, what values are actually treated as $\infty$

 CLPRowBase< R >(In)equality for LPs.Class LPRowBase provides constraints for linear programs in the form

\[ l \le a^Tx \le r, \]

where a is a DSVector. l is referred to as left hand side, r as right hand side and a as row vector or the constraint vector. l and r may also take values $\pm$ infinity. This static member is predefined, but may be overridden to meet the needs of the LP solver to be used

 CMPSInput
 CNameSet::NameHandles of names in a NameSet.Class Name provides the handles (i.e., char*s) of names in a NameSet
 CNameSetSet of strings.Class NameSet implements a symbol or name table. It allows to store or remove names (i.e., char*), but does not provide means for manipulating stored names
 CNonzero< R >Sparse vector nonzero element
 CNonzero< Rational >
 CNonzero< Real >
 CParam
 CCLUFactorRational::PermData structures for saving the row and column permutations
 CCLUFactor::PermData structures for saving the row and column permutations
 CSPxMainSM::PostStepBase class for postsolving operations.Class PostStep is an abstract base class providing the interface for operations in the postsolving process
 CCLUFactor::PringPivot Ring
 CCLUFactorRational::PringPivot Ring
 CRational::PrivateDefines the "Pimpl"-class Private
 CRandomRandom numbers.Class Random provides random Real variables, i.e. a value variable that gives another value each time it is accessed. It may be used just like an ordinary Real by means of an overloaded cast operator Real()%
 CRationalWrapper for GMP type mpq_class.We wrap mpq_class so that we can replace it by a double type if GMP is not available
 CCLUFactorRational::U::Row
 CCLUFactor::U::Row
 CSoPlex::SettingsClass of parameter settings
 CSLinSolverSparse Linear Solver virtual base class.Class SLinSolver provides a class for solving sparse linear systems with a matrix $A$ and arbitrary right-hand side vectors. For doing so, the matrix must be first loaded to an SLinSolver object as an array of pointers to the column SVectors of this matrix
 CSLinSolverRationalSparse Linear Solver virtual base class with Rational precision.Class SLinSolverRational provides a class for solving sparse linear systems with a matrix $A$ and arbitrary right-hand side vectors. For doing so, the matrix must be first loaded to an SLinSolverRational object as an array of pointers to the column SVectorsRational of this matrix
 CSolBase< R >Class for storing a primal-dual solution with basis information
 CSolBase< Rational >
 CSolBase< Real >
 CSoPlexPreconfigured SoPlex LP-solver
 CSPxBasisSimplex basis.Consider the linear program as provided from class SPxLP:

\[ \begin{array}{rl} \hbox{max} & c^T x \\ \hbox{s.t.} & l_r \le Ax \le u_r \\ & l_c \le x \le u_c \end{array} \]

where $c, l_c, u_c, x \in {\bf R}^n$, $l_r, u_r \in {\bf R}^m$ and $A \in {\bf R}^{m \times n}$. Solving this LP with the simplex algorithm requires the definition of a basis. Such can be defined as a set of column vectors or a set of row vectors building a nonsingular matrix. We will refer to the first case as the columnwise representation and the latter case will be called the rowwise representation. In both cases, a basis is a set of vectors forming a nonsigular matrix. The dimension of the vectors is refered to as the basis' dimension, whereas the number of vectors belonging to the LP is called the basis' codimension

 CSPxExceptionException base class.This class implements a base class for our SoPlex exceptions We provide a what() function which returns the exception message
 CSPxOutWrapper 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
 CSPxParMultPR::SPxParMultPr_TmpHelper structure
 CSPxPricerAbstract pricer base class.Class SPxPricer is a pure virtual class defining the interface for pricer classes to be used by SoPlex. The pricer's task is to select a vector to enter or leave the simplex basis, depending on the chosen simplex type
 CSPxRatioTesterAbstract ratio test base class.Class SPxRatioTester is the virtual base class for computing the ratio test within the Simplex algorithm driven by SoPlex. After a SoPlex solver has been load()ed to an SPxRatioTester, the solver calls selectLeave() for computing the ratio test for the entering simplex and selectEnter() for computing the ratio test in leaving simplex
 CSPxScalerLP scaler abstract base class.Instances of classes derived from SPxScaler may be loaded to SoPlex in order to scale LPs before solving them. SoPlex will load() itself to the SPxScaler and then call scale(). Generally any SPxLP can be loaded to a SPxScaler for scale()ing it. The scaling can be undone by calling unscale()
 CSPxSimplifierLP simplification abstract base class.Instances of classes derived from SPxSimplifier may be loaded to SoPlex in order to simplify LPs before solving them. SoPlex will call simplify() on itself. Generally any SPxLP can be given to a SPxSimplifier for simplify()ing it. The simplification cannot be undone, but given an primal/dual solution for the simplified SPxLP, the simplifier can reconstruct the primal/dual solution of the unsimplified LP
 CSPxStarterSoPlex start basis generation base class.SPxStarter is the virtual base class for classes generating a starter basis for the Simplex solver SoPlex. When a SPxStarter object has been loaded to a SoPlex solver, the latter will call method generate() in order to have a start basis generated. Implementations of method generate() must terminate by loading the generated basis to SoPlex. Loaded bases must be nonsingular
 CStatisticsClass for collecting statistical information
 CSoPlex::Statistics
 CSPxOut::struct_VerbosityHelper struct for the output operator
 CSVectorBase< R >Sparse vectors.Class SVectorBase provides packed sparse vectors. Such are a sparse vectors, with a storage scheme that keeps all data in one contiguous block of memory. This is best suited for using them for parallel computing on a distributed memory multiprocessor
 CSVectorBase< Rational >
 CSVectorBase< Real >
 CT
 CCLUFactorRational::TempTemporary data structures
 CCLUFactor::TempTemporary data structures
 CTimerWrapper for the system time query methods
 CTimerFactoryClass to create new timers and to switch types of exiting ones
 CCLUFactor::UData structures for saving the working matrix and U factor
 CCLUFactorRational::UData structures for saving the working matrix and U factor
 CVectorBase< R >Dense vector.Class VectorBase provides dense linear algebra vectors. It does not provide memory management for the array of values. Instead, the constructor requires a pointer to a memory block large enough to fit the desired dimension of Real or Rational values
 CVectorBase< Rational >
 CVectorBase< Real >