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().