Skip to content

1.08

Choose a tag to compare

@alkino alkino released this 12 Feb 20:19
  • Fix a bug in threefry2xW whereby rotation constants were chosen incorrectly after the 20th round. There is no reason to suspect that the incorrectly chosen rotation constants were "bad" or "deficient" so there is no reason to suspect the quality of the random numbers produced. Using threefry with R>20 would have been rare in any case. The fix simply makes the implementation correspond correctly to the description in the paper.
  • Add examples/uniform.hpp, examples/boxmuller.hpp and examples/ua.hpp, containing example code to generate uniformly and gaussian distributed floats and doubles. Also add unit tests (ut_uniform.cpp, ut_uniform_IEEEkat.cpp) and timing harnesses (time_boxmuller.cpp and time_boxmuller_cuda.cpp).
  • Demote u01.h from the include/Random123/ to examples/ufixed01.h, but examples/uniform.hpp is preferred.
  • Add kat_vectors for threefry2xW_32 and threefry4xW_72, i.e., the largest number of supported rounds in each case.
  • Mention ukey on the first page of docs.
  • Fix typos in documentation and comments and in gccfeatures.h.
  • Don't #include <x86intrin.h> unless (defined(x86_64)||defined(i386)).
  • Use clang rather than llvm in the predicate that decides whether to include clangfeatures.h.
  • Add support for Portland Group compilers.
  • Add support for gcc and IBM XL compilers on powerpc64, e.g. BlueGene/Q.
  • Refuse to build with CUDA before 4.1 to avoid namespace bug.