cMHN 1.2
C++ library for learning MHNs with pRC
Loading...
Searching...
No Matches
pRC::Float< Width > Class Template Reference

#include <float.hpp>

Inheritance diagram for pRC::Float< Width >:
testing::internal::SuiteApiResolver< T >

Public Types

using Fundamental
 
template<Size C>
using ChangeSize = Float<C>
 

Public Member Functions

 ~Float ()=default
 
constexpr Float (Float const &)=default
 
constexpr Float (Float &&)=default
 
constexpr Floatoperator= (Float const &) &=default
 
constexpr Floatoperator= (Float &&) &=default
 
constexpr Float ()=default
 
template<class U >
requires IsConstructible<Fundamental, U>
constexpr Float (U const basic)
 
template<IsValue U>
constexpr Float (U const &value)
 
constexpr Float (Zero<> const)
 
constexpr Float (Unit<> const)
 
constexpr Float (Identity<> const)
 
template<class U >
requires IsAssignable<Fundamental, U>
constexpr auto & operator= (U const basic) &
 
template<IsValue U>
constexpr auto & operator= (U const &value) &
 
constexpr auto & operator= (Zero<> const) &
 
constexpr auto & operator= (Unit<> const) &
 
constexpr auto & operator= (Identity<> const) &
 
constexpr decltype(auto) operator() () &&
 
constexpr decltype(auto) operator() () const &&
 
constexpr auto & operator() () &
 
constexpr auto & operator() () const &
 
constexpr operator Fundamental () const
 
template<class X >
requires IsInvocable<Add, Float &, X>
constexpr auto & operator+= (X &&rhs) &
 
template<class X >
requires IsInvocable<Sub, Float &, X>
constexpr auto & operator-= (X &&rhs) &
 
template<class X >
requires IsInvocable<Mul, Float &, X>
constexpr auto & operator*= (X &&rhs) &
 
template<class X >
requires IsInvocable<Div, Float &, X>
constexpr auto & operator/= (X &&rhs) &
 

Static Public Attributes

static constexpr Size Width = W
 

Member Typedef Documentation

◆ ChangeSize

template<Size Width = DEFAULT_FLOAT>
template<Size C>
using pRC::Float< Width >::ChangeSize = Float<C>

◆ Fundamental

template<Size Width = DEFAULT_FLOAT>
using pRC::Float< Width >::Fundamental
Initial value:
Conditional<W == 16, BFloat16,
Conditional<W == 32, float,
Conditional<W == 64, double, Undefined>>>

Constructor & Destructor Documentation

◆ ~Float()

template<Size Width = DEFAULT_FLOAT>
pRC::Float< Width >::~Float ( )
default

◆ Float() [1/8]

template<Size Width = DEFAULT_FLOAT>
pRC::Float< Width >::Float ( Float< Width > const & )
constexprdefault

◆ Float() [2/8]

template<Size Width = DEFAULT_FLOAT>
pRC::Float< Width >::Float ( Float< Width > && )
constexprdefault

◆ Float() [3/8]

template<Size Width = DEFAULT_FLOAT>
pRC::Float< Width >::Float ( )
constexprdefault

◆ Float() [4/8]

template<Size Width = DEFAULT_FLOAT>
template<class U >
requires IsConstructible<Fundamental, U>
pRC::Float< Width >::Float ( U const basic)
inlineconstexpr

◆ Float() [5/8]

template<Size Width = DEFAULT_FLOAT>
template<IsValue U>
pRC::Float< Width >::Float ( U const & value)
inlineconstexpr

◆ Float() [6/8]

template<Size Width = DEFAULT_FLOAT>
pRC::Float< Width >::Float ( Zero<> const )
inlineconstexpr

◆ Float() [7/8]

template<Size Width = DEFAULT_FLOAT>
pRC::Float< Width >::Float ( Unit<> const )
inlineconstexpr

◆ Float() [8/8]

template<Size Width = DEFAULT_FLOAT>
pRC::Float< Width >::Float ( Identity<> const )
inlineconstexpr

Member Function Documentation

◆ operator Fundamental()

template<Size Width = DEFAULT_FLOAT>
pRC::Float< Width >::operator Fundamental ( ) const
inlineexplicitconstexpr

◆ operator()() [1/4]

template<Size Width = DEFAULT_FLOAT>
auto & pRC::Float< Width >::operator() ( ) &
inlineconstexpr

◆ operator()() [2/4]

template<Size Width = DEFAULT_FLOAT>
decltype(auto) pRC::Float< Width >::operator() ( ) &&
inlineconstexpr

◆ operator()() [3/4]

template<Size Width = DEFAULT_FLOAT>
auto & pRC::Float< Width >::operator() ( ) const &
inlineconstexpr

◆ operator()() [4/4]

template<Size Width = DEFAULT_FLOAT>
decltype(auto) pRC::Float< Width >::operator() ( ) const &&
inlineconstexpr

◆ operator*=()

template<Size Width = DEFAULT_FLOAT>
template<class X >
requires IsInvocable<Mul, Float &, X>
auto & pRC::Float< Width >::operator*= ( X && rhs) &
inlineconstexpr

◆ operator+=()

template<Size Width = DEFAULT_FLOAT>
template<class X >
requires IsInvocable<Add, Float &, X>
auto & pRC::Float< Width >::operator+= ( X && rhs) &
inlineconstexpr

◆ operator-=()

template<Size Width = DEFAULT_FLOAT>
template<class X >
requires IsInvocable<Sub, Float &, X>
auto & pRC::Float< Width >::operator-= ( X && rhs) &
inlineconstexpr

◆ operator/=()

template<Size Width = DEFAULT_FLOAT>
template<class X >
requires IsInvocable<Div, Float &, X>
auto & pRC::Float< Width >::operator/= ( X && rhs) &
inlineconstexpr

◆ operator=() [1/7]

template<Size Width = DEFAULT_FLOAT>
Float & pRC::Float< Width >::operator= ( Float< Width > && ) &
constexprdefault

◆ operator=() [2/7]

template<Size Width = DEFAULT_FLOAT>
Float & pRC::Float< Width >::operator= ( Float< Width > const & ) &
constexprdefault

◆ operator=() [3/7]

template<Size Width = DEFAULT_FLOAT>
auto & pRC::Float< Width >::operator= ( Identity<> const ) &
inlineconstexpr

◆ operator=() [4/7]

template<Size Width = DEFAULT_FLOAT>
template<IsValue U>
auto & pRC::Float< Width >::operator= ( U const & value) &
inlineconstexpr

◆ operator=() [5/7]

template<Size Width = DEFAULT_FLOAT>
template<class U >
requires IsAssignable<Fundamental, U>
auto & pRC::Float< Width >::operator= ( U const basic) &
inlineconstexpr

◆ operator=() [6/7]

template<Size Width = DEFAULT_FLOAT>
auto & pRC::Float< Width >::operator= ( Unit<> const ) &
inlineconstexpr

◆ operator=() [7/7]

template<Size Width = DEFAULT_FLOAT>
auto & pRC::Float< Width >::operator= ( Zero<> const ) &
inlineconstexpr

Member Data Documentation

◆ Width

template<Size Width = DEFAULT_FLOAT>
Size pRC::Float< Width >::Width = W
staticconstexpr

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