mirror of
https://github.com/paboyle/Grid.git
synced 2024-11-10 07:55:35 +00:00
Had to break this out for universal access through the code base.
This commit is contained in:
parent
7f927a541c
commit
9548c8b91f
32
lib/Lexicographic.h
Normal file
32
lib/Lexicographic.h
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
#ifndef GRID_LEXICOGRAPHIC_H
|
||||||
|
#define GRID_LEXICOGRAPHIC_H
|
||||||
|
|
||||||
|
|
||||||
|
namespace Grid{
|
||||||
|
|
||||||
|
class Lexicographic {
|
||||||
|
public:
|
||||||
|
|
||||||
|
static inline void CoorFromIndex (std::vector<int>& coor,int index,std::vector<int> &dims){
|
||||||
|
int nd= dims.size();
|
||||||
|
coor.resize(nd);
|
||||||
|
for(int d=0;d<nd;d++){
|
||||||
|
coor[d] = index % dims[d];
|
||||||
|
index = index / dims[d];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void IndexFromCoor (std::vector<int>& coor,int &index,std::vector<int> &dims){
|
||||||
|
int nd=dims.size();
|
||||||
|
int stride=1;
|
||||||
|
index=0;
|
||||||
|
for(int d=0;d<nd;d++){
|
||||||
|
index = index+stride*coor[d];
|
||||||
|
stride=stride*dims[d];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
#endif
|
Loading…
Reference in New Issue
Block a user