Project

General

Profile

« Previous | Next » 

Revision 15d1f6ad

Added by Leszek Koltunski about 1 year ago

creation of PruningTables.

View differences:

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