Project

General

Profile

« Previous | Next » 

Revision 6beb2998

Added by Leszek Koltunski 12 months ago

minor speedup

View differences:

src/main/java/org/distorted/objectlib/tablebases/TBCuboid323.java
57 57
  private boolean mUpsideDown;
58 58
  private int[] mCornerPerm, mEdgePerm;
59 59

  
60
  private static final int[] mCPerm  = new int[8];
61
  private static final int[] mE7Perm = new int[7];
62
  private static final int[] mE8Perm = new int[8];
63

  
60 64
///////////////////////////////////////////////////////////////////////////////////////////////////
61 65
// remove perm[1] which is always equal to 1.
62 66

  
......
78 82
///////////////////////////////////////////////////////////////////////////////////////////////////
79 83
// reverse the above
80 84

  
81
  private static int[] edgePermTo8(int[] perm)
85
  private static void edgePermTo8()
82 86
    {
83
    int[] ret = new int[8];
84

  
85
    ret[0] = perm[0]; if( ret[0]>=1 ) ret[0]++;
86
    ret[1] = 1;
87
    ret[2] = perm[1]; if( ret[2]>=1 ) ret[2]++;
88
    ret[3] = perm[2]; if( ret[3]>=1 ) ret[3]++;
89
    ret[4] = perm[3]; if( ret[4]>=1 ) ret[4]++;
90
    ret[5] = perm[4]; if( ret[5]>=1 ) ret[5]++;
91
    ret[6] = perm[5]; if( ret[6]>=1 ) ret[6]++;
92
    ret[7] = perm[6]; if( ret[7]>=1 ) ret[7]++;
93

  
94
    return ret;
87
    mE8Perm[0] = mE7Perm[0]; if( mE8Perm[0]>=1 ) mE8Perm[0]++;
88
    mE8Perm[1] = 1;
89
    mE8Perm[2] = mE7Perm[1]; if( mE8Perm[2]>=1 ) mE8Perm[2]++;
90
    mE8Perm[3] = mE7Perm[2]; if( mE8Perm[3]>=1 ) mE8Perm[3]++;
91
    mE8Perm[4] = mE7Perm[3]; if( mE8Perm[4]>=1 ) mE8Perm[4]++;
92
    mE8Perm[5] = mE7Perm[4]; if( mE8Perm[5]>=1 ) mE8Perm[5]++;
93
    mE8Perm[6] = mE7Perm[5]; if( mE8Perm[6]>=1 ) mE8Perm[6]++;
94
    mE8Perm[7] = mE7Perm[6]; if( mE8Perm[7]>=1 ) mE8Perm[7]++;
95 95
    }
96 96

  
97 97
///////////////////////////////////////////////////////////////////////////////////////////////////
......
322 322

  
323 323
    for(int i=0; i<8; i++)
324 324
      {
325
      int q = CORNER_MAP[i][corner[i]];
326
      quats[i] = q;
327
      }
328
    for(int i=0; i<8; i++)
329
      {
330
      int q = EDGE_MAP[i][edge8[i]];
331
      quats[i+8] = q;
325
      quats[i] = CORNER_MAP[i][corner[i]];
326
      quats[i+8] = EDGE_MAP[i][edge8[i]];
332 327
      }
333 328

  
334
    if( centers==0 )
335
      {
336
      quats[16]=0;
337
      quats[17]=0;
338
      }
339
    else
340
      {
341
      quats[16]=5;
342
      quats[17]=5;
343
      }
329
    int c = centers==0 ? 0:5;
330
    quats[16]=c;
331
    quats[17]=c;
344 332

  
345 333
    return quats;
346 334
    }
......
374 362
    int centers = (index%2);
375 363
    int edgePermNum = index/2;
376 364

  
377
    int[] corner_perm = new int[8];
378
    TablebaseHelpers.getPermutationFromNum(corner_perm,8,cornerPermNum);
379
    int[] edge_perm7 = new int[7];
380
    TablebaseHelpers.getPermutationFromNum(edge_perm7,7,edgePermNum);
381
    int[] edge_perm8 = edgePermTo8(edge_perm7);
365
    TablebaseHelpers.getPermutationFromNum(mCPerm,8,cornerPermNum);
366
    TablebaseHelpers.getPermutationFromNum(mE7Perm,7,edgePermNum);
367
    edgePermTo8();
382 368

  
383
    return quatsFromPermutations(corner_perm,edge_perm8,centers);
369
    return quatsFromPermutations(mCPerm,mE8Perm,centers);
384 370
    }
385 371

  
386 372
///////////////////////////////////////////////////////////////////////////////////////////////////

Also available in: Unified diff