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

Method search1

app/src/main/java/cs/threephase/Search.java:278–305  ·  view source on GitHub ↗
(int ct, int sym, int maxl, int lm, int depth)

Source from the content-addressed store, hash-verified

276// }
277
278 boolean search1(int ct, int sym, int maxl, int lm, int depth) {
279 if (ct==0) {
280 return maxl == 0 && init2(sym, lm);
281 }
282 for (int axis=0; axis<27; axis+=3) {
283 if (axis == lm || axis == lm - 9 || axis == lm - 18) {
284 continue;
285 }
286 for (int power=0; power<3; power++) {
287 int m = axis + power;
288 int ctx = ctsmv[ct][symmove[sym][m]];
289 int prun = csprun[ctx>>>6];
290 if (prun >= maxl) {
291 if (prun > maxl) {
292 break;
293 }
294 continue;
295 }
296 int symx = symmult[sym][ctx&0x3f];
297 ctx>>>=6;
298 move1[depth] = m;
299 if (search1(ctx, symx, maxl-1, axis, depth+1)) {
300 return true;
301 }
302 }
303 }
304 return false;
305 }
306
307 boolean init2(int sym, int lm) {
308 c1.copy(c);

Callers 1

searchMethod · 0.95

Calls 1

init2Method · 0.95

Tested by

no test coverage detected