pRC
multi-purpose Tensor Train library for C++
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | List of all members
pRC::BFloat16 Class Reference

Custom Type representing a half-precision floating point number. More...

#include <bfloat16.hpp>

Public Member Functions

 ~BFloat16 ()=default
 
constexpr BFloat16 (BFloat16 const &)=default
 
constexpr BFloat16 (BFloat16 &&)=default
 
constexpr BFloat16operator= (BFloat16 const &) &=default
 
constexpr BFloat16operator= (BFloat16 &&) &=default
 
constexpr BFloat16 ()=default
 
 BFloat16 (Float32 const single)
 
 operator Float32 () const
 
constexpr auto isNaN () const
 
template<class X , If< IsInvocable< Add, BFloat16 &, X > > = 0>
constexpr autooperator+= (X &&rhs) &
 
template<class X , If< IsInvocable< Sub, BFloat16 &, X > > = 0>
constexpr autooperator-= (X &&rhs) &
 
template<class X , If< IsInvocable< Mul, BFloat16 &, X > > = 0>
constexpr autooperator*= (X &&rhs) &
 
template<class X , If< IsInvocable< Div, BFloat16 &, X > > = 0>
constexpr autooperator/= (X &&rhs) &
 
constexpr auto operator== (BFloat16 const rhs)
 
constexpr auto operator!= (BFloat16 const rhs)
 
auto operator+ () const
 
constexpr auto operator- () const
 

Static Public Member Functions

static constexpr auto FromRepresentation (Representation const rep)
 

Detailed Description

Custom Type representing a half-precision floating point number.

Internal type used for calculations involving half-precision floating point numbers. For calculations, use the Float<16> type, which internally uses BFloat16. Be aware that BFloat16 does not support all operations, and might be implicitly converted to Float<32> (e.g. for addition).

Constructor & Destructor Documentation

◆ ~BFloat16()

pRC::BFloat16::~BFloat16 ( )
default

◆ BFloat16() [1/4]

constexpr pRC::BFloat16::BFloat16 ( BFloat16 const )
constexprdefault

◆ BFloat16() [2/4]

constexpr pRC::BFloat16::BFloat16 ( BFloat16 &&  )
constexprdefault

◆ BFloat16() [3/4]

constexpr pRC::BFloat16::BFloat16 ( )
constexprdefault

◆ BFloat16() [4/4]

pRC::BFloat16::BFloat16 ( Float32 const  single)
inline

Member Function Documentation

◆ FromRepresentation()

static constexpr auto pRC::BFloat16::FromRepresentation ( Representation const  rep)
inlinestaticconstexpr

◆ isNaN()

constexpr auto pRC::BFloat16::isNaN ( ) const
inlineconstexpr

◆ operator Float32()

pRC::BFloat16::operator Float32 ( ) const
inline

◆ operator!=()

constexpr auto pRC::BFloat16::operator!= ( BFloat16 const  rhs)
inlineconstexpr

◆ operator*=()

template<class X , If< IsInvocable< Mul, BFloat16 &, X > > = 0>
constexpr auto & pRC::BFloat16::operator*= ( X &&  rhs) &
inlineconstexpr

◆ operator+()

auto pRC::BFloat16::operator+ ( ) const
inline

◆ operator+=()

template<class X , If< IsInvocable< Add, BFloat16 &, X > > = 0>
constexpr auto & pRC::BFloat16::operator+= ( X &&  rhs) &
inlineconstexpr

◆ operator-()

constexpr auto pRC::BFloat16::operator- ( ) const
inlineconstexpr

◆ operator-=()

template<class X , If< IsInvocable< Sub, BFloat16 &, X > > = 0>
constexpr auto & pRC::BFloat16::operator-= ( X &&  rhs) &
inlineconstexpr

◆ operator/=()

template<class X , If< IsInvocable< Div, BFloat16 &, X > > = 0>
constexpr auto & pRC::BFloat16::operator/= ( X &&  rhs) &
inlineconstexpr

◆ operator=() [1/2]

constexpr BFloat16 & pRC::BFloat16::operator= ( BFloat16 &&  ) &
constexprdefault

◆ operator=() [2/2]

constexpr BFloat16 & pRC::BFloat16::operator= ( BFloat16 const ) &
constexprdefault

◆ operator==()

constexpr auto pRC::BFloat16::operator== ( BFloat16 const  rhs)
inlineconstexpr

The documentation for this class was generated from the following file: