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.