commit 5312255feb8d8d336fc2dbcd43efbcd4d4700fe6
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Sun Mar 12 23:45:37 2023 +0100

    Cube2 tablebases solver finished.

diff --git a/src/main/java/org/distorted/solvers/SolverCube2.java b/src/main/java/org/distorted/solvers/SolverCube2.java
index 746d7edc..9f583021 100644
--- a/src/main/java/org/distorted/solvers/SolverCube2.java
+++ b/src/main/java/org/distorted/solvers/SolverCube2.java
@@ -17,6 +17,7 @@ import org.distorted.objectlib.main.TwistyObject;
 import org.distorted.objectlib.tablebases.ImplementedTablebasesList;
 import org.distorted.objectlib.tablebases.TablebaseHelpers;
 import org.distorted.objectlib.tablebases.TablebasesAbstract;
+import org.distorted.objectlib.tablebases.TablebasesCube2;
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
@@ -186,23 +187,14 @@ public class SolverCube2 extends SolverTablebase
     int result0 = computeFaceColors(corners);
     if( result0<0 ) return result0;
 
-    int[] corner_perm = new int[8];
-    int result1 = retCornerPermutation(corner_perm,corners);
+    int[] perm = new int[8];
+    int result1 = retCornerPermutation(perm,corners);
     if( result1<0 ) return result1;
 
-    int[] perm = new int[7];
-
-    perm[0] = corner_perm[0]>1 ? corner_perm[0]-1 : corner_perm[0];
-    perm[1] = corner_perm[2]>1 ? corner_perm[2]-1 : corner_perm[2];
-    perm[2] = corner_perm[3]>1 ? corner_perm[3]-1 : corner_perm[3];
-    perm[3] = corner_perm[4]>1 ? corner_perm[4]-1 : corner_perm[4];
-    perm[4] = corner_perm[5]>1 ? corner_perm[5]-1 : corner_perm[5];
-    perm[5] = corner_perm[6]>1 ? corner_perm[6]-1 : corner_perm[6];
-    perm[6] = corner_perm[7]>1 ? corner_perm[7]-1 : corner_perm[7];
-
-    int perm_num = TablebaseHelpers.computePermutationNum(perm);
+    int[] perm7 = TablebasesCube2.shrinkPerm(perm);
+    int permNum = TablebaseHelpers.computePermutationNum(perm7);
     int[] twist = new int[8];
-    fillCornerTwists(twist,corners,corner_perm);
+    fillCornerTwists(twist,corners,perm);
 
     int totalTwist = 0;
     for(int i=0; i<8; i++) totalTwist += twist[i];
@@ -210,7 +202,7 @@ public class SolverCube2 extends SolverTablebase
 
     int twistNum = twist[0] + 3*(twist[2] + 3*(twist[3] + 3*(twist[4] + 3*(twist[5] + 3*twist[6]))));
 
-    return twistNum + 729*perm_num;
+    return twistNum + 729*permNum;
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -289,8 +281,7 @@ public class SolverCube2 extends SolverTablebase
     {
     if( mSolver==null )
       {
-      mSolver = ImplementedTablebasesList.createUnpacked(ObjectSignatures.CUBE_2);
-    //  if( mSolver!=null ) mSolver.createTablebase();
+      mSolver = ImplementedTablebasesList.createPacked(res,ObjectSignatures.CUBE_2);
       }
 
     return mSolver!=null ? mSolver.solution(index,null) : null;
