cMHN 1.1
C++ library for learning MHNs with pRC
Loading...
Searching...
No Matches
Public Types | Public Member Functions | List of all members
pRC::Integer< S, W > Class Template Reference

#include <integer.hpp>

Public Types

using Fundamental
 
using Value = Integer<S, W>
 
template<class V , If< IsValue< V > > = 0>
using ChangeValue = V
 
using Signed = pRC::Constant<Bool, S>
 
template<Bool R>
using ChangeSigned = Integer<R, W>
 
using Width = pRC::Constant<Size, W>
 
template<Size Q>
using ChangeWidth = Integer<S, Q>
 
using IsComplexified = False<>
 
using Complexify = Complex<Integer<S, W>>
 
using NonComplex = Integer<S, W>
 

Public Member Functions

 ~Integer ()=default
 
constexpr Integer (Integer const &)=default
 
constexpr Integer (Integer &&)=default
 
constexpr Integeroperator= (Integer const &) &=default
 
constexpr Integeroperator= (Integer &&) &=default
 
constexpr Integer ()=default
 
template<class U , If< IsConstructible< Fundamental, U > > = 0>
constexpr Integer (U const basic)
 
template<class U , If< IsValue< U > > = 0>
constexpr Integer (U const &value)
 
template<class U , If< IsValue< U > > = 0>
constexpr Integer (Complex< U > const &value)
 
constexpr Integer (Zero<> const)
 
constexpr Integer (Unit<> const)
 
constexpr Integer (Identity<> const)
 
template<class U , If< IsAssignable< Fundamental, U > > = 0>
constexpr autooperator= (U const basic) &
 
template<class U , If< IsValue< U > > = 0>
constexpr autooperator= (U const &value) &
 
template<class U , If< IsValue< U > > = 0>
constexpr autooperator= (Complex< U > const &value) &
 
constexpr autooperator= (Zero<> const) &
 
constexpr autooperator= (Unit<> const) &
 
constexpr autooperator= (Identity<> const) &
 
constexpr decltype(autooperator() () &&
 
constexpr decltype(autooperator() () const &&
 
constexpr autooperator() () &
 
constexpr autooperator() () const &
 
constexpr operator Fundamental () const
 
template<class X , If< IsInvocable< Add, Integer &, X > > = 0>
constexpr autooperator+= (X &&rhs) &
 
template<class X , If< IsInvocable< Sub, Integer &, X > > = 0>
constexpr autooperator-= (X &&rhs) &
 
template<class X , If< IsInvocable< Mul, Integer &, X > > = 0>
constexpr autooperator*= (X &&rhs) &
 
template<class X , If< IsInvocable< Div, Integer &, X > > = 0>
constexpr autooperator/= (X &&rhs) &
 
template<class X , If< IsInvocable< Mod, Integer &, X > > = 0>
constexpr autooperator%= (X &&rhs) &
 

Member Typedef Documentation

◆ ChangeSigned

template<Bool S, Size W>
template<Bool R>
using pRC::Integer< S, W >::ChangeSigned = Integer<R, W>

◆ ChangeValue

template<Bool S, Size W>
template<class V , If< IsValue< V > > = 0>
using pRC::Integer< S, W >::ChangeValue = V

◆ ChangeWidth

template<Bool S, Size W>
template<Size Q>
using pRC::Integer< S, W >::ChangeWidth = Integer<S, Q>

◆ Complexify

template<Bool S, Size W>
using pRC::Integer< S, W >::Complexify = Complex<Integer<S, W>>

◆ Fundamental

template<Bool S, Size W>
using pRC::Integer< S, W >::Fundamental
Initial value:
Conditional<IsSatisfied<(S)>,
Conditional<IsSatisfied<(W == 8)>, std::int8_t,
Conditional<IsSatisfied<(W == 16)>, std::int16_t,
Conditional<IsSatisfied<(W == 32)>, std::int32_t,
Conditional<IsSatisfied<(W == 64)>, std::int64_t,
Undefined>>>>,
Conditional<IsSatisfied<(W == 8)>, std::uint8_t,
Conditional<IsSatisfied<(W == 16)>, std::uint16_t,
Conditional<IsSatisfied<(W == 32)>, std::uint32_t,
Conditional<IsSatisfied<(W == 64)>, std::uint64_t,
Undefined>>>>>
TN::Subscripts S
Definition externs_nonTT.hpp:9
static constexpr auto makeConstantSequence()
Definition sequence.hpp:402
Constant< Bool, B > IsSatisfied
Definition type_traits.hpp:71

◆ IsComplexified

template<Bool S, Size W>
using pRC::Integer< S, W >::IsComplexified = False<>

◆ NonComplex

template<Bool S, Size W>
using pRC::Integer< S, W >::NonComplex = Integer<S, W>

◆ Signed

template<Bool S, Size W>
using pRC::Integer< S, W >::Signed = pRC::Constant<Bool, S>

◆ Value

template<Bool S, Size W>
using pRC::Integer< S, W >::Value = Integer<S, W>

◆ Width

template<Bool S, Size W>
using pRC::Integer< S, W >::Width = pRC::Constant<Size, W>

Constructor & Destructor Documentation

◆ ~Integer()

template<Bool S, Size W>
pRC::Integer< S, W >::~Integer ( )
default

◆ Integer() [1/9]

template<Bool S, Size W>
constexpr pRC::Integer< S, W >::Integer ( Integer< S, W > const & )
constexprdefault

◆ Integer() [2/9]

template<Bool S, Size W>
constexpr pRC::Integer< S, W >::Integer ( Integer< S, W > && )
constexprdefault

◆ Integer() [3/9]

template<Bool S, Size W>
constexpr pRC::Integer< S, W >::Integer ( )
constexprdefault

◆ Integer() [4/9]

template<Bool S, Size W>
template<class U , If< IsConstructible< Fundamental, U > > = 0>
constexpr pRC::Integer< S, W >::Integer ( U const basic)
inlineconstexpr

◆ Integer() [5/9]

template<Bool S, Size W>
template<class U , If< IsValue< U > > = 0>
constexpr pRC::Integer< S, W >::Integer ( U const & value)
inlineconstexpr

◆ Integer() [6/9]

template<Bool S, Size W>
template<class U , If< IsValue< U > > = 0>
constexpr pRC::Integer< S, W >::Integer ( Complex< U > const & value)
inlineconstexpr

◆ Integer() [7/9]

template<Bool S, Size W>
constexpr pRC::Integer< S, W >::Integer ( Zero<> const )
inlineconstexpr

◆ Integer() [8/9]

template<Bool S, Size W>
constexpr pRC::Integer< S, W >::Integer ( Unit<> const )
inlineconstexpr

◆ Integer() [9/9]

template<Bool S, Size W>
constexpr pRC::Integer< S, W >::Integer ( Identity<> const )
inlineconstexpr

Member Function Documentation

◆ operator Fundamental()

template<Bool S, Size W>
constexpr pRC::Integer< S, W >::operator Fundamental ( ) const
inlineexplicitconstexpr

◆ operator%=()

template<Bool S, Size W>
template<class X , If< IsInvocable< Mod, Integer &, X > > = 0>
constexpr auto & pRC::Integer< S, W >::operator%= ( X && rhs) &
inlineconstexpr

◆ operator()() [1/4]

template<Bool S, Size W>
constexpr auto & pRC::Integer< S, W >::operator() ( ) &
inlineconstexpr

◆ operator()() [2/4]

template<Bool S, Size W>
constexpr decltype(auto) pRC::Integer< S, W >::operator() ( ) &&
inlineconstexpr

◆ operator()() [3/4]

template<Bool S, Size W>
constexpr auto & pRC::Integer< S, W >::operator() ( ) const &
inlineconstexpr

◆ operator()() [4/4]

template<Bool S, Size W>
constexpr decltype(auto) pRC::Integer< S, W >::operator() ( ) const &&
inlineconstexpr

◆ operator*=()

template<Bool S, Size W>
template<class X , If< IsInvocable< Mul, Integer &, X > > = 0>
constexpr auto & pRC::Integer< S, W >::operator*= ( X && rhs) &
inlineconstexpr

◆ operator+=()

template<Bool S, Size W>
template<class X , If< IsInvocable< Add, Integer &, X > > = 0>
constexpr auto & pRC::Integer< S, W >::operator+= ( X && rhs) &
inlineconstexpr

◆ operator-=()

template<Bool S, Size W>
template<class X , If< IsInvocable< Sub, Integer &, X > > = 0>
constexpr auto & pRC::Integer< S, W >::operator-= ( X && rhs) &
inlineconstexpr

◆ operator/=()

template<Bool S, Size W>
template<class X , If< IsInvocable< Div, Integer &, X > > = 0>
constexpr auto & pRC::Integer< S, W >::operator/= ( X && rhs) &
inlineconstexpr

◆ operator=() [1/8]

template<Bool S, Size W>
template<class U , If< IsValue< U > > = 0>
constexpr auto & pRC::Integer< S, W >::operator= ( Complex< U > const & value) &
inlineconstexpr

◆ operator=() [2/8]

template<Bool S, Size W>
constexpr auto & pRC::Integer< S, W >::operator= ( Identity<> const ) &
inlineconstexpr

◆ operator=() [3/8]

template<Bool S, Size W>
constexpr Integer & pRC::Integer< S, W >::operator= ( Integer< S, W > && ) &
constexprdefault

◆ operator=() [4/8]

template<Bool S, Size W>
constexpr Integer & pRC::Integer< S, W >::operator= ( Integer< S, W > const & ) &
constexprdefault

◆ operator=() [5/8]

template<Bool S, Size W>
template<class U , If< IsValue< U > > = 0>
constexpr auto & pRC::Integer< S, W >::operator= ( U const & value) &
inlineconstexpr

◆ operator=() [6/8]

template<Bool S, Size W>
template<class U , If< IsAssignable< Fundamental, U > > = 0>
constexpr auto & pRC::Integer< S, W >::operator= ( U const basic) &
inlineconstexpr

◆ operator=() [7/8]

template<Bool S, Size W>
constexpr auto & pRC::Integer< S, W >::operator= ( Unit<> const ) &
inlineconstexpr

◆ operator=() [8/8]

template<Bool S, Size W>
constexpr auto & pRC::Integer< S, W >::operator= ( Zero<> const ) &
inlineconstexpr

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