MCKL
Monte Carlo Kernel Library
Classes | Namespaces | Macros | Typedefs
threefry.hpp File Reference
#include <mckl/random/internal/common.hpp>
#include <mckl/random/internal/threefry_constants.hpp>
#include <mckl/random/internal/threefry_generic.hpp>
#include <mckl/random/counter.hpp>
#include <mckl/random/increment.hpp>
#include <mckl/random/internal/threefry_sse2.hpp>
#include <mckl/random/internal/threefry_avx2.hpp>

Go to the source code of this file.

Classes

class  mckl::ThreefryGenerator< T, K, Rounds, Constants >
 Threefry RNG generator. More...
 

Namespaces

 mckl
 
 mckl::internal
 

Macros

#define MCKL_THREEFRY_ROUNDS   20
 ThreefryGenerator default rounds. More...
 

Typedefs

using mckl::Threefish1024 = Threefish1024Engine< std::uint32_t >
 Threefish-1024 RNG engine with 32-bit integer output. More...
 
using mckl::Threefish1024_64 = Threefish1024Engine< std::uint64_t >
 Threefish-1024 RNG engine with 64-bit integer output. More...
 
template<typename ResultType >
using mckl::Threefish1024Engine = ThreefryEngine< ResultType, std::uint64_t, 16, 80 >
 Threefish-1024 RNG engine. More...
 
using mckl::Threefish256 = Threefish256Engine< std::uint32_t >
 Threefish-256 RNG engine with 32-bit integer output. More...
 
using mckl::Threefish256_64 = Threefish256Engine< std::uint64_t >
 Threefish-256 RNG engine with 64-bit integer output. More...
 
template<typename ResultType >
using mckl::Threefish256Engine = ThreefryEngine< ResultType, std::uint64_t, 4, 72 >
 Threefish-256 RNG engine. More...
 
using mckl::Threefish512 = Threefish512Engine< std::uint32_t >
 Threefish-512 RNG engine with 32-bit integer output. More...
 
using mckl::Threefish512_64 = Threefish512Engine< std::uint64_t >
 Threefish-512 RNG engine with 64-bit integer output. More...
 
template<typename ResultType >
using mckl::Threefish512Engine = ThreefryEngine< ResultType, std::uint64_t, 8, 72 >
 Threefish-512 RNG engine. More...
 
using mckl::Threefry16x64 = Threefry16x64Engine< std::uint32_t >
 Threefry16x64 RNG engine with 32-bit integer output. More...
 
using mckl::Threefry16x64_64 = Threefry16x64Engine< std::uint64_t >
 Threefry16x64 RNG engine with 64-bit integer output. More...
 
template<typename ResultType >
using mckl::Threefry16x64Engine = ThreefryEngine< ResultType, std::uint64_t, 16 >
 Threefry16x64 RNG engine. More...
 
using mckl::Threefry2x32 = Threefry2x32Engine< std::uint32_t >
 Threefry2x32 RNG engine with 32-bit integer output. More...
 
using mckl::Threefry2x32_64 = Threefry2x32Engine< std::uint64_t >
 Threefry2x32 RNG engine with 64-bit integer output. More...
 
template<typename ResultType >
using mckl::Threefry2x32Engine = ThreefryEngine< ResultType, std::uint32_t, 2 >
 Threefry2x32 RNG engine. More...
 
using mckl::Threefry2x64 = Threefry2x64Engine< std::uint32_t >
 Threefry2x64 RNG engine with 32-bit integer output. More...
 
using mckl::Threefry2x64_64 = Threefry2x64Engine< std::uint64_t >
 Threefry2x64 RNG engine with 64-bit integer output. More...
 
template<typename ResultType >
using mckl::Threefry2x64Engine = ThreefryEngine< ResultType, std::uint64_t, 2 >
 Threefry2x64 RNG engine. More...
 
using mckl::Threefry4x32 = Threefry4x32Engine< std::uint32_t >
 Threefry4x32 RNG engine with 32-bit integer output. More...
 
using mckl::Threefry4x32_64 = Threefry4x32Engine< std::uint64_t >
 Threefry4x32 RNG engine with 64-bit integer output. More...
 
template<typename ResultType >
using mckl::Threefry4x32Engine = ThreefryEngine< ResultType, std::uint32_t, 4 >
 Threefry4x32 RNG engine. More...
 
using mckl::Threefry4x64 = Threefry4x64Engine< std::uint32_t >
 Threefry4x64 RNG engine with 32-bit integer output. More...
 
using mckl::Threefry4x64_64 = Threefry4x64Engine< std::uint64_t >
 Threefry4x64 RNG engine with 64-bit integer output. More...
 
template<typename ResultType >
using mckl::Threefry4x64Engine = ThreefryEngine< ResultType, std::uint64_t, 4 >
 Threefry4x64 RNG engine. More...
 
using mckl::Threefry8x64 = Threefry8x64Engine< std::uint32_t >
 Threefry8x64 RNG engine with 32-bit integer output. More...
 
using mckl::Threefry8x64_64 = Threefry8x64Engine< std::uint64_t >
 Threefry8x64 RNG engine with 64-bit integer output. More...
 
template<typename ResultType >
using mckl::Threefry8x64Engine = ThreefryEngine< ResultType, std::uint64_t, 8 >
 Threefry8x64 RNG engine. More...
 
template<typename ResultType , typename T , std::size_t K, std::size_t Rounds = 20, typename Constants = ThreefryConstants<T, K>>
using mckl::ThreefryEngine = CounterEngine< ResultType, ThreefryGenerator< T, K, Rounds, Constants > >
 Threefry RNG engine. More...
 
template<typename T , std::size_t K, std::size_t Rounds, typename Constants >
using mckl::internal::ThreefryGeneratorImpl = ThreefryGeneratorAVX2Impl< T, K, Rounds, Constants >