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 7017c23e81703abee4488329ac943ec5c2886b61
Author: xjz17 <[email protected]>
AuthorDate: Wed Nov 22 15:30:53 2023 +0800

    update p
---
 .../iotdb/tsfile/encoding/REGERFloatTest.java      | 18 +++----
 .../iotdb/tsfile/encoding/RegerPDoubleTest.java    | 19 ++++---
 .../iotdb/tsfile/encoding/RegerPFloatTest.java     | 62 +++++++---------------
 3 files changed, 39 insertions(+), 60 deletions(-)

diff --git 
a/iotdb-core/tsfile/src/test/java/org/apache/iotdb/tsfile/encoding/REGERFloatTest.java
 
b/iotdb-core/tsfile/src/test/java/org/apache/iotdb/tsfile/encoding/REGERFloatTest.java
index ecea58b88c0..ed80b4968dd 100644
--- 
a/iotdb-core/tsfile/src/test/java/org/apache/iotdb/tsfile/encoding/REGERFloatTest.java
+++ 
b/iotdb-core/tsfile/src/test/java/org/apache/iotdb/tsfile/encoding/REGERFloatTest.java
@@ -3090,8 +3090,8 @@ public class REGERFloatTest {
         int[] dataset_9 = {474, 678};
         int[] dataset_10 = {4, 30, 38, 49, 58};
         int[] dataset_11 = {5182, 8206};
-        int[] dataset_12 = {0};
-        int[] dataset_13 = {0};
+        int[] dataset_12 = {652477};
+        int[] dataset_13 = {581388};
 
         dataset_third.add(dataset_0);
         dataset_third.add(dataset_1);
@@ -3141,8 +3141,8 @@ public class REGERFloatTest {
         output_path_list.add(output_parent_dir + 
"/TRAJET-Transport_ratio.csv"); // 13
 
 
-        for (int file_i = 0; file_i < input_path_list.size(); file_i++) {
-//        for (int file_i = 2; file_i < 3; file_i++) {
+//        for (int file_i = 0; file_i < input_path_list.size(); file_i++) {
+        for (int file_i = 12; file_i < 14; file_i++) {
             String inputPath = input_path_list.get(file_i);
             String Output = output_path_list.get(file_i);
 
@@ -3297,8 +3297,8 @@ public class REGERFloatTest {
         int[] dataset_9 = {474, 678};
         int[] dataset_10 = {4, 30, 38, 49, 58};
         int[] dataset_11 = {5182, 8206};
-        int[] dataset_12 = {0};
-        int[] dataset_13 = {0};
+        int[] dataset_12 = {652477};
+        int[] dataset_13 = {581388};
 
         dataset_third.add(dataset_0);
         dataset_third.add(dataset_1);
@@ -3337,7 +3337,7 @@ public class REGERFloatTest {
 //        int[] file_lists = {0,2,11};
 //        for (int file_i : file_lists) {
         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++) {
+//                    for (int file_i = 12; file_i < input_path_list.size(); 
file_i++) {
             String inputPath = input_path_list.get(file_i);
             String Output = output_path_list.get(file_i);
 
@@ -3476,8 +3476,8 @@ public class REGERFloatTest {
         int[] dataset_9 = {474, 678};
         int[] dataset_10 = {4, 30, 38, 49, 58};
         int[] dataset_11 = {5182, 8206};
-        int[] dataset_12 = {0};
-        int[] dataset_13 = {0};
+        int[] dataset_12 = {652477};
+        int[] dataset_13 = {581388};
 
         dataset_third.add(dataset_0);
         dataset_third.add(dataset_1);
diff --git 
a/iotdb-core/tsfile/src/test/java/org/apache/iotdb/tsfile/encoding/RegerPDoubleTest.java
 
b/iotdb-core/tsfile/src/test/java/org/apache/iotdb/tsfile/encoding/RegerPDoubleTest.java
index 0a2bf90f2d6..1bb35b82a38 100644
--- 
a/iotdb-core/tsfile/src/test/java/org/apache/iotdb/tsfile/encoding/RegerPDoubleTest.java
+++ 
b/iotdb-core/tsfile/src/test/java/org/apache/iotdb/tsfile/encoding/RegerPDoubleTest.java
@@ -742,6 +742,7 @@ public class RegerPDoubleTest {
     int[] b;
     int[][] new_length_list = new int[block_size][3];
     int pos_new_length_list = 0;
+    int range = block_size / 16;
 
     // alpha <= p
     if (alpha < p) {
@@ -763,7 +764,8 @@ public class RegerPDoubleTest {
           pos_new_length_list++;
         }
       }
-      for (j = alpha + 2; j < alpha + p && j < block_size; j++) {
+      int end_j = Math.min(alpha+range, block_size);
+      for (j = alpha + 2; j < alpha + p && j < end_j; j++) {
 
         b = adjustCase3(ts_block, alpha, j, theta, p);
         if (b[0] < raw_abs_sum) {
@@ -779,7 +781,7 @@ public class RegerPDoubleTest {
           pos_new_length_list++;
         }
       }
-      for (; j < block_size; j++) {
+      for (; j < end_j; j++) {
 
         b = adjustCase4(ts_block, alpha, j, theta, p);
         if (b[0] < raw_abs_sum) {
@@ -845,7 +847,8 @@ public class RegerPDoubleTest {
           pos_new_length_list++;
         }
       }
-      for (j = alpha + 2; j < alpha + p && j < block_size; j++) {
+      int end_j =  Math.min(alpha+range, block_size);
+      for (j = alpha + 2; j < alpha + p && j < end_j; j++) {
 
         b = adjustCase3(ts_block, alpha, j, theta, p);
         if (b[0] < raw_abs_sum) {
@@ -861,7 +864,7 @@ public class RegerPDoubleTest {
           pos_new_length_list++;
         }
       }
-      for (; j < block_size; j++) {
+      for (; j < end_j; j++) {
 
         b = adjustCase4(ts_block, alpha, j, theta, p);
         if (b[0] < raw_abs_sum) {
@@ -893,6 +896,8 @@ public class RegerPDoubleTest {
       }
     } // p < alpha <= n-p
     else {
+      int start_j = Math.max(alpha - range / 2, 1);
+      int end_j = Math.min(alpha + range / 2, block_size - 1);
 
       int j = 0;
       for (; j < alpha - p; j++) {
@@ -927,7 +932,7 @@ public class RegerPDoubleTest {
           pos_new_length_list++;
         }
       }
-      for (j = alpha + 2; j < alpha + p && j < block_size; j++) {
+      for (j = alpha + 2; j < alpha + p && j < end_j; j++) {
 
         b = adjustCase3(ts_block, alpha, j, theta, p);
         if (b[0] < raw_abs_sum) {
@@ -943,7 +948,7 @@ public class RegerPDoubleTest {
           pos_new_length_list++;
         }
       }
-      for (; j < block_size; j++) {
+      for (; j < end_j; j++) {
 
         b = adjustCase4(ts_block, alpha, j, theta, p);
         if (b[0] < raw_abs_sum) {
@@ -2262,7 +2267,7 @@ public class RegerPDoubleTest {
     }
   }
 
-  @Test
+
   public void REGERPDoubleVaryPrecision() throws IOException {
 
     String parent_dir =
diff --git 
a/iotdb-core/tsfile/src/test/java/org/apache/iotdb/tsfile/encoding/RegerPFloatTest.java
 
b/iotdb-core/tsfile/src/test/java/org/apache/iotdb/tsfile/encoding/RegerPFloatTest.java
index b6e7663bec5..d8ffa99b07b 100644
--- 
a/iotdb-core/tsfile/src/test/java/org/apache/iotdb/tsfile/encoding/RegerPFloatTest.java
+++ 
b/iotdb-core/tsfile/src/test/java/org/apache/iotdb/tsfile/encoding/RegerPFloatTest.java
@@ -730,6 +730,8 @@ public class RegerPFloatTest {
     int raw_value_delta_max_index = -1;
 
     int raw_abs_sum = raw_length[0];
+    int range = block_size / 16;
+
 
     ArrayList<Integer> j_star_list = new ArrayList<>(); // beta list of min b 
phi alpha to j
 //    ArrayList<Integer> max_index = new ArrayList<>();
@@ -739,43 +741,7 @@ public class RegerPFloatTest {
     if (alpha == -1) {
       return j_star;
     }
-//    int[] delta_index = new int[4];
-//    int[] delta = new int[4];
-//    deltaTSBlock(ts_block, delta_index,delta, theta, p);
-//
-//    timestamp_delta_min = delta[2];
-//    value_delta_min = delta[3];
-
-
-    for (int j = 1; j < p; j++) {
-      float epsilon_r = (float) ts_block[j][0] - theta[0];
-      float epsilon_v = (float) ts_block[j][1] - theta[1];
-      for (int pi = 1; pi <= j; pi++) {
-        epsilon_r -= theta[2 * pi] * (float) ts_block[j - pi][0];
-        epsilon_v -= theta[2 * pi + 1] * (float) ts_block[j - pi][1];
-      }
 
-      if (epsilon_r < timestamp_delta_min) {
-        timestamp_delta_min = (int) epsilon_r;
-      }
-      if (epsilon_v < value_delta_min) {
-        value_delta_min = (int) epsilon_v;
-      }
-    }
-
-    // regression residual
-//    for (int j = p; j < block_size; j++) {
-//      float epsilon_r = (float) ts_block[j][0] - theta[0];
-//      float epsilon_v = (float) ts_block[j][1] - theta[1];
-//      //            System.out.println("p="+p);
-//      for (int pi = 1; pi <= p; pi++) {
-//        epsilon_r -= (theta[2 * pi] * (float) ts_block[j - pi][0]);
-//        epsilon_v -= (theta[2 * pi + 1] * (float) ts_block[j - pi][1]);
-//      }
-//      if (j != alpha && ((int) epsilon_r == max_timestamp || (int) epsilon_v 
== max_value)) {
-//        max_index.add(j);
-//      }
-//    }
     int[] b;
     int[][] new_length_list = new int[block_size][3];
     int pos_new_length_list = 0;
@@ -800,8 +766,8 @@ public class RegerPFloatTest {
           pos_new_length_list++;
         }
       }
-      int end_j = Math.min(alpha+p, block_size);
-      for (j = alpha + 2; j < end_j; j++) {
+      int end_j = Math.min(alpha+range, block_size);
+      for (j = alpha + 2; j < alpha + p && j < end_j; j++) {
         b = adjustCase3(ts_block, alpha, j, theta, p);
         if (b[0] < raw_abs_sum) {
           raw_abs_sum = b[0];
@@ -816,7 +782,8 @@ public class RegerPFloatTest {
           pos_new_length_list++;
         }
       }
-      for (; j < block_size; j++) {
+      end_j = Math.min(alpha+range, block_size);
+      for (; j < end_j; j++) {
 
         b = adjustCase4(ts_block, alpha, j, theta, p);
         if (b[0] < raw_abs_sum) {
@@ -882,7 +849,8 @@ public class RegerPFloatTest {
           pos_new_length_list++;
         }
       }
-      for (j = alpha + 2; j < alpha + p && j < block_size; j++) {
+      int end_j = Math.min(alpha+range, block_size);
+      for (j = alpha + 2; j < alpha + p && j < end_j; j++) {
 
         b = adjustCase3(ts_block, alpha, j, theta, p);
         if (b[0] < raw_abs_sum) {
@@ -898,7 +866,8 @@ public class RegerPFloatTest {
           pos_new_length_list++;
         }
       }
-      for (; j < block_size; j++) {
+      end_j = Math.min(alpha+range, block_size);
+      for (; j < end_j; j++) {
 
         b = adjustCase4(ts_block, alpha, j, theta, p);
         if (b[0] < raw_abs_sum) {
@@ -930,8 +899,11 @@ public class RegerPFloatTest {
       }
     } // p < alpha <= n-p
     else {
+      int start_j = Math.max(alpha - range / 2, 1);
+      int end_j = Math.min(alpha + range / 2, block_size - 1);
+
+      int j = start_j;
 
-      int j = 0;
       for (; j < alpha - p; j++) {
 
         b = adjustCase1(ts_block, alpha, j, theta, p);
@@ -964,7 +936,9 @@ public class RegerPFloatTest {
           pos_new_length_list++;
         }
       }
-      for (j = alpha + 2; j < alpha + p && j < block_size; j++) {
+
+
+      for (j = alpha + 2; j < alpha + p && j < end_j; j++) {
 
         b = adjustCase3(ts_block, alpha, j, theta, p);
         if (b[0] < raw_abs_sum) {
@@ -980,7 +954,7 @@ public class RegerPFloatTest {
           pos_new_length_list++;
         }
       }
-      for (; j < block_size; j++) {
+      for (; j < end_j; j++) {
 
         b = adjustCase4(ts_block, alpha, j, theta, p);
         if (b[0] < raw_abs_sum) {

Reply via email to