qfloat16 Class
16ビット浮動小数点のサポートを提供する。詳細...
Header: | #include <QFloat16> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake: | QT += core |
このクラスは部分的に比較可能である。
このクラスは、float,double, long double,qint8,quint8,qint16,quint16,qint32,quint32, long, unsigned long,qint64, およびquint64 と部分的に比較可能です。
このクラスはqint128 およびquint128 と部分的に比較可能である。
128ビット積分型との比較は、Qtがこれらの型を提供している場合にのみサポートされます。
パブリック関数
(since 6.1) | qfloat16(Qt::Initialization) |
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) |
int | qFpClassify(qfloat16 val) |
bool | qFuzzyCompare(qfloat16 p1, qfloat16 p2) |
(since 6.5.3) size_t | qHash(qfloat16 key, size_t seed = 0) |
bool | qIsFinite(qfloat16 f) |
bool | qIsInf(qfloat16 f) |
bool | qIsNaN(qfloat16 f) |
qint64 | qRound64(qfloat16 value) |
int | qRound(qfloat16 value) |
QDataStream & | operator<<(QDataStream &ds, qfloat16 f) |
QDataStream & | operator>>(QDataStream &ds, qfloat16 &f) |
詳細説明
qfloat16
クラスは、半精度(16 ビット)浮動小数点データのサポートを提供します。これは記憶型として IEEE 754 に完全に準拠しています。このため、qfloat16
インスタンスに対する算術演算では、値がまずfloat
に変換されます。float
との変換は、可能な限りハードウェアで行われますが、ネイティブで半精度をサポートしていないプロセッサでは、ルックアップテーブル操作のシーケンスによって変換が行われます。
qfloat16
はPOD(プレーン・オールド・データ)型であるかのように扱われなければならない。そのため、サポートされる演算は、浮動小数点型に付随するすべての算術演算子をサポートするという以上の説明は必要ありません。
注: x86およびx86-64では、ハードウェア・アクセラレーションによる変換を行うには、F16CまたはAVX2を有効にしてコンパイルするか、実行時にF16Cを検出するqFloatToFloat16 ()とqFloatFromFloat16 ()を使用する必要があります。
メンバ関数ドキュメント
[explicit noexcept, since 6.1]
qfloat16::qfloat16(Qt::Initialization)
値を初期化せずに qfloat16 を構築します。
この関数はQt 6.1で導入されました。
[noexcept]
qfloat16 qfloat16::copySign(qfloat16 sign) const
符号がsign で、残りの値がこの qfloat16 から取得された qfloat16 を返します。qfloat16 の std::copysign() に相当します。
[constexpr noexcept]
bool qfloat16::isNormal() const
このqfloat16
の値が有限かつ正規形である場合はtrue
を返す。
qFpClassify()も参照 。
関連する非会員
[noexcept]
void qFloatFromFloat16(float *out, const qfloat16 *in, qsizetype len)
in からlen qfloat16 を浮動小数点数に変換し、out に格納する。in とout の両方に、len 割り当てられたエントリがなければならない。
この関数は、値を 1 つずつ変換するよりも高速で、x86 および x86-64 ハードウェアで実行時に F16C 検出を行います。
[noexcept]
void qFloatToFloat16(qfloat16 *out, const float *in, qsizetype len)
in からlen の浮動小数点数を qfloat16 に変換し、out に格納する。in とout の両方は、len 割り当てられたエントリを持たなければならない。
この関数は、値を 1 つずつ変換するよりも高速であり、x86 および x86-64 ハードウェアで実行時に F16C 検出を行います。
[noexcept]
int qFpClassify(qfloat16 val)
この関数はqFpClassify(float) をオーバーロードしている。
val の浮動小数点クラスを返す。
[noexcept]
bool qFuzzyCompare(qfloat16 p1, qfloat16 p2)
この関数はqFuzzyCompare(float, float) をオーバーロードします。
浮動小数点値p1 とp2 を比較し、等しいとみなされた場合はtrue
を返し、そうでない場合はfalse
を返します。
2つの数値は相対的に比較され、数値が小さいほど正確性が高くなります。
[noexcept, since 6.5.3]
size_t qHash(qfloat16 key, size_t seed = 0)
計算のシードとしてseed を使用して、key のハッシュ値を返します。
注意: Qt 6.5より前のバージョンでは、この操作はqHash(float)オーバーロードによって提供されていました。Qt バージョン 6.5.0 から 6.5.2 では、この機能はさまざまな方法で壊れていました。Qt バージョン 6.5.3 および 6.6 以降では、このオーバーロードは Qt 6.4 の動作を復元します。
この関数は Qt 6.5.3 で導入されました。
[noexcept]
bool qIsFinite(qfloat16 f)
この関数はqIsFinite(float) をオーバーロードします。
qfloat16
f が有限数である場合に真を返します。
[noexcept]
bool qIsInf(qfloat16 f)
この関数はqIsInf(float) をオーバーロードします。
qfloat16
f が無限大と等しい場合に真を返す。
[noexcept]
bool qIsNaN(qfloat16 f)
この関数はqIsNaN(float) をオーバーロードする。
qfloat16
f が数値(NaN)でない場合に真を返す。
[noexcept]
qint64 qRound64(qfloat16 value)
この関数はqRound64(float) をオーバーロードしている。
value を最も近い 64 ビット整数に丸める。
[noexcept]
int qRound(qfloat16 value)
この関数はqRound(float) をオーバーロードする。
value を最も近い整数に丸める。
QDataStream &operator<<(QDataStream &ds, qfloat16 f)
標準 IEEE 754 フォーマットを使用して、浮動小数点数f をストリームds に書き込みます。ストリームへの参照を返します。
注意: Qt 6.3 より前のバージョンでは、これはQDataStream のメンバ関数でした。
QDataStream &operator>>(QDataStream &ds, qfloat16 &f)
標準 IEEE 754 フォーマットを使用して、浮動小数点数をストリームds からf に読み込みます。ストリームへの参照を返します。
注意: Qt 6.3 より前のバージョンでは、これはQDataStream のメンバ関数でした。
本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。