1 #define index(i, j, k) ((i) + 4 * ((j) + 4 * (k)))
2 
3 /* order coefficients (i, j, k) by i + j + k, then i^2 + j^2 + k^2 */
4 cache_align_(static const uchar perm_3[64]) = {
5   index(0, 0, 0), /*  0 : 0 */
6 
7   index(1, 0, 0), /*  1 : 1 */
8   index(0, 1, 0), /*  2 : 1 */
9   index(0, 0, 1), /*  3 : 1 */
10 
11   index(0, 1, 1), /*  4 : 2 */
12   index(1, 0, 1), /*  5 : 2 */
13   index(1, 1, 0), /*  6 : 2 */
14 
15   index(2, 0, 0), /*  7 : 2 */
16   index(0, 2, 0), /*  8 : 2 */
17   index(0, 0, 2), /*  9 : 2 */
18 
19   index(1, 1, 1), /* 10 : 3 */
20 
21   index(2, 1, 0), /* 11 : 3 */
22   index(2, 0, 1), /* 12 : 3 */
23   index(0, 2, 1), /* 13 : 3 */
24   index(1, 2, 0), /* 14 : 3 */
25   index(1, 0, 2), /* 15 : 3 */
26   index(0, 1, 2), /* 16 : 3 */
27 
28   index(3, 0, 0), /* 17 : 3 */
29   index(0, 3, 0), /* 18 : 3 */
30   index(0, 0, 3), /* 19 : 3 */
31 
32   index(2, 1, 1), /* 20 : 4 */
33   index(1, 2, 1), /* 21 : 4 */
34   index(1, 1, 2), /* 22 : 4 */
35 
36   index(0, 2, 2), /* 23 : 4 */
37   index(2, 0, 2), /* 24 : 4 */
38   index(2, 2, 0), /* 25 : 4 */
39 
40   index(3, 1, 0), /* 26 : 4 */
41   index(3, 0, 1), /* 27 : 4 */
42   index(0, 3, 1), /* 28 : 4 */
43   index(1, 3, 0), /* 29 : 4 */
44   index(1, 0, 3), /* 30 : 4 */
45   index(0, 1, 3), /* 31 : 4 */
46 
47   index(1, 2, 2), /* 32 : 5 */
48   index(2, 1, 2), /* 33 : 5 */
49   index(2, 2, 1), /* 34 : 5 */
50 
51   index(3, 1, 1), /* 35 : 5 */
52   index(1, 3, 1), /* 36 : 5 */
53   index(1, 1, 3), /* 37 : 5 */
54 
55   index(3, 2, 0), /* 38 : 5 */
56   index(3, 0, 2), /* 39 : 5 */
57   index(0, 3, 2), /* 40 : 5 */
58   index(2, 3, 0), /* 41 : 5 */
59   index(2, 0, 3), /* 42 : 5 */
60   index(0, 2, 3), /* 43 : 5 */
61 
62   index(2, 2, 2), /* 44 : 6 */
63 
64   index(3, 2, 1), /* 45 : 6 */
65   index(3, 1, 2), /* 46 : 6 */
66   index(1, 3, 2), /* 47 : 6 */
67   index(2, 3, 1), /* 48 : 6 */
68   index(2, 1, 3), /* 49 : 6 */
69   index(1, 2, 3), /* 50 : 6 */
70 
71   index(0, 3, 3), /* 51 : 6 */
72   index(3, 0, 3), /* 52 : 6 */
73   index(3, 3, 0), /* 53 : 6 */
74 
75   index(3, 2, 2), /* 54 : 7 */
76   index(2, 3, 2), /* 55 : 7 */
77   index(2, 2, 3), /* 56 : 7 */
78 
79   index(1, 3, 3), /* 57 : 7 */
80   index(3, 1, 3), /* 58 : 7 */
81   index(3, 3, 1), /* 59 : 7 */
82 
83   index(2, 3, 3), /* 60 : 8 */
84   index(3, 2, 3), /* 61 : 8 */
85   index(3, 3, 2), /* 62 : 8 */
86 
87   index(3, 3, 3), /* 63 : 9 */
88 };
89 
90 #undef index
91