RandX 1.4.3
基于 xoshiro/xoroshiro 算法族的纯头文件伪随机数生成器库
载入中...
搜索中...
未找到
RandX::detail 命名空间参考

struct  HasJump
struct  HasJump< Engine, std::void_t< decltype(std::declval< Engine & >().jump())> >
struct  is_character
struct  is_random_access_iterator
struct  is_random_access_iterator< It, std::void_t< typename std::iterator_traits< It >::iterator_category > >
struct  is_input_iterator
struct  is_input_iterator< It, std::void_t< typename std::iterator_traits< It >::iterator_category > >
struct  is_random_access_container
struct  is_random_access_container< C, std::void_t< decltype(std::begin(std::declval< C & >())), decltype(std::end(std::declval< C & >()))> >
struct  is_rand_fillable
struct  is_rand_fillable< It, T, std::void_t< decltype(*std::declval< It & >()=std::declval< T >()) > >
struct  is_indexable_state
struct  is_indexable_state< S, std::void_t< decltype(std::declval< const S & >().size()), decltype(std::declval< S & >()[std::size_t{}]), typename S::value_type > >
struct  is_serializable_engine
struct  is_serializable_engine< E, std::void_t< decltype(std::declval< const E & >().serialize()), decltype(std::declval< E & >().deserialize(std::declval< typename E::state_type >())), typename E::state_type > >

概念

concept  Character
concept  IndexableState
concept  SerializableEngine
concept  JumpableEngine
 可跳跃引擎概念:支持 jump() 前进 2^N 步
concept  StreamEngine
 流式引擎概念:可通过 MakeStreamEngine 创建互不重叠的子序列流
concept  RandFillable

函数

static constexpr std::uint64_t RotL (const std::uint64_t x, const int s) noexcept
static constexpr std::uint32_t RotL (const std::uint32_t x, const int s) noexcept
static void SecureWipe (void *ptr, std::size_t len) noexcept
template<std::size_t N>
static constexpr bool IsAllZero (const std::array< std::uint64_t, N > &state) noexcept
template<std::size_t N>
static constexpr bool IsAllZero (const std::array< std::uint32_t, N > &state) noexcept
bool HardwareRand64 (std::uint64_t &out) noexcept
bool GetOsEntropyBytes (void *buf, std::size_t n) noexcept
bool HasCryptoGradeOsEntropy () noexcept
static void ChaCha20QuarterRound (std::uint32_t &a, std::uint32_t &b, std::uint32_t &c, std::uint32_t &d) noexcept
template<class Engine>
std::uint64_t Generate64Bits (Engine &engine)
constexpr std::uint64_t BoundedRand (Xoshiro256StarStar &rng, std::uint64_t range) noexcept
std::string_view CharSetString (CharSet cs) noexcept
static constexpr std::uint64_t RotL (const std::uint64_t x, const int s) noexcept
static constexpr std::uint32_t RotL (const std::uint32_t x, const int s) noexcept
static void SecureWipe (void *ptr, std::size_t len) noexcept
template<std::size_t N>
static constexpr bool IsAllZero (const std::array< std::uint64_t, N > &state) noexcept
template<std::size_t N>
static constexpr bool IsAllZero (const std::array< std::uint32_t, N > &state) noexcept
static void ChaCha20QuarterRound (std::uint32_t &a, std::uint32_t &b, std::uint32_t &c, std::uint32_t &d) noexcept

变量

constexpr std::uint32_t ChaCha20Constants [4]
constexpr std::uint64_t ChaCha20ReseedThreshold = 1ULL << 20
constexpr std::uint64_t HashSetThresholdK = 64
template<class T>
constexpr bool is_character_v = is_character<T>::value
template<class It>
constexpr bool is_random_access_iterator_v
template<class It>
constexpr bool is_input_iterator_v
template<class C>
constexpr bool is_random_access_container_v
template<class It, class T>
constexpr bool is_rand_fillable_v = is_rand_fillable<It, T>::value
template<class S>
constexpr bool is_indexable_state_v = is_indexable_state<S>::value
template<class E>
constexpr bool is_serializable_engine_v = is_serializable_engine<E>::value

函数说明

◆ BoundedRand()

std::uint64_t RandX::detail::BoundedRand ( Xoshiro256StarStar & rng,
std::uint64_t range )
inlinenodiscardconstexprnoexcept

◆ ChaCha20QuarterRound() [1/2]

void RandX::detail::ChaCha20QuarterRound ( std::uint32_t & a,
std::uint32_t & b,
std::uint32_t & c,
std::uint32_t & d )
staticnoexcept
函数调用图:

◆ ChaCha20QuarterRound() [2/2]

void RandX::detail::ChaCha20QuarterRound ( std::uint32_t & a,
std::uint32_t & b,
std::uint32_t & c,
std::uint32_t & d )
staticnoexcept
函数调用图:

◆ CharSetString()

std::string_view RandX::detail::CharSetString ( CharSet cs)
inlinenodiscardnoexcept

◆ Generate64Bits()

template<class Engine>
std::uint64_t RandX::detail::Generate64Bits ( Engine & engine)
inlinenodiscard

◆ GetOsEntropyBytes()

bool RandX::detail::GetOsEntropyBytes ( void * buf,
std::size_t n )
inlinenodiscardnoexcept

◆ HardwareRand64()

bool RandX::detail::HardwareRand64 ( std::uint64_t & out)
inlinenodiscardnoexcept

◆ HasCryptoGradeOsEntropy()

bool RandX::detail::HasCryptoGradeOsEntropy ( )
inlinenodiscardnoexcept

◆ IsAllZero() [1/4]

template<std::size_t N>
constexpr bool RandX::detail::IsAllZero ( const std::array< std::uint32_t, N > & state)
staticnodiscardconstexprnoexcept

◆ IsAllZero() [2/4]

template<std::size_t N>
constexpr bool RandX::detail::IsAllZero ( const std::array< std::uint32_t, N > & state)
staticnodiscardconstexprnoexcept

◆ IsAllZero() [3/4]

template<std::size_t N>
constexpr bool RandX::detail::IsAllZero ( const std::array< std::uint64_t, N > & state)
staticnodiscardconstexprnoexcept

◆ IsAllZero() [4/4]

template<std::size_t N>
constexpr bool RandX::detail::IsAllZero ( const std::array< std::uint64_t, N > & state)
staticnodiscardconstexprnoexcept

◆ RotL() [1/4]

constexpr std::uint32_t RandX::detail::RotL ( const std::uint32_t x,
const int s )
staticnodiscardconstexprnoexcept

◆ RotL() [2/4]

constexpr std::uint32_t RandX::detail::RotL ( const std::uint32_t x,
const int s )
staticnodiscardconstexprnoexcept

◆ RotL() [3/4]

constexpr std::uint64_t RandX::detail::RotL ( const std::uint64_t x,
const int s )
staticnodiscardconstexprnoexcept

◆ RotL() [4/4]

constexpr std::uint64_t RandX::detail::RotL ( const std::uint64_t x,
const int s )
staticnodiscardconstexprnoexcept

◆ SecureWipe() [1/2]

void RandX::detail::SecureWipe ( void * ptr,
std::size_t len )
staticnoexcept

◆ SecureWipe() [2/2]

void RandX::detail::SecureWipe ( void * ptr,
std::size_t len )
staticnoexcept

变量说明

◆ ChaCha20Constants

std::uint32_t RandX::detail::ChaCha20Constants
inlineconstexpr
初始值:
= {
0x61707865u, 0x3320646eu, 0x79622d32u, 0x6b206574u
}

◆ ChaCha20ReseedThreshold

std::uint64_t RandX::detail::ChaCha20ReseedThreshold = 1ULL << 20
inlineconstexpr

◆ HashSetThresholdK

std::uint64_t RandX::detail::HashSetThresholdK = 64
inlineconstexpr

◆ is_character_v

template<class T>
bool RandX::detail::is_character_v = is_character<T>::value
inlineconstexpr

◆ is_indexable_state_v

template<class S>
bool RandX::detail::is_indexable_state_v = is_indexable_state<S>::value
inlineconstexpr

◆ is_input_iterator_v

template<class It>
bool RandX::detail::is_input_iterator_v
inlineconstexpr
初始值:

◆ is_rand_fillable_v

template<class It, class T>
bool RandX::detail::is_rand_fillable_v = is_rand_fillable<It, T>::value
inlineconstexpr

◆ is_random_access_container_v

template<class C>
bool RandX::detail::is_random_access_container_v
inlineconstexpr

◆ is_random_access_iterator_v

template<class It>
bool RandX::detail::is_random_access_iterator_v
inlineconstexpr

◆ is_serializable_engine_v

template<class E>
bool RandX::detail::is_serializable_engine_v = is_serializable_engine<E>::value
inlineconstexpr