There is something in the current spec which seems ambiguous to me. Section 9.3 says:
“…a transform designer and/or the application should insure that output floating-point values do not contain infinities and NaN codes.”
But section 9.4 says, regarding halfDomain LUTs:
" The design of this 1D array must take into account the presence of negative numbers, infinities, and NaNs in the original 16f bit pattern."
+/- infinity can be clipped to the maximum and minimum float value respectively, but what is the correct handling of NaNs? Logic might suggest that they should be passed unchanged. But this would conflict with the demand that the output not contain NaNs. An identity halfDomain LUT would not be compliant. So is it a requirement that any transform designer must pick a value for NaNs to be mapped to?