vSMC
vSMC: Scalable Monte Carlo
Classes | Namespaces | Macros | Typedefs
threefry.hpp File Reference
#include <vsmc/rng/internal/common.hpp>

Go to the source code of this file.

Classes

struct  vsmc::internal::ThreefryInsertKey< ResultType, K, N, bool >
 
struct  vsmc::internal::ThreefryInsertKey< ResultType, 2, N, true >
 
struct  vsmc::internal::ThreefryInsertKey< ResultType, 4, N, true >
 
struct  vsmc::internal::ThreefryKSConstantValue< typename >
 
struct  vsmc::internal::ThreefryKSConstantValue< uint32_t >
 
struct  vsmc::internal::ThreefryKSConstantValue< uint64_t >
 
struct  vsmc::internal::ThreefryRotate< ResultType, K, N, bool >
 
struct  vsmc::internal::ThreefryRotate< ResultType, 2, N, true >
 
struct  vsmc::internal::ThreefryRotate< ResultType, 4, N, true >
 
struct  vsmc::internal::ThreefryRotateConstantValue< typename, size_t, size_t, size_t >
 
struct  vsmc::internal::ThreefryRotateConstantValue< uint32_t, 2, 0, 0 >
 
struct  vsmc::internal::ThreefryRotateConstantValue< uint32_t, 2, 1, 0 >
 
struct  vsmc::internal::ThreefryRotateConstantValue< uint32_t, 2, 2, 0 >
 
struct  vsmc::internal::ThreefryRotateConstantValue< uint32_t, 2, 3, 0 >
 
struct  vsmc::internal::ThreefryRotateConstantValue< uint32_t, 2, 4, 0 >
 
struct  vsmc::internal::ThreefryRotateConstantValue< uint32_t, 2, 5, 0 >
 
struct  vsmc::internal::ThreefryRotateConstantValue< uint32_t, 2, 6, 0 >
 
struct  vsmc::internal::ThreefryRotateConstantValue< uint32_t, 2, 7, 0 >
 
struct  vsmc::internal::ThreefryRotateConstantValue< uint32_t, 4, 0, 0 >
 
struct  vsmc::internal::ThreefryRotateConstantValue< uint32_t, 4, 0, 1 >
 
struct  vsmc::internal::ThreefryRotateConstantValue< uint32_t, 4, 1, 0 >
 
struct  vsmc::internal::ThreefryRotateConstantValue< uint32_t, 4, 1, 1 >
 
struct  vsmc::internal::ThreefryRotateConstantValue< uint32_t, 4, 2, 0 >
 
struct  vsmc::internal::ThreefryRotateConstantValue< uint32_t, 4, 2, 1 >
 
struct  vsmc::internal::ThreefryRotateConstantValue< uint32_t, 4, 3, 0 >
 
struct  vsmc::internal::ThreefryRotateConstantValue< uint32_t, 4, 3, 1 >
 
struct  vsmc::internal::ThreefryRotateConstantValue< uint32_t, 4, 4, 0 >
 
struct  vsmc::internal::ThreefryRotateConstantValue< uint32_t, 4, 4, 1 >
 
struct  vsmc::internal::ThreefryRotateConstantValue< uint32_t, 4, 5, 0 >
 
struct  vsmc::internal::ThreefryRotateConstantValue< uint32_t, 4, 5, 1 >
 
struct  vsmc::internal::ThreefryRotateConstantValue< uint32_t, 4, 6, 0 >
 
struct  vsmc::internal::ThreefryRotateConstantValue< uint32_t, 4, 6, 1 >
 
struct  vsmc::internal::ThreefryRotateConstantValue< uint32_t, 4, 7, 0 >
 
struct  vsmc::internal::ThreefryRotateConstantValue< uint32_t, 4, 7, 1 >
 
struct  vsmc::internal::ThreefryRotateConstantValue< uint64_t, 2, 0, 0 >
 
struct  vsmc::internal::ThreefryRotateConstantValue< uint64_t, 2, 1, 0 >
 
struct  vsmc::internal::ThreefryRotateConstantValue< uint64_t, 2, 2, 0 >
 
struct  vsmc::internal::ThreefryRotateConstantValue< uint64_t, 2, 3, 0 >
 
struct  vsmc::internal::ThreefryRotateConstantValue< uint64_t, 2, 4, 0 >
 
struct  vsmc::internal::ThreefryRotateConstantValue< uint64_t, 2, 5, 0 >
 
struct  vsmc::internal::ThreefryRotateConstantValue< uint64_t, 2, 6, 0 >
 
struct  vsmc::internal::ThreefryRotateConstantValue< uint64_t, 2, 7, 0 >
 
struct  vsmc::internal::ThreefryRotateConstantValue< uint64_t, 4, 0, 0 >
 
struct  vsmc::internal::ThreefryRotateConstantValue< uint64_t, 4, 0, 1 >
 
struct  vsmc::internal::ThreefryRotateConstantValue< uint64_t, 4, 1, 0 >
 
struct  vsmc::internal::ThreefryRotateConstantValue< uint64_t, 4, 1, 1 >
 
struct  vsmc::internal::ThreefryRotateConstantValue< uint64_t, 4, 2, 0 >
 
struct  vsmc::internal::ThreefryRotateConstantValue< uint64_t, 4, 2, 1 >
 
struct  vsmc::internal::ThreefryRotateConstantValue< uint64_t, 4, 3, 0 >
 
struct  vsmc::internal::ThreefryRotateConstantValue< uint64_t, 4, 3, 1 >
 
struct  vsmc::internal::ThreefryRotateConstantValue< uint64_t, 4, 4, 0 >
 
struct  vsmc::internal::ThreefryRotateConstantValue< uint64_t, 4, 4, 1 >
 
struct  vsmc::internal::ThreefryRotateConstantValue< uint64_t, 4, 5, 0 >
 
struct  vsmc::internal::ThreefryRotateConstantValue< uint64_t, 4, 5, 1 >
 
struct  vsmc::internal::ThreefryRotateConstantValue< uint64_t, 4, 6, 0 >
 
struct  vsmc::internal::ThreefryRotateConstantValue< uint64_t, 4, 6, 1 >
 
struct  vsmc::internal::ThreefryRotateConstantValue< uint64_t, 4, 7, 0 >
 
struct  vsmc::internal::ThreefryRotateConstantValue< uint64_t, 4, 7, 1 >
 
struct  vsmc::internal::ThreefryRotateImpl< ResultType, N >
 
struct  vsmc::internal::ThreefryRotateImpl< uint32_t, N >
 
struct  vsmc::internal::ThreefryRotateImpl< uint64_t, N >
 
class  vsmc::ThreefryEngine< ResultType, K, Rounds >
 Threefry RNG engine reimplemented. More...
 

Namespaces

 vsmc
 
 vsmc::internal
 

Macros

#define VSMC_DEFINE_RNG_THREEFRY_ROTATE_CONSTANT(T, K, N, I, val)
 
#define VSMC_RNG_THREEFRY_ROUNDS   20
 ThreefryEngine default rounds. More...
 
#define VSMC_STATIC_ASSERT_RNG_THREEFRY
 
#define VSMC_STATIC_ASSERT_RNG_THREEFRY_RESULT_TYPE(ResultType)
 
#define VSMC_STATIC_ASSERT_RNG_THREEFRY_SIZE(K)
 

Typedefs

typedef Threefry4x32 vsmc::Threefry
 The default 32-bits Threefry engine. More...
 
typedef ThreefryEngine< uint32_t, 2 > vsmc::Threefry2x32
 Threefry2x32 RNG engine reimplemented. More...
 
typedef ThreefryEngine< uint64_t, 2 > vsmc::Threefry2x64
 Threefry2x64 RNG engine reimplemented. More...
 
typedef ThreefryEngine< uint32_t, 4 > vsmc::Threefry4x32
 Threefry4x32 RNG engine reimplemented. More...
 
typedef ThreefryEngine< uint64_t, 4 > vsmc::Threefry4x64
 Threefry4x64 RNG engine reimplemented. More...
 
typedef Threefry4x64 vsmc::Threefry_64
 The default 64-bits Threefry engine. More...
 

Macro Definition Documentation

#define VSMC_DEFINE_RNG_THREEFRY_ROTATE_CONSTANT (   T,
  K,
  N,
  I,
  val 
)
Value:
template <> struct ThreefryRotateConstantValue < T, K, N, I > : \
public cxx11::integral_constant< unsigned, val > {};

Definition at line 51 of file threefry.hpp.

#define VSMC_STATIC_ASSERT_RNG_THREEFRY
Value:
#define VSMC_STATIC_ASSERT_RNG_THREEFRY_RESULT_TYPE(ResultType)
Definition: threefry.hpp:37
#define VSMC_STATIC_ASSERT_RNG_THREEFRY_SIZE(K)
Definition: threefry.hpp:43

Definition at line 47 of file threefry.hpp.

#define VSMC_STATIC_ASSERT_RNG_THREEFRY_RESULT_TYPE (   ResultType)
Value:
(cxx11::is_same<ResultType, uint32_t>::value || \
cxx11::is_same<ResultType, uint64_t>::value), \
USE_ThreefryEngine_WITH_INTEGER_TYPE_OTHER_THAN_uint32_t_OR_uint64_t)
#define VSMC_STATIC_ASSERT(cond, msg)
Definition: assert.hpp:46

Definition at line 37 of file threefry.hpp.

#define VSMC_STATIC_ASSERT_RNG_THREEFRY_SIZE (   K)
Value:
VSMC_STATIC_ASSERT((K == 2 || K == 4), \
USE_ThreefryEngine_WITH_SIZE_OTHER_THAN_2_OR_4)
#define VSMC_STATIC_ASSERT(cond, msg)
Definition: assert.hpp:46

Definition at line 43 of file threefry.hpp.