Project

General

Profile

« Previous | Next » 

Revision cf45025f

Added by Leszek Koltunski about 1 year ago

speedup

View differences:

src/main/java/org/distorted/objectlib/tablebases/TBCuboid323.java
334 334

  
335 335
///////////////////////////////////////////////////////////////////////////////////////////////////
336 336

  
337
  public static void cornerFromQuats(int[] corner_perm, int[] quats)
337
  private static void cornerFromQuats(int[] corner_perm, int[] quats)
338 338
    {
339 339
    for(int i=0; i<8; i++) corner_perm[i] = CORNER_MAP_INVERTED[i][quats[i]];
340 340
    }
341 341

  
342 342
///////////////////////////////////////////////////////////////////////////////////////////////////
343 343

  
344
  public static void edgeFromQuats(int[] edge_perm, int[] quats)
344
  private static void edgeFromQuats(int[] edge_perm, int[] quats)
345 345
    {
346
    for(int i=0; i<8; i++) edge_perm[i] = EDGE_MAP_INVERTED[i][quats[i+8]];
346
    edge_perm[0] = EDGE_MAP_INVERTED[0][quats[ 8]]; if(edge_perm[0]>1) edge_perm[0]--;
347
    edge_perm[1] = EDGE_MAP_INVERTED[2][quats[10]]; if(edge_perm[1]>1) edge_perm[1]--;
348
    edge_perm[2] = EDGE_MAP_INVERTED[3][quats[11]]; if(edge_perm[2]>1) edge_perm[2]--;
349
    edge_perm[3] = EDGE_MAP_INVERTED[4][quats[12]]; if(edge_perm[3]>1) edge_perm[3]--;
350
    edge_perm[4] = EDGE_MAP_INVERTED[5][quats[13]]; if(edge_perm[4]>1) edge_perm[4]--;
351
    edge_perm[5] = EDGE_MAP_INVERTED[6][quats[14]]; if(edge_perm[5]>1) edge_perm[5]--;
352
    edge_perm[6] = EDGE_MAP_INVERTED[7][quats[15]]; if(edge_perm[6]>1) edge_perm[6]--;
347 353
    }
348 354

  
349 355
///////////////////////////////////////////////////////////////////////////////////////////////////
......
368 374

  
369 375
  public int getIndex(int[] quats)
370 376
    {
377
    int centers = centersInverted(quats);
378

  
371 379
    int[] corner_perm = new int[8];
372 380
    cornerFromQuats(corner_perm,quats);
373
    int[] edge_perm8  = new int[8];
374
    edgeFromQuats(edge_perm8,quats);
375
    int[] edge_perm7  = edgePermTo7(edge_perm8);
376

  
377 381
    int corner_perm_num = TablebaseHelpers.computePermutationNum(corner_perm);
382

  
383
    int[] edge_perm7  = new int[7];
384
    edgeFromQuats(edge_perm7,quats);
378 385
    int edge_perm_num = TablebaseHelpers.computePermutationNum(edge_perm7);
379
    int centers = centersInverted(quats);
380 386

  
381 387
    return corner_perm_num + 40320*( centers + 2*edge_perm_num);
382 388
    }

Also available in: Unified diff