You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
premisses have to be checked / questions have to be answered before doing the bitinformation+round business:
is the data rather linear or logarithmically distributed?
which binary encoding is most appropriate given 1. (integer/fixed-point/linear quantization vs floats)
Analyse the bitinformation within that appropriate encoding
Bitround in that encoding too (and you'll either have rigid absolute error bounds for linear or relative for log)
Problem is obviously that most people want to use floats regardless of what data they are handling. Sure that makes sense. So for linearly distributed data (where you want absolute errors to have rigid bounds) we have to come up with a workaround to better adhere to 1.-4. while using floats. Let's take your sea surface temperature example and say you have the high precision data in ˚C and definitely want to store the data as ˚C, so what can one do?
shift the data into a range where floats are linear, i.e. all data is within a power of 2. For ˚C you could convert to Kelvin (although I'd advise not to* unless you store in K) but you can also just add 256 (if no neg temperatures) or 512, a power of 2 is a good choice. Now your encoding matches your data distribution.
analyse the bitinformation now. While this gives you mantissa bits, this actually suggests an absolute error and not a relative one for your data as all exponent bits are identical anyway.
now subtract your initial offset again and you'll get more mantissa bits of precision for higher temperatures and fewer for lower temperatures so that your max absolute error is globally constant.
The text was updated successfully, but these errors were encountered:
@milankl metioned very important points in milankl/BitInformation.jl#38 (comment) which could/should be implemented in our
xbitinfo
pipeline:The text was updated successfully, but these errors were encountered: