I had a quick 'mental refresh' (courtesy of Google

), and came up with the following, taken from
http://steve.hollasch.net/cgindex/coding/ieeefloat.htmlThe range of positive floating point numbers can be split into normalized numbers (which preserve the full precision of the mantissa), and denormalized numbers which use only a portion of the fractions's precision.
| Denormalized | Normalized | Approximate Decimal |
32-Bit Single Precision | ± 2-149 to (1-2-23)×2-126 | ± 2-126 to (2-2-23)×2127 | ± ~10-44.85 to ~1038.53 |
64-Bit Double Precision | ± 2-1074 to (1-2-52)×2-1022 | ± 2-1022 to (2-2-52)×21023 | ± ~10-323.3 to ~10308.3 |
So, as you can see, even the 32-bit range is HUGE
In fact, the actual 'resolution' that can be supported in 32-bit format is controlled by the 'fraction' part of the number (similar to sayning that 1.2345
6 can be identified as being 'different' from 1.2345
7) - and in each of these two Float formats, the 'fraction' part of the number uses either 23 bits or 52 bits.
So, if you think that your 'calibrated image data' is liable to require more than 2
23 discrete levels, then you should be working in 64-bit float during the calibration phase.
However, given that our image data is only generated in 16-bit mode (which gives 2
16 discrete levels), my instinct is that the 'extra' 2
7 levels provided in 32-bit Float mode should be MORE than adequate to allow for 'fractional parts' of ADU values during the calibration phase. After all, 2
7 is 128 - so that means (
to my way of thinking, at least) that PixInsight will handle the Calibration Data (in 32-bit Float mode) to
1/
100th of an ADU value right from the outset.
Personally, I actually stick to 16-bit INTEGER format right through the calibration phase, and I haven't been able to tell whether I have lost ANY data due to this self-imposed restriction.
Cheers,