#include <float16.hpp>
class float16
{
public:
// unions
union F32;
// fields
static constexpr uint32_t frac_size = 10;
static constexpr uint32_t exp_size = 5;
static constexpr uint32_t exp_bias = 15;
// construction
float16();
float16(, , );
float16();
template <>
float16();
// methods
std::string to_string() const;
size_t size() const;
template <>
boolconst T& operator == () const;
template <>
boolconst T& operator != () const;
template <>
boolconst T& operator < () const;
template <>
boolconst T& operator <= () const;
template <>
boolconst T& operator > () const;
template <>
boolconst T& operator >= () const;
template <>
float16const T& operator + () const;
template <>
float16const T& operator += ();
template <>
float16const T& operator - () const;
template <>
float16const T& operator -= ();
template <>
float16const T& operator\* () const;
template <>
float16const T& operator\*= ();
template <>
float16const T& operator/ () const;
template <>
float16const T& operator/= ();
operator float () const;
uint16_t to_bits() const;
static constexpr float16uint16_t from_bits();
};