![]() |
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 |
bool | signBit () 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 360 of file qfloat16.h.
|
inlineexplicitconstexprnoexcept |
Definition at line 77 of file qfloat16.h.
|
inlinestaticconstexprnoexcept |
Definition at line 109 of file qfloat16.h.
|
inlinestaticconstexprnoexcept |
Definition at line 107 of file qfloat16.h.
|
inlinestaticconstexprnoexcept |
Definition at line 112 of file qfloat16.h.
|
inlinestaticconstexprnoexcept |
Definition at line 111 of file qfloat16.h.
|
inlinestaticconstexprnoexcept |
Definition at line 110 of file qfloat16.h.
|
inlinestaticconstexprnoexcept |
Definition at line 108 of file qfloat16.h.
|
inlinestaticconstexprnoexcept |
Definition at line 113 of file qfloat16.h.
|
noexcept |
Definition at line 156 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 118 of file qfloat16.h.
|
inlinenoexcept |
Definition at line 398 of file qfloat16.h.
|
inlinenoexcept |
Returns a true if this qfloat16
is negative, false otherwise. Note this function returns true for negative zero, negative infinity, and negative NaN values.
Definition at line 88 of file qfloat16.h.
|
friend |
Definition at line 213 of file qfloat16.h.
|
friend |
Definition at line 237 of file qfloat16.h.
|
friend |
Definition at line 216 of file qfloat16.h.
|
friend |
Definition at line 240 of file qfloat16.h.
Definition at line 159 of file qfloat16.h.
Definition at line 157 of file qfloat16.h.
Definition at line 150 of file qfloat16.h.
Definition at line 158 of file qfloat16.h.
Definition at line 160 of file qfloat16.h.
|
friend |
Definition at line 413 of file qfloat16.cpp.
|
friend |
Definition at line 444 of file qfloat16.cpp.
|
friend |
Definition at line 430 of file qfloat16.cpp.
|
friend |
Definition at line 436 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 381 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 362 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 162 of file qfloat16.h.
|
friend |
Definition at line 348 of file qfloat16.h.
|
Rounds value to the nearest integer.
quint16 qfloat16::b16 |
Definition at line 128 of file qfloat16.h.
|
staticconstexpr |
Definition at line 63 of file qfloat16.h.