#include <AbstractLinAlgPack_SpVecIndexLookupClassDecl.hpp>
Inheritance diagram for AbstractLinAlgPack::SparseVectorUtilityPack::SpVecIndexLookup< T_Element >:
Public types | |
| typedef T_Element | element_type |
| | |
| typedef element_type::index_type | index_type |
| | |
| typedef ptrdiff_t | difference_type |
| | |
| enum | UpperLower |
| More... | |
| enum | ElementRelation |
| More... | |
Constructors | |
| SpVecIndexLookup () | |
| Construct uninitialized with not sparse vector set (ele() == 0#). | |
| SpVecIndexLookup (element_type *ele, size_type nz, difference_type offset) | |
| Construct initialize with a sparse vector. | |
Sparse vector representation setup | |
| void | set_sp_vec (element_type *ele, size_type nz, difference_type offset) |
| Set a new sparse vector. | |
| void | incr_nz () |
| Increment nz only. | |
Sparse vector representation access | |
| element_type * | ele () const |
| | |
| size_type | nz () const |
| | |
| difference_type | offset () const |
| | |
Element lookup and caching | |
| poss_type | find_poss (index_type index, UpperLower uplow) const |
| Lookup an element and cache the result if a binary search was performed. | |
| size_type | find_element (index_type index, bool is_sorted) const |
| Lookup an element. | |
State management | |
| void | sp_vec_was_modified () |
| Called by client to inform the object that the sparse vector was modified so that the cache may be invalidated. | |
| void | validate_state () const |
| Called by client to ensure that the internal state is valid. | |
This class is used to perform a lookup for elements in a sparse vector stored as an array of nonzero elements of a templated type T_Element. The type T_Element must conform to the SparseElementTemplateInterface specification. These elements must be sorted in accending order.
The default C++ assignment operator and copy constructor are allowed.
Definition at line 51 of file AbstractLinAlgPack_SpVecIndexLookupClassDecl.hpp.
|
|||||
|
Definition at line 58 of file AbstractLinAlgPack_SpVecIndexLookupClassDecl.hpp. |
|
|||||
|
Definition at line 60 of file AbstractLinAlgPack_SpVecIndexLookupClassDecl.hpp. |
|
|||||
|
Definition at line 62 of file AbstractLinAlgPack_SpVecIndexLookupClassDecl.hpp. |
|
|||||
|
Definition at line 70 of file AbstractLinAlgPack_SpVecIndexLookupClassDecl.hpp. |
|
|||||
|
Definition at line 72 of file AbstractLinAlgPack_SpVecIndexLookupClassDecl.hpp. |
|
|||||||||
|
Construct uninitialized with not sparse vector set (ele() == 0#).
Definition at line 87 of file AbstractLinAlgPack_SpVecIndexLookupClassDecl.hpp. |
|
||||||||||||||||||||
|
Construct initialize with a sparse vector.
Definition at line 92 of file AbstractLinAlgPack_SpVecIndexLookupClassDecl.hpp. |
|
||||||||||||||||||||
|
Set a new sparse vector. This will wipe out any cache that may be stored. Definition at line 105 of file AbstractLinAlgPack_SpVecIndexLookupClassDecl.hpp. |
|
|||||||||
|
Increment nz only.
Definition at line 111 of file AbstractLinAlgPack_SpVecIndexLookupClassDecl.hpp. |
|
|||||||||
|
Definition at line 121 of file AbstractLinAlgPack_SpVecIndexLookupClassDecl.hpp. |
|
|||||||||
|
Definition at line 125 of file AbstractLinAlgPack_SpVecIndexLookupClassDecl.hpp. |
|
|||||||||
|
Definition at line 129 of file AbstractLinAlgPack_SpVecIndexLookupClassDecl.hpp. |
|
||||||||||||||||
|
Lookup an element and cache the result if a binary search was performed. This function should only be used if it can be assumed that the elements are sorted in assending order. If #index# is the same as the previously cached lookup then this function will execute in O(1) time, otherwise a O(log(nz)) binary search will be performed to find the element and the result of the lookup will be cached. To be able to utilize a previously cached search this function must know if an upper element or lower element is to be found.\ Preconditions:
Postconditions:
Definition at line 40 of file AbstractLinAlgPack_SpVecIndexLookupClassDef.hpp. |
|
||||||||||||||||
|
Lookup an element. Lookup an exact match for an element. If the element is not found, the end of the sequence will be returned. If is_sorted == true then a binary search will be used (O(log(nz)). If is_sorted==false a sequential search will be used (O(nz)). No result is cached here. Preconditions:
Postconditions:
Definition at line 103 of file AbstractLinAlgPack_SpVecIndexLookupClassDef.hpp. |
|
|||||||||
|
Called by client to inform the object that the sparse vector was modified so that the cache may be invalidated.
Definition at line 195 of file AbstractLinAlgPack_SpVecIndexLookupClassDecl.hpp. |
|
|||||||||
|
Called by client to ensure that the internal state is valid. If ele() != 0# but nz == 0# or ele()[0].index() + offset() < 1# then this is an invalid sparse vector and the function will throw a #NoSpVecSetException# exception. It is up to the client to ensure that a valid sparse vector is set. If there in some other problem with internal state then an exception #InvalidInternalStateException# will be thrown. The error message will be meant for a developer to inspect. Definition at line 125 of file AbstractLinAlgPack_SpVecIndexLookupClassDef.hpp. |
1.3.9.1