2 #ifndef _PROTO_MORTON_H_ 3 #define _PROTO_MORTON_H_ 9 #define LOGSIZE 16 // 21 // DIM*LOGSIZE must be less than the size (in bits) of (uint64_t). 10 #define MORTONSIZE 65536 // 2097152 // = 2^LOGSIZE. 13 #define LOGSIZE 16 // 21 // DIM*LOGSIZE must be less than the size (in bits) of (uint64_t). 14 #define MORTONSIZE 65536 // 2097152 // = 2^LOGSIZE. 17 #define LOGSIZE 10 // DIM*LOGSIZE must be less than the size (in bits) of (uint64_t). 18 #define MORTONSIZE 1024 // = 2^LOGSIZE. 21 #define LOGSIZE 16 // DIM*LOGSIZE must be less than the size (in bits) of (uint64_t). 22 #define MORTONSIZE 65536 // = 2^LOGSIZE. 25 #define LOGSIZE 12 // DIM*LOGSIZE must be less than the size (in bits) of (uint64_t). 26 #define MORTONSIZE 4096 // = 2^LOGSIZE. 29 #define LOGSIZE 10 // DIM*LOGSIZE must be less than the size (in bits) of (uint64_t). 30 #define MORTONSIZE 1024 // = 2^LOGSIZE. 51 inline static uint64_t
index(
const Point& a_pt);
58 inline static void sort(vector<Point>& a_pts);
71 inline static bool compareSecond(pair<Point,uint64_t> a_a,pair<Point,uint64_t> a_b)
73 return a_a.second < a_b.second;
76 #include "implem/Proto_MortonImplem.H" Morton Indexer.
Definition: Proto_Morton.H:40
Morton()
Definition: Proto_Morton.H:38
static uint64_t index(const Point &a_pt)
Compute Morton Index.
Definition: Proto_Morton.H:8
static Morton & instance()
Definition: Proto_Morton.H:2
static bool compareSecond(pair< Point, uint64_t > a_a, pair< Point, uint64_t > a_b)
Definition: Proto_Morton.H:71
Definition: Proto_Array.H:17
A templated constant size array object similar to std::array, but with the ability to be used inside ...
Definition: Proto_Array.H:28
Array< vector< uint64_t >, DIM > m_morton1D
Definition: Proto_Morton.H:62
Integer Valued Vector.
Definition: Proto_Point.H:24
static void sort(vector< Point > &a_pts)
Morton Sort.
Definition: Proto_Morton.H:22