Loading...
Searching...
No Matches
SVSetBase< R > Class Template Reference Sparse vector set. More...
Inheritance diagram for SVSetBase< R >:
![]()
Detailed DescriptionSparse 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. SVectorBases in an SVSetBase are numbered from 0 thru num()-1. They can be accessed using the index operator[](). When removing SVectorBases of a SVSetBase the remaining ones will be renumbered. However, all SVectorBase with a smaller number than the lowest number of the removed SVectorBases will remain unchanged. For providing a uniform access to SVectorBases in a set even if others are removed or added, SVSetBase assigns a DataKey to each SVectorBase in the set. Such a DataKey remains unchanged as long as the corresponding SVectorBase is in the SVSetBase, no matter what other SVectorBases are added to or removed from the SVSetBase. Methods are provided for getting the DataKey to a SVectorBase or its number and vice versa. Further, each add() method for enlarging an SVSetBase is provided with two signatures. One of them returns the DataKeys assigned to the SVectorBases added to the SVSetBase. Definition at line 72 of file svsetbase.h. Member Typedef Documentation◆ SVSetBaseArray
Definition at line 78 of file svsetbase.h. Constructor & Destructor Documentation◆ SVSetBase() [1/3]Default constructor. Definition at line 965 of file svsetbase.h. ◆ ~SVSetBase()Destructor. Definition at line 965 of file svsetbase.h. ◆ SVSetBase() [2/3]Copy constructor. Definition at line 1050 of file svsetbase.h. ◆ SVSetBase() [3/3]Copy constructor. Definition at line 1050 of file svsetbase.h. Member Function Documentation◆ add() [1/7]Adds This includes copying its nonzeros to the sets nonzero memory and creating an additional SVectorBase entry in vector memory. If neccessary, the memory blocks are enlarged appropriately. Definition at line 339 of file svsetbase.h. References SVSetBase< R >::create(), SVSetBase< R >::ensurePSVec(), and DataArray< T >::size(). Referenced by LPColSetBase< R >::add(), LPRowSetBase< R >::add(), LPRowSetBase< R >::add(), LPColSetBase< R >::add(), LPRowSetBase< R >::add(), LPColSetBase< R >::add(), SVSetBase< R >::add(), SVSetBase< R >::add(), and SVSetBase< R >::operator=(). ◆ add() [2/7]Adds all
Definition at line 389 of file svsetbase.h. References SVSetBase< R >::create(), SVSetBase< R >::ensureMem(), SVSetBase< R >::ensurePSVec(), and ClassArray< Nonzero< R > >::size(). ◆ add() [3/7]Adds all SVectorBases in Definition at line 423 of file svsetbase.h. References SVSetBase< R >::create(), SVSetBase< R >::ensureMem(), SVSetBase< R >::ensurePSVec(), and ClassArray< Nonzero< R > >::size(). ◆ add() [4/7]Adds Adds SVectorBase
Definition at line 372 of file svsetbase.h. References SVSetBase< R >::create(), and SVSetBase< R >::ensurePSVec(). ◆ add() [5/7]Adds Adds SVectorBase
Definition at line 355 of file svsetbase.h. References SVSetBase< R >::create(), SVSetBase< R >::ensurePSVec(), and DataArray< T >::size(). ◆ add() [6/7]Adds n SVectorBases to SVSetBase. Adds all
Definition at line 413 of file svsetbase.h. References SVSetBase< R >::add(), SVSetBase< R >::key(), and SVSetBase< R >::num(). ◆ add() [7/7]Adds all SVectorBases of Adds all
Definition at line 449 of file svsetbase.h. References SVSetBase< R >::add(), SVSetBase< R >::key(), and SVSetBase< R >::num(). ◆ add2() [1/3]Adds nonzero ( Adds one nonzero (
Definition at line 592 of file svsetbase.h. References DataArray< T >::size(), and SVSetBase< R >::xtend(). Referenced by LPColSetBase< R >::add2(), LPRowSetBase< R >::add2(), LPColSetBase< R >::add2(), LPRowSetBase< R >::add2(), LPColSetBase< R >::add2(), and LPRowSetBase< R >::add2(). ◆ add2() [2/3]Adds Adds
Definition at line 604 of file svsetbase.h. References DataArray< T >::size(), and SVSetBase< R >::xtend(). ◆ add2() [3/3]Adds Adds
Definition at line 617 of file svsetbase.h. References DataArray< T >::size(), and SVSetBase< R >::xtend(). ◆ clear()Removes all SVectorBases from set. Definition at line 727 of file svsetbase.h. References ClassArray< Nonzero< R > >::clear(), DataArray< T >::clear(), SVSetBase< R >::list, ClassArray< Nonzero< R > >::max(), SVSetBase< R >::numUnusedMemUpdates, ClassArray< Nonzero< R > >::reMax(), SVSetBase< R >::set, and SVSetBase< R >::unusedMem. ◆ countUnusedMem()count size of unused memory exactly Definition at line 193 of file svsetbase.h. References SVSetBase< R >::list, SVSetBase< R >::memSize(), MSG_DEBUG, SVSetBase< R >::numUnusedMemUpdates, DataArray< T >::size(), and SVSetBase< R >::unusedMem. Referenced by SVSetBase< R >::updateUnusedMemEstimation(). ◆ create() [1/2]Creates new SVectorBase in set. The new SVectorBase will be ready to fit at least
Definition at line 498 of file svsetbase.h. References SVSetBase< R >::create(), SVSetBase< R >::key(), and SVSetBase< R >::num(). ◆ create() [2/2]
Creates new SVectorBase in set. The new SVectorBase will be ready to fit at least Definition at line 463 of file svsetbase.h. References DataArray< T >::append(), ClassArray< Nonzero< R > >::data, SVSetBase< R >::ensureMem(), SVSetBase< R >::ensurePSVec(), ClassArray< Nonzero< R > >::last(), SVSetBase< R >::list, SVSetBase< R >::memSize(), ClassArray< Nonzero< R > >::reSize(), and SVSetBase< R >::set. Referenced by SVSetBase< R >::add(), SVSetBase< R >::add(), SVSetBase< R >::add(), SVSetBase< R >::add(), SVSetBase< R >::add(), LPRowSetBase< R >::create(), LPColSetBase< R >::create(), and SVSetBase< R >::create(). ◆ deleteVec()Deleting a vector from the data array and the list. Definition at line 279 of file svsetbase.h. References DataArray< T >::last(), SVSetBase< R >::list, DataArray< T >::max(), MSG_DEBUG, DataArray< T >::remove(), ClassArray< Nonzero< R > >::removeLast(), DataArray< T >::size(), and SVSetBase< R >::updateUnusedMemEstimation(). Referenced by SVSetBase< R >::remove(), and SVSetBase< R >::remove(). ◆ ensureMem()Provides enough nonzero memory for
Definition at line 234 of file svsetbase.h. References DataArray< T >::last(), SVSetBase< R >::list, DataArray< T >::max(), ClassArray< Nonzero< R > >::memFactor, SVSetBase< R >::memMax(), SVSetBase< R >::memPack(), SVSetBase< R >::memRemax(), SVSetBase< R >::memSize(), MSG_DEBUG, ClassArray< Nonzero< R > >::removeLast(), DataArray< T >::size(), SVSetBase< R >::unusedMem, and SVSetBase< R >::updateUnusedMemEstimation(). Referenced by SVSetBase< R >::add(), SVSetBase< R >::add(), SVSetBase< R >::create(), and SVSetBase< R >::xtend(). ◆ ensurePSVec()Provides enough vector memory for Definition at line 223 of file svsetbase.h. References SVSetBase< R >::factor, SVSetBase< R >::max(), SVSetBase< R >::num(), and SVSetBase< R >::reMax(). Referenced by SVSetBase< R >::add(), SVSetBase< R >::add(), SVSetBase< R >::add(), SVSetBase< R >::add(), SVSetBase< R >::add(), and SVSetBase< R >::create(). ◆ has() [1/3]True iff SVSetBase contains a SVectorBase for DataKey Definition at line 821 of file svsetbase.h. References SVSetBase< R >::set. Referenced by LPColSetBase< R >::has(), LPRowSetBase< R >::has(), and SVSetBase< R >::xtend(). ◆ has() [2/3]Is an SVectorBase in the set? Definition at line 833 of file svsetbase.h. References SVSetBase< R >::set. ◆ has() [3/3]True iff SVSetBase contains a SVectorBase for vector number n. Definition at line 827 of file svsetbase.h. References SVSetBase< R >::set. ◆ isConsistent()Consistency check. Definition at line 965 of file svsetbase.h. References ClassArray< Nonzero< R > >::isConsistent(), DataArray< T >::isConsistent(), ClassArray< Nonzero< R > >::last(), SVSetBase< R >::list, DataArray< T >::max(), SVectorBase< R >::mem(), MSGinconsistent, and SVSetBase< R >::set. Referenced by LPColSetBase< R >::isConsistent(), LPRowSetBase< R >::isConsistent(), SVSetBase< R >::operator=(), and SVSetBase< R >::operator=(). ◆ key() [1/2]Gets DataKey of SVectorBase. Definition at line 803 of file svsetbase.h. References SVSetBase< R >::set. ◆ key() [2/2]Gets DataKey of vector number. Definition at line 797 of file svsetbase.h. References SVSetBase< R >::set. Referenced by SVSetBase< R >::add(), SVSetBase< R >::add(), SVSetBase< R >::create(), LPColSetBase< R >::key(), LPRowSetBase< R >::key(), SVSetBase< R >::remove(), and SVSetBase< R >::remove(). ◆ max()Current maximum number of SVectorBases. Definition at line 791 of file svsetbase.h. References DataArray< T >::max(), and SVSetBase< R >::set. Referenced by SVSetBase< R >::ensurePSVec(), LPColSetBase< R >::max(), and LPRowSetBase< R >::max(). ◆ memMax()Length of nonzero memory. Definition at line 851 of file svsetbase.h. References ClassArray< Nonzero< R > >::max(). Referenced by SVSetBase< R >::ensureMem(), LPColSetBase< R >::memMax(), LPRowSetBase< R >::memMax(), and SVSetBase< R >::memPack(). ◆ memPack()Garbage collection in nonzero memory. Pack the svectors together as tightly as possible. This removes all additional unused memory, i.e., size = max for every svector after the call. Note: do not call isConsistent() here, because the following might happen: In SPxLP::doAddRows(const LPRowSet& p_set), when adding rows, the sizes of the vectors for the columns of the LP are increased (without yet filling in the data) to recieve the additional entries. This is done by calling xtend() above. xtend() in turn might call this method, which checks the yet unfilled positions, i.e., isConsistent() is likely to fail. In general, isConsistent() should not be called within this class, but in classes further up in the hierarchy. Definition at line 909 of file svsetbase.h. References ClassArray< Nonzero< R > >::data, SVSetBase< R >::list, SVSetBase< R >::memMax(), SVSetBase< R >::memSize(), MSG_DEBUG, SVSetBase< R >::numUnusedMemUpdates, ClassArray< Nonzero< R > >::operator[](), ClassArray< Nonzero< R > >::reSize(), DataArray< T >::size(), and SVSetBase< R >::unusedMem. Referenced by SVSetBase< R >::ensureMem(), LPColSetBase< R >::memPack(), and LPRowSetBase< R >::memPack(). ◆ memRemax()Reset length of nonzero memory. Definition at line 857 of file svsetbase.h. References SVSetBase< R >::list, DataArray< T >::max(), SVSetBase< R >::memSize(), MSG_DEBUG, SVSetBase< R >::numUnusedMemUpdates, ClassArray< Nonzero< R > >::reMax(), DataArray< T >::size(), and SVSetBase< R >::unusedMem. Referenced by SVSetBase< R >::ensureMem(), LPColSetBase< R >::memRemax(), and LPRowSetBase< R >::memRemax(). ◆ memSize()Used nonzero memory. Definition at line 845 of file svsetbase.h. References ClassArray< Nonzero< R > >::size(). Referenced by SVSetBase< R >::countUnusedMem(), SVSetBase< R >::create(), SVSetBase< R >::ensureMem(), SVSetBase< R >::memPack(), SVSetBase< R >::memRemax(), LPColSetBase< R >::memSize(), LPRowSetBase< R >::memSize(), SVSetBase< R >::updateUnusedMemEstimation(), and SVSetBase< R >::xtend(). ◆ num()Current number of SVectorBases. Definition at line 785 of file svsetbase.h. References SVSetBase< R >::set. Referenced by SVSetBase< R >::add(), SVSetBase< R >::add(), SVSetBase< R >::create(), SVSetBase< R >::ensurePSVec(), LPColSetBase< R >::num(), LPRowSetBase< R >::num(), SVSetBase< R >::remove(), SVSetBase< R >::remove(), SVSetBase< R >::remove(), SVSetBase< R >::remove(), and SVSetBase< R >::remove(). ◆ number() [1/2]Gets vector number of DataKey. Definition at line 809 of file svsetbase.h. References SVSetBase< R >::set. Referenced by LPColSetBase< R >::number(), LPRowSetBase< R >::number(), and SVSetBase< R >::remove(). ◆ number() [2/2]Gets vector number of SVectorBase. Definition at line 815 of file svsetbase.h. References SVSetBase< R >::set. ◆ operator=() [1/2]Assignment operator. Definition at line 1014 of file svsetbase.h. References DataArray< T >::append(), ClassArray< Nonzero< R > >::clear(), SVSetBase< R >::isConsistent(), SVSetBase< R >::list, DataArray< T >::max(), ClassArray< Nonzero< R > >::operator=(), SVSetBase< R >::set, and DataArray< T >::size(). Referenced by LPColSetBase< R >::LPColSetBase(), LPRowSetBase< R >::LPRowSetBase(), LPColSetBase< R >::operator=(), and LPRowSetBase< R >::operator=(). ◆ operator=() [2/2]Assignment operator. Definition at line 1050 of file svsetbase.h. References SVSetBase< R >::add(), ClassArray< Nonzero< R > >::clear(), SVSetBase< R >::isConsistent(), and DataArray< T >::size(). ◆ operator[]() [1/4]Gets SVectorBase by DataKey, writeable. Definition at line 767 of file svsetbase.h. References SVSetBase< R >::set. ◆ operator[]() [2/4]Gets SVectorBase by DataKey. Definition at line 773 of file svsetbase.h. References SVSetBase< R >::set. ◆ operator[]() [3/4]Gets SVectorBase by number, writeable. Definition at line 755 of file svsetbase.h. References SVSetBase< R >::set. Referenced by LPColSetBase< R >::colVector(), LPColSetBase< R >::colVector(), LPColSetBase< R >::colVector_w(), LPColSetBase< R >::colVector_w(), LPRowSetBase< R >::rowVector(), LPRowSetBase< R >::rowVector(), LPRowSetBase< R >::rowVector_w(), and LPRowSetBase< R >::rowVector_w(). ◆ operator[]() [4/4]Gets SVectorBase by number. Definition at line 761 of file svsetbase.h. References SVSetBase< R >::set. ◆ reMax()Resets maximum number of SVectorBases. Definition at line 959 of file svsetbase.h. References SVSetBase< R >::list, DataArray< T >::reMax(), and SVSetBase< R >::set. Referenced by SVSetBase< R >::ensurePSVec(), LPColSetBase< R >::reMax(), and LPRowSetBase< R >::reMax(). ◆ remove() [1/8]Removes the vector with key
Definition at line 632 of file svsetbase.h. References SVSetBase< R >::deleteVec(), DataArray< T >::remove(), and SVSetBase< R >::set. Referenced by SVSetBase< R >::remove(), SVSetBase< R >::remove(), SVSetBase< R >::remove(), LPColSetBase< R >::remove(), LPRowSetBase< R >::remove(), SVSetBase< R >::remove(), SVSetBase< R >::remove(), LPColSetBase< R >::remove(), LPRowSetBase< R >::remove(), LPColSetBase< R >::remove(), LPRowSetBase< R >::remove(), and SVSetBase< R >::remove(). ◆ remove() [2/8]Removes
Definition at line 681 of file svsetbase.h. References DataArray< T >::get_ptr(), SVSetBase< R >::num(), and SVSetBase< R >::remove(). ◆ remove() [3/8]Definition at line 697 of file svsetbase.h. References SVSetBase< R >::num(), SVSetBase< R >::number(), and SVSetBase< R >::remove(). ◆ remove() [4/8]Removes
Definition at line 690 of file svsetbase.h. References DataArray< T >::get_ptr(), SVSetBase< R >::num(), and SVSetBase< R >::remove(). ◆ remove() [5/8]Removes
Definition at line 715 of file svsetbase.h. References SVSetBase< R >::num(), and SVSetBase< R >::remove(). ◆ remove() [6/8]Removes one SVectorBase from set.
Definition at line 649 of file svsetbase.h. References SVSetBase< R >::key(), and SVSetBase< R >::remove(). ◆ remove() [7/8]Removes multiple elements. Removes all SVectorBases for the SVSetBase with an index
Definition at line 660 of file svsetbase.h. References SVSetBase< R >::deleteVec(), SVSetBase< R >::num(), DataArray< T >::remove(), and SVSetBase< R >::set. ◆ remove() [8/8]Removes the vector with number
Definition at line 641 of file svsetbase.h. References SVSetBase< R >::key(), and SVSetBase< R >::remove(). ◆ updateUnusedMemEstimation()update estimation of unused memory Definition at line 213 of file svsetbase.h. References SVSetBase< R >::countUnusedMem(), SVSetBase< R >::memSize(), SVSetBase< R >::numUnusedMemUpdates, and SVSetBase< R >::unusedMem. Referenced by SVSetBase< R >::deleteVec(), SVSetBase< R >::ensureMem(), and SVSetBase< R >::xtend(). ◆ xtend()Extends
Definition at line 510 of file svsetbase.h. References DataArray< T >::append(), ClassArray< Nonzero< R > >::data, SVSetBase< R >::ensureMem(), ClassArray< Nonzero< R > >::get_ptr(), SVSetBase< R >::has(), ClassArray< Nonzero< R > >::insert(), ClassArray< Nonzero< R > >::last(), DataArray< T >::last(), SVSetBase< R >::list, DataArray< T >::max(), SVSetBase< R >::memSize(), MSG_DEBUG, DataArray< T >::remove(), ClassArray< Nonzero< R > >::size(), DataArray< T >::size(), and SVSetBase< R >::updateUnusedMemEstimation(). Referenced by SVSetBase< R >::add2(), SVSetBase< R >::add2(), SVSetBase< R >::add2(), LPColSetBase< R >::xtend(), LPRowSetBase< R >::xtend(), LPColSetBase< R >::xtend(), and LPRowSetBase< R >::xtend(). Friends And Related Symbol Documentation◆ SVSetBaseDefinition at line 74 of file svsetbase.h. Member Data Documentation◆ factorsparse vector memory enlargment factor Definition at line 184 of file svsetbase.h. Referenced by SVSetBase< R >::ensurePSVec(). ◆ listdoubly linked list for non-zero management Definition at line 174 of file svsetbase.h. Referenced by SVSetBase< R >::clear(), SVSetBase< R >::countUnusedMem(), SVSetBase< R >::create(), SVSetBase< R >::deleteVec(), SVSetBase< R >::ensureMem(), SVSetBase< R >::isConsistent(), SVSetBase< R >::memPack(), SVSetBase< R >::memRemax(), SVSetBase< R >::operator=(), SVSetBase< R >::reMax(), and SVSetBase< R >::xtend(). ◆ numUnusedMemUpdatescounter for how often unusedMem has been updated since last exact value Definition at line 176 of file svsetbase.h. Referenced by SVSetBase< R >::clear(), SVSetBase< R >::countUnusedMem(), SVSetBase< R >::memPack(), SVSetBase< R >::memRemax(), and SVSetBase< R >::updateUnusedMemEstimation(). ◆ setset of SVectorBases Definition at line 173 of file svsetbase.h. Referenced by LPRowSetBase< R >::add(), SPxLPBase< R >::addCols(), SPxLPBase< R >::added2Set(), SPxLPBase< R >::addRows(), SVSetBase< R >::clear(), SVSetBase< R >::create(), SPxLPBase< R >::doAddCols(), SPxLPBase< R >::doAddRows(), SPxLPBase< R >::getCols(), SPxLPBase< R >::getRows(), SVSetBase< R >::has(), SVSetBase< R >::has(), SVSetBase< R >::has(), SVSetBase< R >::isConsistent(), SVSetBase< R >::key(), SVSetBase< R >::key(), SVSetBase< R >::max(), SVSetBase< R >::num(), SVSetBase< R >::number(), SVSetBase< R >::number(), SVSetBase< R >::operator=(), SVSetBase< R >::operator[](), SVSetBase< R >::operator[](), SVSetBase< R >::operator[](), SVSetBase< R >::operator[](), SVSetBase< R >::reMax(), SVSetBase< R >::remove(), and SVSetBase< R >::remove(). ◆ unusedMeman estimate of the unused memory (the difference of max() and size() summed up over all vectors) due to deleteVec() and xtend() Definition at line 175 of file svsetbase.h. Referenced by SVSetBase< R >::clear(), SVSetBase< R >::countUnusedMem(), SVSetBase< R >::ensureMem(), SVSetBase< R >::memPack(), SVSetBase< R >::memRemax(), and SVSetBase< R >::updateUnusedMemEstimation().
|