Эта небольшая библиотека определяет тип 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.