MCPcopy Create free account
hub / github.com/MeigenChou/DCTimer-Android / initSym

Method initSym

app/src/main/java/cs/min2phase/CubieCube.java:484–560  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

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]]];

Callers 2

initMethod · 0.95
initMethod · 0.95

Calls 3

CornMultMethod · 0.95
EdgeMultMethod · 0.95
CornConjugateMethod · 0.95

Tested by

no test coverage detected