MCKL
Monte Carlo Kernel Library
Classes | Namespaces | Macros
threefry_generic_16x64.hpp File Reference
#include <mckl/random/internal/common.hpp>
#include <mckl/random/internal/threefry_common.hpp>
#include <mckl/random/internal/threefry_constants.hpp>
#include <mckl/random/increment.hpp>

Go to the source code of this file.

Classes

class  mckl::internal::Threefish1024GeneratorGenericImpl< T >
 
class  mckl::internal::Threefry16x64GeneratorGenericImpl< T >
 

Namespaces

 mckl
 
 mckl::internal
 

Macros

#define MCKL_RANDOM_INTERNAL_THREEFRY_GENERIC_16X64_CYCLE_4(N)
 
#define MCKL_RANDOM_INTERNAL_THREEFRY_GENERIC_16X64_CYCLE_8(N)
 
#define MCKL_RANDOM_INTERNAL_THREEFRY_GENERIC_16X64_KBOX(N)
 
#define MCKL_RANDOM_INTERNAL_THREEFRY_GENERIC_16X64_RBOX(N)
 
#define MCKL_RANDOM_INTERNAL_THREEFRY_GENERIC_16X64_ROUND(L)
 
#define MCKL_RANDOM_INTERNAL_THREEFRY_GENERIC_16X64_ROUND_20
 
#define MCKL_RANDOM_INTERNAL_THREEFRY_GENERIC_16X64_ROUND_80
 

Macro Definition Documentation

◆ MCKL_RANDOM_INTERNAL_THREEFRY_GENERIC_16X64_CYCLE_4

#define MCKL_RANDOM_INTERNAL_THREEFRY_GENERIC_16X64_CYCLE_4 (   N)
Value:
MCKL_RANDOM_INTERNAL_THREEFRY_GENERIC_16X64_RBOX(N * 8 + 2); \
MCKL_RANDOM_INTERNAL_THREEFRY_GENERIC_16X64_RBOX(N * 8 + 3); \
MCKL_RANDOM_INTERNAL_THREEFRY_GENERIC_16X64_RBOX(N * 8 + 4); \
MCKL_RANDOM_INTERNAL_THREEFRY_GENERIC_16X64_KBOX(N * 8 + 4);
#define MCKL_RANDOM_INTERNAL_THREEFRY_GENERIC_16X64_RBOX(N)

Definition at line 110 of file threefry_generic_16x64.hpp.

◆ MCKL_RANDOM_INTERNAL_THREEFRY_GENERIC_16X64_CYCLE_8

#define MCKL_RANDOM_INTERNAL_THREEFRY_GENERIC_16X64_CYCLE_8 (   N)
Value:
MCKL_RANDOM_INTERNAL_THREEFRY_GENERIC_16X64_RBOX(N * 8 + 2); \
MCKL_RANDOM_INTERNAL_THREEFRY_GENERIC_16X64_RBOX(N * 8 + 3); \
MCKL_RANDOM_INTERNAL_THREEFRY_GENERIC_16X64_RBOX(N * 8 + 4); \
MCKL_RANDOM_INTERNAL_THREEFRY_GENERIC_16X64_KBOX(N * 8 + 4); \
MCKL_RANDOM_INTERNAL_THREEFRY_GENERIC_16X64_RBOX(N * 8 + 5); \
MCKL_RANDOM_INTERNAL_THREEFRY_GENERIC_16X64_RBOX(N * 8 + 6); \
MCKL_RANDOM_INTERNAL_THREEFRY_GENERIC_16X64_RBOX(N * 8 + 7); \
MCKL_RANDOM_INTERNAL_THREEFRY_GENERIC_16X64_RBOX(N * 8 + 8); \
MCKL_RANDOM_INTERNAL_THREEFRY_GENERIC_16X64_KBOX(N * 8 + 8);
#define MCKL_RANDOM_INTERNAL_THREEFRY_GENERIC_16X64_RBOX(N)

Definition at line 117 of file threefry_generic_16x64.hpp.

◆ MCKL_RANDOM_INTERNAL_THREEFRY_GENERIC_16X64_KBOX

#define MCKL_RANDOM_INTERNAL_THREEFRY_GENERIC_16X64_KBOX (   N)
Value:
s0 += ThreefryKBox<T, K, N>::template key<0x0>(par); \
s1 += ThreefryKBox<T, K, N>::template key<0x1>(par); \
s2 += ThreefryKBox<T, K, N>::template key<0x2>(par); \
s3 += ThreefryKBox<T, K, N>::template key<0x3>(par); \
s4 += ThreefryKBox<T, K, N>::template key<0x4>(par); \
s5 += ThreefryKBox<T, K, N>::template key<0x5>(par); \
s6 += ThreefryKBox<T, K, N>::template key<0x6>(par); \
s7 += ThreefryKBox<T, K, N>::template key<0x7>(par); \
s8 += ThreefryKBox<T, K, N>::template key<0x8>(par); \
s9 += ThreefryKBox<T, K, N>::template key<0x9>(par); \
sA += ThreefryKBox<T, K, N>::template key<0xA>(par); \
sB += ThreefryKBox<T, K, N>::template key<0xB>(par); \
sC += ThreefryKBox<T, K, N>::template key<0xC>(par); \
sD += ThreefryKBox<T, K, N>::template key<0xD>(par); \
sE += ThreefryKBox<T, K, N>::template key<0xE>(par); \
sF += ThreefryKBox<T, K, N>::template key<0xF>(par);

Definition at line 40 of file threefry_generic_16x64.hpp.

◆ MCKL_RANDOM_INTERNAL_THREEFRY_GENERIC_16X64_RBOX

#define MCKL_RANDOM_INTERNAL_THREEFRY_GENERIC_16X64_RBOX (   N)

Definition at line 58 of file threefry_generic_16x64.hpp.

◆ MCKL_RANDOM_INTERNAL_THREEFRY_GENERIC_16X64_ROUND

#define MCKL_RANDOM_INTERNAL_THREEFRY_GENERIC_16X64_ROUND (   L)

Definition at line 148 of file threefry_generic_16x64.hpp.

◆ MCKL_RANDOM_INTERNAL_THREEFRY_GENERIC_16X64_ROUND_20

#define MCKL_RANDOM_INTERNAL_THREEFRY_GENERIC_16X64_ROUND_20
Value:
MCKL_RANDOM_INTERNAL_THREEFRY_GENERIC_16X64_CYCLE_8(0) \
MCKL_RANDOM_INTERNAL_THREEFRY_GENERIC_16X64_CYCLE_8(1) \
MCKL_RANDOM_INTERNAL_THREEFRY_GENERIC_16X64_CYCLE_4(2)
#define MCKL_RANDOM_INTERNAL_THREEFRY_GENERIC_16X64_KBOX(N)

Definition at line 129 of file threefry_generic_16x64.hpp.

◆ MCKL_RANDOM_INTERNAL_THREEFRY_GENERIC_16X64_ROUND_80

#define MCKL_RANDOM_INTERNAL_THREEFRY_GENERIC_16X64_ROUND_80
Value:
MCKL_RANDOM_INTERNAL_THREEFRY_GENERIC_16X64_CYCLE_8(0) \
MCKL_RANDOM_INTERNAL_THREEFRY_GENERIC_16X64_CYCLE_8(1) \
MCKL_RANDOM_INTERNAL_THREEFRY_GENERIC_16X64_CYCLE_8(2) \
MCKL_RANDOM_INTERNAL_THREEFRY_GENERIC_16X64_CYCLE_8(3) \
MCKL_RANDOM_INTERNAL_THREEFRY_GENERIC_16X64_CYCLE_8(4) \
MCKL_RANDOM_INTERNAL_THREEFRY_GENERIC_16X64_CYCLE_8(5) \
MCKL_RANDOM_INTERNAL_THREEFRY_GENERIC_16X64_CYCLE_8(6) \
MCKL_RANDOM_INTERNAL_THREEFRY_GENERIC_16X64_CYCLE_8(7) \
MCKL_RANDOM_INTERNAL_THREEFRY_GENERIC_16X64_CYCLE_8(8) \
MCKL_RANDOM_INTERNAL_THREEFRY_GENERIC_16X64_CYCLE_8(9)
#define MCKL_RANDOM_INTERNAL_THREEFRY_GENERIC_16X64_KBOX(N)

Definition at line 135 of file threefry_generic_16x64.hpp.