Hi, Here is a new take on the computational precision paragraph:
#### 8.3.8 Computational Precision The accuracy of the reconstituted coordinates will depend on the degree of subsampling, the choice of interpolation method and the choice of the floating-point arithmetic precision used in the interpolation method computations. Implementation details of the interpolation methods and hardware can also have an impact on the accuracy of the reconstituted coordinates. The creator of the compressed dataset must check that the coordinates reconstituted using the interpolation parameters specified in the file have sufficient accuracy compared to the coordinates at full resolution. Although it may depend on the software and hardware used by the creator, the floating-point arithmetic precision used during this validation step must be specified in the `computational_precision` attribute of the interpolation method as an indication of potential floating-point precision issues during the interpolation computations. The `computational_precision` attribute is mandatory and accepts the following values: (table) "32": 32-bit floating-point arithmetic, comparable to the binary32 standard in [IEEE_754] "64": 64-bit floating-point arithmetic, comparable to the binary64 standard in [IEEE_754] For the coordinates reconstitution process, using a floating-point arithmetic precision matching or exceeding the precision specified by `computational_precision` is likely to produce results with an accuracy similar to what the creator obtained during the validation of the dataset, but it cannot be guaranteed due to the software/hardware factor. As an example, `computational_precision = "64"` would specify that, using the same software and hardware as the creator of the compressed dataset, sufficient accuracy could not be reached when using a floating-point precision lower than 64-bit floating-point arithmetic in the interpolation computations required to reconstitute the coordinates. **Bibliography** **References** [IEEE_754] [IEEE Standard for Floating-Point Arithmetic](https://urldefense.us/v3/__https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=8766229&isnumber=8766228__;!!G2kpM7uM-TzIFchu!h6g5VosoxJPZrjMnqKldnCSEYC-DjpPbYuBWm5Jd1jE2UXrJvx-8VuSHQj4VI5g_zrcX2-BLYGI$ ), in IEEE Std 754-2019 (Revision of IEEE 754-2008) , vol., no., pp.1-84, 22 July 2019, doi: 10.1109/IEEESTD.2019.8766229. --- #### Rationale: The accuracy of the interpolation methods depends not only on the choices made by the data producer (tie points density, area subdivisions, interpolation method parameters, etc...) but also on the software (programming language, libraries) and on the hardware (CPU/FPU) used by the data consumers. The data producers only know about their own software and hardware, so the computational_precision attribute can only mean that the data producer used this floating point precision when they validated these data using their implementation of the interpolation method, not that using this floating point precision on any software/hardware combination will produce exactly the same results. I think the computational_precision attribute can only be considered as a hint provided by the data producer regarding numerical issues they encountered when trying to reconstruct the target variables at their full resolution with their implementation of the interpolation method: if the computational_precision exceeds the precision of the data type (e.g. a "64" computational_precision used when interpolating a float variables), then users know that the data producer did not obtain satisfying results when using a lower precision, hence they should be wary of underflow/overflow errors when they interpolate these data. So computational_precision is more of an informational hint than a compulsory instruction given to the users (unless @erget 's CF police becomes a reality), and it is not a reproductibility guarantee either. Yet it is still a useful piece of information and no one except the data producer can provide it since you need access to the original data at their native resolution to make actual checks on the accuracy of the interpolation method. As the information cannot be derived from the content of the file it makes sense to require that data producers include this attribute systematically: the computational_precision should be mandatory. Sylvain -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://urldefense.us/v3/__https://github.com/cf-convention/cf-conventions/issues/327*issuecomment-872178234__;Iw!!G2kpM7uM-TzIFchu!h6g5VosoxJPZrjMnqKldnCSEYC-DjpPbYuBWm5Jd1jE2UXrJvx-8VuSHQj4VI5g_zrcX6hbMb2s$ This list forwards relevant notifications from Github. It is distinct from [email protected], although if you do nothing, a subscription to the UCAR list will result in a subscription to this list. To unsubscribe from this list only, send a message to [email protected].
