Random123
Classes | Namespaces | Macros | Typedefs | Enumerations | Functions
threefry.h File Reference
#include "features/compilerfeatures.h"
#include "array.h"
Include dependency graph for threefry.h:

Go to the source code of this file.

Classes

class  r123::Threefry2x32_R< ROUNDS >
 
class  r123::Threefry4x32_R< ROUNDS >
 
class  r123::Threefry2x64_R< ROUNDS >
 
class  r123::Threefry4x64_R< ROUNDS >
 

Namespaces

 r123
 

Macros

#define THREEFRY2x32_DEFAULT_ROUNDS   20
 
#define THREEFRY2x64_DEFAULT_ROUNDS   20
 
#define THREEFRY4x32_DEFAULT_ROUNDS   20
 
#define THREEFRY4x64_DEFAULT_ROUNDS   20
 
#define _threefry2x_tpl(W)
 
#define _threefry4x_tpl(W)
 
#define threefry2x32(c, k)   threefry2x32_R(threefry2x32_rounds, c, k)
 
#define threefry4x32(c, k)   threefry4x32_R(threefry4x32_rounds, c, k)
 
#define threefry2x64(c, k)   threefry2x64_R(threefry2x64_rounds, c, k)
 
#define threefry4x64(c, k)   threefry4x64_R(threefry4x64_rounds, c, k)
 
#define _threefryNxWclass_tpl(NxW)
 

Typedefs

typedef struct r123array2x64 threefry2x64_ctr_t
 
typedef struct r123array2x64 threefry2x64_key_t
 
typedef struct r123array2x64 threefry2x64_ukey_t
 
typedef struct r123array4x64 threefry4x64_ctr_t
 
typedef struct r123array4x64 threefry4x64_key_t
 
typedef struct r123array4x64 threefry4x64_ukey_t
 
typedef struct r123array2x32 threefry2x32_ctr_t
 
typedef struct r123array2x32 threefry2x32_key_t
 
typedef struct r123array2x32 threefry2x32_ukey_t
 
typedef struct r123array4x32 threefry4x32_ctr_t
 
typedef struct r123array4x32 threefry4x32_key_t
 
typedef struct r123array4x32 threefry4x32_ukey_t
 
typedef Threefry2x32_R< threefry2x32_roundsr123::Threefry2x32
 
typedef Threefry4x32_R< threefry4x32_roundsr123::Threefry4x32
 
typedef Threefry2x64_R< threefry2x64_roundsr123::Threefry2x64
 
typedef Threefry4x64_R< threefry4x64_roundsr123::Threefry4x64
 

Enumerations

enum  r123_enum_threefry2x64 { threefry2x64_rounds = 20 }
 
enum  r123_enum_threefry4x64 { threefry4x64_rounds = 20 }
 
enum  r123_enum_threefry2x32 { threefry2x32_rounds = 20 }
 
enum  r123_enum_threefry4x32 { threefry4x32_rounds = 20 }
 

Functions

static threefry2x64_key_t threefry2x64keyinit (threefry2x64_ukey_t uk)
 
R123_CUDA_DEVICE R123_STATIC_INLINE threefry2x64_ctr_t threefry2x64_R (unsigned int Nrounds, threefry2x64_ctr_t in, threefry2x64_key_t k)
 
R123_CUDA_DEVICE R123_STATIC_INLINE threefry2x64_ctr_t threefry2x64 (threefry2x64_ctr_t in, threefry2x64_key_t k)
 
static threefry4x64_key_t threefry4x64keyinit (threefry4x64_ukey_t uk)
 
R123_CUDA_DEVICE R123_STATIC_INLINE threefry4x64_ctr_t threefry4x64_R (unsigned int Nrounds, threefry4x64_ctr_t in, threefry4x64_key_t k)
 
R123_CUDA_DEVICE R123_STATIC_INLINE threefry4x64_ctr_t threefry4x64 (threefry4x64_ctr_t in, threefry4x64_key_t k)
 
static threefry2x32_key_t threefry2x32keyinit (threefry2x32_ukey_t uk)
 
R123_CUDA_DEVICE R123_STATIC_INLINE threefry2x32_ctr_t threefry2x32_R (unsigned int Nrounds, threefry2x32_ctr_t in, threefry2x32_key_t k)
 
R123_CUDA_DEVICE R123_STATIC_INLINE threefry2x32_ctr_t threefry2x32 (threefry2x32_ctr_t in, threefry2x32_key_t k)
 
static threefry4x32_key_t threefry4x32keyinit (threefry4x32_ukey_t uk)
 
R123_CUDA_DEVICE R123_STATIC_INLINE threefry4x32_ctr_t threefry4x32_R (unsigned int Nrounds, threefry4x32_ctr_t in, threefry4x32_key_t k)
 
R123_CUDA_DEVICE R123_STATIC_INLINE threefry4x32_ctr_t threefry4x32 (threefry4x32_ctr_t in, threefry4x32_key_t k)
 

Macro Definition Documentation

◆ _threefry2x_tpl

#define _threefry2x_tpl (   W)

◆ _threefry4x_tpl

#define _threefry4x_tpl (   W)

◆ _threefryNxWclass_tpl

#define _threefryNxWclass_tpl (   NxW)
Value:
namespace r123{ \
template<unsigned int ROUNDS> \
struct Threefry##NxW##_R{ \
typedef threefry##NxW##_ctr_t ctr_type; \
typedef threefry##NxW##_key_t key_type; \
typedef threefry##NxW##_key_t ukey_type; \
static const R123_METAL_CONSTANT_ADDRESS_SPACE unsigned int rounds=ROUNDS; \
inline R123_CUDA_DEVICE R123_FORCE_INLINE(ctr_type operator()(ctr_type ctr, key_type key)){ \
R123_STATIC_ASSERT(ROUNDS<=72, "threefry is only unrolled up to 72 rounds\n"); \
return threefry##NxW##_R(ROUNDS, ctr, key); \
} \
}; \
typedef Threefry##NxW##_R<threefry##NxW##_rounds> Threefry##NxW; \
}

◆ threefry2x32

#define threefry2x32 (   c,
 
)    threefry2x32_R(threefry2x32_rounds, c, k)

◆ THREEFRY2x32_DEFAULT_ROUNDS

#define THREEFRY2x32_DEFAULT_ROUNDS   20

◆ threefry2x64

#define threefry2x64 (   c,
 
)    threefry2x64_R(threefry2x64_rounds, c, k)

◆ THREEFRY2x64_DEFAULT_ROUNDS

#define THREEFRY2x64_DEFAULT_ROUNDS   20

◆ threefry4x32

#define threefry4x32 (   c,
 
)    threefry4x32_R(threefry4x32_rounds, c, k)

◆ THREEFRY4x32_DEFAULT_ROUNDS

#define THREEFRY4x32_DEFAULT_ROUNDS   20

◆ threefry4x64

#define threefry4x64 (   c,
 
)    threefry4x64_R(threefry4x64_rounds, c, k)

◆ THREEFRY4x64_DEFAULT_ROUNDS

#define THREEFRY4x64_DEFAULT_ROUNDS   20

Typedef Documentation

◆ threefry2x32_ctr_t

◆ threefry2x32_key_t

◆ threefry2x32_ukey_t

◆ threefry2x64_ctr_t

◆ threefry2x64_key_t

◆ threefry2x64_ukey_t

◆ threefry4x32_ctr_t

◆ threefry4x32_key_t

◆ threefry4x32_ukey_t

◆ threefry4x64_ctr_t

◆ threefry4x64_key_t

◆ threefry4x64_ukey_t

Function Documentation

◆ threefry2x32()

R123_CUDA_DEVICE R123_STATIC_INLINE threefry2x32_ctr_t threefry2x32 ( threefry2x32_ctr_t  in,
threefry2x32_key_t  k 
)

◆ threefry2x32_R()

R123_CUDA_DEVICE R123_STATIC_INLINE threefry2x32_ctr_t threefry2x32_R ( unsigned int  Nrounds,
threefry2x32_ctr_t  in,
threefry2x32_key_t  k 
)

◆ threefry2x32keyinit()

static threefry2x32_key_t threefry2x32keyinit ( threefry2x32_ukey_t  uk)
inlinestatic

◆ threefry2x64()

R123_CUDA_DEVICE R123_STATIC_INLINE threefry2x64_ctr_t threefry2x64 ( threefry2x64_ctr_t  in,
threefry2x64_key_t  k 
)

◆ threefry2x64_R()

R123_CUDA_DEVICE R123_STATIC_INLINE threefry2x64_ctr_t threefry2x64_R ( unsigned int  Nrounds,
threefry2x64_ctr_t  in,
threefry2x64_key_t  k 
)

◆ threefry2x64keyinit()

static threefry2x64_key_t threefry2x64keyinit ( threefry2x64_ukey_t  uk)
inlinestatic

◆ threefry4x32()

R123_CUDA_DEVICE R123_STATIC_INLINE threefry4x32_ctr_t threefry4x32 ( threefry4x32_ctr_t  in,
threefry4x32_key_t  k 
)

◆ threefry4x32_R()

R123_CUDA_DEVICE R123_STATIC_INLINE threefry4x32_ctr_t threefry4x32_R ( unsigned int  Nrounds,
threefry4x32_ctr_t  in,
threefry4x32_key_t  k 
)

◆ threefry4x32keyinit()

static threefry4x32_key_t threefry4x32keyinit ( threefry4x32_ukey_t  uk)
inlinestatic

◆ threefry4x64()

R123_CUDA_DEVICE R123_STATIC_INLINE threefry4x64_ctr_t threefry4x64 ( threefry4x64_ctr_t  in,
threefry4x64_key_t  k 
)

◆ threefry4x64_R()

R123_CUDA_DEVICE R123_STATIC_INLINE threefry4x64_ctr_t threefry4x64_R ( unsigned int  Nrounds,
threefry4x64_ctr_t  in,
threefry4x64_key_t  k 
)

◆ threefry4x64keyinit()

static threefry4x64_key_t threefry4x64keyinit ( threefry4x64_ukey_t  uk)
inlinestatic
r123
Definition: aes.h:242