diff options
author | Glen Mabey <Glen.Mabey@swri.org> | 2013-06-22 19:43:46 -0500 |
---|---|---|
committer | Glen Mabey <Glen.Mabey@swri.org> | 2017-01-31 14:21:42 +0000 |
commit | 3ab7016632c825949f32b72d06ac324b6672b9f6 (patch) | |
tree | a385f0389c9b0f37e8c2e4f19980392d16c0b409 /src/corelib/io/qdatastream.h | |
parent | e5d303cb9fb3ade3fae6d3f14a5f4fe139af63c9 (diff) |
New qfloat16 class
This constitutes a fairly complete submission of an entirely new
floating point type which conforms to IEEE 754 as a 16-bit storage
class. Conversion between qfloat16 and float is currently performed
through a sequence of lookup tables. Global-level functions
qRound(), qRound64(), qFuzzyCompare(), qFuzzyIsNull(), and
qIsNull() each with a qfloat16 parameter have been included
for completeness.
[ChangeLog][QtCore] Added new qfloat16 class.
Change-Id: Ia52eb27846965c14f8140c00faf5ba33c9443976
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/corelib/io/qdatastream.h')
-rw-r--r-- | src/corelib/io/qdatastream.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/corelib/io/qdatastream.h b/src/corelib/io/qdatastream.h index 994ed88791..9a7d7e275d 100644 --- a/src/corelib/io/qdatastream.h +++ b/src/corelib/io/qdatastream.h @@ -43,6 +43,7 @@ #include <QtCore/qscopedpointer.h> #include <QtCore/qiodevice.h> #include <QtCore/qpair.h> +#include <QtCore/qfloat16.h> #ifdef Status #error qdatastream.h must be included before any header file that defines Status @@ -154,6 +155,7 @@ public: QDataStream &operator>>(quint64 &i); QDataStream &operator>>(bool &i); + QDataStream &operator>>(qfloat16 &f); QDataStream &operator>>(float &f); QDataStream &operator>>(double &f); QDataStream &operator>>(char *&str); @@ -167,6 +169,7 @@ public: QDataStream &operator<<(qint64 i); QDataStream &operator<<(quint64 i); QDataStream &operator<<(bool i); + QDataStream &operator<<(qfloat16 f); QDataStream &operator<<(float f); QDataStream &operator<<(double f); QDataStream &operator<<(const char *str); @@ -345,6 +348,9 @@ inline QDataStream &QDataStream::operator>>(quint32 &i) inline QDataStream &QDataStream::operator>>(quint64 &i) { return *this >> reinterpret_cast<qint64&>(i); } +inline QDataStream &QDataStream::operator>>(qfloat16 &f) +{ return *this >> reinterpret_cast<qint16&>(f); } + inline QDataStream &QDataStream::operator<<(quint8 i) { return *this << qint8(i); } @@ -357,6 +363,9 @@ inline QDataStream &QDataStream::operator<<(quint32 i) inline QDataStream &QDataStream::operator<<(quint64 i) { return *this << qint64(i); } +inline QDataStream &QDataStream::operator<<(qfloat16 f) +{ return *this << reinterpret_cast<qint16&>(f); } + template <typename T> inline QDataStream &operator>>(QDataStream &s, QList<T> &l) { |