Random123
Public Types | Public Member Functions | Static Public Attributes | List of all members
r123::Philox4x32_R< ROUNDS > Class Template Reference

#include <Random123/philox.h>

Public Types

typedef r123array4x32 ctr_type
 
typedef r123array2x32 key_type
 
typedef r123array2x32 ukey_type
 

Public Member Functions

ctr_type operator() (ctr_type ctr, key_type key) const
 

Static Public Attributes

static const R123_METAL_CONSTANT_ADDRESS_SPACE unsigned int rounds =ROUNDS
 

Detailed Description

template<unsigned int ROUNDS>
class r123::Philox4x32_R< ROUNDS >

exports the member functions, typedefs and operator overloads required by a CBRNG class.

The template argument, ROUNDS, is the number of times the Philox round function will be applied.

In November 2011, the authors recorded some suspicious p-values (approximately 1.e-7) from some very long (longer than the default BigCrush length) SimpPoker tests. Despite the fact that even longer tests reverted to "passing" p-values, a cloud remains over Philox4x32 with 7 rounds. The authors know of no statistical flaws with ROUNDS=8 or more for Philox4x32.

Member Typedef Documentation

◆ ctr_type

template<unsigned int ROUNDS>
typedef r123array4x32 r123::Philox4x32_R< ROUNDS >::ctr_type

◆ key_type

template<unsigned int ROUNDS>
typedef r123array2x32 r123::Philox4x32_R< ROUNDS >::key_type

◆ ukey_type

template<unsigned int ROUNDS>
typedef r123array2x32 r123::Philox4x32_R< ROUNDS >::ukey_type

Member Function Documentation

◆ operator()()

template<unsigned int ROUNDS>
ctr_type r123::Philox4x32_R< ROUNDS >::operator() ( ctr_type  ctr,
key_type  key 
) const
inline

Member Data Documentation

◆ rounds

template<unsigned int ROUNDS>
const R123_METAL_CONSTANT_ADDRESS_SPACE unsigned int r123::Philox4x32_R< ROUNDS >::rounds =ROUNDS
static

The documentation for this class was generated from the following file: