Scippy

SoPlex

Sequential object-oriented simPlex

Linear Algebra Classes

Basic data types for linear algebra computations. More...

Classes

class  DSVectorBase< R >
 Dynamic sparse vectors.Class DSVectorBase implements dynamic sparse vectors, i.e. SVectorBases with an automatic memory management. This allows the user to freely add() as many nonzeros to a DSVectorBase as desired, without any precautions. For saving memory method setMax() allows to reduce memory consumption to the amount really required. More...
 
class  DVectorBase< R >
 Dynamic dense vectors.Class DVectorBase is a derived class of VectorBase adding automatic memory management to such objects. This allows to implement maths operations operator+() and operator-(). Further, it is possible to reset the dimension of a DVectorBase via method reDim(). However, this may render all references to values of a reDim()ed DVectorBase invalid. More...
 
class  LPColSetBase< R >
 Set of LP columns.Class LPColSetBase implements a set of LPColBase%s. Unless for memory limitations, any number of LPColBases may be added to an LPColSetBase. Single or multiple LPColBases may be added to an LPColSetBase, where each method add() comes with two different signatures. One with and one without a parameter, used for returning the DataKeys assigned to the new LPColBases by the set. See DataKey for a more detailed description of the concept of keys. For the concept of renumbering LPColBases within an LPColSetBase after removal of some LPColBases, see DataSet. More...
 
class  LPRowSetBase< R >
 Set of LP rows.Class LPRowSetBase implements a set of LPRowBase%s. Unless for memory limitations, any number of LPRowBases may be added to an LPRowSetBase. Single or multiple LPRowBases may be added to an LPRowSetBase, where each method add() comes with two different signatures. One with and one without a parameter, used for returning the Keys assigned to the new LPRowBases by the set. See DataKey for a more detailed description of the concept of keys. For the concept of renumbering LPRowBases within an LPRowSetBase after removal of some LPRows see DataSet. More...
 
class  Rational
 Wrapper for GMP type mpq_class.We wrap mpq_class so that we can replace it by a double type if GMP is not available. More...
 
class  SSVectorBase< R >
 Semi sparse vector.This class implements semi-sparse vectors. Such are DVectorBases where the indices of its nonzero elements can be stored in an extra IdxSet. Only elements with absolute value > epsilon are considered to be nonzero. Since really storing the nonzeros is not always convenient, an SSVectorBase provides two different stati: setup and not setup. An SSVectorBase being setup means that the nonzero indices are available, otherwise an SSVectorBase is just an ordinary DVectorBase with an empty IdxSet. Note that due to arithmetic operation, zeros can slip in, i.e., it is only guaranteed that at least every non-zero is in the IdxSet. More...
 
class  SVectorBase< 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. More...
 
class  SVSetBase< R >
 Sparse vector set.Class SVSetBase provides a set of sparse vectors SVectorBase. All SVectorBases in an SVSetBase share one big memory block for their nonzeros. This memory is referred to as the nonzero memory. The SVectorBases themselves are saved in another memory block referred to as the vector memory. Both memory blocks will grow automatically if required, when adding more SVectorBases to the set or enlarging SVectorBases within the set. For controlling memory consumption, methods are provided to inquire and reset the size of the memory blocks used for vectors and nonzeros. More...
 
class  UnitVectorBase< R >
 Sparse vector \(e_i\).A UnitVectorBase is an SVectorBase that can take only one nonzero value with value 1 but arbitrary index. More...
 
class  UpdateVector
 Dense vector with semi-sparse vector for updatesIn many algorithms vectors are updated in every iteration, by adding a multiple of another vector to it, i.e., given a vector x, a scalar \(\alpha\) and another vector \(\delta\), the update to x constists of substituting it by \(x \leftarrow x + \alpha\cdot\delta\). More...
 
class  VectorBase< 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. More...
 

Detailed Description

Basic data types for linear algebra computations.

Linear algebra classes provide basic data types for (sparse) linear algebra computations. However, their functionality is restricted to simple operations such as addition and scaling. For complex tasks, such as solving linear systems of equations, algorithmic classes are provided instead.