Open JasonRuonanWang opened 3 years ago
I can reproduce this on 360a2fb853adbb1d758704960d4f51e85e4d3f57. Here is more or less what's happening:
x
, a quantizer bin width q
is computed. The bin width depends on a number of factors, among them the error tolerance and the size of the input dataset.n
such that n * q
is as close as possible to x
. n
is stored as a long int
. If n
doesn't fit in a long int
, the exception you see is thrown.The easiest way to run into this is to use a very low error tolerance. See #32. MGARD should probably store the coefficients uncompressed (abandoning quantization) rather than throw an exception in this situation.
I have come across this exception when I was trying to compress a 2D float array. When I set the accuracy to 0.000001, as soon as I increase the array size to larger than 300x300, which is not a big array in the sense of HPC applications, it starts throwing this exception.
I have attached a simple code to re-produce it. It's an ADIOS2 code, but should be fairly easy to translate to a MGARD code.