()
| 482 | } |
| 483 | |
| 484 | static void initSym() { |
| 485 | CubieCube c = new CubieCube(); |
| 486 | CubieCube d = new CubieCube(); |
| 487 | CubieCube t; |
| 488 | |
| 489 | CubieCube f2 = new CubieCube(28783, 0, 259268407, 0); |
| 490 | CubieCube u4 = new CubieCube(15138, 0, 119765538, 7); |
| 491 | CubieCube lr2 = new CubieCube(5167, 0, 83473207, 0); |
| 492 | lr2.co = new int[] { 3, 3, 3, 3, 3, 3, 3, 3 }; |
| 493 | |
| 494 | for (int i = 0; i < 16; i++) { |
| 495 | CubeSym[i] = new CubieCube(c); |
| 496 | CornMult(c, u4, d); |
| 497 | EdgeMult(c, u4, d); |
| 498 | t = d; d = c; c = t; |
| 499 | if (i % 4 == 3) { |
| 500 | CornMult(c, lr2, d); |
| 501 | EdgeMult(c, lr2, d); |
| 502 | t = d; d = c; c = t; |
| 503 | } |
| 504 | if (i % 8 == 7) { |
| 505 | CornMult(c, f2, d); |
| 506 | EdgeMult(c, f2, d); |
| 507 | t = d; d = c; c = t; |
| 508 | } |
| 509 | } |
| 510 | for (int i = 0; i < 16; i++) { |
| 511 | for (int j = 0; j < 16; j++) { |
| 512 | CornMult(CubeSym[i], CubeSym[j], c); |
| 513 | for (int k = 0; k < 16; k++) { |
| 514 | if (CubeSym[k].cp[0] == c.cp[0] && CubeSym[k].cp[1] == c.cp[1] && CubeSym[k].cp[2] == c.cp[2]) { |
| 515 | SymMult[i][j] = k; |
| 516 | if (k == 0) { |
| 517 | SymInv[i] = j; |
| 518 | } |
| 519 | break; |
| 520 | } |
| 521 | } |
| 522 | } |
| 523 | } |
| 524 | for (int j = 0; j < 18; j++) { |
| 525 | for (int s = 0; s < 16; s++) { |
| 526 | CornConjugate(moveCube[j], SymInv[s], c); |
| 527 | CONTINUE: |
| 528 | for (int m = 0; m < 18; m++) { |
| 529 | for (int i = 0; i < 8; i += 2) { |
| 530 | if (c.cp[i] != moveCube[m].cp[i]) { |
| 531 | continue CONTINUE; |
| 532 | } |
| 533 | } |
| 534 | SymMove[s][j] = m; |
| 535 | break; |
| 536 | } |
| 537 | } |
| 538 | } |
| 539 | for (int j = 0; j < 10; j++) { |
| 540 | for (int s = 0; s < 16; s++) { |
| 541 | SymMoveUD[s][j] = Util.std2ud[SymMove[s][Util.ud2std[j]]]; |
no test coverage detected