Cette petite bibliothèque définit le type Half
, qui est une valeur à virgule flottante demi-précision de 16 bits.
Le type Half
utilise des opérateurs surchargés afin que vous puissiez l'utiliser comme un type Single
ou Double
(bien qu'avec une précision moindre).
L'unité Neslib.Half
définit également un assistant d'enregistrement pour le type Half
afin de donner accès aux éléments internes du type Half
(de la même manière qu'il existe des assistants d'enregistrement pour les types Single
et Double
).
Le type Half
est utilisé par certains formats d'image pour fournir une plage dynamique supérieure à 8 bits par canal, sans recourir à la surcharge liée à l'utilisation de 32 bits par canal. Vous pouvez également l'utiliser pour un stockage plus efficace des valeurs à virgule flottante au cas où la valeur pourrait être insérée dans une moitié sans perte de précision. Vous pouvez utiliser GetSmallestFloatType
pour déterminer si une valeur Double
s'intègre dans une valeur Single
ou Half
sans perte de précision.
Cette bibliothèque utilise des algorithmes de conversion rapides développés par Jeroen van der Zijp pour convertir de Half en Single et vice versa de manière rapide mais précise (voir son article "Fast Half Float Conversions").
Neslib.Half est sous licence BSD simplifiée.
Voir License.txt pour plus de détails.