| 81 | |
| 82 | private static boolean inip2 = false; |
| 83 | private static void initp2() { |
| 84 | if (inip2) return; |
| 85 | int i, j; |
| 86 | for (i = 0; i < 66; i++) |
| 87 | for (j = 0; j < 4; j++) |
| 88 | for (int k = 0; k < 6; k++) { |
| 89 | int d = edgemv(i, j, 2, k); |
| 90 | if (j < 2) epm2[i * 2 + j][k] = (short) (d >> 3); |
| 91 | eom2[i * 4 + j][k] = (short) ((d / 16) << 2 | d & 3); |
| 92 | } |
| 93 | for (i = 0; i < 528; i++) ed2[i] = -1; |
| 94 | ed2[44 * 8] = ed2[21 * 8] = ed2[17 * 8] = 0; |
| 95 | int c = 3; |
| 96 | for (int d = 0; d < 6; d++) { |
| 97 | //c = 0; |
| 98 | for (i = 0; i < 132; i++) |
| 99 | for (j = 0; j < 4; j++) |
| 100 | if (ed2[i * 4 + j] == d) |
| 101 | for (int l = 0; l < 3; l++) { |
| 102 | int x = i, y = j; |
| 103 | for (int m = 0; m < 3; m++) { |
| 104 | y = eom2[(x / 2) << 2 | y & 3][moves2[l]] & 3; |
| 105 | x = epm2[x][moves2[l]]; |
| 106 | if (ed2[x * 4 + y] < 0) { |
| 107 | ed2[x * 4 + y] = (byte) (d + 1); |
| 108 | c++; |
| 109 | } |
| 110 | } |
| 111 | } |
| 112 | Log.w("dct", d+1+"\t"+c); |
| 113 | } |
| 114 | inip2 = true; |
| 115 | } |
| 116 | |
| 117 | |
| 118 | private static int[] seq = new int[10]; |