Esta pequena biblioteca define o tipo Half
, que é um valor de ponto flutuante de meia precisão de 16 bits.
O tipo Half
usa operadores sobrecarregados para que você possa usá-lo como um tipo Single
ou Double
(embora com menor precisão).
A unidade Neslib.Half
também define um auxiliar de registro para o tipo Half
para fornecer acesso aos internos do tipo Half
(de forma semelhante a que existem auxiliares de registro para os tipos Single
e Double
).
O tipo Half
é usado por alguns formatos de imagem para fornecer uma faixa dinâmica superior a 8 bits por canal, sem recorrer ao overhead de usar 32 bits por canal. Você também pode usá-lo para armazenamento mais eficiente de valores de ponto flutuante, caso o valor possa ser ajustado em Half sem perda de precisão. Você pode usar GetSmallestFloatType
para determinar se um valor Double
cabe em Single
ou Half
sem perda de precisão.
Esta biblioteca usa algoritmos de conversão rápida desenvolvidos por Jeroen van der Zijp para converter de Half para Single e vice-versa de maneira rápida, mas precisa (veja seu artigo "Fast Half Float Conversions").
Neslib.Half está licenciado sob a Licença BSD Simplificada.
Consulte License.txt para obter detalhes.