Класс 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(Qt::Initialization) | |
| 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 6.1] qfloat16::qfloat16(Qt::Initialization)
Конструирует qfloat16 без инициализации значения.
Эта функция была добавлена в Qt 6.1.
[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 значений float из 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.1/qfloat16.html