Эта небольшая библиотека определяет тип Half , который представляет собой 16-битное значение с плавающей запятой половинной точности.
Тип Half использует перегруженные операторы, поэтому его можно использовать так же, как типы Single или Double (хотя и с меньшей точностью).
Модуль Neslib.Half также определяет помощник записи для типа Half , чтобы обеспечить доступ к внутренним компонентам типа Half (аналогично тому, как существуют помощники записи для типов Single и Double ).
Тип Half используется некоторыми форматами изображений для обеспечения более высокого динамического диапазона, чем 8 бит на канал, без необходимости использования 32 бит на канал. Вы также можете использовать его для более эффективного хранения значений с плавающей запятой, если значение можно уместить в половину без потери точности. Вы можете использовать GetSmallestFloatType , чтобы определить, соответствует ли значение Double значению Single или Half без потери точности.
Эта библиотека использует алгоритмы быстрого преобразования, разработанные Йеруном ван дер Зийпом, для быстрого, но точного преобразования из Half в Single и наоборот (см. его статью «Быстрые преобразования Half Float»).
Neslib.Half распространяется по упрощенной лицензии BSD.
Подробности см. в License.txt.