Project

General

Profile

« Previous | Next » 

Revision bdcb662f

Added by Leszek Koltunski about 1 year ago

Progress with TablebasesPruning

View differences:

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