Public Types | Public Member Functions | Static Public Attributes

r123::Philox4x32_R< ROUNDS > Class Template Reference
[Philox Classes and Typedefs]

#include <Random123/philox.h>

List of all members.

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 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

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

Member Function Documentation

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

Member Data Documentation

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

The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines