![]() |
Qt 6.x
The Qt SDK
|
\keyword 16-bit Floating Point Support\inmodule QtCore \inheaderfile QFloat16 More...
#include <qfloat16.h>
Public Types | |
using | NativeType = void |
using | NearestFloat = std::conditional_t< IsNative, NativeType, float > |
Public Member Functions | |
constexpr | qfloat16 () noexcept |
qfloat16 (Qt::Initialization) noexcept | |
qfloat16 (float f) noexcept | |
operator float () const noexcept | |
template<typename T , typename = std::enable_if_t<std::is_arithmetic_v<T> && !std::is_same_v<T, NearestFloat>>> | |
constexpr | qfloat16 (T value) noexcept |
bool | isInf () const noexcept |
bool | isNaN () const noexcept |
bool | isFinite () const noexcept |
Q_CORE_EXPORT int | fpClassify () const noexcept |
qfloat16 | copySign (qfloat16 sign) const noexcept |
constexpr bool | isNormal () const noexcept |
Static Public Member Functions | |
static constexpr qfloat16 | _limit_epsilon () noexcept |
static constexpr qfloat16 | _limit_min () noexcept |
static constexpr qfloat16 | _limit_denorm_min () noexcept |
static constexpr qfloat16 | _limit_max () noexcept |
static constexpr qfloat16 | _limit_lowest () noexcept |
static constexpr qfloat16 | _limit_infinity () noexcept |
static constexpr qfloat16 | _limit_quiet_NaN () noexcept |
Static Public Attributes | |
static constexpr bool | IsNative = QFLOAT16_IS_NATIVE |
Friends | |
bool | qIsNull (qfloat16 f) noexcept |
qfloat16 | operator- (qfloat16 a) noexcept |
qfloat16 | operator+ (qfloat16 a, qfloat16 b) noexcept |
qfloat16 | operator- (qfloat16 a, qfloat16 b) noexcept |
qfloat16 | operator* (qfloat16 a, qfloat16 b) noexcept |
qfloat16 | operator/ (qfloat16 a, qfloat16 b) noexcept |
QT_WARNING_PUSH QT_WARNING_DISABLE_FLOAT_COMPARE friend bool | operator> (qfloat16 a, qfloat16 b) noexcept |
bool | operator< (qfloat16 a, qfloat16 b) noexcept |
bool | operator>= (qfloat16 a, qfloat16 b) noexcept |
bool | operator<= (qfloat16 a, qfloat16 b) noexcept |
bool | operator== (qfloat16 a, qfloat16 b) noexcept |
bool | operator!= (qfloat16 a, qfloat16 b) noexcept |
QT_WARNING_POP friend Q_CORE_EXPORT QDataStream & | operator<< (QDataStream &ds, qfloat16 f) |
Q_CORE_EXPORT QDataStream & | operator>> (QDataStream &ds, qfloat16 &f) |
Q_CORE_EXPORT QTextStream & | operator<< (QTextStream &ts, qfloat16 f) |
Q_CORE_EXPORT QTextStream & | operator>> (QTextStream &ts, qfloat16 &f) |
Related Symbols | |
(Note that these are not member symbols.) | |
bool | qIsInfqIsInf (qfloat16 f)(float) |
Returns true if the qfloat16 {f} is equivalent to infinity. | |
bool | qIsNaNqIsNaN (qfloat16 f)(float) |
Returns true if the qfloat16 {f} is not a number (NaN). | |
bool | qIsFiniteqIsFinite (qfloat16 f)(float) |
Returns true if the qfloat16 {f} is a finite number. | |
int | qFpClassifyqFpClassify (qfloat16 val)(float) |
int | qRoundqRound (qfloat16 value)(float) |
Rounds value to the nearest integer. | |
qint64 | qRound64qRound64 (qfloat16 value)(float) |
Rounds value to the nearest 64-bit integer. | |
bool | qFuzzyCompareqFuzzyCompare (qfloat16 p1, qfloat16 p2)(float, float) |
Compares the floating point value p1 and p2 and returns true if they are considered equal, otherwise false . | |
Q_CORE_EXPORT void | qFloatToFloat16 (qfloat16 *out, const float *in, qsizetype len) noexcept |
Q_CORE_EXPORT void | qFloatFromFloat16 (float *out, const qfloat16 *in, qsizetype len) noexcept |
\keyword 16-bit Floating Point Support
\inmodule QtCore \inheaderfile QFloat16
Provides 16-bit floating point support.
The qfloat16
class provides support for half-precision (16-bit) floating point data. It is fully compliant with IEEE 754 as a storage type. This implies that any arithmetic operation on a qfloat16
instance results in the value first being converted to a float
. This conversion to and from float
is performed by hardware when possible, but on processors that do not natively support half-precision, the conversion is performed through a sequence of lookup table operations.
qfloat16
should be treated as if it were a POD (plain old data) type. Consequently, none of the supported operations need any elaboration beyond stating that it supports all arithmetic operators incident to floating point types.
Definition at line 45 of file qfloat16.h.
using qfloat16::NativeType = void |
Definition at line 72 of file qfloat16.h.
using qfloat16::NearestFloat = std::conditional_t<IsNative, NativeType, float> |
Definition at line 75 of file qfloat16.h.
|
inlineconstexprnoexcept |
Definition at line 77 of file qfloat16.h.
Referenced by _limit_denorm_min(), _limit_epsilon(), _limit_infinity(), _limit_lowest(), _limit_max(), _limit_min(), _limit_quiet_NaN(), and copySign().
|
inlineexplicitnoexcept |
Constructs a qfloat16 without initializing the value.
Definition at line 78 of file qfloat16.h.
|
inlinenoexcept |
Definition at line 320 of file qfloat16.h.
References base, qMax(), and shift().
|
inlineexplicitconstexprnoexcept |
Definition at line 88 of file qfloat16.h.
|
inlinestaticconstexprnoexcept |
Definition at line 101 of file qfloat16.h.
References qfloat16().
|
inlinestaticconstexprnoexcept |
Definition at line 99 of file qfloat16.h.
References qfloat16().
|
inlinestaticconstexprnoexcept |
Definition at line 104 of file qfloat16.h.
References qfloat16().
|
inlinestaticconstexprnoexcept |
Definition at line 103 of file qfloat16.h.
References qfloat16().
|
inlinestaticconstexprnoexcept |
Definition at line 102 of file qfloat16.h.
References qfloat16().
|
inlinestaticconstexprnoexcept |
Definition at line 100 of file qfloat16.h.
References qfloat16().
|
inlinestaticconstexprnoexcept |
Definition at line 105 of file qfloat16.h.
References qfloat16().
Returns a qfloat16 with the sign of sign but the rest of its value taken from this qfloat16. Serves as qfloat16's equivalent of std::copysign().
Definition at line 96 of file qfloat16.h.
References qfloat16(), b16, and sign().
|
noexcept |
Definition at line 132 of file qfloat16.cpp.
|
inlinenoexcept |
Tests whether this qfloat16
value is finite.
Definition at line 93 of file qfloat16.h.
References b16.
|
inlinenoexcept |
Tests whether this qfloat16
value is an infinity.
Definition at line 91 of file qfloat16.h.
References b16.
|
inlinenoexcept |
Tests whether this qfloat16
value is "not a number".
Definition at line 92 of file qfloat16.h.
References b16.
|
inlineconstexprnoexcept |
Returns true
if this qfloat16
value is finite and in normal form.
Definition at line 109 of file qfloat16.h.
References b16.
|
inlinenoexcept |
Definition at line 358 of file qfloat16.h.
Definition at line 190 of file qfloat16.h.
Definition at line 144 of file qfloat16.h.
Definition at line 142 of file qfloat16.h.
Definition at line 135 of file qfloat16.h.
Definition at line 143 of file qfloat16.h.
Definition at line 145 of file qfloat16.h.
Definition at line 186 of file qfloat16.h.
|
friend |
Definition at line 378 of file qfloat16.cpp.
|
friend |
Definition at line 409 of file qfloat16.cpp.
Definition at line 188 of file qfloat16.h.
Definition at line 189 of file qfloat16.h.
|
friend |
Definition at line 185 of file qfloat16.h.
Definition at line 187 of file qfloat16.h.
|
friend |
Definition at line 395 of file qfloat16.cpp.
|
friend |
Definition at line 401 of file qfloat16.cpp.
Converts len qfloat16 from in to floats and stores them in out. Both in and out must have len allocated entries.
This function is faster than converting values one by one, and will do runtime F16C detection on x86 and x86-64 hardware.
Definition at line 357 of file qfloat16.cpp.
References hasFastF16(), i, out, and qFloatFromFloat16_fast().
Converts len floats from in to qfloat16 and stores them in out. Both in and out must have len allocated entries.
This function is faster than converting values one by one, and will do runtime F16C detection on x86 and x86-64 hardware.
Definition at line 338 of file qfloat16.cpp.
References hasFastF16(), i, out, and qFloatToFloat16_fast().
|
related |
Returns the floating-point class of val.
Compares the floating point value p1 and p2 and returns true
if they are considered equal, otherwise false
.
The two numbers are compared in a relative way, where the exactness is stronger the smaller the numbers are.
|
friend |
Definition at line 308 of file qfloat16.h.
|
related |
Rounds value to the nearest integer.
quint16 qfloat16::b16 |
Definition at line 119 of file qfloat16.h.
Referenced by copySign(), isFinite(), isInf(), isNaN(), and isNormal().
|
staticconstexpr |
Definition at line 74 of file qfloat16.h.