internal int getCPermSym() { if (EPermR2S != null) { int idx = EPermR2S[getCPerm()]; return(idx ^ e2c[idx & 0xf]); } if (temps == null) { temps = new CubieCube(); } for (int k = 0; k < 16; k++) { CornConjugate(this, SymInv[k], temps); int idx = Array.BinarySearch(EPermS2R, (char)temps.getCPerm()); if (idx >= 0) { return(idx << 4 | k); } } throw new Exception("assert getCPermSym()"); }