Revision bdcb662f
Added by Leszek Koltunski about 1 year ago
src/main/java/org/distorted/objectlib/tablebases/TablebasesAbstract.java | ||
---|---|---|
29 | 29 |
private final Static3D[] mAxis; |
30 | 30 |
private final int mSize, mMinScramble; |
31 | 31 |
private final int[][] mAngles; |
32 |
private final int mNumAxis; |
|
33 | 32 |
private final int[] mNumLayers; |
34 | 33 |
private final int mNumQuats; |
35 | 34 |
private final Static4D[] mQuats; |
36 |
private final int[][] mRotRow; |
|
37 |
private final int mNumCubits; |
|
38 |
private final float[][] mPosition; |
|
39 | 35 |
private final float[][] mCuts; |
40 | 36 |
private final int[] mNumCuts; |
41 |
private final boolean[][] mRotatable; |
|
42 |
private final int mScalingFactor; |
|
43 | 37 |
|
44 | 38 |
private int[][] mQuatMult; |
45 | 39 |
private boolean mInitialized; |
46 | 40 |
|
47 | 41 |
Tablebase mTablebase; |
42 |
final int mScalingFactor; |
|
43 |
final int mNumAxis; |
|
44 |
final float[][] mPosition; |
|
45 |
final int[][] mRotRow; |
|
46 |
final int mNumCubits; |
|
47 |
final boolean[][] mRotatable; |
|
48 | 48 |
|
49 | 49 |
private static final float[] mTmp = new float[4]; |
50 | 50 |
|
... | ... | |
127 | 127 |
|
128 | 128 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
129 | 129 |
|
130 |
private int computeRow(float[] pos, int quat, int axisIndex)
|
|
130 |
int computeRow(float[] pos, int quat, int axisIndex) |
|
131 | 131 |
{ |
132 | 132 |
int ret=0; |
133 | 133 |
int len = pos.length/3; |
... | ... | |
205 | 205 |
|
206 | 206 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
207 | 207 |
|
208 |
private int getMultQuat(int index1, int index2)
|
|
208 |
int getMultQuat(int index1, int index2) |
|
209 | 209 |
{ |
210 | 210 |
if( mQuatMult==null ) |
211 | 211 |
{ |
... | ... | |
323 | 323 |
return new byte[][] { data }; |
324 | 324 |
} |
325 | 325 |
|
326 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
327 |
|
|
328 |
void convertMoves(int[][] moves) |
|
329 |
{ |
|
330 |
for(int[] move : moves ) |
|
331 |
{ |
|
332 |
int axis = move[0]; |
|
333 |
int layer= move[1]; |
|
334 |
int angle= move[2]; |
|
335 |
|
|
336 |
int maxAngle = mAngles[axis][layer]; |
|
337 |
angle = maxAngle-angle; |
|
338 |
if( angle> 0.5f*maxAngle ) angle -= maxAngle; |
|
339 |
|
|
340 |
move[1] = (1<<layer); |
|
341 |
move[2] = angle; |
|
342 |
} |
|
343 |
} |
|
344 |
|
|
326 | 345 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
327 | 346 |
|
328 | 347 |
private void addMove(ArrayList<int[]> moves, int axis, int layer, int angle) |
... | ... | |
347 | 366 |
|
348 | 367 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
349 | 368 |
|
350 |
private void getNextAxisLayerAngleQuat(int[] data)
|
|
369 |
void getNextAxisLayerAngleQuat(int[] data) |
|
351 | 370 |
{ |
352 | 371 |
int axis = data[0]; |
353 | 372 |
int layer= data[1]; |
... | ... | |
377 | 396 |
return moves; |
378 | 397 |
} |
379 | 398 |
|
380 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
381 |
|
|
382 |
Static4D[] getQuats() |
|
383 |
{ |
|
384 |
return mQuats; |
|
385 |
} |
|
386 |
|
|
387 | 399 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
388 | 400 |
|
389 | 401 |
public int[][] solution(int index, int[] extra) |
... | ... | |
558 | 570 |
|
559 | 571 |
for(int i=0; i<size; i++) |
560 | 572 |
{ |
561 |
if (table.belongs(i))
|
|
573 |
if (table.contains(i))
|
|
562 | 574 |
{ |
563 | 575 |
if ((num % 10) == 0) sb.append("\n"); |
564 | 576 |
num++; |
Also available in: Unified diff
Progress with TablebasesPruning