mirror of
https://github.com/paboyle/Grid.git
synced 2024-11-10 07:55:35 +00:00
Use either sub-blocking or lebesgue
This commit is contained in:
parent
63a2993827
commit
1a8bf938b3
@ -9,17 +9,37 @@ namespace Grid {
|
|||||||
class LebesgueOrder {
|
class LebesgueOrder {
|
||||||
public:
|
public:
|
||||||
|
|
||||||
static int UseLebesgueOrder;
|
typedef int32_t IndexInteger;
|
||||||
|
|
||||||
typedef uint32_t IndexInteger;
|
static int UseLebesgueOrder;
|
||||||
|
GridBase *grid;
|
||||||
|
|
||||||
|
public:
|
||||||
|
LebesgueOrder(GridBase *_grid);
|
||||||
|
|
||||||
inline IndexInteger Reorder(IndexInteger ss) {
|
inline IndexInteger Reorder(IndexInteger ss) {
|
||||||
return UseLebesgueOrder ? _LebesgueReorder[ss] : ss;
|
return _LebesgueReorder[ss] ;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
////////////////////////////
|
||||||
|
// Space filling fractal for cache oblivious
|
||||||
|
////////////////////////////
|
||||||
|
void ZGraph(void);
|
||||||
IndexInteger alignup(IndexInteger n);
|
IndexInteger alignup(IndexInteger n);
|
||||||
|
|
||||||
LebesgueOrder(GridBase *grid);
|
/////////////////////////////////
|
||||||
|
// Cartesian stencil blocking strategy
|
||||||
|
/////////////////////////////////
|
||||||
|
static std::vector<int> Block;
|
||||||
|
void CartesianBlocking(void);
|
||||||
|
void IterateO(int ND,int dim,
|
||||||
|
std::vector<IndexInteger> & xo,
|
||||||
|
std::vector<IndexInteger> & xi,
|
||||||
|
std::vector<IndexInteger> &dims);
|
||||||
|
void IterateI(int ND,int dim,
|
||||||
|
std::vector<IndexInteger> & xo,
|
||||||
|
std::vector<IndexInteger> & xi,
|
||||||
|
std::vector<IndexInteger> &dims);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::vector<IndexInteger> _LebesgueReorder;
|
std::vector<IndexInteger> _LebesgueReorder;
|
||||||
|
Loading…
Reference in New Issue
Block a user