![]() |
Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
|
\keyword 16-bit Floating Point Support\inmodule QtCore \inheaderfile QFloat16 More...
#include <qfloat16.h>
Public Types | |
using | NativeType = QtPrivate::NativeFloat16Type |
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 |
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.
\compares partial \compareswith partial float double {long double} qint8 quint8 qint16 quint16 \ qint32 quint32 long {unsigned long} qint64 quint64 \endcompareswith \compareswith partial qint128 quint128 Comparison with 128-bit integral types is only supported if Qt provides these types. \endcompareswith
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 47 of file qfloat16.h.
using qfloat16::NativeType = QtPrivate::NativeFloat16Type |
Definition at line 61 of file qfloat16.h.
using qfloat16::NearestFloat = std::conditional_t<IsNative, NativeType, float> |
Definition at line 64 of file qfloat16.h.
|
inlineconstexprnoexcept |
Definition at line 66 of file qfloat16.h.
|
inlineexplicitnoexcept |
Constructs a qfloat16 without initializing the value.
Definition at line 67 of file qfloat16.h.
|
inlinenoexcept |
Definition at line 357 of file qfloat16.h.
|
inlineexplicitconstexprnoexcept |
Definition at line 77 of file qfloat16.h.
|
inlinestaticconstexprnoexcept |
Definition at line 106 of file qfloat16.h.
|
inlinestaticconstexprnoexcept |
Definition at line 104 of file qfloat16.h.
|
inlinestaticconstexprnoexcept |
Definition at line 109 of file qfloat16.h.
|
inlinestaticconstexprnoexcept |
Definition at line 108 of file qfloat16.h.
|
inlinestaticconstexprnoexcept |
Definition at line 107 of file qfloat16.h.
|
inlinestaticconstexprnoexcept |
Definition at line 105 of file qfloat16.h.
|
inlinestaticconstexprnoexcept |
Definition at line 110 of file qfloat16.h.
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 85 of file qfloat16.h.
|
noexcept |
Definition at line 145 of file qfloat16.cpp.
|
inlinenoexcept |
Tests whether this qfloat16
value is finite.
Definition at line 82 of file qfloat16.h.
Referenced by qIsFinite().
|
inlinenoexcept |
Tests whether this qfloat16
value is an infinity.
Definition at line 80 of file qfloat16.h.
Referenced by qIsInf().
|
inlinenoexcept |
Tests whether this qfloat16
value is "not a number".
Definition at line 81 of file qfloat16.h.
Referenced by qIsNaN().
|
inlineconstexprnoexcept |
Returns true
if this qfloat16
value is finite and in normal form.
Definition at line 115 of file qfloat16.h.
|
inlinenoexcept |
Definition at line 395 of file qfloat16.h.
|
friend |
Definition at line 210 of file qfloat16.h.
|
friend |
Definition at line 234 of file qfloat16.h.
|
friend |
Definition at line 213 of file qfloat16.h.
|
friend |
Definition at line 237 of file qfloat16.h.
Definition at line 156 of file qfloat16.h.
Definition at line 154 of file qfloat16.h.
Definition at line 147 of file qfloat16.h.
Definition at line 155 of file qfloat16.h.
Definition at line 157 of file qfloat16.h.
|
friend |
Definition at line 402 of file qfloat16.cpp.
|
friend |
Definition at line 433 of file qfloat16.cpp.
|
friend |
Definition at line 419 of file qfloat16.cpp.
|
friend |
Definition at line 425 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 370 of file qfloat16.cpp.
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 351 of file qfloat16.cpp.
|
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 159 of file qfloat16.h.
|
friend |
Definition at line 345 of file qfloat16.h.
|
Rounds value to the nearest integer.
quint16 qfloat16::b16 |
Definition at line 125 of file qfloat16.h.
|
staticconstexpr |
Definition at line 63 of file qfloat16.h.