class ov::float16

#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();
};