Loading...
Searching...
No Matches
SVectorBase< R > Class Template Reference Sparse vectors. More...
Inheritance diagram for SVectorBase< R >:
![]()
Detailed Descriptiontemplate<class R> class soplex::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. SVectorBase does not provide any memory management (this will be done by class DSVectorBase). This means, that the constructor of SVectorBase expects memory where to save the nonzeros. Further, adding nonzeros to an SVectorBase may fail if no more memory is available for saving them (see also DSVectorBase). When nonzeros are added to an SVectorBase, they are appended to the set of nonzeros, i.e., they recieve numbers size(), size()+1 ... . An SVectorBase can hold atmost max() nonzeros, where max() is given in the constructor. When removing nonzeros, the remaining nonzeros are renumbered. However, only the numbers greater than the number of the first removed nonzero are affected. The following mathematical operations are provided by class SVectorBase (SVectorBase
Operators There are two numberings of the nonzeros of an SVectorBase. First, an SVectorBase is supposed to act like a linear algebra VectorBase. An index refers to this view of an SVectorBase: operator[]() is provided which returns the value at the given index of the vector, i.e., 0 for all indices which are not in the set of nonzeros. The other view of SVectorBases is that of a set of nonzeros. The nonzeros are numbered from 0 to size()-1. The methods index(int
n) and value(int n) allow to access the index and value of the
Definition at line 139 of file svectorbase.h. Member Typedef Documentation◆ ElementDefinition at line 157 of file svectorbase.h. Constructor & Destructor Documentation◆ SVectorBase() [1/2]
template<class R >
Default constructor. The constructor expects one memory block where to store the nonzero elements. This must be passed to the constructor, where the number of Nonzeros needs that fit into the memory must be given and a pointer to the beginning of the memory block. Once this memory has been passed, it shall not be modified until the SVectorBase is no longer used. Definition at line 625 of file svectorbase.h. References SVectorBase< R >::setMem(). ◆ SVectorBase() [2/2]
template<class R >
Member Function Documentation◆ add() [1/6]
template<class R >
Append nonzeros of Definition at line 314 of file svectorbase.h. References SVectorBase< R >::add(), SVectorBase< R >::m_elem, and SVectorBase< R >::size(). ◆ add() [2/6]
template<class R >
Append one uninitialized nonzero. Definition at line 300 of file svectorbase.h. References SVectorBase< R >::m_elem, SVectorBase< R >::max(), SVectorBase< R >::set_size(), and SVectorBase< R >::size(). ◆ add() [3/6]
template<class R >
Append one nonzero Definition at line 282 of file svectorbase.h. References SVectorBase< R >::m_elem, SVectorBase< R >::max(), SVectorBase< R >::set_size(), and SVectorBase< R >::size(). Referenced by SVectorBase< R >::add(), DSVectorBase< R >::add(), DSVectorBase< R >::add(), DSVectorBase< R >::add(), DSVectorBase< R >::add(), and UnitVectorBase< R >::UnitVectorBase(). ◆ add() [4/6]
template<class R >
Append Definition at line 320 of file svectorbase.h. References Nonzero< R >::idx, SVectorBase< R >::m_elem, SVectorBase< R >::max(), SVectorBase< R >::set_size(), SVectorBase< R >::size(), and Nonzero< R >::val. ◆ add() [5/6]
template<class R >
template<class S >
Append Definition at line 351 of file svectorbase.h. References Nonzero< R >::idx, SVectorBase< R >::m_elem, SVectorBase< R >::max(), SVectorBase< R >::set_size(), SVectorBase< R >::size(), and Nonzero< R >::val. ◆ add() [6/6]
template<class R >
Append Definition at line 380 of file svectorbase.h. References SVectorBase< R >::m_elem, SVectorBase< R >::max(), SVectorBase< R >::set_size(), SVectorBase< R >::size(), and Nonzero< R >::val. ◆ assignArray()
template<class R >
template<class S >
Assignment operator. Definition at line 765 of file svectorbase.h. References SVectorBase< R >::m_elem, SVectorBase< R >::max(), and SVectorBase< R >::set_size(). ◆ clear()
template<class R >
Remove all indices. Definition at line 443 of file svectorbase.h. References SVectorBase< R >::set_size(). Referenced by DSVectorBase< R >::add(), SPxLPBase< R >::changeCol(), SPxLPBase< R >::changeRow(), DSVectorBase< R >::operator=(), DSVectorBase< R >::operator=(), and DSVectorBase< R >::operator=(). ◆ dim()
template<class R >
Dimension of the vector defined as maximal index + 1. Definition at line 178 of file svectorbase.h. References Nonzero< R >::idx, SVectorBase< R >::m_elem, and SVectorBase< R >::size(). Referenced by SSVectorBase< R >::assign(), SSVectorBase< R >::assign(), and VectorBase< R >::operator*(). ◆ element() [1/2]
template<class R >
Reference to the Definition at line 228 of file svectorbase.h. References SVectorBase< R >::m_elem, and SVectorBase< R >::max(). Referenced by SSVectorBase< Rational >::assign(), SSVectorBase< R >::assign2product1(), SSVectorBase< R >::assign2productAndSetup(), SSVectorBase< R >::assign2productShort(), and SVectorBase< R >::operator*(). ◆ element() [2/2]
template<class R >
The Definition at line 237 of file svectorbase.h. References SVectorBase< R >::m_elem, and SVectorBase< R >::size(). ◆ index() [1/2]
template<class R >
Reference to index of Definition at line 246 of file svectorbase.h. References SVectorBase< R >::m_elem, and SVectorBase< R >::size(). Referenced by SPxLPBase< R >::addCols(), SPxLPBase< R >::addDualActivity(), SPxLPBase< R >::added2Set(), SPxLPBase< R >::addPrimalActivity(), SPxLPBase< R >::addRows(), SSVectorBase< R >::assign(), SSVectorBase< R >::assign(), VectorBase< R >::assign(), SPxLPBase< R >::changeCol(), SPxLPBase< R >::changeRow(), SPxLPBase< R >::doAddCol(), SPxLPBase< R >::doAddCol(), SPxLPBase< R >::doAddCols(), SPxLPBase< R >::doAddRow(), SPxLPBase< R >::doAddRow(), SPxLPBase< R >::doAddRows(), SPxLPBase< R >::doRemoveCol(), SPxLPBase< R >::doRemoveCols(), SPxLPBase< R >::doRemoveRow(), SPxLPBase< R >::doRemoveRows(), DSVectorBase< BP >::DSVectorBase(), SPxMainSM< R >::DuplicateRowsPS::DuplicateRowsPS(), VectorBase< R >::multAdd(), VectorBase< R >::multSub(), soplex::operator*(), VectorBase< R >::operator*(), VectorBase< Rational >::operator*(), VectorBase< R >::operator-=(), soplex::operator<<(), VectorBase< R >::operator=(), SVectorBase< R >::pos(), SVectorBase< R >::scaleAssign(), SVectorBase< R >::scaleAssign(), SoPlex_getRowVectorRational(), and SoPlex_getRowVectorReal(). ◆ index() [2/2]
template<class R >
Index of Definition at line 255 of file svectorbase.h. References SVectorBase< R >::m_elem, and SVectorBase< R >::size(). ◆ isConsistent()
template<class R >
Consistency check. Definition at line 830 of file svectorbase.h. References SVectorBase< R >::m_elem, SVectorBase< R >::max(), SVectorBase< R >::size(), and SPX_MSG_INCONSISTENT. Referenced by SVSetBase< R >::isConsistent(), UnitVectorBase< R >::isConsistent(), SVectorBase< R >::scaleAssign(), and SVectorBase< R >::scaleAssign(). ◆ length()
template<class R >
Floating point approximation of euclidian norm (without any approximation guarantee). Definition at line 519 of file svectorbase.h. References SVectorBase< R >::length2(). ◆ length2()
template<class R >
Squared norm. Definition at line 525 of file svectorbase.h. References SVectorBase< R >::m_elem, SVectorBase< R >::size(), and Nonzero< R >::val. Referenced by SVectorBase< R >::length(). ◆ max()
template<class R >
Maximal number of indices. Definition at line 171 of file svectorbase.h. References SVectorBase< R >::m_elem, SVectorBase< R >::memsize, and SVectorBase< R >::memused. Referenced by SVectorBase< R >::add(), SVectorBase< R >::add(), SVectorBase< R >::add(), SVectorBase< R >::add(), SVectorBase< R >::add(), SVectorBase< R >::assignArray(), SVSetBase< R >::deleteVec(), SVectorBase< R >::element(), SVSetBase< R >::ensureMem(), SVectorBase< R >::isConsistent(), UnitVectorBase< R >::isConsistent(), SVectorBase< R >::operator=(), SVectorBase< R >::operator=(), SVectorBase< R >::scaleAssign(), SVectorBase< R >::scaleAssign(), and SVSetBase< R >::xtend(). ◆ maxAbs()
template<class R >
Maximum absolute value, i.e., infinity norm. Definition at line 487 of file svectorbase.h. References SVectorBase< R >::m_elem, SVectorBase< R >::size(), and soplex::spxAbs(). ◆ mem()
template<class R >
get pointer to internal memory. Definition at line 793 of file svectorbase.h. References SVectorBase< R >::m_elem. Referenced by SVSetBase< R >::deleteVec(), SVSetBase< R >::isConsistent(), UnitVectorBase< R >::isConsistent(), and SVSetBase< R >::xtend(). ◆ minAbs()
template<class R >
Minimum absolute value. Definition at line 503 of file svectorbase.h. References soplex::infinity, SVectorBase< R >::m_elem, SVectorBase< R >::size(), and soplex::spxAbs(). ◆ operator*() [1/3]inner product for sparse vectors Definition at line 562 of file svectorbase.h. References SVectorBase< R >::element(), Nonzero< R >::idx, SVectorBase< R >::m_elem, SVectorBase< R >::size(), and Nonzero< R >::val. ◆ operator*() [2/3]
specialization for inner product for sparse vectors Definition at line 866 of file svectorbase.h. References SVectorBase< R >::element(), Nonzero< R >::idx, SVectorBase< R >::size(), and Nonzero< R >::val. ◆ operator*() [3/3]
template<class R >
Inner product. Definition at line 1046 of file basevectors.h. References Nonzero< R >::idx, and Nonzero< R >::val. ◆ operator*=()
template<class R >
Scaling. Definition at line 541 of file svectorbase.h. References SVectorBase< R >::m_elem, SVectorBase< R >::size(), and Nonzero< R >::val. ◆ operator=() [1/6]Assignment operator. Definition at line 1013 of file basevectors.h. References Nonzero< R >::idx, SSVectorBase< R >::index(), SSVectorBase< R >::isSetup(), SSVectorBase< R >::size(), Nonzero< R >::val, and SSVectorBase< R >::value(). ◆ operator=() [2/6]
template<class R >
move assignement operator. Definition at line 668 of file svectorbase.h. ◆ operator=() [3/6]
template<class R >
Assignment operator. Definition at line 637 of file svectorbase.h. References SVectorBase< R >::m_elem, SVectorBase< R >::max(), SVectorBase< R >::set_size(), SVectorBase< R >::size(), and Nonzero< R >::val. ◆ operator=() [4/6]Assignment operator. Definition at line 682 of file svectorbase.h. References SVectorBase< R >::m_elem, SVectorBase< R >::max(), SVectorBase< R >::set_size(), SVectorBase< R >::size(), and Nonzero< R >::val. ◆ operator=() [5/6]
Assignment operator (specialization for Real). Definition at line 982 of file basevectors.h. References VectorBase< R >::dim(), Nonzero< R >::idx, and Nonzero< R >::val. ◆ operator=() [6/6]Assignment operator. Definition at line 951 of file basevectors.h. References VectorBase< R >::dim(), Nonzero< R >::idx, and Nonzero< R >::val. Referenced by DSVectorBase< R >::DSVectorBase(), DSVectorBase< R >::DSVectorBase(), DSVectorBase< R >::DSVectorBase(), DSVectorBase< R >::DSVectorBase(), SVSetBase< R >::DLPSV::operator=(), DSVectorBase< R >::operator=(), DSVectorBase< R >::operator=(), DSVectorBase< R >::operator=(), and SVSetBase< R >::DLPSV::operator=(). ◆ operator[]()
template<class R >
Value to index Definition at line 217 of file svectorbase.h. References SVectorBase< R >::m_elem, and SVectorBase< R >::pos(). ◆ pos()
template<class R >
Position of index
Definition at line 197 of file svectorbase.h. References SVectorBase< R >::index(), SVectorBase< R >::m_elem, and SVectorBase< R >::size(). Referenced by SPxLPBase< R >::changeCol(), SPxLPBase< R >::changeElement(), SPxLPBase< R >::changeElement(), SPxLPBase< R >::changeRow(), and SVectorBase< R >::operator[](). ◆ remove() [1/2]
template<class R >
Remove Definition at line 430 of file svectorbase.h. References SVectorBase< R >::m_elem, SVectorBase< R >::set_size(), and SVectorBase< R >::size(). ◆ remove() [2/2]
template<class R >
Remove nonzeros Definition at line 406 of file svectorbase.h. References SVectorBase< R >::m_elem, SVectorBase< R >::set_size(), and SVectorBase< R >::size(). Referenced by SPxLPBase< R >::changeCol(), SPxLPBase< R >::changeElement(), SPxLPBase< R >::changeElement(), SPxLPBase< R >::changeRow(), SPxLPBase< R >::doRemoveCols(), and SPxLPBase< R >::doRemoveRows(). ◆ scaleAssign() [1/2]
template<class R >
scale and assign Definition at line 732 of file svectorbase.h. References SVectorBase< R >::index(), SVectorBase< R >::isConsistent(), SVectorBase< R >::m_elem, SVectorBase< R >::max(), SVectorBase< R >::size(), and SVectorBase< R >::value(). ◆ scaleAssign() [2/2]
template<class R >
scale and assign Definition at line 713 of file svectorbase.h. References SVectorBase< R >::index(), SVectorBase< R >::isConsistent(), SVectorBase< R >::m_elem, SVectorBase< R >::max(), SVectorBase< R >::size(), and SVectorBase< R >::value(). ◆ set_max()
template<class R >
Set the maximum number of nonzeros in the vector. Definition at line 806 of file svectorbase.h. References SVectorBase< R >::m_elem, and SVectorBase< R >::memsize. Referenced by SVectorBase< R >::setMem(). ◆ set_size()
template<class R >
Set size of the vector. Definition at line 799 of file svectorbase.h. References SVectorBase< R >::m_elem, and SVectorBase< R >::memused. Referenced by SVectorBase< R >::add(), SVectorBase< R >::add(), SVectorBase< R >::add(), SVectorBase< R >::add(), SVectorBase< R >::add(), SVectorBase< R >::assignArray(), SVectorBase< R >::clear(), SVSetBase< R >::deleteVec(), SVectorBase< R >::operator=(), SVectorBase< R >::operator=(), UnitVectorBase< R >::operator=(), UnitVectorBase< R >::operator=(), SVectorBase< R >::remove(), SVectorBase< R >::remove(), DSVectorBase< R >::setMax(), SVectorBase< R >::setMem(), UnitVectorBase< R >::UnitVectorBase(), and SVSetBase< R >::xtend(). ◆ setMem()
template<class R >
Set the memory area where the nonzeros will be stored. Definition at line 813 of file svectorbase.h. References SVectorBase< R >::m_elem, SVectorBase< R >::set_max(), and SVectorBase< R >::set_size(). Referenced by DSVectorBase< R >::allocMem(), SVSetBase< R >::deleteVec(), SVSetBase< R >::operator=(), DSVectorBase< R >::setMax(), SVectorBase< R >::SVectorBase(), and SVSetBase< R >::xtend(). ◆ size()
template<class R >
Number of used indices. Definition at line 164 of file svectorbase.h. References SVectorBase< R >::m_elem, and SVectorBase< R >::memused. Referenced by SVectorBase< R >::add(), DSVectorBase< R >::add(), SVectorBase< R >::add(), SVectorBase< R >::add(), SVectorBase< R >::add(), SVectorBase< R >::add(), SVectorBase< R >::add(), SPxLPBase< R >::addCols(), SPxLPBase< R >::addDualActivity(), SPxLPBase< R >::added2Set(), SPxLPBase< R >::addPrimalActivity(), SPxLPBase< R >::addRows(), SSVectorBase< R >::assign(), SSVectorBase< R >::assign(), VectorBase< R >::assign(), SSVectorBase< R >::assign2product1(), SSVectorBase< R >::assign2productAndSetup(), SSVectorBase< R >::assign2productFull(), SSVectorBase< R >::assign2productShort(), SPxLPBase< R >::changeCol(), SPxLPBase< R >::changeRow(), SPxBasisBase< R >::coSolve(), SVSetBase< R >::deleteVec(), SVectorBase< R >::dim(), SPxLPBase< R >::doAddCol(), SPxLPBase< R >::doAddCol(), SPxLPBase< R >::doAddCols(), SPxLPBase< R >::doAddRow(), SPxLPBase< R >::doAddRow(), SPxLPBase< R >::doAddRows(), SPxLPBase< R >::doRemoveCol(), SPxLPBase< R >::doRemoveCols(), SPxLPBase< R >::doRemoveRow(), SPxLPBase< R >::doRemoveRows(), DSVectorBase< R >::DSVectorBase(), DSVectorBase< R >::DSVectorBase(), DSVectorBase< R >::DSVectorBase(), DSVectorBase< BP >::DSVectorBase(), SPxMainSM< R >::DuplicateRowsPS::DuplicateRowsPS(), SVectorBase< R >::element(), SVectorBase< R >::index(), SVectorBase< R >::index(), SVectorBase< R >::isConsistent(), UnitVectorBase< R >::isConsistent(), SVectorBase< R >::length2(), SVectorBase< R >::maxAbs(), SVSetBase< R >::memPack(), SVectorBase< R >::minAbs(), VectorBase< R >::multAdd(), SSVectorBase< R >::multAdd(), VectorBase< R >::multSub(), soplex::operator*(), VectorBase< R >::operator*(), SVectorBase< R >::operator*(), SVectorBase< R >::operator*=(), VectorBase< R >::operator-=(), soplex::operator<<(), DSVectorBase< R >::operator=(), DSVectorBase< R >::operator=(), SVectorBase< R >::operator=(), SVectorBase< R >::operator=(), DSVectorBase< R >::operator=(), VectorBase< R >::operator=(), SVectorBase< R >::pos(), SVectorBase< R >::remove(), SVectorBase< R >::remove(), SVectorBase< R >::scaleAssign(), SVectorBase< R >::scaleAssign(), DSVectorBase< R >::setMax(), SPxBasisBase< R >::solve(), SPxBasisBase< R >::solve4update(), SoPlex_getRowVectorRational(), SoPlex_getRowVectorReal(), SVectorBase< R >::sort(), SVectorBase< R >::value(), SVectorBase< R >::value(), and SVSetBase< R >::xtend(). ◆ sort()
template<class R >
Sort nonzeros to increasing indices. Definition at line 449 of file svectorbase.h. References Nonzero< R >::idx, SVectorBase< R >::m_elem, and SVectorBase< R >::size(). ◆ value() [1/2]
template<class R >
Reference to value of Definition at line 264 of file svectorbase.h. References SVectorBase< R >::m_elem, and SVectorBase< R >::size(). Referenced by SPxLPBase< R >::addCols(), SPxLPBase< R >::addDualActivity(), SPxLPBase< R >::added2Set(), SPxLPBase< R >::addPrimalActivity(), SPxLPBase< R >::addRows(), SSVectorBase< R >::assign(), SSVectorBase< R >::assign(), VectorBase< R >::assign(), SPxLPBase< R >::changeElement(), SPxLPBase< R >::changeElement(), SPxLPBase< R >::doAddCol(), SPxLPBase< R >::doAddCol(), SPxLPBase< R >::doAddCols(), SPxLPBase< R >::doAddRow(), SPxLPBase< R >::doAddRow(), SPxLPBase< R >::doAddRows(), VectorBase< R >::multAdd(), VectorBase< R >::multSub(), soplex::operator*(), VectorBase< R >::operator*(), VectorBase< R >::operator-=(), soplex::operator<<(), VectorBase< R >::operator=(), SVectorBase< R >::scaleAssign(), SVectorBase< R >::scaleAssign(), SoPlex_getRowVectorRational(), and SoPlex_getRowVectorReal(). ◆ value() [2/2]
template<class R >
Value of Definition at line 273 of file svectorbase.h. References SVectorBase< R >::m_elem, and SVectorBase< R >::size(). Friends And Related Symbol Documentation◆ SVectorBaseDefinition at line 141 of file svectorbase.h. Member Data Documentation◆ m_elem
template<class R >
Definition at line 149 of file svectorbase.h. Referenced by SVectorBase< R >::add(), SVectorBase< R >::add(), SVectorBase< R >::add(), SVectorBase< R >::add(), SVectorBase< R >::add(), SVectorBase< R >::add(), SVectorBase< R >::assignArray(), SVectorBase< R >::dim(), SVectorBase< R >::element(), SVectorBase< R >::element(), SVectorBase< R >::index(), SVectorBase< R >::index(), SVectorBase< R >::isConsistent(), SVectorBase< R >::length2(), SVectorBase< R >::max(), SVectorBase< R >::maxAbs(), SVectorBase< R >::mem(), SVectorBase< R >::minAbs(), SVectorBase< R >::operator*(), SVectorBase< R >::operator*=(), SVectorBase< R >::operator=(), SVectorBase< R >::operator=(), SVectorBase< R >::operator[](), SVectorBase< R >::pos(), SVectorBase< R >::remove(), SVectorBase< R >::remove(), SVectorBase< R >::scaleAssign(), SVectorBase< R >::scaleAssign(), SVectorBase< R >::set_max(), SVectorBase< R >::set_size(), SVectorBase< R >::setMem(), SVectorBase< R >::size(), SVectorBase< R >::sort(), SVectorBase< R >::value(), and SVectorBase< R >::value(). ◆ memsize
template<class R >
Definition at line 150 of file svectorbase.h. Referenced by SVectorBase< R >::max(), and SVectorBase< R >::set_max(). ◆ memused
template<class R >
Definition at line 151 of file svectorbase.h. Referenced by SVectorBase< R >::max(), SVectorBase< R >::set_size(), and SVectorBase< R >::size().
|