commit 8316f9ab7abe128ce7d83e6311a685c1a3fd65a1
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Sun Apr 2 02:35:12 2023 +0200

    Dino4 solver: code finished, but still doesn't work.

diff --git a/src/main/java/org/distorted/solvers/SolverDino4.java b/src/main/java/org/distorted/solvers/SolverDino4.java
index 3cea3b9b..52eb5fbe 100644
--- a/src/main/java/org/distorted/solvers/SolverDino4.java
+++ b/src/main/java/org/distorted/solvers/SolverDino4.java
@@ -87,6 +87,50 @@ public class SolverDino4 extends SolverTablebase
     return 0;
     }
 
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+  private void remap(int[] perm, int[] edges, int index, int section)
+    {
+    int val = edges[index];
+
+    for(int i=index;i<12; i++)
+      if( edges[i]==val )
+        {
+        edges[i]=-1;
+        perm[i] = section;
+        }
+    }
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+  private int[] getPermutation(int[] edges)
+    {
+    int[] perm = new int[12];
+
+    int index0 = 0;
+    remap(perm,edges,index0,0);
+
+    int index1 = index0+1;
+
+    for(;index1<12;index1++)
+      if( edges[index1]>=0 ) break;
+    remap(perm,edges,index1,1);
+
+    int index2 = index1+1;
+
+    for(;index2<12;index2++)
+      if( edges[index2]>=0 ) break;
+    remap(perm,edges,index2,2);
+
+    int index3 = index2+1;
+
+    for(;index3<12;index3++)
+      if( edges[index3]>=0 ) break;
+    remap(perm,edges,index3,3);
+
+    return perm;
+    }
+
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
   public int tablebaseIndex(TwistyObject object)
@@ -97,7 +141,8 @@ public class SolverDino4 extends SolverTablebase
     int result1 = checkEdges(edges);
     if( result1<0 ) return result1;
 
-    return TBDino4.indexFromPartition(edges[0]);
+    int[] perm = getPermutation(edges[0]);
+    return TBDino4.indexFromPartition(perm);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -131,8 +176,7 @@ public class SolverDino4 extends SolverTablebase
     {
     if( mSolver==null )
       {
-      mSolver = ImplementedTablebasesList.createUnpacked(ObjectSignatures.DIN4_3);
-      if( mSolver!=null ) mSolver.createTablebase(-1);
+      mSolver = ImplementedTablebasesList.createPacked(res,ObjectSignatures.DIN4_3);
       }
 
     return mSolver!=null ? mSolver.solution(index,null) : null;
