FFloat16

16 bit float components and conversion

Choose your operating system:

Windows

macOS

Linux

References

Module

Core

Header

/Engine/Source/Runtime/Core/Public/Math/Float16.h

Include

#include "Math/Float16.h"

Syntax

class FFloat16

Remarks

16 bit float components and conversion

IEEE float 16 Represented by 10-bit mantissa M, 5-bit exponent E, and 1-bit sign S

Specials:

E=0, M=0 == 0.0 E=0, M!=0 == Denormalized value (M / 2^10) * 2-14 0<E<31, M=any == (1 + M / 2^10) * 2(E-15) E=31, M=0 == Infinity E=31, M!=0 == NAN

conversion from 32 bit float is with RTNE (round to nearest even)

Legacy code truncated in the conversion. SetTruncate can be used for backwards compatibility.

Variables

Name Description

Public variable

uint16

 

Encoded

Constructors

Name Description

Public function

FFloat16()

Default constructor

Public function

FFloat16

(
    const FFloat16& FP16Value
)

Copy constructor.

Public function

FFloat16

(
    float FP32Value
)

Conversion constructor. Convert from Fp32 to Fp16.

Functions

Name Description

Public function Const

float

 

GetFloat()

Convert from Fp16 to Fp32.

Public function Const

bool

 

IsNegative()

Is the float negative without converting

Public function

void

 

Set

(
    float FP32Value
)

Convert from Fp32 to Fp16. (RTNE)

Public function

void

 

SetTruncate

(
    float FP32Value
)

Convert from Fp32 to Fp16. (backward-compatible truncate conversion)

Operators

Name Description

Public function Const

 

operator float()

Convert from Fp16 to Fp32.

Public function

FFloat16 &

 

operator=

(
    float FP32Value
)

Assignment operator. Convert from Fp32 to Fp16.

Public function

FFloat16 &

 

operator=

(
    const FFloat16& FP16Value
)

Assignment operator. Copy Fp16 value.