<QFloat16> - Поддержка 16-битного плавающей точки
Заголовочный файл <QFloat16> предоставляет поддержку 16-битного представления чисел с плавающей точкой. Подробнее...
| Заголовок: | #include <QFloat16> |
| С версии: | Qt 5.9 |
Данная документация была введена в Qt 5.9.
Функции
| void | qFloatFromFloat16(float *out, const qfloat16 *in, qsizetype len) |
| void | qFloatToFloat16(qfloat16 *out, const float *in, qsizetype len) |
| 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) |
Макросы
| QT_NO_FLOAT16_OPERATORS |
Подробное описание
Этот заголовочный файл предоставляет поддержку полуточной точности (16 бит) для представления чисел с плавающей точкой с помощью класса qfloat16. Он полностью соответствует стандарту IEEE 754 в качестве типа хранения. Это означает, что любая арифметическая операция над экземпляром qfloat16 приводит к преобразованию значения в float перед выполнением. Преобразование в и из float выполняется аппаратными средствами, если это возможно. В противном случае, на процессорах, не поддерживающих полуточную арифметику, преобразование выполняется с помощью последовательности операций поиска в таблице.
qfloat16 следует рассматривать как тип данных POD (простой тип данных). Следовательно, ни одна из поддерживаемых операций не требует дополнительных пояснений, кроме подтверждения поддержки всех арифметических операторов, применимых к типам с плавающей точкой.
Документация функций
void qFloatFromFloat16(float *out, const qfloat16 *in, qsizetype len)
Преобразует len значений qfloat16 из in в числа с плавающей точкой типа float и сохраняет их в out. В массивах in и out должно быть выделено len элементов.
Эта функция была введена в Qt 5.11.
void qFloatToFloat16(qfloat16 *out, const float *in, qsizetype len)
Преобразует len чисел с плавающей точкой типа float из in в qfloat16 и сохраняет их в out. В массивах in и out должно быть выделено len элементов.
Эта функция была введена в Qt 5.11.
bool qFuzzyCompare(qfloat16 p1, qfloat16 p2)
Сравнивает значения с плавающей точкой p1 и p2 и возвращает true, если они считаются равными, иначе false.
Числа сравниваются относительно, точность увеличивается при уменьшении значений.
bool qIsFinite(qfloat16 f)
Возвращает true, если значение с плавающей точкой f является конечным числом.
См. также qIsFinite.
bool qIsInf(qfloat16 f)
Возвращает true, если значение с плавающей точкой f эквивалентно бесконечности.
См. также qIsInf.
bool qIsNaN(qfloat16 f)
Возвращает true, если значение с плавающей точкой f является неопределённым (NaN).
См. также qIsNaN.
qint64 qRound64(qfloat16 value)
Округляет value до ближайшего 64-битного целого числа.
См. также qRound64.
int qRound(qfloat16 value)
Округляет value до ближайшего целого числа.
См. также qRound.
Документация макросов
QT_NO_FLOAT16_OPERATORS
Определение этого макроса отключает арифметические операторы для qfloat16.
Это необходимо только в Visual Studio 2017 (и более ранних версиях), когда в одном трансляционном модуле включаются <QFloat16> и <bitset>, что в противном случае приведёт к ошибке компиляции из-за ошибки в инструменте (см. [QTBUG-72073]).
Эта функция была введена в Qt 5.12.4.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.13/qfloat16.html