Esta pequeña biblioteca define el tipo Half
, que es un valor de punto flotante de media precisión de 16 bits.
El tipo Half
utiliza operadores sobrecargados, por lo que puede usarlo como un tipo Single
o Double
(aunque con menor precisión).
La unidad Neslib.Half
también define un asistente de registro para el tipo Half
para proporcionar acceso a las partes internas del tipo Half
(de manera similar a como existen asistentes de registro para los tipos Single
y Double
).
Algunos formatos de imagen utilizan el tipo Half
para proporcionar un rango dinámico superior a 8 bits por canal, sin recurrir a la sobrecarga de utilizar 32 bits por canal. También puede usarlo para un almacenamiento más eficiente de valores de punto flotante en caso de que el valor pueda caber en un Half sin pérdida de precisión. Puede utilizar GetSmallestFloatType
para determinar si un valor Double
cabe en Single
o Half
sin pérdida de precisión.
Esta biblioteca utiliza algoritmos de conversión rápida desarrollados por Jeroen van der Zijp para convertir de Half a Single y viceversa de una manera rápida pero precisa (consulte su artículo "Conversiones rápidas de Half Float").
Neslib.Half tiene la licencia BSD simplificada.
Consulte Licencia.txt para obtener más detalles.