|
SparseLibrary
Version 1.6.0
|
Hilbert-coordinate-aware triplet. More...
#include <HilbertTriplet.hpp>

Public Member Functions | |
| unsigned long int | i () const |
| unsigned long int | j () const |
| HilbertTriplet (unsigned long int i, unsigned long int j, T val) | |
| Base constructor. More... | |
| HilbertTriplet () | |
| Base constructor. More... | |
| void | calculateHilbertCoordinate () |
| Calculates the full Hilbert coordinate. | |
| void | getHilbertCoordinate (size_t &h1, size_t &h2) |
| Gets the Hilbert coordinates. More... | |
| size_t | getMostSignificantHilbertBits () |
| size_t | getLeastSignificantHilbertBits () |
Static Public Member Functions | |
| static void | save (std::string fn, HilbertTriplet< T > *toWrite, const unsigned long int m, const unsigned long int n, const size_t s) |
| Saves an array of Hilbert triplets to a file, in binary format. More... | |
| static void | save (std::string fn, std::vector< HilbertTriplet< T > > &toWrite, const unsigned long int m, const unsigned long int n) |
| Saves a std::vector of Hilbert triplets to a file, in binary format. More... | |
Public Attributes | |
| T | value |
| Value stored at this triplet. More... | |
Protected Attributes | |
| size_t | row |
| The row coordinate of this triplet. More... | |
| size_t | column |
| The column coordinate of this triplet. More... | |
| size_t | hilbert1 |
| Most significant part of a 128-bits Hilbert coordinate, for one-shot, non-iterative, calculation. More... | |
| size_t | hilbert2 |
| Least significant part of a 128-bits Hilbert coordinate, for one-shot, non-iterative, calculation. More... | |
Hilbert-coordinate-aware triplet.
Can save vectors of HilbertTriplets to binary.
|
inline |
Base constructor.
| i | row index. |
| j | column index. |
| val | nonzero value. |
|
inline |
Base constructor.
Sets all values to zero.
|
inline |
Gets the Hilbert coordinates.
Does not check if calculateHilbertCoordinate() was called first, otherwise (0,0) will be returned. Note that the Hilbert coordinate is a 1D 128-bits unsigned integer.
| h1 | The first (most significant) 64-bits of the Hilbert coordinate |
| h2 | the remainder of the Hilbert coordinate. |
References HilbertTriplet< T >::hilbert1, and HilbertTriplet< T >::hilbert2.
|
inline |
References HilbertTriplet< T >::hilbert2.
Referenced by HilbertTripletCompare< T >::operator()().
|
inline |
References HilbertTriplet< T >::hilbert1.
Referenced by HilbertTripletCompare< T >::operator()().
|
inline |
References HilbertTriplet< T >::row.
Referenced by HTS< T >::cmp(), and HilbertTriplet< T >::save().
|
inline |
References HilbertTriplet< T >::column.
Referenced by HTS< T >::cmp(), and HilbertTriplet< T >::save().
|
inlinestatic |
Saves an array of Hilbert triplets to a file, in binary format.
Does NOT save the Hilbert coordinate! (For reading-in the written file, use the regular Triplet scheme)
| fn | Filename to save to (overwrite mode). |
| toWrite | Array of Hilbert triplets to write. |
| m | Total number of rows in the matrix. |
| n | Total number of columns in the matrix. |
| s | Size of the array toWrite. |
References HilbertTriplet< T >::i(), HilbertTriplet< T >::j(), and HilbertTriplet< T >::value.
Referenced by HilbertTriplet< T >::save(), Hilbert< T >::saveBinary(), and HTS< T >::saveBinary().
|
inlinestatic |
Saves a std::vector of Hilbert triplets to a file, in binary format.
Does NOT save the Hilbert coordinate! (For reading-in the written file, use the regular Triplet scheme)
| fn | Filename to save to (overwrite mode). |
| toWrite | Vector of Hilbert triplets to write. |
| m | Total number of rows in the matrix. |
| n | Total number of columns in the matrix. |
References HilbertTriplet< T >::save().
|
protected |
The column coordinate of this triplet.
Referenced by HilbertTriplet< T >::calculateHilbertCoordinate(), and HilbertTriplet< T >::j().
|
protected |
Most significant part of a 128-bits Hilbert coordinate, for one-shot, non-iterative, calculation.
Referenced by HilbertTriplet< T >::calculateHilbertCoordinate(), HilbertTriplet< T >::getHilbertCoordinate(), and HilbertTriplet< T >::getMostSignificantHilbertBits().
|
protected |
Least significant part of a 128-bits Hilbert coordinate, for one-shot, non-iterative, calculation.
Referenced by HilbertTriplet< T >::calculateHilbertCoordinate(), HilbertTriplet< T >::getHilbertCoordinate(), and HilbertTriplet< T >::getLeastSignificantHilbertBits().
|
protected |
The row coordinate of this triplet.
Referenced by HilbertTriplet< T >::calculateHilbertCoordinate(), and HilbertTriplet< T >::i().
| T HilbertTriplet< T >::value |
Value stored at this triplet.
Referenced by HilbertTriplet< T >::save().
1.8.7