Класс qfloat16
Обеспечивает поддержку 16-битной плавающей точки. Подробнее...
| Заголовок: | #include <QFloat16> |
| CMake: | find_package(Qt6 COMPONENTS Core REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
| С тех пор: | Qt 5.9 |
Открытые функции
| qfloat16 | copySign(qfloat16 sign) const |
| bool | isNormal() const |
Связанные нечлены
| void | qFloatFromFloat16(float *out, const qfloat16 *in, qsizetype len) |
| void | qFloatToFloat16(qfloat16 *out, const float *in, qsizetype len) |
| int | qFpClassify(qfloat16 val) |
| bool | qFuzzyCompare(qfloat16 p1, qfloat16 p2) |
| bool | qIsFinite(qfloat16 f) |
| bool | qIsInf(qfloat16 f) |
| bool | qIsNaN(qfloat16 f) |
| qint64 | qRound64(qfloat16 value) |
| int | qRound(qfloat16 value) |
Подробное описание
Класс qfloat16 предоставляет поддержку данных с плавающей запятой половинной точности (16 бит). Он полностью соответствует IEEE 754 в качестве типа хранения. Это означает, что любая арифметическая операция над экземпляром qfloat16 приводит к тому, что значение сначала преобразуется в float. Это преобразование в float и из него выполняется аппаратно, когда это возможно, но на процессорах, которые не поддерживают половинную точность по умолчанию, преобразование выполняется с помощью последовательности операций поиска в таблице.
qfloat16 следует рассматривать как тип POD (простой старый тип данных). Следовательно, ни одна из поддерживаемых операций не требует дополнительных разъяснений, кроме того, что она поддерживает все арифметические операторы, связанные с типами с плавающей точкой.
Примечание: В x86 и x86-64 для получения ускоренных аппаратных преобразований необходимо скомпилировать с включёнными F16C или AVX2, или использовать qFloatToFloat16() и qFloatFromFloat16(), которые обнаружат F16C во время выполнения.
Документация по членам-функциям
[since 5.15] qfloat16 qfloat16::copySign(qfloat16 sign) const
Возвращает qfloat16 со знаком sign, но остальная часть его значения взята из этого qfloat16. Служит эквивалентом std::copysign() для qfloat16.
Эта функция была введена в Qt 5.15.
[since 5.14] bool qfloat16::isNormal() const
Возвращает true, если это значение qfloat16 является конечным и находится в нормальной форме.
Эта функция была введена в Qt 5.14.
См. также qFpClassify().
Связанные нечлены
[since 5.11] void qFloatFromFloat16(float *out, const qfloat16 *in, qsizetype len)
Преобразует len qfloat16 из in в типы float и сохраняет их в out. И in, и out должны иметь len выделенных элементов.
Эта функция быстрее, чем преобразование значений по одному, и выполняет обнаружение F16C во время выполнения на x86 и x86-64 оборудовании.
Эта функция была введена в Qt 5.11.
[since 5.11] void qFloatToFloat16(qfloat16 *out, const float *in, qsizetype len)
Преобразует len чисел с плавающей точкой из in в qfloat16 и сохраняет их в out. И in, и out должны иметь len выделенных элементов.
Эта функция быстрее, чем преобразование значений по одному, и выполняет обнаружение F16C во время выполнения на x86 и x86-64 оборудовании.
Эта функция была введена в Qt 5.11.
[since 5.14] int qFpClassify(qfloat16 val)
Эта функция перегружает qFpClassify(float).
Возвращает класс с плавающей точкой val.
Эта функция была введена в Qt 5.14.
bool qFuzzyCompare(qfloat16 p1, qfloat16 p2)
Эта функция перегружает qFuzzyCompare(float, float).
Сравнивает значения с плавающей точкой p1 и p2 и возвращает true, если они считаются равными, в противном случае false.
Два числа сравниваются по отношению, где точность выше, чем числа меньше.
bool qIsFinite(qfloat16 f)
Эта функция перегружает qIsFinite(float).
Возвращает true, если qfloat16 f является конечным числом.
bool qIsInf(qfloat16 f)
Эта функция перегружает qIsInf(float).
Возвращает true, если qfloat16 f эквивалентен бесконечности.
bool qIsNaN(qfloat16 f)
Эта функция перегружает qIsNaN(float).
Возвращает true, если qfloat16 f не является числом (NaN).
qint64 qRound64(qfloat16 value)
Эта функция перегружает qRound64(float).
Округляет value до ближайшего 64-битного целого числа.
int qRound(qfloat16 value)
Эта функция перегружает qRound(float).
Округляет value до ближайшего целого числа.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.0/qfloat16.html