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  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  SSVectorBase< R >
 Semi sparse vector.This class implements semi-sparse vectors. Such are VectorBases 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 VectorBase 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< R >
 Dense Vector with semi-sparse Vector for updatesIn many algorithms vectors are updated in every iteration, by adding a multiple of another VectorBase<R> to it, i.e., given a VectorBase<R> x, a scalar \(\alpha\) and another VectorBase<R> \(\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. Internally, VectorBase wraps std::vector. 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.