Spec-Zone.ru › Qt 5.15

Класс qfloat16

Обеспечивает поддержку 16-битной плавающей точки. Подробнее...

Заголовок: #include <QFloat16>
qmake: QT += core
С момента: Qt 5.9

Этот класс был представлен в 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)
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

Подробное описание

Класс qfloat16 предоставляет поддержку полуточной точности (16 бит) данных с плавающей запятой. Он полностью соответствует IEEE 754 в качестве типа хранения. Это означает, что любая арифметическая операция над экземпляром qfloat16 приводит к тому, что значение сначала преобразуется в float. Это преобразование в float и из него выполняется аппаратным обеспечением, когда это возможно, но на процессорах, которые не поддерживают полуточность, преобразование выполняется с помощью последовательности операций поиска в таблице.

qfloat16 следует рассматривать как тип POD (простой старый тип данных). Следовательно, ни одна из поддерживаемых операций не требует дополнительных пояснений, кроме указания, что она поддерживает все арифметические операторы, характерные для типов с плавающей запятой.

Примечание: На x86 и x86-64 для получения аппаратного ускорения преобразований необходимо скомпилировать с включенным F16C или AVX2, или использовать qFloatToFloat16() и qFloatFromFloat16(), которые будут обнаруживать F16C во время выполнения.

Документация по функциям-членам

qfloat16 qfloat16::copySign(qfloat16 sign) const

Возвращает qfloat16 со знаком sign, но остальная часть его значения взята из этого qfloat16. Выступает в качестве эквивалента std::copysign() для qfloat16.

Эта функция была представлена в Qt 5.15.

bool qfloat16::isNormal() const

Возвращает true, если это значение qfloat16 является конечным и находится в нормальной форме.

Эта функция была представлена в Qt 5.14.

См. также qFpClassify().

Связанные нечлены

void qFloatFromFloat16(float *out, const qfloat16 *in, qsizetype len)

Преобразует len qfloat16 из in в числа с плавающей точкой и сохраняет их в out. И in, и out должны иметь выделенные записи len.

Эта функция быстрее, чем преобразование значений по одному, и выполнит обнаружение F16C во время выполнения на оборудовании x86 и x86-64.

Эта функция была представлена в Qt 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.

bool qFuzzyCompare(qfloat16 p1, qfloat16 p2)

Сравнивает значения с плавающей запятой p1 и p2 и возвращает true, если они считаются равными, в противном случае false.

Два числа сравниваются по отношению, где точность сильнее, чем меньше числа.

bool qIsFinite(qfloat16 f)

Возвращает true, если qfloat16 f является конечным числом.

См. также qIsFinite.

bool qIsInf(qfloat16 f)

Возвращает true, если qfloat16 f эквивалентно бесконечности.

См. также qIsInf.

bool qIsNaN(qfloat16 f)

Возвращает true, если qfloat16 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.15/qfloat16.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API