Revision cf45025f
Added by Leszek Koltunski about 1 year ago
src/main/java/org/distorted/objectlib/tablebases/TBCuboid323.java | ||
---|---|---|
334 | 334 |
|
335 | 335 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
336 | 336 |
|
337 |
public static void cornerFromQuats(int[] corner_perm, int[] quats)
|
|
337 |
private static void cornerFromQuats(int[] corner_perm, int[] quats)
|
|
338 | 338 |
{ |
339 | 339 |
for(int i=0; i<8; i++) corner_perm[i] = CORNER_MAP_INVERTED[i][quats[i]]; |
340 | 340 |
} |
341 | 341 |
|
342 | 342 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
343 | 343 |
|
344 |
public static void edgeFromQuats(int[] edge_perm, int[] quats)
|
|
344 |
private static void edgeFromQuats(int[] edge_perm, int[] quats)
|
|
345 | 345 |
{ |
346 |
for(int i=0; i<8; i++) edge_perm[i] = EDGE_MAP_INVERTED[i][quats[i+8]]; |
|
346 |
edge_perm[0] = EDGE_MAP_INVERTED[0][quats[ 8]]; if(edge_perm[0]>1) edge_perm[0]--; |
|
347 |
edge_perm[1] = EDGE_MAP_INVERTED[2][quats[10]]; if(edge_perm[1]>1) edge_perm[1]--; |
|
348 |
edge_perm[2] = EDGE_MAP_INVERTED[3][quats[11]]; if(edge_perm[2]>1) edge_perm[2]--; |
|
349 |
edge_perm[3] = EDGE_MAP_INVERTED[4][quats[12]]; if(edge_perm[3]>1) edge_perm[3]--; |
|
350 |
edge_perm[4] = EDGE_MAP_INVERTED[5][quats[13]]; if(edge_perm[4]>1) edge_perm[4]--; |
|
351 |
edge_perm[5] = EDGE_MAP_INVERTED[6][quats[14]]; if(edge_perm[5]>1) edge_perm[5]--; |
|
352 |
edge_perm[6] = EDGE_MAP_INVERTED[7][quats[15]]; if(edge_perm[6]>1) edge_perm[6]--; |
|
347 | 353 |
} |
348 | 354 |
|
349 | 355 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
368 | 374 |
|
369 | 375 |
public int getIndex(int[] quats) |
370 | 376 |
{ |
377 |
int centers = centersInverted(quats); |
|
378 |
|
|
371 | 379 |
int[] corner_perm = new int[8]; |
372 | 380 |
cornerFromQuats(corner_perm,quats); |
373 |
int[] edge_perm8 = new int[8]; |
|
374 |
edgeFromQuats(edge_perm8,quats); |
|
375 |
int[] edge_perm7 = edgePermTo7(edge_perm8); |
|
376 |
|
|
377 | 381 |
int corner_perm_num = TablebaseHelpers.computePermutationNum(corner_perm); |
382 |
|
|
383 |
int[] edge_perm7 = new int[7]; |
|
384 |
edgeFromQuats(edge_perm7,quats); |
|
378 | 385 |
int edge_perm_num = TablebaseHelpers.computePermutationNum(edge_perm7); |
379 |
int centers = centersInverted(quats); |
|
380 | 386 |
|
381 | 387 |
return corner_perm_num + 40320*( centers + 2*edge_perm_num); |
382 | 388 |
} |
Also available in: Unified diff
speedup