Random123
Classes | Typedefs | Enumerations | Functions
Philox Classes and Typedefs

The PhiloxNxW classes export the member functions, typedefs and operator overloads required by a CBRNG class. More...

Classes

class  r123::Philox2x32_R< ROUNDS >
 
class  r123::Philox2x64_R< ROUNDS >
 
class  r123::Philox4x32_R< ROUNDS >
 
class  r123::Philox4x64_R< ROUNDS >
 

Typedefs

typedef Philox2x32_R< philox2x32_rounds > r123::Philox2x32
 
typedef Philox2x64_R< philox2x64_roundsr123::Philox2x64
 
typedef Philox4x32_R< philox4x32_roundsr123::Philox4x32
 
typedef Philox4x64_R< philox4x64_roundsr123::Philox4x64
 

Enumerations

enum  r123_enum_philox4x32 { philox4x32_rounds = 10 }
 
enum  r123_enum_philox2x64 { philox2x64_rounds = 10 }
 
enum  r123_enum_philox4x64 { philox4x64_rounds = 10 }
 

Functions

uint32_t _philox4xWround_tpl (32, uint32_t) enum r123_enum_philox2x32
 

Detailed Description

The PhiloxNxW classes export the member functions, typedefs and operator overloads required by a CBRNG class.

As described in Parallel Random Numbers: As Easy as 1, 2, 3 . The Philox family of counter-based RNGs use integer multiplication, xor and permutation of W-bit words to scramble its N-word input key. Philox is a mnemonic for Product HI LO Xor).

Typedef Documentation

◆ Philox2x32

Philox2x32 is equivalent to Philox2x32_R<10>. With 10 rounds, Philox2x32 has a considerable safety margin over the minimum number of rounds with no known statistical flaws, but still has excellent performance.

◆ Philox2x64

Philox2x64 is equivalent to Philox2x64_R<10>. With 10 rounds, Philox2x64 has a considerable safety margin over the minimum number of rounds with no known statistical flaws, but still has excellent performance.

◆ Philox4x32

Philox4x32 is equivalent to Philox4x32_R<10>. With 10 rounds, Philox4x32 has a considerable safety margin over the minimum number of rounds with no known statistical flaws, but still has excellent performance.

◆ Philox4x64

Philox4x64 is equivalent to Philox4x64_R<10>. With 10 rounds, Philox4x64 has a considerable safety margin over the minimum number of rounds with no known statistical flaws, but still has excellent performance.

Enumeration Type Documentation

◆ r123_enum_philox2x64

Enumerator
philox2x64_rounds 

◆ r123_enum_philox4x32

Enumerator
philox4x32_rounds 

◆ r123_enum_philox4x64

Enumerator
philox4x64_rounds 

Function Documentation

◆ _philox4xWround_tpl()

uint32_t _philox4xWround_tpl ( 32  ,
uint32_t   
)