tinymt-cpp  0.0.1
Public Types | Static Public Member Functions | Static Public Attributes | List of all members
tinymt::detail::tinymt_engine_impl< UIntType, 32, Mat1, Mat2, TMat, DoPeriodCertification > Struct Template Reference

#include <tinymt.h>

Public Types

using result_type = UIntType
 
using signed_result_type = typename std::make_signed< result_type >::type
 
using status_type = tinymt_engine_status< UIntType, 32, Mat1, Mat2, TMat >
 
using param_type = detail::tinymt_engine_param< UIntType >
 

Static Public Member Functions

static void period_certification (status_type &s)
 
static void init (status_type &s, result_type seed)
 
template<TINYMT_CPP_ENABLE_WHEN(!is_twos_complement< result_type >::value) >
static void next_state (status_type &s)
 
template<TINYMT_CPP_ENABLE_WHEN(is_twos_complement< result_type >::value) >
static void next_state (status_type &s)
 
template<TINYMT_CPP_ENABLE_WHEN(!is_twos_complement< result_type >::value) >
static result_type temper (const status_type &s)
 
template<TINYMT_CPP_ENABLE_WHEN(is_twos_complement< result_type >::value) >
static result_type temper (const status_type &s)
 

Static Public Attributes

static constexpr std::size_t state_size = 4
 
static constexpr std::uintmax_t max = 0xffffffffU
 
static constexpr std::size_t sh0 = 1
 
static constexpr std::size_t sh1 = 10
 
static constexpr std::size_t sh8 = 8
 
static constexpr result_type word_mask = static_cast<result_type>(max)
 
static constexpr result_type mask32 = word_mask
 
static constexpr result_type mask = 0x7fffffffU
 

Member Typedef Documentation

◆ param_type

template<class UIntType , std::uintmax_t Mat1, std::uintmax_t Mat2, std::uintmax_t TMat, bool DoPeriodCertification>
using tinymt::detail::tinymt_engine_impl< UIntType, 32, Mat1, Mat2, TMat, DoPeriodCertification >::param_type = detail::tinymt_engine_param<UIntType>

◆ result_type

template<class UIntType , std::uintmax_t Mat1, std::uintmax_t Mat2, std::uintmax_t TMat, bool DoPeriodCertification>
using tinymt::detail::tinymt_engine_impl< UIntType, 32, Mat1, Mat2, TMat, DoPeriodCertification >::result_type = UIntType

◆ signed_result_type

template<class UIntType , std::uintmax_t Mat1, std::uintmax_t Mat2, std::uintmax_t TMat, bool DoPeriodCertification>
using tinymt::detail::tinymt_engine_impl< UIntType, 32, Mat1, Mat2, TMat, DoPeriodCertification >::signed_result_type = typename std::make_signed<result_type>::type

◆ status_type

template<class UIntType , std::uintmax_t Mat1, std::uintmax_t Mat2, std::uintmax_t TMat, bool DoPeriodCertification>
using tinymt::detail::tinymt_engine_impl< UIntType, 32, Mat1, Mat2, TMat, DoPeriodCertification >::status_type = tinymt_engine_status<UIntType, 32, Mat1, Mat2, TMat>

Member Function Documentation

◆ init()

template<class UIntType , std::uintmax_t Mat1, std::uintmax_t Mat2, std::uintmax_t TMat, bool DoPeriodCertification>
static void tinymt::detail::tinymt_engine_impl< UIntType, 32, Mat1, Mat2, TMat, DoPeriodCertification >::init ( status_type s,
result_type  seed 
)
inlinestatic

◆ next_state() [1/2]

template<class UIntType , std::uintmax_t Mat1, std::uintmax_t Mat2, std::uintmax_t TMat, bool DoPeriodCertification>
template<TINYMT_CPP_ENABLE_WHEN(!is_twos_complement< result_type >::value) >
static void tinymt::detail::tinymt_engine_impl< UIntType, 32, Mat1, Mat2, TMat, DoPeriodCertification >::next_state ( status_type s)
inlinestatic

◆ next_state() [2/2]

template<class UIntType , std::uintmax_t Mat1, std::uintmax_t Mat2, std::uintmax_t TMat, bool DoPeriodCertification>
template<TINYMT_CPP_ENABLE_WHEN(is_twos_complement< result_type >::value) >
static void tinymt::detail::tinymt_engine_impl< UIntType, 32, Mat1, Mat2, TMat, DoPeriodCertification >::next_state ( status_type s)
inlinestatic

◆ period_certification()

template<class UIntType , std::uintmax_t Mat1, std::uintmax_t Mat2, std::uintmax_t TMat, bool DoPeriodCertification>
static void tinymt::detail::tinymt_engine_impl< UIntType, 32, Mat1, Mat2, TMat, DoPeriodCertification >::period_certification ( status_type s)
inlinestatic

◆ temper() [1/2]

template<class UIntType , std::uintmax_t Mat1, std::uintmax_t Mat2, std::uintmax_t TMat, bool DoPeriodCertification>
template<TINYMT_CPP_ENABLE_WHEN(!is_twos_complement< result_type >::value) >
static result_type tinymt::detail::tinymt_engine_impl< UIntType, 32, Mat1, Mat2, TMat, DoPeriodCertification >::temper ( const status_type s)
inlinestatic

◆ temper() [2/2]

template<class UIntType , std::uintmax_t Mat1, std::uintmax_t Mat2, std::uintmax_t TMat, bool DoPeriodCertification>
template<TINYMT_CPP_ENABLE_WHEN(is_twos_complement< result_type >::value) >
static result_type tinymt::detail::tinymt_engine_impl< UIntType, 32, Mat1, Mat2, TMat, DoPeriodCertification >::temper ( const status_type s)
inlinestatic

Member Data Documentation

◆ mask

template<class UIntType , std::uintmax_t Mat1, std::uintmax_t Mat2, std::uintmax_t TMat, bool DoPeriodCertification>
constexpr result_type tinymt::detail::tinymt_engine_impl< UIntType, 32, Mat1, Mat2, TMat, DoPeriodCertification >::mask = 0x7fffffffU
static

◆ mask32

template<class UIntType , std::uintmax_t Mat1, std::uintmax_t Mat2, std::uintmax_t TMat, bool DoPeriodCertification>
constexpr result_type tinymt::detail::tinymt_engine_impl< UIntType, 32, Mat1, Mat2, TMat, DoPeriodCertification >::mask32 = word_mask
static

◆ max

template<class UIntType , std::uintmax_t Mat1, std::uintmax_t Mat2, std::uintmax_t TMat, bool DoPeriodCertification>
constexpr std::uintmax_t tinymt::detail::tinymt_engine_impl< UIntType, 32, Mat1, Mat2, TMat, DoPeriodCertification >::max = 0xffffffffU
static

◆ sh0

template<class UIntType , std::uintmax_t Mat1, std::uintmax_t Mat2, std::uintmax_t TMat, bool DoPeriodCertification>
constexpr std::size_t tinymt::detail::tinymt_engine_impl< UIntType, 32, Mat1, Mat2, TMat, DoPeriodCertification >::sh0 = 1
static

◆ sh1

template<class UIntType , std::uintmax_t Mat1, std::uintmax_t Mat2, std::uintmax_t TMat, bool DoPeriodCertification>
constexpr std::size_t tinymt::detail::tinymt_engine_impl< UIntType, 32, Mat1, Mat2, TMat, DoPeriodCertification >::sh1 = 10
static

◆ sh8

template<class UIntType , std::uintmax_t Mat1, std::uintmax_t Mat2, std::uintmax_t TMat, bool DoPeriodCertification>
constexpr std::size_t tinymt::detail::tinymt_engine_impl< UIntType, 32, Mat1, Mat2, TMat, DoPeriodCertification >::sh8 = 8
static

◆ state_size

template<class UIntType , std::uintmax_t Mat1, std::uintmax_t Mat2, std::uintmax_t TMat, bool DoPeriodCertification>
constexpr std::size_t tinymt::detail::tinymt_engine_impl< UIntType, 32, Mat1, Mat2, TMat, DoPeriodCertification >::state_size = 4
static

◆ word_mask

template<class UIntType , std::uintmax_t Mat1, std::uintmax_t Mat2, std::uintmax_t TMat, bool DoPeriodCertification>
constexpr result_type tinymt::detail::tinymt_engine_impl< UIntType, 32, Mat1, Mat2, TMat, DoPeriodCertification >::word_mask = static_cast<result_type>(max)
static

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