1.06 - Apr 5, 2012
  • Added a known answer test for the u01 functions (kat_u01).
  • Defend headers against possible max and min macros in "system" header files.

1.05 - Mar 20, 2012
  • MicroURNG and GSL_MICROURNG no longer give the programmer control over the number bits in the internal counter via a template or macro argument. Such flexibility is too easy to misuse, with the possible consequence of repeating random values. Now, all MicroURNGs have a period in excess of 2^32, and MicroURNG<CBRNG>(c1, k1) and MicroURNG<CBRNG>(c2, k2) "collide" if and only if c1==c2 and k1==k2.
  • Added <Random123/u01.h> header file with static functions for conversion of integers to uniformly distributed floating point values.
  • Make operator<<(ostream&, const r123array&) and operator>>(ostream&, r123array&) inline. This should work around ODR violations when the header files are included in more than one file in a project.
  • Recognize that icpc has an _mm_set_epi64x intrinsic as of version 12.1.
  • The gsl adapters always return 32-bits of random data, regardless of the width of counter type.
  • Works around lack of anonymous enums in Intel OpenCL 1.5
  • gencl.sh works on MacOS and systems with "classic" BSD indent.
  • Tests run on AMD Radeon 7970 (Tahiti).

1.04 - Dec 5, 2011
  • new kat_vectors - there are now three tests for each tested generator: gen(ctr=0, key=0), gen(ctr=fff, key=0xfff), and gen(ctr=digits-of-pi, key=more-digits-of-pi). There are fewer tests overall, but they provide better coverage, especially of non-zero keys.

1.03 - Nov 30, 2011
  • overhaul known answer tests (kat)
    • common source for serial C, C++, cuda and opencl replaces katc and katpp
    • add missing kat_vectors for threefry2x32
  • make keyinit functions device/kernel functions in CUDA/OpenCL
  • replace r123array::assemble methods with r123array::seed(SeedSeq) template
  • cleanup of signatures of Engine and MicroURNG methods:
    • Engine(ukey_type&) and MicroURNG(ctr_type, ukey_type) constructors.
    • Engine(SeedSeq&) takes a reference argument, and, when C++0x <type_traits> are available the SeedSeq templates don't participate in "surprising" overloads.

1.02 - Nov 21, 2011
  • BUG FIXED in threefry2xW_R(R<20, ...). Earlier implementations of threefry2x32_R and threfry2x64_R produced incorrect results when called with the number of rounds less than 20. The bug caused extra work to be done in every call, possibly resulting in more mixing than the correct implementation delivers. Both old (buggy, more mixing) and new (bug-fixed, less mixing) implementations have been rechecked and are fully "Crush-Resistant".
  • worked around problems with argument marshalling in version 2.4 of the AMDAPPSDK OpenCL implementation

1.01 - Nov 11, 2011
  • allow the user to define __STDC_CONSTANT_MACROS
  • allow r123arrayNxW::incr(larger_than_largest_value_type)

1.00 - Sep 26, 2011
Initial release
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines