float16_t#

struct float16_t#

Class that provides a type that implements half precision floating point (IEEE754 2008 binary16) in software.

This type is enforced to be 16-bits wide and maintains no state other than the raw IEEE754 binary16 bits so that it can passed to code that checks a type’s size and used for halide_buffer_t allocation.

Constructors

explicit float16_t(float value)#

Construct from a float, double, or int using round-to-nearest-ties-to-even.

Out-of-range values become +/- infinity.

explicit float16_t(double value)#

Construct from a float, double, or int using round-to-nearest-ties-to-even.

Out-of-range values become +/- infinity.

explicit float16_t(int value)#

Construct from a float, double, or int using round-to-nearest-ties-to-even.

Out-of-range values become +/- infinity.

explicit float16_t(int64_t value)#

Construct from a float, double, or int using round-to-nearest-ties-to-even.

Out-of-range values become +/- infinity.

explicit float16_t(uint64_t value)#

Construct from a float, double, or int using round-to-nearest-ties-to-even.

Out-of-range values become +/- infinity.

float16_t() = default#

Construct a float16_t with the bits initialised to 0.

This represents positive zero.

Public Functions

explicit operator float() const#

Cast to float.

explicit operator double() const#

Cast to double.

explicit operator int() const#

Cast to int.

float16_t operator-() const#

Return a new float16_t with a negated sign bit.

float16_t operator+(float16_t rhs) const#

Arithmetic operators.

bool operator==(float16_t rhs) const#

Comparison operators.

bool is_nan() const#

Properties.

uint16_t to_bits() const#

Returns the bits that represent this float16_t.

An alternative method to access the bits is to cast a pointer to this instance as a pointer to a uint16_t.

Public Static Functions

static float16_t make_zero()#

Get a new float16_t that represents a special value.

static float16_t make_from_bits(uint16_t bits)#

Get a new float16_t with the given raw bits.

Parameters:

bits – The bits conformant to IEEE754 binary16