#ifndef cuZFP_CONSTANTS_H
#define cuZFP_CONSTANTS_H
namespace cuZFP {
#define index_3d(x, y, z) ((x) + 4 * ((y) + 4 * (z)))
__device__ static const unsigned char
perm_3d[64] = {
index_3d(0, 0, 0),
index_3d(1, 0, 0), index_3d(0, 1, 0), index_3d(0, 0, 1),
index_3d(0, 1, 1), index_3d(1, 0, 1), index_3d(1, 1, 0),
index_3d(2, 0, 0), index_3d(0, 2, 0), index_3d(0, 0, 2),
index_3d(1, 1, 1),
index_3d(2, 1, 0), index_3d(2, 0, 1), index_3d(0, 2, 1), index_3d(1, 2, 0), index_3d(1, 0, 2), index_3d(0, 1, 2),
index_3d(3, 0, 0), index_3d(0, 3, 0), index_3d(0, 0, 3),
index_3d(2, 1, 1), index_3d(1, 2, 1), index_3d(1, 1, 2),
index_3d(0, 2, 2), index_3d(2, 0, 2), index_3d(2, 2, 0),
index_3d(3, 1, 0), index_3d(3, 0, 1), index_3d(0, 3, 1), index_3d(1, 3, 0), index_3d(1, 0, 3), index_3d(0, 1, 3),
index_3d(1, 2, 2), index_3d(2, 1, 2), index_3d(2, 2, 1),
index_3d(3, 1, 1), index_3d(1, 3, 1), index_3d(1, 1, 3),
index_3d(3, 2, 0), index_3d(3, 0, 2), index_3d(0, 3, 2), index_3d(2, 3, 0), index_3d(2, 0, 3), index_3d(0, 2, 3),
index_3d(2, 2, 2),
index_3d(3, 2, 1), index_3d(3, 1, 2), index_3d(1, 3, 2), index_3d(2, 3, 1), index_3d(2, 1, 3), index_3d(1, 2, 3),
index_3d(0, 3, 3), index_3d(3, 0, 3), index_3d(3, 3, 0),
index_3d(3, 2, 2), index_3d(2, 3, 2), index_3d(2, 2, 3),
index_3d(1, 3, 3), index_3d(3, 1, 3), index_3d(3, 3, 1),
index_3d(2, 3, 3), index_3d(3, 2, 3), index_3d(3, 3, 2),
index_3d(3, 3, 3), };
#undef index_3d
__device__ static const unsigned char perm_1[4] =
{
0, 1, 2, 3
};
#define index(i, j) ((i) + 4 * (j))
__device__ static const unsigned char perm_2[16] = {
index(0, 0),
index(1, 0),
index(0, 1),
index(1, 1),
index(2, 0),
index(0, 2),
index(2, 1),
index(1, 2),
index(3, 0),
index(0, 3),
index(2, 2),
index(3, 1),
index(1, 3),
index(3, 2),
index(2, 3),
index(3, 3),
};
#undef index
} #endif