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) {
