Revision 15d1f6ad
Added by Leszek Koltunski about 1 year ago
src/main/java/org/distorted/objectlib/tablebases/PruningTable.java | ||
---|---|---|
256 | 256 |
int size = retNumPositions(table,level); |
257 | 257 |
int tableSize = table.getSize(); |
258 | 258 |
|
259 |
android.util.Log.e("D", "----- PRUNING TABLE LEVEL "+level+" ------"); |
|
260 |
|
|
259 | 261 |
for(int i=0; i<supported.length; i++) |
260 | 262 |
{ |
261 | 263 |
int approx = computeApproximateSize( tableSize, size, supported[i]); |
src/main/java/org/distorted/objectlib/tablebases/TablebasesAbstract.java | ||
---|---|---|
41 | 41 |
private final boolean[][] mRotatable; |
42 | 42 |
private final int mScalingFactor; |
43 | 43 |
|
44 |
private Tablebase mTablebase; |
|
45 | 44 |
private int[][] mQuatMult; |
46 | 45 |
private boolean mInitialized; |
47 | 46 |
|
47 |
Tablebase mTablebase; |
|
48 |
|
|
48 | 49 |
private static final float[] mTmp = new float[4]; |
49 | 50 |
|
50 | 51 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
60 | 61 |
abstract int getSize(); |
61 | 62 |
abstract int[] getQuats(int index); |
62 | 63 |
abstract int getIndex(int[] quats); |
63 |
abstract int[] getPruningLevels(); |
|
64 | 64 |
|
65 | 65 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
66 | 66 |
|
... | ... | |
315 | 315 |
|
316 | 316 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
317 | 317 |
|
318 |
public byte[] getPacked() |
|
318 |
public byte[][] getPacked()
|
|
319 | 319 |
{ |
320 |
return mTablebase.getPacked(); |
|
320 |
if( !mInitialized ) createTablebase(-1); |
|
321 |
byte[] data = mTablebase.getPacked(); |
|
322 |
|
|
323 |
return new byte[][] { data }; |
|
321 | 324 |
} |
322 | 325 |
|
323 | 326 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
src/main/java/org/distorted/objectlib/tablebases/TablebasesCuboid232.java | ||
---|---|---|
117 | 117 |
return 12; |
118 | 118 |
} |
119 | 119 |
|
120 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
121 |
|
|
122 |
int[] getPruningLevels() |
|
123 |
{ |
|
124 |
return null; |
|
125 |
} |
|
126 |
|
|
127 | 120 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
128 | 121 |
|
129 | 122 |
private void getCornerQuats(int[] output, int[] perm) |
src/main/java/org/distorted/objectlib/tablebases/TablebasesIvyCube.java | ||
---|---|---|
119 | 119 |
return 7; |
120 | 120 |
} |
121 | 121 |
|
122 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
123 |
|
|
124 |
int[] getPruningLevels() |
|
125 |
{ |
|
126 |
return null; |
|
127 |
} |
|
128 |
|
|
129 | 122 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
130 | 123 |
|
131 | 124 |
private int findFirst(int[] table, int value) |
src/main/java/org/distorted/objectlib/tablebases/TablebasesMITM.java | ||
---|---|---|
23 | 23 |
private boolean mInitialized; |
24 | 24 |
private int[] mLevels; |
25 | 25 |
|
26 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
27 |
|
|
28 |
abstract int[] getPruningLevels(); |
|
29 |
|
|
26 | 30 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
27 | 31 |
|
28 | 32 |
private void createPruningTable(Resources res, int id, int index) |
... | ... | |
72 | 76 |
for(int i=0; i<numOfIDs; i++) createPruningTable(res,resourceIDs[i],i); |
73 | 77 |
} |
74 | 78 |
|
79 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
80 |
|
|
81 |
public byte[][] getPacked() |
|
82 |
{ |
|
83 |
int[] levels = getPruningLevels(); |
|
84 |
int numLevels = levels.length; |
|
85 |
int maxLevel = 0; |
|
86 |
|
|
87 |
for( int l : levels ) |
|
88 |
if( l>maxLevel ) maxLevel = l; |
|
89 |
|
|
90 |
createTablebase(maxLevel); |
|
91 |
|
|
92 |
byte[][] data = new byte[numLevels][]; |
|
93 |
|
|
94 |
for(int i=0; i<numLevels; i++) |
|
95 |
{ |
|
96 |
PruningTable table = new PruningTable(mTablebase,levels[i]); |
|
97 |
data[i] = table.getPacked(); |
|
98 |
} |
|
99 |
|
|
100 |
return data; |
|
101 |
} |
|
102 |
|
|
75 | 103 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
76 | 104 |
|
77 | 105 |
public int[][] solution(int index, int[] extra) |
src/main/java/org/distorted/objectlib/tablebases/TablebasesPyraminx.java | ||
---|---|---|
246 | 246 |
return 9; |
247 | 247 |
} |
248 | 248 |
|
249 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
250 |
|
|
251 |
int[] getPruningLevels() |
|
252 |
{ |
|
253 |
return null; |
|
254 |
} |
|
255 |
|
|
256 | 249 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
257 | 250 |
|
258 | 251 |
public static void getEdgePermutation(int[] output, int[] quats, int index) |
src/main/java/org/distorted/objectlib/tablebases/TablebasesPyraminxDuo.java | ||
---|---|---|
106 | 106 |
return 4; |
107 | 107 |
} |
108 | 108 |
|
109 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
110 |
|
|
111 |
int[] getPruningLevels() |
|
112 |
{ |
|
113 |
return null; |
|
114 |
} |
|
115 |
|
|
116 | 109 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
117 | 110 |
|
118 | 111 |
int[] getQuats(int index) |
src/main/java/org/distorted/objectlib/tablebases/TablebasesSkewbDiamond.java | ||
---|---|---|
131 | 131 |
return 8; |
132 | 132 |
} |
133 | 133 |
|
134 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
135 |
|
|
136 |
int[] getPruningLevels() |
|
137 |
{ |
|
138 |
return null; |
|
139 |
} |
|
140 |
|
|
141 | 134 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
142 | 135 |
|
143 | 136 |
private int computeCenterQuat(int originalLocation, int newLocation) |
Also available in: Unified diff
creation of PruningTables.