@@ -54,9 +54,8 @@ T *SZ_decompress_Interp_N(const SZ::Config &conf, char *cmpData, size_t cmpSize)
54
54
55
55
56
56
template <class T , uint N>
57
- double do_not_use_this_interp_compress_block_test (T *data, std::vector<size_t > dims, size_t num, double eb, int interp_level,
58
- int interp_op, int direction_op,
59
- int block_size, int interp_block_size) {
57
+ double do_not_use_this_interp_compress_block_test (T *data, std::vector<size_t > dims, size_t num,
58
+ double eb, int interp_op, int direction_op, int block_size) {
60
59
61
60
// std::cout << "****************** Interp Compression ****************" << std::endl;
62
61
// std::cout << "Interp Op = " << interp_op << std::endl
@@ -82,7 +81,7 @@ double do_not_use_this_interp_compress_block_test(T *data, std::vector<size_t> d
82
81
SZ::Lossless_zstd (),
83
82
interp_op,
84
83
direction_op,
85
- interp_level
84
+ - 1
86
85
);
87
86
88
87
auto cmpData = sz.compress (data1.data (), compressed_size);
@@ -137,31 +136,27 @@ char *SZ_compress_Interp_lorenzo_N(SZ::Config &conf, T *data, size_t &outSize) {
137
136
// printf("Lorenzo ratio = %.2f\n", ratio);
138
137
139
138
double best_lorenzo_ratio = ratio, best_interp_ratio = 0 ;
140
- int interp_level = -1 , interp_op, direction_op = 0 , block_size = sampling_block, interp_block_size = sampling_block;
141
139
142
140
{
143
141
// tune interp
144
- for (int i = 0 ; i < 2 ; i ++) {
142
+ for (int interp_op = 0 ; interp_op < 2 ; interp_op ++) {
145
143
ratio = do_not_use_this_interp_compress_block_test<T, N>(sampling_data.data (), sample_dims, sampling_num, conf.absErrorBound ,
146
- interp_level,
147
- i, direction_op,
148
- block_size, interp_block_size);
144
+ interp_op, conf.interp_direction_op , sampling_block);
149
145
if (ratio > best_interp_ratio) {
150
146
best_interp_ratio = ratio;
151
- interp_op = i ;
147
+ conf. interp_op = interp_op ;
152
148
}
153
149
}
154
- std::cout << " interp select interp_op = " << interp_op << " , ratio = " << best_interp_ratio << std::endl;
150
+ std::cout << " interp select interp_op = " << conf. interp_op << std::endl;
155
151
156
- ratio = do_not_use_this_interp_compress_block_test<T, N>(sampling_data. data (), sample_dims, sampling_num, conf. absErrorBound , interp_level,
157
- interp_op, 5 ,
158
- block_size, interp_block_size );
152
+ int direction_op = SZ::factorial (N) - 1 ;
153
+ ratio = do_not_use_this_interp_compress_block_test<T, N>(sampling_data. data (), sample_dims, sampling_num, conf. absErrorBound ,
154
+ conf. interp_op , direction_op, sampling_block );
159
155
if (ratio > best_interp_ratio * 1.02 ) {
160
156
best_interp_ratio = ratio;
161
- direction_op = 5 ;
157
+ conf. interp_direction_op = direction_op ;
162
158
}
163
- std::cout << " interp select direction_op = " << direction_op << " , ratio = " << best_interp_ratio
164
- << std::endl;
159
+ std::cout << " interp select direction_op = " << conf.interp_direction_op << std::endl;
165
160
}
166
161
167
162
bool useInterp = !(best_lorenzo_ratio > best_interp_ratio && best_lorenzo_ratio < 80 && best_interp_ratio < 80 );
@@ -171,12 +166,9 @@ char *SZ_compress_Interp_lorenzo_N(SZ::Config &conf, T *data, size_t &outSize) {
171
166
172
167
if (useInterp) {
173
168
conf.cmprMethod = METHOD_INTERP;
174
- conf.interp_op = interp_op;
175
- conf.interp_direction_op = direction_op;
176
169
double tuning_time = timer.stop ();
177
170
// std::cout << "Tuning time = " << tuning_time << "s" << std::endl;
178
- std::cout << " ====================================== END TUNING ======================================"
179
- << std::endl << std::endl;
171
+ std::cout << " ====================================== END TUNING ======================================" << std::endl;
180
172
return SZ_compress_Interp_N<T, N>(conf, data, outSize);
181
173
} else {
182
174
// further tune lorenzo
@@ -211,8 +203,7 @@ char *SZ_compress_Interp_lorenzo_N(SZ::Config &conf, T *data, size_t &outSize) {
211
203
conf = lorenzo_config;
212
204
double tuning_time = timer.stop ();
213
205
// std::cout << "Tuning time = " << tuning_time << "s" << std::endl;
214
- std::cout << " ====================================== END TUNING ======================================"
215
- << std::endl << std::endl;
206
+ std::cout << " ====================================== END TUNING ======================================" << std::endl;
216
207
return SZ_compress_LorenzoReg_N<T, N>(conf, data, outSize);
217
208
}
218
209
0 commit comments