package cs.threephase; import java.io.*; public class Tools { private static void read(int[] arr, DataInput in) throws IOException { for (int i=0, len=arr.length; i<len; i++) { arr[i] = in.readInt(); } } private static void write(int[] arr, DataOutput out) throws IOException { for (int i=0, len=arr.length; i<len; i++) { out.writeInt(arr[i]); } } private static void read(int[][] arr, DataInput in) throws IOException { for (int i=0, leng=arr.length; i<leng; i++) { for (int j=0, len=arr[i].length; j<len; j++) { arr[i][j] = in.readInt(); } } } private static void write(int[][] arr, DataOutput out) throws IOException { for (int i=0, leng=arr.length; i<leng; i++) { for (int j=0, len=arr[i].length; j<len; j++) { out.writeInt(arr[i][j]); } } } public synchronized static void initFrom(DataInput in) throws IOException { if (Search.inited) { return; } System.out.println("Initialize Center1 Solver..."); Center1.initSym(); Center1.initSym2Raw(); read(Center1.ctsmv, in); Center1.createPrun(); System.out.println("Initialize Center2 Solver..."); Center2.init(); System.out.println("Initialize Center3 Solver..."); Center3.init(); System.out.println("Initialize Edge3 Solver..."); Edge3.initMvrot(); Edge3.initRaw2Sym(); read(Edge3.eprun, in); System.out.println("OK"); Search.inited = true; } public synchronized static void saveTo(DataOutput out) throws IOException { if (!Search.inited) { Search.init(); } write(Center1.ctsmv, out); write(Edge3.eprun, out); } }