[GlobalSettings]

# The compression algorithms are:
# ALGO_INTERP_LORENZO
#     The default algorithm in SZ3. It is the implementation of our ICDE'21 paper.
#     The whole dataset will be compressed by interpolation or lorenzo predictor with auto-optimized settings.
# ALGO_INTERP
#     The whole dataset will be compressed by interpolation predictor with default settings.
# ALGO_LORENZO_REG
#     The whole dataset will be compressed by lorenzo and/or regression based predictors block by block with default settings.
#     The four predictors ( 1st-order lorenzo, 2nd-order lorenzo, 1st-order regression, 2nd-order regression)
#     can be enabled or disabled independently by conf settings (Lorenzo, Lorenzo2ndOrder, Regression, Regression2ndOrder).
CmprAlgo = ALGO_INTERP_LORENZO


#errorBoundMode: 6 options to control different types of error bounds
# "ABS", "REL", "PSNR", "NORM", "ABS_AND_REL", "ABS_OR_REL"
ErrorBoundMode = ABS

#absolute Error Bound (NOTE: it's valid when errorBoundMode is related to ABS (i.e., absolute error bound)
#absErrBound is to limit the (de)compression errors to be within an absolute error.
#For example, absErrBound=0.0001 means the decompressed value must be in [V-0.0001,V+0.0001], where V is the original true value.
AbsErrorBound = 1

#relative Bound Ratio (NOTE: it's valid only when errorBoundMode is related to REL (i.e., value_range based relative error bound)
#relErrBound is to limit the (de)compression errors by considering the global data value range size (i.e., taking into account the range size (max_value - min_value)).
#For example, suppose relBoundRatio is set to 0.01, and the data set is {100,101,102,103,104,...,110},
#so the global value range size is 110-100=10, so the error bound will actually be 10*0.01=0.1, from the perspective of "relBoundRatio"
RelErrorBound = 1e-3

#expected PSNR (Note: only valid when ErrorBoundMode = PSNR)
PSNRErrorBound = 70

#expected L2 NORM Error: sqrt((x1-x1')^2+(x2-x2')^2+....+(xN-xN')^2)
L2NormErrorBound = .333

#Use OpenMP for compression and decompression
OpenMP = NO

[AlgoSettings]
# settings for interpolation algorithm
# INTERP_ALGO_LINEAR
#      use linear interpolation
# INTERP_ALGO_CUBIC
#      use cubic spline interpolation
InterpolationAlgo = INTERP_ALGO_CUBIC
InterpolationDirection = 0

#settings for lorenzo and regression algorithms
Lorenzo = Yes
Lorenzo2ndOrder = No
Regression = Yes
Regression2ndOrder = No
#BlockSize = 6

#maximum quantization interval is valid only when quantization_intervals=0 (i.e., let the sz compressor optimize the intervals)
#In general, this setting does not change the compression ratio/rate, but only affect the compression speed to a certain extent (only 10% in general).
#The high values of max_quant_intervals, the lower compression speed,
#but the higher ability the compressor can reach high compression ratios for high-precision compression.
#As for low-precision compression (i.e., high error bound such as 1E-2), max_quant_intervals could be set to 256 or 65536.
#As for pretty-high-precision demand (i.e., fairly small error bound such as 1E-6), max_quant_intervals could be set to 2097152(=2^21).
QuantizationBinTotal = 65536
