#include <bfloat16.hpp>
class bfloat16
{
public:
// unions
union F32;
// construction
bfloat16();
bfloat16();
template <>
bfloat16();
// 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 <>
bfloat16const T& operator + () const;
template <>
bfloat16const T& operator += ();
template <>
bfloat16const T& operator - () const;
template <>
bfloat16const T& operator -= ();
template <>
bfloat16const T& operator\* () const;
template <>
bfloat16const T& operator\*= ();
template <>
bfloat16const T& operator/ () const;
template <>
bfloat16const T& operator/= ();
operator float () const;
uint16_t to_bits() const;
static std::vector<float>const std::vector<bfloat16>& to_float_vector();
static std::vector<bfloat16>const std::vector<float>& from_float_vector();
static constexpr bfloat16uint16_t from_bits();
static uint16_tfloat round_to_nearest_even();
static uint16_tfloat round_to_nearest();
static uint16_tfloat truncate();
};