This is an automated email from the ASF dual-hosted git repository.

hui pushed a commit to branch research/encoding-reorder
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit 15371089b12ee63c797955d91e62da288b1d6660
Author: xjz17 <[email protected]>
AuthorDate: Tue Oct 31 16:57:13 2023 +0800

    Update REGERTest.java
---
 .../encoding/{RegerTest.java => REGERTest.java}    | 1192 ++++++--------------
 1 file changed, 350 insertions(+), 842 deletions(-)

diff --git 
a/iotdb-core/tsfile/src/test/java/org/apache/iotdb/tsfile/encoding/RegerTest.java
 
b/iotdb-core/tsfile/src/test/java/org/apache/iotdb/tsfile/encoding/REGERTest.java
similarity index 76%
rename from 
iotdb-core/tsfile/src/test/java/org/apache/iotdb/tsfile/encoding/RegerTest.java
rename to 
iotdb-core/tsfile/src/test/java/org/apache/iotdb/tsfile/encoding/REGERTest.java
index b90aa3702d4..90e0480c1c6 100644
--- 
a/iotdb-core/tsfile/src/test/java/org/apache/iotdb/tsfile/encoding/RegerTest.java
+++ 
b/iotdb-core/tsfile/src/test/java/org/apache/iotdb/tsfile/encoding/REGERTest.java
@@ -13,17 +13,12 @@ import java.util.*;
 
 import static java.lang.Math.abs;
 
-public class RegerTest {
+public class REGERTest {
     public static int getBitWith(int num) {
         if (num == 0) return 1;
         else return 32 - Integer.numberOfLeadingZeros(num);
     }
 
-    public static int getBitWithDelta(int num) {
-        if (num == 0) return 0;
-        else return 32 - Integer.numberOfLeadingZeros(num);
-    }
-
     public static boolean containsValue(int[] array, int targetValue) {
         for (int value : array) {
             if (value == targetValue) {
@@ -71,10 +66,12 @@ public class RegerTest {
     public static void intByte2Bytes(int integer, int encode_pos, byte[] 
cur_byte) {
         cur_byte[encode_pos] = (byte) (integer);
     }
+
     public static void intWord2Bytes(int integer, int encode_pos, byte[] 
cur_byte) {
         cur_byte[encode_pos] = (byte) (integer >> 8);
-        cur_byte[encode_pos+1] = (byte) (integer);
+        cur_byte[encode_pos + 1] = (byte) (integer);
     }
+
     public static int bytes2Integer(byte[] encoded, int start, int num) {
         int value = 0;
         if (num > 4) {
@@ -93,10 +90,11 @@ public class RegerTest {
         int value = 0;
         int b = encoded[decode_pos] & 0xFF;
         value |= b;
-        if(value == 0)
+        if (value == 0)
             return 256;
-        return value%256;
+        return value % 256;
     }
+
     public static void pack8Values(ArrayList<Integer> values, int offset, int 
width, int encode_pos, byte[] encoded_result) {
         int bufIdx = 0;
         int valueIdx = offset;
@@ -214,7 +212,7 @@ public class RegerTest {
             // not enough to decode one Integer.
             while (totalBits >= width && valueIdx < 8) {
                 result_list[value_pos] = (int) (buffer >>> (totalBits - 
width));
-                value_pos ++;
+                value_pos++;
                 valueIdx++;
                 totalBits -= width;
                 buffer = buffer & ((1L << totalBits) - 1);
@@ -233,36 +231,20 @@ public class RegerTest {
         return encode_pos;
 
     }
+
     public static int decodeBitPacking(
             byte[] encoded, int decode_pos, int bit_width, int block_size, 
int[] result_list) {
-//        int[] result_list = new int[];
         int block_num = block_size / 8;
         int value_pos = 0;
 
         for (int i = 0; i < block_num; i++) { // bitpacking
-            value_pos = unpack8Values( encoded, decode_pos, bit_width, 
value_pos, result_list);
+            value_pos = unpack8Values(encoded, decode_pos, bit_width, 
value_pos, result_list);
             decode_pos += bit_width;
         }
-//        decode_pos_result.add(decode_pos);
         return decode_pos;
     }
 
 
-
-    public static double bytes2Double(ArrayList<Byte> encoded, int start, int 
num) {
-        if (num > 8) {
-            System.out.println("bytes2Doubleerror");
-            return 0;
-        }
-        long value = 0;
-        for (int i = 0; i < 8; i++) {
-            value |= ((long) (encoded.get(i + start) & 0xff)) << (8 * i);
-        }
-        return Double.longBitsToDouble(value);
-    }
-
-
-
     public static void float2bytes(float f, int pos_encode, byte[] 
encode_result) {
         int fbit = Float.floatToIntBits(f);
         byte[] b = new byte[4];
@@ -274,23 +256,12 @@ public class RegerTest {
         System.arraycopy(b, 0, encode_result, pos_encode, len);
         byte temp;
         for (int i = 0; i < len / 2; ++i) {
-            temp = encode_result[i+pos_encode];
-            encode_result[i+pos_encode] = encode_result[len - i - 
1+pos_encode];
-            encode_result[len - i - 1+pos_encode] = temp;
+            temp = encode_result[i + pos_encode];
+            encode_result[i + pos_encode] = encode_result[len - i - 1 + 
pos_encode];
+            encode_result[len - i - 1 + pos_encode] = temp;
         }
     }
 
-    public static float bytes2float(ArrayList<Byte> b, int index) {
-        int l;
-        l = b.get(index);
-        l &= 0xff;
-        l |= ((long) b.get(index + 1) << 8);
-        l &= 0xffff;
-        l |= ((long) b.get(index + 2) << 16);
-        l &= 0xffffff;
-        l |= ((long) b.get(index + 3) << 24);
-        return Float.intBitsToFloat(l);
-    }
     public static float bytes2float(byte[] b, int index) {
         int l;
         l = b[index];
@@ -317,47 +288,6 @@ public class RegerTest {
         return value;
     }
 
-    public static int bytes2BitWidth(ArrayList<Byte> encoded, int start, int 
num) {
-        int value = 0;
-        if (num > 4) {
-            System.out.println("bytes2Integer error");
-            return 0;
-        }
-        for (int i = 0; i < num; i++) {
-            value <<= 8;
-            int b = encoded.get(i + start) & 0xFF;
-            value |= b;
-        }
-        return value;
-    }
-
-    public static ArrayList<Integer> decodebitPacking(
-            ArrayList<Byte> encoded, int decode_pos, int bit_width, int 
min_delta, int block_size) {
-        ArrayList<Integer> result_list = new ArrayList<>();
-        for (int i = 0; i < (block_size - 1) / 8; i++) { // bitpacking  
纵向8个,bit width是多少列
-            int[] val8 = new int[8];
-            for (int j = 0; j < 8; j++) {
-                val8[j] = 0;
-            }
-            for (int j = 0; j < bit_width; j++) {
-                byte tmp_byte = encoded.get(decode_pos + bit_width - 1 - j);
-                byte[] bit8 = new byte[8];
-                for (int k = 0; k < 8; k++) {
-                    bit8[k] = (byte) (tmp_byte & 1);
-                    tmp_byte = (byte) (tmp_byte >> 1);
-                }
-                for (int k = 0; k < 8; k++) {
-                    val8[k] = val8[k] * 2 + bit8[k];
-                }
-            }
-            for (int j = 0; j < 8; j++) {
-                result_list.add(val8[j] + min_delta);
-            }
-            decode_pos += bit_width;
-        }
-        return result_list;
-    }
-
     public static int part(int[][] arr, int index, int low, int high) {
         int[] tmp = arr[low];
         while (low < high) {
@@ -375,39 +305,14 @@ public class RegerTest {
                     && arr[low][index ^ 1] <= tmp[index ^ 1]))) {
                 low++;
             }
-            arr[high][0]=arr[low][0];
-            arr[high][1]=arr[low][1];
+            arr[high][0] = arr[low][0];
+            arr[high][1] = arr[low][1];
         }
         arr[low][0] = tmp[0];
         arr[low][1] = tmp[1];
         return low;
     }
 
-    public static void quickSort(int[][] arr, int index, int low, int high) {
-        Stack<Integer> stack = new Stack<>();
-        int mid = part(arr, index, low, high);
-        if (mid + 1 < high) {
-            stack.push(mid + 1);
-            stack.push(high);
-        }
-        if (mid - 1 > low) {
-            stack.push(low);
-            stack.push(mid - 1);
-        }
-        while (stack.empty() == false) {
-            high = stack.pop();
-            low = stack.pop();
-            mid = part(arr, index, low, high);
-            if (mid + 1 < high) {
-                stack.push(mid + 1);
-                stack.push(high);
-            }
-            if (mid - 1 > low) {
-                stack.push(low);
-                stack.push(mid - 1);
-            }
-        }
-    }
     public static int part(ArrayList<ArrayList<Integer>> arr, int index, int 
low, int high) {
         ArrayList<Integer> tmp = arr.get(low);
         while (low < high) {
@@ -430,31 +335,7 @@ public class RegerTest {
         return low;
     }
 
-    public static void quickSort(ArrayList<ArrayList<Integer>> arr, int index, 
int low, int high) {
-        Stack<Integer> stack = new Stack<>();
-        int mid = part(arr, index, low, high);
-        if (mid + 1 < high) {
-            stack.push(mid + 1);
-            stack.push(high);
-        }
-        if (mid - 1 > low) {
-            stack.push(low);
-            stack.push(mid - 1);
-        }
-        while (stack.empty() == false) {
-            high = stack.pop();
-            low = stack.pop();
-            mid = part(arr, index, low, high);
-            if (mid + 1 < high) {
-                stack.push(mid + 1);
-                stack.push(high);
-            }
-            if (mid - 1 > low) {
-                stack.push(low);
-                stack.push(mid - 1);
-            }
-        }
-    }
+
     public static int getCommon(int m, int n) {
         int z;
         while (m % n != 0) {
@@ -473,10 +354,8 @@ public class RegerTest {
             if (td_common == 0) {
                 if (time_diffi != 0) {
                     td_common = time_diffi;
-                    continue;
-                } else {
-                    continue;
                 }
+                continue;
             }
             if (time_diffi != 0) {
                 td_common = getCommon(time_diffi, td_common);
@@ -500,19 +379,13 @@ public class RegerTest {
         result.add(td_common);
     }
 
-    // ------------------------------------------------basic 
function-------------------------------------------------------
 
-    // adjust 0 to no n
-
-    private static void adjust1TimeCost(int[][] ts_block, int i, int[] 
raw_length, ArrayList<Integer> min_index,float[] theta) {
+    private static void adjust1TimeCost(int[][] ts_block, int i, int[] 
raw_length, ArrayList<Integer> min_index, float[] theta) {
 
 
         int block_size = ts_block.length;
         float theta0_t = theta[0];
         float theta1_t = theta[1];
-        float theta0_v = theta[2];
-        float theta1_v = theta[3];
-
 
         int min_delta_time = ts_block[i][0] - (int) (theta0_t + theta1_t * 
(float) ts_block[i - 1][0]);
         int min_delta_time_i = min_delta_time;
@@ -520,23 +393,21 @@ public class RegerTest {
 
         for (int j = 1; j < block_size; j++) {
             int timestamp_delta_i = ts_block[j][0] - (int) (theta0_t + 
theta1_t * (float) ts_block[j - 1][0]);
-            if(timestamp_delta_i < min_delta_time){
+            if (timestamp_delta_i < min_delta_time) {
                 min_delta_time_index = j;
                 min_delta_time = timestamp_delta_i;
             }
         }
-        raw_length[0] += (getBitWith(min_delta_time_i - 
min_delta_time)*(block_size-1));
+        raw_length[0] += (getBitWith(min_delta_time_i - min_delta_time) * 
(block_size - 1));
         raw_length[3] = min_delta_time;
         min_index.set(0, min_delta_time_index);
 
 
     }
 
-    private static void adjust1ValueCost(int[][] ts_block, int i, int[] 
raw_length, ArrayList<Integer> min_index,float[] theta) {
+    private static void adjust1ValueCost(int[][] ts_block, int i, int[] 
raw_length, ArrayList<Integer> min_index, float[] theta) {
 
         int block_size = ts_block.length;
-        float theta0_t = theta[0];
-        float theta1_t = theta[1];
         float theta0_v = theta[2];
         float theta1_v = theta[3];
 
@@ -547,12 +418,12 @@ public class RegerTest {
 
         for (int j = 1; j < block_size; j++) {
             int value_delta_i = ts_block[j][1] - (int) (theta0_v + theta1_v * 
(float) ts_block[j - 1][1]);
-            if(value_delta_i < min_delta_value){
+            if (value_delta_i < min_delta_value) {
                 min_delta_value_index = j;
                 min_delta_value = value_delta_i;
             }
         }
-        raw_length[0] += (getBitWith(min_delta_value_i - 
min_delta_value)*(block_size-1));
+        raw_length[0] += (getBitWith(min_delta_value_i - min_delta_value) * 
(block_size - 1));
         raw_length[3] = min_delta_value;
         min_index.set(0, min_delta_value_index);
 
@@ -646,93 +517,6 @@ public class RegerTest {
         return b;
     }
 
-//    private static int[] adjust0MinChangeTime(
-//            int[][] ts_block, int j, int change_ti, float[] theta) {
-//        int block_size = ts_block.length;
-//        assert j != block_size;
-//
-//        int[] b = new int[3];
-//        int timestamp_delta_min = Integer.MAX_VALUE;
-//        int value_delta_min = Integer.MAX_VALUE;
-//        int timestamp_delta_max = Integer.MIN_VALUE;
-//        int value_delta_max = Integer.MIN_VALUE;
-//        int[][] ts_block_delta = new int[block_size - 1][2];
-//
-//        float theta0_t = theta[0];
-//        float theta1_t = theta[1];
-//        float theta0_v = theta[2];
-//        float theta1_v = theta[3];
-//
-//
-//        int pos_ts_block_delta = 0;
-//        for (int i = 2; i < block_size; i++) {
-//            int timestamp_delta_i;
-//            int value_delta_i;
-//            if (i != j) {
-//                timestamp_delta_i =
-//                        ts_block[i][0]
-//                                - (int) (theta0_t + theta1_t * (float) 
ts_block[i - 1][0]);
-//                value_delta_i =
-//                        ts_block[i][1]
-//                                - (int) (theta0_v + theta1_v * (float) 
ts_block[i - 1][1]);
-//            } else {
-//                timestamp_delta_i =
-//                        ts_block[j][0]
-//                                - (int) (theta0_t + theta1_t * (float) 
ts_block[0][0]);
-//                value_delta_i =
-//                        ts_block[j][1]
-//                                - (int) (theta0_v + theta1_v * (float) 
ts_block[0][1]);
-//
-//                ts_block_delta[pos_ts_block_delta][0] = timestamp_delta_i;
-//                ts_block_delta[pos_ts_block_delta][1] = value_delta_i;
-//                pos_ts_block_delta++;
-//
-//                if (timestamp_delta_i > timestamp_delta_max) {
-//                    timestamp_delta_max = timestamp_delta_i;
-//                }
-//                if (timestamp_delta_i < timestamp_delta_min) {
-//                    timestamp_delta_min = timestamp_delta_i;
-//                }
-//                if (value_delta_i > value_delta_max) {
-//                    value_delta_max = value_delta_i;
-//                }
-//                if (value_delta_i < value_delta_min) {
-//                    value_delta_min = value_delta_i;
-//                }
-//                timestamp_delta_i = ts_block[0][0] - (int) (theta0_t + 
theta1_t * (float) ts_block[j - 1][0]);
-//                value_delta_i = ts_block[0][1] - (int) (theta0_v + theta1_v 
* (float) ts_block[j - 1][1]);
-//            }
-//            ts_block_delta[pos_ts_block_delta][0] = timestamp_delta_i;
-//            ts_block_delta[pos_ts_block_delta][1] = value_delta_i;
-//            pos_ts_block_delta++;
-//
-//            if (timestamp_delta_i > timestamp_delta_max) {
-//                timestamp_delta_max = timestamp_delta_i;
-//            }
-//            if (timestamp_delta_i < timestamp_delta_min) {
-//                timestamp_delta_min = timestamp_delta_i;
-//            }
-//            if (value_delta_i > value_delta_max) {
-//                value_delta_max = value_delta_i;
-//            }
-//            if (value_delta_i < value_delta_min) {
-//                value_delta_min = value_delta_i;
-//            }
-//
-//        }
-//        int length = 0;
-//        for (int[] segment_max : ts_block_delta) {
-//            length += getBitWith(segment_max[0] - timestamp_delta_min);
-//            length += getBitWith(segment_max[1] - value_delta_min);
-//        }
-//
-//        b[0] = length;
-//        b[1] = timestamp_delta_min;
-//        b[2] = value_delta_min;
-//
-//        return b;
-//    }
-
     private static int[] adjust0MinChangeNo(
             int[][] ts_block, int[] raw_length, int j, float[] theta) {
         int block_size = ts_block.length;
@@ -762,15 +546,13 @@ public class RegerTest {
         length -= getBitWith(value_delta_i - value_delta_min);
         timestamp_delta_i = ts_block[0][0] - (int) (theta0_t + theta1_t * 
(float) ts_block[j - 1][0]);
         value_delta_i = ts_block[0][1] - (int) (theta0_v + theta1_v * (float) 
ts_block[j - 1][1]);
-//        if (timestamp_delta_i < timestamp_delta_min || value_delta_i < 
timestamp_delta_min) {
-//            return adjust0MinChange(ts_block, j, theta);
-//        }
-        if (timestamp_delta_i < timestamp_delta_min ) {
-            length += getBitWith(timestamp_delta_min - timestamp_delta_i) * 
(block_size-1);
+
+        if (timestamp_delta_i < timestamp_delta_min) {
+            length += getBitWith(timestamp_delta_min - timestamp_delta_i) * 
(block_size - 1);
             timestamp_delta_min = timestamp_delta_i;
         }
-        if (value_delta_i < value_delta_min ) {
-            length += getBitWith( value_delta_min - value_delta_i) * 
(block_size-1);
+        if (value_delta_i < value_delta_min) {
+            length += getBitWith(value_delta_min - value_delta_i) * 
(block_size - 1);
             value_delta_min = value_delta_i;
         }
         length += getBitWith(timestamp_delta_i - timestamp_delta_min);
@@ -778,15 +560,13 @@ public class RegerTest {
 
         timestamp_delta_i = ts_block[j + 1][0] - (int) (theta0_t + theta1_t * 
(float) ts_block[0][0]);
         value_delta_i = ts_block[j + 1][1] - (int) (theta0_v + theta1_v * 
(float) ts_block[0][1]);
-//        if (timestamp_delta_i < timestamp_delta_min || value_delta_i < 
timestamp_delta_min) {
-//            return adjust0MinChange(ts_block, j, theta);
-//        }
-        if (timestamp_delta_i < timestamp_delta_min ) {
-            length += getBitWith(timestamp_delta_min - timestamp_delta_i) * 
(block_size-1);
+
+        if (timestamp_delta_i < timestamp_delta_min) {
+            length += getBitWith(timestamp_delta_min - timestamp_delta_i) * 
(block_size - 1);
             timestamp_delta_min = timestamp_delta_i;
         }
-        if (value_delta_i < value_delta_min ) {
-            length += getBitWith( value_delta_min - value_delta_i) * 
(block_size-1);
+        if (value_delta_i < value_delta_min) {
+            length += getBitWith(value_delta_min - value_delta_i) * 
(block_size - 1);
             value_delta_min = value_delta_i;
         }
         length += getBitWith(timestamp_delta_i - timestamp_delta_min);
@@ -881,15 +661,13 @@ public class RegerTest {
         length -= getBitWith(value_delta_i - value_delta_min);
         timestamp_delta_i = ts_block[0][0] - (int) (theta0_t + theta1_t * 
(float) ts_block[block_size - 1][0]);
         value_delta_i = ts_block[0][1] - (int) (theta0_v + theta1_v * (float) 
ts_block[block_size - 1][1]);
-//        if (timestamp_delta_i < timestamp_delta_min || value_delta_i < 
timestamp_delta_min) {
-//            return adjust0n1MinChange(ts_block, theta);
-//        }
-        if (timestamp_delta_i < timestamp_delta_min ) {
-            length += getBitWith(timestamp_delta_min - timestamp_delta_i) * 
(block_size-1);
+
+        if (timestamp_delta_i < timestamp_delta_min) {
+            length += getBitWith(timestamp_delta_min - timestamp_delta_i) * 
(block_size - 1);
             timestamp_delta_min = timestamp_delta_i;
         }
-        if (value_delta_i < value_delta_min ) {
-            length += getBitWith( value_delta_min - value_delta_i) * 
(block_size-1);
+        if (value_delta_i < value_delta_min) {
+            length += getBitWith(value_delta_min - value_delta_i) * 
(block_size - 1);
             value_delta_min = value_delta_i;
         }
         length += getBitWith(timestamp_delta_i - timestamp_delta_min);
@@ -997,15 +775,13 @@ public class RegerTest {
         timestamp_delta_i = ts_block[j][0] - (int) (theta0_t + theta1_t * 
(float) ts_block[block_size - 1][0]);
         value_delta_i = ts_block[j][1] - (int) (theta0_v + theta1_v * (float) 
ts_block[block_size - 1][1]);
 
-//        if (timestamp_delta_i < timestamp_delta_min || value_delta_i < 
timestamp_delta_min) {
-//            return adjustnMinChange(ts_block, j, theta);
-//        }
-        if (timestamp_delta_i < timestamp_delta_min ) {
-            length += getBitWith(timestamp_delta_min - timestamp_delta_i) * 
(block_size-1);
+
+        if (timestamp_delta_i < timestamp_delta_min) {
+            length += getBitWith(timestamp_delta_min - timestamp_delta_i) * 
(block_size - 1);
             timestamp_delta_min = timestamp_delta_i;
         }
-        if (value_delta_i < value_delta_min ) {
-            length += getBitWith( value_delta_min - value_delta_i) * 
(block_size-1);
+        if (value_delta_i < value_delta_min) {
+            length += getBitWith(value_delta_min - value_delta_i) * 
(block_size - 1);
             value_delta_min = value_delta_i;
         }
         length += getBitWith(timestamp_delta_i - timestamp_delta_min);
@@ -1013,15 +789,13 @@ public class RegerTest {
         timestamp_delta_i = ts_block[block_size - 1][0] - (int) (theta0_t + 
theta1_t * (float) ts_block[j - 1][0]);
         value_delta_i = ts_block[block_size - 1][1] - (int) (theta0_v + 
theta1_v * (float) ts_block[j - 1][1]);
 
-//        if (timestamp_delta_i < timestamp_delta_min || value_delta_i < 
timestamp_delta_min) {
-//            return adjustnMinChange(ts_block, j, theta);
-//        }
-        if (timestamp_delta_i < timestamp_delta_min ) {
-            length += getBitWith(timestamp_delta_min - timestamp_delta_i) * 
(block_size-1);
+
+        if (timestamp_delta_i < timestamp_delta_min) {
+            length += getBitWith(timestamp_delta_min - timestamp_delta_i) * 
(block_size - 1);
             timestamp_delta_min = timestamp_delta_i;
         }
-        if (value_delta_i < value_delta_min ) {
-            length += getBitWith( value_delta_min - value_delta_i) * 
(block_size-1);
+        if (value_delta_i < value_delta_min) {
+            length += getBitWith(value_delta_min - value_delta_i) * 
(block_size - 1);
             value_delta_min = value_delta_i;
         }
         length += getBitWith(timestamp_delta_i - timestamp_delta_min);
@@ -1114,15 +888,13 @@ public class RegerTest {
         timestamp_delta_i = ts_block[0][0] - (int) (theta0_t + theta1_t * 
(float) ts_block[block_size - 1][0]);
         value_delta_i = ts_block[0][1] - (int) (theta0_v + theta1_v * (float) 
ts_block[block_size - 1][1]);
 
-//        if (timestamp_delta_i < timestamp_delta_min || value_delta_i < 
timestamp_delta_min) {
-//            return adjustn0MinChange(ts_block, theta);
-//        }
-        if (timestamp_delta_i < timestamp_delta_min ) {
-            length += getBitWith(timestamp_delta_min - timestamp_delta_i) * 
(block_size-1);
+
+        if (timestamp_delta_i < timestamp_delta_min) {
+            length += getBitWith(timestamp_delta_min - timestamp_delta_i) * 
(block_size - 1);
             timestamp_delta_min = timestamp_delta_i;
         }
-        if (value_delta_i < value_delta_min ) {
-            length += getBitWith( value_delta_min - value_delta_i) * 
(block_size-1);
+        if (value_delta_i < value_delta_min) {
+            length += getBitWith(value_delta_min - value_delta_i) * 
(block_size - 1);
             value_delta_min = value_delta_i;
         }
         length += getBitWith(timestamp_delta_i - timestamp_delta_min);
@@ -1234,35 +1006,29 @@ public class RegerTest {
 
         timestamp_delta_i = ts_block[alpha][0] - (int) (theta0_t + theta1_t * 
(float) ts_block[j - 1][0]);
         value_delta_i = ts_block[alpha][1] - (int) (theta0_v + theta1_v * 
(float) ts_block[j - 1][1]);
-        if (timestamp_delta_i < timestamp_delta_min ) {
-            length += getBitWith(timestamp_delta_min - timestamp_delta_i) * 
(block_size-1);
+        if (timestamp_delta_i < timestamp_delta_min) {
+            length += getBitWith(timestamp_delta_min - timestamp_delta_i) * 
(block_size - 1);
             timestamp_delta_min = timestamp_delta_i;
         }
-        if (value_delta_i < value_delta_min ) {
-            length += getBitWith( value_delta_min - value_delta_i) * 
(block_size-1);
+        if (value_delta_i < value_delta_min) {
+            length += getBitWith(value_delta_min - value_delta_i) * 
(block_size - 1);
             value_delta_min = value_delta_i;
         }
-//        if (timestamp_delta_i < timestamp_delta_min || value_delta_i < 
value_delta_min) {
-//
-//            return adjustAlphaToJMinChange(ts_block, alpha, j, theta);
-//        }
+
         length += getBitWith(timestamp_delta_i - timestamp_delta_min);
         length += getBitWith(value_delta_i - value_delta_min);
 
         timestamp_delta_i = ts_block[j][0] - (int) (theta0_t + theta1_t * 
(float) ts_block[alpha][0]);
         value_delta_i = ts_block[j][1] - (int) (theta0_v + theta1_v * (float) 
ts_block[alpha][1]);
-        if (timestamp_delta_i < timestamp_delta_min ) {
-            length += getBitWith(timestamp_delta_min - timestamp_delta_i) * 
(block_size-1);
+        if (timestamp_delta_i < timestamp_delta_min) {
+            length += getBitWith(timestamp_delta_min - timestamp_delta_i) * 
(block_size - 1);
             timestamp_delta_min = timestamp_delta_i;
         }
-        if (value_delta_i < value_delta_min ) {
-            length += getBitWith( value_delta_min - value_delta_i) * 
(block_size-1);
+        if (value_delta_i < value_delta_min) {
+            length += getBitWith(value_delta_min - value_delta_i) * 
(block_size - 1);
             value_delta_min = value_delta_i;
         }
 
-//        if (timestamp_delta_i < timestamp_delta_min || value_delta_i < 
value_delta_min) {
-//            return adjustAlphaToJMinChange(ts_block, alpha, j, theta);
-//        }
 
         length += getBitWith(timestamp_delta_i - timestamp_delta_min);
         length += getBitWith(value_delta_i - value_delta_min);
@@ -1270,18 +1036,16 @@ public class RegerTest {
         timestamp_delta_i = ts_block[alpha][0] - (int) (theta0_t + theta1_t * 
(float) ts_block[j - 1][0]);
         value_delta_i = ts_block[alpha][1] - (int) (theta0_v + theta1_v * 
(float) ts_block[j - 1][1]);
 
-        if (timestamp_delta_i < timestamp_delta_min ) {
-            length += getBitWith(timestamp_delta_min - timestamp_delta_i) * 
(block_size-1);
+        if (timestamp_delta_i < timestamp_delta_min) {
+            length += getBitWith(timestamp_delta_min - timestamp_delta_i) * 
(block_size - 1);
             timestamp_delta_min = timestamp_delta_i;
         }
-        if (value_delta_i < value_delta_min ) {
-            length += getBitWith( value_delta_min - value_delta_i) * 
(block_size-1);
+        if (value_delta_i < value_delta_min) {
+            length += getBitWith(value_delta_min - value_delta_i) * 
(block_size - 1);
             value_delta_min = value_delta_i;
         }
 
-//        if (timestamp_delta_i < timestamp_delta_min || value_delta_i < 
value_delta_min) {
-//            return adjustAlphaToJMinChange(ts_block, alpha, j, theta);
-//        }
+
         length += getBitWith(timestamp_delta_i - timestamp_delta_min);
         length += getBitWith(value_delta_i - value_delta_min);
 
@@ -1336,30 +1100,12 @@ public class RegerTest {
                 value_delta_min = value_delta_i;
             }
 
-//            if (timestamp_delta_i > max_interval_segment) {
-//                max_interval_segment = timestamp_delta_i;
-//                tmp_segment.set(0, max_interval_segment);
-//            }
-//            if (value_delta_i > max_value_segment) {
-//                max_value_segment = value_delta_i;
-//                tmp_segment.set(1, max_value_segment);
-//            }
-//            if (i % segment_size == 0) {
-//                ts_block_delta_segment.add(tmp_segment);
-//                tmp_segment = new ArrayList<>();
-//                max_interval_segment = Integer.MIN_VALUE;
-//                max_value_segment = Integer.MIN_VALUE;
-//                tmp_segment.add(max_interval_segment);
-//                tmp_segment.add(max_value_segment);
-//            }
         }
         int length = 0;
         for (int[] segment_max : ts_block_delta) {
             length += getBitWith(segment_max[0] - timestamp_delta_min);
             length += getBitWith(segment_max[1] - value_delta_min);
         }
-//        raw_length.set(3,timestamp_delta_min);
-//        raw_length.set(4,value_delta_min);
 
         b[0] = length;
         b[1] = timestamp_delta_min;
@@ -1376,7 +1122,6 @@ public class RegerTest {
         int[] b = new int[3];
         int timestamp_delta_min = raw_length[3];
         int value_delta_min = raw_length[4];
-        ArrayList<ArrayList<Integer>> ts_block_delta_segment = new 
ArrayList<>();
         float theta0_t = theta[0];
         float theta1_t = theta[1];
         float theta0_v = theta[2];
@@ -1397,16 +1142,13 @@ public class RegerTest {
 
         timestamp_delta_i = ts_block[alpha + 1][0] - (int) (theta0_t + 
theta1_t * (float) ts_block[alpha - 1][0]);
         value_delta_i = ts_block[alpha + 1][1] - (int) (theta0_v + theta1_v * 
(float) ts_block[alpha - 1][1]);
-//        if (timestamp_delta_i < timestamp_delta_min || value_delta_i < 
value_delta_min) {
-//            return adjustTo0MinChange(ts_block, alpha, theta);
-//        }
-//
-        if (timestamp_delta_i < timestamp_delta_min ) {
-            length += getBitWith(timestamp_delta_min - timestamp_delta_i) * 
(block_size-1);
+
+        if (timestamp_delta_i < timestamp_delta_min) {
+            length += getBitWith(timestamp_delta_min - timestamp_delta_i) * 
(block_size - 1);
             timestamp_delta_min = timestamp_delta_i;
         }
-        if (value_delta_i < value_delta_min ) {
-            length += getBitWith( value_delta_min - value_delta_i) * 
(block_size-1);
+        if (value_delta_i < value_delta_min) {
+            length += getBitWith(value_delta_min - value_delta_i) * 
(block_size - 1);
             value_delta_min = value_delta_i;
         }
 
@@ -1414,15 +1156,13 @@ public class RegerTest {
         length += getBitWith(value_delta_i - value_delta_min);
         timestamp_delta_i = ts_block[0][0] - (int) (theta0_t + theta1_t * 
(float) ts_block[alpha][0]);
         value_delta_i = ts_block[0][1] - (int) (theta0_v + theta1_v * (float) 
ts_block[alpha][1]);
-//        if (timestamp_delta_i < timestamp_delta_min || value_delta_i < 
value_delta_min) {
-//            return adjustTo0MinChange(ts_block, alpha, theta);
-//        }
-        if (timestamp_delta_i < timestamp_delta_min ) {
-            length += getBitWith(timestamp_delta_min - timestamp_delta_i) * 
(block_size-1);
+
+        if (timestamp_delta_i < timestamp_delta_min) {
+            length += getBitWith(timestamp_delta_min - timestamp_delta_i) * 
(block_size - 1);
             timestamp_delta_min = timestamp_delta_i;
         }
-        if (value_delta_i < value_delta_min ) {
-            length += getBitWith( value_delta_min - value_delta_i) * 
(block_size-1);
+        if (value_delta_i < value_delta_min) {
+            length += getBitWith(value_delta_min - value_delta_i) * 
(block_size - 1);
             value_delta_min = value_delta_i;
         }
 
@@ -1437,7 +1177,6 @@ public class RegerTest {
     }
 
 
-
     // move alpha to n
     private static int[] adjustTonMinChange(
             int[][] ts_block, int alpha, float[] theta) {
@@ -1521,31 +1260,26 @@ public class RegerTest {
 
         timestamp_delta_i = ts_block[alpha + 1][0] - (int) (theta0_t + 
theta1_t * (float) ts_block[alpha - 1][0]);
         value_delta_i = ts_block[alpha + 1][1] - (int) (theta0_v + theta1_v * 
(float) ts_block[alpha - 1][1]);
-//        if (timestamp_delta_i < timestamp_delta_min || value_delta_i < 
timestamp_delta_min) {
-//            return adjustTonMinChange(ts_block, alpha, theta);
-//        }
 
-        if (timestamp_delta_i < timestamp_delta_min ) {
-            length += getBitWith(timestamp_delta_min - timestamp_delta_i) * 
(block_size-1);
+        if (timestamp_delta_i < timestamp_delta_min) {
+            length += getBitWith(timestamp_delta_min - timestamp_delta_i) * 
(block_size - 1);
             timestamp_delta_min = timestamp_delta_i;
         }
-        if (value_delta_i < value_delta_min ) {
-            length += getBitWith( value_delta_min - value_delta_i) * 
(block_size-1);
+        if (value_delta_i < value_delta_min) {
+            length += getBitWith(value_delta_min - value_delta_i) * 
(block_size - 1);
             value_delta_min = value_delta_i;
         }
         length += getBitWith(timestamp_delta_i - timestamp_delta_min);
         length += getBitWith(value_delta_i - value_delta_min);
         timestamp_delta_i = ts_block[alpha][0] - (int) (theta0_t + theta1_t * 
(float) ts_block[block_size - 1][0]);
         value_delta_i = ts_block[alpha][1] - (int) (theta0_v + theta1_v * 
(float) ts_block[block_size - 1][1]);
-//        if (timestamp_delta_i < timestamp_delta_min || value_delta_i < 
timestamp_delta_min) {
-//            return adjustTonMinChange(ts_block, alpha, theta);
-//        }
-        if (timestamp_delta_i < timestamp_delta_min ) {
-            length += getBitWith(timestamp_delta_min - timestamp_delta_i) * 
(block_size-1);
+
+        if (timestamp_delta_i < timestamp_delta_min) {
+            length += getBitWith(timestamp_delta_min - timestamp_delta_i) * 
(block_size - 1);
             timestamp_delta_min = timestamp_delta_i;
         }
-        if (value_delta_i < value_delta_min ) {
-            length += getBitWith( value_delta_min - value_delta_i) * 
(block_size-1);
+        if (value_delta_i < value_delta_min) {
+            length += getBitWith(value_delta_min - value_delta_i) * 
(block_size - 1);
             value_delta_min = value_delta_i;
         }
         length += getBitWith(timestamp_delta_i - timestamp_delta_min);
@@ -1577,16 +1311,15 @@ public class RegerTest {
         }
         return min_i;
     }
+
     public static int[][] getEncodeBitsRegression(
             int[][] ts_block,
             int block_size,
             int[] raw_length,
-            float[] theta,
-            int segment_size) {
+            float[] theta) {
         int timestamp_delta_min = Integer.MAX_VALUE;
         int value_delta_min = Integer.MAX_VALUE;
         int[][] ts_block_delta = new int[ts_block.length][2];
-//        theta = new float[4];
 
         long sum_X_r = 0;
         long sum_Y_r = 0;
@@ -1679,9 +1412,7 @@ public class RegerTest {
         int max_bit_width_interval = getBitWith(max_interval);
         int max_bit_width_value = getBitWith(max_value);
 
-        // calculate error
-//    result.clear();
-//        raw_length = new int[5];
+
         raw_length[0] = length;
         raw_length[1] = max_bit_width_interval;
         raw_length[2] = max_bit_width_value;
@@ -1809,8 +1540,7 @@ public class RegerTest {
             ArrayList<Integer> min_index,
             int block_size,
             int[] raw_length,
-            float[] theta,
-            int segment_size) {
+            float[] theta) {
 
         int raw_abs_sum = raw_length[0];
         int[][] new_length_list = new int[block_size][3];
@@ -1819,22 +1549,21 @@ public class RegerTest {
         ArrayList<Integer> j_star_list = new ArrayList<>(); // beta list of 
min b phi alpha to j
         int j_star = -1;
         int[] b;
-//    ArrayList<Integer> b = new ArrayList<>();
         if (alpha == -1) {
             return j_star;
         }
 
         if (alpha == 0) {
-            if(min_index.get(0)==1){
+            if (min_index.get(0) == 1) {
                 adjust1TimeCost(ts_block, 1, raw_length, min_index, theta);
             }
-            if(min_index.get(1)==1){
+            if (min_index.get(1) == 1) {
                 adjust1ValueCost(ts_block, 1, raw_length, min_index, theta);
             }
 
-            for (int j = 2; j < block_size-1; j++) {
+            for (int j = 2; j < block_size - 1; j++) {
                 // if j, alpha+1, alpha points are min residuals, need to 
recalculate min residuals
-                if (min_index.contains(j) ) { //|| min_index.contains(1)
+                if (min_index.contains(j)) { //|| min_index.contains(1)
                     b = adjust0MinChange(ts_block, j, theta);
                 } else {
                     b = adjust0MinChangeNo(ts_block, raw_length, j, theta);
@@ -1852,7 +1581,7 @@ public class RegerTest {
                     pos_new_length_list++;
                 }
             }
-            if (min_index.contains(0) ) {
+            if (min_index.contains(0)) {
                 b = adjust0n1MinChange(ts_block, theta);
             } else {
                 b = adjust0n1MinChangeNo(ts_block, raw_length, theta);
@@ -1873,14 +1602,14 @@ public class RegerTest {
             }
         } // alpha == n
         else if (alpha == block_size - 1) {
-            if(min_index.get(0)==block_size - 1){
+            if (min_index.get(0) == block_size - 1) {
                 adjust1TimeCost(ts_block, block_size - 1, raw_length, 
min_index, theta);
             }
-            if(min_index.get(1)==block_size - 1){
+            if (min_index.get(1) == block_size - 1) {
                 adjust1ValueCost(ts_block, block_size - 1, raw_length, 
min_index, theta);
             }
             for (int j = 1; j < block_size - 1; j++) {
-                if ( min_index.contains(j)) { //min_index.contains(block_size 
- 1) ||
+                if (min_index.contains(j)) { //min_index.contains(block_size - 
1) ||
                     b = adjustnMinChange(ts_block, j, theta);
                 } else {
                     b = adjustnMinChangeNo(ts_block, raw_length, j, theta);
@@ -1898,7 +1627,7 @@ public class RegerTest {
                     pos_new_length_list++;
                 }
             }
-            if ( min_index.contains(0)) {//min_index.contains(block_size - 1) 
||
+            if (min_index.contains(0)) {//min_index.contains(block_size - 1) ||
                 b = adjustn0MinChange(ts_block, theta);
             } else {
                 b = adjustn0MinChangeNo(ts_block, raw_length, theta);
@@ -1919,21 +1648,21 @@ public class RegerTest {
             }
         } // alpha != 1 and alpha != n
         else {
-            if(min_index.get(0)==alpha){
+            if (min_index.get(0) == alpha) {
                 adjust1TimeCost(ts_block, alpha, raw_length, min_index, theta);
             }
-            if(min_index.get(1)==alpha){
+            if (min_index.get(1) == alpha) {
                 adjust1ValueCost(ts_block, alpha, raw_length, min_index, 
theta);
             }
-            if(min_index.get(0)==alpha + 1){
+            if (min_index.get(0) == alpha + 1) {
                 adjust1TimeCost(ts_block, alpha + 1, raw_length, min_index, 
theta);
             }
-            if(min_index.get(1)==alpha + 1){
+            if (min_index.get(1) == alpha + 1) {
                 adjust1ValueCost(ts_block, alpha + 1, raw_length, min_index, 
theta);
             }
-            for (int j = 1; j < block_size-1; j++) {
+            for (int j = 1; j < block_size - 1; j++) {
                 if (alpha != j && (alpha + 1) != j) {
-                    if (min_index.contains(j) ) { //|| 
min_index.contains(alpha) || min_index.contains(alpha + 1)
+                    if (min_index.contains(j)) { //|| 
min_index.contains(alpha) || min_index.contains(alpha + 1)
                         b = adjustAlphaToJMinChange(ts_block, alpha, j, theta);
                     } else {
                         b = adjustAlphaToJMinChangeNo(ts_block, raw_length, 
alpha, j, theta);
@@ -1952,7 +1681,7 @@ public class RegerTest {
                     }
                 }
             }
-            if (min_index.contains(0) ) {//|| min_index.contains(alpha) || 
min_index.contains(alpha + 1)
+            if (min_index.contains(0)) {//|| min_index.contains(alpha) || 
min_index.contains(alpha + 1)
                 b = adjustTo0MinChange(ts_block, alpha, theta);
             } else {
                 b = adjustTo0MinChangeNo(ts_block, raw_length, alpha, theta);
@@ -1969,7 +1698,7 @@ public class RegerTest {
                 System.arraycopy(b, 0, new_length_list[pos_new_length_list], 
0, 3);
                 pos_new_length_list++;
             }
-            if (min_index.contains(block_size - 1) ) {//|| 
min_index.contains(alpha) || min_index.contains(alpha + 1)
+            if (min_index.contains(block_size - 1)) {//|| 
min_index.contains(alpha) || min_index.contains(alpha + 1)
                 b = adjustTonMinChange(ts_block, alpha, theta);
             } else {
                 b = adjustTonMinChangeNo(ts_block, raw_length, alpha, theta);
@@ -1989,11 +1718,10 @@ public class RegerTest {
             }
         }
         int[][] new_new_length_list = new int[pos_new_length_list][5];
-        for(int i=0;i<pos_new_length_list;i++){
+        for (int i = 0; i < pos_new_length_list; i++) {
             System.arraycopy(new_new_length_list[i], 0, new_length_list[i], 0, 
3);
         }
 
-
         if (j_star_list.size() != 0) {
             j_star = getIstarClose(alpha, j_star_list, new_new_length_list, 
raw_length);
         }
@@ -2001,7 +1729,6 @@ public class RegerTest {
     }
 
 
-
     public static int[] getIStar(
             int[][] ts_block, ArrayList<Integer> min_index, int block_size, 
int index, float[] theta, int k) {
 
@@ -2009,7 +1736,6 @@ public class RegerTest {
         int value_delta_min = Integer.MAX_VALUE;
         int timestamp_delta_min_index = -1;
         int value_delta_min_index = -1;
-        int alpha = 0;
 
 
         float theta0_t = theta[0];
@@ -2049,10 +1775,9 @@ public class RegerTest {
                 return Integer.compare(a[0], b[0]);
             return Integer.compare(a[1], b[1]);
         });
-//        Arrays.sort(ts_block_delta);
-//    quickSort(ts_block_delta, 1, 0, block_size - 2);
+
         int[] alpha_list = new int[k + 1];
-//    ArrayList<Integer> alpha_list = new ArrayList<>();
+
         alpha_list[0] = ts_block_delta[0][0];
         for (int i = 0; i < k; i++) {
             alpha_list[i + 1] = ts_block_delta[block_size - 2 - k][0];
@@ -2070,10 +1795,6 @@ public class RegerTest {
         int value_delta_max = Integer.MIN_VALUE;
         int timestamp_delta_min = Integer.MAX_VALUE;
         int value_delta_min = Integer.MAX_VALUE;
-        int timestamp_delta_max_index = -1;
-        int value_delta_max_index = -1;
-        int timestamp_delta_min_index = -1;
-        int value_delta_min_index = -1;
         int[] alpha_list = new int[2 * k + 2];
 
         int[][] ts_block_delta_time = new int[block_size - 1][2];
@@ -2095,16 +1816,16 @@ public class RegerTest {
 
 
             if (epsilon_v_j > value_delta_max) {
-                value_delta_max = (int) epsilon_v_j;
+                value_delta_max = epsilon_v_j;
             }
             if (epsilon_v_j < value_delta_min) {
-                value_delta_min = (int) epsilon_v_j;
+                value_delta_min = epsilon_v_j;
             }
             if (epsilon_r_j > timestamp_delta_max) {
-                timestamp_delta_max = (int) epsilon_r_j;
+                timestamp_delta_max = epsilon_r_j;
             }
             if (epsilon_r_j < timestamp_delta_min) {
-                timestamp_delta_min = (int) epsilon_r_j;
+                timestamp_delta_min = epsilon_r_j;
             }
         }
         Arrays.sort(ts_block_delta_time, (a, b) -> {
@@ -2126,7 +1847,6 @@ public class RegerTest {
         });
 
         int pos_alpha_list = k + 1;
-//    quickSort(ts_block_delta_value, 1, 0, block_size - 2);
         min_index.add(ts_block_delta_value[0][0]);
         if (!containsValue(alpha_list, ts_block_delta_value[0][0])) {
             alpha_list[pos_alpha_list] = ts_block_delta_value[0][0];
@@ -2145,92 +1865,11 @@ public class RegerTest {
         return new_alpha_list;
     }
 
-//  public static ArrayList<Integer> getIStar(
-//          ArrayList<ArrayList<Integer>> ts_block,
-//          ArrayList<Integer> min_index,
-//          int block_size,
-//          ArrayList<Integer> raw_length,
-//          ArrayList<Float> theta,
-//          int k) {
-//    int timestamp_delta_max = Integer.MIN_VALUE;
-//    int value_delta_max = Integer.MIN_VALUE;
-//    int timestamp_delta_min = Integer.MAX_VALUE;
-//    int value_delta_min = Integer.MAX_VALUE;
-//    int timestamp_delta_max_index = -1;
-//    int value_delta_max_index = -1;
-//    int timestamp_delta_min_index = -1;
-//    int value_delta_min_index = -1;
-//    ArrayList<Integer> alpha_list = new ArrayList<>();
-//
-//    ArrayList<ArrayList<Integer>> ts_block_delta_time = new ArrayList<>();
-//    ArrayList<ArrayList<Integer>> ts_block_delta_value = new ArrayList<>();
-//
-//    float theta0_t = theta.get(0);
-//    float theta1_t = theta.get(1);
-//    float theta0_v = theta.get(2);
-//    float theta1_v = theta.get(3);
-//
-//
-//    for (int j = 1; j < block_size; j++) {
-//      int epsilon_r_j =
-//              ts_block.get(j).get(0) - (int) (theta0_t + theta1_t * (float) 
ts_block.get(j - 1).get(0));
-//      int epsilon_v_j =
-//              ts_block.get(j).get(1) - (int) (theta0_v + theta1_v * (float) 
ts_block.get(j - 1).get(1));
-//      ArrayList<Integer> tmp = new ArrayList<>();
-//      tmp.add(j);
-//      tmp.add(epsilon_r_j);
-//      ts_block_delta_time.add(tmp);
-//
-//      tmp = new ArrayList<>();
-//      tmp.add(j);
-//      tmp.add(epsilon_v_j);
-//      ts_block_delta_value.add(tmp);
-//
-//
-//      if (epsilon_v_j > value_delta_max) {
-//        value_delta_max = (int) epsilon_v_j;
-//        value_delta_max_index = j;
-//      }
-//      if (epsilon_v_j < value_delta_min) {
-//        value_delta_min = (int) epsilon_v_j;
-//        value_delta_min_index = j;
-//      }
-//      if (epsilon_r_j > timestamp_delta_max) {
-//        timestamp_delta_max = (int) epsilon_r_j;
-//        timestamp_delta_max_index = j;
-//      }
-//      if (epsilon_r_j < timestamp_delta_min) {
-//        timestamp_delta_min = (int) epsilon_r_j;
-//        timestamp_delta_min_index = j;
-//      }
-//    }
-//    quickSort(ts_block_delta_time, 1, 0, block_size - 2);
-//    min_index.add(ts_block_delta_time.get(0).get(0));
-//    alpha_list.add(ts_block_delta_time.get(0).get(0));
-//    for (int i = 0; i < k; i++) {
-//      alpha_list.add(ts_block_delta_time.get(block_size - 2 - k).get(0));
-//    }
-//
-//    quickSort(ts_block_delta_value, 1, 0, block_size - 2);
-//    min_index.add(ts_block_delta_value.get(0).get(0));
-//    if (!alpha_list.contains(ts_block_delta_value.get(0).get(0)))
-//      alpha_list.add(ts_block_delta_value.get(0).get(0));
-//    for (int i = 0; i < k; i++) {
-//      if (!alpha_list.contains(ts_block_delta_value.get(block_size - 2 - 
k).get(0)))
-//        alpha_list.add(ts_block_delta_value.get(block_size - 2 - k).get(0));
-//    }
-//
-//
-//    return alpha_list;
-//  }
-
 
     public static int encodeRLEBitWidth2Bytes(
             int[][] bit_width_segments) {
         int encoded_result = 0;
 
-//    ArrayList<ArrayList<Integer>> run_length_time = new ArrayList<>();
-//    ArrayList<ArrayList<Integer>> run_length_value = new ArrayList<>();
 
         int count_of_time = 1;
         int count_of_value = 1;
@@ -2353,31 +1992,22 @@ public class RegerTest {
         pos_encode += 2;
         intWord2Bytes(pos_value, pos_encode, encoded_result);
         pos_encode += 2;
-//        System.out.println("pos_time="+pos_time);
-//        System.out.println("pos_value="+pos_value);
-
 
-//        System.out.println(Arrays.deepToString(run_length_time));
-//        System.out.println(Arrays.deepToString(run_length_value));
-        for (int i=0;i<pos_time;i++) {
+        for (int i = 0; i < pos_time; i++) {
             int[] bit_width_time = run_length_time[i];
             intByte2Bytes(bit_width_time[0], pos_encode, encoded_result);
             pos_encode++;
             intByte2Bytes(bit_width_time[1], pos_encode, encoded_result);
             pos_encode++;
 
-//            System.out.println("bit_width_time[0]="+bit_width_time[0]);
-//            System.out.println("bit_width_time[1]="+bit_width_time[1]);
         }
-        for (int i=0;i<pos_value;i++) {
+        for (int i = 0; i < pos_value; i++) {
             int[] bit_width_value = run_length_value[i];
             intByte2Bytes(bit_width_value[0], pos_encode, encoded_result);
             pos_encode++;
             intByte2Bytes(bit_width_value[1], pos_encode, encoded_result);
             pos_encode++;
 
-//            System.out.println("bit_width_value[0]="+bit_width_value[0]);
-//            System.out.println("bit_width_value[1]="+bit_width_value[1]);
         }
 
         return pos_encode;
@@ -2426,40 +2056,13 @@ public class RegerTest {
     }
 
 
-    private static ArrayList<Integer> isMovable(int[] alpha_list, int[] 
beta_list) {
-        ArrayList<Integer> isMoveable = new ArrayList<>();
-        for (int i = 0; i < alpha_list.length; i++) {
-            if (alpha_list[i] != -1 && beta_list[i] != -1) {
-                isMoveable.add(i);
-            }
-        }
-        return isMoveable;
-    }
-
-    private static int numberOfEncodeSegment2Bytes(int[][] delta_segments, 
int[][] bit_width_segments, int[] raw_length, int segment_size, float[] theta) {
-        ArrayList<Byte> encoded_result = new ArrayList<>();
+    private static int numberOfEncodeSegment2Bytes(int[][] delta_segments, 
int[][] bit_width_segments, int segment_size) {
         int block_size = delta_segments.length;
         int segment_n = block_size / segment_size;
         int result = 0;
         result += 8; // encode interval0 and value0
         result += 16; // encode theta
         result += encodeRLEBitWidth2Bytes(bit_width_segments);
-//    // encode interval0 and value0
-//    byte[] interval0_byte = int2Bytes(delta_segments.get(0).get(0));
-//    for (byte b : interval0_byte) encoded_result.add(b);
-//    byte[] value0_byte = int2Bytes(delta_segments.get(0).get(1));
-//    for (byte b : value0_byte) encoded_result.add(b);
-//
-//    // encode theta
-//    byte[] theta0_r_byte = float2bytes(theta.get(0) + raw_length.get(3));
-//    for (byte b : theta0_r_byte) encoded_result.add(b);
-//    byte[] theta1_r_byte = float2bytes(theta.get(1));
-//    for (byte b : theta1_r_byte) encoded_result.add(b);
-//    byte[] theta0_v_byte = float2bytes(theta.get(2) + raw_length.get(4));
-//    for (byte b : theta0_v_byte) encoded_result.add(b);
-//    byte[] theta1_v_byte = float2bytes(theta.get(3));
-//    for (byte b : theta1_v_byte) encoded_result.add(b);
-//    encoded_result.addAll(encodeRLEBitWidth2Bytes(bit_width_segments));
         for (int segment_i = 0; segment_i < segment_n; segment_i++) {
             int bit_width_time = bit_width_segments[segment_i][0];
             int bit_width_value = bit_width_segments[segment_i][1];
@@ -2467,9 +2070,6 @@ public class RegerTest {
             result += (segment_size * bit_width_value / 8);
         }
 
-//    byte[] td_common_byte = int2Bytes(result2.get(0));
-//    for (byte b : td_common_byte) encoded_result.add(b);
-
         return result;
     }
 
@@ -2490,14 +2090,6 @@ public class RegerTest {
         float2bytes(theta[3], pos_encode, encoded_result);
         pos_encode += 4;
 
-//        System.out.println(delta_segments[0][0]);
-//        System.out.println(delta_segments[0][1]);
-//        System.out.println(theta[0] + raw_length[3]);
-//        System.out.println(theta[1]);
-//        System.out.println(theta[2] + raw_length[4]);
-//        System.out.println(theta[3]);
-
-
 
         pos_encode = encodeRLEBitWidth2Bytes(bit_width_segments, pos_encode, 
encoded_result);
         for (int segment_i = 0; segment_i < segment_n; segment_i++) {
@@ -2516,10 +2108,9 @@ public class RegerTest {
         int min_time = data[i * block_size][0];
         int[][] ts_block = new int[block_size][2];
         int[][] ts_block_reorder = new int[block_size][2];
-        int[][] ts_block_partition = new int[block_size][2];
         for (int j = 0; j < block_size; j++) {
 //            data[j + i * block_size][0] -= min_time;
-            ts_block[j][0] = (data[j + i * block_size][0]-min_time);
+            ts_block[j][0] = (data[j + i * block_size][0] - min_time);
             ts_block[j][1] = data[j + i * block_size][1];
             ts_block_reorder[j][0] = data[j + i * block_size][0];
             ts_block_reorder[j][1] = data[j + i * block_size][1];
@@ -2529,9 +2120,9 @@ public class RegerTest {
         // raw-order
         int[] raw_length = new int[5]; // 
length,max_bit_width_interval,max_bit_width_value,max_bit_width_deviation
         float[] theta = new float[4];
-        int[][] ts_block_delta = getEncodeBitsRegression(ts_block, block_size, 
raw_length, theta, segment_size);
+        int[][] ts_block_delta = getEncodeBitsRegression(ts_block, block_size, 
raw_length, theta);
         int[][] bit_width_segments_partition = 
segmentBitPacking(ts_block_delta, block_size, segment_size);
-        raw_length[0] = numberOfEncodeSegment2Bytes(ts_block_delta, 
bit_width_segments_partition, raw_length, segment_size, theta);
+        raw_length[0] = numberOfEncodeSegment2Bytes(ts_block_delta, 
bit_width_segments_partition, segment_size);
 
         Arrays.sort(ts_block, (a, b) -> {
             if (a[0] == b[0])
@@ -2541,9 +2132,9 @@ public class RegerTest {
 //    quickSort(ts_block, 0, 0, block_size - 1);
         int[] time_length = new int[5];// 
length,max_bit_width_interval,max_bit_width_value,max_bit_width_deviation
         float[] theta_time = new float[4];
-        int[][] ts_block_delta_time = getEncodeBitsRegression(ts_block, 
block_size, time_length, theta_time, segment_size);
+        int[][] ts_block_delta_time = getEncodeBitsRegression(ts_block, 
block_size, time_length, theta_time);
         int[][] bit_width_segments_time = 
segmentBitPacking(ts_block_delta_time, block_size, segment_size);
-        time_length[0] = numberOfEncodeSegment2Bytes(ts_block_delta_time, 
bit_width_segments_time, time_length, segment_size, theta_time);
+        time_length[0] = numberOfEncodeSegment2Bytes(ts_block_delta_time, 
bit_width_segments_time, segment_size);
 
 
         Arrays.sort(ts_block, (a, b) -> {
@@ -2556,9 +2147,9 @@ public class RegerTest {
 
         int[] reorder_length = new int[5];
         float[] theta_reorder = new float[4];
-        int[][] ts_block_delta_reorder = getEncodeBitsRegression(ts_block, 
block_size, reorder_length, theta_reorder, segment_size);
+        int[][] ts_block_delta_reorder = getEncodeBitsRegression(ts_block, 
block_size, reorder_length, theta_reorder);
         int[][] bit_width_segments_value = 
segmentBitPacking(ts_block_delta_reorder, block_size, segment_size);
-        reorder_length[0] = 
numberOfEncodeSegment2Bytes(ts_block_delta_reorder, bit_width_segments_value, 
reorder_length, segment_size, theta_reorder);
+        reorder_length[0] = 
numberOfEncodeSegment2Bytes(ts_block_delta_reorder, bit_width_segments_value, 
segment_size);
 
 
         int[] alpha_list;
@@ -2574,7 +2165,6 @@ public class RegerTest {
                 return Integer.compare(a[0], b[0]);
             });
             theta = theta_time;
-            ts_block_delta = ts_block_delta_time;
             alpha_list = getIStar(ts_block, min_index, block_size, 0, theta, 
k);
         } else if (choose == 1) {
             ts_block = ts_block_reorder;
@@ -2582,49 +2172,59 @@ public class RegerTest {
         } else {
             raw_length = reorder_length;
             theta = theta_reorder;
-            ts_block_delta = ts_block_delta_reorder;
             alpha_list = getIStar(ts_block, min_index, block_size, 1, theta, 
k);
         }
         int[] beta_list = new int[alpha_list.length];
         int[][] new_length_list = new int[alpha_list.length][5];
         int pos_new_length_list = 0;
+        int[] new_alpha_list = new int[alpha_list.length];
 
 
 //    ArrayList<ArrayList<Integer>> new_length_list = new ArrayList<>();
 
 
-        for (int j = 0; j < alpha_list.length; j++) {
-            int alpha = alpha_list[j];
+        for (int alpha : alpha_list) {
+            if (alpha == -1)
+                continue;
+            new_alpha_list[pos_new_length_list] = alpha;
+
+            ArrayList<Integer> new_min_index = (ArrayList<Integer>) 
min_index.clone();
             int[] new_length = raw_length.clone();
-            beta_list[j] = getBeta(ts_block, alpha, min_index, block_size, 
new_length, theta, segment_size);
+//            beta_list[j] = 0;
+            beta_list[pos_new_length_list] = getBeta(ts_block, alpha, 
new_min_index, block_size, new_length, theta);
+            if (beta_list[pos_new_length_list] == -1)
+                continue;
             System.arraycopy(new_length, 0, 
new_length_list[pos_new_length_list], 0, 5);
             pos_new_length_list++;
         }
-        ArrayList<Integer> isMoveable = isMovable(alpha_list, beta_list);
+
         int adjust_count = 0;
-        while (isMoveable.size() != 0) {
-            if (adjust_count < block_size / 2 && adjust_count <= 20) {
+        int[][] all_length;
+        while (pos_new_length_list != 0) {
+            if (adjust_count < block_size / 2 && adjust_count < 20) {
                 adjust_count++;
             } else {
                 break;
             }
-            ArrayList<ArrayList<Integer>> all_length = new ArrayList<>();
-
-            for (int isMoveable_i : isMoveable) {
-                ArrayList<Integer> tmp = new ArrayList<>();
-                tmp.add(isMoveable_i);
-                tmp.add(new_length_list[isMoveable_i][0]);
-                all_length.add(tmp);
 
+            all_length = new int[pos_new_length_list][2];
+            for (int pos_new_length_list_j = 0; pos_new_length_list_j < 
pos_new_length_list; pos_new_length_list_j++) {
+                all_length[pos_new_length_list_j][0] = pos_new_length_list_j;
+                all_length[pos_new_length_list_j][1] = 
new_length_list[pos_new_length_list_j][0];
             }
-            quickSort(all_length, 1, 0, all_length.size() - 1);
-            if (all_length.get(0).get(1) <= raw_length[0]) {
+            Arrays.sort(all_length, (a, b) -> {
+                if (a[1] == b[1])
+                    return Integer.compare(a[0], b[0]);
+                return Integer.compare(a[1], b[1]);
+            });
+
+            if (all_length[0][1] <= raw_length[0]) {
                 int[][] new_ts_block = ts_block.clone();
-                moveAlphaToBeta(new_ts_block, 
alpha_list[all_length.get(0).get(0)], beta_list[all_length.get(0).get(0)]);
+                moveAlphaToBeta(new_ts_block, 
new_alpha_list[all_length[0][0]], beta_list[all_length[0][0]]);
                 int[] new_length = new int[5];
-                ts_block_delta = getEncodeBitsRegression(new_ts_block, 
block_size, new_length, theta, segment_size);
+                ts_block_delta = getEncodeBitsRegression(new_ts_block, 
block_size, new_length, theta);
                 int[][] bit_width_segments = segmentBitPacking(ts_block_delta, 
block_size, segment_size);
-                new_length[0] = numberOfEncodeSegment2Bytes(ts_block_delta, 
bit_width_segments, new_length, segment_size, theta);
+                new_length[0] = numberOfEncodeSegment2Bytes(ts_block_delta, 
bit_width_segments, segment_size);
 
                 if (new_length[0] <= raw_length[0]) {
                     raw_length = new_length;
@@ -2646,20 +2246,27 @@ public class RegerTest {
             beta_list = new int[alpha_list.length];
             new_length_list = new int[alpha_list.length][5];
             pos_new_length_list = 0;
-            for (int alpha_i = 0; alpha_i < alpha_list.length; alpha_i++) {
-                int alpha = alpha_list[alpha_i];
+            new_alpha_list = new int[alpha_list.length];
+
+            for (int alpha : alpha_list) {
+                if (alpha == -1)
+                    continue;
+                new_alpha_list[pos_new_length_list] = alpha;
+
                 int[] new_length = raw_length.clone();
-                beta_list[alpha_i] = (getBeta(ts_block, alpha, min_index, 
block_size, raw_length, theta, segment_size));
+//            beta_list[j] = 0;
+                beta_list[pos_new_length_list] = getBeta(ts_block, alpha, 
min_index, block_size, new_length, theta);
+                if (beta_list[pos_new_length_list] == -1)
+                    continue;
                 System.arraycopy(new_length, 0, 
new_length_list[pos_new_length_list], 0, 5);
                 pos_new_length_list++;
             }
-            isMoveable = isMovable(alpha_list, beta_list);
+
         }
 
 
         ts_block_delta = getEncodeBitsRegressionNoTrain(ts_block, block_size, 
raw_length, theta, segment_size);
 
-//    ArrayList<ArrayList<Integer>> bit_width_segments = new ArrayList<>();
         int segment_n = (block_size - 1) / segment_size;
         int[][] bit_width_segments = new int[segment_n][2];
         for (int segment_i = 0; segment_i < segment_n; segment_i++) {
@@ -2693,24 +2300,20 @@ public class RegerTest {
         int min_time = data[i * block_size][0];
         int[][] ts_block;
         int[][] ts_block_partition;
-        if (supply_length == 0){
+        if (supply_length == 0) {
             ts_block = new int[block_size][2];
             ts_block_partition = new int[block_size][2];
             for (int j = 0; j < block_size; j++) {
-//                data[j + i * block_size][0] -= min_time;
-                ts_block[j][0] = (data[j + i * block_size][0]-min_time);
+                ts_block[j][0] = (data[j + i * block_size][0] - min_time);
                 ts_block[j][1] = data[j + i * block_size][1];
-//      ts_block_reorder[j][0] = data[j + i * block_size][0];
-//      ts_block_reorder[j][1] = data[j + i * block_size][1];
             }
-        }
-        else {
+        } else {
             ts_block = new int[supply_length][2];
             ts_block_partition = new int[supply_length][2];
             int end = data.length - i * block_size;
             for (int j = 0; j < end; j++) {
 //                data[j + i * block_size][0] -= min_time;
-                ts_block[j][0] = (data[j + i * block_size][0]-min_time);
+                ts_block[j][0] = (data[j + i * block_size][0] - min_time);
                 ts_block[j][1] = data[j + i * block_size][1];
             }
             for (int j = end; j < supply_length; j++) {
@@ -2726,135 +2329,132 @@ public class RegerTest {
         float[] theta_time = new float[4];
         int[] raw_length = new int[5]; // 
length,max_bit_width_interval,max_bit_width_value,max_bit_width_deviation
         float[] theta = new float[4];
-        int[][] ts_block_delta_reorder = new int[block_size][2];
+        int[][] ts_block_delta_reorder;
         int[][] bit_width_segments_value;
-        int[][] ts_block_delta_time = new int[block_size][2];
+        int[][] ts_block_delta_time;
         int[][] bit_width_segments_time;
-        int[][] ts_block_delta = new int[block_size][2];
+        int[][] ts_block_delta;
         int[][] bit_width_segments_partition;
 
-        if (order == 1) {
-
-            ts_block_delta_reorder = getEncodeBitsRegression(ts_block, 
block_size, reorder_length, theta_reorder, segment_size);
-            bit_width_segments_value = 
segmentBitPacking(ts_block_delta_reorder, block_size, segment_size);
-            reorder_length[0] = 
numberOfEncodeSegment2Bytes(ts_block_delta_reorder, bit_width_segments_value, 
reorder_length, segment_size, theta_reorder);
-
-
-            Arrays.sort(ts_block, (a, b) -> {
-                if (a[0] == b[0])
-                    return Integer.compare(a[1], b[1]);
-                return Integer.compare(a[0], b[0]);
-            });
-
-            ts_block_delta_time = getEncodeBitsRegression(ts_block, 
block_size, time_length, theta_time, segment_size);
-            bit_width_segments_time = segmentBitPacking(ts_block_delta_time, 
block_size, segment_size);
-            time_length[0] = numberOfEncodeSegment2Bytes(ts_block_delta_time, 
bit_width_segments_time, time_length, segment_size, theta_time);
-
-
-            int pos_ts_block_partition = 0;
-            for (int[] datum : ts_block) {
-                if (datum[1] > third_value[third_value.length - 1]) {
-                    ts_block_partition[pos_ts_block_partition][0] = datum[0];
-                    ts_block_partition[pos_ts_block_partition][1] = datum[1];
-                    pos_ts_block_partition++;
-                }
-            }
-            for (int third_i = third_value.length - 1; third_i > 0; third_i--) 
{
-                for (int[] datum : ts_block) {
-                    if (datum[1] <= third_value[third_i] && datum[1] > 
third_value[third_i - 1]) {
-                        ts_block_partition[pos_ts_block_partition][0] = 
datum[0];
-                        ts_block_partition[pos_ts_block_partition][1] = 
datum[1];
-                        pos_ts_block_partition++;
-                    }
-                }
-            }
-            for (int[] datum : ts_block) {
-                if (datum[1] <= third_value[0]) {
-                    ts_block_partition[pos_ts_block_partition][0] = datum[0];
-                    ts_block_partition[pos_ts_block_partition][1] = datum[1];
-                    pos_ts_block_partition++;
-                }
-            }
-
-            ts_block_delta = getEncodeBitsRegression(ts_block_partition, 
block_size, raw_length, theta, segment_size);
-            bit_width_segments_partition = segmentBitPacking(ts_block_delta, 
block_size, segment_size);
-            raw_length[0] = numberOfEncodeSegment2Bytes(ts_block_delta, 
bit_width_segments_partition, raw_length, segment_size, theta);
-
-
-        }
-        else if (order == 0) {
-
-            ts_block_delta_time = getEncodeBitsRegression(ts_block, 
block_size, time_length, theta_time, segment_size);
-            bit_width_segments_time = segmentBitPacking(ts_block_delta_time, 
block_size, segment_size);
-            time_length[0] = numberOfEncodeSegment2Bytes(ts_block_delta_time, 
bit_width_segments_time, time_length, segment_size, theta_time);
-
-
-            int pos_ts_block_partition = 0;
-            for (int[] datum : ts_block) {
-                if (datum[1] > third_value[third_value.length - 1]) {
-                    ts_block_partition[pos_ts_block_partition][0] = datum[0];
-                    ts_block_partition[pos_ts_block_partition][1] = datum[1];
-                    pos_ts_block_partition++;
-                }
-            }
-            for (int third_i = third_value.length - 1; third_i > 0; third_i--) 
{
-                for (int[] datum : ts_block) {
-                    if (datum[1] <= third_value[third_i] && datum[1] > 
third_value[third_i - 1]) {
-                        ts_block_partition[pos_ts_block_partition][0] = 
datum[0];
-                        ts_block_partition[pos_ts_block_partition][1] = 
datum[1];
-                        pos_ts_block_partition++;
-                    }
-                }
-            }
-            for (int[] datum : ts_block) {
-                if (datum[1] <= third_value[0]) {
-                    ts_block_partition[pos_ts_block_partition][0] = datum[0];
-                    ts_block_partition[pos_ts_block_partition][1] = datum[1];
-                    pos_ts_block_partition++;
-                }
-            }
-
-            ts_block_delta = getEncodeBitsRegression(ts_block_partition, 
block_size, raw_length, theta, segment_size);
-            bit_width_segments_partition = segmentBitPacking(ts_block_delta, 
block_size, segment_size);
-            raw_length[0] = numberOfEncodeSegment2Bytes(ts_block_delta, 
bit_width_segments_partition, raw_length, segment_size, theta);
-
-            Arrays.sort(ts_block, (a, b) -> {
-                if (a[1] == b[1])
-                    return Integer.compare(a[0], b[0]);
-                return Integer.compare(a[1], b[1]);
-            });
-            ts_block_delta_reorder = getEncodeBitsRegression(ts_block, 
block_size, reorder_length, theta_reorder, segment_size);
-            bit_width_segments_value = 
segmentBitPacking(ts_block_delta_reorder, block_size, segment_size);
-            reorder_length[0] = 
numberOfEncodeSegment2Bytes(ts_block_delta_reorder, bit_width_segments_value, 
reorder_length, segment_size, theta_reorder);
-        }
-
-
-        int choose = min3(time_length[0], raw_length[0], reorder_length[0]);
+//        if (order == 1) {
+//
+//            ts_block_delta_reorder = getEncodeBitsRegression(ts_block, 
block_size, reorder_length, theta_reorder);
+//            bit_width_segments_value = 
segmentBitPacking(ts_block_delta_reorder, block_size, segment_size);
+//            reorder_length[0] = 
numberOfEncodeSegment2Bytes(ts_block_delta_reorder, bit_width_segments_value, 
segment_size);
+//
+//
+//            Arrays.sort(ts_block, (a, b) -> {
+//                if (a[0] == b[0])
+//                    return Integer.compare(a[1], b[1]);
+//                return Integer.compare(a[0], b[0]);
+//            });
+//
+//            ts_block_delta_time = getEncodeBitsRegression(ts_block, 
block_size, time_length, theta_time);
+//            bit_width_segments_time = segmentBitPacking(ts_block_delta_time, 
block_size, segment_size);
+//            time_length[0] = 
numberOfEncodeSegment2Bytes(ts_block_delta_time, bit_width_segments_time, 
segment_size);
+//
+//
+//            int pos_ts_block_partition = 0;
+//            for (int[] datum : ts_block) {
+//                if (datum[1] > third_value[third_value.length - 1]) {
+//                    ts_block_partition[pos_ts_block_partition][0] = datum[0];
+//                    ts_block_partition[pos_ts_block_partition][1] = datum[1];
+//                    pos_ts_block_partition++;
+//                }
+//            }
+//            for (int third_i = third_value.length - 1; third_i > 0; 
third_i--) {
+//                for (int[] datum : ts_block) {
+//                    if (datum[1] <= third_value[third_i] && datum[1] > 
third_value[third_i - 1]) {
+//                        ts_block_partition[pos_ts_block_partition][0] = 
datum[0];
+//                        ts_block_partition[pos_ts_block_partition][1] = 
datum[1];
+//                        pos_ts_block_partition++;
+//                    }
+//                }
+//            }
+//            for (int[] datum : ts_block) {
+//                if (datum[1] <= third_value[0]) {
+//                    ts_block_partition[pos_ts_block_partition][0] = datum[0];
+//                    ts_block_partition[pos_ts_block_partition][1] = datum[1];
+//                    pos_ts_block_partition++;
+//                }
+//            }
+//
+//            ts_block_delta = getEncodeBitsRegression(ts_block_partition, 
block_size, raw_length, theta);
+//            bit_width_segments_partition = segmentBitPacking(ts_block_delta, 
block_size, segment_size);
+//            raw_length[0] = numberOfEncodeSegment2Bytes(ts_block_delta, 
bit_width_segments_partition, segment_size);
+//
+//
+//        } else if (order == 0) {
+//
+//            ts_block_delta_time = getEncodeBitsRegression(ts_block, 
block_size, time_length, theta_time);
+//            bit_width_segments_time = segmentBitPacking(ts_block_delta_time, 
block_size, segment_size);
+//            time_length[0] = 
numberOfEncodeSegment2Bytes(ts_block_delta_time, bit_width_segments_time, 
segment_size);
+//
+//
+//            int pos_ts_block_partition = 0;
+//            for (int[] datum : ts_block) {
+//                if (datum[1] > third_value[third_value.length - 1]) {
+//                    ts_block_partition[pos_ts_block_partition][0] = datum[0];
+//                    ts_block_partition[pos_ts_block_partition][1] = datum[1];
+//                    pos_ts_block_partition++;
+//                }
+//            }
+//            for (int third_i = third_value.length - 1; third_i > 0; 
third_i--) {
+//                for (int[] datum : ts_block) {
+//                    if (datum[1] <= third_value[third_i] && datum[1] > 
third_value[third_i - 1]) {
+//                        ts_block_partition[pos_ts_block_partition][0] = 
datum[0];
+//                        ts_block_partition[pos_ts_block_partition][1] = 
datum[1];
+//                        pos_ts_block_partition++;
+//                    }
+//                }
+//            }
+//            for (int[] datum : ts_block) {
+//                if (datum[1] <= third_value[0]) {
+//                    ts_block_partition[pos_ts_block_partition][0] = datum[0];
+//                    ts_block_partition[pos_ts_block_partition][1] = datum[1];
+//                    pos_ts_block_partition++;
+//                }
+//            }
+//
+//            ts_block_delta = getEncodeBitsRegression(ts_block_partition, 
block_size, raw_length, theta);
+//            bit_width_segments_partition = segmentBitPacking(ts_block_delta, 
block_size, segment_size);
+//            raw_length[0] = numberOfEncodeSegment2Bytes(ts_block_delta, 
bit_width_segments_partition, segment_size);
+//
+//            Arrays.sort(ts_block, (a, b) -> {
+//                if (a[1] == b[1])
+//                    return Integer.compare(a[0], b[0]);
+//                return Integer.compare(a[1], b[1]);
+//            });
+//            ts_block_delta_reorder = getEncodeBitsRegression(ts_block, 
block_size, reorder_length, theta_reorder);
+//            bit_width_segments_value = 
segmentBitPacking(ts_block_delta_reorder, block_size, segment_size);
+//            reorder_length[0] = 
numberOfEncodeSegment2Bytes(ts_block_delta_reorder, bit_width_segments_value, 
segment_size);
+//        }
+//
+//
+//        int choose = min3(time_length[0], raw_length[0], reorder_length[0]);
         ArrayList<Integer> min_index = new ArrayList<>();
         int index_alpha_list = 0;
 
-        if (choose == 0) {
-            raw_length = time_length;
-            Arrays.sort(ts_block, (a, b) -> {
-                if (a[0] == b[0])
-                    return Integer.compare(a[1], b[1]);
-                return Integer.compare(a[0], b[0]);
-            });
-            theta = theta_time;
-        } else if (choose == 1) {
-            ts_block = ts_block_partition;
-        } else {
-            raw_length = reorder_length;
-            theta = theta_reorder;
-            Arrays.sort(ts_block, (a, b) -> {
-                if (a[1] == b[1])
-                    return Integer.compare(a[0], b[0]);
-                return Integer.compare(a[1], b[1]);
-            });
-            index_alpha_list = 1;
-        }
-
-//        int before_length  = raw_length[0];
+//        if (choose == 0) {
+//            raw_length = time_length;
+//            Arrays.sort(ts_block, (a, b) -> {
+//                if (a[0] == b[0])
+//                    return Integer.compare(a[1], b[1]);
+//                return Integer.compare(a[0], b[0]);
+//            });
+//            theta = theta_time;
+//        } else if (choose == 1) {
+//            ts_block = ts_block_partition;
+//        } else {
+//            raw_length = reorder_length;
+//            theta = theta_reorder;
+//            Arrays.sort(ts_block, (a, b) -> {
+//                if (a[1] == b[1])
+//                    return Integer.compare(a[0], b[0]);
+//                return Integer.compare(a[1], b[1]);
+//            });
+//            index_alpha_list = 1;
+//        }
 
         int[] alpha_list = getIStar(ts_block, min_index, block_size, 
index_alpha_list, theta, k);
         int[] beta_list = new int[alpha_list.length];
@@ -2863,40 +2463,32 @@ public class RegerTest {
         int[] new_alpha_list = new int[alpha_list.length];
 
 
-//    ArrayList<ArrayList<Integer>> new_length_list = new ArrayList<>();
-
-
-//        System.out.println();
         for (int alpha : alpha_list) {
             if (alpha == -1)
                 continue;
             new_alpha_list[pos_new_length_list] = alpha;
 
-            ArrayList<Integer> new_min_index= (ArrayList<Integer>) 
min_index.clone();
+            ArrayList<Integer> new_min_index = (ArrayList<Integer>) 
min_index.clone();
             int[] new_length = raw_length.clone();
-//            beta_list[j] = 0;
-            beta_list[pos_new_length_list] = getBeta(ts_block, alpha, 
new_min_index, block_size, new_length, theta, segment_size);
+
+            beta_list[pos_new_length_list] = getBeta(ts_block, alpha, 
new_min_index, block_size, new_length, theta);
             if (beta_list[pos_new_length_list] == -1)
                 continue;
             System.arraycopy(new_length, 0, 
new_length_list[pos_new_length_list], 0, 5);
             pos_new_length_list++;
         }
-//        ArrayList<Integer> isMoveable = isMovable(alpha_list, beta_list);
-//        if(i==21){
-//            System.out.println("hello world");
-//        }
+
         int adjust_count = 0;
-//        while (isMoveable.size() != 0) {
-        int[][] all_length = new int[pos_new_length_list][2];
+
+        int[][] all_length;
         while (pos_new_length_list != 0) {
             if (adjust_count < block_size / 2 && adjust_count < 20) {
                 adjust_count++;
             } else {
                 break;
             }
-//            ArrayList<ArrayList<Integer>> all_length = new ArrayList<>();
             all_length = new int[pos_new_length_list][2];
-            for(int 
pos_new_length_list_j=0;pos_new_length_list_j<pos_new_length_list;pos_new_length_list_j++){
+            for (int pos_new_length_list_j = 0; pos_new_length_list_j < 
pos_new_length_list; pos_new_length_list_j++) {
                 all_length[pos_new_length_list_j][0] = pos_new_length_list_j;
                 all_length[pos_new_length_list_j][1] = 
new_length_list[pos_new_length_list_j][0];
             }
@@ -2906,20 +2498,13 @@ public class RegerTest {
                 return Integer.compare(a[1], b[1]);
             });
 
-//            for (int isMoveable_i : isMoveable) {
-//                ArrayList<Integer> tmp = new ArrayList<>();
-//                tmp.add(isMoveable_i);
-//                tmp.add(new_length_list[isMoveable_i][0]);
-//                all_length.add(tmp);
-//            }
-//            quickSort(all_length, 1, 0, all_length.size() - 1);
             if (all_length[0][1] <= raw_length[0]) {
                 int[][] new_ts_block = ts_block.clone();
                 moveAlphaToBeta(new_ts_block, 
new_alpha_list[all_length[0][0]], beta_list[all_length[0][0]]);
                 int[] new_length = new int[5];
-                ts_block_delta = getEncodeBitsRegression(new_ts_block, 
block_size, new_length, theta, segment_size);
+                ts_block_delta = getEncodeBitsRegression(new_ts_block, 
block_size, new_length, theta);
                 int[][] bit_width_segments = segmentBitPacking(ts_block_delta, 
block_size, segment_size);
-                new_length[0] = numberOfEncodeSegment2Bytes(ts_block_delta, 
bit_width_segments, new_length, segment_size, theta);
+                new_length[0] = numberOfEncodeSegment2Bytes(ts_block_delta, 
bit_width_segments, segment_size);
 
                 if (new_length[0] <= raw_length[0]) {
                     raw_length = new_length;
@@ -2950,36 +2535,16 @@ public class RegerTest {
 
                 int[] new_length = raw_length.clone();
 //            beta_list[j] = 0;
-                beta_list[pos_new_length_list] = getBeta(ts_block, alpha, 
min_index, block_size, new_length, theta, segment_size);
+                beta_list[pos_new_length_list] = getBeta(ts_block, alpha, 
min_index, block_size, new_length, theta);
                 if (beta_list[pos_new_length_list] == -1)
                     continue;
                 System.arraycopy(new_length, 0, 
new_length_list[pos_new_length_list], 0, 5);
                 pos_new_length_list++;
             }
 
-            //            for (int alpha_i = 0; alpha_i < alpha_list.length; 
alpha_i++) {
-//                int alpha = alpha_list[alpha_i];
-//                int[] new_length = raw_length.clone();
-////                beta_list[alpha_i] = 0;
-//                beta_list[alpha_i] = (getBeta(ts_block, alpha, min_index, 
block_size, raw_length, theta, segment_size));
-//                System.arraycopy(new_length, 0, 
new_length_list[pos_new_length_list], 0, 5);
-//                pos_new_length_list++;
-//            }
-//            isMoveable = isMovable(alpha_list, beta_list);
         }
 
-//        System.out.println("getEncodeBitsRegressionNoTrain before:" + 
Arrays.deepToString(ts_block_delta));
-
         ts_block_delta = getEncodeBitsRegressionNoTrain(ts_block, block_size, 
raw_length, theta, segment_size);
-//        int after_length = raw_length[0];
-//        if(before_length < after_length){
-//            System.out.println("before_length < after_length: "+i);
-//        }
-
-//        System.out.println("getEncodeBitsRegressionNoTrain after:" 
+Arrays.deepToString(ts_block_delta));
-
-
-//    ArrayList<ArrayList<Integer>> bit_width_segments = new ArrayList<>();
         int segment_n = (block_size - 1) / segment_size;
         int[][] bit_width_segments = new int[segment_n][2];
         for (int segment_i = 0; segment_i < segment_n; segment_i++) {
@@ -3002,17 +2567,13 @@ public class RegerTest {
         }
 
 
-//        System.out.println(Arrays.deepToString(ts_block_delta));
-//        System.out.println(Arrays.deepToString(bit_width_segments));
-
         encode_pos = encodeSegment2Bytes(ts_block_delta, bit_width_segments, 
raw_length, segment_size, theta, encode_pos, cur_byte);
 
 //        System.out.println("encode_pos="+encode_pos);
         return encode_pos;
     }
 
-    public static int ReorderingRegressionEncoder(
-            int[][] data, int block_size, int[] third_value, int segment_size, 
int k, byte[] encoded_result) {
+    public static int ReorderingRegressionEncoder(int[][] data, int 
block_size, int[] third_value, int segment_size, int k, byte[] encoded_result) {
         block_size++;
 //    ArrayList<Byte> encoded_result = new ArrayList<Byte>();
         int length_all = data.length;
@@ -3131,9 +2692,9 @@ public class RegerTest {
 //                }
 //            } else {
 //                System.out.println("Time");
-                for (int i = 0; i < block_num; i++) {
-                    encode_pos = REGERBlockEncoder(data, 0, i, block_size, 0, 
third_value, segment_size, k, encode_pos, encoded_result);
-                }
+        for (int i = 0; i < block_num; i++) {
+            encode_pos = REGERBlockEncoder(data, 0, i, block_size, 0, 
third_value, segment_size, k, encode_pos, encoded_result);
+        }
 //            }
 //
 //        }
@@ -3153,24 +2714,24 @@ public class RegerTest {
             } else if (remaining_length % segment_size == 1) {
                 supple_length = 0;
             } else {
-                supple_length = segment_size+1 - remaining_length % 
segment_size;
+                supple_length = segment_size + 1 - remaining_length % 
segment_size;
             }
-            encode_pos = REGERBlockEncoder(data, 0, block_num, block_size, 
supple_length+remaining_length, third_value, segment_size, k, encode_pos, 
encoded_result);
+            encode_pos = REGERBlockEncoder(data, 0, block_num, block_size, 
supple_length + remaining_length, third_value, segment_size, k, encode_pos, 
encoded_result);
 
         }
         return encode_pos;
     }
 
-    public static int REGERBlockDecoder(byte[] encoded, int decode_pos, 
int[][] value_list, int block_size, int segment_size ,int[] value_pos_arr) {
+    public static int REGERBlockDecoder(byte[] encoded, int decode_pos, 
int[][] value_list, int block_size, int segment_size, int[] value_pos_arr) {
 
         int time0 = bytes2Integer(encoded, decode_pos, 4);
         decode_pos += 4;
-        value_list[value_pos_arr[0]][0] =time0;
+        value_list[value_pos_arr[0]][0] = time0;
         int value0 = bytes2Integer(encoded, decode_pos, 4);
         decode_pos += 4;
-        value_list[value_pos_arr[0]][0] =value0;
+        value_list[value_pos_arr[0]][0] = value0;
 
-        value_pos_arr[0] ++;
+        value_pos_arr[0]++;
 
         float theta_time0 = bytes2float(encoded, decode_pos);
         decode_pos += 4;
@@ -3186,53 +2747,37 @@ public class RegerTest {
         decode_pos += 2;
         int bit_width_value_count = bytes2Integer(encoded, decode_pos, 2);
         decode_pos += 2;
-//        System.out.println(time0);
-//        System.out.println(value0);
-//        System.out.println(theta_time0);
-//        System.out.println(theta_time1);
-//        System.out.println(theta_value0);
-//        System.out.println(theta_value1);
-//        System.out.println("bit_width_time_count="+bit_width_time_count);
-//        System.out.println("bit_width_value_count="+bit_width_value_count);
-
-
-//        int[][] run_length_time = new int[bit_width_time_count][2];
-//        int[][] run_length_value = new int[bit_width_value_count][2];
-        int count = 0;
-        int num =0;
+
+        int count;
+        int num;
         int segment_n = block_size / segment_size;
         int[][] bit_width_segments = new int[segment_n][2];
         int pos_bit_width_segments = 0;
-        for (int i=0;i<bit_width_time_count;i++) {
+        for (int i = 0; i < bit_width_time_count; i++) {
             count = byte2Integer(encoded, decode_pos);
             decode_pos++;
             num = byte2Integer(encoded, decode_pos);
-//            System.out.println("count:"+count);
-//            System.out.println("num:"+num);
+
             decode_pos++;
-            for(int j=0;j<count;j++){
-                bit_width_segments[pos_bit_width_segments][0]=num;
-                pos_bit_width_segments ++;
+            for (int j = 0; j < count; j++) {
+                bit_width_segments[pos_bit_width_segments][0] = num;
+                pos_bit_width_segments++;
             }
 
         }
 
         pos_bit_width_segments = 0;
-        for (int i=0;i<bit_width_value_count;i++) {
+        for (int i = 0; i < bit_width_value_count; i++) {
             count = byte2Integer(encoded, decode_pos);
             decode_pos++;
-            num =byte2Integer(encoded, decode_pos);
+            num = byte2Integer(encoded, decode_pos);
             decode_pos++;
-//            System.out.println("count:"+count);
-//            System.out.println("num:"+num);
-            for(int j=0;j<count;j++){
-                bit_width_segments[pos_bit_width_segments][1]=num;
-                pos_bit_width_segments ++;
+            for (int j = 0; j < count; j++) {
+                bit_width_segments[pos_bit_width_segments][1] = num;
+                pos_bit_width_segments++;
             }
         }
 
-//        System.out.println(Arrays.deepToString(bit_width_segments));
-//        ArrayList<Integer> decode_pos_result = new ArrayList<>();
         int pre_time = time0;
         int pre_value = value0;
 
@@ -3242,42 +2787,28 @@ public class RegerTest {
             int[] decode_time_result = new int[segment_size];
             int[] decode_value_result = new int[segment_size];
 
-            decode_pos =  decodeBitPacking(encoded, decode_pos, 
bit_width_time, segment_size,decode_time_result);
+            decode_pos = decodeBitPacking(encoded, decode_pos, bit_width_time, 
segment_size, decode_time_result);
             int pos_time = value_pos_arr[0];
-            for(int delta_time:decode_time_result){
-                pre_time = (int)(theta_time0 + theta_time1*(double)delta_time) 
+ pre_time;
-                value_list[pos_time][0]=pre_time;
-                pos_time ++;
+            for (int delta_time : decode_time_result) {
+                pre_time = (int) (theta_time0 + theta_time1 * (double) 
delta_time) + pre_time;
+                value_list[pos_time][0] = pre_time;
+                pos_time++;
             }
             int pos_value = value_pos_arr[0];
-            decode_pos =  decodeBitPacking(encoded, decode_pos, 
bit_width_value, segment_size,decode_value_result);
-            for(int delta_value:decode_value_result){
-                pre_value = (int)(theta_value0 + 
theta_value1*(double)delta_value) + pre_value;
-                value_list[pos_value][1]=pre_value;
-                pos_value ++;
+            decode_pos = decodeBitPacking(encoded, decode_pos, 
bit_width_value, segment_size, decode_value_result);
+            for (int delta_value : decode_value_result) {
+                pre_value = (int) (theta_value0 + theta_value1 * (double) 
delta_value) + pre_value;
+                value_list[pos_value][1] = pre_value;
+                pos_value++;
             }
             value_pos_arr[0] = pos_value;
         }
 
 
-//        System.out.println("decode_pos="+decode_pos);
-
-//        ArrayList<Integer> decode_pos_normal = new ArrayList<>();
-//        ArrayList<Integer> final_normal =  decodeBitPacking(encoded, 
decode_pos, bit_width_final, block_size,decode_pos_normal);
-//        decode_pos = decode_pos_normal.get(0);
-//        int pre_v = value0;
-//
-//        for (int i = 0; i < block_size - 1; i++) {
-//            int current_delta = final_normal.get(i) + min_delta;
-//            pre_v = current_delta + pre_v;
-//            value_list[value_pos_arr[0]] =pre_v;
-//            value_pos_arr[0] ++;
-//        }
         return decode_pos;
     }
 
 
-
     public static void REGERDecoder(byte[] encoded) {
 
         int decode_pos = 0;
@@ -3297,32 +2828,33 @@ public class RegerTest {
         } else if (remain_length % segment_size == 1) {
             zero_number = 0;
         } else {
-            zero_number = segment_size+1 - remain_length % segment_size;
+            zero_number = segment_size + 1 - remain_length % segment_size;
         }
-        int[][] value_list = new int[length_all+segment_size][2];
+        int[][] value_list = new int[length_all + segment_size][2];
 
         int[] value_pos_arr = new int[1];
 
 //        for (int k = 0; k < 2; k++) {
         for (int k = 0; k < block_num; k++) {
 //            System.out.println("k="+k);
-            decode_pos = REGERBlockDecoder(encoded, decode_pos, value_list, 
block_size,segment_size,value_pos_arr);
+            decode_pos = REGERBlockDecoder(encoded, decode_pos, value_list, 
block_size, segment_size, value_pos_arr);
         }
 
         if (remain_length == 1) {
             for (int i = 0; i < remain_length; i++) {
                 int value_end = bytes2Integer(encoded, decode_pos, 4);
                 decode_pos += 4;
-                value_list[value_pos_arr[0]][0] =value_end;
+                value_list[value_pos_arr[0]][0] = value_end;
                 value_end = bytes2Integer(encoded, decode_pos, 4);
                 decode_pos += 4;
-                value_list[value_pos_arr[0]][1] =value_end;
-                value_pos_arr[0] ++;
+                value_list[value_pos_arr[0]][1] = value_end;
+                value_pos_arr[0]++;
             }
         } else {
-            REGERBlockDecoder(encoded, decode_pos, value_list, remain_length + 
zero_number,segment_size, value_pos_arr);
+            REGERBlockDecoder(encoded, decode_pos, value_list, remain_length + 
zero_number, segment_size, value_pos_arr);
         }
     }
+
     @Test
     public void REGER() throws IOException {
 //        String parent_dir = "C:/Users/xiaoj/Desktop/test";
@@ -3335,7 +2867,6 @@ public class RegerTest {
         ArrayList<String> output_path_list = new ArrayList<>();
         ArrayList<String> dataset_name = new ArrayList<>();
         ArrayList<Integer> dataset_block_size = new ArrayList<>();
-        ArrayList<Integer> dataset_mid = new ArrayList<>();
         ArrayList<int[]> dataset_third = new ArrayList<>();
         ArrayList<Integer> dataset_k = new ArrayList<>();
         dataset_name.add("CS-Sensors");
@@ -3377,8 +2908,8 @@ public class RegerTest {
         dataset_third.add(dataset_10);
         dataset_third.add(dataset_11);
 
-        for (int i = 0; i < dataset_name.size(); i++) {
-            input_path_list.add(input_parent_dir + dataset_name.get(i));
+        for (String value : dataset_name) {
+            input_path_list.add(input_parent_dir + value);
             dataset_k.add(1);
             dataset_block_size.add(128);
         }
@@ -3391,11 +2922,7 @@ public class RegerTest {
         output_path_list.add(output_parent_dir + 
"/USGS-Earthquakes_ratio.csv");// 2
 //        dataset_block_size.add(8192);
         output_path_list.add(output_parent_dir + "/YZ-Electricity_ratio.csv"); 
// 3
-//        dataset_block_size.set(3,8192);
-//        dataset_block_size.add(8192);
         output_path_list.add(output_parent_dir + "/GW-Magnetic_ratio.csv"); //4
-//        dataset_block_size.set(4,128);
-//        dataset_block_size.add(2048);
         output_path_list.add(output_parent_dir + "/TY-Fuel_ratio.csv");//5
 //        dataset_block_size.add(8192);
         output_path_list.add(output_parent_dir + "/Cyber-Vehicle_ratio.csv"); 
//6
@@ -3411,13 +2938,11 @@ public class RegerTest {
         output_path_list.add(output_parent_dir + 
"/EPM-Education_ratio.csv");//11
 //        dataset_block_size.add(256);
 
-    for (int file_i = 0; file_i < input_path_list.size(); file_i++) {
-//        for (int file_i = 3; file_i < 5; file_i++) {
+//    for (int file_i = 0; file_i < input_path_list.size(); file_i++) {
+        for (int file_i = 0; file_i < 1; file_i++) {
             String inputPath = input_path_list.get(file_i);
             String Output = output_path_list.get(file_i);
 
-            int repeatTime = 1; // set repeat time
-
             File file = new File(inputPath);
             File[] tempList = file.listFiles();
 
@@ -3443,11 +2968,8 @@ public class RegerTest {
                 CsvReader loader = new CsvReader(inputStream, 
StandardCharsets.UTF_8);
                 ArrayList<ArrayList<Integer>> data = new ArrayList<>();
 
-                ArrayList<ArrayList<Integer>> data_decoded = new ArrayList<>();
-
                 // add a column to "data"
                 loader.readHeaders();
-                data.clear();
                 while (loader.readRecord()) {
                     ArrayList<Integer> tmp = new ArrayList<>();
                     tmp.add(Integer.valueOf(loader.getValues()[0]));
@@ -3464,7 +2986,7 @@ public class RegerTest {
                     data2_arr[i][0] = data.get(i).get(0) - min_time;
                     data2_arr[i][1] = data.get(i).get(1);
                 }
-                System.out.println(data2_arr[0][0]);
+//                System.out.println(data2_arr[0][0]);
                 byte[] encoded_result = new byte[data2_arr.length * 8];
                 long encodeTime = 0;
                 long decodeTime = 0;
@@ -3516,8 +3038,6 @@ public class RegerTest {
         ArrayList<String> input_path_list = new ArrayList<>();
         ArrayList<String> output_path_list = new ArrayList<>();
         ArrayList<String> dataset_name = new ArrayList<>();
-        ArrayList<Integer> dataset_block_size = new ArrayList<>();
-        ArrayList<Integer> dataset_mid = new ArrayList<>();
         ArrayList<int[]> dataset_third = new ArrayList<>();
         ArrayList<Integer> dataset_k = new ArrayList<>();
         dataset_name.add("CS-Sensors");
@@ -3559,10 +3079,9 @@ public class RegerTest {
         dataset_third.add(dataset_10);
         dataset_third.add(dataset_11);
 
-        for (int i = 0; i < dataset_name.size(); i++) {
-            input_path_list.add(input_parent_dir + dataset_name.get(i));
+        for (String value : dataset_name) {
+            input_path_list.add(input_parent_dir + value);
             dataset_k.add(1);
-            dataset_block_size.add(1024);
         }
 
         output_path_list.add(output_parent_dir + "/CS-Sensors_ratio.csv"); // 0
@@ -3591,12 +3110,11 @@ public class RegerTest {
         output_path_list.add(output_parent_dir + 
"/EPM-Education_ratio.csv");//11
 //        dataset_block_size.add(512);
 
-    for (int file_i = 0; file_i < input_path_list.size(); file_i++) {
+        for (int file_i = 0; file_i < input_path_list.size(); file_i++) {
 //        for (int file_i = 6; file_i < input_path_list.size(); file_i++) {
             String inputPath = input_path_list.get(file_i);
             String Output = output_path_list.get(file_i);
 
-            int repeatTime = 1; // set repeat time
 
             File file = new File(inputPath);
             File[] tempList = file.listFiles();
@@ -3623,11 +3141,8 @@ public class RegerTest {
                 CsvReader loader = new CsvReader(inputStream, 
StandardCharsets.UTF_8);
                 ArrayList<ArrayList<Integer>> data = new ArrayList<>();
 
-                ArrayList<ArrayList<Integer>> data_decoded = new ArrayList<>();
-
                 // add a column to "data"
                 loader.readHeaders();
-                data.clear();
                 while (loader.readRecord()) {
                     ArrayList<Integer> tmp = new ArrayList<>();
                     tmp.add(Integer.valueOf(loader.getValues()[0]));
@@ -3701,7 +3216,6 @@ public class RegerTest {
         ArrayList<String> output_path_list = new ArrayList<>();
         ArrayList<String> dataset_name = new ArrayList<>();
         ArrayList<Integer> dataset_block_size = new ArrayList<>();
-        ArrayList<Integer> dataset_mid = new ArrayList<>();
         ArrayList<int[]> dataset_third = new ArrayList<>();
         ArrayList<Integer> dataset_k = new ArrayList<>();
         dataset_name.add("CS-Sensors");
@@ -3743,8 +3257,8 @@ public class RegerTest {
         dataset_third.add(dataset_10);
         dataset_third.add(dataset_11);
 
-        for (int i = 0; i < dataset_name.size(); i++) {
-            input_path_list.add(input_parent_dir + dataset_name.get(i));
+        for (String value : dataset_name) {
+            input_path_list.add(input_parent_dir + value);
             dataset_k.add(1);
             dataset_block_size.add(1024);
         }
@@ -3780,8 +3294,6 @@ public class RegerTest {
             String inputPath = input_path_list.get(file_i);
             String Output = output_path_list.get(file_i);
 
-            int repeatTime = 1; // set repeat time
-
             File file = new File(inputPath);
             File[] tempList = file.listFiles();
 
@@ -3807,11 +3319,7 @@ public class RegerTest {
                 CsvReader loader = new CsvReader(inputStream, 
StandardCharsets.UTF_8);
                 ArrayList<ArrayList<Integer>> data = new ArrayList<>();
 
-                ArrayList<ArrayList<Integer>> data_decoded = new ArrayList<>();
-
-                // add a column to "data"
                 loader.readHeaders();
-                data.clear();
                 while (loader.readRecord()) {
                     ArrayList<Integer> tmp = new ArrayList<>();
                     tmp.add(Integer.valueOf(loader.getValues()[0]));
@@ -3829,7 +3337,7 @@ public class RegerTest {
                     data2_arr[i][1] = data.get(i).get(1);
                 }
                 System.out.println(data2_arr[0][0]);
-                for(int segment_size_exp = 
6;segment_size_exp>2;segment_size_exp--){
+                for (int segment_size_exp = 6; segment_size_exp > 2; 
segment_size_exp--) {
                     int segment_size = (int) Math.pow(2, segment_size_exp);
                     System.out.println(segment_size);
 

Reply via email to