[med-svn] [librandom123] 01/02: New upstream version 1.09

Andreas Tille tille at debian.org
Tue Mar 14 08:14:33 UTC 2017


This is an automated email from the git hooks/post-receive script.

tille pushed a commit to branch master
in repository librandom123.

commit 64d0d7e169a7982638e29b34819605aa27c6a16a
Author: Andreas Tille <tille at debian.org>
Date:   Tue Mar 14 09:13:36 2017 +0100

    New upstream version 1.09
---
 LICENSE                                            |   31 +
 docs/Doxyfile                                      | 1648 ++++++
 docs/cbrng.dox                                     |  198 +
 docs/header.html                                   |   12 +
 docs/html/CBRNG.html                               |  151 +
 docs/html/Engine_8hpp.html                         |   95 +
 docs/html/Engine_8hpp_source.html                  |  305 ++
 docs/html/ExamplesREADME.html                      |  167 +
 docs/html/LICENSE.html                             |   71 +
 docs/html/MicroURNG_8hpp.html                      |   90 +
 docs/html/MicroURNG_8hpp_source.html               |  182 +
 docs/html/README.html                              |   77 +
 docs/html/ReinterpretCtr_8hpp.html                 |   90 +
 docs/html/ReinterpretCtr_8hpp_source.html          |  149 +
 docs/html/Release_01Notes.html                     |  212 +
 docs/html/aes_8h.html                              |  135 +
 docs/html/aes_8h_source.html                       |  364 ++
 docs/html/annotated.html                           |  107 +
 docs/html/array_8h.html                            |  647 +++
 docs/html/array_8h_source.html                     |  376 ++
 docs/html/ars_8h.html                              |  137 +
 docs/html/ars_8h_source.html                       |  228 +
 docs/html/bc_s.png                                 |  Bin 0 -> 677 bytes
 docs/html/cbrng_8dox.html                          |   77 +
 docs/html/classes.html                             |   86 +
 docs/html/classr123_1_1AESNI1xm128i-members.html   |   83 +
 .../html/classr123_1_1AESNI1xm128i__R-members.html |   83 +
 docs/html/classr123_1_1AESNI4x32__R-members.html   |   83 +
 docs/html/classr123_1_1ARS1xm128i__R-members.html  |   83 +
 docs/html/classr123_1_1ARS4x32__R-members.html     |   83 +
 docs/html/classr123_1_1MicroURNG-members.html      |   93 +
 docs/html/classr123_1_1MicroURNG.html              |  436 ++
 docs/html/classr123_1_1Philox2x32__R-members.html  |   83 +
 docs/html/classr123_1_1Philox2x64__R-members.html  |   83 +
 docs/html/classr123_1_1Philox4x32__R-members.html  |   83 +
 docs/html/classr123_1_1Philox4x64__R-members.html  |   83 +
 .../html/classr123_1_1Threefry2x32__R-members.html |   83 +
 .../html/classr123_1_1Threefry2x64__R-members.html |   83 +
 .../html/classr123_1_1Threefry4x32__R-members.html |   83 +
 .../html/classr123_1_1Threefry4x64__R-members.html |   83 +
 docs/html/closed.png                               |  Bin 0 -> 126 bytes
 docs/html/compilerfeatures_8h.html                 |   79 +
 docs/html/compilerfeatures_8h_source.html          |  236 +
 docs/html/doxygen.css                              |  656 +++
 docs/html/doxygen.png                              |  Bin 0 -> 3942 bytes
 docs/html/files.html                               |   91 +
 docs/html/functions.html                           |  116 +
 docs/html/functions_0x61.html                      |  122 +
 docs/html/functions_0x62.html                      |  150 +
 docs/html/functions_0x63.html                      |  223 +
 docs/html/functions_0x64.html                      |  140 +
 docs/html/functions_0x65.html                      |  141 +
 docs/html/functions_0x66.html                      |  136 +
 docs/html/functions_0x67.html                      |  114 +
 docs/html/functions_0x69.html                      |  141 +
 docs/html/functions_0x6b.html                      |  131 +
 docs/html/functions_0x6d.html                      |  125 +
 docs/html/functions_0x6f.html                      |  185 +
 docs/html/functions_0x70.html                      |  119 +
 docs/html/functions_0x72.html                      |  190 +
 docs/html/functions_0x73.html                      |  169 +
 docs/html/functions_0x75.html                      |  128 +
 docs/html/functions_0x76.html                      |  131 +
 docs/html/functions_eval.html                      |   96 +
 docs/html/functions_func.html                      |  117 +
 docs/html/functions_func_0x62.html                 |  139 +
 docs/html/functions_func_0x63.html                 |  150 +
 docs/html/functions_func_0x64.html                 |  119 +
 docs/html/functions_func_0x65.html                 |  135 +
 docs/html/functions_func_0x66.html                 |  131 +
 docs/html/functions_func_0x67.html                 |  109 +
 docs/html/functions_func_0x69.html                 |  125 +
 docs/html/functions_func_0x6d.html                 |  117 +
 docs/html/functions_func_0x6f.html                 |  172 +
 docs/html/functions_func_0x72.html                 |  149 +
 docs/html/functions_func_0x73.html                 |  142 +
 docs/html/functions_rela.html                      |   97 +
 docs/html/functions_type.html                      |  328 ++
 docs/html/functions_vars.html                      |  190 +
 docs/html/globals.html                             |  464 ++
 docs/html/globals_defs.html                        |  131 +
 docs/html/globals_enum.html                        |  119 +
 docs/html/globals_eval.html                        |  119 +
 docs/html/globals_func.html                        |  244 +
 docs/html/globals_type.html                        |  205 +
 docs/html/group__AESNI.html                        |  647 +++
 docs/html/group__PhiloxNxW.html                    |  238 +
 docs/html/group__ThreefryNxW.html                  |  239 +
 docs/html/group__arrayNxW.html                     |   88 +
 docs/html/gsl__cbrng_8h.html                       |  126 +
 docs/html/gsl__cbrng_8h_source.html                |  174 +
 docs/html/gsl__microrng_8h.html                    |  137 +
 docs/html/gsl__microrng_8h_source.html             |  171 +
 docs/html/hierarchy.html                           |  111 +
 docs/html/index.html                               |  253 +
 docs/html/installdox                               |  117 +
 docs/html/main_8dox.html                           |   77 +
 docs/html/modules.html                             |   75 +
 docs/html/namespacemembers.html                    |  136 +
 docs/html/namespacemembers_type.html               |  136 +
 docs/html/namespacer123.html                       |  275 +
 docs/html/namespaces.html                          |   78 +
 docs/html/nav_f.png                                |  Bin 0 -> 159 bytes
 docs/html/nav_h.png                                |  Bin 0 -> 97 bytes
 docs/html/open.png                                 |  Bin 0 -> 118 bytes
 docs/html/pages.html                               |   81 +
 docs/html/philox_8h.html                           |  617 +++
 docs/html/philox_8h_source.html                    |  460 ++
 docs/html/porting.html                             |  165 +
 docs/html/releasenotes_8dox.html                   |   77 +
 docs/html/search/all_5f.html                       |   44 +
 docs/html/search/all_61.html                       |  344 ++
 docs/html/search/all_62.html                       |   88 +
 docs/html/search/all_63.html                       |  201 +
 docs/html/search/all_64.html                       |   67 +
 docs/html/search/all_65.html                       |   98 +
 docs/html/search/all_66.html                       |   67 +
 docs/html/search/all_67.html                       |   54 +
 docs/html/search/all_68.html                       |   26 +
 docs/html/search/all_69.html                       |   68 +
 docs/html/search/all_6b.html                       |   54 +
 docs/html/search/all_6c.html                       |   25 +
 docs/html/search/all_6d.html                       |   67 +
 docs/html/search/all_6f.html                       |  204 +
 docs/html/search/all_70.html                       |  245 +
 docs/html/search/all_72.html                       |  301 ++
 docs/html/search/all_73.html                       |  116 +
 docs/html/search/all_74.html                       |  233 +
 docs/html/search/all_75.html                       |   48 +
 docs/html/search/all_76.html                       |   53 +
 docs/html/search/classes_61.html                   |   61 +
 docs/html/search/classes_65.html                   |   26 +
 docs/html/search/classes_6d.html                   |   26 +
 docs/html/search/classes_70.html                   |   44 +
 docs/html/search/classes_72.html                   |   76 +
 docs/html/search/classes_74.html                   |   44 +
 docs/html/search/close.png                         |  Bin 0 -> 273 bytes
 docs/html/search/defines_61.html                   |   50 +
 docs/html/search/defines_67.html                   |   32 +
 docs/html/search/defines_70.html                   |   44 +
 docs/html/search/defines_72.html                   |   26 +
 docs/html/search/defines_74.html                   |   44 +
 docs/html/search/enums_72.html                     |   92 +
 docs/html/search/enumvalues_61.html                |   44 +
 docs/html/search/enumvalues_70.html                |   44 +
 docs/html/search/enumvalues_73.html                |   36 +
 docs/html/search/enumvalues_74.html                |   44 +
 docs/html/search/files_61.html                     |   35 +
 docs/html/search/files_63.html                     |   30 +
 docs/html/search/files_65.html                     |   25 +
 docs/html/search/files_67.html                     |   30 +
 docs/html/search/files_6c.html                     |   25 +
 docs/html/search/files_6d.html                     |   30 +
 docs/html/search/files_70.html                     |   25 +
 docs/html/search/files_72.html                     |   35 +
 docs/html/search/files_73.html                     |   25 +
 docs/html/search/files_74.html                     |   25 +
 docs/html/search/functions_5f.html                 |   26 +
 docs/html/search/functions_61.html                 |  115 +
 docs/html/search/functions_62.html                 |   70 +
 docs/html/search/functions_63.html                 |   90 +
 docs/html/search/functions_64.html                 |   51 +
 docs/html/search/functions_65.html                 |   75 +
 docs/html/search/functions_66.html                 |   67 +
 docs/html/search/functions_67.html                 |   32 +
 docs/html/search/functions_68.html                 |   26 +
 docs/html/search/functions_69.html                 |   52 +
 docs/html/search/functions_6d.html                 |   45 +
 docs/html/search/functions_6f.html                 |  200 +
 docs/html/search/functions_70.html                 |   68 +
 docs/html/search/functions_72.html                 |   87 +
 docs/html/search/functions_73.html                 |   79 +
 docs/html/search/functions_74.html                 |   92 +
 docs/html/search/mag_sel.png                       |  Bin 0 -> 563 bytes
 docs/html/search/namespaces_72.html                |   25 +
 docs/html/search/nomatches.html                    |   12 +
 docs/html/search/related_6f.html                   |   44 +
 docs/html/search/search.css                        |  240 +
 docs/html/search/search.js                         |  746 +++
 docs/html/search/search_l.png                      |  Bin 0 -> 604 bytes
 docs/html/search/search_m.png                      |  Bin 0 -> 158 bytes
 docs/html/search/search_r.png                      |  Bin 0 -> 612 bytes
 docs/html/search/typedefs_61.html                  |  152 +
 docs/html/search/typedefs_62.html                  |   26 +
 docs/html/search/typedefs_63.html                  |  115 +
 docs/html/search/typedefs_64.html                  |   36 +
 docs/html/search/typedefs_65.html                  |   26 +
 docs/html/search/typedefs_69.html                  |   36 +
 docs/html/search/typedefs_6b.html                  |   42 +
 docs/html/search/typedefs_70.html                  |  132 +
 docs/html/search/typedefs_72.html                  |   61 +
 docs/html/search/typedefs_73.html                  |   36 +
 docs/html/search/typedefs_74.html                  |  116 +
 docs/html/search/typedefs_75.html                  |   42 +
 docs/html/search/typedefs_76.html                  |   36 +
 docs/html/search/variables_5f.html                 |   38 +
 docs/html/search/variables_62.html                 |   32 +
 docs/html/search/variables_63.html                 |   26 +
 docs/html/search/variables_65.html                 |   26 +
 docs/html/search/variables_6b.html                 |   32 +
 docs/html/search/variables_6d.html                 |   26 +
 docs/html/search/variables_72.html                 |   39 +
 docs/html/search/variables_75.html                 |   26 +
 docs/html/search/variables_76.html                 |   37 +
 docs/html/sse_8h.html                              |  527 ++
 docs/html/sse_8h_source.html                       |  355 ++
 docs/html/structaesni1xm128i__key__t-members.html  |   84 +
 docs/html/structaesni1xm128i__key__t.html          |  208 +
 docs/html/structr123_1_1AESNI1xm128i.html          |  207 +
 docs/html/structr123_1_1AESNI1xm128i.png           |  Bin 0 -> 645 bytes
 docs/html/structr123_1_1AESNI1xm128i__R.html       |  109 +
 docs/html/structr123_1_1AESNI1xm128i__R.png        |  Bin 0 -> 641 bytes
 docs/html/structr123_1_1AESNI4x32-members.html     |   83 +
 docs/html/structr123_1_1AESNI4x32.html             |  198 +
 docs/html/structr123_1_1AESNI4x32.png              |  Bin 0 -> 631 bytes
 docs/html/structr123_1_1AESNI4x32__R.html          |  104 +
 docs/html/structr123_1_1AESNI4x32__R.png           |  Bin 0 -> 625 bytes
 docs/html/structr123_1_1ARS1xm128i__R.html         |  212 +
 docs/html/structr123_1_1ARS4x32__R.html            |  205 +
 docs/html/structr123_1_1Engine-members.html        |  117 +
 docs/html/structr123_1_1Engine.html                |  922 ++++
 docs/html/structr123_1_1Philox2x32__R.html         |  209 +
 docs/html/structr123_1_1Philox2x64__R.html         |  209 +
 docs/html/structr123_1_1Philox4x32__R.html         |  209 +
 docs/html/structr123_1_1Philox4x64__R.html         |  209 +
 .../html/structr123_1_1ReinterpretCtr-members.html |   83 +
 docs/html/structr123_1_1ReinterpretCtr.html        |  203 +
 docs/html/structr123_1_1Threefry2x32__R.html       |  209 +
 docs/html/structr123_1_1Threefry2x64__R.html       |  209 +
 docs/html/structr123_1_1Threefry4x32__R.html       |  209 +
 docs/html/structr123_1_1Threefry4x64__R.html       |  209 +
 docs/html/structr123array16x8-members.html         |  123 +
 docs/html/structr123array16x8.html                 |  892 ++++
 docs/html/structr123array1x32-members.html         |  123 +
 docs/html/structr123array1x32.html                 |  892 ++++
 docs/html/structr123array1x64-members.html         |  123 +
 docs/html/structr123array1x64.html                 |  892 ++++
 docs/html/structr123array1xm128i-members.html      |  123 +
 docs/html/structr123array1xm128i.html              |  892 ++++
 docs/html/structr123array2x32-members.html         |  123 +
 docs/html/structr123array2x32.html                 |  892 ++++
 docs/html/structr123array2x64-members.html         |  123 +
 docs/html/structr123array2x64.html                 |  892 ++++
 docs/html/structr123array4x32-members.html         |  123 +
 docs/html/structr123array4x32.html                 |  892 ++++
 docs/html/structr123array4x64-members.html         |  123 +
 docs/html/structr123array4x64.html                 |  892 ++++
 docs/html/structr123array8x32-members.html         |  123 +
 docs/html/structr123array8x32.html                 |  892 ++++
 docs/html/structr123m128i-members.html             |   83 +
 docs/html/structr123m128i.html                     |  183 +
 docs/html/tab_a.png                                |  Bin 0 -> 140 bytes
 docs/html/tab_b.png                                |  Bin 0 -> 178 bytes
 docs/html/tab_h.png                                |  Bin 0 -> 192 bytes
 docs/html/tab_s.png                                |  Bin 0 -> 189 bytes
 docs/html/tabs.css                                 |   59 +
 docs/html/threefry_8h.html                         |  728 +++
 docs/html/threefry_8h_source.html                  |  839 +++
 docs/main.dox                                      |  357 ++
 docs/releasenotes.dox                              |  134 +
 examples/BUILD.LOG                                 |   35 +
 examples/BUILDVC.BAT                               |   50 +
 examples/BUILDVC11.BAT                             |    6 +
 examples/GNUmakefile                               |  133 +
 examples/README                                    |  196 +
 examples/boxmuller.hpp                             |  140 +
 examples/gencl.sh                                  |   50 +
 examples/kat.h                                     |   67 +
 examples/kat_c.c                                   |   41 +
 examples/kat_cpp.cpp                               |  209 +
 examples/kat_cuda.cu                               |   63 +
 examples/kat_dev_execute.h                         |   45 +
 examples/kat_main.h                                |  292 ++
 examples/kat_opencl.c                              |  101 +
 examples/kat_opencl_kernel.ocl                     |   38 +
 examples/kat_vectors                               |   83 +
 examples/old_kat_vectors                           | 5339 ++++++++++++++++++++
 examples/pi_aes.cpp                                |   83 +
 examples/pi_capi.c                                 |   78 +
 examples/pi_check.h                                |   67 +
 examples/pi_cppapi.cpp                             |   78 +
 examples/pi_cuda.cu                                |  119 +
 examples/pi_cudapp.cu                              |  125 +
 examples/pi_gsl.c                                  |   67 +
 examples/pi_microurng.cpp                          |  108 +
 examples/pi_opencl.c                               |   92 +
 examples/pi_opencl_kernel.ocl                      |   71 +
 examples/pi_uniform.cpp                            |  136 +
 examples/rngNxW.h                                  |   46 +
 examples/simple.c                                  |   52 +
 examples/simplepp.cpp                              |   47 +
 examples/time_boxmuller.cpp                        |  132 +
 examples/time_boxmuller_cuda.cu                    |  181 +
 examples/time_cuda.cu                              |  175 +
 examples/time_initkeyctr.h                         |   99 +
 examples/time_misc.h                               |   53 +
 examples/time_opencl.c                             |  199 +
 examples/time_opencl_kernel.ocl                    |   35 +
 examples/time_random123.h                          |  135 +
 examples/time_serial.c                             |  154 +
 examples/time_thread.c                             |  240 +
 examples/timers.cpp                                |  238 +
 examples/u01fixedpt.h                              |  201 +
 examples/ua.hpp                                    |  101 +
 examples/uniform.hpp                               |  210 +
 examples/ut_Engine.cpp                             |  240 +
 examples/ut_M128.cpp                               |  149 +
 examples/ut_ReinterpretCtr.cpp                     |   47 +
 examples/ut_aes.cpp                                |  106 +
 examples/ut_ars.c                                  |   82 +
 examples/ut_carray.cpp                             |  317 ++
 examples/ut_features.cpp                           |  458 ++
 examples/ut_gsl.c                                  |  112 +
 examples/ut_ua.cpp                                 |   63 +
 examples/ut_uniform.cpp                            |  167 +
 examples/ut_uniform_IEEEkat.cpp                    |  293 ++
 examples/ut_uniform_IEEEkatvectors.hpp             | 2605 ++++++++++
 examples/ut_uniform_kat_vectors.dat                | 2604 ++++++++++
 examples/ut_uniform_reference.hpp                  |   19 +
 examples/util.h                                    |  291 ++
 examples/util_cpu.h                                |  198 +
 examples/util_cuda.h                               |  116 +
 examples/util_demangle.hpp                         |   75 +
 examples/util_expandtpl.h                          |   77 +
 examples/util_m128.h                               |   87 +
 examples/util_opencl.h                             |  353 ++
 examples/util_print.h                              |   58 +
 include/Random123/MicroURNG.hpp                    |  146 +
 include/Random123/ReinterpretCtr.hpp               |   88 +
 include/Random123/aes.h                            |  344 ++
 include/Random123/array.h                          |  326 ++
 include/Random123/ars.h                            |  204 +
 include/Random123/conventional/Engine.hpp          |  250 +
 include/Random123/conventional/gsl_cbrng.h         |  128 +
 include/Random123/features/clangfeatures.h         |   89 +
 include/Random123/features/compilerfeatures.h      |  320 ++
 include/Random123/features/gccfeatures.h           |  247 +
 include/Random123/features/iccfeatures.h           |  208 +
 include/Random123/features/msvcfeatures.h          |  200 +
 include/Random123/features/nvccfeatures.h          |  125 +
 include/Random123/features/open64features.h        |   50 +
 include/Random123/features/openclfeatures.h        |   89 +
 include/Random123/features/pgccfeatures.h          |  194 +
 include/Random123/features/sse.h                   |  280 +
 include/Random123/features/sunprofeatures.h        |  172 +
 include/Random123/features/xlcfeatures.h           |  202 +
 include/Random123/gsl_microrng.h                   |  136 +
 include/Random123/philox.h                         |  486 ++
 include/Random123/threefry.h                       |  864 ++++
 349 files changed, 66325 insertions(+)

diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..c6094ac
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,31 @@
+/** @page LICENSE
+Copyright 2010-2012, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
diff --git a/docs/Doxyfile b/docs/Doxyfile
new file mode 100644
index 0000000..89f93a8
--- /dev/null
+++ b/docs/Doxyfile
@@ -0,0 +1,1648 @@
+# Doxyfile 1.7.1
+
+# This file describes the settings to be used by the documentation system
+# doxygen (www.doxygen.org) for a project
+#
+# All text after a hash (#) is considered a comment and will be ignored
+# The format is:
+#       TAG = value [value, ...]
+# For lists items can also be appended using:
+#       TAG += value [value, ...]
+# Values that contain spaces should be placed between quotes (" ")
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+
+# This tag specifies the encoding used for all characters in the config file
+# that follow. The default is UTF-8 which is also the encoding used for all
+# text before the first occurrence of this tag. Doxygen uses libiconv (or the
+# iconv built into libc) for the transcoding. See
+# http://www.gnu.org/software/libiconv for the list of possible encodings.
+
+DOXYFILE_ENCODING      = UTF-8
+
+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
+# by quotes) that should identify the project.
+
+PROJECT_NAME           = Random123
+
+# The PROJECT_NUMBER tag can be used to enter a project or revision number.
+# This could be handy for archiving the generated documentation or
+# if some version control system is used.
+
+PROJECT_NUMBER         =
+
+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
+# base path where the generated documentation will be put.
+# If a relative path is entered, it will be relative to the location
+# where doxygen was started. If left blank the current directory will be used.
+
+OUTPUT_DIRECTORY       =
+
+# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
+# 4096 sub-directories (in 2 levels) under the output directory of each output
+# format and will distribute the generated files over these directories.
+# Enabling this option can be useful when feeding doxygen a huge amount of
+# source files, where putting all generated files in the same directory would
+# otherwise cause performance problems for the file system.
+
+CREATE_SUBDIRS         = NO
+
+# The OUTPUT_LANGUAGE tag is used to specify the language in which all
+# documentation generated by doxygen is written. Doxygen will use this
+# information to generate all constant output in the proper language.
+# The default language is English, other supported languages are:
+# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional,
+# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German,
+# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English
+# messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian,
+# Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrilic, Slovak,
+# Slovene, Spanish, Swedish, Ukrainian, and Vietnamese.
+
+OUTPUT_LANGUAGE        = English
+
+# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
+# include brief member descriptions after the members that are listed in
+# the file and class documentation (similar to JavaDoc).
+# Set to NO to disable this.
+
+BRIEF_MEMBER_DESC      = YES
+
+# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
+# the brief description of a member or function before the detailed description.
+# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
+# brief descriptions will be completely suppressed.
+
+REPEAT_BRIEF           = YES
+
+# This tag implements a quasi-intelligent brief description abbreviator
+# that is used to form the text in various listings. Each string
+# in this list, if found as the leading text of the brief description, will be
+# stripped from the text and the result after processing the whole list, is
+# used as the annotated text. Otherwise, the brief description is used as-is.
+# If left blank, the following values are used ("$name" is automatically
+# replaced with the name of the entity): "The $name class" "The $name widget"
+# "The $name file" "is" "provides" "specifies" "contains"
+# "represents" "a" "an" "the"
+
+ABBREVIATE_BRIEF       =
+
+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
+# Doxygen will generate a detailed section even if there is only a brief
+# description.
+
+ALWAYS_DETAILED_SEC    = NO
+
+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
+# inherited members of a class in the documentation of that class as if those
+# members were ordinary class members. Constructors, destructors and assignment
+# operators of the base classes will not be shown.
+
+INLINE_INHERITED_MEMB  = NO
+
+# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
+# path before files name in the file list and in the header files. If set
+# to NO the shortest path that makes the file name unique will be used.
+
+FULL_PATH_NAMES        = YES
+
+# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
+# can be used to strip a user-defined part of the path. Stripping is
+# only done if one of the specified strings matches the left-hand part of
+# the path. The tag can be used to show relative paths in the file list.
+# If left blank the directory from which doxygen is run is used as the
+# path to strip.
+
+STRIP_FROM_PATH        = ../include ..
+
+# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
+# the path mentioned in the documentation of a class, which tells
+# the reader which header file to include in order to use a class.
+# If left blank only the name of the header file containing the class
+# definition is used. Otherwise one should specify the include paths that
+# are normally passed to the compiler using the -I flag.
+
+STRIP_FROM_INC_PATH    = ../include/
+
+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
+# (but less readable) file names. This can be useful is your file systems
+# doesn't support long names like on DOS, Mac, or CD-ROM.
+
+SHORT_NAMES            = NO
+
+# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
+# will interpret the first line (until the first dot) of a JavaDoc-style
+# comment as the brief description. If set to NO, the JavaDoc
+# comments will behave just like regular Qt-style comments
+# (thus requiring an explicit @brief command for a brief description.)
+
+JAVADOC_AUTOBRIEF      = NO
+
+# If the QT_AUTOBRIEF tag is set to YES then Doxygen will
+# interpret the first line (until the first dot) of a Qt-style
+# comment as the brief description. If set to NO, the comments
+# will behave just like regular Qt-style comments (thus requiring
+# an explicit \brief command for a brief description.)
+
+QT_AUTOBRIEF           = NO
+
+# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen
+# treat a multi-line C++ special comment block (i.e. a block of //! or ///
+# comments) as a brief description. This used to be the default behaviour.
+# The new default is to treat a multi-line C++ comment block as a detailed
+# description. Set this tag to YES if you prefer the old behaviour instead.
+
+MULTILINE_CPP_IS_BRIEF = NO
+
+# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
+# member inherits the documentation from any documented member that it
+# re-implements.
+
+INHERIT_DOCS           = YES
+
+# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce
+# a new page for each member. If set to NO, the documentation of a member will
+# be part of the file/class/namespace that contains it.
+
+SEPARATE_MEMBER_PAGES  = NO
+
+# The TAB_SIZE tag can be used to set the number of spaces in a tab.
+# Doxygen uses this value to replace tabs by spaces in code fragments.
+
+TAB_SIZE               = 8
+
+# This tag can be used to specify a number of aliases that acts
+# as commands in the documentation. An alias has the form "name=value".
+# For example adding "sideeffect=\par Side Effects:\n" will allow you to
+# put the command \sideeffect (or @sideeffect) in the documentation, which
+# will result in a user-defined paragraph with heading "Side Effects:".
+# You can put \n's in the value part of an alias to insert newlines.
+
+ALIASES                =
+
+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C
+# sources only. Doxygen will then generate output that is more tailored for C.
+# For instance, some of the names that are used will be different. The list
+# of all members will be omitted, etc.
+
+OPTIMIZE_OUTPUT_FOR_C  = NO
+
+# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java
+# sources only. Doxygen will then generate output that is more tailored for
+# Java. For instance, namespaces will be presented as packages, qualified
+# scopes will look different, etc.
+
+OPTIMIZE_OUTPUT_JAVA   = NO
+
+# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
+# sources only. Doxygen will then generate output that is more tailored for
+# Fortran.
+
+OPTIMIZE_FOR_FORTRAN   = NO
+
+# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
+# sources. Doxygen will then generate output that is tailored for
+# VHDL.
+
+OPTIMIZE_OUTPUT_VHDL   = NO
+
+# Doxygen selects the parser to use depending on the extension of the files it
+# parses. With this tag you can assign which parser to use for a given extension.
+# Doxygen has a built-in mapping, but you can override or extend it using this
+# tag. The format is ext=language, where ext is a file extension, and language
+# is one of the parsers supported by doxygen: IDL, Java, Javascript, CSharp, C,
+# C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make
+# doxygen treat .inc files as Fortran files (default is PHP), and .f files as C
+# (default is Fortran), use: inc=Fortran f=C. Note that for custom extensions
+# you also need to set FILE_PATTERNS otherwise the files are not read by doxygen.
+
+EXTENSION_MAPPING      = .h=C++
+
+# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
+# to include (a tag file for) the STL sources as input, then you should
+# set this tag to YES in order to let doxygen match functions declarations and
+# definitions whose arguments contain STL classes (e.g. func(std::string); v.s.
+# func(std::string) {}). This also make the inheritance and collaboration
+# diagrams that involve STL classes more complete and accurate.
+
+BUILTIN_STL_SUPPORT    = NO
+
+# If you use Microsoft's C++/CLI language, you should set this option to YES to
+# enable parsing support.
+
+CPP_CLI_SUPPORT        = NO
+
+# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only.
+# Doxygen will parse them like normal C++ but will assume all classes use public
+# instead of private inheritance when no explicit protection keyword is present.
+
+SIP_SUPPORT            = NO
+
+# For Microsoft's IDL there are propget and propput attributes to indicate getter
+# and setter methods for a property. Setting this option to YES (the default)
+# will make doxygen to replace the get and set methods by a property in the
+# documentation. This will only work if the methods are indeed getting or
+# setting a simple type. If this is not the case, or you want to show the
+# methods anyway, you should set this option to NO.
+
+IDL_PROPERTY_SUPPORT   = YES
+
+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
+# tag is set to YES, then doxygen will reuse the documentation of the first
+# member in the group (if any) for the other members of the group. By default
+# all members of a group must be documented explicitly.
+
+DISTRIBUTE_GROUP_DOC   = NO
+
+# Set the SUBGROUPING tag to YES (the default) to allow class member groups of
+# the same type (for instance a group of public functions) to be put as a
+# subgroup of that type (e.g. under the Public Functions section). Set it to
+# NO to prevent subgrouping. Alternatively, this can be done per class using
+# the \nosubgrouping command.
+
+SUBGROUPING            = YES
+
+# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum
+# is documented as struct, union, or enum with the name of the typedef. So
+# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
+# with name TypeT. When disabled the typedef will appear as a member of a file,
+# namespace, or class. And the struct will be named TypeS. This can typically
+# be useful for C code in case the coding convention dictates that all compound
+# types are typedef'ed and only the typedef is referenced, never the tag name.
+
+TYPEDEF_HIDES_STRUCT   = NO
+
+# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to
+# determine which symbols to keep in memory and which to flush to disk.
+# When the cache is full, less often used symbols will be written to disk.
+# For small to medium size projects (<1000 input files) the default value is
+# probably good enough. For larger projects a too small cache size can cause
+# doxygen to be busy swapping symbols to and from disk most of the time
+# causing a significant performance penality.
+# If the system has enough physical memory increasing the cache will improve the
+# performance by keeping more symbols in memory. Note that the value works on
+# a logarithmic scale so increasing the size by one will rougly double the
+# memory usage. The cache size is given by this formula:
+# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0,
+# corresponding to a cache size of 2^16 = 65536 symbols
+
+SYMBOL_CACHE_SIZE      = 0
+
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+
+# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
+# documentation are documented, even if no documentation was available.
+# Private class members and static file members will be hidden unless
+# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
+
+EXTRACT_ALL            = YES
+
+# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
+# will be included in the documentation.
+
+EXTRACT_PRIVATE        = NO
+
+# If the EXTRACT_STATIC tag is set to YES all static members of a file
+# will be included in the documentation.
+
+EXTRACT_STATIC         = YES
+
+# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
+# defined locally in source files will be included in the documentation.
+# If set to NO only classes defined in header files are included.
+
+EXTRACT_LOCAL_CLASSES  = YES
+
+# This flag is only useful for Objective-C code. When set to YES local
+# methods, which are defined in the implementation section but not in
+# the interface are included in the documentation.
+# If set to NO (the default) only methods in the interface are included.
+
+EXTRACT_LOCAL_METHODS  = NO
+
+# If this flag is set to YES, the members of anonymous namespaces will be
+# extracted and appear in the documentation as a namespace called
+# 'anonymous_namespace{file}', where file will be replaced with the base
+# name of the file that contains the anonymous namespace. By default
+# anonymous namespace are hidden.
+
+EXTRACT_ANON_NSPACES   = NO
+
+# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
+# undocumented members of documented classes, files or namespaces.
+# If set to NO (the default) these members will be included in the
+# various overviews, but no documentation section is generated.
+# This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_MEMBERS     = NO
+
+# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
+# undocumented classes that are normally visible in the class hierarchy.
+# If set to NO (the default) these classes will be included in the various
+# overviews. This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_CLASSES     = NO
+
+# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all
+# friend (class|struct|union) declarations.
+# If set to NO (the default) these declarations will be included in the
+# documentation.
+
+HIDE_FRIEND_COMPOUNDS  = NO
+
+# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any
+# documentation blocks found inside the body of a function.
+# If set to NO (the default) these blocks will be appended to the
+# function's detailed documentation block.
+
+HIDE_IN_BODY_DOCS      = NO
+
+# The INTERNAL_DOCS tag determines if documentation
+# that is typed after a \internal command is included. If the tag is set
+# to NO (the default) then the documentation will be excluded.
+# Set it to YES to include the internal documentation.
+
+INTERNAL_DOCS          = NO
+
+# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
+# file names in lower-case letters. If set to YES upper-case letters are also
+# allowed. This is useful if you have classes or files whose names only differ
+# in case and if your file system supports case sensitive file names. Windows
+# and Mac users are advised to set this option to NO.
+
+CASE_SENSE_NAMES       = YES
+
+# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
+# will show members with their full class and namespace scopes in the
+# documentation. If set to YES the scope will be hidden.
+
+HIDE_SCOPE_NAMES       = NO
+
+# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
+# will put a list of the files that are included by a file in the documentation
+# of that file.
+
+SHOW_INCLUDE_FILES     = YES
+
+# If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen
+# will list include files with double quotes in the documentation
+# rather than with sharp brackets.
+
+FORCE_LOCAL_INCLUDES   = NO
+
+# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
+# is inserted in the documentation for inline members.
+
+INLINE_INFO            = YES
+
+# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
+# will sort the (detailed) documentation of file and class members
+# alphabetically by member name. If set to NO the members will appear in
+# declaration order.
+
+SORT_MEMBER_DOCS       = YES
+
+# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the
+# brief documentation of file, namespace and class members alphabetically
+# by member name. If set to NO (the default) the members will appear in
+# declaration order.
+
+SORT_BRIEF_DOCS        = NO
+
+# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen
+# will sort the (brief and detailed) documentation of class members so that
+# constructors and destructors are listed first. If set to NO (the default)
+# the constructors will appear in the respective orders defined by
+# SORT_MEMBER_DOCS and SORT_BRIEF_DOCS.
+# This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO
+# and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO.
+
+SORT_MEMBERS_CTORS_1ST = NO
+
+# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the
+# hierarchy of group names into alphabetical order. If set to NO (the default)
+# the group names will appear in their defined order.
+
+SORT_GROUP_NAMES       = NO
+
+# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be
+# sorted by fully-qualified names, including namespaces. If set to
+# NO (the default), the class list will be sorted only by class name,
+# not including the namespace part.
+# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
+# Note: This option applies only to the class list, not to the
+# alphabetical list.
+
+SORT_BY_SCOPE_NAME     = NO
+
+# The GENERATE_TODOLIST tag can be used to enable (YES) or
+# disable (NO) the todo list. This list is created by putting \todo
+# commands in the documentation.
+
+GENERATE_TODOLIST      = YES
+
+# The GENERATE_TESTLIST tag can be used to enable (YES) or
+# disable (NO) the test list. This list is created by putting \test
+# commands in the documentation.
+
+GENERATE_TESTLIST      = YES
+
+# The GENERATE_BUGLIST tag can be used to enable (YES) or
+# disable (NO) the bug list. This list is created by putting \bug
+# commands in the documentation.
+
+GENERATE_BUGLIST       = YES
+
+# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or
+# disable (NO) the deprecated list. This list is created by putting
+# \deprecated commands in the documentation.
+
+GENERATE_DEPRECATEDLIST= YES
+
+# The ENABLED_SECTIONS tag can be used to enable conditional
+# documentation sections, marked by \if sectionname ... \endif.
+
+ENABLED_SECTIONS       =
+
+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
+# the initial value of a variable or define consists of for it to appear in
+# the documentation. If the initializer consists of more lines than specified
+# here it will be hidden. Use a value of 0 to hide initializers completely.
+# The appearance of the initializer of individual variables and defines in the
+# documentation can be controlled using \showinitializer or \hideinitializer
+# command in the documentation regardless of this setting.
+
+MAX_INITIALIZER_LINES  = 30
+
+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated
+# at the bottom of the documentation of classes and structs. If set to YES the
+# list will mention the files that were used to generate the documentation.
+
+SHOW_USED_FILES        = YES
+
+# If the sources in your project are distributed over multiple directories
+# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy
+# in the documentation. The default is NO.
+
+SHOW_DIRECTORIES       = NO
+
+# Set the SHOW_FILES tag to NO to disable the generation of the Files page.
+# This will remove the Files entry from the Quick Index and from the
+# Folder Tree View (if specified). The default is YES.
+
+SHOW_FILES             = YES
+
+# Set the SHOW_NAMESPACES tag to NO to disable the generation of the
+# Namespaces page.
+# This will remove the Namespaces entry from the Quick Index
+# and from the Folder Tree View (if specified). The default is YES.
+
+SHOW_NAMESPACES        = YES
+
+# The FILE_VERSION_FILTER tag can be used to specify a program or script that
+# doxygen should invoke to get the current version for each file (typically from
+# the version control system). Doxygen will invoke the program by executing (via
+# popen()) the command <command> <input-file>, where <command> is the value of
+# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file
+# provided by doxygen. Whatever the program writes to standard output
+# is used as the file version. See the manual for examples.
+
+FILE_VERSION_FILTER    =
+
+# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
+# by doxygen. The layout file controls the global structure of the generated
+# output files in an output format independent way. The create the layout file
+# that represents doxygen's defaults, run doxygen with the -l option.
+# You can optionally specify a file name after the option, if omitted
+# DoxygenLayout.xml will be used as the name of the layout file.
+
+LAYOUT_FILE            =
+
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+
+# The QUIET tag can be used to turn on/off the messages that are generated
+# by doxygen. Possible values are YES and NO. If left blank NO is used.
+
+QUIET                  = NO
+
+# The WARNINGS tag can be used to turn on/off the warning messages that are
+# generated by doxygen. Possible values are YES and NO. If left blank
+# NO is used.
+
+WARNINGS               = YES
+
+# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
+# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
+# automatically be disabled.
+
+WARN_IF_UNDOCUMENTED   = YES
+
+# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for
+# potential errors in the documentation, such as not documenting some
+# parameters in a documented function, or documenting parameters that
+# don't exist or using markup commands wrongly.
+
+WARN_IF_DOC_ERROR      = YES
+
+# This WARN_NO_PARAMDOC option can be abled to get warnings for
+# functions that are documented, but have no documentation for their parameters
+# or return value. If set to NO (the default) doxygen will only warn about
+# wrong or incomplete parameter documentation, but not about the absence of
+# documentation.
+
+WARN_NO_PARAMDOC       = NO
+
+# The WARN_FORMAT tag determines the format of the warning messages that
+# doxygen can produce. The string should contain the $file, $line, and $text
+# tags, which will be replaced by the file and line number from which the
+# warning originated and the warning text. Optionally the format may contain
+# $version, which will be replaced by the version of the file (if it could
+# be obtained via FILE_VERSION_FILTER)
+
+WARN_FORMAT            = "$file:$line: $text"
+
+# The WARN_LOGFILE tag can be used to specify a file to which warning
+# and error messages should be written. If left blank the output is written
+# to stderr.
+
+WARN_LOGFILE           =
+
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+
+# The INPUT tag can be used to specify the files and/or directories that contain
+# documented source files. You may enter file names like "myfile.cpp" or
+# directories like "/usr/src/myproject". Separate the files or directories
+# with spaces.
+
+INPUT                  = main.dox cbrng.dox releasenotes.dox \
+		../include/Random123 \
+		../include/Random123/conventional \
+		../include/Random123/features/sse.h \
+		../include/Random123/features/compilerfeatures.h \
+		../examples/README \
+                ../LICENSE
+
+# This tag can be used to specify the character encoding of the source files
+# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
+# also the default input encoding. Doxygen uses libiconv (or the iconv built
+# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for
+# the list of possible encodings.
+
+INPUT_ENCODING         = UTF-8
+
+# If the value of the INPUT tag contains directories, you can use the
+# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
+# and *.h) to filter out the source-files in the directories. If left
+# blank the following patterns are tested:
+# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx
+# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90
+
+FILE_PATTERNS          =
+
+# The RECURSIVE tag can be used to turn specify whether or not subdirectories
+# should be searched for input files as well. Possible values are YES and NO.
+# If left blank NO is used.
+
+RECURSIVE              = NO
+
+# The EXCLUDE tag can be used to specify files and/or directories that should
+# excluded from the INPUT source files. This way you can easily exclude a
+# subdirectory from a directory tree whose root is specified with the INPUT tag.
+
+EXCLUDE                =
+
+# The EXCLUDE_SYMLINKS tag can be used select whether or not files or
+# directories that are symbolic links (a Unix filesystem feature) are excluded
+# from the input.
+
+EXCLUDE_SYMLINKS       = NO
+
+# If the value of the INPUT tag contains directories, you can use the
+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
+# certain files from those directories. Note that the wildcards are matched
+# against the file with absolute path, so to exclude all test directories
+# for example use the pattern */test/*
+
+EXCLUDE_PATTERNS       =
+
+# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
+# (namespaces, classes, functions, etc.) that should be excluded from the
+# output. The symbol name can be a fully qualified name, a word, or if the
+# wildcard * is used, a substring. Examples: ANamespace, AClass,
+# AClass::ANamespace, ANamespace::*Test
+
+EXCLUDE_SYMBOLS        =
+
+# The EXAMPLE_PATH tag can be used to specify one or more files or
+# directories that contain example code fragments that are included (see
+# the \include command).
+
+EXAMPLE_PATH           =
+
+# If the value of the EXAMPLE_PATH tag contains directories, you can use the
+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
+# and *.h) to filter out the source-files in the directories. If left
+# blank all files are included.
+
+EXAMPLE_PATTERNS       =
+
+# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
+# searched for input files to be used with the \include or \dontinclude
+# commands irrespective of the value of the RECURSIVE tag.
+# Possible values are YES and NO. If left blank NO is used.
+
+EXAMPLE_RECURSIVE      = NO
+
+# The IMAGE_PATH tag can be used to specify one or more files or
+# directories that contain image that are included in the documentation (see
+# the \image command).
+
+IMAGE_PATH             =
+
+# The INPUT_FILTER tag can be used to specify a program that doxygen should
+# invoke to filter for each input file. Doxygen will invoke the filter program
+# by executing (via popen()) the command <filter> <input-file>, where <filter>
+# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
+# input file. Doxygen will then use the output that the filter program writes
+# to standard output.
+# If FILTER_PATTERNS is specified, this tag will be
+# ignored.
+
+INPUT_FILTER           =
+
+# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
+# basis.
+# Doxygen will compare the file name with each pattern and apply the
+# filter if there is a match.
+# The filters are a list of the form:
+# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further
+# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER
+# is applied to all files.
+
+FILTER_PATTERNS        =
+
+# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
+# INPUT_FILTER) will be used to filter the input files when producing source
+# files to browse (i.e. when SOURCE_BROWSER is set to YES).
+
+FILTER_SOURCE_FILES    = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+
+# If the SOURCE_BROWSER tag is set to YES then a list of source files will
+# be generated. Documented entities will be cross-referenced with these sources.
+# Note: To get rid of all source code in the generated output, make sure also
+# VERBATIM_HEADERS is set to NO.
+
+SOURCE_BROWSER         = NO
+
+# Setting the INLINE_SOURCES tag to YES will include the body
+# of functions and classes directly in the documentation.
+
+INLINE_SOURCES         = NO
+
+# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
+# doxygen to hide any special comment blocks from generated source code
+# fragments. Normal C and C++ comments will always remain visible.
+
+STRIP_CODE_COMMENTS    = YES
+
+# If the REFERENCED_BY_RELATION tag is set to YES
+# then for each documented function all documented
+# functions referencing it will be listed.
+
+REFERENCED_BY_RELATION = NO
+
+# If the REFERENCES_RELATION tag is set to YES
+# then for each documented function all documented entities
+# called/used by that function will be listed.
+
+REFERENCES_RELATION    = NO
+
+# If the REFERENCES_LINK_SOURCE tag is set to YES (the default)
+# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from
+# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will
+# link to the source code.
+# Otherwise they will link to the documentation.
+
+REFERENCES_LINK_SOURCE = YES
+
+# If the USE_HTAGS tag is set to YES then the references to source code
+# will point to the HTML generated by the htags(1) tool instead of doxygen
+# built-in source browser. The htags tool is part of GNU's global source
+# tagging system (see http://www.gnu.org/software/global/global.html). You
+# will need version 4.8.6 or higher.
+
+USE_HTAGS              = NO
+
+# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
+# will generate a verbatim copy of the header file for each class for
+# which an include is specified. Set to NO to disable this.
+
+VERBATIM_HEADERS       = YES
+
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+
+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
+# of all compounds will be generated. Enable this if the project
+# contains a lot of classes, structs, unions or interfaces.
+
+ALPHABETICAL_INDEX     = YES
+
+# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
+# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
+# in which this list will be split (can be a number in the range [1..20])
+
+COLS_IN_ALPHA_INDEX    = 5
+
+# In case all classes in a project start with a common prefix, all
+# classes will be put under the same header in the alphabetical index.
+# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
+# should be ignored while generating the index headers.
+
+IGNORE_PREFIX          =
+
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
+# generate HTML output.
+
+GENERATE_HTML          = YES
+
+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `html' will be used as the default path.
+
+HTML_OUTPUT            = html
+
+# The HTML_FILE_EXTENSION tag can be used to specify the file extension for
+# each generated HTML page (for example: .htm,.php,.asp). If it is left blank
+# doxygen will generate files with .html extension.
+
+HTML_FILE_EXTENSION    = .html
+
+# The HTML_HEADER tag can be used to specify a personal HTML header for
+# each generated HTML page. If it is left blank doxygen will generate a
+# standard header.
+
+HTML_HEADER            = header.html
+
+# The HTML_FOOTER tag can be used to specify a personal HTML footer for
+# each generated HTML page. If it is left blank doxygen will generate a
+# standard footer.
+
+HTML_FOOTER            =
+
+# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
+# style sheet that is used by each HTML page. It can be used to
+# fine-tune the look of the HTML output. If the tag is left blank doxygen
+# will generate a default style sheet. Note that doxygen will try to copy
+# the style sheet file to the HTML output directory, so don't put your own
+# stylesheet in the HTML output directory as well, or it will be erased!
+
+HTML_STYLESHEET        =
+
+# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output.
+# Doxygen will adjust the colors in the stylesheet and background images
+# according to this color. Hue is specified as an angle on a colorwheel,
+# see http://en.wikipedia.org/wiki/Hue for more information.
+# For instance the value 0 represents red, 60 is yellow, 120 is green,
+# 180 is cyan, 240 is blue, 300 purple, and 360 is red again.
+# The allowed range is 0 to 359.
+
+HTML_COLORSTYLE_HUE    = 220
+
+# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of
+# the colors in the HTML output. For a value of 0 the output will use
+# grayscales only. A value of 255 will produce the most vivid colors.
+
+HTML_COLORSTYLE_SAT    = 100
+
+# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to
+# the luminance component of the colors in the HTML output. Values below
+# 100 gradually make the output lighter, whereas values above 100 make
+# the output darker. The value divided by 100 is the actual gamma applied,
+# so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2,
+# and 100 does not change the gamma.
+
+HTML_COLORSTYLE_GAMMA  = 80
+
+# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
+# page will contain the date and time when the page was generated. Setting
+# this to NO can help when comparing the output of multiple runs.
+
+HTML_TIMESTAMP         = YES
+
+# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
+# files or namespaces will be aligned in HTML using tables. If set to
+# NO a bullet list will be used.
+
+HTML_ALIGN_MEMBERS     = YES
+
+# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
+# documentation will contain sections that can be hidden and shown after the
+# page has loaded. For this to work a browser that supports
+# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox
+# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari).
+
+HTML_DYNAMIC_SECTIONS  = NO
+
+# If the GENERATE_DOCSET tag is set to YES, additional index files
+# will be generated that can be used as input for Apple's Xcode 3
+# integrated development environment, introduced with OSX 10.5 (Leopard).
+# To create a documentation set, doxygen will generate a Makefile in the
+# HTML output directory. Running make will produce the docset in that
+# directory and running "make install" will install the docset in
+# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find
+# it at startup.
+# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
+# for more information.
+
+GENERATE_DOCSET        = NO
+
+# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the
+# feed. A documentation feed provides an umbrella under which multiple
+# documentation sets from a single provider (such as a company or product suite)
+# can be grouped.
+
+DOCSET_FEEDNAME        = "Doxygen generated docs"
+
+# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that
+# should uniquely identify the documentation set bundle. This should be a
+# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen
+# will append .docset to the name.
+
+DOCSET_BUNDLE_ID       = org.doxygen.Project
+
+# When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify
+# the documentation publisher. This should be a reverse domain-name style
+# string, e.g. com.mycompany.MyDocSet.documentation.
+
+DOCSET_PUBLISHER_ID    = org.doxygen.Publisher
+
+# The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher.
+
+DOCSET_PUBLISHER_NAME  = Publisher
+
+# If the GENERATE_HTMLHELP tag is set to YES, additional index files
+# will be generated that can be used as input for tools like the
+# Microsoft HTML help workshop to generate a compiled HTML help file (.chm)
+# of the generated HTML documentation.
+
+GENERATE_HTMLHELP      = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can
+# be used to specify the file name of the resulting .chm file. You
+# can add a path in front of the file if the result should not be
+# written to the html output directory.
+
+CHM_FILE               =
+
+# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can
+# be used to specify the location (absolute path including file name) of
+# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run
+# the HTML help compiler on the generated index.hhp.
+
+HHC_LOCATION           =
+
+# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
+# controls if a separate .chi index file is generated (YES) or that
+# it should be included in the master .chm file (NO).
+
+GENERATE_CHI           = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING
+# is used to encode HtmlHelp index (hhk), content (hhc) and project file
+# content.
+
+CHM_INDEX_ENCODING     =
+
+# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag
+# controls whether a binary table of contents is generated (YES) or a
+# normal table of contents (NO) in the .chm file.
+
+BINARY_TOC             = NO
+
+# The TOC_EXPAND flag can be set to YES to add extra items for group members
+# to the contents of the HTML help documentation and to the tree view.
+
+TOC_EXPAND             = NO
+
+# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
+# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated
+# that can be used as input for Qt's qhelpgenerator to generate a
+# Qt Compressed Help (.qch) of the generated HTML documentation.
+
+GENERATE_QHP           = NO
+
+# If the QHG_LOCATION tag is specified, the QCH_FILE tag can
+# be used to specify the file name of the resulting .qch file.
+# The path specified is relative to the HTML output folder.
+
+QCH_FILE               =
+
+# The QHP_NAMESPACE tag specifies the namespace to use when generating
+# Qt Help Project output. For more information please see
+# http://doc.trolltech.com/qthelpproject.html#namespace
+
+QHP_NAMESPACE          = org.doxygen.Project
+
+# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating
+# Qt Help Project output. For more information please see
+# http://doc.trolltech.com/qthelpproject.html#virtual-folders
+
+QHP_VIRTUAL_FOLDER     = doc
+
+# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to
+# add. For more information please see
+# http://doc.trolltech.com/qthelpproject.html#custom-filters
+
+QHP_CUST_FILTER_NAME   =
+
+# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the
+# custom filter to add. For more information please see
+# <a href="http://doc.trolltech.com/qthelpproject.html#custom-filters">
+# Qt Help Project / Custom Filters</a>.
+
+QHP_CUST_FILTER_ATTRS  =
+
+# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
+# project's
+# filter section matches.
+# <a href="http://doc.trolltech.com/qthelpproject.html#filter-attributes">
+# Qt Help Project / Filter Attributes</a>.
+
+QHP_SECT_FILTER_ATTRS  =
+
+# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can
+# be used to specify the location of Qt's qhelpgenerator.
+# If non-empty doxygen will try to run qhelpgenerator on the generated
+# .qhp file.
+
+QHG_LOCATION           =
+
+# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files
+#  will be generated, which together with the HTML files, form an Eclipse help
+# plugin. To install this plugin and make it available under the help contents
+# menu in Eclipse, the contents of the directory containing the HTML and XML
+# files needs to be copied into the plugins directory of eclipse. The name of
+# the directory within the plugins directory should be the same as
+# the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before
+# the help appears.
+
+GENERATE_ECLIPSEHELP   = NO
+
+# A unique identifier for the eclipse help plugin. When installing the plugin
+# the directory name containing the HTML and XML files should also have
+# this name.
+
+ECLIPSE_DOC_ID         = org.doxygen.Project
+
+# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
+# top of each HTML page. The value NO (the default) enables the index and
+# the value YES disables it.
+
+DISABLE_INDEX          = NO
+
+# This tag can be used to set the number of enum values (range [1..20])
+# that doxygen will group on one line in the generated HTML documentation.
+
+ENUM_VALUES_PER_LINE   = 4
+
+# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
+# structure should be generated to display hierarchical information.
+# If the tag value is set to YES, a side panel will be generated
+# containing a tree-like index structure (just like the one that
+# is generated for HTML Help). For this to work a browser that supports
+# JavaScript, DHTML, CSS and frames is required (i.e. any modern browser).
+# Windows users are probably better off using the HTML help feature.
+
+GENERATE_TREEVIEW      = NO
+
+# By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories,
+# and Class Hierarchy pages using a tree view instead of an ordered list.
+
+USE_INLINE_TREES       = NO
+
+# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
+# used to set the initial width (in pixels) of the frame in which the tree
+# is shown.
+
+TREEVIEW_WIDTH         = 250
+
+# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open
+# links to external symbols imported via tag files in a separate window.
+
+EXT_LINKS_IN_WINDOW    = NO
+
+# Use this tag to change the font size of Latex formulas included
+# as images in the HTML documentation. The default is 10. Note that
+# when you change the font size after a successful doxygen run you need
+# to manually remove any form_*.png images from the HTML output directory
+# to force them to be regenerated.
+
+FORMULA_FONTSIZE       = 10
+
+# Use the FORMULA_TRANPARENT tag to determine whether or not the images
+# generated for formulas are transparent PNGs. Transparent PNGs are
+# not supported properly for IE 6.0, but are supported on all modern browsers.
+# Note that when changing this option you need to delete any form_*.png files
+# in the HTML output before the changes have effect.
+
+FORMULA_TRANSPARENT    = YES
+
+# When the SEARCHENGINE tag is enabled doxygen will generate a search box
+# for the HTML output. The underlying search engine uses javascript
+# and DHTML and should work on any modern browser. Note that when using
+# HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets
+# (GENERATE_DOCSET) there is already a search function so this one should
+# typically be disabled. For large projects the javascript based search engine
+# can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution.
+
+SEARCHENGINE           = YES
+
+# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
+# implemented using a PHP enabled web server instead of at the web client
+# using Javascript. Doxygen will generate the search PHP script and index
+# file to put on the web server. The advantage of the server
+# based approach is that it scales better to large projects and allows
+# full text search. The disadvances is that it is more difficult to setup
+# and does not have live searching capabilities.
+
+SERVER_BASED_SEARCH    = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
+# generate Latex output.
+
+GENERATE_LATEX         = NO
+
+# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `latex' will be used as the default path.
+
+LATEX_OUTPUT           = latex
+
+# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
+# invoked. If left blank `latex' will be used as the default command name.
+# Note that when enabling USE_PDFLATEX this option is only used for
+# generating bitmaps for formulas in the HTML output, but not in the
+# Makefile that is written to the output directory.
+
+LATEX_CMD_NAME         = latex
+
+# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to
+# generate index for LaTeX. If left blank `makeindex' will be used as the
+# default command name.
+
+MAKEINDEX_CMD_NAME     = makeindex
+
+# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
+# LaTeX documents. This may be useful for small projects and may help to
+# save some trees in general.
+
+COMPACT_LATEX          = NO
+
+# The PAPER_TYPE tag can be used to set the paper type that is used
+# by the printer. Possible values are: a4, a4wide, letter, legal and
+# executive. If left blank a4wide will be used.
+
+PAPER_TYPE             = a4wide
+
+# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
+# packages that should be included in the LaTeX output.
+
+EXTRA_PACKAGES         =
+
+# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
+# the generated latex document. The header should contain everything until
+# the first chapter. If it is left blank doxygen will generate a
+# standard header. Notice: only use this tag if you know what you are doing!
+
+LATEX_HEADER           =
+
+# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
+# is prepared for conversion to pdf (using ps2pdf). The pdf file will
+# contain links (just like the HTML output) instead of page references
+# This makes the output suitable for online browsing using a pdf viewer.
+
+PDF_HYPERLINKS         = YES
+
+# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
+# plain latex in the generated Makefile. Set this option to YES to get a
+# higher quality PDF documentation.
+
+USE_PDFLATEX           = YES
+
+# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
+# command to the generated LaTeX files. This will instruct LaTeX to keep
+# running if errors occur, instead of asking the user for help.
+# This option is also used when generating formulas in HTML.
+
+LATEX_BATCHMODE        = NO
+
+# If LATEX_HIDE_INDICES is set to YES then doxygen will not
+# include the index chapters (such as File Index, Compound Index, etc.)
+# in the output.
+
+LATEX_HIDE_INDICES     = NO
+
+# If LATEX_SOURCE_CODE is set to YES then doxygen will include
+# source code with syntax highlighting in the LaTeX output.
+# Note that which sources are shown also depends on other settings
+# such as SOURCE_BROWSER.
+
+LATEX_SOURCE_CODE      = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
+# The RTF output is optimized for Word 97 and may not look very pretty with
+# other RTF readers or editors.
+
+GENERATE_RTF           = NO
+
+# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `rtf' will be used as the default path.
+
+RTF_OUTPUT             = rtf
+
+# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
+# RTF documents. This may be useful for small projects and may help to
+# save some trees in general.
+
+COMPACT_RTF            = NO
+
+# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
+# will contain hyperlink fields. The RTF file will
+# contain links (just like the HTML output) instead of page references.
+# This makes the output suitable for online browsing using WORD or other
+# programs which support those fields.
+# Note: wordpad (write) and others do not support links.
+
+RTF_HYPERLINKS         = NO
+
+# Load stylesheet definitions from file. Syntax is similar to doxygen's
+# config file, i.e. a series of assignments. You only have to provide
+# replacements, missing definitions are set to their default value.
+
+RTF_STYLESHEET_FILE    =
+
+# Set optional variables used in the generation of an rtf document.
+# Syntax is similar to doxygen's config file.
+
+RTF_EXTENSIONS_FILE    =
+
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
+# generate man pages
+
+GENERATE_MAN           = NO
+
+# The MAN_OUTPUT tag is used to specify where the man pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `man' will be used as the default path.
+
+MAN_OUTPUT             = man
+
+# The MAN_EXTENSION tag determines the extension that is added to
+# the generated man pages (default is the subroutine's section .3)
+
+MAN_EXTENSION          = .3
+
+# If the MAN_LINKS tag is set to YES and Doxygen generates man output,
+# then it will generate one additional man file for each entity
+# documented in the real man page(s). These additional files
+# only source the real man page, but without them the man command
+# would be unable to find the correct page. The default is NO.
+
+MAN_LINKS              = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_XML tag is set to YES Doxygen will
+# generate an XML file that captures the structure of
+# the code including all documentation.
+
+GENERATE_XML           = NO
+
+# The XML_OUTPUT tag is used to specify where the XML pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `xml' will be used as the default path.
+
+XML_OUTPUT             = xml
+
+# The XML_SCHEMA tag can be used to specify an XML schema,
+# which can be used by a validating XML parser to check the
+# syntax of the XML files.
+
+XML_SCHEMA             =
+
+# The XML_DTD tag can be used to specify an XML DTD,
+# which can be used by a validating XML parser to check the
+# syntax of the XML files.
+
+XML_DTD                =
+
+# If the XML_PROGRAMLISTING tag is set to YES Doxygen will
+# dump the program listings (including syntax highlighting
+# and cross-referencing information) to the XML output. Note that
+# enabling this will significantly increase the size of the XML output.
+
+XML_PROGRAMLISTING     = YES
+
+#---------------------------------------------------------------------------
+# configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will
+# generate an AutoGen Definitions (see autogen.sf.net) file
+# that captures the structure of the code including all
+# documentation. Note that this feature is still experimental
+# and incomplete at the moment.
+
+GENERATE_AUTOGEN_DEF   = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_PERLMOD tag is set to YES Doxygen will
+# generate a Perl module file that captures the structure of
+# the code including all documentation. Note that this
+# feature is still experimental and incomplete at the
+# moment.
+
+GENERATE_PERLMOD       = NO
+
+# If the PERLMOD_LATEX tag is set to YES Doxygen will generate
+# the necessary Makefile rules, Perl scripts and LaTeX code to be able
+# to generate PDF and DVI output from the Perl module output.
+
+PERLMOD_LATEX          = NO
+
+# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be
+# nicely formatted so it can be parsed by a human reader.
+# This is useful
+# if you want to understand what is going on.
+# On the other hand, if this
+# tag is set to NO the size of the Perl module output will be much smaller
+# and Perl will parse it just the same.
+
+PERLMOD_PRETTY         = YES
+
+# The names of the make variables in the generated doxyrules.make file
+# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX.
+# This is useful so different doxyrules.make files included by the same
+# Makefile don't overwrite each other's variables.
+
+PERLMOD_MAKEVAR_PREFIX =
+
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor
+#---------------------------------------------------------------------------
+
+# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
+# evaluate all C-preprocessor directives found in the sources and include
+# files.
+
+ENABLE_PREPROCESSING   = YES
+
+# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
+# names in the source code. If set to NO (the default) only conditional
+# compilation will be performed. Macro expansion can be done in a controlled
+# way by setting EXPAND_ONLY_PREDEF to YES.
+
+MACRO_EXPANSION        = YES
+
+# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
+# then the macro expansion is limited to the macros specified with the
+# PREDEFINED and EXPAND_AS_DEFINED tags.
+
+EXPAND_ONLY_PREDEF     = NO
+
+# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
+# in the INCLUDE_PATH (see below) will be search if a #include is found.
+
+SEARCH_INCLUDES        = YES
+
+# The INCLUDE_PATH tag can be used to specify one or more directories that
+# contain include files that are not input files but should be processed by
+# the preprocessor.
+
+INCLUDE_PATH           =
+
+# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
+# patterns (like *.h and *.hpp) to filter out the header-files in the
+# directories. If left blank, the patterns specified with FILE_PATTERNS will
+# be used.
+
+INCLUDE_FILE_PATTERNS  =
+
+# The PREDEFINED tag can be used to specify one or more macro names that
+# are defined before the preprocessor is started (similar to the -D option of
+# gcc). The argument of the tag is a list of macros of the form: name
+# or name=definition (no spaces). If the definition and the = are
+# omitted =1 is assumed. To prevent a macro definition from being
+# undefined via #undef or recursively expanded use the := operator
+# instead of the = operator.
+
+PREDEFINED             = \
+  "R123_STATIC_ASSERT(e,m)= " \
+  "R123_FORCE_INLINE(decl)= decl " \
+  "R123_STATIC_INLINE= static inline " \
+  "R123_CUDA_DEVICE= " \
+  "__cplusplus " \
+  "R123_USE_SSE= 1" \
+  "R123_USE_AES_NI= 1" \
+  "R123_USE_U01_DOUBLE= 1" \
+  "R123_USE_PHILOX_64BIT= 1"
+
+# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
+# this tag can be used to specify a list of macro names that should be expanded.
+# The macro definition that is found in the sources will be used.
+# Use the PREDEFINED tag if you want to use a different macro definition.
+
+EXPAND_AS_DEFINED      = \
+    R123_ULONG_LONG \
+    R123_STATIC_INLINE \
+    R123_CUDA_DEVICE
+
+# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
+# doxygen's preprocessor will remove all function-like macros that are alone
+# on a line, have an all uppercase name, and do not end with a semicolon. Such
+# function macros are typically used for boiler-plate code, and will confuse
+# the parser if not removed.
+
+SKIP_FUNCTION_MACROS   = YES
+
+#---------------------------------------------------------------------------
+# Configuration::additions related to external references
+#---------------------------------------------------------------------------
+
+# The TAGFILES option can be used to specify one or more tagfiles.
+# Optionally an initial location of the external documentation
+# can be added for each tagfile. The format of a tag file without
+# this location is as follows:
+#
+# TAGFILES = file1 file2 ...
+# Adding location for the tag files is done as follows:
+#
+# TAGFILES = file1=loc1 "file2 = loc2" ...
+# where "loc1" and "loc2" can be relative or absolute paths or
+# URLs. If a location is present for each tag, the installdox tool
+# does not have to be run to correct the links.
+# Note that each tag file must have a unique name
+# (where the name does NOT include the path)
+# If a tag file is not located in the directory in which doxygen
+# is run, you must also specify the path to the tagfile here.
+
+TAGFILES               =
+
+# When a file name is specified after GENERATE_TAGFILE, doxygen will create
+# a tag file that is based on the input files it reads.
+
+GENERATE_TAGFILE       =
+
+# If the ALLEXTERNALS tag is set to YES all external classes will be listed
+# in the class index. If set to NO only the inherited external classes
+# will be listed.
+
+ALLEXTERNALS           = NO
+
+# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed
+# in the modules index. If set to NO, only the current project's groups will
+# be listed.
+
+EXTERNAL_GROUPS        = YES
+
+# The PERL_PATH should be the absolute path and name of the perl script
+# interpreter (i.e. the result of `which perl').
+
+PERL_PATH              = /usr/bin/perl
+
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool
+#---------------------------------------------------------------------------
+
+# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
+# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base
+# or super classes. Setting the tag to NO turns the diagrams off. Note that
+# this option is superseded by the HAVE_DOT option below. This is only a
+# fallback. It is recommended to install and use dot, since it yields more
+# powerful graphs.
+
+CLASS_DIAGRAMS         = YES
+
+# You can define message sequence charts within doxygen comments using the \msc
+# command. Doxygen will then run the mscgen tool (see
+# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the
+# documentation. The MSCGEN_PATH tag allows you to specify the directory where
+# the mscgen tool resides. If left empty the tool is assumed to be found in the
+# default search path.
+
+MSCGEN_PATH            =
+
+# If set to YES, the inheritance and collaboration graphs will hide
+# inheritance and usage relations if the target is undocumented
+# or is not a class.
+
+HIDE_UNDOC_RELATIONS   = YES
+
+# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
+# available from the path. This tool is part of Graphviz, a graph visualization
+# toolkit from AT&T and Lucent Bell Labs. The other options in this section
+# have no effect if this option is set to NO (the default)
+
+HAVE_DOT               = NO
+
+# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is
+# allowed to run in parallel. When set to 0 (the default) doxygen will
+# base this on the number of processors available in the system. You can set it
+# explicitly to a value larger than 0 to get control over the balance
+# between CPU load and processing speed.
+
+DOT_NUM_THREADS        = 0
+
+# By default doxygen will write a font called FreeSans.ttf to the output
+# directory and reference it in all dot files that doxygen generates. This
+# font does not include all possible unicode characters however, so when you need
+# these (or just want a differently looking font) you can specify the font name
+# using DOT_FONTNAME. You need need to make sure dot is able to find the font,
+# which can be done by putting it in a standard location or by setting the
+# DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory
+# containing the font.
+
+DOT_FONTNAME           = FreeSans.ttf
+
+# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs.
+# The default size is 10pt.
+
+DOT_FONTSIZE           = 10
+
+# By default doxygen will tell dot to use the output directory to look for the
+# FreeSans.ttf font (which doxygen will put there itself). If you specify a
+# different font using DOT_FONTNAME you can set the path where dot
+# can find it using this tag.
+
+DOT_FONTPATH           =
+
+# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for each documented class showing the direct and
+# indirect inheritance relations. Setting this tag to YES will force the
+# the CLASS_DIAGRAMS tag to NO.
+
+CLASS_GRAPH            = YES
+
+# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for each documented class showing the direct and
+# indirect implementation dependencies (inheritance, containment, and
+# class references variables) of the class with other documented classes.
+
+COLLABORATION_GRAPH    = YES
+
+# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for groups, showing the direct groups dependencies
+
+GROUP_GRAPHS           = YES
+
+# If the UML_LOOK tag is set to YES doxygen will generate inheritance and
+# collaboration diagrams in a style similar to the OMG's Unified Modeling
+# Language.
+
+UML_LOOK               = NO
+
+# If set to YES, the inheritance and collaboration graphs will show the
+# relations between templates and their instances.
+
+TEMPLATE_RELATIONS     = NO
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT
+# tags are set to YES then doxygen will generate a graph for each documented
+# file showing the direct and indirect include dependencies of the file with
+# other documented files.
+
+INCLUDE_GRAPH          = YES
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and
+# HAVE_DOT tags are set to YES then doxygen will generate a graph for each
+# documented header file showing the documented files that directly or
+# indirectly include this file.
+
+INCLUDED_BY_GRAPH      = YES
+
+# If the CALL_GRAPH and HAVE_DOT options are set to YES then
+# doxygen will generate a call dependency graph for every global function
+# or class method. Note that enabling this option will significantly increase
+# the time of a run. So in most cases it will be better to enable call graphs
+# for selected functions only using the \callgraph command.
+
+CALL_GRAPH             = NO
+
+# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then
+# doxygen will generate a caller dependency graph for every global function
+# or class method. Note that enabling this option will significantly increase
+# the time of a run. So in most cases it will be better to enable caller
+# graphs for selected functions only using the \callergraph command.
+
+CALLER_GRAPH           = NO
+
+# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
+# will graphical hierarchy of all classes instead of a textual one.
+
+GRAPHICAL_HIERARCHY    = YES
+
+# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES
+# then doxygen will show the dependencies a directory has on other directories
+# in a graphical way. The dependency relations are determined by the #include
+# relations between the files in the directories.
+
+DIRECTORY_GRAPH        = YES
+
+# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
+# generated by dot. Possible values are png, jpg, or gif
+# If left blank png will be used.
+
+DOT_IMAGE_FORMAT       = png
+
+# The tag DOT_PATH can be used to specify the path where the dot tool can be
+# found. If left blank, it is assumed the dot tool can be found in the path.
+
+DOT_PATH               =
+
+# The DOTFILE_DIRS tag can be used to specify one or more directories that
+# contain dot files that are included in the documentation (see the
+# \dotfile command).
+
+DOTFILE_DIRS           =
+
+# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of
+# nodes that will be shown in the graph. If the number of nodes in a graph
+# becomes larger than this value, doxygen will truncate the graph, which is
+# visualized by representing a node as a red box. Note that doxygen if the
+# number of direct children of the root node in a graph is already larger than
+# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note
+# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
+
+DOT_GRAPH_MAX_NODES    = 50
+
+# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the
+# graphs generated by dot. A depth value of 3 means that only nodes reachable
+# from the root by following a path via at most 3 edges will be shown. Nodes
+# that lay further from the root node will be omitted. Note that setting this
+# option to 1 or 2 may greatly reduce the computation time needed for large
+# code bases. Also note that the size of a graph can be further restricted by
+# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
+
+MAX_DOT_GRAPH_DEPTH    = 0
+
+# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
+# background. This is disabled by default, because dot on Windows does not
+# seem to support this out of the box. Warning: Depending on the platform used,
+# enabling this option may lead to badly anti-aliased labels on the edges of
+# a graph (i.e. they become hard to read).
+
+DOT_TRANSPARENT        = NO
+
+# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
+# files in one run (i.e. multiple -o and -T options on the command line). This
+# makes dot run faster, but since only newer versions of dot (>1.8.10)
+# support this, this feature is disabled by default.
+
+DOT_MULTI_TARGETS      = NO
+
+# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
+# generate a legend page explaining the meaning of the various boxes and
+# arrows in the dot generated graphs.
+
+GENERATE_LEGEND        = YES
+
+# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will
+# remove the intermediate dot files that are used to generate
+# the various graphs.
+
+DOT_CLEANUP            = YES
diff --git a/docs/cbrng.dox b/docs/cbrng.dox
new file mode 100644
index 0000000..ccbb02e
--- /dev/null
+++ b/docs/cbrng.dox
@@ -0,0 +1,198 @@
+/**
+ at page CBRNG Counter Based RNGs (CBRNGs).
+
+The counter-based random number generators (CBRNGs)
+in the Random123 library are described in more detail in
+<a href="http://dl.acm.org/citation.cfm?doid=2063405"><i>Parallel Random Numbers:  As Easy as 1, 2, 3</i> </a>,
+which was named the Best Paper at the ACM SC'11 International Conference on High Performance Computing, Networking,
+Storage, and Analysis.
+All the CBRNGs in the library conform to a  consistent
+interface.  Basically:
+\verbatim
+    value = CBRNGname(counter, key)
+\endverbatim
+
+Thus, with some care, they can be used
+interchangeably in applications. (Since code
+compiled with AES-NI instructions will result
+in an illegal instruction exception on processors
+without those instructions, Random123 provides a
+ at ref haveAESNI function that can be used
+to detect the existence of AES at run-time;
+user code could use it to either report an
+error or substitute an alternative compatible
+CBRNG.)
+
+The API descriptions below are generic, but apply to
+all the different @ref families "families" of 
+Random123 CBRNGs.
+
+\section arrays Fixed-size Array Types
+
+Data is passed into and back from the Random123 functions as
+ at ref arrayNxW "r123arrayNxW"
+types; these types
+contain fixed-size arrays of W-bit types (\c uintW_t for the
+most part, but also a special r123m128i wrapper for the @ref
+AESNI "ARS and AESNI" CBRNGs). The counter argument
+and the return value have the same type, 
+referred to as \c ctr_type in C++, and \c ctr_t in C.  The
+type of the key argument is referred to as \c key_type in C++,
+and \c key_t in C.
+For an  @ref arrayNxW "r123arrayNxW", \c r, the data member \c r.v is an array of N elements,
+each of width W (each element is
+type \c uintW_t or an r123m128i wrapper object).
+C programs can access these elements as \c r.v[0], ... \c r.v[N-1] for
+the \c uintW_t types.
+
+In C++, these array types closely resemble the C++0x std::array<N, uintW_t> template, but do not
+require C++0x libraries or compiler features. 
+C++ programs can access array elements via operator[]
+\c r[0], ... \c r[N-1], or via most of the capabilities
+of a C++ "Container" e.g. \c at(), \c begin(), \c end(),
+\c size() and others.  In addition, containers have <c> incr() </c> and <c> incr(unsigned long long)</c>
+member function that do increment-with-carry, which facilitate
+using r123arrays as very-long-period counters.
+
+If the compiler environment supports it,
+\c Random123/array.h also declares \c r123array1xm128i, which contains an array of one
+\c r123m128i, which in turn is a class wrapping a single element
+of \c __m128i SSE type, which can be accessed as \c r.v[0].m.
+The @ref r123::ARS1xm128i_R RNGs
+use \c r123array1xm128i for both \c ctr_type and \c key_type.
+For the @ref AESNI "AESNI" RNG, \c ctr_type is an \c r123array1xm128i, but 
+\c key_type is an opaque type, which must be initialized
+by assignment from a <c>userkey_type</c> (an r123array1xm128i).
+
+\section aliasing A note on aliasing and type-punning
+It is easiest (though not necessarily fastest) to choose a CBRNG whose
+\c ctr_type matches the width of the random data needed by the
+application, e.g., Philox4x32 for applications that need random data in
+32-bit words.  If the application's needs don't match the counter's value_type,
+it is tempting to use "type punning" and pointer casts to interconvert between
+types.  Such conversions require great care and are very difficult to do
+safely without use of unions or memcpy.  
+See <a
+href="http://blog.worldofcoding.com/2010/02/solving-gcc-44-strict-aliasing-problems.html">
+here</a>
+and 
+<a href="http://dbp-consulting.com/tutorials/StrictAliasing.html">
+here</a>
+for discussions of the pitfalls related to aliasing.
+The C++
+ at ref r123::ReinterpretCtr template is a safe way to reinterpret \c CBRNG
+counter types.
+Gcc's \c
+-Wstrict-aliasing=2 warning level will warn if strict aliasing
+violations are detected.  If you find yourself ignoring or disabling
+warnings about strict aliasing, you should strongly consider adding something
+like gcc's \c -fnostrict-aliasing option to your compiler
+flags.
+
+\section cxxapi C++ API
+
+There are four families of CBRNGs in the library:
+<ul>
+<li> @ref ThreefryNxW "Threefry": @ref r123::Threefry2x32, @ref r123::Threefry4x32, @ref r123::Threefry2x64, @ref r123::Threefry4x64
+<li> @ref PhiloxNxW "Philox": @ref r123::Philox2x32, @ref r123::Philox4x32, @ref r123::Philox2x64, @ref r123::Philox4x64
+<li> @ref r123::AESNI4x32, r123::AESNI1xm128i
+<li> @ref r123::ARS4x32_R
+</ul>
+
+A <i> counter based RNG </i> (CBRNG) with a name of the form
+<i>FamilynameN</i>x<i>W</i> is a type G
+with the three member typedefs:
+
+<ul>
+<li> G::ctr_type, which is an @ref arrayNxW "r123arrayNxW" container class.
+<li> G::ukey_type, which is an @ref arrayNxW "r123arrayMxV" container class.
+Note that the width, \c MxV of the key
+may not be the same as the width \c NxW of
+the ctr_type (@ref PhiloxNxW "Philox" keys are half as wide as the counter,
+and future CBRNGs may well have different widths).
+<li> G::key_type, which in most cases is identical to
+G::ukey_type, but is different for the @ref AESNI "AESNI" types.
+In all cases, there is a G::key_type(G::ukey_type) constructor
+and a G::key_type assignment operator for a G::ukey_type
+right-hand-side.  In general, one can always write:
+ at code
+  G::ukey_type uk1, uk2;
+  // user code initializes uk1 and uk2
+  G::key_type  k1(uk1), k2;
+  k2 = uk2;
+ at endcode
+</ul>
+For most CBRNG's, i.e., any one not in the @ref AESNI "AESNI" family, it is also
+perfectly acceptable to set the elements of a G::key_type directly from application variables.
+The quality of the results will not be compromised by using highly correlated
+or "non-random" keys.
+
+A value \c g of type \c G can be invoked as <c>g(c,k)</c>, where \c c
+is a value of type \c G::ctr_type and \c k is a value of type \c G::key_type,
+and <c>g(c,k)</c> returns a value of type \c G::ctr_type.
+
+<ul>
+<li> g() is a stateless, pure function.  That is, g(c,k) may be called
+any number of times in any context and always returns the same result
+for the same inputs.  In particular, c1==c2 and k1==k2 implies that g(c1,k1)
+== g(c2,k2).  
+<li> For constant k, g(*,k) is a bijection.  That is, 
+g(c1,k) == g(c2,k) if and only if c1 == c2.
+<li> g "randomizes" its inputs.  That is,
+for most sequences of inputs (c1,k1),
+(c2, k2), ...  (including those obtained by following highly
+regular patterns of incrementing and striding 
+through the counter and user key spaces) the output sequence, g(c1, k1),
+g(c2, k2), ...  looks like a a sequence of uniformly distributed
+random variables drawn from the set of all ctr_types.
+</ul>
+
+All the CBRNGs in the library work by iterating a randomization function for a specific number of \e rounds.
+Too few rounds and the CBRNG is a poor (perhaps
+catastrophically poor) random number generator.  Too many rounds and time is wasted
+with little or no improvement in the randomness of the output.  Each of the CBRNGs
+has a specific number of rounds which the authors believe is a reasonable compromise
+between speed and quality.  In all cases, the default number of rounds includes a margin
+of safety above the minimum number of rounds that have passed all of the SmallCrush, Crush and BigCrush 
+tests in the <a href="http://www.iro.umontreal.ca/~simardr/testu01/tu01.html"> TestU01</a> suite.
+
+Users may, however wish to employ a different numbers of rounds.  Each of the above
+classes is actually a typedef of a more general class with a template parameter that
+specifies the number of rounds as <i>name</i>_rounds.  The template classes all end in \c _R:
+
+<ul>
+<li> @ref ThreefryNxW "Threefry": @ref r123::Threefry2x32_R, @ref r123::Threefry4x32_R, @ref r123::Threefry2x64_R, @ref r123::Threefry4x64_R
+<li> @ref PhiloxNxW "Philox": @ref r123::Philox2x32_R, @ref r123::Philox4x32_R, @ref r123::Philox2x64_R, @ref r123::Philox4x64_R
+<li> @ref r123::AESNI4x32_R, r123::AESNI1xm128i_R
+<li> @ref r123::ARS4x32_R
+</ul>
+
+\section capi C API
+
+A subset of the C++ interface
+is also directly usable by C programs.  All header files may be
+safely included in C files.  The C API to each of the
+supported RNGs consists of two typedefs, <i>name</i>_ctr_t,
+<i>name</i>_key_t, two functions <i>name</i>() and <i>name</i>_R(), and
+the enum <i>name</i>_rounds which specifies the recommended number of rounds.
+<ul>
+<li> <i>name</i>(c, k), performs the recommended number of rounds of the <i>name</i> CBRNG.
+<li> <i>name_R</i>(R,c,k), performs an R-round version of the <i>name</i> CBRNG.
+<i>name</i>(c,k) is equivalent to
+<i>name</i>_R(<i>name</i>_rounds, c, k).
+</ul>
+
+The \c _R functions are designed and implemented so that an optimizing compiler can achieve good performance
+when the number of rounds is a compile-time constant.  It is likely that <c>philox4x32_R(10,c,k) </c>
+will perform much better than <c>philox4x32_R(r,c,k)</c> if \c r cannot be
+evaluated at compile-time.
+
+The supported names for the C API are
+<ul>
+<li> @ref ThreefryNxW "threefry": @ref threefry2x32, @ref threefry4x32, @ref threefry2x64, @ref threefry4x64.
+<li> @ref PhiloxNxW "philox": @ref philox2x32, @ref philox4x32, @ref philox2x64, @ref philox4x64.
+<li> @ref ars4x32_R, @ref ars1xm128i_R
+<li> @ref aesni4x32, @ref aesni1xm128i
+</ul>
+
+*/
diff --git a/docs/header.html b/docs/header.html
new file mode 100644
index 0000000..f566c2f
--- /dev/null
+++ b/docs/header.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>$title</title>
+<link href="$relpath$tabs.css" rel="stylesheet" type="text/css"/>
+<link href="$relpath$search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="$relpath$search/search.js"></script>
+<link href="$relpath$doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">$projectname $projectnumber Documentation</li></ul></div>
diff --git a/docs/html/CBRNG.html b/docs/html/CBRNG.html
new file mode 100644
index 0000000..350b6cc
--- /dev/null
+++ b/docs/html/CBRNG.html
@@ -0,0 +1,151 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Counter Based RNGs (CBRNGs).</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li class="current"><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<h1>Counter Based RNGs (CBRNGs). </h1>  </div>
+</div>
+<div class="contents">
+<p>The counter-based random number generators (CBRNGs) in the Random123 library are described in more detail in <a href="http://dl.acm.org/citation.cfm?doid=2063405"><em>Parallel Random Numbers: As Easy as 1, 2, 3</em> </a>, which was named the Best Paper at the ACM SC'11 International Conference on High Performance Computing, Networking, Storage, and Analysis. All the CBRNGs in the library conform to a consistent interface. Basically: </p>
+<div class="fragment"><pre class="fragment">
+    value = CBRNGname(counter, key)
+</pre></div><p>Thus, with some care, they can be used interchangeably in applications. (Since code compiled with AES-NI instructions will result in an illegal instruction exception on processors without those instructions, Random123 provides a <a class="el" href="sse_8h.html#a0b35a046e85316295476d7d552411044">haveAESNI</a> function that can be used to detect the existence of AES at run-time; user code could use it to either report an error or substitute an alternative compatible CBRNG.)</p>
+<p>The API descriptions below are generic, but apply to all the different <a class="el" href="index.html#families">families</a> of Random123 CBRNGs.</p>
+<h2><a class="anchor" id="arrays"></a>
+Fixed-size Array Types</h2>
+<p>Data is passed into and back from the Random123 functions as <a class="el" href="group__arrayNxW.html">r123arrayNxW</a> types; these types contain fixed-size arrays of W-bit types (<code>uintW_t</code> for the most part, but also a special <a class="el" href="structr123m128i.html">r123m128i</a> wrapper for the <a class="el" href="group__AESNI.html">ARS and AESNI</a> CBRNGs). The counter argument and the return value have the same type, referred to as <code>ctr_type</code> in C++, and  [...]
+<p>In C++, these array types closely resemble the C++0x std::array<N, uintW_t> template, but do not require C++0x libraries or compiler features. C++ programs can access array elements via operator[] <code>r</code>[0], ... <code>r</code>[N-1], or via most of the capabilities of a C++ "Container" e.g. <code>at()</code>, <code>begin()</code>, <code>end()</code>, <code>size()</code> and others. In addition, containers have <code> incr() </code> and <code> incr(unsigned long long)</cod [...]
+<p>If the compiler environment supports it, <code><a class="el" href="array_8h.html">Random123/array.h</a></code> also declares <code><a class="el" href="structr123array1xm128i.html">r123array1xm128i</a></code>, which contains an array of one <code><a class="el" href="structr123m128i.html">r123m128i</a></code>, which in turn is a class wrapping a single element of <code>__m128i</code> SSE type, which can be accessed as <code>r.v</code>[0].m. The <a class="el" href="structr123_1_1ARS1xm12 [...]
+<h2><a class="anchor" id="aliasing"></a>
+A note on aliasing and type-punning</h2>
+<p>It is easiest (though not necessarily fastest) to choose a CBRNG whose <code>ctr_type</code> matches the width of the random data needed by the application, e.g., Philox4x32 for applications that need random data in 32-bit words. If the application's needs don't match the counter's value_type, it is tempting to use "type punning" and pointer casts to interconvert between types. Such conversions require great care and are very difficult to do safely without use of unions or memcpy. See [...]
+<h2><a class="anchor" id="cxxapi"></a>
+C++ API</h2>
+<p>There are four families of CBRNGs in the library: </p>
+<ul>
+<li>
+<a class="el" href="group__ThreefryNxW.html">Threefry</a>: <a class="el" href="group__ThreefryNxW.html#ga1c32939b65f84966c93677f4382ea36d">r123::Threefry2x32</a>, <a class="el" href="group__ThreefryNxW.html#gacb09a2dcfb7389769f0c58f45f132aaa">r123::Threefry4x32</a>, <a class="el" href="group__ThreefryNxW.html#ga2b54dd1b0d20f09239be5f8757f1f3db">r123::Threefry2x64</a>, <a class="el" href="group__ThreefryNxW.html#gae17c98bddf067365508ed0717f865e8b">r123::Threefry4x64</a> </li>
+<li>
+<a class="el" href="group__PhiloxNxW.html">Philox</a>: <a class="el" href="group__PhiloxNxW.html#ga81659a3ee5a1ca9e2e85c5d725a1ea4f">r123::Philox2x32</a>, <a class="el" href="group__PhiloxNxW.html#gaafd54060af05012db410034e3c0ecdc4">r123::Philox4x32</a>, <a class="el" href="group__PhiloxNxW.html#ga616a669079ac25119353416c14d46426">r123::Philox2x64</a>, <a class="el" href="group__PhiloxNxW.html#ga7776f4d481b7c0ac00db70272a1c77f0">r123::Philox4x64</a> </li>
+<li>
+<a class="el" href="structr123_1_1AESNI4x32.html">r123::AESNI4x32</a>, <a class="el" href="structr123_1_1AESNI1xm128i.html">r123::AESNI1xm128i</a> </li>
+<li>
+<a class="el" href="structr123_1_1ARS4x32__R.html">r123::ARS4x32_R</a> </li>
+</ul>
+<p>A <em> counter based RNG </em> (CBRNG) with a name of the form <em>FamilynameN</em>x<em>W</em> is a type G with the three member typedefs:</p>
+<ul>
+<li>
+G::ctr_type, which is an <a class="el" href="group__arrayNxW.html">r123arrayNxW</a> container class. </li>
+<li>
+G::ukey_type, which is an <a class="el" href="group__arrayNxW.html">r123arrayMxV</a> container class. Note that the width, <code>MxV</code> of the key may not be the same as the width <code>NxW</code> of the ctr_type (<a class="el" href="group__PhiloxNxW.html">Philox</a> keys are half as wide as the counter, and future CBRNGs may well have different widths). </li>
+<li>
+G::key_type, which in most cases is identical to G::ukey_type, but is different for the <a class="el" href="group__AESNI.html">AESNI</a> types. In all cases, there is a G::key_type(G::ukey_type) constructor and a G::key_type assignment operator for a G::ukey_type right-hand-side. In general, one can always write: <div class="fragment"><pre class="fragment">  G::ukey_type uk1, uk2;
+  <span class="comment">// user code initializes uk1 and uk2</span>
+  G::key_type  k1(uk1), k2;
+  k2 = uk2;
+</pre></div> </li>
+</ul>
+<p>For most CBRNG's, i.e., any one not in the <a class="el" href="group__AESNI.html">AESNI</a> family, it is also perfectly acceptable to set the elements of a G::key_type directly from application variables. The quality of the results will not be compromised by using highly correlated or "non-random" keys.</p>
+<p>A value <code>g</code> of type <code>G</code> can be invoked as <code>g(c,k)</code>, where <code>c</code> is a value of type <code>G::ctr_type</code> and <code>k</code> is a value of type <code>G::key_type</code>, and <code>g(c,k)</code> returns a value of type <code>G::ctr_type</code>.</p>
+<ul>
+<li>
+g() is a stateless, pure function. That is, g(c,k) may be called any number of times in any context and always returns the same result for the same inputs. In particular, c1==c2 and k1==k2 implies that g(c1,k1) == g(c2,k2). </li>
+<li>
+For constant k, g(*,k) is a bijection. That is, g(c1,k) == g(c2,k) if and only if c1 == c2. </li>
+<li>
+g "randomizes" its inputs. That is, for most sequences of inputs (c1,k1), (c2, k2), ... (including those obtained by following highly regular patterns of incrementing and striding through the counter and user key spaces) the output sequence, g(c1, k1), g(c2, k2), ... looks like a a sequence of uniformly distributed random variables drawn from the set of all ctr_types. </li>
+</ul>
+<p>All the CBRNGs in the library work by iterating a randomization function for a specific number of <em>rounds</em>. Too few rounds and the CBRNG is a poor (perhaps catastrophically poor) random number generator. Too many rounds and time is wasted with little or no improvement in the randomness of the output. Each of the CBRNGs has a specific number of rounds which the authors believe is a reasonable compromise between speed and quality. In all cases, the default number of rounds includ [...]
+<p>Users may, however wish to employ a different numbers of rounds. Each of the above classes is actually a typedef of a more general class with a template parameter that specifies the number of rounds as <em>name</em>_rounds. The template classes all end in <code>_R:</code> </p>
+<ul>
+<li>
+<a class="el" href="group__ThreefryNxW.html">Threefry</a>: <a class="el" href="structr123_1_1Threefry2x32__R.html">r123::Threefry2x32_R</a>, <a class="el" href="structr123_1_1Threefry4x32__R.html">r123::Threefry4x32_R</a>, <a class="el" href="structr123_1_1Threefry2x64__R.html">r123::Threefry2x64_R</a>, <a class="el" href="structr123_1_1Threefry4x64__R.html">r123::Threefry4x64_R</a> </li>
+<li>
+<a class="el" href="group__PhiloxNxW.html">Philox</a>: <a class="el" href="structr123_1_1Philox2x32__R.html">r123::Philox2x32_R</a>, <a class="el" href="structr123_1_1Philox4x32__R.html">r123::Philox4x32_R</a>, <a class="el" href="structr123_1_1Philox2x64__R.html">r123::Philox2x64_R</a>, <a class="el" href="structr123_1_1Philox4x64__R.html">r123::Philox4x64_R</a> </li>
+<li>
+<a class="el" href="structr123_1_1AESNI4x32__R.html">r123::AESNI4x32_R</a>, <a class="el" href="structr123_1_1AESNI1xm128i__R.html">r123::AESNI1xm128i_R</a> </li>
+<li>
+<a class="el" href="structr123_1_1ARS4x32__R.html">r123::ARS4x32_R</a> </li>
+</ul>
+<h2><a class="anchor" id="capi"></a>
+C API</h2>
+<p>A subset of the C++ interface is also directly usable by C programs. All header files may be safely included in C files. The C API to each of the supported RNGs consists of two typedefs, <em>name</em>_ctr_t, <em>name</em>_key_t, two functions <em>name</em>() and <em>name</em>_R(), and the enum <em>name</em>_rounds which specifies the recommended number of rounds. </p>
+<ul>
+<li>
+<em>name</em>(c, k), performs the recommended number of rounds of the <em>name</em> CBRNG. </li>
+<li>
+<em>name_R</em>(R,c,k), performs an R-round version of the <em>name</em> CBRNG. <em>name</em>(c,k) is equivalent to <em>name</em>_R(<em>name</em>_rounds, c, k). </li>
+</ul>
+<p>The <code>_R</code> functions are designed and implemented so that an optimizing compiler can achieve good performance when the number of rounds is a compile-time constant. It is likely that <code>philox4x32_R(10,c,k) </code> will perform much better than <code>philox4x32_R(r,c,k)</code> if <code>r</code> cannot be evaluated at compile-time.</p>
+<p>The supported names for the C API are </p>
+<ul>
+<li>
+<a class="el" href="group__ThreefryNxW.html">threefry</a>: <a class="el" href="threefry_8h.html#af98f648fb8e458ff0c6825cb903734f2">threefry2x32</a>, <a class="el" href="threefry_8h.html#a1636cce9de54f919e8952a42b7f397fd">threefry4x32</a>, <a class="el" href="threefry_8h.html#aea6a4bd5c80354a4f575c9bec2702172">threefry2x64</a>, <a class="el" href="threefry_8h.html#a382d18a49002d2a5e2b2f06d58669d70">threefry4x64</a>. </li>
+<li>
+<a class="el" href="group__PhiloxNxW.html">philox</a>: <a class="el" href="philox_8h.html#ab2496424917f063a4990f01943a07fe0">philox2x32</a>, <a class="el" href="philox_8h.html#a432a3df828dd51acd0b7ec2fee1d4d7e">philox4x32</a>, <a class="el" href="philox_8h.html#ae6b57a71e4efa369cc19416fc088b5a5">philox2x64</a>, <a class="el" href="philox_8h.html#a62fb1b4d9775396303ebb2a801fea8e6">philox4x64</a>. </li>
+<li>
+<a class="el" href="group__AESNI.html#gab13b093252d4bb3389d27d4e3b04dae8">ars4x32_R</a>, <a class="el" href="group__AESNI.html#gaddc6efc2007f6f66ee914eb7074cff1e">ars1xm128i_R</a> </li>
+<li>
+<a class="el" href="group__AESNI.html#gae3950c524818b49d1cdfad481880a33a">aesni4x32</a>, <a class="el" href="group__AESNI.html#ga3ba5daca2d4d076ece24900084e71311">aesni1xm128i</a> </li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/Engine_8hpp.html b/docs/html/Engine_8hpp.html
new file mode 100644
index 0000000..25e6f1c
--- /dev/null
+++ b/docs/html/Engine_8hpp.html
@@ -0,0 +1,95 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Random123/conventional/Engine.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Classes</a> |
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<h1>Random123/conventional/Engine.hpp File Reference</h1>  </div>
+</div>
+<div class="contents">
+<code>#include "../features/compilerfeatures.h"</code><br/>
+<code>#include "../array.h"</code><br/>
+<code>#include <limits></code><br/>
+<code>#include <stdexcept></code><br/>
+<code>#include <sstream></code><br/>
+<code>#include <algorithm></code><br/>
+<code>#include <vector></code><br/>
+
+<p><a href="Engine_8hpp_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Engine.html">r123::Engine< CBRNG ></a></td></tr>
+<tr><td colspan="2"><h2><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacer123.html">r123</a></td></tr>
+</table>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/Engine_8hpp_source.html b/docs/html/Engine_8hpp_source.html
new file mode 100644
index 0000000..cec4973
--- /dev/null
+++ b/docs/html/Engine_8hpp_source.html
@@ -0,0 +1,305 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Random123/conventional/Engine.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+<div class="header">
+  <div class="headertitle">
+<h1>Random123/conventional/Engine.hpp</h1>  </div>
+</div>
+<div class="contents">
+<a href="Engine_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
+<a name="l00002"></a>00002 <span class="comment">Copyright 2010-2011, D. E. Shaw Research.</span>
+<a name="l00003"></a>00003 <span class="comment">All rights reserved.</span>
+<a name="l00004"></a>00004 <span class="comment"></span>
+<a name="l00005"></a>00005 <span class="comment">Redistribution and use in source and binary forms, with or without</span>
+<a name="l00006"></a>00006 <span class="comment">modification, are permitted provided that the following conditions are</span>
+<a name="l00007"></a>00007 <span class="comment">met:</span>
+<a name="l00008"></a>00008 <span class="comment"></span>
+<a name="l00009"></a>00009 <span class="comment">* Redistributions of source code must retain the above copyright</span>
+<a name="l00010"></a>00010 <span class="comment">  notice, this list of conditions, and the following disclaimer.</span>
+<a name="l00011"></a>00011 <span class="comment"></span>
+<a name="l00012"></a>00012 <span class="comment">* Redistributions in binary form must reproduce the above copyright</span>
+<a name="l00013"></a>00013 <span class="comment">  notice, this list of conditions, and the following disclaimer in the</span>
+<a name="l00014"></a>00014 <span class="comment">  documentation and/or other materials provided with the distribution.</span>
+<a name="l00015"></a>00015 <span class="comment"></span>
+<a name="l00016"></a>00016 <span class="comment">* Neither the name of D. E. Shaw Research nor the names of its</span>
+<a name="l00017"></a>00017 <span class="comment">  contributors may be used to endorse or promote products derived from</span>
+<a name="l00018"></a>00018 <span class="comment">  this software without specific prior written permission.</span>
+<a name="l00019"></a>00019 <span class="comment"></span>
+<a name="l00020"></a>00020 <span class="comment">THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS</span>
+<a name="l00021"></a>00021 <span class="comment">"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT</span>
+<a name="l00022"></a>00022 <span class="comment">LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR</span>
+<a name="l00023"></a>00023 <span class="comment">A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT</span>
+<a name="l00024"></a>00024 <span class="comment">OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,</span>
+<a name="l00025"></a>00025 <span class="comment">SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT</span>
+<a name="l00026"></a>00026 <span class="comment">LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,</span>
+<a name="l00027"></a>00027 <span class="comment">DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY</span>
+<a name="l00028"></a>00028 <span class="comment">THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT</span>
+<a name="l00029"></a>00029 <span class="comment">(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE</span>
+<a name="l00030"></a>00030 <span class="comment">OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span>
+<a name="l00031"></a>00031 <span class="comment">*/</span>
+<a name="l00032"></a>00032 <span class="preprocessor">#ifndef __Engine_dot_hpp_</span>
+<a name="l00033"></a>00033 <span class="preprocessor"></span><span class="preprocessor">#define __Engine_dot_hpp_</span>
+<a name="l00034"></a>00034 <span class="preprocessor"></span>
+<a name="l00035"></a>00035 <span class="preprocessor">#include "../features/compilerfeatures.h"</span>
+<a name="l00036"></a>00036 <span class="preprocessor">#include "../array.h"</span>
+<a name="l00037"></a>00037 <span class="preprocessor">#include <limits></span>
+<a name="l00038"></a>00038 <span class="preprocessor">#include <stdexcept></span>
+<a name="l00039"></a>00039 <span class="preprocessor">#include <sstream></span>
+<a name="l00040"></a>00040 <span class="preprocessor">#include <algorithm></span>
+<a name="l00041"></a>00041 <span class="preprocessor">#include <vector></span>
+<a name="l00042"></a>00042 <span class="preprocessor">#if R123_USE_CXX11_TYPE_TRAITS</span>
+<a name="l00043"></a>00043 <span class="preprocessor"></span><span class="preprocessor">#include <type_traits></span>
+<a name="l00044"></a>00044 <span class="preprocessor">#endif</span>
+<a name="l00045"></a>00045 <span class="preprocessor"></span>
+<a name="l00046"></a>00046 <span class="keyword">namespace </span>r123{
+<a name="l00067"></a>00067 <span class="keyword">template</span><<span class="keyword">typename</span> CBRNG>
+<a name="l00068"></a><a class="code" href="structr123_1_1Engine.html">00068</a> <span class="keyword">struct </span><a class="code" href="structr123_1_1Engine.html">Engine</a> {
+<a name="l00069"></a><a class="code" href="structr123_1_1Engine.html#a45ee0086cf8cd6d10febb76dc88f8b22">00069</a>     <span class="keyword">typedef</span> CBRNG cbrng_type;
+<a name="l00070"></a><a class="code" href="structr123_1_1Engine.html#a96e0f5f039d5efd6aae77b63bafaad90">00070</a>     <span class="keyword">typedef</span> <span class="keyword">typename</span> CBRNG::ctr_type ctr_type;
+<a name="l00071"></a><a class="code" href="structr123_1_1Engine.html#a18132a79d2327990c4809b37300eddc3">00071</a>     <span class="keyword">typedef</span> <span class="keyword">typename</span> CBRNG::key_type key_type;
+<a name="l00072"></a><a class="code" href="structr123_1_1Engine.html#a32973bdda8697bcbb4dde11c0366a5e3">00072</a>     <span class="keyword">typedef</span> <span class="keyword">typename</span> CBRNG::ukey_type ukey_type;
+<a name="l00073"></a><a class="code" href="structr123_1_1Engine.html#a3d7cb66d43f99f5e227990af985ecb45">00073</a>     <span class="keyword">typedef</span> <span class="keyword">typename</span> ctr_type::value_type result_type;
+<a name="l00074"></a><a class="code" href="structr123_1_1Engine.html#a8fb9eb1ab76ad9b5374a47cf84ecd306">00074</a>     <span class="keyword">typedef</span> <span class="keywordtype">size_t</span> elem_type;
+<a name="l00075"></a>00075 
+<a name="l00076"></a>00076 <span class="keyword">protected</span>:
+<a name="l00077"></a><a class="code" href="structr123_1_1Engine.html#a5e430e850badcc4fd0f74de4a49a673b">00077</a>     <a class="code" href="structr123_1_1Engine.html#a45ee0086cf8cd6d10febb76dc88f8b22">cbrng_type</a> <a class="code" href="structr123_1_1Engine.html#a5e430e850badcc4fd0f74de4a49a673b">b</a>;
+<a name="l00078"></a><a class="code" href="structr123_1_1Engine.html#adb9e1841a81f213a115e9f092f5c4654">00078</a>     <a class="code" href="structr123_1_1Engine.html#a18132a79d2327990c4809b37300eddc3">key_type</a> <a class="code" href="structr123_1_1Engine.html#adb9e1841a81f213a115e9f092f5c4654">key</a>;
+<a name="l00079"></a><a class="code" href="structr123_1_1Engine.html#a11a79253c3a7b07e697f7bf4c7edb52f">00079</a>     <a class="code" href="structr123_1_1Engine.html#a32973bdda8697bcbb4dde11c0366a5e3">ukey_type</a> <a class="code" href="structr123_1_1Engine.html#a11a79253c3a7b07e697f7bf4c7edb52f">ukey</a>;
+<a name="l00080"></a><a class="code" href="structr123_1_1Engine.html#afb056ed93053f4175aabc9f4e5dd7b8d">00080</a>     <a class="code" href="structr123_1_1Engine.html#a96e0f5f039d5efd6aae77b63bafaad90">ctr_type</a> <a class="code" href="structr123_1_1Engine.html#afb056ed93053f4175aabc9f4e5dd7b8d">c</a>;
+<a name="l00081"></a><a class="code" href="structr123_1_1Engine.html#a7b40128e9dc7427cd13d27477647b319">00081</a>     <a class="code" href="structr123_1_1Engine.html#a8fb9eb1ab76ad9b5374a47cf84ecd306">elem_type</a> <a class="code" href="structr123_1_1Engine.html#a7b40128e9dc7427cd13d27477647b319">elem</a>;
+<a name="l00082"></a><a class="code" href="structr123_1_1Engine.html#a6169d4fbce1fd7725fabda4c693bf250">00082</a>     <a class="code" href="structr123_1_1Engine.html#a96e0f5f039d5efd6aae77b63bafaad90">ctr_type</a> <a class="code" href="structr123_1_1Engine.html#a6169d4fbce1fd7725fabda4c693bf250">v</a>;
+<a name="l00083"></a>00083 
+<a name="l00084"></a><a class="code" href="structr123_1_1Engine.html#aa7ad87d7238a0f820ee37640071dee7d">00084</a>     <span class="keywordtype">void</span> <a class="code" href="structr123_1_1Engine.html#aa7ad87d7238a0f820ee37640071dee7d">fix_invariant</a>(){
+<a name="l00085"></a>00085         <span class="keywordflow">if</span>( <a class="code" href="structr123_1_1Engine.html#a7b40128e9dc7427cd13d27477647b319">elem</a> != 0 ) {
+<a name="l00086"></a>00086             <a class="code" href="structr123_1_1Engine.html#a6169d4fbce1fd7725fabda4c693bf250">v</a> = <a class="code" href="structr123_1_1Engine.html#a5e430e850badcc4fd0f74de4a49a673b">b</a>(<a class="code" href="structr123_1_1Engine.html#afb056ed93053f4175aabc9f4e5dd7b8d">c</a>, <a class="code" href="structr123_1_1Engine.html#adb9e1841a81f213a115e9f092f5c4654">key</a>);
+<a name="l00087"></a>00087         }
+<a name="l00088"></a>00088     }        
+<a name="l00089"></a>00089 <span class="keyword">public</span>:
+<a name="l00090"></a><a class="code" href="structr123_1_1Engine.html#ac5676bbe189b0cdc1bef0dd812262ccd">00090</a>     <span class="keyword">explicit</span> <a class="code" href="structr123_1_1Engine.html#ac5676bbe189b0cdc1bef0dd812262ccd">Engine</a>() : <a class="code" href="structr123_1_1Engine.html#a5e430e850badcc4fd0f74de4a49a673b">b</a>(), <a class="code" href="structr123_1_1Engine.html#afb056ed93053f4175aabc9f4e5dd7b8d">c</a>(), <a class="code" href="structr123_1_1Engine.html#a7b401 [...]
+<a name="l00091"></a>00091         <a class="code" href="structr123_1_1Engine.html#a32973bdda8697bcbb4dde11c0366a5e3">ukey_type</a> x = {{}};
+<a name="l00092"></a>00092         <a class="code" href="structr123_1_1Engine.html#a11a79253c3a7b07e697f7bf4c7edb52f">ukey</a> = x;
+<a name="l00093"></a>00093         <a class="code" href="structr123_1_1Engine.html#adb9e1841a81f213a115e9f092f5c4654">key</a> = <a class="code" href="structr123_1_1Engine.html#a11a79253c3a7b07e697f7bf4c7edb52f">ukey</a>;
+<a name="l00094"></a>00094     }
+<a name="l00095"></a><a class="code" href="structr123_1_1Engine.html#ae1a249af828cfdac77db6c16e3f8f8eb">00095</a>     <span class="keyword">explicit</span> <a class="code" href="structr123_1_1Engine.html#ae1a249af828cfdac77db6c16e3f8f8eb">Engine</a>(<a class="code" href="structr123_1_1Engine.html#a3d7cb66d43f99f5e227990af985ecb45">result_type</a> r) : <a class="code" href="structr123_1_1Engine.html#a5e430e850badcc4fd0f74de4a49a673b">b</a>(), <a class="code" href="structr123_1_1Engine.htm [...]
+<a name="l00096"></a>00096         <a class="code" href="structr123_1_1Engine.html#a32973bdda8697bcbb4dde11c0366a5e3">ukey_type</a> x = {{<span class="keyword">typename</span> ukey_type::value_type(r)}};
+<a name="l00097"></a>00097         <a class="code" href="structr123_1_1Engine.html#a11a79253c3a7b07e697f7bf4c7edb52f">ukey</a> = x;
+<a name="l00098"></a>00098         <a class="code" href="structr123_1_1Engine.html#adb9e1841a81f213a115e9f092f5c4654">key</a> = <a class="code" href="structr123_1_1Engine.html#a11a79253c3a7b07e697f7bf4c7edb52f">ukey</a>;
+<a name="l00099"></a>00099     }
+<a name="l00100"></a>00100     <span class="comment">// 26.5.3 says that the SeedSeq templates shouldn't particpate in</span>
+<a name="l00101"></a>00101     <span class="comment">// overload resolution unless the type qualifies as a SeedSeq.</span>
+<a name="l00102"></a>00102     <span class="comment">// How that is determined is unspecified, except that "as a</span>
+<a name="l00103"></a>00103     <span class="comment">// minimum a type shall not qualify as a SeedSeq if it is</span>
+<a name="l00104"></a>00104     <span class="comment">// implicitly convertible to a result_type."  </span>
+<a name="l00105"></a>00105     <span class="comment">//</span>
+<a name="l00106"></a>00106     <span class="comment">// First, we make sure that even the non-const copy constructor</span>
+<a name="l00107"></a>00107     <span class="comment">// works as expected.  In addition, if we've got C++0x</span>
+<a name="l00108"></a>00108     <span class="comment">// type_traits, we use enable_if and is_convertible to implement</span>
+<a name="l00109"></a>00109     <span class="comment">// the convertible-to-result_type restriction.  Otherwise, the</span>
+<a name="l00110"></a>00110     <span class="comment">// template is unconditional and will match in some surpirsing</span>
+<a name="l00111"></a>00111     <span class="comment">// and undesirable situations.</span>
+<a name="l00112"></a><a class="code" href="structr123_1_1Engine.html#a37dd55cee849b59d678f74780f785672">00112</a>     <a class="code" href="structr123_1_1Engine.html#a37dd55cee849b59d678f74780f785672">Engine</a>(<a class="code" href="structr123_1_1Engine.html">Engine</a>& e) : <a class="code" href="structr123_1_1Engine.html#a5e430e850badcc4fd0f74de4a49a673b">b</a>(e.<a class="code" href="structr123_1_1Engine.html#a5e430e850badcc4fd0f74de4a49a673b">b</a>), <a class="code" href="struct [...]
+<a name="l00113"></a>00113         <a class="code" href="structr123_1_1Engine.html#adb9e1841a81f213a115e9f092f5c4654">key</a> = <a class="code" href="structr123_1_1Engine.html#a11a79253c3a7b07e697f7bf4c7edb52f">ukey</a>;
+<a name="l00114"></a>00114         <a class="code" href="structr123_1_1Engine.html#aa7ad87d7238a0f820ee37640071dee7d">fix_invariant</a>();
+<a name="l00115"></a>00115     }
+<a name="l00116"></a><a class="code" href="structr123_1_1Engine.html#a478b486b166316597a51ffdd7b5b2d0c">00116</a>     <a class="code" href="structr123_1_1Engine.html#a478b486b166316597a51ffdd7b5b2d0c">Engine</a>(<span class="keyword">const</span> <a class="code" href="structr123_1_1Engine.html">Engine</a>& e) : <a class="code" href="structr123_1_1Engine.html#a5e430e850badcc4fd0f74de4a49a673b">b</a>(e.<a class="code" href="structr123_1_1Engine.html#a5e430e850badcc4fd0f74de4a49a673b">b [...]
+<a name="l00117"></a>00117         <a class="code" href="structr123_1_1Engine.html#adb9e1841a81f213a115e9f092f5c4654">key</a> = <a class="code" href="structr123_1_1Engine.html#a11a79253c3a7b07e697f7bf4c7edb52f">ukey</a>;
+<a name="l00118"></a>00118         <a class="code" href="structr123_1_1Engine.html#aa7ad87d7238a0f820ee37640071dee7d">fix_invariant</a>();
+<a name="l00119"></a>00119     }
+<a name="l00120"></a>00120 
+<a name="l00121"></a>00121     <span class="keyword">template</span> <<span class="keyword">typename</span> SeedSeq>
+<a name="l00122"></a><a class="code" href="structr123_1_1Engine.html#a52b968cfefe413441d668b3013de023a">00122</a>     <span class="keyword">explicit</span> <a class="code" href="structr123_1_1Engine.html#ac5676bbe189b0cdc1bef0dd812262ccd">Engine</a>(SeedSeq &s
+<a name="l00123"></a>00123 #<span class="keywordflow">if</span> R123_USE_CXX11_TYPE_TRAITS
+<a name="l00124"></a>00124                     , <span class="keyword">typename</span> std::enable_if<!std::is_convertible<SeedSeq, result_type>::value>::type* =0
+<a name="l00125"></a>00125 #endif
+<a name="l00126"></a>00126                     )
+<a name="l00127"></a>00127         : <a class="code" href="structr123_1_1Engine.html#a5e430e850badcc4fd0f74de4a49a673b">b</a>(), <a class="code" href="structr123_1_1Engine.html#afb056ed93053f4175aabc9f4e5dd7b8d">c</a>(), <a class="code" href="structr123_1_1Engine.html#a7b40128e9dc7427cd13d27477647b319">elem</a>() {
+<a name="l00128"></a>00128         <a class="code" href="structr123_1_1Engine.html#a11a79253c3a7b07e697f7bf4c7edb52f">ukey</a> = <a class="code" href="structr123_1_1Engine.html#aff36bc97d11bc66f6c0edb75d8dc88e5">ukey_type::seed</a>(s);
+<a name="l00129"></a>00129         <a class="code" href="structr123_1_1Engine.html#adb9e1841a81f213a115e9f092f5c4654">key</a> = <a class="code" href="structr123_1_1Engine.html#a11a79253c3a7b07e697f7bf4c7edb52f">ukey</a>;
+<a name="l00130"></a>00130     }
+<a name="l00131"></a><a class="code" href="structr123_1_1Engine.html#a93429593bdb12b202b4b8ed38fe08bc4">00131</a>     <span class="keywordtype">void</span> <a class="code" href="structr123_1_1Engine.html#a93429593bdb12b202b4b8ed38fe08bc4">seed</a>(<a class="code" href="structr123_1_1Engine.html#a3d7cb66d43f99f5e227990af985ecb45">result_type</a> r){
+<a name="l00132"></a>00132         *<span class="keyword">this</span> = <a class="code" href="structr123_1_1Engine.html#ac5676bbe189b0cdc1bef0dd812262ccd">Engine</a>(r);
+<a name="l00133"></a>00133     }
+<a name="l00134"></a>00134     <span class="keyword">template</span> <<span class="keyword">typename</span> SeedSeq>
+<a name="l00135"></a><a class="code" href="structr123_1_1Engine.html#ac4d05ee820a1eb70e76cabb14645dad4">00135</a>     <span class="keywordtype">void</span> <a class="code" href="structr123_1_1Engine.html#aff36bc97d11bc66f6c0edb75d8dc88e5">seed</a>(SeedSeq &s
+<a name="l00136"></a>00136 #<span class="keywordflow">if</span> R123_USE_CXX11_TYPE_TRAITS
+<a name="l00137"></a>00137                     , <span class="keyword">typename</span> std::enable_if<!std::is_convertible<SeedSeq, result_type>::value>::type* =0
+<a name="l00138"></a>00138 #endif
+<a name="l00139"></a>00139               ){ 
+<a name="l00140"></a>00140         *<span class="keyword">this</span> = <a class="code" href="structr123_1_1Engine.html#ac5676bbe189b0cdc1bef0dd812262ccd">Engine</a>(s);
+<a name="l00141"></a>00141     }
+<a name="l00142"></a><a class="code" href="structr123_1_1Engine.html#aff36bc97d11bc66f6c0edb75d8dc88e5">00142</a>     <span class="keywordtype">void</span> <a class="code" href="structr123_1_1Engine.html#aff36bc97d11bc66f6c0edb75d8dc88e5">seed</a>(){
+<a name="l00143"></a>00143         *<span class="keyword">this</span> = <a class="code" href="structr123_1_1Engine.html#ac5676bbe189b0cdc1bef0dd812262ccd">Engine</a>();
+<a name="l00144"></a>00144     }
+<a name="l00145"></a><a class="code" href="structr123_1_1Engine.html#a606e3ba824542e52f12df1345126e721">00145</a>     <span class="keyword">friend</span> <span class="keywordtype">bool</span> <a class="code" href="structr123_1_1Engine.html#a606e3ba824542e52f12df1345126e721">operator==</a>(<span class="keyword">const</span> <a class="code" href="structr123_1_1Engine.html">Engine</a>& lhs, <span class="keyword">const</span> <a class="code" href="structr123_1_1Engine.html">Engine</a>&am [...]
+<a name="l00146"></a>00146         <span class="keywordflow">return</span> lhs.<a class="code" href="structr123_1_1Engine.html#afb056ed93053f4175aabc9f4e5dd7b8d">c</a>==rhs.<a class="code" href="structr123_1_1Engine.html#afb056ed93053f4175aabc9f4e5dd7b8d">c</a> && lhs.<a class="code" href="structr123_1_1Engine.html#a7b40128e9dc7427cd13d27477647b319">elem</a> == rhs.<a class="code" href="structr123_1_1Engine.html#a7b40128e9dc7427cd13d27477647b319">elem</a> && lhs.<a class= [...]
+<a name="l00147"></a>00147     }
+<a name="l00148"></a><a class="code" href="structr123_1_1Engine.html#af0947cdcfc03aef7ec30c9fafa660445">00148</a>     <span class="keyword">friend</span> <span class="keywordtype">bool</span> <a class="code" href="structr123_1_1Engine.html#af0947cdcfc03aef7ec30c9fafa660445">operator!=</a>(<span class="keyword">const</span> <a class="code" href="structr123_1_1Engine.html">Engine</a>& lhs, <span class="keyword">const</span> <a class="code" href="structr123_1_1Engine.html">Engine</a>&am [...]
+<a name="l00149"></a>00149         <span class="keywordflow">return</span> lhs.<a class="code" href="structr123_1_1Engine.html#afb056ed93053f4175aabc9f4e5dd7b8d">c</a>!=rhs.<a class="code" href="structr123_1_1Engine.html#afb056ed93053f4175aabc9f4e5dd7b8d">c</a> || lhs.<a class="code" href="structr123_1_1Engine.html#a7b40128e9dc7427cd13d27477647b319">elem</a> != rhs.<a class="code" href="structr123_1_1Engine.html#a7b40128e9dc7427cd13d27477647b319">elem</a> || lhs.<a class="code" href="str [...]
+<a name="l00150"></a>00150     }
+<a name="l00151"></a>00151 
+<a name="l00152"></a><a class="code" href="structr123_1_1Engine.html#ae0321571f689fca00c608d11ecad7d8d">00152</a>     <span class="keyword">friend</span> std::ostream& <a class="code" href="structr123_1_1Engine.html#ae0321571f689fca00c608d11ecad7d8d">operator<<</a>(std::ostream& os, <span class="keyword">const</span> <a class="code" href="structr123_1_1Engine.html">Engine</a>& be){
+<a name="l00153"></a>00153         <span class="keywordflow">return</span> os << be.<a class="code" href="structr123_1_1Engine.html#afb056ed93053f4175aabc9f4e5dd7b8d">c</a> << <span class="stringliteral">" "</span> << be.<a class="code" href="structr123_1_1Engine.html#a11a79253c3a7b07e697f7bf4c7edb52f">ukey</a> << <span class="stringliteral">" "</span> << be.<a class="code" href="structr123_1_1Engine.html#a7b40128e9dc7427cd13d27477647b319 [...]
+<a name="l00154"></a>00154     }
+<a name="l00155"></a>00155 
+<a name="l00156"></a><a class="code" href="structr123_1_1Engine.html#ae708b771ab5ac17700d34bad875a16d9">00156</a>     <span class="keyword">friend</span> std::istream& <a class="code" href="structr123_1_1Engine.html#ae708b771ab5ac17700d34bad875a16d9">operator>></a>(std::istream& is, <a class="code" href="structr123_1_1Engine.html">Engine</a>& be){
+<a name="l00157"></a>00157         is >> be.<a class="code" href="structr123_1_1Engine.html#afb056ed93053f4175aabc9f4e5dd7b8d">c</a> >> be.<a class="code" href="structr123_1_1Engine.html#a11a79253c3a7b07e697f7bf4c7edb52f">ukey</a> >> be.<a class="code" href="structr123_1_1Engine.html#a7b40128e9dc7427cd13d27477647b319">elem</a>;
+<a name="l00158"></a>00158         be.<a class="code" href="structr123_1_1Engine.html#adb9e1841a81f213a115e9f092f5c4654">key</a> = be.<a class="code" href="structr123_1_1Engine.html#a11a79253c3a7b07e697f7bf4c7edb52f">ukey</a>;
+<a name="l00159"></a>00159         be.<a class="code" href="structr123_1_1Engine.html#aa7ad87d7238a0f820ee37640071dee7d">fix_invariant</a>();
+<a name="l00160"></a>00160         <span class="keywordflow">return</span> is;
+<a name="l00161"></a>00161     }
+<a name="l00162"></a>00162 
+<a name="l00163"></a>00163     <span class="comment">// The <random> shipped with MacOS Xcode 4.5.2 imposes a</span>
+<a name="l00164"></a>00164     <span class="comment">// non-standard requirement that URNGs also have static data</span>
+<a name="l00165"></a>00165     <span class="comment">// members: _Min and _Max.  Later versions of libc++ impose the</span>
+<a name="l00166"></a>00166     <span class="comment">// requirement only when constexpr isn't supported.  Although the</span>
+<a name="l00167"></a>00167     <span class="comment">// Xcode 4.5.2 requirement is clearly non-standard, it is unlikely</span>
+<a name="l00168"></a>00168     <span class="comment">// to be fixed and it is very easy work around.  We certainly</span>
+<a name="l00169"></a>00169     <span class="comment">// don't want to go to great lengths to accommodate every buggy</span>
+<a name="l00170"></a>00170     <span class="comment">// library we come across, but in this particular case, the effort</span>
+<a name="l00171"></a>00171     <span class="comment">// is low and the benefit is high, so it's worth doing.  Thanks to</span>
+<a name="l00172"></a>00172     <span class="comment">// Yan Zhou for pointing this out to us.  See similar code in</span>
+<a name="l00173"></a>00173     <span class="comment">// ../MicroURNG.hpp</span>
+<a name="l00174"></a><a class="code" href="structr123_1_1Engine.html#aa73e4d27847915f1438fd37b30777111">00174</a>     <span class="keyword">const</span> <span class="keyword">static</span> <a class="code" href="structr123_1_1Engine.html#a3d7cb66d43f99f5e227990af985ecb45">result_type</a> <a class="code" href="structr123_1_1Engine.html#aa73e4d27847915f1438fd37b30777111">_Min</a> = 0;
+<a name="l00175"></a><a class="code" href="structr123_1_1Engine.html#ae549f81e966b0414bcaf0f24b566ebd8">00175</a>     <span class="keyword">const</span> <span class="keyword">static</span> <a class="code" href="structr123_1_1Engine.html#a3d7cb66d43f99f5e227990af985ecb45">result_type</a> <a class="code" href="structr123_1_1Engine.html#ae549f81e966b0414bcaf0f24b566ebd8">_Max</a> = ~((result_type)0);
+<a name="l00176"></a>00176 
+<a name="l00177"></a><a class="code" href="structr123_1_1Engine.html#af5441fc62932c3d099f8b16150d2aa81">00177</a>     <span class="keyword">static</span> R123_CONSTEXPR <a class="code" href="structr123_1_1Engine.html#a3d7cb66d43f99f5e227990af985ecb45">result_type</a> min <a class="code" href="structr123_1_1Engine.html#af5441fc62932c3d099f8b16150d2aa81">R123_NO_MACRO_SUBST</a> () { <span class="keywordflow">return</span> <a class="code" href="structr123_1_1Engine.html#aa73e4d27847915f1438 [...]
+<a name="l00178"></a><a class="code" href="structr123_1_1Engine.html#a112318f7d0015ecf4c3c6a8a5c76371b">00178</a>     <span class="keyword">static</span> R123_CONSTEXPR <a class="code" href="structr123_1_1Engine.html#a3d7cb66d43f99f5e227990af985ecb45">result_type</a> max <a class="code" href="structr123_1_1Engine.html#a112318f7d0015ecf4c3c6a8a5c76371b">R123_NO_MACRO_SUBST</a> () { <span class="keywordflow">return</span> <a class="code" href="structr123_1_1Engine.html#ae549f81e966b0414bca [...]
+<a name="l00179"></a>00179 
+<a name="l00180"></a><a class="code" href="structr123_1_1Engine.html#aca309d0b4f2a8fff1f6f2ab38c6caf93">00180</a>     <a class="code" href="structr123_1_1Engine.html#a3d7cb66d43f99f5e227990af985ecb45">result_type</a> <a class="code" href="structr123_1_1Engine.html#aca309d0b4f2a8fff1f6f2ab38c6caf93">operator()</a>(){
+<a name="l00181"></a>00181         <span class="keywordflow">if</span>( <a class="code" href="structr123_1_1Engine.html#afb056ed93053f4175aabc9f4e5dd7b8d">c</a>.size() == 1 )     <span class="comment">// short-circuit the scalar case.  Compilers aren't mind-readers.</span>
+<a name="l00182"></a>00182             <span class="keywordflow">return</span> <a class="code" href="structr123_1_1Engine.html#a5e430e850badcc4fd0f74de4a49a673b">b</a>(<a class="code" href="structr123_1_1Engine.html#afb056ed93053f4175aabc9f4e5dd7b8d">c</a>.incr(), <a class="code" href="structr123_1_1Engine.html#adb9e1841a81f213a115e9f092f5c4654">key</a>)[0];
+<a name="l00183"></a>00183         <span class="keywordflow">if</span>( <a class="code" href="structr123_1_1Engine.html#a7b40128e9dc7427cd13d27477647b319">elem</a> == 0 ){
+<a name="l00184"></a>00184             <a class="code" href="structr123_1_1Engine.html#a6169d4fbce1fd7725fabda4c693bf250">v</a> = <a class="code" href="structr123_1_1Engine.html#a5e430e850badcc4fd0f74de4a49a673b">b</a>(<a class="code" href="structr123_1_1Engine.html#afb056ed93053f4175aabc9f4e5dd7b8d">c</a>.incr(), <a class="code" href="structr123_1_1Engine.html#adb9e1841a81f213a115e9f092f5c4654">key</a>);
+<a name="l00185"></a>00185             <a class="code" href="structr123_1_1Engine.html#a7b40128e9dc7427cd13d27477647b319">elem</a> = <a class="code" href="structr123_1_1Engine.html#afb056ed93053f4175aabc9f4e5dd7b8d">c</a>.size();
+<a name="l00186"></a>00186         }
+<a name="l00187"></a>00187         <span class="keywordflow">return</span> <a class="code" href="structr123_1_1Engine.html#a6169d4fbce1fd7725fabda4c693bf250">v</a>[--<a class="code" href="structr123_1_1Engine.html#a7b40128e9dc7427cd13d27477647b319">elem</a>];
+<a name="l00188"></a>00188     }
+<a name="l00189"></a>00189 
+<a name="l00190"></a><a class="code" href="structr123_1_1Engine.html#a82a56c2c02b146dceb68ef3fd0a969fb">00190</a>     <span class="keywordtype">void</span> <a class="code" href="structr123_1_1Engine.html#a82a56c2c02b146dceb68ef3fd0a969fb">discard</a>(R123_ULONG_LONG skip){
+<a name="l00191"></a>00191         <span class="comment">// don't forget:  elem counts down</span>
+<a name="l00192"></a>00192         <span class="keywordtype">size_t</span> nelem = <a class="code" href="structr123_1_1Engine.html#afb056ed93053f4175aabc9f4e5dd7b8d">c</a>.size();
+<a name="l00193"></a>00193         <span class="keywordtype">size_t</span> sub = skip % nelem;
+<a name="l00194"></a>00194         skip /= nelem;
+<a name="l00195"></a>00195         <span class="keywordflow">if</span> (<a class="code" href="structr123_1_1Engine.html#a7b40128e9dc7427cd13d27477647b319">elem</a> < sub) {
+<a name="l00196"></a>00196             <a class="code" href="structr123_1_1Engine.html#a7b40128e9dc7427cd13d27477647b319">elem</a> += nelem;
+<a name="l00197"></a>00197             skip++;
+<a name="l00198"></a>00198         }
+<a name="l00199"></a>00199         <a class="code" href="structr123_1_1Engine.html#a7b40128e9dc7427cd13d27477647b319">elem</a> -= sub;
+<a name="l00200"></a>00200         <a class="code" href="structr123_1_1Engine.html#afb056ed93053f4175aabc9f4e5dd7b8d">c</a>.incr(skip);
+<a name="l00201"></a>00201         <a class="code" href="structr123_1_1Engine.html#aa7ad87d7238a0f820ee37640071dee7d">fix_invariant</a>();
+<a name="l00202"></a>00202     }
+<a name="l00203"></a>00203          
+<a name="l00204"></a>00204     <span class="comment">//--------------------------</span>
+<a name="l00205"></a>00205     <span class="comment">// Some bonus methods, not required for a Random Number</span>
+<a name="l00206"></a>00206     <span class="comment">// Engine</span>
+<a name="l00207"></a>00207 
+<a name="l00208"></a>00208     <span class="comment">// Constructors and seed() method for ukey_type seem useful</span>
+<a name="l00209"></a>00209     <span class="comment">// We need const and non-const to supersede the SeedSeq template.</span>
+<a name="l00210"></a><a class="code" href="structr123_1_1Engine.html#ab5f45b4eb97995cc45350abee3ec8388">00210</a>     <span class="keyword">explicit</span> <a class="code" href="structr123_1_1Engine.html#ab5f45b4eb97995cc45350abee3ec8388">Engine</a>(<span class="keyword">const</span> <a class="code" href="structr123_1_1Engine.html#a32973bdda8697bcbb4dde11c0366a5e3">ukey_type</a> &uk) : <a class="code" href="structr123_1_1Engine.html#adb9e1841a81f213a115e9f092f5c4654">key</a>(uk), <a  [...]
+<a name="l00211"></a><a class="code" href="structr123_1_1Engine.html#aeb178b9305cbf1fb7e11e8e33a631ba7">00211</a>     <span class="keyword">explicit</span> <a class="code" href="structr123_1_1Engine.html#aeb178b9305cbf1fb7e11e8e33a631ba7">Engine</a>(<a class="code" href="structr123_1_1Engine.html#a32973bdda8697bcbb4dde11c0366a5e3">ukey_type</a> &uk) : <a class="code" href="structr123_1_1Engine.html#adb9e1841a81f213a115e9f092f5c4654">key</a>(uk), <a class="code" href="structr123_1_1En [...]
+<a name="l00212"></a><a class="code" href="structr123_1_1Engine.html#a5c4d68dbbccfc71f467f3c902f5b93da">00212</a>     <span class="keywordtype">void</span> <a class="code" href="structr123_1_1Engine.html#a5c4d68dbbccfc71f467f3c902f5b93da">seed</a>(<span class="keyword">const</span> <a class="code" href="structr123_1_1Engine.html#a32973bdda8697bcbb4dde11c0366a5e3">ukey_type</a>& uk){
+<a name="l00213"></a>00213         *<span class="keyword">this</span> = <a class="code" href="structr123_1_1Engine.html#ac5676bbe189b0cdc1bef0dd812262ccd">Engine</a>(uk);
+<a name="l00214"></a>00214     }        
+<a name="l00215"></a><a class="code" href="structr123_1_1Engine.html#a7bd6d3417cefb904c879f41d2c29e15e">00215</a>     <span class="keywordtype">void</span> <a class="code" href="structr123_1_1Engine.html#a7bd6d3417cefb904c879f41d2c29e15e">seed</a>(<a class="code" href="structr123_1_1Engine.html#a32973bdda8697bcbb4dde11c0366a5e3">ukey_type</a>& uk){
+<a name="l00216"></a>00216         *<span class="keyword">this</span> = <a class="code" href="structr123_1_1Engine.html#ac5676bbe189b0cdc1bef0dd812262ccd">Engine</a>(uk);
+<a name="l00217"></a>00217     }        
+<a name="l00218"></a>00218 
+<a name="l00219"></a>00219     <span class="comment">// Forward the e(counter) to the CBRNG we are templated</span>
+<a name="l00220"></a>00220     <span class="comment">// on, using the current value of the key.</span>
+<a name="l00221"></a><a class="code" href="structr123_1_1Engine.html#af396a7d1656af55805e38f3d9c0fbef7">00221</a>     <a class="code" href="structr123_1_1Engine.html#a96e0f5f039d5efd6aae77b63bafaad90">ctr_type</a> <a class="code" href="structr123_1_1Engine.html#af396a7d1656af55805e38f3d9c0fbef7">operator()</a>(<span class="keyword">const</span> <a class="code" href="structr123_1_1Engine.html#a96e0f5f039d5efd6aae77b63bafaad90">ctr_type</a>& <a class="code" href="structr123_1_1Engine.h [...]
+<a name="l00222"></a>00222         <span class="keywordflow">return</span> <a class="code" href="structr123_1_1Engine.html#a5e430e850badcc4fd0f74de4a49a673b">b</a>(c, <a class="code" href="structr123_1_1Engine.html#adb9e1841a81f213a115e9f092f5c4654">key</a>);
+<a name="l00223"></a>00223     }
+<a name="l00224"></a>00224 
+<a name="l00225"></a>00225     <span class="comment">// Since you can seed *this with a ukey_type, it seems reasonable</span>
+<a name="l00226"></a>00226     <span class="comment">// to allow the caller to know what seed/ukey *this is using.</span>
+<a name="l00227"></a><a class="code" href="structr123_1_1Engine.html#aa7812a494fdb677c2e325db0acfe924a">00227</a>     <a class="code" href="structr123_1_1Engine.html#a32973bdda8697bcbb4dde11c0366a5e3">ukey_type</a> <a class="code" href="structr123_1_1Engine.html#aa7812a494fdb677c2e325db0acfe924a">getseed</a>()<span class="keyword"> const</span>{
+<a name="l00228"></a>00228         <span class="keywordflow">return</span> <a class="code" href="structr123_1_1Engine.html#a11a79253c3a7b07e697f7bf4c7edb52f">ukey</a>;
+<a name="l00229"></a>00229     }
+<a name="l00230"></a>00230 
+<a name="l00231"></a>00231     <span class="comment">// Maybe the caller want's to know the details of</span>
+<a name="l00232"></a>00232     <span class="comment">// the internal state, e.g., so it can call a different</span>
+<a name="l00233"></a>00233     <span class="comment">// bijection with the same counter.</span>
+<a name="l00234"></a><a class="code" href="structr123_1_1Engine.html#a621df886f2a21ffb22e63d9094389173">00234</a>     std::pair<ctr_type, elem_type> <a class="code" href="structr123_1_1Engine.html#a621df886f2a21ffb22e63d9094389173">getcounter</a>()<span class="keyword"> const </span>{
+<a name="l00235"></a>00235         <span class="keywordflow">return</span> make_pair(<a class="code" href="structr123_1_1Engine.html#afb056ed93053f4175aabc9f4e5dd7b8d">c</a>,  <a class="code" href="structr123_1_1Engine.html#a7b40128e9dc7427cd13d27477647b319">elem</a>);
+<a name="l00236"></a>00236     }
+<a name="l00237"></a>00237 
+<a name="l00238"></a>00238     <span class="comment">// And the inverse.</span>
+<a name="l00239"></a><a class="code" href="structr123_1_1Engine.html#a6104bf5ee89450403379d5680bfae172">00239</a>     <span class="keywordtype">void</span> <a class="code" href="structr123_1_1Engine.html#a6104bf5ee89450403379d5680bfae172">setcounter</a>(<span class="keyword">const</span> <a class="code" href="structr123_1_1Engine.html#a96e0f5f039d5efd6aae77b63bafaad90">ctr_type</a>& _c, <a class="code" href="structr123_1_1Engine.html#a8fb9eb1ab76ad9b5374a47cf84ecd306">elem_type</a> _elem){
+<a name="l00240"></a>00240         <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">size_t</span> nelem = <a class="code" href="structr123_1_1Engine.html#afb056ed93053f4175aabc9f4e5dd7b8d">c</a>.size();
+<a name="l00241"></a>00241         <span class="keywordflow">if</span>( <a class="code" href="structr123_1_1Engine.html#a7b40128e9dc7427cd13d27477647b319">elem</a> > nelem )
+<a name="l00242"></a>00242             <span class="keywordflow">throw</span> std::range_error(<span class="stringliteral">"Engine::setcounter called  with elem out of range"</span>);
+<a name="l00243"></a>00243         <a class="code" href="structr123_1_1Engine.html#afb056ed93053f4175aabc9f4e5dd7b8d">c</a> = _c;
+<a name="l00244"></a>00244         <a class="code" href="structr123_1_1Engine.html#a7b40128e9dc7427cd13d27477647b319">elem</a> = _elem;
+<a name="l00245"></a>00245         <a class="code" href="structr123_1_1Engine.html#aa7ad87d7238a0f820ee37640071dee7d">fix_invariant</a>();
+<a name="l00246"></a>00246     }
+<a name="l00247"></a>00247 };
+<a name="l00248"></a>00248 } <span class="comment">// namespace r123</span>
+<a name="l00249"></a>00249 
+<a name="l00250"></a>00250 <span class="preprocessor">#endif</span>
+</pre></div></div>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/ExamplesREADME.html b/docs/html/ExamplesREADME.html
new file mode 100644
index 0000000..a5bb120
--- /dev/null
+++ b/docs/html/ExamplesREADME.html
@@ -0,0 +1,167 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Examples, Tests and Benchmarks</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li class="current"><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<h1>Examples, Tests and Benchmarks </h1>  </div>
+</div>
+<div class="contents">
+<p>The examples/ directory contains tests, examples and timing harnesses for the components of the Random123 library.</p>
+<h2><a class="anchor" id="building"></a>
+Compiling and Running the code</h2>
+<p>Installing and using Random123 requires only the use of the header files, and has no prerequisites other than a reasonable C99 or C++98 compiler.</p>
+<p>With a modern GNU make (3.80 or newer), building and running the core tests and examples can be as easy as running gmake with no arguments. Note, though, that the provided examples/GNUmakefile intentionally avoids setting any of the standard make variables: CC, CXX, CPPFLAGS, CFLAGS, CXXFLAGS, TARGET_ARCH, LDFLAGS, LOADLIBES, LDLIBS. GNU make will inherit settings for these variables from the environment, or they may be set on the command line. If none are set, compilation will procee [...]
+<p>Before putting the Random123 library to use in an application, it is important to test it using the same compiler flags and features that the application will use. In other words, the conventional make variables should be set the same way when testing the library as they will be set when the library is actually compiled into your application. Something like: </p>
+<div class="fragment"><pre class="fragment">gmake CFLAGS=<span class="stringliteral">"-std=c99"</span> CXXFLAGS=<span class="stringliteral">"-std=c++0x"</span> CPPFLAGS=<span class="stringliteral">"/alternate/location/include -O3 -Wall -Wstrict-aliasing=2"</span> TARGET_ARCH=<span class="stringliteral">"-march=native"</span>
+</pre></div><p> would confirm that all is well with optimization on, and output targeted at an architecture with the same capabilities as the machine running the compilation.</p>
+<p>Very old versions of GNU make (pre-2002) or non-GNU make will not work with examples/GNUmakefile.. Lacking a suitably modern GNU make, our advice is to invoke the C or C++ compiler directly on the source files in the examples/ directory. The <a href="file:">file:</a> examples/BUILD.LOG contains a list of sample build commands. They will almost certainly need to be adapted to the target system. For Windows users, BUILDVC.BAT invokes the Microsoft Visual Studio compiler. Edit it as need [...]
+<h2><a class="anchor" id="tests"></a>
+Tests</h2>
+<p>It is recommended that Random123 be tested <b> on the target system, with the target compiler, intended optimization levels, options, target architectures, etc.</b> before relying it. The library uses architecture- and compiler-specific intrinsics, features and assembly language. We have seen cases where one compiler (open64 version 4.2.4) masquerades as another compiler (it defines __GNUC__) accepts extensions specific to the other compiler (__uint128_t) without error or warning, and [...]
+<h3><a class="anchor" id="kat"></a>
+Known Answer Tests</h3>
+<p>Testing that your compiled code computes the same "Known Answers" as the reference implementation which has been subjected to the Crush batteries of statistical tests is critically important.</p>
+<p>The file <code>examples/kat_vectors</code> contains a few thousand "Known Answer
+Test" vectors, i.e., tuples of (method, counter, key, answer). The source file katc.c is incorporated into kat_c.c (C), kat_cpp.cpp (C++), kat_cuda.cu (CUDA) and kat_opencl.c (OpenCL), which are compiled into kat_c, kat_cpp, kat_cuda and kat_opencl, respectively. Each of these will read kat_vectors and verify that the compiled code obtains the same "known answers".</p>
+<p>The kat vectors are not language-specific. Implementations of CBRNGs in other languages could also be validated against <code>kat_vectors</code>. The kat vectors are also byte-order independent. In other words, the CBRNGs in the library should produce the same numerical results on little-endian and big-endian hardware, but this behavior is largely untested.</p>
+<h3><a class="anchor" id="ut"></a>
+Unit Tests</h3>
+<p>examples/ also contains tests of specific components of the library. While not exhaustive, these tests verify that a variety of invariants are satisfied by the public methods (e.g., that incr(N) is the same as incr() N times). They also serve to verify some of the compile-time feature-test logic which, if incorrect can lead to mysterious errors (e.g., is it necessary to <code>include <smmintrin.h></code>). Unit tests include:</p>
+<ul>
+<li>
+ut_features - verifies compile-time feature-test logic. </li>
+<li>
+ut_carray - verifies the capabilities of the <a class="el" href="group__arrayNxW.html">r123arrayNxW</a> types. </li>
+<li>
+ut_M128 - verifies the capabilities of the <a class="el" href="structr123m128i.html">r123m128i</a> type (only when SSE2 is available). </li>
+<li>
+ut_ReinterpretCtr - verifies the <a class="el" href="structr123_1_1ReinterpretCtr.html">r123::ReinterpretCtr</a> wrapper template. </li>
+<li>
+ut_Engine - verifies the capabilities of the <a class="el" href="structr123_1_1Engine.html">r123::Engine</a> wrapper template. </li>
+<li>
+ut_aes - verifies that the <a class="el" href="group__AESNI.html">AESNI</a> cbrngs match known answers from FIPS-197. </li>
+<li>
+ut_gsl - tests the <a class="el" href="gsl__cbrng_8h.html#af561a004eef8e93cdfd6b255a8a1eb75">GSL_CBRNG</a> adapter <b>Requires the GNU Scientific Library</b>. </li>
+</ul>
+<h2><a class="anchor" id="examples"></a>
+Examples</h2>
+<h3><a class="anchor" id="simple"></a>
+Simple examples in C and C++</h3>
+<p>There are two extremely short examples that show all the code necessary to obtain and print a few random numbers in C and C++: </p>
+<ul>
+<li>
+simple.c </li>
+<li>
+simplepp.cpp </li>
+</ul>
+<h3><a class="anchor" id="generation"></a>
+Generation of uniformly distributed real values.</h3>
+<p>The uniformly distributed integers that the CBRNGs produce are rarely what is required by applications. Sampling other distributions is beyond the scope of Random123. Many distributions can be sampled with GSL (using <<a class="el" href="gsl__cbrng_8h.html">Random123/conventional/gsl_cbrng.h</a>> or with C++11's <random> (using <<a class="el" href="MicroURNG_8hpp.html">Random123/MicroURNG.hpp</a>> or <<a class="el" href="Engine_8hpp.html">Random123/conventional/En [...]
+<ul>
+<li>
+uniform.hpp </li>
+<li>
+u01fixedpt.h </li>
+</ul>
+<p>We encourage you to copy these header files and use them (or modify them) to suit your needs. They are not as thoroughly tested or as portable as the headers in the library itself, but they should be safe to use on any platform with IEEE-754 floating point support. They are documented in comments in the files themselves.</p>
+<h3><a class="anchor" id="pi"></a>
+Estimating pi using different APIs</h3>
+<p>Using random numbers to estimate pi is a classic example. The idea is to choose points at random in a square and to count how many of them lie within the inscribed circle. Since the area of the square is 4*r^2 and the area of the circle is pi*r^2, the ratio of the number of points in the circle to the total number of points should approach pi/4 as the number of points grows.</p>
+<p>We give several examples of pi estimation, each of which illustrates a slightly different API</p>
+<ul>
+<li>
+pi_capi - using only the basic C API </li>
+<li>
+pi_cppapi - using only the basic C++ API </li>
+<li>
+pi_u01 - using the C++ API and uniform.hpp </li>
+<li>
+pi_gsl - using a Random123 generator, but a gsl distribution to obtain real-valued random numbers. <b>Requires the GNU Scientific Library</b> </li>
+<li>
+pi_microurng - using a Random123 generator, but a C++0x <random> distribution to obtain real-valued random numbers </li>
+<li>
+pi_cuda - using the Random123 library with CUDA, runnable on an NVIDIA GPU </li>
+<li>
+pi_cudapp - using the C++ API with CUDA, runnable on an NVIDIA GPU </li>
+<li>
+pi_opencl - using the Random123 library with OpenCL, runnable on any OpenCL platform: e.g. NVIDIA or ATI GPUs or Intel or AMD CPUs. The actual compute kernel lives in the <code>pi_opencl_kernel.ocl</code> file and is transformed by <code>gencl.sh</code> into strings that get included in <code>pi_opencl.c</code>, since the OpenCL kernels get compiled for the target OpenCL platform at run-time </li>
+<li>
+pi_aes - uses the AESNI4x32 Random123 generator </li>
+</ul>
+<h2><a class="anchor" id="timers"></a>
+Measuring performance</h2>
+<p>We include some timing harnesses that can be used to measure the performance of these CBRNGs on various platforms. These timing harnesses report a cycles-per-byte (cpB) metric, which should be independent of clock-rate or number of cores, but depends on compilers and the architecture of the processor being run on. They also report aggregate throughput in GB/sec: a more direct measure of performance, but one that depends on clock speed and number of cores being used. The timing harness [...]
+<ul>
+<li>
+time_serial - uses the C API and reports performance for a single core. </li>
+<li>
+timers - uses the C++ API, and is the only tool that reports AESNI1xm128i and ARS1xm128i performance (if your CPU supports the AES-NI instruction extensions). </li>
+<li>
+time_thread - uses the C API and pthreads to report multithreaded performance, uses all cores available on the platform. </li>
+<li>
+time_cuda - uses the C API within NVIDIA CUDA to run on NVIDIA GPUs. </li>
+<li>
+time_opencl - uses the C API within OpenCL to run on GPUs or CPUs. </li>
+</ul>
+<p>time_serial, time_thread, time_cuda, time_opencl all use a common kernel defined in time_random123.h. They all use various util_* header files for utility functions and platform-related boilerplate (also used by the pi_* examples). </p>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/LICENSE.html b/docs/html/LICENSE.html
new file mode 100644
index 0000000..f5370ad
--- /dev/null
+++ b/docs/html/LICENSE.html
@@ -0,0 +1,71 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: </title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li class="current"><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+<p>Copyright 2010-2012, D. E. Shaw Research. All rights reserved.</p>
+<p>Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:</p>
+<p>Redistributions of source code must retain the above copyright notice, this list of conditions, and the following disclaimer.</p>
+<p>Redistributions in binary form must reproduce the above copyright notice, this list of conditions, and the following disclaimer in the documentation and/or other materials provided with the distribution.</p>
+<p>Neither the name of D. E. Shaw Research nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.</p>
+<p>THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PR [...]
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/MicroURNG_8hpp.html b/docs/html/MicroURNG_8hpp.html
new file mode 100644
index 0000000..8ee8b71
--- /dev/null
+++ b/docs/html/MicroURNG_8hpp.html
@@ -0,0 +1,90 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Random123/MicroURNG.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Classes</a> |
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<h1>Random123/MicroURNG.hpp File Reference</h1>  </div>
+</div>
+<div class="contents">
+<code>#include <stdexcept></code><br/>
+<code>#include <limits></code><br/>
+
+<p><a href="MicroURNG_8hpp_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classr123_1_1MicroURNG.html">r123::MicroURNG< CBRNG ></a></td></tr>
+<tr><td colspan="2"><h2><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacer123.html">r123</a></td></tr>
+</table>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/MicroURNG_8hpp_source.html b/docs/html/MicroURNG_8hpp_source.html
new file mode 100644
index 0000000..6017f80
--- /dev/null
+++ b/docs/html/MicroURNG_8hpp_source.html
@@ -0,0 +1,182 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Random123/MicroURNG.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+<div class="header">
+  <div class="headertitle">
+<h1>Random123/MicroURNG.hpp</h1>  </div>
+</div>
+<div class="contents">
+<a href="MicroURNG_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
+<a name="l00002"></a>00002 <span class="comment">Copyright 2010-2011, D. E. Shaw Research.</span>
+<a name="l00003"></a>00003 <span class="comment">All rights reserved.</span>
+<a name="l00004"></a>00004 <span class="comment"></span>
+<a name="l00005"></a>00005 <span class="comment">Redistribution and use in source and binary forms, with or without</span>
+<a name="l00006"></a>00006 <span class="comment">modification, are permitted provided that the following conditions are</span>
+<a name="l00007"></a>00007 <span class="comment">met:</span>
+<a name="l00008"></a>00008 <span class="comment"></span>
+<a name="l00009"></a>00009 <span class="comment">* Redistributions of source code must retain the above copyright</span>
+<a name="l00010"></a>00010 <span class="comment">  notice, this list of conditions, and the following disclaimer.</span>
+<a name="l00011"></a>00011 <span class="comment"></span>
+<a name="l00012"></a>00012 <span class="comment">* Redistributions in binary form must reproduce the above copyright</span>
+<a name="l00013"></a>00013 <span class="comment">  notice, this list of conditions, and the following disclaimer in the</span>
+<a name="l00014"></a>00014 <span class="comment">  documentation and/or other materials provided with the distribution.</span>
+<a name="l00015"></a>00015 <span class="comment"></span>
+<a name="l00016"></a>00016 <span class="comment">* Neither the name of D. E. Shaw Research nor the names of its</span>
+<a name="l00017"></a>00017 <span class="comment">  contributors may be used to endorse or promote products derived from</span>
+<a name="l00018"></a>00018 <span class="comment">  this software without specific prior written permission.</span>
+<a name="l00019"></a>00019 <span class="comment"></span>
+<a name="l00020"></a>00020 <span class="comment">THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS</span>
+<a name="l00021"></a>00021 <span class="comment">"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT</span>
+<a name="l00022"></a>00022 <span class="comment">LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR</span>
+<a name="l00023"></a>00023 <span class="comment">A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT</span>
+<a name="l00024"></a>00024 <span class="comment">OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,</span>
+<a name="l00025"></a>00025 <span class="comment">SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT</span>
+<a name="l00026"></a>00026 <span class="comment">LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,</span>
+<a name="l00027"></a>00027 <span class="comment">DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY</span>
+<a name="l00028"></a>00028 <span class="comment">THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT</span>
+<a name="l00029"></a>00029 <span class="comment">(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE</span>
+<a name="l00030"></a>00030 <span class="comment">OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span>
+<a name="l00031"></a>00031 <span class="comment">*/</span>
+<a name="l00032"></a>00032 <span class="preprocessor">#ifndef __MicroURNG_dot_hpp__</span>
+<a name="l00033"></a>00033 <span class="preprocessor"></span><span class="preprocessor">#define __MicroURNG_dot_hpp__</span>
+<a name="l00034"></a>00034 <span class="preprocessor"></span>
+<a name="l00035"></a>00035 <span class="preprocessor">#include <stdexcept></span>
+<a name="l00036"></a>00036 <span class="preprocessor">#include <limits></span>
+<a name="l00037"></a>00037 
+<a name="l00038"></a>00038 <span class="keyword">namespace </span>r123{
+<a name="l00078"></a>00078 <span class="keyword">template</span><<span class="keyword">typename</span> CBRNG>
+<a name="l00079"></a><a class="code" href="classr123_1_1MicroURNG.html">00079</a> <span class="keyword">class </span><a class="code" href="classr123_1_1MicroURNG.html">MicroURNG</a>{
+<a name="l00080"></a>00080     <span class="comment">// According to C++0x, a URNG requires only a result_type,</span>
+<a name="l00081"></a>00081     <span class="comment">// operator()(), min() and max() methods.  Everything else</span>
+<a name="l00082"></a>00082     <span class="comment">// (ctr_type, key_type, reset() method, etc.) is "value added"</span>
+<a name="l00083"></a>00083     <span class="comment">// for the benefit of users that "know" that they're dealing with</span>
+<a name="l00084"></a>00084     <span class="comment">// a MicroURNG.</span>
+<a name="l00085"></a>00085 <span class="keyword">public</span>:
+<a name="l00086"></a><a class="code" href="classr123_1_1MicroURNG.html#ab0b3a77c9408dbcb2f9d6b5c67e9c3f7">00086</a>     <span class="keyword">typedef</span> CBRNG cbrng_type;
+<a name="l00087"></a><a class="code" href="classr123_1_1MicroURNG.html#ac55cddda8fe0808f922f39beee587b27">00087</a>     <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="classr123_1_1MicroURNG.html#ac55cddda8fe0808f922f39beee587b27">BITS</a> = 32;
+<a name="l00088"></a><a class="code" href="classr123_1_1MicroURNG.html#a5aba882fd21e4d8f1a445f546e1e4476">00088</a>     <span class="keyword">typedef</span> <span class="keyword">typename</span> cbrng_type::ctr_type ctr_type;
+<a name="l00089"></a><a class="code" href="classr123_1_1MicroURNG.html#aef90e6157f360434342ad0df4ce5f364">00089</a>     <span class="keyword">typedef</span> <span class="keyword">typename</span> cbrng_type::key_type key_type;
+<a name="l00090"></a><a class="code" href="classr123_1_1MicroURNG.html#a7e6fd93fec2fe138ee36b401ff376cfc">00090</a>     <span class="keyword">typedef</span> <span class="keyword">typename</span> cbrng_type::ukey_type ukey_type;
+<a name="l00091"></a><a class="code" href="classr123_1_1MicroURNG.html#a512957c3e7b3d22741ef0a436b973c2b">00091</a>     <span class="keyword">typedef</span> <span class="keyword">typename</span> ctr_type::value_type result_type;
+<a name="l00092"></a>00092 
+<a name="l00093"></a>00093     R123_STATIC_ASSERT( std::numeric_limits<result_type>::digits >= <a class="code" href="classr123_1_1MicroURNG.html#ac55cddda8fe0808f922f39beee587b27">BITS</a>, <span class="stringliteral">"The result_type must have at least 32 bits"</span> );
+<a name="l00094"></a>00094 
+<a name="l00095"></a><a class="code" href="classr123_1_1MicroURNG.html#a64cd4d33b4cab5d3d9c556db68407b77">00095</a>     <a class="code" href="classr123_1_1MicroURNG.html#a512957c3e7b3d22741ef0a436b973c2b">result_type</a> <a class="code" href="classr123_1_1MicroURNG.html#a64cd4d33b4cab5d3d9c556db68407b77">operator()</a>(){
+<a name="l00096"></a>00096         <span class="keywordflow">if</span>(last_elem == 0){
+<a name="l00097"></a>00097             <span class="comment">// jam n into the high bits of c</span>
+<a name="l00098"></a>00098             <span class="keyword">const</span> <span class="keywordtype">size_t</span> W = std::numeric_limits<result_type>::digits;
+<a name="l00099"></a>00099             <a class="code" href="classr123_1_1MicroURNG.html#a5aba882fd21e4d8f1a445f546e1e4476">ctr_type</a> c = c0;
+<a name="l00100"></a>00100             c[c0.size()-1] |= n<<(W-<a class="code" href="classr123_1_1MicroURNG.html#ac55cddda8fe0808f922f39beee587b27">BITS</a>);
+<a name="l00101"></a>00101             rdata = b(c,k);
+<a name="l00102"></a>00102             n++;
+<a name="l00103"></a>00103             last_elem = rdata.size();
+<a name="l00104"></a>00104         }
+<a name="l00105"></a>00105         <span class="keywordflow">return</span> rdata[--last_elem];
+<a name="l00106"></a>00106     }
+<a name="l00107"></a><a class="code" href="classr123_1_1MicroURNG.html#a19afb80312c370e1670bf8afc73d802e">00107</a>     <a class="code" href="classr123_1_1MicroURNG.html#a19afb80312c370e1670bf8afc73d802e">MicroURNG</a>(<a class="code" href="classr123_1_1MicroURNG.html#ab0b3a77c9408dbcb2f9d6b5c67e9c3f7">cbrng_type</a> _b, <a class="code" href="classr123_1_1MicroURNG.html#a5aba882fd21e4d8f1a445f546e1e4476">ctr_type</a> _c0, <a class="code" href="classr123_1_1MicroURNG.html#a7e6fd93fec2fe13 [...]
+<a name="l00108"></a>00108         chkhighbits();
+<a name="l00109"></a>00109     }
+<a name="l00110"></a><a class="code" href="classr123_1_1MicroURNG.html#a7ecf43819bc96804892a78c6715f587b">00110</a>     <a class="code" href="classr123_1_1MicroURNG.html#a7ecf43819bc96804892a78c6715f587b">MicroURNG</a>(<a class="code" href="classr123_1_1MicroURNG.html#a5aba882fd21e4d8f1a445f546e1e4476">ctr_type</a> _c0, <a class="code" href="classr123_1_1MicroURNG.html#a7e6fd93fec2fe138ee36b401ff376cfc">ukey_type</a> _uk) : b(), c0(_c0), k(_uk), n(0), last_elem(0) {
+<a name="l00111"></a>00111         chkhighbits();
+<a name="l00112"></a>00112     }
+<a name="l00113"></a>00113 
+<a name="l00114"></a>00114     <span class="comment">// _Min and _Max work around a bug in the library shipped with MacOS Xcode 4.5.2.</span>
+<a name="l00115"></a>00115     <span class="comment">// See the commment in conventional/Engine.hpp.  </span>
+<a name="l00116"></a><a class="code" href="classr123_1_1MicroURNG.html#a1f2787f136a8a807d14eab8cb1ca8c14">00116</a>     <span class="keyword">const</span> <span class="keyword">static</span> <a class="code" href="classr123_1_1MicroURNG.html#a512957c3e7b3d22741ef0a436b973c2b">result_type</a> <a class="code" href="classr123_1_1MicroURNG.html#a1f2787f136a8a807d14eab8cb1ca8c14">_Min</a> = 0;
+<a name="l00117"></a><a class="code" href="classr123_1_1MicroURNG.html#a4faecd7ab54c7678ee66c413bb984bf0">00117</a>     <span class="keyword">const</span> <span class="keyword">static</span> <a class="code" href="classr123_1_1MicroURNG.html#a512957c3e7b3d22741ef0a436b973c2b">result_type</a> <a class="code" href="classr123_1_1MicroURNG.html#a4faecd7ab54c7678ee66c413bb984bf0">_Max</a> = ~((result_type)0);
+<a name="l00118"></a>00118 
+<a name="l00119"></a><a class="code" href="classr123_1_1MicroURNG.html#aa05c857c01053cf9185406d69757b101">00119</a>     <span class="keyword">static</span> R123_CONSTEXPR <a class="code" href="classr123_1_1MicroURNG.html#a512957c3e7b3d22741ef0a436b973c2b">result_type</a> min <a class="code" href="classr123_1_1MicroURNG.html#aa05c857c01053cf9185406d69757b101">R123_NO_MACRO_SUBST</a> () { <span class="keywordflow">return</span> <a class="code" href="classr123_1_1MicroURNG.html#a1f2787f136a [...]
+<a name="l00120"></a><a class="code" href="classr123_1_1MicroURNG.html#a3af623b6366d6e848d67d72e4b0f363c">00120</a>     <span class="keyword">static</span> R123_CONSTEXPR <a class="code" href="classr123_1_1MicroURNG.html#a512957c3e7b3d22741ef0a436b973c2b">result_type</a> max <a class="code" href="classr123_1_1MicroURNG.html#a3af623b6366d6e848d67d72e4b0f363c">R123_NO_MACRO_SUBST</a> () { <span class="keywordflow">return</span> <a class="code" href="classr123_1_1MicroURNG.html#a4faecd7ab54 [...]
+<a name="l00121"></a>00121     <span class="comment">// extra methods:</span>
+<a name="l00122"></a><a class="code" href="classr123_1_1MicroURNG.html#a30f52334b7cfcbe6d86870496ca57ea6">00122</a>     <span class="keyword">const</span> <a class="code" href="classr123_1_1MicroURNG.html#a5aba882fd21e4d8f1a445f546e1e4476">ctr_type</a>& <a class="code" href="classr123_1_1MicroURNG.html#a30f52334b7cfcbe6d86870496ca57ea6">counter</a>()<span class="keyword"> const</span>{ <span class="keywordflow">return</span> c0; }
+<a name="l00123"></a><a class="code" href="classr123_1_1MicroURNG.html#add2f214254ddc2291e3b2c8b5dbe791a">00123</a>     <span class="keywordtype">void</span> <a class="code" href="classr123_1_1MicroURNG.html#add2f214254ddc2291e3b2c8b5dbe791a">reset</a>(<a class="code" href="classr123_1_1MicroURNG.html#a5aba882fd21e4d8f1a445f546e1e4476">ctr_type</a> _c0, <a class="code" href="classr123_1_1MicroURNG.html#a7e6fd93fec2fe138ee36b401ff376cfc">ukey_type</a> _uk){
+<a name="l00124"></a>00124         c0 = _c0;
+<a name="l00125"></a>00125         chkhighbits();
+<a name="l00126"></a>00126         k = _uk;
+<a name="l00127"></a>00127         n = 0;
+<a name="l00128"></a>00128         last_elem = 0;
+<a name="l00129"></a>00129     }
+<a name="l00130"></a>00130 
+<a name="l00131"></a>00131 <span class="keyword">private</span>:
+<a name="l00132"></a>00132     <a class="code" href="classr123_1_1MicroURNG.html#ab0b3a77c9408dbcb2f9d6b5c67e9c3f7">cbrng_type</a> b;
+<a name="l00133"></a>00133     <a class="code" href="classr123_1_1MicroURNG.html#a5aba882fd21e4d8f1a445f546e1e4476">ctr_type</a> c0;
+<a name="l00134"></a>00134     <a class="code" href="classr123_1_1MicroURNG.html#aef90e6157f360434342ad0df4ce5f364">key_type</a> k;
+<a name="l00135"></a>00135     R123_ULONG_LONG n;
+<a name="l00136"></a>00136     <span class="keywordtype">size_t</span> last_elem;
+<a name="l00137"></a>00137     <a class="code" href="classr123_1_1MicroURNG.html#a5aba882fd21e4d8f1a445f546e1e4476">ctr_type</a> rdata;
+<a name="l00138"></a>00138     <span class="keywordtype">void</span> chkhighbits(){
+<a name="l00139"></a>00139         <a class="code" href="classr123_1_1MicroURNG.html#a512957c3e7b3d22741ef0a436b973c2b">result_type</a> r = c0[c0.size()-1];
+<a name="l00140"></a>00140         <a class="code" href="classr123_1_1MicroURNG.html#a512957c3e7b3d22741ef0a436b973c2b">result_type</a> mask = ((uint64_t)std::numeric_limits<result_type>::max <a class="code" href="classr123_1_1MicroURNG.html#aa05c857c01053cf9185406d69757b101">R123_NO_MACRO_SUBST</a> ())>><a class="code" href="classr123_1_1MicroURNG.html#ac55cddda8fe0808f922f39beee587b27">BITS</a>;
+<a name="l00141"></a>00141         <span class="keywordflow">if</span>((r&mask) != r)
+<a name="l00142"></a>00142             <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">"MicroURNG: c0, does not have high bits clear"</span>);
+<a name="l00143"></a>00143     }
+<a name="l00144"></a>00144 };
+<a name="l00145"></a>00145 } <span class="comment">// namespace r123</span>
+<a name="l00146"></a>00146 <span class="preprocessor">#endif</span>
+</pre></div></div>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/README.html b/docs/html/README.html
new file mode 100644
index 0000000..01ec89d
--- /dev/null
+++ b/docs/html/README.html
@@ -0,0 +1,77 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: examples/README File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<h1>examples/README File Reference</h1>  </div>
+</div>
+<div class="contents">
+<table class="memberdecls">
+</table>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/ReinterpretCtr_8hpp.html b/docs/html/ReinterpretCtr_8hpp.html
new file mode 100644
index 0000000..cb79e6b
--- /dev/null
+++ b/docs/html/ReinterpretCtr_8hpp.html
@@ -0,0 +1,90 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Random123/ReinterpretCtr.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Classes</a> |
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<h1>Random123/ReinterpretCtr.hpp File Reference</h1>  </div>
+</div>
+<div class="contents">
+<code>#include "<a class="el" href="compilerfeatures_8h_source.html">features/compilerfeatures.h</a>"</code><br/>
+<code>#include <cstring></code><br/>
+
+<p><a href="ReinterpretCtr_8hpp_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1ReinterpretCtr.html">r123::ReinterpretCtr< ToType, CBRNG ></a></td></tr>
+<tr><td colspan="2"><h2><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacer123.html">r123</a></td></tr>
+</table>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/ReinterpretCtr_8hpp_source.html b/docs/html/ReinterpretCtr_8hpp_source.html
new file mode 100644
index 0000000..7de8fae
--- /dev/null
+++ b/docs/html/ReinterpretCtr_8hpp_source.html
@@ -0,0 +1,149 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Random123/ReinterpretCtr.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+<div class="header">
+  <div class="headertitle">
+<h1>Random123/ReinterpretCtr.hpp</h1>  </div>
+</div>
+<div class="contents">
+<a href="ReinterpretCtr_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
+<a name="l00002"></a>00002 <span class="comment">Copyright 2010-2011, D. E. Shaw Research.</span>
+<a name="l00003"></a>00003 <span class="comment">All rights reserved.</span>
+<a name="l00004"></a>00004 <span class="comment"></span>
+<a name="l00005"></a>00005 <span class="comment">Redistribution and use in source and binary forms, with or without</span>
+<a name="l00006"></a>00006 <span class="comment">modification, are permitted provided that the following conditions are</span>
+<a name="l00007"></a>00007 <span class="comment">met:</span>
+<a name="l00008"></a>00008 <span class="comment"></span>
+<a name="l00009"></a>00009 <span class="comment">* Redistributions of source code must retain the above copyright</span>
+<a name="l00010"></a>00010 <span class="comment">  notice, this list of conditions, and the following disclaimer.</span>
+<a name="l00011"></a>00011 <span class="comment"></span>
+<a name="l00012"></a>00012 <span class="comment">* Redistributions in binary form must reproduce the above copyright</span>
+<a name="l00013"></a>00013 <span class="comment">  notice, this list of conditions, and the following disclaimer in the</span>
+<a name="l00014"></a>00014 <span class="comment">  documentation and/or other materials provided with the distribution.</span>
+<a name="l00015"></a>00015 <span class="comment"></span>
+<a name="l00016"></a>00016 <span class="comment">* Neither the name of D. E. Shaw Research nor the names of its</span>
+<a name="l00017"></a>00017 <span class="comment">  contributors may be used to endorse or promote products derived from</span>
+<a name="l00018"></a>00018 <span class="comment">  this software without specific prior written permission.</span>
+<a name="l00019"></a>00019 <span class="comment"></span>
+<a name="l00020"></a>00020 <span class="comment">THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS</span>
+<a name="l00021"></a>00021 <span class="comment">"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT</span>
+<a name="l00022"></a>00022 <span class="comment">LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR</span>
+<a name="l00023"></a>00023 <span class="comment">A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT</span>
+<a name="l00024"></a>00024 <span class="comment">OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,</span>
+<a name="l00025"></a>00025 <span class="comment">SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT</span>
+<a name="l00026"></a>00026 <span class="comment">LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,</span>
+<a name="l00027"></a>00027 <span class="comment">DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY</span>
+<a name="l00028"></a>00028 <span class="comment">THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT</span>
+<a name="l00029"></a>00029 <span class="comment">(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE</span>
+<a name="l00030"></a>00030 <span class="comment">OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span>
+<a name="l00031"></a>00031 <span class="comment">*/</span>
+<a name="l00032"></a>00032 <span class="preprocessor">#ifndef __ReinterpretCtr_dot_hpp__</span>
+<a name="l00033"></a>00033 <span class="preprocessor"></span><span class="preprocessor">#define __ReinterpretCtr_dot_hpp__</span>
+<a name="l00034"></a>00034 <span class="preprocessor"></span>
+<a name="l00035"></a>00035 <span class="preprocessor">#include "<a class="code" href="compilerfeatures_8h.html">features/compilerfeatures.h</a>"</span>
+<a name="l00036"></a>00036 <span class="preprocessor">#include <cstring></span>
+<a name="l00037"></a>00037 
+<a name="l00038"></a>00038 <span class="keyword">namespace </span>r123{
+<a name="l00053"></a>00053 <span class="keyword">template</span> <<span class="keyword">typename</span> ToType, <span class="keyword">typename</span> CBRNG>
+<a name="l00054"></a><a class="code" href="structr123_1_1ReinterpretCtr.html">00054</a> <span class="keyword">struct </span><a class="code" href="structr123_1_1ReinterpretCtr.html">ReinterpretCtr</a>{
+<a name="l00055"></a><a class="code" href="structr123_1_1ReinterpretCtr.html#a26cf9e933b35411c37070c948085ba02">00055</a>     <span class="keyword">typedef</span> ToType ctr_type;
+<a name="l00056"></a><a class="code" href="structr123_1_1ReinterpretCtr.html#a470b21676ed709aa9d9ad524a67410f1">00056</a>     <span class="keyword">typedef</span> <span class="keyword">typename</span> CBRNG::key_type key_type;
+<a name="l00057"></a><a class="code" href="structr123_1_1ReinterpretCtr.html#ae0accaee618b5eb28a24acd516b3a4c6">00057</a>     <span class="keyword">typedef</span> <span class="keyword">typename</span> CBRNG::ctr_type bctype;
+<a name="l00058"></a><a class="code" href="structr123_1_1ReinterpretCtr.html#a4b0b69c1aa58d62bb22e51e16c586bee">00058</a>     <span class="keyword">typedef</span> <span class="keyword">typename</span> CBRNG::ukey_type ukey_type;
+<a name="l00059"></a>00059     R123_STATIC_ASSERT(<span class="keyword">sizeof</span>(ToType) == <span class="keyword">sizeof</span>(<a class="code" href="structr123_1_1ReinterpretCtr.html#ae0accaee618b5eb28a24acd516b3a4c6">bctype</a>) && <span class="keyword">sizeof</span>(<span class="keyword">typename</span> bctype::value_type) != 16, 
+<a name="l00060"></a>00060                        <span class="stringliteral">"ReinterpretCtr:  sizeof(ToType) is not the same as sizeof(CBRNG::ctr_type) or CBRNG::ctr_type::value_type looks like it might be __m128i"</span>);
+<a name="l00061"></a>00061     <span class="comment">// It's amazingly difficult to safely do conversions with __m128i.</span>
+<a name="l00062"></a>00062     <span class="comment">// If we use the operator() implementation below with a CBRNG</span>
+<a name="l00063"></a>00063     <span class="comment">// whose ctr_type is r123array1xm128i, gcc4.6 optimizes away the</span>
+<a name="l00064"></a>00064     <span class="comment">// memcpys, inlines the operator()(c,k), and produces assembly</span>
+<a name="l00065"></a>00065     <span class="comment">// language that ends with an aesenclast instruction with a</span>
+<a name="l00066"></a>00066     <span class="comment">// destination operand pointing to an unaligned memory address ...</span>
+<a name="l00067"></a>00067     <span class="comment">// Segfault!  See:  http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50444</span>
+<a name="l00068"></a>00068     <span class="comment">// MSVC also produces code that crashes.  We suspect a</span>
+<a name="l00069"></a>00069     <span class="comment">// similar mechanism but haven't done the debugging necessary to</span>
+<a name="l00070"></a>00070     <span class="comment">// be sure.  We were able to 'fix' gcc4.6 by making bc a mutable</span>
+<a name="l00071"></a>00071     <span class="comment">// data member rather than declaring it in the scope of</span>
+<a name="l00072"></a>00072     <span class="comment">// operator().  That didn't fix the MSVC problems, though.</span>
+<a name="l00073"></a>00073     <span class="comment">//</span>
+<a name="l00074"></a>00074     <span class="comment">// Conclusion - don't touch __m128i, at least for now.  The</span>
+<a name="l00075"></a>00075     <span class="comment">// easiest (but highly imprecise) way to do that is the static</span>
+<a name="l00076"></a>00076     <span class="comment">// assertion above that rejects bctype::value_types of size 16. -</span>
+<a name="l00077"></a>00077     <span class="comment">// Sep 2011.</span>
+<a name="l00078"></a><a class="code" href="structr123_1_1ReinterpretCtr.html#a91edc5103397372cc5509ad17c0fc83a">00078</a>     <a class="code" href="structr123_1_1ReinterpretCtr.html#a26cf9e933b35411c37070c948085ba02">ctr_type</a>  <a class="code" href="structr123_1_1ReinterpretCtr.html#a91edc5103397372cc5509ad17c0fc83a">operator()</a>(<a class="code" href="structr123_1_1ReinterpretCtr.html#a26cf9e933b35411c37070c948085ba02">ctr_type</a> c, <a class="code" href="structr123_1_1ReinterpretC [...]
+<a name="l00079"></a>00079         <a class="code" href="structr123_1_1ReinterpretCtr.html#ae0accaee618b5eb28a24acd516b3a4c6">bctype</a> bc;
+<a name="l00080"></a>00080         std::memcpy(&bc, &c, <span class="keyword">sizeof</span>(c));
+<a name="l00081"></a>00081         CBRNG b;
+<a name="l00082"></a>00082         bc = b(bc, k);
+<a name="l00083"></a>00083         std::memcpy(&c, &bc, <span class="keyword">sizeof</span>(bc));
+<a name="l00084"></a>00084         <span class="keywordflow">return</span> c;
+<a name="l00085"></a>00085     }
+<a name="l00086"></a>00086 };
+<a name="l00087"></a>00087 } <span class="comment">// namespace r123</span>
+<a name="l00088"></a>00088 <span class="preprocessor">#endif</span>
+</pre></div></div>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/Release_01Notes.html b/docs/html/Release_01Notes.html
new file mode 100644
index 0000000..ec5c954
--- /dev/null
+++ b/docs/html/Release_01Notes.html
@@ -0,0 +1,212 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: </title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li class="current"><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+<dl>
+<dt>1.09 - Mar 6, 2016  </dt>
+<dd><ul>
+<li>
+add define R123_USE_U01_DOUBLE to u10fixedpt.h </li>
+<li>
+fix definition of const char *srcstr[] in util_opencl.h </li>
+<li>
+improve nvccfeatures.h so that 64-bit philox can be used both on the host and on the cuda device. </li>
+<li>
+add _Pragmas so R123_STATIC_ASSERT doesn't warn with clang-3.6. </li>
+<li>
+boxmuller.hpp doesn't look for sincos when __APPLE__ is true. </li>
+</ul>
+</dd>
+<dt>1.08 - Aug 20, 2013  </dt>
+<dd><ul>
+<li>
+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. </li>
+<li>
+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). </li>
+<li>
+Demote u01.h from the include/Random123/ to examples/ufixed01.h, but examples/uniform.hpp is preferred. </li>
+<li>
+Add kat_vectors for threefry2xW_32 and threefry4xW_72, i.e., the largest number of supported rounds in each case. </li>
+<li>
+Mention ukey on the first page of docs. </li>
+<li>
+Fix typos in documentation and comments and in gccfeatures.h. </li>
+<li>
+Don't include <x86intrin.h> unless (defined(__x86_64__)||defined(__i386__)). </li>
+<li>
+Use __clang__ rather than __llvm__ in the predicate that decides whether to include clangfeatures.h. </li>
+<li>
+Add support for Portland Group compilers. </li>
+<li>
+Add support for gcc and IBM XL compilers on powerpc64, e.g. BlueGene/Q. </li>
+<li>
+Refuse to build with CUDA before 4.1 to avoid namespace bug. </li>
+</ul>
+<p class="enddd"></p>
+</dd>
+<dt>1.07 - Nov 7, 2012  </dt>
+<dd><ul>
+<li>
+Provide const static data members: _Min and _Max in Engine and MicroURNG, which work around a non-standard requirement imposed by the MacOS Xcode 4.5.2 <random> library. </li>
+<li>
+Fine-grained test macros for specific features of C++11 rather than an all-or-none USE_CXX0X macro. Features tested: constexpr, unrestricted unions, explicit conversions, <random> and <type_traits>. </li>
+<li>
+Declare max() and min() methods with the R123_CONSTEXPR attribute in Engine and MicroURNG. </li>
+<li>
+Improved clang support </li>
+<li>
+Works with Solaris Sun CC now (requires -library=stlport4) </li>
+<li>
+NVIDIA GTX6x0 should report correct core count </li>
+<li>
+ut_features prints the list of features that compile on the build platform </li>
+<li>
+Compiles cleanly with -Wall -Wextra (implying -Wunused-parameter -Wsign-compare) </li>
+</ul>
+<p class="enddd"></p>
+</dd>
+<dt>1.06 - Apr 5, 2012  </dt>
+<dd><ul>
+<li>
+Added a known answer test for the u01 functions (kat_u01). </li>
+<li>
+Defend headers against possible max and min macros in "system" header files. </li>
+</ul>
+<p class="enddd"></p>
+</dd>
+<dt>1.05 - Mar 20, 2012 </dt>
+<dd><ul>
+<li>
+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. </li>
+<li>
+Added <Random123/u01.h> header file with static functions for conversion of integers to uniformly distributed floating point values. </li>
+<li>
+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. </li>
+<li>
+Recognize that icpc has an _mm_set_epi64x intrinsic as of version 12.1. </li>
+<li>
+The gsl adapters always return 32-bits of random data, regardless of the width of counter type. </li>
+<li>
+Works around lack of anonymous enums in Intel OpenCL 1.5 </li>
+<li>
+gencl.sh works on MacOS and systems with "classic" BSD indent. </li>
+<li>
+Tests run on AMD Radeon 7970 (Tahiti). </li>
+</ul>
+<p></p>
+<p class="enddd"></p>
+</dd>
+<dt>1.04 - Dec 5, 2011</dt>
+<dd><ul>
+<li>
+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. </li>
+</ul>
+<p class="enddd"></p>
+</dd>
+<dt>1.03 - Nov 30, 2011</dt>
+<dd><ul>
+<li>
+overhaul known answer tests (kat) <ul>
+<li>
+common source for serial C, C++, cuda and opencl replaces katc and katpp  </li>
+<li>
+add missing kat_vectors for threefry2x32  </li>
+</ul>
+</li>
+<li>
+make keyinit functions device/kernel functions in CUDA/OpenCL  </li>
+<li>
+replace r123array::assemble methods with r123array::seed(SeedSeq) template  </li>
+<li>
+cleanup of signatures of Engine and MicroURNG methods: <ul>
+<li>
+Engine(ukey_type&) and MicroURNG(ctr_type, ukey_type) constructors. </li>
+<li>
+Engine(SeedSeq&) takes a reference argument, and, when C++0x <type_traits> are available the SeedSeq templates don't participate in "surprising" overloads.  </li>
+</ul>
+</li>
+</ul>
+<p class="enddd"></p>
+</dd>
+<dt>1.02 - Nov 21, 2011</dt>
+<dd><ul>
+<li>
+<b> BUG FIXED </b> 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 <em>more</em> 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".  </li>
+<li>
+worked around problems with argument marshalling in version 2.4 of the AMDAPPSDK OpenCL implementation </li>
+</ul>
+<p class="enddd"></p>
+</dd>
+<dt>1.01 - Nov 11, 2011</dt>
+<dd><ul>
+<li>
+allow the user to define __STDC_CONSTANT_MACROS </li>
+<li>
+allow r123arrayNxW::incr(larger_than_largest_value_type) </li>
+</ul>
+<p class="enddd"></p>
+</dd>
+<dt>1.00 - Sep 26, 2011</dt>
+<dd>Initial release </dd>
+</dl>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/aes_8h.html b/docs/html/aes_8h.html
new file mode 100644
index 0000000..733504c
--- /dev/null
+++ b/docs/html/aes_8h.html
@@ -0,0 +1,135 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Random123/aes.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Classes</a> |
+<a href="#namespaces">Namespaces</a> |
+<a href="#define-members">Defines</a> |
+<a href="#typedef-members">Typedefs</a> |
+<a href="#enum-members">Enumerations</a> |
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<h1>Random123/aes.h File Reference</h1>  </div>
+</div>
+<div class="contents">
+<code>#include "<a class="el" href="compilerfeatures_8h_source.html">features/compilerfeatures.h</a>"</code><br/>
+<code>#include "<a class="el" href="array_8h_source.html">array.h</a>"</code><br/>
+
+<p><a href="aes_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structaesni1xm128i__key__t.html">aesni1xm128i_key_t</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1AESNI1xm128i.html">r123::AESNI1xm128i</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1AESNI4x32.html">r123::AESNI4x32</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1AESNI1xm128i__R.html">r123::AESNI1xm128i_R< ROUNDS ></a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1AESNI4x32__R.html">r123::AESNI4x32_R< ROUNDS ></a></td></tr>
+<tr><td colspan="2"><h2><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacer123.html">r123</a></td></tr>
+<tr><td colspan="2"><h2><a name="define-members"></a>
+Defines</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="aes_8h.html#a0e4c28ad2773dac7eb59004947c9e02b">aesni4x32_rounds</a>   aesni1xm128i_rounds</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__AESNI.html#gae3950c524818b49d1cdfad481880a33a">aesni4x32</a>(c, k)   aesni4x32_R(aesni4x32_rounds, c, k)</td></tr>
+<tr><td colspan="2"><h2><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structr123array1xm128i.html">r123array1xm128i</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__AESNI.html#gaab0f809a22e01e6cb6135f6af73bb532">aesni1xm128i_ctr_t</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structr123array1xm128i.html">r123array1xm128i</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__AESNI.html#gaf4fa221e6387d0454e2e6399245bdead">aesni1xm128i_ukey_t</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structr123array4x32.html">r123array4x32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__AESNI.html#gac2c3248ec3b03591d442cf634fb51af5">aesni4x32_ukey_t</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structr123array4x32.html">r123array4x32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__AESNI.html#gae7459b3f4ee0e424cb4f13b4d5efc1fe">aesni4x32_ctr_t</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structaesni1xm128i__key__t.html">aesni1xm128i_key_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__AESNI.html#ga6d88accdcfa339b48e14021a572e269b">aesni4x32_key_t</a></td></tr>
+<tr><td colspan="2"><h2><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="group__AESNI.html#ga2814629101926e23001d564630ba7b86">r123_enum_aesni1xm128i</a> { <a class="el" href="group__AESNI.html#gga2814629101926e23001d564630ba7b86a2c404c51fea10eeacb032081dbab2408">aesni1xm128i_rounds</a> =  10
+ }</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="group__AESNI.html#ga1557a9d6e95543a3c4ca9082a4c14b0d">r123_enum_aesni4x32</a> { <a class="el" href="group__AESNI.html#gga1557a9d6e95543a3c4ca9082a4c14b0dad65178990d928071f958bf2413ebdb4b">aesni4x32_rounds</a> =  10
+ }</td></tr>
+<tr><td colspan="2"><h2><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structr123array1xm128i.html">aesni1xm128i_ctr_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__AESNI.html#ga3ba5daca2d4d076ece24900084e71311">aesni1xm128i</a> (<a class="el" href="structr123array1xm128i.html">aesni1xm128i_ctr_t</a> in, <a class="el" href="structaesni1xm128i__key__t.html">aesni1xm128i_key_t</a> k)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structr123array1xm128i.html">aesni1xm128i_ctr_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__AESNI.html#ga89d9042c08ae5eef4c98bfb9609ebd34">aesni1xm128i_R</a> (unsigned R, <a class="el" href="structr123array1xm128i.html">aesni1xm128i_ctr_t</a> in, <a class="el" href="structaesni1xm128i__key__t.html">aesni1xm128i_key_t</a> k)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structaesni1xm128i__key__t.html">aesni4x32_key_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__AESNI.html#ga2aa21ba4a3d3850faa96e7834114d8e1">aesni4x32keyinit</a> (<a class="el" href="structr123array4x32.html">aesni4x32_ukey_t</a> uk)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structr123array4x32.html">aesni4x32_ctr_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__AESNI.html#gae28b030e9786a6f36a47df8f211a750b">aesni4x32_R</a> (unsigned int Nrounds, <a class="el" href="structr123array4x32.html">aesni4x32_ctr_t</a> c, <a class="el" href="structaesni1xm128i__key__t.html">aesni4x32_key_t</a> k)</td></tr>
+</table>
+<hr/><h2>Define Documentation</h2>
+<a class="anchor" id="a0e4c28ad2773dac7eb59004947c9e02b"></a><!-- doxytag: member="aes.h::aesni4x32_rounds" ref="a0e4c28ad2773dac7eb59004947c9e02b" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define aesni4x32_rounds   aesni1xm128i_rounds</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/aes_8h_source.html b/docs/html/aes_8h_source.html
new file mode 100644
index 0000000..a8a32db
--- /dev/null
+++ b/docs/html/aes_8h_source.html
@@ -0,0 +1,364 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Random123/aes.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+<div class="header">
+  <div class="headertitle">
+<h1>Random123/aes.h</h1>  </div>
+</div>
+<div class="contents">
+<a href="aes_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
+<a name="l00002"></a>00002 <span class="comment">Copyright 2010-2011, D. E. Shaw Research.</span>
+<a name="l00003"></a>00003 <span class="comment">All rights reserved.</span>
+<a name="l00004"></a>00004 <span class="comment"></span>
+<a name="l00005"></a>00005 <span class="comment">Redistribution and use in source and binary forms, with or without</span>
+<a name="l00006"></a>00006 <span class="comment">modification, are permitted provided that the following conditions are</span>
+<a name="l00007"></a>00007 <span class="comment">met:</span>
+<a name="l00008"></a>00008 <span class="comment"></span>
+<a name="l00009"></a>00009 <span class="comment">* Redistributions of source code must retain the above copyright</span>
+<a name="l00010"></a>00010 <span class="comment">  notice, this list of conditions, and the following disclaimer.</span>
+<a name="l00011"></a>00011 <span class="comment"></span>
+<a name="l00012"></a>00012 <span class="comment">* Redistributions in binary form must reproduce the above copyright</span>
+<a name="l00013"></a>00013 <span class="comment">  notice, this list of conditions, and the following disclaimer in the</span>
+<a name="l00014"></a>00014 <span class="comment">  documentation and/or other materials provided with the distribution.</span>
+<a name="l00015"></a>00015 <span class="comment"></span>
+<a name="l00016"></a>00016 <span class="comment">* Neither the name of D. E. Shaw Research nor the names of its</span>
+<a name="l00017"></a>00017 <span class="comment">  contributors may be used to endorse or promote products derived from</span>
+<a name="l00018"></a>00018 <span class="comment">  this software without specific prior written permission.</span>
+<a name="l00019"></a>00019 <span class="comment"></span>
+<a name="l00020"></a>00020 <span class="comment">THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS</span>
+<a name="l00021"></a>00021 <span class="comment">"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT</span>
+<a name="l00022"></a>00022 <span class="comment">LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR</span>
+<a name="l00023"></a>00023 <span class="comment">A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT</span>
+<a name="l00024"></a>00024 <span class="comment">OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,</span>
+<a name="l00025"></a>00025 <span class="comment">SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT</span>
+<a name="l00026"></a>00026 <span class="comment">LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,</span>
+<a name="l00027"></a>00027 <span class="comment">DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY</span>
+<a name="l00028"></a>00028 <span class="comment">THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT</span>
+<a name="l00029"></a>00029 <span class="comment">(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE</span>
+<a name="l00030"></a>00030 <span class="comment">OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span>
+<a name="l00031"></a>00031 <span class="comment">*/</span>
+<a name="l00032"></a>00032 <span class="preprocessor">#ifndef __Random123_aes_dot_hpp__</span>
+<a name="l00033"></a>00033 <span class="preprocessor"></span><span class="preprocessor">#define __Random123_aes_dot_hpp__</span>
+<a name="l00034"></a>00034 <span class="preprocessor"></span>
+<a name="l00035"></a>00035 <span class="preprocessor">#include "<a class="code" href="compilerfeatures_8h.html">features/compilerfeatures.h</a>"</span>
+<a name="l00036"></a>00036 <span class="preprocessor">#include "<a class="code" href="array_8h.html">array.h</a>"</span>
+<a name="l00037"></a>00037 
+<a name="l00038"></a>00038 <span class="comment">/* Implement a bona fide AES block cipher.  It's minimally</span>
+<a name="l00039"></a>00039 <span class="comment">// checked against the test vector in FIPS-197 in ut_aes.cpp. */</span>
+<a name="l00040"></a>00040 <span class="preprocessor">#if R123_USE_AES_NI</span>
+<a name="l00041"></a>00041 <span class="preprocessor"></span>
+<a name="l00043"></a><a class="code" href="group__AESNI.html#gaab0f809a22e01e6cb6135f6af73bb532">00043</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structr123array1xm128i.html">r123array1xm128i</a> <a class="code" href="structr123array1xm128i.html">aesni1xm128i_ctr_t</a>;
+<a name="l00045"></a><a class="code" href="group__AESNI.html#gaf4fa221e6387d0454e2e6399245bdead">00045</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structr123array1xm128i.html">r123array1xm128i</a> <a class="code" href="structr123array1xm128i.html">aesni1xm128i_ukey_t</a>;
+<a name="l00047"></a><a class="code" href="group__AESNI.html#gac2c3248ec3b03591d442cf634fb51af5">00047</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structr123array4x32.html">r123array4x32</a> <a class="code" href="structr123array4x32.html">aesni4x32_ukey_t</a>;
+<a name="l00049"></a><a class="code" href="group__AESNI.html#ga2814629101926e23001d564630ba7b86">00049</a> <span class="keyword">enum</span> <a class="code" href="group__AESNI.html#ga2814629101926e23001d564630ba7b86">r123_enum_aesni1xm128i</a> { <a class="code" href="group__AESNI.html#gga2814629101926e23001d564630ba7b86a2c404c51fea10eeacb032081dbab2408">aesni1xm128i_rounds</a> = 10 };
+<a name="l00050"></a>00050 
+<a name="l00052"></a>00052 R123_STATIC_INLINE __m128i AES_128_ASSIST (__m128i temp1, __m128i temp2) { 
+<a name="l00053"></a>00053     __m128i temp3; 
+<a name="l00054"></a>00054     temp2 = _mm_shuffle_epi32 (temp2 ,0xff); 
+<a name="l00055"></a>00055     temp3 = _mm_slli_si128 (temp1, 0x4);
+<a name="l00056"></a>00056     temp1 = _mm_xor_si128 (temp1, temp3);
+<a name="l00057"></a>00057     temp3 = _mm_slli_si128 (temp3, 0x4);
+<a name="l00058"></a>00058     temp1 = _mm_xor_si128 (temp1, temp3);
+<a name="l00059"></a>00059     temp3 = _mm_slli_si128 (temp3, 0x4);
+<a name="l00060"></a>00060     temp1 = _mm_xor_si128 (temp1, temp3);
+<a name="l00061"></a>00061     temp1 = _mm_xor_si128 (temp1, temp2); 
+<a name="l00062"></a>00062     <span class="keywordflow">return</span> temp1; 
+<a name="l00063"></a>00063 }
+<a name="l00064"></a>00064 
+<a name="l00065"></a>00065 R123_STATIC_INLINE <span class="keywordtype">void</span> aesni1xm128iexpand(<a class="code" href="structr123array1xm128i.html">aesni1xm128i_ukey_t</a> uk, __m128i ret[11])
+<a name="l00066"></a>00066 {
+<a name="l00067"></a>00067     __m128i rkey = uk.<a class="code" href="structr123array1xm128i.html#ab6d5e4b23c04e12c1aad7aaf38ff2bd5">v</a>[0].<a class="code" href="structr123m128i.html#a9b9908268281aace8028a3f34980634d">m</a>;
+<a name="l00068"></a>00068     __m128i tmp2;
+<a name="l00069"></a>00069 
+<a name="l00070"></a>00070     ret[0] = rkey;
+<a name="l00071"></a>00071     tmp2 = _mm_aeskeygenassist_si128(rkey, 0x1);
+<a name="l00072"></a>00072     rkey = AES_128_ASSIST(rkey, tmp2);
+<a name="l00073"></a>00073     ret[1] = rkey;
+<a name="l00074"></a>00074 
+<a name="l00075"></a>00075     tmp2 = _mm_aeskeygenassist_si128(rkey, 0x2);
+<a name="l00076"></a>00076     rkey = AES_128_ASSIST(rkey, tmp2);
+<a name="l00077"></a>00077     ret[2] = rkey;
+<a name="l00078"></a>00078 
+<a name="l00079"></a>00079     tmp2 = _mm_aeskeygenassist_si128(rkey, 0x4);
+<a name="l00080"></a>00080     rkey = AES_128_ASSIST(rkey, tmp2);
+<a name="l00081"></a>00081     ret[3] = rkey;
+<a name="l00082"></a>00082 
+<a name="l00083"></a>00083     tmp2 = _mm_aeskeygenassist_si128(rkey, 0x8);
+<a name="l00084"></a>00084     rkey = AES_128_ASSIST(rkey, tmp2);
+<a name="l00085"></a>00085     ret[4] = rkey;
+<a name="l00086"></a>00086 
+<a name="l00087"></a>00087     tmp2 = _mm_aeskeygenassist_si128(rkey, 0x10);
+<a name="l00088"></a>00088     rkey = AES_128_ASSIST(rkey, tmp2);
+<a name="l00089"></a>00089     ret[5] = rkey;
+<a name="l00090"></a>00090 
+<a name="l00091"></a>00091     tmp2 = _mm_aeskeygenassist_si128(rkey, 0x20);
+<a name="l00092"></a>00092     rkey = AES_128_ASSIST(rkey, tmp2);
+<a name="l00093"></a>00093     ret[6] = rkey;
+<a name="l00094"></a>00094 
+<a name="l00095"></a>00095     tmp2 = _mm_aeskeygenassist_si128(rkey, 0x40);
+<a name="l00096"></a>00096     rkey = AES_128_ASSIST(rkey, tmp2);
+<a name="l00097"></a>00097     ret[7] = rkey;
+<a name="l00098"></a>00098 
+<a name="l00099"></a>00099     tmp2 = _mm_aeskeygenassist_si128(rkey, 0x80);
+<a name="l00100"></a>00100     rkey = AES_128_ASSIST(rkey, tmp2);
+<a name="l00101"></a>00101     ret[8] = rkey;
+<a name="l00102"></a>00102 
+<a name="l00103"></a>00103     tmp2 = _mm_aeskeygenassist_si128(rkey, 0x1b);
+<a name="l00104"></a>00104     rkey = AES_128_ASSIST(rkey, tmp2);
+<a name="l00105"></a>00105     ret[9] = rkey;
+<a name="l00106"></a>00106 
+<a name="l00107"></a>00107     tmp2 = _mm_aeskeygenassist_si128(rkey, 0x36);
+<a name="l00108"></a>00108     rkey = AES_128_ASSIST(rkey, tmp2);
+<a name="l00109"></a>00109     ret[10] = rkey;
+<a name="l00110"></a>00110 }
+<a name="l00113"></a>00113 <span class="preprocessor">#ifdef __cplusplus</span>
+<a name="l00114"></a>00114 <span class="preprocessor"></span>
+<a name="l00115"></a><a class="code" href="structaesni1xm128i__key__t.html">00115</a> <span class="keyword">struct </span><a class="code" href="structaesni1xm128i__key__t.html">aesni1xm128i_key_t</a>{ 
+<a name="l00116"></a><a class="code" href="structaesni1xm128i__key__t.html#a60cefca96e55b73732f570e844efbe54">00116</a>     __m128i <a class="code" href="structaesni1xm128i__key__t.html#a60cefca96e55b73732f570e844efbe54">k</a>[11]; 
+<a name="l00117"></a><a class="code" href="structaesni1xm128i__key__t.html#af1002e5b771616db8f12c793fc994c41">00117</a>     <a class="code" href="structaesni1xm128i__key__t.html#af1002e5b771616db8f12c793fc994c41">aesni1xm128i_key_t</a>(){
+<a name="l00118"></a>00118         <a class="code" href="structr123array1xm128i.html">aesni1xm128i_ukey_t</a> uk;
+<a name="l00119"></a>00119         uk.<a class="code" href="structr123array1xm128i.html#ab6d5e4b23c04e12c1aad7aaf38ff2bd5">v</a>[0].<a class="code" href="structr123m128i.html#a9b9908268281aace8028a3f34980634d">m</a> = _mm_setzero_si128();
+<a name="l00120"></a>00120         aesni1xm128iexpand(uk, <a class="code" href="structaesni1xm128i__key__t.html#a60cefca96e55b73732f570e844efbe54">k</a>);
+<a name="l00121"></a>00121     }
+<a name="l00122"></a><a class="code" href="structaesni1xm128i__key__t.html#a2076072522f671a8596a831cc93dc616">00122</a>     <a class="code" href="structaesni1xm128i__key__t.html#a2076072522f671a8596a831cc93dc616">aesni1xm128i_key_t</a>(<span class="keyword">const</span> <a class="code" href="structr123array1xm128i.html">aesni1xm128i_ukey_t</a>& uk){
+<a name="l00123"></a>00123         aesni1xm128iexpand(uk, <a class="code" href="structaesni1xm128i__key__t.html#a60cefca96e55b73732f570e844efbe54">k</a>);
+<a name="l00124"></a>00124     }
+<a name="l00125"></a><a class="code" href="structaesni1xm128i__key__t.html#a43d53407125d4cec0d6a14586c0357e3">00125</a>     <a class="code" href="structaesni1xm128i__key__t.html#a43d53407125d4cec0d6a14586c0357e3">aesni1xm128i_key_t</a>(<span class="keyword">const</span> <a class="code" href="structr123array4x32.html">aesni4x32_ukey_t</a>& uk){
+<a name="l00126"></a>00126         <a class="code" href="structr123array1xm128i.html">aesni1xm128i_ukey_t</a> uk128;
+<a name="l00127"></a>00127         uk128.<a class="code" href="structr123array1xm128i.html#ab6d5e4b23c04e12c1aad7aaf38ff2bd5">v</a>[0].<a class="code" href="structr123m128i.html#a9b9908268281aace8028a3f34980634d">m</a> = _mm_set_epi32(uk.<a class="code" href="structr123array4x32.html#ac8e6785120a3031b211fc8aa7d03d83f">v</a>[3], uk.<a class="code" href="structr123array4x32.html#ac8e6785120a3031b211fc8aa7d03d83f">v</a>[2], uk.<a class="code" href="structr123array4x32.html#ac8e6785120a3031b [...]
+<a name="l00128"></a>00128         aesni1xm128iexpand(uk128, <a class="code" href="structaesni1xm128i__key__t.html#a60cefca96e55b73732f570e844efbe54">k</a>);
+<a name="l00129"></a>00129     }
+<a name="l00130"></a><a class="code" href="structaesni1xm128i__key__t.html#acb24fef68c539f1a6ea217ee8ada185d">00130</a>     <a class="code" href="structaesni1xm128i__key__t.html">aesni1xm128i_key_t</a>& <a class="code" href="structaesni1xm128i__key__t.html#acb24fef68c539f1a6ea217ee8ada185d">operator=</a>(<span class="keyword">const</span> <a class="code" href="structr123array1xm128i.html">aesni1xm128i_ukey_t</a>& uk){
+<a name="l00131"></a>00131         aesni1xm128iexpand(uk, <a class="code" href="structaesni1xm128i__key__t.html#a60cefca96e55b73732f570e844efbe54">k</a>);
+<a name="l00132"></a>00132         <span class="keywordflow">return</span> *<span class="keyword">this</span>;
+<a name="l00133"></a>00133     }
+<a name="l00134"></a><a class="code" href="structaesni1xm128i__key__t.html#a0290dac35d6f14706247217fb49bcd60">00134</a>     <a class="code" href="structaesni1xm128i__key__t.html">aesni1xm128i_key_t</a>& <a class="code" href="structaesni1xm128i__key__t.html#a0290dac35d6f14706247217fb49bcd60">operator=</a>(<span class="keyword">const</span> <a class="code" href="structr123array4x32.html">aesni4x32_ukey_t</a>& uk){
+<a name="l00135"></a>00135         <a class="code" href="structr123array1xm128i.html">aesni1xm128i_ukey_t</a> uk128;
+<a name="l00136"></a>00136         uk128.<a class="code" href="structr123array1xm128i.html#ab6d5e4b23c04e12c1aad7aaf38ff2bd5">v</a>[0].<a class="code" href="structr123m128i.html#a9b9908268281aace8028a3f34980634d">m</a> = _mm_set_epi32(uk.<a class="code" href="structr123array4x32.html#ac8e6785120a3031b211fc8aa7d03d83f">v</a>[3], uk.<a class="code" href="structr123array4x32.html#ac8e6785120a3031b211fc8aa7d03d83f">v</a>[2], uk.<a class="code" href="structr123array4x32.html#ac8e6785120a3031b [...]
+<a name="l00137"></a>00137         aesni1xm128iexpand(uk128, <a class="code" href="structaesni1xm128i__key__t.html#a60cefca96e55b73732f570e844efbe54">k</a>);
+<a name="l00138"></a>00138         <span class="keywordflow">return</span> *<span class="keyword">this</span>;
+<a name="l00139"></a>00139     }
+<a name="l00140"></a>00140 };
+<a name="l00141"></a>00141 <span class="preprocessor">#else</span>
+<a name="l00142"></a>00142 <span class="preprocessor"></span><span class="keyword">typedef</span> <span class="keyword">struct </span>{ 
+<a name="l00143"></a>00143     __m128i k[11]; 
+<a name="l00144"></a>00144 }<a class="code" href="structaesni1xm128i__key__t.html">aesni1xm128i_key_t</a>;
+<a name="l00145"></a>00145 
+<a name="l00147"></a>00147 R123_STATIC_INLINE <a class="code" href="structaesni1xm128i__key__t.html">aesni1xm128i_key_t</a> aesni1xm128ikeyinit(<a class="code" href="structr123array1xm128i.html">aesni1xm128i_ukey_t</a> uk){
+<a name="l00148"></a>00148     <a class="code" href="structaesni1xm128i__key__t.html">aesni1xm128i_key_t</a> ret;
+<a name="l00149"></a>00149     aesni1xm128iexpand(uk, ret.<a class="code" href="structaesni1xm128i__key__t.html#a60cefca96e55b73732f570e844efbe54">k</a>);
+<a name="l00150"></a>00150     <span class="keywordflow">return</span> ret;
+<a name="l00151"></a>00151 }
+<a name="l00152"></a>00152 <span class="preprocessor">#endif</span>
+<a name="l00153"></a>00153 <span class="preprocessor"></span>
+<a name="l00155"></a><a class="code" href="group__AESNI.html#ga3ba5daca2d4d076ece24900084e71311">00155</a> R123_STATIC_INLINE <a class="code" href="structr123array1xm128i.html">aesni1xm128i_ctr_t</a> <a class="code" href="group__AESNI.html#ga3ba5daca2d4d076ece24900084e71311">aesni1xm128i</a>(<a class="code" href="structr123array1xm128i.html">aesni1xm128i_ctr_t</a> in, <a class="code" href="structaesni1xm128i__key__t.html">aesni1xm128i_key_t</a> k) {
+<a name="l00156"></a>00156     __m128i x = _mm_xor_si128(k.<a class="code" href="structaesni1xm128i__key__t.html#a60cefca96e55b73732f570e844efbe54">k</a>[0], in.<a class="code" href="structr123array1xm128i.html#ab6d5e4b23c04e12c1aad7aaf38ff2bd5">v</a>[0].<a class="code" href="structr123m128i.html#a9b9908268281aace8028a3f34980634d">m</a>);
+<a name="l00157"></a>00157     x = _mm_aesenc_si128(x, k.<a class="code" href="structaesni1xm128i__key__t.html#a60cefca96e55b73732f570e844efbe54">k</a>[1]);
+<a name="l00158"></a>00158     x = _mm_aesenc_si128(x, k.<a class="code" href="structaesni1xm128i__key__t.html#a60cefca96e55b73732f570e844efbe54">k</a>[2]);
+<a name="l00159"></a>00159     x = _mm_aesenc_si128(x, k.<a class="code" href="structaesni1xm128i__key__t.html#a60cefca96e55b73732f570e844efbe54">k</a>[3]);
+<a name="l00160"></a>00160     x = _mm_aesenc_si128(x, k.<a class="code" href="structaesni1xm128i__key__t.html#a60cefca96e55b73732f570e844efbe54">k</a>[4]);
+<a name="l00161"></a>00161     x = _mm_aesenc_si128(x, k.<a class="code" href="structaesni1xm128i__key__t.html#a60cefca96e55b73732f570e844efbe54">k</a>[5]);
+<a name="l00162"></a>00162     x = _mm_aesenc_si128(x, k.<a class="code" href="structaesni1xm128i__key__t.html#a60cefca96e55b73732f570e844efbe54">k</a>[6]);
+<a name="l00163"></a>00163     x = _mm_aesenc_si128(x, k.<a class="code" href="structaesni1xm128i__key__t.html#a60cefca96e55b73732f570e844efbe54">k</a>[7]);
+<a name="l00164"></a>00164     x = _mm_aesenc_si128(x, k.<a class="code" href="structaesni1xm128i__key__t.html#a60cefca96e55b73732f570e844efbe54">k</a>[8]);
+<a name="l00165"></a>00165     x = _mm_aesenc_si128(x, k.<a class="code" href="structaesni1xm128i__key__t.html#a60cefca96e55b73732f570e844efbe54">k</a>[9]);
+<a name="l00166"></a>00166     x = _mm_aesenclast_si128(x, k.<a class="code" href="structaesni1xm128i__key__t.html#a60cefca96e55b73732f570e844efbe54">k</a>[10]);
+<a name="l00167"></a>00167     {
+<a name="l00168"></a>00168       <a class="code" href="structr123array1xm128i.html">aesni1xm128i_ctr_t</a> ret;
+<a name="l00169"></a>00169       ret.<a class="code" href="structr123array1xm128i.html#ab6d5e4b23c04e12c1aad7aaf38ff2bd5">v</a>[0].<a class="code" href="structr123m128i.html#a9b9908268281aace8028a3f34980634d">m</a> = x;
+<a name="l00170"></a>00170       <span class="keywordflow">return</span> ret;
+<a name="l00171"></a>00171     }
+<a name="l00172"></a>00172 }
+<a name="l00173"></a>00173 
+<a name="l00175"></a><a class="code" href="group__AESNI.html#ga89d9042c08ae5eef4c98bfb9609ebd34">00175</a> R123_STATIC_INLINE <a class="code" href="structr123array1xm128i.html">aesni1xm128i_ctr_t</a> <a class="code" href="group__AESNI.html#ga89d9042c08ae5eef4c98bfb9609ebd34">aesni1xm128i_R</a>(<span class="keywordtype">unsigned</span> R, <a class="code" href="structr123array1xm128i.html">aesni1xm128i_ctr_t</a> in, <a class="code" href="structaesni1xm128i__key__t.html">aesni1xm128i_key_t</a> k){
+<a name="l00176"></a>00176     R123_ASSERT(R==10);
+<a name="l00177"></a>00177     <span class="keywordflow">return</span> <a class="code" href="group__AESNI.html#ga3ba5daca2d4d076ece24900084e71311">aesni1xm128i</a>(in, k);
+<a name="l00178"></a>00178 }
+<a name="l00179"></a>00179 
+<a name="l00180"></a>00180 
+<a name="l00182"></a><a class="code" href="group__AESNI.html#gae7459b3f4ee0e424cb4f13b4d5efc1fe">00182</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structr123array4x32.html">r123array4x32</a> <a class="code" href="structr123array4x32.html">aesni4x32_ctr_t</a>;
+<a name="l00184"></a><a class="code" href="group__AESNI.html#ga6d88accdcfa339b48e14021a572e269b">00184</a> <span class="keyword">typedef</span> <a class="code" href="structaesni1xm128i__key__t.html">aesni1xm128i_key_t</a> <a class="code" href="structaesni1xm128i__key__t.html">aesni4x32_key_t</a>;
+<a name="l00186"></a><a class="code" href="group__AESNI.html#ga1557a9d6e95543a3c4ca9082a4c14b0d">00186</a> <span class="keyword">enum</span> <a class="code" href="group__AESNI.html#ga1557a9d6e95543a3c4ca9082a4c14b0d">r123_enum_aesni4x32</a> { <a class="code" href="aes_8h.html#a0e4c28ad2773dac7eb59004947c9e02b">aesni4x32_rounds</a> = 10 };
+<a name="l00188"></a><a class="code" href="group__AESNI.html#ga2aa21ba4a3d3850faa96e7834114d8e1">00188</a> R123_STATIC_INLINE <a class="code" href="structaesni1xm128i__key__t.html">aesni4x32_key_t</a> <a class="code" href="group__AESNI.html#ga2aa21ba4a3d3850faa96e7834114d8e1">aesni4x32keyinit</a>(<a class="code" href="structr123array4x32.html">aesni4x32_ukey_t</a> uk){
+<a name="l00189"></a>00189     <a class="code" href="structr123array1xm128i.html">aesni1xm128i_ukey_t</a> uk128;
+<a name="l00190"></a>00190     <a class="code" href="structaesni1xm128i__key__t.html">aesni4x32_key_t</a> ret;
+<a name="l00191"></a>00191     uk128.<a class="code" href="structr123array1xm128i.html#ab6d5e4b23c04e12c1aad7aaf38ff2bd5">v</a>[0].<a class="code" href="structr123m128i.html#a9b9908268281aace8028a3f34980634d">m</a> = _mm_set_epi32(uk.<a class="code" href="structr123array4x32.html#ac8e6785120a3031b211fc8aa7d03d83f">v</a>[3], uk.<a class="code" href="structr123array4x32.html#ac8e6785120a3031b211fc8aa7d03d83f">v</a>[2], uk.<a class="code" href="structr123array4x32.html#ac8e6785120a3031b211f [...]
+<a name="l00192"></a>00192     aesni1xm128iexpand(uk128, ret.<a class="code" href="structaesni1xm128i__key__t.html#a60cefca96e55b73732f570e844efbe54">k</a>);
+<a name="l00193"></a>00193     <span class="keywordflow">return</span> ret;
+<a name="l00194"></a>00194 }
+<a name="l00195"></a>00195 
+<a name="l00198"></a><a class="code" href="group__AESNI.html#gae28b030e9786a6f36a47df8f211a750b">00198</a> R123_STATIC_INLINE <a class="code" href="structr123array4x32.html">aesni4x32_ctr_t</a> <a class="code" href="group__AESNI.html#gae28b030e9786a6f36a47df8f211a750b">aesni4x32_R</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> Nrounds, <a class="code" href="structr123array4x32.html">aesni4x32_ctr_t</a> c, <a class="code" href="structaesni1xm128i__key__ [...]
+<a name="l00199"></a>00199     <a class="code" href="structr123array1xm128i.html">aesni1xm128i_ctr_t</a> c128;
+<a name="l00200"></a>00200     c128.<a class="code" href="structr123array1xm128i.html#ab6d5e4b23c04e12c1aad7aaf38ff2bd5">v</a>[0].<a class="code" href="structr123m128i.html#a9b9908268281aace8028a3f34980634d">m</a> = _mm_set_epi32(c.<a class="code" href="structr123array4x32.html#ac8e6785120a3031b211fc8aa7d03d83f">v</a>[3], c.<a class="code" href="structr123array4x32.html#ac8e6785120a3031b211fc8aa7d03d83f">v</a>[2], c.<a class="code" href="structr123array4x32.html#ac8e6785120a3031b211fc8aa [...]
+<a name="l00201"></a>00201     c128 = <a class="code" href="group__AESNI.html#ga89d9042c08ae5eef4c98bfb9609ebd34">aesni1xm128i_R</a>(Nrounds, c128, k);
+<a name="l00202"></a>00202     _mm_storeu_si128((__m128i*)&c.<a class="code" href="structr123array4x32.html#ac8e6785120a3031b211fc8aa7d03d83f">v</a>[0], c128.<a class="code" href="structr123array1xm128i.html#ab6d5e4b23c04e12c1aad7aaf38ff2bd5">v</a>[0].<a class="code" href="structr123m128i.html#a9b9908268281aace8028a3f34980634d">m</a>);
+<a name="l00203"></a>00203     <span class="keywordflow">return</span> c;
+<a name="l00204"></a>00204 }
+<a name="l00205"></a>00205 
+<a name="l00206"></a><a class="code" href="aes_8h.html#a0e4c28ad2773dac7eb59004947c9e02b">00206</a> <span class="preprocessor">#define aesni4x32_rounds aesni1xm128i_rounds</span>
+<a name="l00207"></a>00207 <span class="preprocessor"></span>
+<a name="l00210"></a><a class="code" href="group__AESNI.html#gae3950c524818b49d1cdfad481880a33a">00210</a> <span class="preprocessor">#define aesni4x32(c,k) aesni4x32_R(aesni4x32_rounds, c, k)</span>
+<a name="l00211"></a>00211 <span class="preprocessor"></span>
+<a name="l00212"></a>00212 <span class="preprocessor">#ifdef __cplusplus</span>
+<a name="l00213"></a><a class="code" href="namespacer123.html">00213</a> <span class="preprocessor"></span><span class="keyword">namespace </span>r123{
+<a name="l00245"></a><a class="code" href="structr123_1_1AESNI1xm128i.html">00245</a> <span class="keyword">struct </span><a class="code" href="structr123_1_1AESNI1xm128i.html">AESNI1xm128i</a>{
+<a name="l00246"></a><a class="code" href="structr123_1_1AESNI1xm128i.html#aaa136c21db9806859fa7cd4e2dbaaaa6">00246</a>     <span class="keyword">typedef</span> <a class="code" href="structr123array1xm128i.html">aesni1xm128i_ctr_t</a> <a class="code" href="structr123array1xm128i.html">ctr_type</a>;
+<a name="l00247"></a><a class="code" href="structr123_1_1AESNI1xm128i.html#a1f405533da84d98b938030190a63cec5">00247</a>     <span class="keyword">typedef</span> <a class="code" href="structr123array1xm128i.html">aesni1xm128i_ukey_t</a> <a class="code" href="structr123array1xm128i.html">ukey_type</a>;
+<a name="l00248"></a><a class="code" href="structr123_1_1AESNI1xm128i.html#a7dc33fd5abf509d9d16b571b23867a6b">00248</a>     <span class="keyword">typedef</span> <a class="code" href="structaesni1xm128i__key__t.html">aesni1xm128i_key_t</a> <a class="code" href="structaesni1xm128i__key__t.html">key_type</a>;
+<a name="l00249"></a><a class="code" href="structr123_1_1AESNI1xm128i.html#a1b5a44afde814ba844d8f5442e2a3a5f">00249</a>     <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structr123_1_1AESNI1xm128i.html#a1b5a44afde814ba844d8f5442e2a3a5f">rounds</a>=10;
+<a name="l00250"></a><a class="code" href="structr123_1_1AESNI1xm128i.html#a9bff0ac8478400c1006136e9bde91dc3">00250</a>     <a class="code" href="structr123array1xm128i.html">ctr_type</a> <a class="code" href="structr123_1_1AESNI1xm128i.html#a9bff0ac8478400c1006136e9bde91dc3">operator()</a>(<a class="code" href="structr123array1xm128i.html">ctr_type</a> ctr, <a class="code" href="structaesni1xm128i__key__t.html">key_type</a> key)<span class="keyword"> const</span>{
+<a name="l00251"></a>00251         <span class="keywordflow">return</span> <a class="code" href="group__AESNI.html#ga3ba5daca2d4d076ece24900084e71311">aesni1xm128i</a>(ctr, key);
+<a name="l00252"></a>00252     }
+<a name="l00253"></a>00253 };
+<a name="l00254"></a>00254 
+<a name="l00255"></a>00255 <span class="comment">/* @class AESNI4x32 */</span>
+<a name="l00256"></a><a class="code" href="structr123_1_1AESNI4x32.html">00256</a> <span class="keyword">struct </span><a class="code" href="structr123_1_1AESNI4x32.html">AESNI4x32</a>{
+<a name="l00257"></a><a class="code" href="structr123_1_1AESNI4x32.html#ab8a1f8a822eecfc9e587bad76792df32">00257</a>     <span class="keyword">typedef</span> <a class="code" href="structr123array4x32.html">aesni4x32_ctr_t</a> <a class="code" href="structr123array4x32.html">ctr_type</a>;
+<a name="l00258"></a><a class="code" href="structr123_1_1AESNI4x32.html#a3fbb6113e70575dce3b6047a22a751f4">00258</a>     <span class="keyword">typedef</span> <a class="code" href="structr123array4x32.html">aesni4x32_ukey_t</a> <a class="code" href="structr123array4x32.html">ukey_type</a>;
+<a name="l00259"></a><a class="code" href="structr123_1_1AESNI4x32.html#a3f47cb319d03ede5fd557800b618d28a">00259</a>     <span class="keyword">typedef</span> <a class="code" href="structaesni1xm128i__key__t.html">aesni4x32_key_t</a> <a class="code" href="structaesni1xm128i__key__t.html">key_type</a>;
+<a name="l00260"></a><a class="code" href="structr123_1_1AESNI4x32.html#a725aad79b8d496d97bed24390f624be6">00260</a>     <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structr123_1_1AESNI4x32.html#a725aad79b8d496d97bed24390f624be6">rounds</a>=10;
+<a name="l00261"></a><a class="code" href="structr123_1_1AESNI4x32.html#a981102e5bc0a7df916a95a40af8fd4c0">00261</a>     <a class="code" href="structr123array4x32.html">ctr_type</a> <a class="code" href="structr123_1_1AESNI4x32.html#a981102e5bc0a7df916a95a40af8fd4c0">operator()</a>(<a class="code" href="structr123array4x32.html">ctr_type</a> ctr, <a class="code" href="structaesni1xm128i__key__t.html">key_type</a> key)<span class="keyword"> const</span>{
+<a name="l00262"></a>00262         <span class="keywordflow">return</span> <a class="code" href="group__AESNI.html#gae3950c524818b49d1cdfad481880a33a">aesni4x32</a>(ctr, key);
+<a name="l00263"></a>00263     }
+<a name="l00264"></a>00264 };
+<a name="l00265"></a>00265 
+<a name="l00271"></a>00271 <span class="keyword">template</span> <<span class="keywordtype">unsigned</span> ROUNDS=10> 
+<a name="l00272"></a><a class="code" href="structr123_1_1AESNI1xm128i__R.html">00272</a> <span class="keyword">struct </span><a class="code" href="structr123_1_1AESNI1xm128i__R.html">AESNI1xm128i_R</a> : <span class="keyword">public</span> <a class="code" href="structr123_1_1AESNI1xm128i.html">AESNI1xm128i</a>{
+<a name="l00273"></a>00273     R123_STATIC_ASSERT(ROUNDS==10, <span class="stringliteral">"AESNI1xm128i_R<R> is only valid with R=10"</span>);
+<a name="l00274"></a>00274 };
+<a name="l00275"></a>00275 
+<a name="l00277"></a>00277 <span class="keyword">template</span> <<span class="keywordtype">unsigned</span> ROUNDS=10> 
+<a name="l00278"></a><a class="code" href="structr123_1_1AESNI4x32__R.html">00278</a> <span class="keyword">struct </span><a class="code" href="structr123_1_1AESNI4x32__R.html">AESNI4x32_R</a> : <span class="keyword">public</span> <a class="code" href="structr123_1_1AESNI4x32.html">AESNI4x32</a>{
+<a name="l00279"></a>00279     R123_STATIC_ASSERT(ROUNDS==10, <span class="stringliteral">"AESNI4x32_R<R> is only valid with R=10"</span>);
+<a name="l00280"></a>00280 };
+<a name="l00281"></a>00281 } <span class="comment">// namespace r123</span>
+<a name="l00282"></a>00282 <span class="preprocessor">#endif </span><span class="comment">/* __cplusplus */</span>
+<a name="l00283"></a>00283 
+<a name="l00284"></a>00284 <span class="preprocessor">#endif </span><span class="comment">/* R123_USE_AES_NI */</span>
+<a name="l00285"></a>00285 
+<a name="l00286"></a>00286 <span class="preprocessor">#if R123_USE_AES_OPENSSL</span>
+<a name="l00287"></a>00287 <span class="preprocessor"></span><span class="preprocessor">#include <openssl/aes.h></span>
+<a name="l00288"></a>00288 <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structr123array16x8.html">r123array16x8</a> aesopenssl16x8_ctr_t;
+<a name="l00289"></a>00289 <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structr123array16x8.html">r123array16x8</a> aesopenssl16x8_ukey_t;
+<a name="l00290"></a>00290 <span class="preprocessor">#ifdef __cplusplus</span>
+<a name="l00291"></a>00291 <span class="preprocessor"></span><span class="keyword">struct </span>aesopenssl16x8_key_t{
+<a name="l00292"></a>00292     AES_KEY k;
+<a name="l00293"></a>00293     aesopenssl16x8_key_t(){
+<a name="l00294"></a>00294         aesopenssl16x8_ukey_t ukey={{}};
+<a name="l00295"></a>00295         AES_set_encrypt_key((<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *)&ukey.v[0], 128, &k);
+<a name="l00296"></a>00296     }
+<a name="l00297"></a>00297     aesopenssl16x8_key_t(<span class="keyword">const</span> aesopenssl16x8_ukey_t& ukey){
+<a name="l00298"></a>00298         AES_set_encrypt_key((<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *)&ukey.v[0], 128, &k);
+<a name="l00299"></a>00299     }
+<a name="l00300"></a>00300     aesopenssl16x8_key_t& operator=(<span class="keyword">const</span> aesopenssl16x8_ukey_t& ukey){
+<a name="l00301"></a>00301         AES_set_encrypt_key((<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *)&ukey.v[0], 128, &k);
+<a name="l00302"></a>00302         <span class="keywordflow">return</span> *<span class="keyword">this</span>;
+<a name="l00303"></a>00303     }
+<a name="l00304"></a>00304 };
+<a name="l00305"></a>00305 <span class="preprocessor">#else</span>
+<a name="l00306"></a>00306 <span class="preprocessor"></span><span class="keyword">typedef</span> <span class="keyword">struct </span>aesopenssl16x8_key_t{
+<a name="l00307"></a>00307     AES_KEY k;
+<a name="l00308"></a>00308 }aesopenssl16x8_key_t;
+<a name="l00309"></a>00309 R123_STATIC_INLINE <span class="keyword">struct </span>aesopenssl16x8_key_t aesopenssl16x8keyinit(aesopenssl16x8_ukey_t uk){
+<a name="l00310"></a>00310     aesopenssl16x8_key_t ret;
+<a name="l00311"></a>00311     AES_set_encrypt_key((<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *)&uk.v[0], 128, &ret.k);
+<a name="l00312"></a>00312     <span class="keywordflow">return</span> ret;
+<a name="l00313"></a>00313 }
+<a name="l00314"></a>00314 <span class="preprocessor">#endif</span>
+<a name="l00315"></a>00315 <span class="preprocessor"></span>
+<a name="l00316"></a>00316 R123_STATIC_INLINE R123_FORCE_INLINE(aesopenssl16x8_ctr_t aesopenssl16x8_R(aesopenssl16x8_ctr_t ctr, aesopenssl16x8_key_t key));
+<a name="l00317"></a>00317 R123_STATIC_INLINE
+<a name="l00318"></a>00318 aesopenssl16x8_ctr_t aesopenssl16x8_R(aesopenssl16x8_ctr_t ctr, aesopenssl16x8_key_t key){
+<a name="l00319"></a>00319     aesopenssl16x8_ctr_t ret;
+<a name="l00320"></a>00320     AES_encrypt((<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>*)&ctr.v[0], (<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *)&ret.v[0], &key.k);
+<a name="l00321"></a>00321     <span class="keywordflow">return</span> ret;
+<a name="l00322"></a>00322 }
+<a name="l00323"></a>00323 
+<a name="l00324"></a>00324 <span class="preprocessor">#define aesopenssl16x8_rounds aesni4x32_rounds</span>
+<a name="l00325"></a>00325 <span class="preprocessor"></span><span class="preprocessor">#define aesopenssl16x8(c,k) aesopenssl16x8_R(aesopenssl16x8_rounds)</span>
+<a name="l00326"></a>00326 <span class="preprocessor"></span>
+<a name="l00327"></a>00327 <span class="preprocessor">#ifdef __cplusplus</span>
+<a name="l00328"></a>00328 <span class="preprocessor"></span><span class="keyword">namespace </span>r123{
+<a name="l00329"></a>00329 <span class="keyword">struct </span>AESOpenSSL16x8{
+<a name="l00330"></a>00330     <span class="keyword">typedef</span> aesopenssl16x8_ctr_t ctr_type;
+<a name="l00331"></a>00331     <span class="keyword">typedef</span> aesopenssl16x8_key_t key_type;
+<a name="l00332"></a>00332     <span class="keyword">typedef</span> aesopenssl16x8_ukey_t ukey_type;
+<a name="l00333"></a>00333     <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> rounds=10;
+<a name="l00334"></a>00334     ctr_type operator()(<span class="keyword">const</span> ctr_type& in, <span class="keyword">const</span> key_type& k){
+<a name="l00335"></a>00335         ctr_type out;
+<a name="l00336"></a>00336         AES_encrypt((<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *)&in[0], (<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *)&out[0], &k.k);
+<a name="l00337"></a>00337         <span class="keywordflow">return</span> out;
+<a name="l00338"></a>00338     }
+<a name="l00339"></a>00339 };
+<a name="l00340"></a>00340 } <span class="comment">// namespace r123</span>
+<a name="l00341"></a>00341 <span class="preprocessor">#endif </span><span class="comment">/* __cplusplus */</span>
+<a name="l00342"></a>00342 <span class="preprocessor">#endif </span><span class="comment">/* R123_USE_AES_OPENSSL */</span>
+<a name="l00343"></a>00343 
+<a name="l00344"></a>00344 <span class="preprocessor">#endif</span>
+</pre></div></div>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/annotated.html b/docs/html/annotated.html
new file mode 100644
index 0000000..f2c8fcd
--- /dev/null
+++ b/docs/html/annotated.html
@@ -0,0 +1,107 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Class List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li class="current"><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<h1>Class List</h1>  </div>
+</div>
+<div class="contents">
+Here are the classes, structs, unions and interfaces with brief descriptions:<table>
+  <tr><td class="indexkey"><a class="el" href="structr123_1_1AESNI1xm128i.html">r123::AESNI1xm128i</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><a class="el" href="structaesni1xm128i__key__t.html">aesni1xm128i_key_t</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><a class="el" href="structr123_1_1AESNI1xm128i__R.html">r123::AESNI1xm128i_R< ROUNDS ></a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><a class="el" href="structr123_1_1AESNI4x32.html">r123::AESNI4x32</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><a class="el" href="structr123_1_1AESNI4x32__R.html">r123::AESNI4x32_R< ROUNDS ></a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><a class="el" href="structr123_1_1ARS1xm128i__R.html">r123::ARS1xm128i_R< ROUNDS ></a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><a class="el" href="structr123_1_1ARS4x32__R.html">r123::ARS4x32_R< ROUNDS ></a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><a class="el" href="structr123_1_1Engine.html">r123::Engine< CBRNG ></a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><a class="el" href="classr123_1_1MicroURNG.html">r123::MicroURNG< CBRNG ></a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><a class="el" href="structr123_1_1Philox2x32__R.html">r123::Philox2x32_R< ROUNDS ></a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><a class="el" href="structr123_1_1Philox2x64__R.html">r123::Philox2x64_R< ROUNDS ></a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><a class="el" href="structr123_1_1Philox4x32__R.html">r123::Philox4x32_R< ROUNDS ></a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><a class="el" href="structr123_1_1Philox4x64__R.html">r123::Philox4x64_R< ROUNDS ></a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><a class="el" href="structr123array16x8.html">r123array16x8</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><a class="el" href="structr123array1x32.html">r123array1x32</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><a class="el" href="structr123array1x64.html">r123array1x64</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><a class="el" href="structr123array1xm128i.html">r123array1xm128i</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><a class="el" href="structr123array2x32.html">r123array2x32</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><a class="el" href="structr123array2x64.html">r123array2x64</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><a class="el" href="structr123array4x32.html">r123array4x32</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><a class="el" href="structr123array4x64.html">r123array4x64</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><a class="el" href="structr123array8x32.html">r123array8x32</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><a class="el" href="structr123m128i.html">r123m128i</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><a class="el" href="structr123_1_1ReinterpretCtr.html">r123::ReinterpretCtr< ToType, CBRNG ></a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><a class="el" href="structr123_1_1Threefry2x32__R.html">r123::Threefry2x32_R< R ></a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><a class="el" href="structr123_1_1Threefry2x64__R.html">r123::Threefry2x64_R< R ></a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><a class="el" href="structr123_1_1Threefry4x32__R.html">r123::Threefry4x32_R< R ></a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><a class="el" href="structr123_1_1Threefry4x64__R.html">r123::Threefry4x64_R< R ></a></td><td class="indexvalue"></td></tr>
+</table>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/array_8h.html b/docs/html/array_8h.html
new file mode 100644
index 0000000..e6a6a49
--- /dev/null
+++ b/docs/html/array_8h.html
@@ -0,0 +1,647 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Random123/array.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Classes</a> |
+<a href="#namespaces">Namespaces</a> |
+<a href="#define-members">Defines</a> |
+<a href="#typedef-members">Typedefs</a> |
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<h1>Random123/array.h File Reference</h1>  </div>
+</div>
+<div class="contents">
+<code>#include "<a class="el" href="compilerfeatures_8h_source.html">features/compilerfeatures.h</a>"</code><br/>
+<code>#include "<a class="el" href="sse_8h_source.html">features/sse.h</a>"</code><br/>
+<code>#include <stddef.h></code><br/>
+<code>#include <algorithm></code><br/>
+<code>#include <stdexcept></code><br/>
+<code>#include <iterator></code><br/>
+<code>#include <limits></code><br/>
+<code>#include <iostream></code><br/>
+
+<p><a href="array_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x32.html">r123array1x32</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x32.html">r123array2x32</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x32.html">r123array4x32</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array8x32.html">r123array8x32</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x64.html">r123array1x64</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x64.html">r123array2x64</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x64.html">r123array4x64</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array16x8.html">r123array16x8</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1xm128i.html">r123array1xm128i</a></td></tr>
+<tr><td colspan="2"><h2><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacer123.html">r123</a></td></tr>
+<tr><td colspan="2"><h2><a name="define-members"></a>
+Defines</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="array_8h.html#a9b64205709c0daaea3b05bbf7ea5a322">R123_W</a>(a)   (8*sizeof(((a *)0)->v[0]))</td></tr>
+<tr><td colspan="2"><h2><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123array1x32.html">r123array1x32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacer123.html#acc1b0ed919ef806de26f5ff5b934b313">r123::Array1x32</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123array2x32.html">r123array2x32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacer123.html#ab853ac55f8188e4a09d12ab23f2d8dea">r123::Array2x32</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123array4x32.html">r123array4x32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacer123.html#a0c352c3ea265e7fd182559e557113195">r123::Array4x32</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123array8x32.html">r123array8x32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacer123.html#aea31cf23efbfcc11808b7e394922f4d2">r123::Array8x32</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123array1x64.html">r123array1x64</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacer123.html#aeb81c4265759fad9993e09fda21ff4fa">r123::Array1x64</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123array2x64.html">r123array2x64</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacer123.html#ad3b670563762f605a6fce61b5bab8412">r123::Array2x64</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123array4x64.html">r123array4x64</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacer123.html#a54c1a72670974c11acff37279eb23147">r123::Array4x64</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123array16x8.html">r123array16x8</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacer123.html#ac3148aed79e81051d40e9b29a8914cf4">r123::Array16x8</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123array1xm128i.html">r123array1xm128i</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacer123.html#adbb729a97ee41e7cb075058b55a58c5d">r123::Array1xm128i</a></td></tr>
+<tr><td colspan="2"><h2><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::ostream & </td><td class="memItemRight" valign="bottom"><a class="el" href="array_8h.html#af29a19da89789058ead246fdef153ce0">operator<<</a> (std::ostream &os, const <a class="el" href="structr123array1x32.html">r123array1x32</a> &a)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::istream & </td><td class="memItemRight" valign="bottom"><a class="el" href="array_8h.html#ace3112deae6709884feac904b1c260a1">operator>></a> (std::istream &is, <a class="el" href="structr123array1x32.html">r123array1x32</a> &a)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::ostream & </td><td class="memItemRight" valign="bottom"><a class="el" href="array_8h.html#a9c1f24a8b73925bc24a5acf09fd4e305">operator<<</a> (std::ostream &os, const <a class="el" href="structr123array2x32.html">r123array2x32</a> &a)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::istream & </td><td class="memItemRight" valign="bottom"><a class="el" href="array_8h.html#a41bb2d7e99cf51ca5927a074d1424a03">operator>></a> (std::istream &is, <a class="el" href="structr123array2x32.html">r123array2x32</a> &a)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::ostream & </td><td class="memItemRight" valign="bottom"><a class="el" href="array_8h.html#ab2b41774a3888c0bc9697fd79383eae4">operator<<</a> (std::ostream &os, const <a class="el" href="structr123array4x32.html">r123array4x32</a> &a)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::istream & </td><td class="memItemRight" valign="bottom"><a class="el" href="array_8h.html#a2782402f8b3941e104e01c317fd4b099">operator>></a> (std::istream &is, <a class="el" href="structr123array4x32.html">r123array4x32</a> &a)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::ostream & </td><td class="memItemRight" valign="bottom"><a class="el" href="array_8h.html#a8339351efe6ba804aacd3d97632e2bdf">operator<<</a> (std::ostream &os, const <a class="el" href="structr123array8x32.html">r123array8x32</a> &a)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::istream & </td><td class="memItemRight" valign="bottom"><a class="el" href="array_8h.html#ae63a28cc2f1e69f63a4402c8b83663b4">operator>></a> (std::istream &is, <a class="el" href="structr123array8x32.html">r123array8x32</a> &a)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::ostream & </td><td class="memItemRight" valign="bottom"><a class="el" href="array_8h.html#ae87e390bd8c0cadc74bd08dfffd0101f">operator<<</a> (std::ostream &os, const <a class="el" href="structr123array1x64.html">r123array1x64</a> &a)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::istream & </td><td class="memItemRight" valign="bottom"><a class="el" href="array_8h.html#a3cdf7b897463996d6eda01443dd669c5">operator>></a> (std::istream &is, <a class="el" href="structr123array1x64.html">r123array1x64</a> &a)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::ostream & </td><td class="memItemRight" valign="bottom"><a class="el" href="array_8h.html#a06634d010d5cde0afe278031c7597cc3">operator<<</a> (std::ostream &os, const <a class="el" href="structr123array2x64.html">r123array2x64</a> &a)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::istream & </td><td class="memItemRight" valign="bottom"><a class="el" href="array_8h.html#a7b32dd7601d0a11b72583a841abc8fca">operator>></a> (std::istream &is, <a class="el" href="structr123array2x64.html">r123array2x64</a> &a)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::ostream & </td><td class="memItemRight" valign="bottom"><a class="el" href="array_8h.html#acff68189292ea886eed0f24b5146566d">operator<<</a> (std::ostream &os, const <a class="el" href="structr123array4x64.html">r123array4x64</a> &a)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::istream & </td><td class="memItemRight" valign="bottom"><a class="el" href="array_8h.html#a60aa3cdbb34ced56c0c7c82371f2b30c">operator>></a> (std::istream &is, <a class="el" href="structr123array4x64.html">r123array4x64</a> &a)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::ostream & </td><td class="memItemRight" valign="bottom"><a class="el" href="array_8h.html#a8b82ce828fcb9bb530870dd2919975e9">operator<<</a> (std::ostream &os, const <a class="el" href="structr123array16x8.html">r123array16x8</a> &a)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::istream & </td><td class="memItemRight" valign="bottom"><a class="el" href="array_8h.html#abb64305331045d211dfa35be0d0cc6a9">operator>></a> (std::istream &is, <a class="el" href="structr123array16x8.html">r123array16x8</a> &a)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::ostream & </td><td class="memItemRight" valign="bottom"><a class="el" href="array_8h.html#af4437aa49ff7855c60ca4ddacf2e48e5">operator<<</a> (std::ostream &os, const <a class="el" href="structr123array1xm128i.html">r123array1xm128i</a> &a)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::istream & </td><td class="memItemRight" valign="bottom"><a class="el" href="array_8h.html#af831caf1f33e800dad6a659523525a78">operator>></a> (std::istream &is, <a class="el" href="structr123array1xm128i.html">r123array1xm128i</a> &a)</td></tr>
+</table>
+<hr/><h2>Define Documentation</h2>
+<a class="anchor" id="a9b64205709c0daaea3b05bbf7ea5a322"></a><!-- doxytag: member="array.h::R123_W" ref="a9b64205709c0daaea3b05bbf7ea5a322" args="(a)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define R123_W</td>
+          <td>(</td>
+          <td class="paramtype"> </td>
+          <td class="paramname">a</td>
+          <td> ) </td>
+          <td>   (8*sizeof(((a *)0)->v[0]))</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/><h2>Function Documentation</h2>
+<a class="anchor" id="af29a19da89789058ead246fdef153ce0"></a><!-- doxytag: member="array.h::operator<<" ref="af29a19da89789058ead246fdef153ce0" args="(std::ostream &os, const r123array1x32 &a)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::ostream& operator<< </td>
+          <td>(</td>
+          <td class="paramtype">std::ostream & </td>
+          <td class="paramname"> <em>os</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structr123array1x32.html">r123array1x32</a> & </td>
+          <td class="paramname"> <em>a</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ab2b41774a3888c0bc9697fd79383eae4"></a><!-- doxytag: member="array.h::operator<<" ref="ab2b41774a3888c0bc9697fd79383eae4" args="(std::ostream &os, const r123array4x32 &a)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::ostream& operator<< </td>
+          <td>(</td>
+          <td class="paramtype">std::ostream & </td>
+          <td class="paramname"> <em>os</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structr123array4x32.html">r123array4x32</a> & </td>
+          <td class="paramname"> <em>a</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae87e390bd8c0cadc74bd08dfffd0101f"></a><!-- doxytag: member="array.h::operator<<" ref="ae87e390bd8c0cadc74bd08dfffd0101f" args="(std::ostream &os, const r123array1x64 &a)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::ostream& operator<< </td>
+          <td>(</td>
+          <td class="paramtype">std::ostream & </td>
+          <td class="paramname"> <em>os</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structr123array1x64.html">r123array1x64</a> & </td>
+          <td class="paramname"> <em>a</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="af4437aa49ff7855c60ca4ddacf2e48e5"></a><!-- doxytag: member="array.h::operator<<" ref="af4437aa49ff7855c60ca4ddacf2e48e5" args="(std::ostream &os, const r123array1xm128i &a)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::ostream& operator<< </td>
+          <td>(</td>
+          <td class="paramtype">std::ostream & </td>
+          <td class="paramname"> <em>os</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structr123array1xm128i.html">r123array1xm128i</a> & </td>
+          <td class="paramname"> <em>a</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a8b82ce828fcb9bb530870dd2919975e9"></a><!-- doxytag: member="array.h::operator<<" ref="a8b82ce828fcb9bb530870dd2919975e9" args="(std::ostream &os, const r123array16x8 &a)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::ostream& operator<< </td>
+          <td>(</td>
+          <td class="paramtype">std::ostream & </td>
+          <td class="paramname"> <em>os</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structr123array16x8.html">r123array16x8</a> & </td>
+          <td class="paramname"> <em>a</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a06634d010d5cde0afe278031c7597cc3"></a><!-- doxytag: member="array.h::operator<<" ref="a06634d010d5cde0afe278031c7597cc3" args="(std::ostream &os, const r123array2x64 &a)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::ostream& operator<< </td>
+          <td>(</td>
+          <td class="paramtype">std::ostream & </td>
+          <td class="paramname"> <em>os</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structr123array2x64.html">r123array2x64</a> & </td>
+          <td class="paramname"> <em>a</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a9c1f24a8b73925bc24a5acf09fd4e305"></a><!-- doxytag: member="array.h::operator<<" ref="a9c1f24a8b73925bc24a5acf09fd4e305" args="(std::ostream &os, const r123array2x32 &a)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::ostream& operator<< </td>
+          <td>(</td>
+          <td class="paramtype">std::ostream & </td>
+          <td class="paramname"> <em>os</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structr123array2x32.html">r123array2x32</a> & </td>
+          <td class="paramname"> <em>a</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="acff68189292ea886eed0f24b5146566d"></a><!-- doxytag: member="array.h::operator<<" ref="acff68189292ea886eed0f24b5146566d" args="(std::ostream &os, const r123array4x64 &a)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::ostream& operator<< </td>
+          <td>(</td>
+          <td class="paramtype">std::ostream & </td>
+          <td class="paramname"> <em>os</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structr123array4x64.html">r123array4x64</a> & </td>
+          <td class="paramname"> <em>a</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a8339351efe6ba804aacd3d97632e2bdf"></a><!-- doxytag: member="array.h::operator<<" ref="a8339351efe6ba804aacd3d97632e2bdf" args="(std::ostream &os, const r123array8x32 &a)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::ostream& operator<< </td>
+          <td>(</td>
+          <td class="paramtype">std::ostream & </td>
+          <td class="paramname"> <em>os</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structr123array8x32.html">r123array8x32</a> & </td>
+          <td class="paramname"> <em>a</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a3cdf7b897463996d6eda01443dd669c5"></a><!-- doxytag: member="array.h::operator>>" ref="a3cdf7b897463996d6eda01443dd669c5" args="(std::istream &is, r123array1x64 &a)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::istream& operator>> </td>
+          <td>(</td>
+          <td class="paramtype">std::istream & </td>
+          <td class="paramname"> <em>is</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structr123array1x64.html">r123array1x64</a> & </td>
+          <td class="paramname"> <em>a</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a41bb2d7e99cf51ca5927a074d1424a03"></a><!-- doxytag: member="array.h::operator>>" ref="a41bb2d7e99cf51ca5927a074d1424a03" args="(std::istream &is, r123array2x32 &a)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::istream& operator>> </td>
+          <td>(</td>
+          <td class="paramtype">std::istream & </td>
+          <td class="paramname"> <em>is</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structr123array2x32.html">r123array2x32</a> & </td>
+          <td class="paramname"> <em>a</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="af831caf1f33e800dad6a659523525a78"></a><!-- doxytag: member="array.h::operator>>" ref="af831caf1f33e800dad6a659523525a78" args="(std::istream &is, r123array1xm128i &a)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::istream& operator>> </td>
+          <td>(</td>
+          <td class="paramtype">std::istream & </td>
+          <td class="paramname"> <em>is</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structr123array1xm128i.html">r123array1xm128i</a> & </td>
+          <td class="paramname"> <em>a</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a7b32dd7601d0a11b72583a841abc8fca"></a><!-- doxytag: member="array.h::operator>>" ref="a7b32dd7601d0a11b72583a841abc8fca" args="(std::istream &is, r123array2x64 &a)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::istream& operator>> </td>
+          <td>(</td>
+          <td class="paramtype">std::istream & </td>
+          <td class="paramname"> <em>is</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structr123array2x64.html">r123array2x64</a> & </td>
+          <td class="paramname"> <em>a</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a2782402f8b3941e104e01c317fd4b099"></a><!-- doxytag: member="array.h::operator>>" ref="a2782402f8b3941e104e01c317fd4b099" args="(std::istream &is, r123array4x32 &a)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::istream& operator>> </td>
+          <td>(</td>
+          <td class="paramtype">std::istream & </td>
+          <td class="paramname"> <em>is</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structr123array4x32.html">r123array4x32</a> & </td>
+          <td class="paramname"> <em>a</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="abb64305331045d211dfa35be0d0cc6a9"></a><!-- doxytag: member="array.h::operator>>" ref="abb64305331045d211dfa35be0d0cc6a9" args="(std::istream &is, r123array16x8 &a)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::istream& operator>> </td>
+          <td>(</td>
+          <td class="paramtype">std::istream & </td>
+          <td class="paramname"> <em>is</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structr123array16x8.html">r123array16x8</a> & </td>
+          <td class="paramname"> <em>a</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae63a28cc2f1e69f63a4402c8b83663b4"></a><!-- doxytag: member="array.h::operator>>" ref="ae63a28cc2f1e69f63a4402c8b83663b4" args="(std::istream &is, r123array8x32 &a)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::istream& operator>> </td>
+          <td>(</td>
+          <td class="paramtype">std::istream & </td>
+          <td class="paramname"> <em>is</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structr123array8x32.html">r123array8x32</a> & </td>
+          <td class="paramname"> <em>a</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ace3112deae6709884feac904b1c260a1"></a><!-- doxytag: member="array.h::operator>>" ref="ace3112deae6709884feac904b1c260a1" args="(std::istream &is, r123array1x32 &a)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::istream& operator>> </td>
+          <td>(</td>
+          <td class="paramtype">std::istream & </td>
+          <td class="paramname"> <em>is</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structr123array1x32.html">r123array1x32</a> & </td>
+          <td class="paramname"> <em>a</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a60aa3cdbb34ced56c0c7c82371f2b30c"></a><!-- doxytag: member="array.h::operator>>" ref="a60aa3cdbb34ced56c0c7c82371f2b30c" args="(std::istream &is, r123array4x64 &a)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::istream& operator>> </td>
+          <td>(</td>
+          <td class="paramtype">std::istream & </td>
+          <td class="paramname"> <em>is</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structr123array4x64.html">r123array4x64</a> & </td>
+          <td class="paramname"> <em>a</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/array_8h_source.html b/docs/html/array_8h_source.html
new file mode 100644
index 0000000..b4475e6
--- /dev/null
+++ b/docs/html/array_8h_source.html
@@ -0,0 +1,376 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Random123/array.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+<div class="header">
+  <div class="headertitle">
+<h1>Random123/array.h</h1>  </div>
+</div>
+<div class="contents">
+<a href="array_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
+<a name="l00002"></a>00002 <span class="comment">Copyright 2010-2011, D. E. Shaw Research.</span>
+<a name="l00003"></a>00003 <span class="comment">All rights reserved.</span>
+<a name="l00004"></a>00004 <span class="comment"></span>
+<a name="l00005"></a>00005 <span class="comment">Redistribution and use in source and binary forms, with or without</span>
+<a name="l00006"></a>00006 <span class="comment">modification, are permitted provided that the following conditions are</span>
+<a name="l00007"></a>00007 <span class="comment">met:</span>
+<a name="l00008"></a>00008 <span class="comment"></span>
+<a name="l00009"></a>00009 <span class="comment">* Redistributions of source code must retain the above copyright</span>
+<a name="l00010"></a>00010 <span class="comment">  notice, this list of conditions, and the following disclaimer.</span>
+<a name="l00011"></a>00011 <span class="comment"></span>
+<a name="l00012"></a>00012 <span class="comment">* Redistributions in binary form must reproduce the above copyright</span>
+<a name="l00013"></a>00013 <span class="comment">  notice, this list of conditions, and the following disclaimer in the</span>
+<a name="l00014"></a>00014 <span class="comment">  documentation and/or other materials provided with the distribution.</span>
+<a name="l00015"></a>00015 <span class="comment"></span>
+<a name="l00016"></a>00016 <span class="comment">* Neither the name of D. E. Shaw Research nor the names of its</span>
+<a name="l00017"></a>00017 <span class="comment">  contributors may be used to endorse or promote products derived from</span>
+<a name="l00018"></a>00018 <span class="comment">  this software without specific prior written permission.</span>
+<a name="l00019"></a>00019 <span class="comment"></span>
+<a name="l00020"></a>00020 <span class="comment">THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS</span>
+<a name="l00021"></a>00021 <span class="comment">"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT</span>
+<a name="l00022"></a>00022 <span class="comment">LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR</span>
+<a name="l00023"></a>00023 <span class="comment">A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT</span>
+<a name="l00024"></a>00024 <span class="comment">OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,</span>
+<a name="l00025"></a>00025 <span class="comment">SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT</span>
+<a name="l00026"></a>00026 <span class="comment">LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,</span>
+<a name="l00027"></a>00027 <span class="comment">DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY</span>
+<a name="l00028"></a>00028 <span class="comment">THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT</span>
+<a name="l00029"></a>00029 <span class="comment">(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE</span>
+<a name="l00030"></a>00030 <span class="comment">OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span>
+<a name="l00031"></a>00031 <span class="comment">*/</span>
+<a name="l00032"></a>00032 <span class="preprocessor">#ifndef _r123array_dot_h__</span>
+<a name="l00033"></a>00033 <span class="preprocessor"></span><span class="preprocessor">#define _r123array_dot_h__</span>
+<a name="l00034"></a>00034 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="compilerfeatures_8h.html">features/compilerfeatures.h</a>"</span>
+<a name="l00035"></a>00035 <span class="preprocessor">#include "<a class="code" href="sse_8h.html">features/sse.h</a>"</span>
+<a name="l00036"></a>00036 
+<a name="l00037"></a>00037 <span class="preprocessor">#ifndef __cplusplus</span>
+<a name="l00038"></a>00038 <span class="preprocessor"></span><span class="preprocessor">#define CXXMETHODS(_N, W, T)</span>
+<a name="l00039"></a>00039 <span class="preprocessor"></span><span class="preprocessor">#define CXXOVERLOADS(_N, W, T)</span>
+<a name="l00040"></a>00040 <span class="preprocessor"></span><span class="preprocessor">#else</span>
+<a name="l00041"></a>00041 <span class="preprocessor"></span>
+<a name="l00042"></a>00042 <span class="preprocessor">#include <stddef.h></span>
+<a name="l00043"></a>00043 <span class="preprocessor">#include <algorithm></span>
+<a name="l00044"></a>00044 <span class="preprocessor">#include <stdexcept></span>
+<a name="l00045"></a>00045 <span class="preprocessor">#include <iterator></span>
+<a name="l00046"></a>00046 <span class="preprocessor">#include <limits></span>
+<a name="l00047"></a>00047 <span class="preprocessor">#include <iostream></span>
+<a name="l00048"></a>00048 
+<a name="l00068"></a>00068 <span class="keyword">template</span> <<span class="keyword">typename</span> value_type>
+<a name="l00069"></a>00069 <span class="keyword">inline</span> R123_CUDA_DEVICE value_type <a class="code" href="sse_8h.html#a99c42d1da8da3a4a273556a7817b5c1f">assemble_from_u32</a>(uint32_t *p32){
+<a name="l00070"></a>00070     value_type v=0;
+<a name="l00071"></a>00071     <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> i=0; i<(3+<span class="keyword">sizeof</span>(value_type))/4; ++i)
+<a name="l00072"></a>00072         v |= ((value_type)(*p32++)) << (32*i);
+<a name="l00073"></a>00073     <span class="keywordflow">return</span> v;
+<a name="l00074"></a>00074 }
+<a name="l00075"></a>00075 
+<a name="l00076"></a>00076 <span class="comment">// Work-alike methods and typedefs modeled on std::array:</span>
+<a name="l00077"></a>00077 <span class="preprocessor">#define CXXMETHODS(_N, W, T)                                            \</span>
+<a name="l00078"></a>00078 <span class="preprocessor">    typedef T value_type;                                               \</span>
+<a name="l00079"></a>00079 <span class="preprocessor">    typedef T* iterator;                                                \</span>
+<a name="l00080"></a>00080 <span class="preprocessor">    typedef const T* const_iterator;                                    \</span>
+<a name="l00081"></a>00081 <span class="preprocessor">    typedef value_type& reference;                                      \</span>
+<a name="l00082"></a>00082 <span class="preprocessor">    typedef const value_type& const_reference;                          \</span>
+<a name="l00083"></a>00083 <span class="preprocessor">    typedef size_t size_type;                                           \</span>
+<a name="l00084"></a>00084 <span class="preprocessor">    typedef ptrdiff_t difference_type;                                  \</span>
+<a name="l00085"></a>00085 <span class="preprocessor">    typedef T* pointer;                                                 \</span>
+<a name="l00086"></a>00086 <span class="preprocessor">    typedef const T* const_pointer;                                     \</span>
+<a name="l00087"></a>00087 <span class="preprocessor">    typedef std::reverse_iterator<iterator> reverse_iterator;           \</span>
+<a name="l00088"></a>00088 <span class="preprocessor">    typedef std::reverse_iterator<const_iterator> const_reverse_iterator; \</span>
+<a name="l00089"></a>00089 <span class="preprocessor">    </span><span class="comment">/* Boost.array has static_size.  C++11 specializes tuple_size */</span>    \
+<a name="l00090"></a>00090     enum {static_size = _N};                                            \
+<a name="l00091"></a>00091     R123_CUDA_DEVICE reference operator[](size_type i){return v[i];}                     \
+<a name="l00092"></a>00092     R123_CUDA_DEVICE const_reference operator[](size_type i) const {return v[i];}        \
+<a name="l00093"></a>00093     R123_CUDA_DEVICE reference at(size_type i){ if(i >=  _N) R123_THROW(std::out_of_range("array index out of range")); return (*this)[i]; } \
+<a name="l00094"></a>00094     R123_CUDA_DEVICE const_reference at(size_type i) const { if(i >=  _N) R123_THROW(std::out_of_range("array index out of range")); return (*this)[i]; } \
+<a name="l00095"></a>00095     R123_CUDA_DEVICE size_type size() const { return  _N; }                              \
+<a name="l00096"></a>00096     R123_CUDA_DEVICE size_type max_size() const { return _N; }                           \
+<a name="l00097"></a>00097     R123_CUDA_DEVICE bool empty() const { return _N==0; };                               \
+<a name="l00098"></a>00098     R123_CUDA_DEVICE iterator begin() { return &v[0]; }                                  \
+<a name="l00099"></a>00099     R123_CUDA_DEVICE iterator end() { return &v[_N]; }                                   \
+<a name="l00100"></a>00100     R123_CUDA_DEVICE const_iterator begin() const { return &v[0]; }                      \
+<a name="l00101"></a>00101     R123_CUDA_DEVICE const_iterator end() const { return &v[_N]; }                       \
+<a name="l00102"></a>00102     R123_CUDA_DEVICE const_iterator cbegin() const { return &v[0]; }                     \
+<a name="l00103"></a>00103     R123_CUDA_DEVICE const_iterator cend() const { return &v[_N]; }                      \
+<a name="l00104"></a>00104     R123_CUDA_DEVICE reverse_iterator rbegin(){ return reverse_iterator(end()); }        \
+<a name="l00105"></a>00105     R123_CUDA_DEVICE const_reverse_iterator rbegin() const{ return const_reverse_iterator(end()); } \
+<a name="l00106"></a>00106     R123_CUDA_DEVICE reverse_iterator rend(){ return reverse_iterator(begin()); }        \
+<a name="l00107"></a>00107     R123_CUDA_DEVICE const_reverse_iterator rend() const{ return const_reverse_iterator(begin()); } \
+<a name="l00108"></a>00108     R123_CUDA_DEVICE const_reverse_iterator crbegin() const{ return const_reverse_iterator(cend()); } \
+<a name="l00109"></a>00109     R123_CUDA_DEVICE const_reverse_iterator crend() const{ return const_reverse_iterator(cbegin()); } \
+<a name="l00110"></a>00110     R123_CUDA_DEVICE pointer data(){ return &v[0]; }                                     \
+<a name="l00111"></a>00111     R123_CUDA_DEVICE const_pointer data() const{ return &v[0]; }                         \
+<a name="l00112"></a>00112     R123_CUDA_DEVICE reference front(){ return v[0]; }                                   \
+<a name="l00113"></a>00113     R123_CUDA_DEVICE const_reference front() const{ return v[0]; }                       \
+<a name="l00114"></a>00114     R123_CUDA_DEVICE reference back(){ return v[_N-1]; }                                 \
+<a name="l00115"></a>00115     R123_CUDA_DEVICE const_reference back() const{ return v[_N-1]; }                     \
+<a name="l00116"></a>00116     R123_CUDA_DEVICE bool operator==(const r123array##_N##x##W& rhs) const{ \
+<a name="l00117"></a>00117         <span class="comment">/* CUDA3 does not have std::equal */</span> \
+<a name="l00118"></a>00118         for (size_t i = 0; i < _N; ++i) \
+<a name="l00119"></a>00119             if (v[i] != rhs.v[i]) return false; \
+<a name="l00120"></a>00120         return true; \
+<a name="l00121"></a>00121     } \
+<a name="l00122"></a>00122     R123_CUDA_DEVICE bool operator!=(const r123array##_N##x##W& rhs) const{ return !(*this == rhs); } \
+<a name="l00123"></a>00123     <span class="comment">/* CUDA3 does not have std::fill_n */</span> \
+<a name="l00124"></a>00124     R123_CUDA_DEVICE void fill(const value_type& val){ for (size_t i = 0; i < _N; ++i) v[i] = val; } \
+<a name="l00125"></a>00125     R123_CUDA_DEVICE void swap(r123array##_N##x##W& rhs){ \
+<a name="l00126"></a>00126         <span class="comment">/* CUDA3 does not have std::swap_ranges */</span> \
+<a name="l00127"></a>00127         for (size_t i = 0; i < _N; ++i) { \
+<a name="l00128"></a>00128             T tmp = v[i]; \
+<a name="l00129"></a>00129             v[i] = rhs.v[i]; \
+<a name="l00130"></a>00130             rhs.v[i] = tmp; \
+<a name="l00131"></a>00131         } \
+<a name="l00132"></a>00132     } \
+<a name="l00133"></a>00133     R123_CUDA_DEVICE r123array##_N##x##W& incr(R123_ULONG_LONG n=1){                         \
+<a name="l00134"></a>00134         <span class="comment">/* This test is tricky because we're trying to avoid spurious   \</span>
+<a name="l00135"></a>00135 <span class="comment">           complaints about illegal shifts, yet still be compile-time   \</span>
+<a name="l00136"></a>00136 <span class="comment">           evaulated. */</span>                                                \
+<a name="l00137"></a>00137         if(sizeof(T)<sizeof(n) && n>>((sizeof(T)<sizeof(n))?8*sizeof(T):0) ) \
+<a name="l00138"></a>00138             return incr_carefully(n);                                   \
+<a name="l00139"></a>00139         if(n==1){                                                       \
+<a name="l00140"></a>00140             ++v[0];                                                     \
+<a name="l00141"></a>00141             if(_N==1 || R123_BUILTIN_EXPECT(!!v[0], 1)) return *this;   \
+<a name="l00142"></a>00142         }else{                                                          \
+<a name="l00143"></a>00143             v[0] += n;                                                  \
+<a name="l00144"></a>00144             if(_N==1 || R123_BUILTIN_EXPECT(n<=v[0], 1)) return *this;  \
+<a name="l00145"></a>00145         }                                                               \
+<a name="l00146"></a>00146         <span class="comment">/* We expect that the N==?? tests will be                       \</span>
+<a name="l00147"></a>00147 <span class="comment">           constant-folded/optimized away by the compiler, so only the  \</span>
+<a name="l00148"></a>00148 <span class="comment">           overflow tests (!!v[i]) remain to be done at runtime.  For  \</span>
+<a name="l00149"></a>00149 <span class="comment">           small values of N, it would be better to do this as an       \</span>
+<a name="l00150"></a>00150 <span class="comment">           uncondtional sequence of adc.  An experiment/optimization    \</span>
+<a name="l00151"></a>00151 <span class="comment">           for another day...                                           \</span>
+<a name="l00152"></a>00152 <span class="comment">           N.B.  The weird subscripting: v[_N>3?3:0] is to silence      \</span>
+<a name="l00153"></a>00153 <span class="comment">           a spurious error from icpc                                   \</span>
+<a name="l00154"></a>00154 <span class="comment">           */</span>                                                           \
+<a name="l00155"></a>00155         ++v[_N>1?1:0];                                                  \
+<a name="l00156"></a>00156         if(_N==2 || R123_BUILTIN_EXPECT(!!v[_N>1?1:0], 1)) return *this; \
+<a name="l00157"></a>00157         ++v[_N>2?2:0];                                                  \
+<a name="l00158"></a>00158         if(_N==3 || R123_BUILTIN_EXPECT(!!v[_N>2?2:0], 1)) return *this;  \
+<a name="l00159"></a>00159         ++v[_N>3?3:0];                                                  \
+<a name="l00160"></a>00160         for(size_t i=4; i<_N; ++i){                                     \
+<a name="l00161"></a>00161             if( R123_BUILTIN_EXPECT(!!v[i-1], 1) ) return *this;        \
+<a name="l00162"></a>00162             ++v[i];                                                     \
+<a name="l00163"></a>00163         }                                                               \
+<a name="l00164"></a>00164         return *this;                                                   \
+<a name="l00165"></a>00165     }                                                                   \
+<a name="l00166"></a>00166     <span class="comment">/* seed(SeedSeq) would be a constructor if having a constructor */</span>  \
+<a name="l00167"></a>00167     <span class="comment">/* didn't cause headaches with defaults */</span>                          \
+<a name="l00168"></a>00168     template <typename SeedSeq>                                         \
+<a name="l00169"></a>00169     R123_CUDA_DEVICE static r123array##_N##x##W seed(SeedSeq &ss){      \
+<a name="l00170"></a>00170         r123array##_N##x##W ret;                                        \
+<a name="l00171"></a>00171         const size_t Ngen = _N*((3+sizeof(value_type))/4);              \
+<a name="l00172"></a>00172         uint32_t u32[Ngen];                                             \
+<a name="l00173"></a>00173         uint32_t *p32 = &u32[0];                                        \
+<a name="l00174"></a>00174         ss.generate(&u32[0], &u32[Ngen]);                               \
+<a name="l00175"></a>00175         for(size_t i=0; i<_N; ++i){                                     \
+<a name="l00176"></a>00176             ret.v[i] = assemble_from_u32<value_type>(p32);              \
+<a name="l00177"></a>00177             p32 += (3+sizeof(value_type))/4;                            \
+<a name="l00178"></a>00178         }                                                               \
+<a name="l00179"></a>00179         return ret;                                                     \
+<a name="l00180"></a>00180     }                                                                   \
+<a name="l00181"></a>00181 protected:                                                              \
+<a name="l00182"></a>00182     R123_CUDA_DEVICE r123array##_N##x##W& incr_carefully(R123_ULONG_LONG n){ \
+<a name="l00183"></a>00183         <span class="comment">/* n may be greater than the maximum value of a single value_type */</span> \
+<a name="l00184"></a>00184         value_type vtn;                                                 \
+<a name="l00185"></a>00185         vtn = n;                                                        \
+<a name="l00186"></a>00186         v[0] += n;                                                      \
+<a name="l00187"></a>00187         const unsigned rshift = 8* ((sizeof(n)>sizeof(value_type))? sizeof(value_type) : 0); \
+<a name="l00188"></a>00188         for(size_t i=1; i<_N; ++i){                                     \
+<a name="l00189"></a>00189             if(rshift){                                                 \
+<a name="l00190"></a>00190                 n >>= rshift;                                           \
+<a name="l00191"></a>00191             }else{                                                      \
+<a name="l00192"></a>00192                 n=0;                                                    \
+<a name="l00193"></a>00193             }                                                           \
+<a name="l00194"></a>00194             if( v[i-1] < vtn )                                          \
+<a name="l00195"></a>00195                 ++n;                                                    \
+<a name="l00196"></a>00196             if( n==0 ) break;                                           \
+<a name="l00197"></a>00197             vtn = n;                                                    \
+<a name="l00198"></a>00198             v[i] += n;                                                  \
+<a name="l00199"></a>00199         }                                                               \
+<a name="l00200"></a>00200         return *this;                                                   \
+<a name="l00201"></a>00201     }                                                                   \
+<a name="l00202"></a>00202     
+<a name="l00203"></a>00203                                                                         
+<a name="l00204"></a>00204 <span class="comment">// There are several tricky considerations for the insertion and extraction</span>
+<a name="l00205"></a>00205 <span class="comment">// operators:</span>
+<a name="l00206"></a>00206 <span class="comment">// - we would like to be able to print r123array16x8 as a sequence of 16 integers,</span>
+<a name="l00207"></a>00207 <span class="comment">//   not as 16 bytes.</span>
+<a name="l00208"></a>00208 <span class="comment">// - we would like to be able to print r123array1xm128i.</span>
+<a name="l00209"></a>00209 <span class="comment">// - we do not want an int conversion operator in r123m128i because it causes</span>
+<a name="l00210"></a>00210 <span class="comment">//   lots of ambiguity problems with automatic promotions.</span>
+<a name="l00211"></a>00211 <span class="comment">// Solution: r123arrayinsertable and r123arrayextractable</span>
+<a name="l00212"></a>00212 
+<a name="l00213"></a>00213 <span class="keyword">template</span><<span class="keyword">typename</span> T>
+<a name="l00214"></a>00214 <span class="keyword">struct </span>r123arrayinsertable{
+<a name="l00215"></a>00215     <span class="keyword">const</span> T& v;
+<a name="l00216"></a>00216     r123arrayinsertable(<span class="keyword">const</span> T& t_) : v(t_) {} 
+<a name="l00217"></a>00217     <span class="keyword">friend</span> std::ostream& operator<<(std::ostream& os, const r123arrayinsertable<T>& t){
+<a name="l00218"></a>00218         <span class="keywordflow">return</span> os << t.v;
+<a name="l00219"></a>00219     }
+<a name="l00220"></a>00220 };
+<a name="l00221"></a>00221 
+<a name="l00222"></a>00222 <span class="keyword">template</span><>
+<a name="l00223"></a>00223 <span class="keyword">struct </span>r123arrayinsertable<uint8_t>{
+<a name="l00224"></a>00224     <span class="keyword">const</span> uint8_t& v;
+<a name="l00225"></a>00225     r123arrayinsertable(<span class="keyword">const</span> uint8_t& t_) : v(t_) {} 
+<a name="l00226"></a>00226     <span class="keyword">friend</span> std::ostream& operator<<(std::ostream& os, const r123arrayinsertable<uint8_t>& t){
+<a name="l00227"></a>00227         <span class="keywordflow">return</span> os << (int)t.v;
+<a name="l00228"></a>00228     }
+<a name="l00229"></a>00229 };
+<a name="l00230"></a>00230 
+<a name="l00231"></a>00231 <span class="keyword">template</span><<span class="keyword">typename</span> T>
+<a name="l00232"></a>00232 <span class="keyword">struct </span>r123arrayextractable{
+<a name="l00233"></a>00233     T& v;
+<a name="l00234"></a>00234     r123arrayextractable(T& t_) : v(t_) {}
+<a name="l00235"></a>00235     <span class="keyword">friend</span> std::istream& <a class="code" href="array_8h.html#ace3112deae6709884feac904b1c260a1">operator>></a>(std::istream& is, r123arrayextractable<T>& t){
+<a name="l00236"></a>00236         <span class="keywordflow">return</span> is >> t.v;
+<a name="l00237"></a>00237     }
+<a name="l00238"></a>00238 };
+<a name="l00239"></a>00239 
+<a name="l00240"></a>00240 <span class="keyword">template</span><>
+<a name="l00241"></a>00241 <span class="keyword">struct </span>r123arrayextractable<uint8_t>{
+<a name="l00242"></a>00242     uint8_t& v;
+<a name="l00243"></a>00243     r123arrayextractable(uint8_t& t_) : v(t_) {} 
+<a name="l00244"></a>00244     <span class="keyword">friend</span> std::istream& <a class="code" href="array_8h.html#ace3112deae6709884feac904b1c260a1">operator>></a>(std::istream& is, r123arrayextractable<uint8_t>& t){
+<a name="l00245"></a>00245         <span class="keywordtype">int</span> i;
+<a name="l00246"></a>00246         is >>  i;
+<a name="l00247"></a>00247         t.v = i;
+<a name="l00248"></a>00248         <span class="keywordflow">return</span> is;
+<a name="l00249"></a>00249     }
+<a name="l00250"></a>00250 };
+<a name="l00251"></a>00251 
+<a name="l00252"></a>00252 <span class="preprocessor">#define CXXOVERLOADS(_N, W, T)                                          \</span>
+<a name="l00253"></a>00253 <span class="preprocessor">                                                                        \</span>
+<a name="l00254"></a>00254 <span class="preprocessor">inline std::ostream& operator<<(std::ostream& os, const r123array##_N##x##W& a){   \</span>
+<a name="l00255"></a>00255 <span class="preprocessor">    os << r123arrayinsertable<T>(a.v[0]);                                  \</span>
+<a name="l00256"></a>00256 <span class="preprocessor">    for(size_t i=1; i<_N; ++i)                                          \</span>
+<a name="l00257"></a>00257 <span class="preprocessor">        os << " " << r123arrayinsertable<T>(a.v[i]);                       \</span>
+<a name="l00258"></a>00258 <span class="preprocessor">    return os;                                                          \</span>
+<a name="l00259"></a>00259 <span class="preprocessor">}                                                                       \</span>
+<a name="l00260"></a>00260 <span class="preprocessor">                                                                        \</span>
+<a name="l00261"></a>00261 <span class="preprocessor">inline std::istream& operator>>(std::istream& is, r123array##_N##x##W& a){         \</span>
+<a name="l00262"></a>00262 <span class="preprocessor">    for(size_t i=0; i<_N; ++i){                                         \</span>
+<a name="l00263"></a>00263 <span class="preprocessor">        r123arrayextractable<T> x(a.v[i]);                                 \</span>
+<a name="l00264"></a>00264 <span class="preprocessor">        is >> x;                                                        \</span>
+<a name="l00265"></a>00265 <span class="preprocessor">    }                                                                   \</span>
+<a name="l00266"></a>00266 <span class="preprocessor">    return is;                                                          \</span>
+<a name="l00267"></a>00267 <span class="preprocessor">}                                                                       \</span>
+<a name="l00268"></a>00268 <span class="preprocessor">                                                                        \</span>
+<a name="l00269"></a>00269 <span class="preprocessor">namespace r123{                                                        \</span>
+<a name="l00270"></a>00270 <span class="preprocessor"> typedef r123array##_N##x##W Array##_N##x##W;                          \</span>
+<a name="l00271"></a>00271 <span class="preprocessor">}</span>
+<a name="l00272"></a>00272 <span class="preprocessor"></span>                                                                        
+<a name="l00273"></a>00273 <span class="preprocessor">#endif </span><span class="comment">/* __cplusplus */</span>
+<a name="l00274"></a>00274 
+<a name="l00275"></a>00275 <span class="comment">/* _r123array_tpl expands to a declaration of struct r123arrayNxW.  </span>
+<a name="l00276"></a>00276 <span class="comment"></span>
+<a name="l00277"></a>00277 <span class="comment">   In C, it's nothing more than a struct containing an array of N</span>
+<a name="l00278"></a>00278 <span class="comment">   objects of type T.</span>
+<a name="l00279"></a>00279 <span class="comment"></span>
+<a name="l00280"></a>00280 <span class="comment">   In C++ it's the same, but endowed with an assortment of member</span>
+<a name="l00281"></a>00281 <span class="comment">   functions, typedefs and friends.  In C++, r123arrayNxW looks a lot</span>
+<a name="l00282"></a>00282 <span class="comment">   like std::array<T,N>, has most of the capabilities of a container,</span>
+<a name="l00283"></a>00283 <span class="comment">   and satisfies the requirements outlined in compat/Engine.hpp for</span>
+<a name="l00284"></a>00284 <span class="comment">   counter and key types.  ArrayNxW, in the r123 namespace is</span>
+<a name="l00285"></a>00285 <span class="comment">   a typedef equivalent to r123arrayNxW.</span>
+<a name="l00286"></a>00286 <span class="comment">*/</span>
+<a name="l00287"></a>00287 
+<a name="l00288"></a>00288 <span class="preprocessor">#define _r123array_tpl(_N, W, T)                   \</span>
+<a name="l00289"></a>00289 <span class="preprocessor">                        \</span>
+<a name="l00290"></a><a class="code" href="array_8h.html#ace3112deae6709884feac904b1c260a1">00290</a> <span class="preprocessor">                            \</span>
+<a name="l00291"></a><a class="code" href="array_8h.html#a41bb2d7e99cf51ca5927a074d1424a03">00291</a> <span class="preprocessor">struct r123array##_N##x##W{                         \</span>
+<a name="l00292"></a><a class="code" href="array_8h.html#a2782402f8b3941e104e01c317fd4b099">00292</a> <span class="preprocessor"> T v[_N];                                       \</span>
+<a name="l00293"></a><a class="code" href="array_8h.html#ae63a28cc2f1e69f63a4402c8b83663b4">00293</a> <span class="preprocessor"> CXXMETHODS(_N, W, T)                           \</span>
+<a name="l00294"></a>00294 <span class="preprocessor">};                                              \</span>
+<a name="l00295"></a><a class="code" href="array_8h.html#a3cdf7b897463996d6eda01443dd669c5">00295</a> <span class="preprocessor">                                                \</span>
+<a name="l00296"></a><a class="code" href="array_8h.html#a7b32dd7601d0a11b72583a841abc8fca">00296</a> <span class="preprocessor">CXXOVERLOADS(_N, W, T)</span>
+<a name="l00297"></a><a class="code" href="array_8h.html#a60aa3cdbb34ced56c0c7c82371f2b30c">00297</a> <span class="preprocessor"></span>
+<a name="l00300"></a>00300 _r123array_tpl(1, 32, uint32_t)  <span class="comment">/* r123array1x32 */</span>
+<a name="l00301"></a>00301 _r123array_tpl(2, 32, uint32_t)  <span class="comment">/* r123array2x32 */</span>
+<a name="l00302"></a><a class="code" href="array_8h.html#af831caf1f33e800dad6a659523525a78">00302</a> _r123array_tpl(4, 32, uint32_t)  <span class="comment">/* r123array4x32 */</span>
+<a name="l00303"></a>00303 _r123array_tpl(8, 32, uint32_t)  <span class="comment">/* r123array8x32 */</span>
+<a name="l00304"></a>00304 
+<a name="l00305"></a>00305 _r123array_tpl(1, 64, uint64_t)  <span class="comment">/* r123array1x64 */</span>
+<a name="l00306"></a>00306 _r123array_tpl(2, 64, uint64_t)  <span class="comment">/* r123array2x64 */</span>
+<a name="l00307"></a>00307 _r123array_tpl(4, 64, uint64_t)  <span class="comment">/* r123array4x64 */</span>
+<a name="l00308"></a>00308 
+<a name="l00309"></a><a class="code" href="array_8h.html#a9b64205709c0daaea3b05bbf7ea5a322">00309</a> _r123array_tpl(16, 8, uint8_t)  <span class="comment">/* r123array16x8 for ARSsw, AESsw */</span>
+<a name="l00310"></a>00310 
+<a name="l00311"></a>00311 <span class="preprocessor">#if R123_USE_SSE</span>
+<a name="l00312"></a>00312 <span class="preprocessor"></span>_r123array_tpl(1, m128i, <a class="code" href="structr123m128i.html">r123m128i</a>) <span class="comment">/* r123array1x128i for ARSni, AESni */</span>
+<a name="l00313"></a>00313 <span class="preprocessor">#endif</span>
+<a name="l00314"></a>00314 <span class="preprocessor"></span>
+<a name="l00315"></a>00315 <span class="comment">/* In C++, it's natural to use sizeof(a::value_type), but in C it's</span>
+<a name="l00316"></a>00316 <span class="comment">   pretty convoluted to figure out the width of the value_type of an</span>
+<a name="l00317"></a>00317 <span class="comment">   r123arrayNxW:</span>
+<a name="l00318"></a>00318 <span class="comment">*/</span>
+<a name="l00319"></a>00319 <span class="preprocessor">#define R123_W(a)   (8*sizeof(((a *)0)->v[0]))</span>
+<a name="l00320"></a>00320 <span class="preprocessor"></span>
+<a name="l00325"></a>00325 <span class="preprocessor">#endif</span>
+<a name="l00326"></a>00326 <span class="preprocessor"></span>
+</pre></div></div>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/ars_8h.html b/docs/html/ars_8h.html
new file mode 100644
index 0000000..31e78b5
--- /dev/null
+++ b/docs/html/ars_8h.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Random123/ars.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Classes</a> |
+<a href="#namespaces">Namespaces</a> |
+<a href="#define-members">Defines</a> |
+<a href="#typedef-members">Typedefs</a> |
+<a href="#enum-members">Enumerations</a> |
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<h1>Random123/ars.h File Reference</h1>  </div>
+</div>
+<div class="contents">
+<code>#include "<a class="el" href="compilerfeatures_8h_source.html">features/compilerfeatures.h</a>"</code><br/>
+<code>#include "<a class="el" href="array_8h_source.html">array.h</a>"</code><br/>
+
+<p><a href="ars_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1ARS1xm128i__R.html">r123::ARS1xm128i_R< ROUNDS ></a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1ARS4x32__R.html">r123::ARS4x32_R< ROUNDS ></a></td></tr>
+<tr><td colspan="2"><h2><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacer123.html">r123</a></td></tr>
+<tr><td colspan="2"><h2><a name="define-members"></a>
+Defines</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="ars_8h.html#aa1e31853c7493df739897205eb4f4a82">ARS1xm128i_DEFAULT_ROUNDS</a>   7</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__AESNI.html#ga22e0a9c885b544115d44d26cc7777303">ars1xm128i</a>(c, k)   ars1xm128i_R(ars1xm128i_rounds, c, k)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__AESNI.html#ga088ecbf341caf05e491ce246f2ea2d30">ars4x32</a>(c, k)   ars4x32_R(ars4x32_rounds, c, k)</td></tr>
+<tr><td colspan="2"><h2><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structr123array1xm128i.html">r123array1xm128i</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__AESNI.html#ga23ddf8109ce08f2bc14401c5f269d2a9">ars1xm128i_ctr_t</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structr123array1xm128i.html">r123array1xm128i</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__AESNI.html#ga2c5b351a47bb39f4d1769506c98c06e2">ars1xm128i_key_t</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structr123array1xm128i.html">r123array1xm128i</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__AESNI.html#gaeaa234225e7dcec2ffcdb32a0faad4f0">ars1xm128i_ukey_t</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structr123array4x32.html">r123array4x32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__AESNI.html#ga61721da91a455cb587ce6bc4a0f56117">ars4x32_ctr_t</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structr123array4x32.html">r123array4x32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__AESNI.html#ga3a1426aa6aaa06330d48ec8173cd3e7b">ars4x32_key_t</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structr123array4x32.html">r123array4x32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__AESNI.html#ga54cb318ff6bd4df405897b2b9a4b109f">ars4x32_ukey_t</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef ARS1xm128i_R<br class="typebreak"/>
+< ars1xm128i_rounds > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacer123.html#a964aa9123913d1f8cf535e0caaa4155f">r123::ARS1xm128i</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef ARS4x32_R< ars4x32_rounds > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacer123.html#afd2070dc979024a14317bd57c3a4c352">r123::ARS4x32</a></td></tr>
+<tr><td colspan="2"><h2><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="group__AESNI.html#gabf0a537666d4d1421144cb0a5e67666c">r123_enum_ars1xm128i</a> { <a class="el" href="group__AESNI.html#ggabf0a537666d4d1421144cb0a5e67666cade1fd46524355ec1d7ce63fd13b54992">ars1xm128i_rounds</a> =  7
+ }</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="group__AESNI.html#gaa623b038fa0c8d8d2864fdc0e45884d6">r123_enum_ars4x32</a> { <a class="el" href="group__AESNI.html#ggaa623b038fa0c8d8d2864fdc0e45884d6a5e715f357770a0f188ef493e6e63d31d">ars4x32_rounds</a> =  7
+ }</td></tr>
+<tr><td colspan="2"><h2><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structr123array1xm128i.html">ars1xm128i_key_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__AESNI.html#gae307c205a2ad19142bbe70919abfbfc2">ars1xm128ikeyinit</a> (<a class="el" href="structr123array1xm128i.html">ars1xm128i_ukey_t</a> uk)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structr123array1xm128i.html">ars1xm128i_ctr_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__AESNI.html#gaddc6efc2007f6f66ee914eb7074cff1e">ars1xm128i_R</a> (unsigned int Nrounds, <a class="el" href="structr123array1xm128i.html">ars1xm128i_ctr_t</a> in, <a class="el" href="structr123array1xm128i.html">ars1xm128i_key_t</a> k)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structr123array4x32.html">ars4x32_key_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__AESNI.html#ga1f3a02ea711ae6bacb0875f11a255516">ars4x32keyinit</a> (<a class="el" href="structr123array4x32.html">ars4x32_ukey_t</a> uk)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structr123array4x32.html">ars4x32_ctr_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__AESNI.html#gab13b093252d4bb3389d27d4e3b04dae8">ars4x32_R</a> (unsigned int Nrounds, <a class="el" href="structr123array4x32.html">ars4x32_ctr_t</a> c, <a class="el" href="structr123array4x32.html">ars4x32_key_t</a> k)</td></tr>
+</table>
+<hr/><h2>Define Documentation</h2>
+<a class="anchor" id="aa1e31853c7493df739897205eb4f4a82"></a><!-- doxytag: member="ars.h::ARS1xm128i_DEFAULT_ROUNDS" ref="aa1e31853c7493df739897205eb4f4a82" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define ARS1xm128i_DEFAULT_ROUNDS   7</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/ars_8h_source.html b/docs/html/ars_8h_source.html
new file mode 100644
index 0000000..c68b63b
--- /dev/null
+++ b/docs/html/ars_8h_source.html
@@ -0,0 +1,228 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Random123/ars.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+<div class="header">
+  <div class="headertitle">
+<h1>Random123/ars.h</h1>  </div>
+</div>
+<div class="contents">
+<a href="ars_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
+<a name="l00002"></a>00002 <span class="comment">Copyright 2010-2011, D. E. Shaw Research.</span>
+<a name="l00003"></a>00003 <span class="comment">All rights reserved.</span>
+<a name="l00004"></a>00004 <span class="comment"></span>
+<a name="l00005"></a>00005 <span class="comment">Redistribution and use in source and binary forms, with or without</span>
+<a name="l00006"></a>00006 <span class="comment">modification, are permitted provided that the following conditions are</span>
+<a name="l00007"></a>00007 <span class="comment">met:</span>
+<a name="l00008"></a>00008 <span class="comment"></span>
+<a name="l00009"></a>00009 <span class="comment">* Redistributions of source code must retain the above copyright</span>
+<a name="l00010"></a>00010 <span class="comment">  notice, this list of conditions, and the following disclaimer.</span>
+<a name="l00011"></a>00011 <span class="comment"></span>
+<a name="l00012"></a>00012 <span class="comment">* Redistributions in binary form must reproduce the above copyright</span>
+<a name="l00013"></a>00013 <span class="comment">  notice, this list of conditions, and the following disclaimer in the</span>
+<a name="l00014"></a>00014 <span class="comment">  documentation and/or other materials provided with the distribution.</span>
+<a name="l00015"></a>00015 <span class="comment"></span>
+<a name="l00016"></a>00016 <span class="comment">* Neither the name of D. E. Shaw Research nor the names of its</span>
+<a name="l00017"></a>00017 <span class="comment">  contributors may be used to endorse or promote products derived from</span>
+<a name="l00018"></a>00018 <span class="comment">  this software without specific prior written permission.</span>
+<a name="l00019"></a>00019 <span class="comment"></span>
+<a name="l00020"></a>00020 <span class="comment">THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS</span>
+<a name="l00021"></a>00021 <span class="comment">"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT</span>
+<a name="l00022"></a>00022 <span class="comment">LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR</span>
+<a name="l00023"></a>00023 <span class="comment">A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT</span>
+<a name="l00024"></a>00024 <span class="comment">OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,</span>
+<a name="l00025"></a>00025 <span class="comment">SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT</span>
+<a name="l00026"></a>00026 <span class="comment">LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,</span>
+<a name="l00027"></a>00027 <span class="comment">DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY</span>
+<a name="l00028"></a>00028 <span class="comment">THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT</span>
+<a name="l00029"></a>00029 <span class="comment">(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE</span>
+<a name="l00030"></a>00030 <span class="comment">OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span>
+<a name="l00031"></a>00031 <span class="comment">*/</span>
+<a name="l00032"></a>00032 <span class="preprocessor">#ifndef __Random123_ars_dot_hpp__</span>
+<a name="l00033"></a>00033 <span class="preprocessor"></span><span class="preprocessor">#define __Random123_ars_dot_hpp__</span>
+<a name="l00034"></a>00034 <span class="preprocessor"></span>
+<a name="l00035"></a>00035 <span class="preprocessor">#include "<a class="code" href="compilerfeatures_8h.html">features/compilerfeatures.h</a>"</span>
+<a name="l00036"></a>00036 <span class="preprocessor">#include "<a class="code" href="array_8h.html">array.h</a>"</span>
+<a name="l00037"></a>00037 
+<a name="l00038"></a>00038 <span class="preprocessor">#if R123_USE_AES_NI</span>
+<a name="l00039"></a>00039 <span class="preprocessor"></span>
+<a name="l00040"></a>00040 <span class="preprocessor">#ifndef ARS1xm128i_DEFAULT_ROUNDS</span>
+<a name="l00041"></a><a class="code" href="ars_8h.html#aa1e31853c7493df739897205eb4f4a82">00041</a> <span class="preprocessor"></span><span class="preprocessor">#define ARS1xm128i_DEFAULT_ROUNDS 7</span>
+<a name="l00042"></a>00042 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00043"></a>00043 <span class="preprocessor"></span>
+<a name="l00045"></a><a class="code" href="group__AESNI.html#gabf0a537666d4d1421144cb0a5e67666c">00045</a> <span class="keyword">enum</span> <a class="code" href="group__AESNI.html#gabf0a537666d4d1421144cb0a5e67666c">r123_enum_ars1xm128i</a> {<a class="code" href="group__AESNI.html#ggabf0a537666d4d1421144cb0a5e67666cade1fd46524355ec1d7ce63fd13b54992">ars1xm128i_rounds</a> = <a class="code" href="ars_8h.html#aa1e31853c7493df739897205eb4f4a82">ARS1xm128i_DEFAULT_ROUNDS</a>};
+<a name="l00046"></a>00046 
+<a name="l00047"></a>00047 <span class="comment">/* ARS1xm128i with Weyl keys.  Fast, and Crush-resistant, but NOT CRYPTO. */</span>
+<a name="l00049"></a><a class="code" href="group__AESNI.html#ga23ddf8109ce08f2bc14401c5f269d2a9">00049</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structr123array1xm128i.html">r123array1xm128i</a> <a class="code" href="structr123array1xm128i.html">ars1xm128i_ctr_t</a>;
+<a name="l00051"></a><a class="code" href="group__AESNI.html#ga2c5b351a47bb39f4d1769506c98c06e2">00051</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structr123array1xm128i.html">r123array1xm128i</a> <a class="code" href="structr123array1xm128i.html">ars1xm128i_key_t</a>;
+<a name="l00053"></a><a class="code" href="group__AESNI.html#gaeaa234225e7dcec2ffcdb32a0faad4f0">00053</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structr123array1xm128i.html">r123array1xm128i</a> <a class="code" href="structr123array1xm128i.html">ars1xm128i_ukey_t</a>;
+<a name="l00055"></a><a class="code" href="group__AESNI.html#gae307c205a2ad19142bbe70919abfbfc2">00055</a> R123_STATIC_INLINE <a class="code" href="structr123array1xm128i.html">ars1xm128i_key_t</a> <a class="code" href="group__AESNI.html#gae307c205a2ad19142bbe70919abfbfc2">ars1xm128ikeyinit</a>(<a class="code" href="structr123array1xm128i.html">ars1xm128i_ukey_t</a> uk) { <span class="keywordflow">return</span> uk; }
+<a name="l00057"></a><a class="code" href="group__AESNI.html#gaddc6efc2007f6f66ee914eb7074cff1e">00057</a> R123_STATIC_INLINE <a class="code" href="structr123array1xm128i.html">ars1xm128i_ctr_t</a> <a class="code" href="group__AESNI.html#gaddc6efc2007f6f66ee914eb7074cff1e">ars1xm128i_R</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> Nrounds, <a class="code" href="structr123array1xm128i.html">ars1xm128i_ctr_t</a> in, <a class="code" href="structr123array [...]
+<a name="l00058"></a>00058     __m128i kweyl = _mm_set_epi64x(R123_64BIT(0xBB67AE8584CAA73B), <span class="comment">/* sqrt(3) - 1.0 */</span>
+<a name="l00059"></a>00059                                    R123_64BIT(0x9E3779B97F4A7C15)); <span class="comment">/* golden ratio */</span>
+<a name="l00060"></a>00060     <span class="comment">/* N.B.  the aesenc instructions do the xor *after*</span>
+<a name="l00061"></a>00061 <span class="comment">    // so if we want to follow the AES pattern, we</span>
+<a name="l00062"></a>00062 <span class="comment">    // have to do the initial xor explicitly */</span>
+<a name="l00063"></a>00063     __m128i kk = k.<a class="code" href="structr123array1xm128i.html#ab6d5e4b23c04e12c1aad7aaf38ff2bd5">v</a>[0].<a class="code" href="structr123m128i.html#a9b9908268281aace8028a3f34980634d">m</a>;
+<a name="l00064"></a>00064     __m128i <a class="code" href="structr123array1xm128i.html#ab6d5e4b23c04e12c1aad7aaf38ff2bd5">v</a> = _mm_xor_si128(in.<a class="code" href="structr123array1xm128i.html#ab6d5e4b23c04e12c1aad7aaf38ff2bd5">v</a>[0].<a class="code" href="structr123m128i.html#a9b9908268281aace8028a3f34980634d">m</a>, kk);
+<a name="l00065"></a>00065     <a class="code" href="structr123array1xm128i.html">ars1xm128i_ctr_t</a> ret;
+<a name="l00066"></a>00066     R123_ASSERT(Nrounds<=10);
+<a name="l00067"></a>00067     <span class="keywordflow">if</span>( Nrounds>1 ){
+<a name="l00068"></a>00068         kk = _mm_add_epi64(kk, kweyl);
+<a name="l00069"></a>00069         v = _mm_aesenc_si128(v, kk);
+<a name="l00070"></a>00070     }
+<a name="l00071"></a>00071     <span class="keywordflow">if</span>( Nrounds>2 ){
+<a name="l00072"></a>00072         kk = _mm_add_epi64(kk, kweyl);
+<a name="l00073"></a>00073         v = _mm_aesenc_si128(v, kk);
+<a name="l00074"></a>00074     }
+<a name="l00075"></a>00075     <span class="keywordflow">if</span>( Nrounds>3 ){
+<a name="l00076"></a>00076         kk = _mm_add_epi64(kk, kweyl);
+<a name="l00077"></a>00077         v = _mm_aesenc_si128(v, kk);
+<a name="l00078"></a>00078     }
+<a name="l00079"></a>00079     <span class="keywordflow">if</span>( Nrounds>4 ){
+<a name="l00080"></a>00080         kk = _mm_add_epi64(kk, kweyl);
+<a name="l00081"></a>00081         v = _mm_aesenc_si128(v, kk);
+<a name="l00082"></a>00082     }
+<a name="l00083"></a>00083     <span class="keywordflow">if</span>( Nrounds>5 ){
+<a name="l00084"></a>00084         kk = _mm_add_epi64(kk, kweyl);
+<a name="l00085"></a>00085         v = _mm_aesenc_si128(v, kk);
+<a name="l00086"></a>00086     }
+<a name="l00087"></a>00087     <span class="keywordflow">if</span>( Nrounds>6 ){
+<a name="l00088"></a>00088         kk = _mm_add_epi64(kk, kweyl);
+<a name="l00089"></a>00089         v = _mm_aesenc_si128(v, kk);
+<a name="l00090"></a>00090     }
+<a name="l00091"></a>00091     <span class="keywordflow">if</span>( Nrounds>7 ){
+<a name="l00092"></a>00092         kk = _mm_add_epi64(kk, kweyl);
+<a name="l00093"></a>00093         v = _mm_aesenc_si128(v, kk);
+<a name="l00094"></a>00094     }
+<a name="l00095"></a>00095     <span class="keywordflow">if</span>( Nrounds>8 ){
+<a name="l00096"></a>00096         kk = _mm_add_epi64(kk, kweyl);
+<a name="l00097"></a>00097         v = _mm_aesenc_si128(v, kk);
+<a name="l00098"></a>00098     }
+<a name="l00099"></a>00099     <span class="keywordflow">if</span>( Nrounds>9 ){
+<a name="l00100"></a>00100         kk = _mm_add_epi64(kk, kweyl);
+<a name="l00101"></a>00101         v = _mm_aesenc_si128(v, kk);
+<a name="l00102"></a>00102     }
+<a name="l00103"></a>00103     kk = _mm_add_epi64(kk, kweyl);
+<a name="l00104"></a>00104     v = _mm_aesenclast_si128(v, kk);
+<a name="l00105"></a>00105     ret.<a class="code" href="structr123array1xm128i.html#ab6d5e4b23c04e12c1aad7aaf38ff2bd5">v</a>[0].<a class="code" href="structr123m128i.html#a9b9908268281aace8028a3f34980634d">m</a> = v;
+<a name="l00106"></a>00106     <span class="keywordflow">return</span> ret;
+<a name="l00107"></a>00107 }
+<a name="l00108"></a>00108 
+<a name="l00112"></a><a class="code" href="group__AESNI.html#ga22e0a9c885b544115d44d26cc7777303">00112</a> <span class="preprocessor">#define ars1xm128i(c,k) ars1xm128i_R(ars1xm128i_rounds, c, k)</span>
+<a name="l00113"></a>00113 <span class="preprocessor"></span>
+<a name="l00115"></a><a class="code" href="group__AESNI.html#ga61721da91a455cb587ce6bc4a0f56117">00115</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structr123array4x32.html">r123array4x32</a> <a class="code" href="structr123array4x32.html">ars4x32_ctr_t</a>;
+<a name="l00117"></a><a class="code" href="group__AESNI.html#ga3a1426aa6aaa06330d48ec8173cd3e7b">00117</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structr123array4x32.html">r123array4x32</a> <a class="code" href="structr123array4x32.html">ars4x32_key_t</a>;
+<a name="l00119"></a><a class="code" href="group__AESNI.html#ga54cb318ff6bd4df405897b2b9a4b109f">00119</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structr123array4x32.html">r123array4x32</a> <a class="code" href="structr123array4x32.html">ars4x32_ukey_t</a>;
+<a name="l00121"></a><a class="code" href="group__AESNI.html#gaa623b038fa0c8d8d2864fdc0e45884d6">00121</a> <span class="keyword">enum</span> <a class="code" href="group__AESNI.html#gaa623b038fa0c8d8d2864fdc0e45884d6">r123_enum_ars4x32</a> {<a class="code" href="group__AESNI.html#ggaa623b038fa0c8d8d2864fdc0e45884d6a5e715f357770a0f188ef493e6e63d31d">ars4x32_rounds</a> = <a class="code" href="ars_8h.html#aa1e31853c7493df739897205eb4f4a82">ARS1xm128i_DEFAULT_ROUNDS</a>};
+<a name="l00123"></a><a class="code" href="group__AESNI.html#ga1f3a02ea711ae6bacb0875f11a255516">00123</a> R123_STATIC_INLINE <a class="code" href="structr123array4x32.html">ars4x32_key_t</a> <a class="code" href="group__AESNI.html#ga1f3a02ea711ae6bacb0875f11a255516">ars4x32keyinit</a>(<a class="code" href="structr123array4x32.html">ars4x32_ukey_t</a> uk) { <span class="keywordflow">return</span> uk; }
+<a name="l00125"></a><a class="code" href="group__AESNI.html#gab13b093252d4bb3389d27d4e3b04dae8">00125</a> R123_STATIC_INLINE <a class="code" href="structr123array4x32.html">ars4x32_ctr_t</a> <a class="code" href="group__AESNI.html#gab13b093252d4bb3389d27d4e3b04dae8">ars4x32_R</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> Nrounds, <a class="code" href="structr123array4x32.html">ars4x32_ctr_t</a> c, <a class="code" href="structr123array4x32.html">ars4x [...]
+<a name="l00126"></a>00126     <a class="code" href="structr123array1xm128i.html">ars1xm128i_ctr_t</a> c128;
+<a name="l00127"></a>00127     <a class="code" href="structr123array1xm128i.html">ars1xm128i_key_t</a> k128;
+<a name="l00128"></a>00128     c128.<a class="code" href="structr123array1xm128i.html#ab6d5e4b23c04e12c1aad7aaf38ff2bd5">v</a>[0].<a class="code" href="structr123m128i.html#a9b9908268281aace8028a3f34980634d">m</a> = _mm_set_epi32(c.<a class="code" href="structr123array4x32.html#ac8e6785120a3031b211fc8aa7d03d83f">v</a>[3], c.<a class="code" href="structr123array4x32.html#ac8e6785120a3031b211fc8aa7d03d83f">v</a>[2], c.<a class="code" href="structr123array4x32.html#ac8e6785120a3031b211fc8aa [...]
+<a name="l00129"></a>00129     k128.<a class="code" href="structr123array1xm128i.html#ab6d5e4b23c04e12c1aad7aaf38ff2bd5">v</a>[0].<a class="code" href="structr123m128i.html#a9b9908268281aace8028a3f34980634d">m</a> = _mm_set_epi32(k.<a class="code" href="structr123array4x32.html#ac8e6785120a3031b211fc8aa7d03d83f">v</a>[3], k.<a class="code" href="structr123array4x32.html#ac8e6785120a3031b211fc8aa7d03d83f">v</a>[2], k.<a class="code" href="structr123array4x32.html#ac8e6785120a3031b211fc8aa [...]
+<a name="l00130"></a>00130     c128 = <a class="code" href="group__AESNI.html#gaddc6efc2007f6f66ee914eb7074cff1e">ars1xm128i_R</a>(Nrounds, c128, k128);
+<a name="l00131"></a>00131     _mm_storeu_si128((__m128i*)&c.<a class="code" href="structr123array4x32.html#ac8e6785120a3031b211fc8aa7d03d83f">v</a>[0], c128.<a class="code" href="structr123array1xm128i.html#ab6d5e4b23c04e12c1aad7aaf38ff2bd5">v</a>[0].<a class="code" href="structr123m128i.html#a9b9908268281aace8028a3f34980634d">m</a>);
+<a name="l00132"></a>00132     <span class="keywordflow">return</span> c;
+<a name="l00133"></a>00133 }
+<a name="l00134"></a>00134 
+<a name="l00138"></a><a class="code" href="group__AESNI.html#ga088ecbf341caf05e491ce246f2ea2d30">00138</a> <span class="preprocessor">#define ars4x32(c,k) ars4x32_R(ars4x32_rounds, c, k)</span>
+<a name="l00139"></a>00139 <span class="preprocessor"></span>
+<a name="l00140"></a>00140 <span class="preprocessor">#ifdef __cplusplus</span>
+<a name="l00141"></a>00141 <span class="preprocessor"></span><span class="keyword">namespace </span>r123{
+<a name="l00163"></a>00163 <span class="keyword">template</span><<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> ROUNDS>
+<a name="l00164"></a><a class="code" href="structr123_1_1ARS1xm128i__R.html">00164</a> <span class="keyword">struct </span><a class="code" href="structr123_1_1ARS1xm128i__R.html">ARS1xm128i_R</a>{
+<a name="l00165"></a><a class="code" href="structr123_1_1ARS1xm128i__R.html#a13a62c94f63054828c6960979f42a268">00165</a>     <span class="keyword">typedef</span> <a class="code" href="structr123array1xm128i.html">ars1xm128i_ctr_t</a> <a class="code" href="structr123array1xm128i.html">ctr_type</a>;
+<a name="l00166"></a><a class="code" href="structr123_1_1ARS1xm128i__R.html#a8454d6de92379d9a6551d11828fbebc3">00166</a>     <span class="keyword">typedef</span> <a class="code" href="structr123array1xm128i.html">ars1xm128i_key_t</a> <a class="code" href="structr123array1xm128i.html">key_type</a>;
+<a name="l00167"></a><a class="code" href="structr123_1_1ARS1xm128i__R.html#ab26c7029e347e6b1e17dad795e462aeb">00167</a>     <span class="keyword">typedef</span> <a class="code" href="structr123array1xm128i.html">ars1xm128i_key_t</a> <a class="code" href="structr123array1xm128i.html">ukey_type</a>;
+<a name="l00168"></a><a class="code" href="structr123_1_1ARS1xm128i__R.html#abe167a93280140e424d722c1ac47a8e9">00168</a>     <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structr123_1_1ARS1xm128i__R.html#abe167a93280140e424d722c1ac47a8e9">rounds</a>=ROUNDS;
+<a name="l00169"></a><a class="code" href="structr123_1_1ARS1xm128i__R.html#a89c0fc4e1c90ee684fc88dde05d8d82c">00169</a>     R123_FORCE_INLINE(<a class="code" href="structr123array1xm128i.html">ctr_type</a> <span class="keyword">operator</span>()(<a class="code" href="structr123array1xm128i.html">ctr_type</a> ctr, <a class="code" href="structr123array1xm128i.html">key_type</a> key) <span class="keyword">const</span>){
+<a name="l00170"></a>00170         <span class="keywordflow">return</span> <a class="code" href="group__AESNI.html#gaddc6efc2007f6f66ee914eb7074cff1e">ars1xm128i_R</a>(ROUNDS, ctr, key);
+<a name="l00171"></a>00171     }
+<a name="l00172"></a>00172 };
+<a name="l00173"></a>00173 
+<a name="l00178"></a>00178 <span class="keyword">template</span><<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> ROUNDS>
+<a name="l00179"></a><a class="code" href="structr123_1_1ARS4x32__R.html">00179</a> <span class="keyword">struct </span><a class="code" href="structr123_1_1ARS4x32__R.html">ARS4x32_R</a>{
+<a name="l00180"></a><a class="code" href="structr123_1_1ARS4x32__R.html#a9951dbcb50de849ded7177109b344045">00180</a>     <span class="keyword">typedef</span> <a class="code" href="structr123array4x32.html">ars4x32_ctr_t</a> <a class="code" href="structr123array4x32.html">ctr_type</a>;
+<a name="l00181"></a><a class="code" href="structr123_1_1ARS4x32__R.html#a7a651b6747b9e7c038bc6d11ffa2863e">00181</a>     <span class="keyword">typedef</span> <a class="code" href="structr123array4x32.html">ars4x32_key_t</a> <a class="code" href="structr123array4x32.html">key_type</a>;
+<a name="l00182"></a><a class="code" href="structr123_1_1ARS4x32__R.html#aa4bd7be98acb8b0299fb0ffce3db69ee">00182</a>     <span class="keyword">typedef</span> <a class="code" href="structr123array4x32.html">ars4x32_key_t</a> <a class="code" href="structr123array4x32.html">ukey_type</a>;
+<a name="l00183"></a><a class="code" href="structr123_1_1ARS4x32__R.html#a710e59a54794b4cd5e55689dd906b9ba">00183</a>     <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structr123_1_1ARS4x32__R.html#a710e59a54794b4cd5e55689dd906b9ba">rounds</a>=ROUNDS;
+<a name="l00184"></a><a class="code" href="structr123_1_1ARS4x32__R.html#afcd326e150925e30de22166e727567df">00184</a>     R123_FORCE_INLINE(<a class="code" href="structr123array4x32.html">ctr_type</a> <span class="keyword">operator</span>()(<a class="code" href="structr123array4x32.html">ctr_type</a> ctr, <a class="code" href="structr123array4x32.html">key_type</a> key) <span class="keyword">const</span>){
+<a name="l00185"></a>00185         <span class="keywordflow">return</span> <a class="code" href="group__AESNI.html#gab13b093252d4bb3389d27d4e3b04dae8">ars4x32_R</a>(ROUNDS, ctr, key);
+<a name="l00186"></a>00186     }
+<a name="l00187"></a>00187 };
+<a name="l00196"></a><a class="code" href="namespacer123.html#a964aa9123913d1f8cf535e0caaa4155f">00196</a> <span class="keyword">typedef</span> <a class="code" href="structr123_1_1ARS1xm128i__R.html">ARS1xm128i_R<ars1xm128i_rounds></a> <a class="code" href="structr123_1_1ARS1xm128i__R.html">ARS1xm128i</a>;
+<a name="l00197"></a><a class="code" href="namespacer123.html#afd2070dc979024a14317bd57c3a4c352">00197</a> <span class="keyword">typedef</span> <a class="code" href="structr123_1_1ARS4x32__R.html">ARS4x32_R<ars4x32_rounds></a> <a class="code" href="structr123_1_1ARS4x32__R.html">ARS4x32</a>;
+<a name="l00198"></a>00198 } <span class="comment">// namespace r123</span>
+<a name="l00199"></a>00199 
+<a name="l00200"></a>00200 <span class="preprocessor">#endif </span><span class="comment">/* __cplusplus */</span>
+<a name="l00201"></a>00201 
+<a name="l00202"></a>00202 <span class="preprocessor">#endif </span><span class="comment">/* R123_USE_AES_NI */</span>
+<a name="l00203"></a>00203 
+<a name="l00204"></a>00204 <span class="preprocessor">#endif</span>
+</pre></div></div>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/bc_s.png b/docs/html/bc_s.png
new file mode 100644
index 0000000..e401862
Binary files /dev/null and b/docs/html/bc_s.png differ
diff --git a/docs/html/cbrng_8dox.html b/docs/html/cbrng_8dox.html
new file mode 100644
index 0000000..0daa5bc
--- /dev/null
+++ b/docs/html/cbrng_8dox.html
@@ -0,0 +1,77 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: docs/cbrng.dox File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<h1>docs/cbrng.dox File Reference</h1>  </div>
+</div>
+<div class="contents">
+<table class="memberdecls">
+</table>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/classes.html b/docs/html/classes.html
new file mode 100644
index 0000000..cf82457
--- /dev/null
+++ b/docs/html/classes.html
@@ -0,0 +1,86 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Alphabetical List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li class="current"><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<h1>Class Index</h1>  </div>
+</div>
+<div class="contents">
+<div class="qindex"><a class="qindex" href="#letter_A">A</a> | <a class="qindex" href="#letter_E">E</a> | <a class="qindex" href="#letter_M">M</a> | <a class="qindex" href="#letter_P">P</a> | <a class="qindex" href="#letter_R">R</a> | <a class="qindex" href="#letter_T">T</a></div>
+<table align="center" width="95%" border="0" cellspacing="0" cellpadding="0">
+<tr><td><a name="letter_A"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  A  </div></td></tr></table>
+</td><td><a class="el" href="structr123_1_1ARS4x32__R.html">ARS4x32_R</a> (<a class="el" href="namespacer123.html">r123</a>)   </td><td><a class="el" href="structr123_1_1Philox2x64__R.html">Philox2x64_R</a> (<a class="el" href="namespacer123.html">r123</a>)   </td><td><a class="el" href="structr123array1xm128i.html">r123array1xm128i</a>   </td><td><a class="el" href="structr123_1_1ReinterpretCtr.html">ReinterpretCtr</a> (<a class="el" href="na [...]
+</td><td><a class="el" href="structr123_1_1Philox4x32__R.html">Philox4x32_R</a> (<a class="el" href="namespacer123.html">r123</a>)   </td><td><a class="el" href="structr123array2x32.html">r123array2x32</a>   </td><td><a name="letter_T"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  T  </div></td></tr></table>
+</td></tr><tr><td><a class="el" href="structaesni1xm128i__key__t.html">aesni1xm128i_key_t</a>   </td><td><a class="el" href="structr123_1_1Engine.html">Engine</a> (<a class="el" href="namespacer123.html">r123</a>)   </td><td><a class="el" href="structr123_1_1Philox4x64__R.html">Philox4x64_R</a> (<a class="el" href="namespacer123.html">r123</a>)   </td><td><a class="el" href="structr123array2x64.html">r123array2x64</a>   </td><td [...]
+</td><td><a name="letter_R"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  R  </div></td></tr></table>
+</td><td><a class="el" href="structr123array4x32.html">r123array4x32</a>   </td><td><a class="el" href="structr123_1_1Threefry2x64__R.html">Threefry2x64_R</a> (<a class="el" href="namespacer123.html">r123</a>)   </td></tr><tr><td><a class="el" href="structr123_1_1AESNI4x32.html">AESNI4x32</a> (<a class="el" href="namespacer123.html">r123</a>)   </td><td><a class="el" href="classr123_1_1MicroURNG.html">MicroURNG</a> (<a class="el" href="namespa [...]
+</td><td><a class="el" href="structr123array1x32.html">r123array1x32</a>   </td><td><a class="el" href="structr123array8x32.html">r123array8x32</a>   </td><td><a class="el" href="structr123_1_1Threefry4x64__R.html">Threefry4x64_R</a> (<a class="el" href="namespacer123.html">r123</a>)   </td></tr><tr><td><a class="el" href="structr123_1_1ARS1xm128i__R.html">ARS1xm128i_R</a> (<a class="el" href="namespacer123.html">r123</a>)   </t [...]
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/classr123_1_1AESNI1xm128i-members.html b/docs/html/classr123_1_1AESNI1xm128i-members.html
new file mode 100644
index 0000000..cbc92c5
--- /dev/null
+++ b/docs/html/classr123_1_1AESNI1xm128i-members.html
@@ -0,0 +1,83 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<h1>r123::AESNI1xm128i Member List</h1>  </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="structr123_1_1AESNI1xm128i.html">r123::AESNI1xm128i</a>, including all inherited members.<table>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1AESNI1xm128i.html#aaa136c21db9806859fa7cd4e2dbaaaa6">ctr_type</a> typedef</td><td><a class="el" href="structr123_1_1AESNI1xm128i.html">r123::AESNI1xm128i</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1AESNI1xm128i.html#a7dc33fd5abf509d9d16b571b23867a6b">key_type</a> typedef</td><td><a class="el" href="structr123_1_1AESNI1xm128i.html">r123::AESNI1xm128i</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1AESNI1xm128i.html#a9bff0ac8478400c1006136e9bde91dc3">operator()</a>(ctr_type ctr, key_type key) const </td><td><a class="el" href="structr123_1_1AESNI1xm128i.html">r123::AESNI1xm128i</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1AESNI1xm128i.html#a1b5a44afde814ba844d8f5442e2a3a5f">rounds</a></td><td><a class="el" href="structr123_1_1AESNI1xm128i.html">r123::AESNI1xm128i</a></td><td><code> [static]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1AESNI1xm128i.html#a1f405533da84d98b938030190a63cec5">ukey_type</a> typedef</td><td><a class="el" href="structr123_1_1AESNI1xm128i.html">r123::AESNI1xm128i</a></td><td></td></tr>
+</table></div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/classr123_1_1AESNI1xm128i__R-members.html b/docs/html/classr123_1_1AESNI1xm128i__R-members.html
new file mode 100644
index 0000000..75933e7
--- /dev/null
+++ b/docs/html/classr123_1_1AESNI1xm128i__R-members.html
@@ -0,0 +1,83 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<h1>r123::AESNI1xm128i_R< ROUNDS > Member List</h1>  </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="structr123_1_1AESNI1xm128i__R.html">r123::AESNI1xm128i_R< ROUNDS ></a>, including all inherited members.<table>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1AESNI1xm128i.html#aaa136c21db9806859fa7cd4e2dbaaaa6">ctr_type</a> typedef</td><td><a class="el" href="structr123_1_1AESNI1xm128i.html">r123::AESNI1xm128i</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1AESNI1xm128i.html#a7dc33fd5abf509d9d16b571b23867a6b">key_type</a> typedef</td><td><a class="el" href="structr123_1_1AESNI1xm128i.html">r123::AESNI1xm128i</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1AESNI1xm128i.html#a9bff0ac8478400c1006136e9bde91dc3">operator()</a>(ctr_type ctr, key_type key) const </td><td><a class="el" href="structr123_1_1AESNI1xm128i.html">r123::AESNI1xm128i</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1AESNI1xm128i.html#a1b5a44afde814ba844d8f5442e2a3a5f">rounds</a></td><td><a class="el" href="structr123_1_1AESNI1xm128i.html">r123::AESNI1xm128i</a></td><td><code> [static]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1AESNI1xm128i.html#a1f405533da84d98b938030190a63cec5">ukey_type</a> typedef</td><td><a class="el" href="structr123_1_1AESNI1xm128i.html">r123::AESNI1xm128i</a></td><td></td></tr>
+</table></div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/classr123_1_1AESNI4x32__R-members.html b/docs/html/classr123_1_1AESNI4x32__R-members.html
new file mode 100644
index 0000000..5115f1c
--- /dev/null
+++ b/docs/html/classr123_1_1AESNI4x32__R-members.html
@@ -0,0 +1,83 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<h1>r123::AESNI4x32_R< ROUNDS > Member List</h1>  </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="structr123_1_1AESNI4x32__R.html">r123::AESNI4x32_R< ROUNDS ></a>, including all inherited members.<table>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1AESNI4x32.html#ab8a1f8a822eecfc9e587bad76792df32">ctr_type</a> typedef</td><td><a class="el" href="structr123_1_1AESNI4x32.html">r123::AESNI4x32</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1AESNI4x32.html#a3f47cb319d03ede5fd557800b618d28a">key_type</a> typedef</td><td><a class="el" href="structr123_1_1AESNI4x32.html">r123::AESNI4x32</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1AESNI4x32.html#a981102e5bc0a7df916a95a40af8fd4c0">operator()</a>(ctr_type ctr, key_type key) const </td><td><a class="el" href="structr123_1_1AESNI4x32.html">r123::AESNI4x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1AESNI4x32.html#a725aad79b8d496d97bed24390f624be6">rounds</a></td><td><a class="el" href="structr123_1_1AESNI4x32.html">r123::AESNI4x32</a></td><td><code> [static]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1AESNI4x32.html#a3fbb6113e70575dce3b6047a22a751f4">ukey_type</a> typedef</td><td><a class="el" href="structr123_1_1AESNI4x32.html">r123::AESNI4x32</a></td><td></td></tr>
+</table></div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/classr123_1_1ARS1xm128i__R-members.html b/docs/html/classr123_1_1ARS1xm128i__R-members.html
new file mode 100644
index 0000000..064a977
--- /dev/null
+++ b/docs/html/classr123_1_1ARS1xm128i__R-members.html
@@ -0,0 +1,83 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<h1>r123::ARS1xm128i_R< ROUNDS > Member List</h1>  </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="structr123_1_1ARS1xm128i__R.html">r123::ARS1xm128i_R< ROUNDS ></a>, including all inherited members.<table>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1ARS1xm128i__R.html#a13a62c94f63054828c6960979f42a268">ctr_type</a> typedef</td><td><a class="el" href="structr123_1_1ARS1xm128i__R.html">r123::ARS1xm128i_R< ROUNDS ></a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1ARS1xm128i__R.html#a8454d6de92379d9a6551d11828fbebc3">key_type</a> typedef</td><td><a class="el" href="structr123_1_1ARS1xm128i__R.html">r123::ARS1xm128i_R< ROUNDS ></a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1ARS1xm128i__R.html#a89c0fc4e1c90ee684fc88dde05d8d82c">operator()</a>(ctr_type ctr, key_type key) const </td><td><a class="el" href="structr123_1_1ARS1xm128i__R.html">r123::ARS1xm128i_R< ROUNDS ></a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1ARS1xm128i__R.html#abe167a93280140e424d722c1ac47a8e9">rounds</a></td><td><a class="el" href="structr123_1_1ARS1xm128i__R.html">r123::ARS1xm128i_R< ROUNDS ></a></td><td><code> [static]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1ARS1xm128i__R.html#ab26c7029e347e6b1e17dad795e462aeb">ukey_type</a> typedef</td><td><a class="el" href="structr123_1_1ARS1xm128i__R.html">r123::ARS1xm128i_R< ROUNDS ></a></td><td></td></tr>
+</table></div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/classr123_1_1ARS4x32__R-members.html b/docs/html/classr123_1_1ARS4x32__R-members.html
new file mode 100644
index 0000000..29736c1
--- /dev/null
+++ b/docs/html/classr123_1_1ARS4x32__R-members.html
@@ -0,0 +1,83 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<h1>r123::ARS4x32_R< ROUNDS > Member List</h1>  </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="structr123_1_1ARS4x32__R.html">r123::ARS4x32_R< ROUNDS ></a>, including all inherited members.<table>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1ARS4x32__R.html#a9951dbcb50de849ded7177109b344045">ctr_type</a> typedef</td><td><a class="el" href="structr123_1_1ARS4x32__R.html">r123::ARS4x32_R< ROUNDS ></a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1ARS4x32__R.html#a7a651b6747b9e7c038bc6d11ffa2863e">key_type</a> typedef</td><td><a class="el" href="structr123_1_1ARS4x32__R.html">r123::ARS4x32_R< ROUNDS ></a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1ARS4x32__R.html#afcd326e150925e30de22166e727567df">operator()</a>(ctr_type ctr, key_type key) const </td><td><a class="el" href="structr123_1_1ARS4x32__R.html">r123::ARS4x32_R< ROUNDS ></a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1ARS4x32__R.html#a710e59a54794b4cd5e55689dd906b9ba">rounds</a></td><td><a class="el" href="structr123_1_1ARS4x32__R.html">r123::ARS4x32_R< ROUNDS ></a></td><td><code> [static]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1ARS4x32__R.html#aa4bd7be98acb8b0299fb0ffce3db69ee">ukey_type</a> typedef</td><td><a class="el" href="structr123_1_1ARS4x32__R.html">r123::ARS4x32_R< ROUNDS ></a></td><td></td></tr>
+</table></div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/classr123_1_1MicroURNG-members.html b/docs/html/classr123_1_1MicroURNG-members.html
new file mode 100644
index 0000000..94af292
--- /dev/null
+++ b/docs/html/classr123_1_1MicroURNG-members.html
@@ -0,0 +1,93 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<h1>r123::MicroURNG< CBRNG > Member List</h1>  </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="classr123_1_1MicroURNG.html">r123::MicroURNG< CBRNG ></a>, including all inherited members.<table>
+  <tr class="memlist"><td><a class="el" href="classr123_1_1MicroURNG.html#a4faecd7ab54c7678ee66c413bb984bf0">_Max</a></td><td><a class="el" href="classr123_1_1MicroURNG.html">r123::MicroURNG< CBRNG ></a></td><td><code> [static]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classr123_1_1MicroURNG.html#a1f2787f136a8a807d14eab8cb1ca8c14">_Min</a></td><td><a class="el" href="classr123_1_1MicroURNG.html">r123::MicroURNG< CBRNG ></a></td><td><code> [static]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classr123_1_1MicroURNG.html#ac55cddda8fe0808f922f39beee587b27">BITS</a></td><td><a class="el" href="classr123_1_1MicroURNG.html">r123::MicroURNG< CBRNG ></a></td><td><code> [static]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classr123_1_1MicroURNG.html#ab0b3a77c9408dbcb2f9d6b5c67e9c3f7">cbrng_type</a> typedef</td><td><a class="el" href="classr123_1_1MicroURNG.html">r123::MicroURNG< CBRNG ></a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classr123_1_1MicroURNG.html#a30f52334b7cfcbe6d86870496ca57ea6">counter</a>() const </td><td><a class="el" href="classr123_1_1MicroURNG.html">r123::MicroURNG< CBRNG ></a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classr123_1_1MicroURNG.html#a5aba882fd21e4d8f1a445f546e1e4476">ctr_type</a> typedef</td><td><a class="el" href="classr123_1_1MicroURNG.html">r123::MicroURNG< CBRNG ></a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classr123_1_1MicroURNG.html#aef90e6157f360434342ad0df4ce5f364">key_type</a> typedef</td><td><a class="el" href="classr123_1_1MicroURNG.html">r123::MicroURNG< CBRNG ></a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classr123_1_1MicroURNG.html#a19afb80312c370e1670bf8afc73d802e">MicroURNG</a>(cbrng_type _b, ctr_type _c0, ukey_type _uk)</td><td><a class="el" href="classr123_1_1MicroURNG.html">r123::MicroURNG< CBRNG ></a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classr123_1_1MicroURNG.html#a7ecf43819bc96804892a78c6715f587b">MicroURNG</a>(ctr_type _c0, ukey_type _uk)</td><td><a class="el" href="classr123_1_1MicroURNG.html">r123::MicroURNG< CBRNG ></a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classr123_1_1MicroURNG.html#a64cd4d33b4cab5d3d9c556db68407b77">operator()</a>()</td><td><a class="el" href="classr123_1_1MicroURNG.html">r123::MicroURNG< CBRNG ></a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classr123_1_1MicroURNG.html#aa05c857c01053cf9185406d69757b101">R123_NO_MACRO_SUBST</a>()</td><td><a class="el" href="classr123_1_1MicroURNG.html">r123::MicroURNG< CBRNG ></a></td><td><code> [inline, static]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classr123_1_1MicroURNG.html#a3af623b6366d6e848d67d72e4b0f363c">R123_NO_MACRO_SUBST</a>()</td><td><a class="el" href="classr123_1_1MicroURNG.html">r123::MicroURNG< CBRNG ></a></td><td><code> [inline, static]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classr123_1_1MicroURNG.html#add2f214254ddc2291e3b2c8b5dbe791a">reset</a>(ctr_type _c0, ukey_type _uk)</td><td><a class="el" href="classr123_1_1MicroURNG.html">r123::MicroURNG< CBRNG ></a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classr123_1_1MicroURNG.html#a512957c3e7b3d22741ef0a436b973c2b">result_type</a> typedef</td><td><a class="el" href="classr123_1_1MicroURNG.html">r123::MicroURNG< CBRNG ></a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classr123_1_1MicroURNG.html#a7e6fd93fec2fe138ee36b401ff376cfc">ukey_type</a> typedef</td><td><a class="el" href="classr123_1_1MicroURNG.html">r123::MicroURNG< CBRNG ></a></td><td></td></tr>
+</table></div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/classr123_1_1MicroURNG.html b/docs/html/classr123_1_1MicroURNG.html
new file mode 100644
index 0000000..6908dc9
--- /dev/null
+++ b/docs/html/classr123_1_1MicroURNG.html
@@ -0,0 +1,436 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: r123::MicroURNG< CBRNG > Class Template Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+  <div class="navpath">
+    <ul>
+      <li><a class="el" href="namespacer123.html">r123</a>      </li>
+      <li><a class="el" href="classr123_1_1MicroURNG.html">r123::MicroURNG< CBRNG ></a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="summary">
+<a href="#pub-types">Public Types</a> |
+<a href="#pub-methods">Public Member Functions</a> |
+<a href="#pub-static-methods">Static Public Member Functions</a> |
+<a href="#pub-static-attribs">Static Public Attributes</a>  </div>
+  <div class="headertitle">
+<h1>r123::MicroURNG< CBRNG > Class Template Reference</h1>  </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="r123::MicroURNG" -->
+<p><code>#include <<a class="el" href="MicroURNG_8hpp_source.html">Random123/MicroURNG.hpp</a>></code></p>
+
+<p><a href="classr123_1_1MicroURNG-members.html">List of all members.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-types"></a>
+Public Types</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef CBRNG </td><td class="memItemRight" valign="bottom"><a class="el" href="classr123_1_1MicroURNG.html#ab0b3a77c9408dbcb2f9d6b5c67e9c3f7">cbrng_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef cbrng_type::ctr_type </td><td class="memItemRight" valign="bottom"><a class="el" href="classr123_1_1MicroURNG.html#a5aba882fd21e4d8f1a445f546e1e4476">ctr_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef cbrng_type::key_type </td><td class="memItemRight" valign="bottom"><a class="el" href="classr123_1_1MicroURNG.html#aef90e6157f360434342ad0df4ce5f364">key_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef cbrng_type::ukey_type </td><td class="memItemRight" valign="bottom"><a class="el" href="classr123_1_1MicroURNG.html#a7e6fd93fec2fe138ee36b401ff376cfc">ukey_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef ctr_type::value_type </td><td class="memItemRight" valign="bottom"><a class="el" href="classr123_1_1MicroURNG.html#a512957c3e7b3d22741ef0a436b973c2b">result_type</a></td></tr>
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classr123_1_1MicroURNG.html#a512957c3e7b3d22741ef0a436b973c2b">result_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classr123_1_1MicroURNG.html#a64cd4d33b4cab5d3d9c556db68407b77">operator()</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classr123_1_1MicroURNG.html#a19afb80312c370e1670bf8afc73d802e">MicroURNG</a> (<a class="el" href="classr123_1_1MicroURNG.html#ab0b3a77c9408dbcb2f9d6b5c67e9c3f7">cbrng_type</a> _b, <a class="el" href="classr123_1_1MicroURNG.html#a5aba882fd21e4d8f1a445f546e1e4476">ctr_type</a> _c0, <a class="el" href="classr123_1_1MicroURNG.html#a7e6fd93fec2fe138ee36b401ff376cfc">u [...]
+<tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classr123_1_1MicroURNG.html#a7ecf43819bc96804892a78c6715f587b">MicroURNG</a> (<a class="el" href="classr123_1_1MicroURNG.html#a5aba882fd21e4d8f1a445f546e1e4476">ctr_type</a> _c0, <a class="el" href="classr123_1_1MicroURNG.html#a7e6fd93fec2fe138ee36b401ff376cfc">ukey_type</a> _uk)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classr123_1_1MicroURNG.html#a5aba882fd21e4d8f1a445f546e1e4476">ctr_type</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classr123_1_1MicroURNG.html#a30f52334b7cfcbe6d86870496ca57ea6">counter</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classr123_1_1MicroURNG.html#add2f214254ddc2291e3b2c8b5dbe791a">reset</a> (<a class="el" href="classr123_1_1MicroURNG.html#a5aba882fd21e4d8f1a445f546e1e4476">ctr_type</a> _c0, <a class="el" href="classr123_1_1MicroURNG.html#a7e6fd93fec2fe138ee36b401ff376cfc">ukey_type</a> _uk)</td></tr>
+<tr><td colspan="2"><h2><a name="pub-static-methods"></a>
+Static Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static R123_CONSTEXPR <br class="typebreak"/>
+<a class="el" href="classr123_1_1MicroURNG.html#a512957c3e7b3d22741ef0a436b973c2b">result_type</a> min </td><td class="memItemRight" valign="bottom"><a class="el" href="classr123_1_1MicroURNG.html#aa05c857c01053cf9185406d69757b101">R123_NO_MACRO_SUBST</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static R123_CONSTEXPR <br class="typebreak"/>
+<a class="el" href="classr123_1_1MicroURNG.html#a512957c3e7b3d22741ef0a436b973c2b">result_type</a> max </td><td class="memItemRight" valign="bottom"><a class="el" href="classr123_1_1MicroURNG.html#a3af623b6366d6e848d67d72e4b0f363c">R123_NO_MACRO_SUBST</a> ()</td></tr>
+<tr><td colspan="2"><h2><a name="pub-static-attribs"></a>
+Static Public Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static const int </td><td class="memItemRight" valign="bottom"><a class="el" href="classr123_1_1MicroURNG.html#ac55cddda8fe0808f922f39beee587b27">BITS</a> = 32</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="classr123_1_1MicroURNG.html#a512957c3e7b3d22741ef0a436b973c2b">result_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classr123_1_1MicroURNG.html#a1f2787f136a8a807d14eab8cb1ca8c14">_Min</a> = 0</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="classr123_1_1MicroURNG.html#a512957c3e7b3d22741ef0a436b973c2b">result_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classr123_1_1MicroURNG.html#a4faecd7ab54c7678ee66c413bb984bf0">_Max</a> = ~((<a class="el" href="classr123_1_1MicroURNG.html#a512957c3e7b3d22741ef0a436b973c2b">result_type</a>)0)</td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<h3>template<typename CBRNG><br/>
+ class r123::MicroURNG< CBRNG ></h3>
+
+<p>Given a CBRNG whose ctr_type has an unsigned integral value_type, MicroURNG<CBRNG>(c, k) is a type that satisfies the requirements of a C++0x Uniform Random Number Generator.</p>
+<p>The intended purpose is for a <a class="el" href="classr123_1_1MicroURNG.html">MicroURNG</a> to be passed as an argument to a C++0x Distribution, e.g., std::normal_distribution. See examples/MicroURNG.cpp.</p>
+<p>The <a class="el" href="classr123_1_1MicroURNG.html">MicroURNG</a> functor has a period of "only"</p>
+<p>ctr_type.size()*2^32,</p>
+<p>after which it will silently repeat.</p>
+<p>The high 32 bits of the highest word in the counter c, passed to the constructor must be zero. <a class="el" href="classr123_1_1MicroURNG.html">MicroURNG</a> uses these bits to "count".</p>
+<p>Older versions of the library permitted a second template parameter by which the caller could control the number of bits devoted to the URNG's internal counter. This flexibility has been disabled because URNGs created with different numbers of counter bits could, conceivably "collide".</p>
+<div class="fragment"><pre class="fragment">       <span class="keyword">typedef</span> ?someCBRNG? RNG;
+       RNG::ctr_type c = ...; <span class="comment">// under application control</span>
+       RNG::key_type k = ...; <span class="comment">// </span>
+       std::normal_distribution<float> nd;
+       MicroURNG<RNG> urng(c, k);
+       <span class="keywordflow">for</span>(???){
+         ...
+         nd(urng);  <span class="comment">// may be called several hundred times with BITS=10</span>
+         ...
+       }
+</pre></div> <hr/><h2>Member Typedef Documentation</h2>
+<a class="anchor" id="ab0b3a77c9408dbcb2f9d6b5c67e9c3f7"></a><!-- doxytag: member="r123::MicroURNG::cbrng_type" ref="ab0b3a77c9408dbcb2f9d6b5c67e9c3f7" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename CBRNG > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef CBRNG <a class="el" href="classr123_1_1MicroURNG.html">r123::MicroURNG</a>< CBRNG >::<a class="el" href="classr123_1_1MicroURNG.html#ab0b3a77c9408dbcb2f9d6b5c67e9c3f7">cbrng_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a5aba882fd21e4d8f1a445f546e1e4476"></a><!-- doxytag: member="r123::MicroURNG::ctr_type" ref="a5aba882fd21e4d8f1a445f546e1e4476" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename CBRNG > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef cbrng_type::ctr_type <a class="el" href="classr123_1_1MicroURNG.html">r123::MicroURNG</a>< CBRNG >::<a class="el" href="classr123_1_1MicroURNG.html#a5aba882fd21e4d8f1a445f546e1e4476">ctr_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aef90e6157f360434342ad0df4ce5f364"></a><!-- doxytag: member="r123::MicroURNG::key_type" ref="aef90e6157f360434342ad0df4ce5f364" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename CBRNG > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef cbrng_type::key_type <a class="el" href="classr123_1_1MicroURNG.html">r123::MicroURNG</a>< CBRNG >::<a class="el" href="classr123_1_1MicroURNG.html#aef90e6157f360434342ad0df4ce5f364">key_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a512957c3e7b3d22741ef0a436b973c2b"></a><!-- doxytag: member="r123::MicroURNG::result_type" ref="a512957c3e7b3d22741ef0a436b973c2b" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename CBRNG > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef ctr_type::value_type <a class="el" href="classr123_1_1MicroURNG.html">r123::MicroURNG</a>< CBRNG >::<a class="el" href="classr123_1_1MicroURNG.html#a512957c3e7b3d22741ef0a436b973c2b">result_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a7e6fd93fec2fe138ee36b401ff376cfc"></a><!-- doxytag: member="r123::MicroURNG::ukey_type" ref="a7e6fd93fec2fe138ee36b401ff376cfc" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename CBRNG > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef cbrng_type::ukey_type <a class="el" href="classr123_1_1MicroURNG.html">r123::MicroURNG</a>< CBRNG >::<a class="el" href="classr123_1_1MicroURNG.html#a7e6fd93fec2fe138ee36b401ff376cfc">ukey_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/><h2>Constructor & Destructor Documentation</h2>
+<a class="anchor" id="a19afb80312c370e1670bf8afc73d802e"></a><!-- doxytag: member="r123::MicroURNG::MicroURNG" ref="a19afb80312c370e1670bf8afc73d802e" args="(cbrng_type _b, ctr_type _c0, ukey_type _uk)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename CBRNG > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classr123_1_1MicroURNG.html">r123::MicroURNG</a>< CBRNG >::<a class="el" href="classr123_1_1MicroURNG.html">MicroURNG</a> </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classr123_1_1MicroURNG.html#ab0b3a77c9408dbcb2f9d6b5c67e9c3f7">cbrng_type</a> </td>
+          <td class="paramname"> <em>_b</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classr123_1_1MicroURNG.html#a5aba882fd21e4d8f1a445f546e1e4476">ctr_type</a> </td>
+          <td class="paramname"> <em>_c0</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classr123_1_1MicroURNG.html#a7e6fd93fec2fe138ee36b401ff376cfc">ukey_type</a> </td>
+          <td class="paramname"> <em>_uk</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a7ecf43819bc96804892a78c6715f587b"></a><!-- doxytag: member="r123::MicroURNG::MicroURNG" ref="a7ecf43819bc96804892a78c6715f587b" args="(ctr_type _c0, ukey_type _uk)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename CBRNG > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classr123_1_1MicroURNG.html">r123::MicroURNG</a>< CBRNG >::<a class="el" href="classr123_1_1MicroURNG.html">MicroURNG</a> </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classr123_1_1MicroURNG.html#a5aba882fd21e4d8f1a445f546e1e4476">ctr_type</a> </td>
+          <td class="paramname"> <em>_c0</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classr123_1_1MicroURNG.html#a7e6fd93fec2fe138ee36b401ff376cfc">ukey_type</a> </td>
+          <td class="paramname"> <em>_uk</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="a30f52334b7cfcbe6d86870496ca57ea6"></a><!-- doxytag: member="r123::MicroURNG::counter" ref="a30f52334b7cfcbe6d86870496ca57ea6" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename CBRNG > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">const <a class="el" href="classr123_1_1MicroURNG.html#a5aba882fd21e4d8f1a445f546e1e4476">ctr_type</a>& <a class="el" href="classr123_1_1MicroURNG.html">r123::MicroURNG</a>< CBRNG >::counter </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a64cd4d33b4cab5d3d9c556db68407b77"></a><!-- doxytag: member="r123::MicroURNG::operator()" ref="a64cd4d33b4cab5d3d9c556db68407b77" args="()" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename CBRNG > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classr123_1_1MicroURNG.html#a512957c3e7b3d22741ef0a436b973c2b">result_type</a> <a class="el" href="classr123_1_1MicroURNG.html">r123::MicroURNG</a>< CBRNG >::operator() </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa05c857c01053cf9185406d69757b101"></a><!-- doxytag: member="r123::MicroURNG::R123_NO_MACRO_SUBST" ref="aa05c857c01053cf9185406d69757b101" args="()" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename CBRNG > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">static R123_CONSTEXPR <a class="el" href="classr123_1_1MicroURNG.html#a512957c3e7b3d22741ef0a436b973c2b">result_type</a> min <a class="el" href="classr123_1_1MicroURNG.html">r123::MicroURNG</a>< CBRNG >::R123_NO_MACRO_SUBST </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline, static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a3af623b6366d6e848d67d72e4b0f363c"></a><!-- doxytag: member="r123::MicroURNG::R123_NO_MACRO_SUBST" ref="a3af623b6366d6e848d67d72e4b0f363c" args="()" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename CBRNG > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">static R123_CONSTEXPR <a class="el" href="classr123_1_1MicroURNG.html#a512957c3e7b3d22741ef0a436b973c2b">result_type</a> max <a class="el" href="classr123_1_1MicroURNG.html">r123::MicroURNG</a>< CBRNG >::R123_NO_MACRO_SUBST </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline, static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="add2f214254ddc2291e3b2c8b5dbe791a"></a><!-- doxytag: member="r123::MicroURNG::reset" ref="add2f214254ddc2291e3b2c8b5dbe791a" args="(ctr_type _c0, ukey_type _uk)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename CBRNG > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">void <a class="el" href="classr123_1_1MicroURNG.html">r123::MicroURNG</a>< CBRNG >::reset </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classr123_1_1MicroURNG.html#a5aba882fd21e4d8f1a445f546e1e4476">ctr_type</a> </td>
+          <td class="paramname"> <em>_c0</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classr123_1_1MicroURNG.html#a7e6fd93fec2fe138ee36b401ff376cfc">ukey_type</a> </td>
+          <td class="paramname"> <em>_uk</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/><h2>Member Data Documentation</h2>
+<a class="anchor" id="a4faecd7ab54c7678ee66c413bb984bf0"></a><!-- doxytag: member="r123::MicroURNG::_Max" ref="a4faecd7ab54c7678ee66c413bb984bf0" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename CBRNG > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">const <a class="el" href="classr123_1_1MicroURNG.html#a512957c3e7b3d22741ef0a436b973c2b">result_type</a> <a class="el" href="classr123_1_1MicroURNG.html">r123::MicroURNG</a>< CBRNG >::<a class="el" href="classr123_1_1MicroURNG.html#a4faecd7ab54c7678ee66c413bb984bf0">_Max</a> = ~((<a class="el" href="classr123_1_1MicroURNG.html#a512957c3e7b3d22741ef0a436b973c2b">result_type</a>)0)<code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a1f2787f136a8a807d14eab8cb1ca8c14"></a><!-- doxytag: member="r123::MicroURNG::_Min" ref="a1f2787f136a8a807d14eab8cb1ca8c14" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename CBRNG > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">const <a class="el" href="classr123_1_1MicroURNG.html#a512957c3e7b3d22741ef0a436b973c2b">result_type</a> <a class="el" href="classr123_1_1MicroURNG.html">r123::MicroURNG</a>< CBRNG >::<a class="el" href="classr123_1_1MicroURNG.html#a1f2787f136a8a807d14eab8cb1ca8c14">_Min</a> = 0<code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ac55cddda8fe0808f922f39beee587b27"></a><!-- doxytag: member="r123::MicroURNG::BITS" ref="ac55cddda8fe0808f922f39beee587b27" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename CBRNG > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">const int <a class="el" href="classr123_1_1MicroURNG.html">r123::MicroURNG</a>< CBRNG >::<a class="el" href="classr123_1_1MicroURNG.html#ac55cddda8fe0808f922f39beee587b27">BITS</a> = 32<code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>Random123/<a class="el" href="MicroURNG_8hpp_source.html">MicroURNG.hpp</a></li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/classr123_1_1Philox2x32__R-members.html b/docs/html/classr123_1_1Philox2x32__R-members.html
new file mode 100644
index 0000000..c857377
--- /dev/null
+++ b/docs/html/classr123_1_1Philox2x32__R-members.html
@@ -0,0 +1,83 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<h1>r123::Philox2x32_R< ROUNDS > Member List</h1>  </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="structr123_1_1Philox2x32__R.html">r123::Philox2x32_R< ROUNDS ></a>, including all inherited members.<table>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Philox2x32__R.html#af00c84c482900fbeca6bd2043395e599">ctr_type</a> typedef</td><td><a class="el" href="structr123_1_1Philox2x32__R.html">r123::Philox2x32_R< ROUNDS ></a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Philox2x32__R.html#a37dac768d36ef39e0228369e91b9f0ab">key_type</a> typedef</td><td><a class="el" href="structr123_1_1Philox2x32__R.html">r123::Philox2x32_R< ROUNDS ></a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Philox2x32__R.html#ab610a200c9fa62d090f31466b655c780">operator()</a>(ctr_type ctr, key_type key) const </td><td><a class="el" href="structr123_1_1Philox2x32__R.html">r123::Philox2x32_R< ROUNDS ></a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Philox2x32__R.html#a52ee7b34688fc2e5315152a10d7df5f0">rounds</a></td><td><a class="el" href="structr123_1_1Philox2x32__R.html">r123::Philox2x32_R< ROUNDS ></a></td><td><code> [static]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Philox2x32__R.html#a8982960eb5a3b5afc26c8e8d6639275e">ukey_type</a> typedef</td><td><a class="el" href="structr123_1_1Philox2x32__R.html">r123::Philox2x32_R< ROUNDS ></a></td><td></td></tr>
+</table></div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/classr123_1_1Philox2x64__R-members.html b/docs/html/classr123_1_1Philox2x64__R-members.html
new file mode 100644
index 0000000..4a4393d
--- /dev/null
+++ b/docs/html/classr123_1_1Philox2x64__R-members.html
@@ -0,0 +1,83 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<h1>r123::Philox2x64_R< ROUNDS > Member List</h1>  </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="structr123_1_1Philox2x64__R.html">r123::Philox2x64_R< ROUNDS ></a>, including all inherited members.<table>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Philox2x64__R.html#a8e615e3f4680b9e1b986ea071fd173fc">ctr_type</a> typedef</td><td><a class="el" href="structr123_1_1Philox2x64__R.html">r123::Philox2x64_R< ROUNDS ></a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Philox2x64__R.html#adb8a638d3d96ef0ab594b0320bae329f">key_type</a> typedef</td><td><a class="el" href="structr123_1_1Philox2x64__R.html">r123::Philox2x64_R< ROUNDS ></a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Philox2x64__R.html#a04f6039e87a958593ac011d9304d7ec9">operator()</a>(ctr_type ctr, key_type key) const </td><td><a class="el" href="structr123_1_1Philox2x64__R.html">r123::Philox2x64_R< ROUNDS ></a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Philox2x64__R.html#ac0764d78e07bf6d311b47d0f3ce92450">rounds</a></td><td><a class="el" href="structr123_1_1Philox2x64__R.html">r123::Philox2x64_R< ROUNDS ></a></td><td><code> [static]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Philox2x64__R.html#a0c4cfeb8c3f00d1755ee047790c9da1c">ukey_type</a> typedef</td><td><a class="el" href="structr123_1_1Philox2x64__R.html">r123::Philox2x64_R< ROUNDS ></a></td><td></td></tr>
+</table></div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/classr123_1_1Philox4x32__R-members.html b/docs/html/classr123_1_1Philox4x32__R-members.html
new file mode 100644
index 0000000..2193ef8
--- /dev/null
+++ b/docs/html/classr123_1_1Philox4x32__R-members.html
@@ -0,0 +1,83 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<h1>r123::Philox4x32_R< ROUNDS > Member List</h1>  </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="structr123_1_1Philox4x32__R.html">r123::Philox4x32_R< ROUNDS ></a>, including all inherited members.<table>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Philox4x32__R.html#a23adf0320faed0fe4d12ebececdba50a">ctr_type</a> typedef</td><td><a class="el" href="structr123_1_1Philox4x32__R.html">r123::Philox4x32_R< ROUNDS ></a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Philox4x32__R.html#afa2e99f3e0b635f17ba9e16c186af63b">key_type</a> typedef</td><td><a class="el" href="structr123_1_1Philox4x32__R.html">r123::Philox4x32_R< ROUNDS ></a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Philox4x32__R.html#adf05bdc0c856c9541db656711fd8c7d1">operator()</a>(ctr_type ctr, key_type key) const </td><td><a class="el" href="structr123_1_1Philox4x32__R.html">r123::Philox4x32_R< ROUNDS ></a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Philox4x32__R.html#a90d6a86bff4dc6e5e24209423f125140">rounds</a></td><td><a class="el" href="structr123_1_1Philox4x32__R.html">r123::Philox4x32_R< ROUNDS ></a></td><td><code> [static]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Philox4x32__R.html#a804c8700155da93039c339ac83df99dd">ukey_type</a> typedef</td><td><a class="el" href="structr123_1_1Philox4x32__R.html">r123::Philox4x32_R< ROUNDS ></a></td><td></td></tr>
+</table></div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/classr123_1_1Philox4x64__R-members.html b/docs/html/classr123_1_1Philox4x64__R-members.html
new file mode 100644
index 0000000..b7a85be
--- /dev/null
+++ b/docs/html/classr123_1_1Philox4x64__R-members.html
@@ -0,0 +1,83 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<h1>r123::Philox4x64_R< ROUNDS > Member List</h1>  </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="structr123_1_1Philox4x64__R.html">r123::Philox4x64_R< ROUNDS ></a>, including all inherited members.<table>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Philox4x64__R.html#afd5f78b34ae7c478ebe16eb601f7b202">ctr_type</a> typedef</td><td><a class="el" href="structr123_1_1Philox4x64__R.html">r123::Philox4x64_R< ROUNDS ></a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Philox4x64__R.html#a9947ce12e3d03f9a60396d79bb56ba1c">key_type</a> typedef</td><td><a class="el" href="structr123_1_1Philox4x64__R.html">r123::Philox4x64_R< ROUNDS ></a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Philox4x64__R.html#aa5a0488aa6e16c55b7647c155b18462c">operator()</a>(ctr_type ctr, key_type key) const </td><td><a class="el" href="structr123_1_1Philox4x64__R.html">r123::Philox4x64_R< ROUNDS ></a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Philox4x64__R.html#ac51193ab00b118b75784f86cf3470876">rounds</a></td><td><a class="el" href="structr123_1_1Philox4x64__R.html">r123::Philox4x64_R< ROUNDS ></a></td><td><code> [static]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Philox4x64__R.html#a4715e37129fb4ca9d7671cb9df4fa8c5">ukey_type</a> typedef</td><td><a class="el" href="structr123_1_1Philox4x64__R.html">r123::Philox4x64_R< ROUNDS ></a></td><td></td></tr>
+</table></div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/classr123_1_1Threefry2x32__R-members.html b/docs/html/classr123_1_1Threefry2x32__R-members.html
new file mode 100644
index 0000000..137a5c5
--- /dev/null
+++ b/docs/html/classr123_1_1Threefry2x32__R-members.html
@@ -0,0 +1,83 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<h1>r123::Threefry2x32_R< R > Member List</h1>  </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="structr123_1_1Threefry2x32__R.html">r123::Threefry2x32_R< R ></a>, including all inherited members.<table>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Threefry2x32__R.html#a60b1b58aeaa05d467607dc570aed1357">ctr_type</a> typedef</td><td><a class="el" href="structr123_1_1Threefry2x32__R.html">r123::Threefry2x32_R< R ></a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Threefry2x32__R.html#abfaaff871ef5e2e2cf397884ddab4cdc">key_type</a> typedef</td><td><a class="el" href="structr123_1_1Threefry2x32__R.html">r123::Threefry2x32_R< R ></a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Threefry2x32__R.html#a64b8018e82f3e7a0e252166b15b42a71">operator()</a>(ctr_type ctr, key_type key)</td><td><a class="el" href="structr123_1_1Threefry2x32__R.html">r123::Threefry2x32_R< R ></a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Threefry2x32__R.html#af5be46f8426cfcd86e75327e4b3750b0">rounds</a></td><td><a class="el" href="structr123_1_1Threefry2x32__R.html">r123::Threefry2x32_R< R ></a></td><td><code> [static]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Threefry2x32__R.html#a3ab3969f7445f9fe935566fdc017c5ca">ukey_type</a> typedef</td><td><a class="el" href="structr123_1_1Threefry2x32__R.html">r123::Threefry2x32_R< R ></a></td><td></td></tr>
+</table></div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/classr123_1_1Threefry2x64__R-members.html b/docs/html/classr123_1_1Threefry2x64__R-members.html
new file mode 100644
index 0000000..29d03c7
--- /dev/null
+++ b/docs/html/classr123_1_1Threefry2x64__R-members.html
@@ -0,0 +1,83 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<h1>r123::Threefry2x64_R< R > Member List</h1>  </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="structr123_1_1Threefry2x64__R.html">r123::Threefry2x64_R< R ></a>, including all inherited members.<table>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Threefry2x64__R.html#a6b151f30bc5544671596b9df91e896d8">ctr_type</a> typedef</td><td><a class="el" href="structr123_1_1Threefry2x64__R.html">r123::Threefry2x64_R< R ></a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Threefry2x64__R.html#ae652f0e9ca6ec234fd2f4fc9afb1007c">key_type</a> typedef</td><td><a class="el" href="structr123_1_1Threefry2x64__R.html">r123::Threefry2x64_R< R ></a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Threefry2x64__R.html#ab654a85f2c4ec65548ddfc85dc00f27e">operator()</a>(ctr_type ctr, key_type key)</td><td><a class="el" href="structr123_1_1Threefry2x64__R.html">r123::Threefry2x64_R< R ></a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Threefry2x64__R.html#aa994d756504284e6a59cc8d3c57f16c6">rounds</a></td><td><a class="el" href="structr123_1_1Threefry2x64__R.html">r123::Threefry2x64_R< R ></a></td><td><code> [static]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Threefry2x64__R.html#a57db271865ab1889c8f569fb053ee66d">ukey_type</a> typedef</td><td><a class="el" href="structr123_1_1Threefry2x64__R.html">r123::Threefry2x64_R< R ></a></td><td></td></tr>
+</table></div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/classr123_1_1Threefry4x32__R-members.html b/docs/html/classr123_1_1Threefry4x32__R-members.html
new file mode 100644
index 0000000..d9a3103
--- /dev/null
+++ b/docs/html/classr123_1_1Threefry4x32__R-members.html
@@ -0,0 +1,83 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<h1>r123::Threefry4x32_R< R > Member List</h1>  </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="structr123_1_1Threefry4x32__R.html">r123::Threefry4x32_R< R ></a>, including all inherited members.<table>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Threefry4x32__R.html#ae89dabc0060c62e0d9e5c4ac34a8550f">ctr_type</a> typedef</td><td><a class="el" href="structr123_1_1Threefry4x32__R.html">r123::Threefry4x32_R< R ></a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Threefry4x32__R.html#a140f5cf20bde7784d778b82f0ebf8778">key_type</a> typedef</td><td><a class="el" href="structr123_1_1Threefry4x32__R.html">r123::Threefry4x32_R< R ></a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Threefry4x32__R.html#ae0dfbf399015fab602c769ad90256231">operator()</a>(ctr_type ctr, key_type key)</td><td><a class="el" href="structr123_1_1Threefry4x32__R.html">r123::Threefry4x32_R< R ></a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Threefry4x32__R.html#af63fd38ba9acf04ee56d75e96b413291">rounds</a></td><td><a class="el" href="structr123_1_1Threefry4x32__R.html">r123::Threefry4x32_R< R ></a></td><td><code> [static]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Threefry4x32__R.html#aab22e360de3f5e13f018ccf3a6754a8f">ukey_type</a> typedef</td><td><a class="el" href="structr123_1_1Threefry4x32__R.html">r123::Threefry4x32_R< R ></a></td><td></td></tr>
+</table></div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/classr123_1_1Threefry4x64__R-members.html b/docs/html/classr123_1_1Threefry4x64__R-members.html
new file mode 100644
index 0000000..3eb92a7
--- /dev/null
+++ b/docs/html/classr123_1_1Threefry4x64__R-members.html
@@ -0,0 +1,83 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<h1>r123::Threefry4x64_R< R > Member List</h1>  </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="structr123_1_1Threefry4x64__R.html">r123::Threefry4x64_R< R ></a>, including all inherited members.<table>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Threefry4x64__R.html#a6c93334cb8a8b53ef01cc79b5296af0d">ctr_type</a> typedef</td><td><a class="el" href="structr123_1_1Threefry4x64__R.html">r123::Threefry4x64_R< R ></a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Threefry4x64__R.html#adb406d1af0e757bd8058582ee39f21dc">key_type</a> typedef</td><td><a class="el" href="structr123_1_1Threefry4x64__R.html">r123::Threefry4x64_R< R ></a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Threefry4x64__R.html#a09e7fb82f9b7bcf6ccb4d849116b6ec1">operator()</a>(ctr_type ctr, key_type key)</td><td><a class="el" href="structr123_1_1Threefry4x64__R.html">r123::Threefry4x64_R< R ></a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Threefry4x64__R.html#ab8807960eec8fc2198055ec2a971e116">rounds</a></td><td><a class="el" href="structr123_1_1Threefry4x64__R.html">r123::Threefry4x64_R< R ></a></td><td><code> [static]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Threefry4x64__R.html#a087ff88f84d115a6a726e008c6dcc325">ukey_type</a> typedef</td><td><a class="el" href="structr123_1_1Threefry4x64__R.html">r123::Threefry4x64_R< R ></a></td><td></td></tr>
+</table></div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/closed.png b/docs/html/closed.png
new file mode 100644
index 0000000..b7d4bd9
Binary files /dev/null and b/docs/html/closed.png differ
diff --git a/docs/html/compilerfeatures_8h.html b/docs/html/compilerfeatures_8h.html
new file mode 100644
index 0000000..8bc0c5c
--- /dev/null
+++ b/docs/html/compilerfeatures_8h.html
@@ -0,0 +1,79 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Random123/features/compilerfeatures.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<h1>Random123/features/compilerfeatures.h File Reference</h1>  </div>
+</div>
+<div class="contents">
+
+<p><a href="compilerfeatures_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+</table>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/compilerfeatures_8h_source.html b/docs/html/compilerfeatures_8h_source.html
new file mode 100644
index 0000000..49a904e
--- /dev/null
+++ b/docs/html/compilerfeatures_8h_source.html
@@ -0,0 +1,236 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Random123/features/compilerfeatures.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+<div class="header">
+  <div class="headertitle">
+<h1>Random123/features/compilerfeatures.h</h1>  </div>
+</div>
+<div class="contents">
+<a href="compilerfeatures_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
+<a name="l00002"></a>00002 <span class="comment">Copyright 2010-2011, D. E. Shaw Research.</span>
+<a name="l00003"></a>00003 <span class="comment">All rights reserved.</span>
+<a name="l00004"></a>00004 <span class="comment"></span>
+<a name="l00005"></a>00005 <span class="comment">Redistribution and use in source and binary forms, with or without</span>
+<a name="l00006"></a>00006 <span class="comment">modification, are permitted provided that the following conditions are</span>
+<a name="l00007"></a>00007 <span class="comment">met:</span>
+<a name="l00008"></a>00008 <span class="comment"></span>
+<a name="l00009"></a>00009 <span class="comment">* Redistributions of source code must retain the above copyright</span>
+<a name="l00010"></a>00010 <span class="comment">  notice, this list of conditions, and the following disclaimer.</span>
+<a name="l00011"></a>00011 <span class="comment"></span>
+<a name="l00012"></a>00012 <span class="comment">* Redistributions in binary form must reproduce the above copyright</span>
+<a name="l00013"></a>00013 <span class="comment">  notice, this list of conditions, and the following disclaimer in the</span>
+<a name="l00014"></a>00014 <span class="comment">  documentation and/or other materials provided with the distribution.</span>
+<a name="l00015"></a>00015 <span class="comment"></span>
+<a name="l00016"></a>00016 <span class="comment">* Neither the name of D. E. Shaw Research nor the names of its</span>
+<a name="l00017"></a>00017 <span class="comment">  contributors may be used to endorse or promote products derived from</span>
+<a name="l00018"></a>00018 <span class="comment">  this software without specific prior written permission.</span>
+<a name="l00019"></a>00019 <span class="comment"></span>
+<a name="l00020"></a>00020 <span class="comment">THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS</span>
+<a name="l00021"></a>00021 <span class="comment">"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT</span>
+<a name="l00022"></a>00022 <span class="comment">LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR</span>
+<a name="l00023"></a>00023 <span class="comment">A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT</span>
+<a name="l00024"></a>00024 <span class="comment">OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,</span>
+<a name="l00025"></a>00025 <span class="comment">SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT</span>
+<a name="l00026"></a>00026 <span class="comment">LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,</span>
+<a name="l00027"></a>00027 <span class="comment">DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY</span>
+<a name="l00028"></a>00028 <span class="comment">THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT</span>
+<a name="l00029"></a>00029 <span class="comment">(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE</span>
+<a name="l00030"></a>00030 <span class="comment">OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span>
+<a name="l00031"></a>00031 <span class="comment">*/</span>
+<a name="l00190"></a>00190 <span class="comment">/* </span>
+<a name="l00191"></a>00191 <span class="comment">N.B.  When something is added to the list of features, it should be</span>
+<a name="l00192"></a>00192 <span class="comment">added to each of the *features.h files, AND to examples/ut_features.cpp.</span>
+<a name="l00193"></a>00193 <span class="comment">*/</span>
+<a name="l00194"></a>00194 
+<a name="l00195"></a>00195 <span class="comment">/* N.B.  most other compilers (icc, nvcc, open64, llvm) will also define __GNUC__, so order matters. */</span>
+<a name="l00196"></a>00196 <span class="preprocessor">#if defined(__OPENCL_VERSION__) && __OPENCL_VERSION__ > 0</span>
+<a name="l00197"></a>00197 <span class="preprocessor"></span><span class="preprocessor">#include "openclfeatures.h"</span>
+<a name="l00198"></a>00198 <span class="preprocessor">#elif defined(__CUDACC__)</span>
+<a name="l00199"></a>00199 <span class="preprocessor"></span><span class="preprocessor">#include "nvccfeatures.h"</span>
+<a name="l00200"></a>00200 <span class="preprocessor">#elif defined(__ICC)</span>
+<a name="l00201"></a>00201 <span class="preprocessor"></span><span class="preprocessor">#include "iccfeatures.h"</span>
+<a name="l00202"></a>00202 <span class="preprocessor">#elif defined(__xlC__)</span>
+<a name="l00203"></a>00203 <span class="preprocessor"></span><span class="preprocessor">#include "xlcfeatures.h"</span>
+<a name="l00204"></a>00204 <span class="preprocessor">#elif defined(__SUNPRO_C) || defined(__SUNPRO_CC)</span>
+<a name="l00205"></a>00205 <span class="preprocessor"></span><span class="preprocessor">#include "sunprofeatures.h"</span>
+<a name="l00206"></a>00206 <span class="preprocessor">#elif defined(__OPEN64__)</span>
+<a name="l00207"></a>00207 <span class="preprocessor"></span><span class="preprocessor">#include "open64features.h"</span>
+<a name="l00208"></a>00208 <span class="preprocessor">#elif defined(__clang__)</span>
+<a name="l00209"></a>00209 <span class="preprocessor"></span><span class="preprocessor">#include "clangfeatures.h"</span>
+<a name="l00210"></a>00210 <span class="preprocessor">#elif defined(__GNUC__)</span>
+<a name="l00211"></a>00211 <span class="preprocessor"></span><span class="preprocessor">#include "gccfeatures.h"</span>
+<a name="l00212"></a>00212 <span class="preprocessor">#elif defined(__PGI)</span>
+<a name="l00213"></a>00213 <span class="preprocessor"></span><span class="preprocessor">#include "pgccfeatures.h"</span>
+<a name="l00214"></a>00214 <span class="preprocessor">#elif defined(_MSC_FULL_VER)</span>
+<a name="l00215"></a>00215 <span class="preprocessor"></span><span class="preprocessor">#include "msvcfeatures.h"</span>
+<a name="l00216"></a>00216 <span class="preprocessor">#else</span>
+<a name="l00217"></a>00217 <span class="preprocessor"></span><span class="preprocessor">#error "Can't identify compiler.  You'll need to add a new xxfeatures.hpp"</span>
+<a name="l00218"></a>00218 <span class="preprocessor"></span>{ <span class="comment">/* maybe an unbalanced brace will terminate the compilation */</span>
+<a name="l00219"></a>00219 <span class="preprocessor">#endif</span>
+<a name="l00220"></a>00220 <span class="preprocessor"></span>
+<a name="l00221"></a>00221 <span class="preprocessor">#ifndef R123_USE_CXX11</span>
+<a name="l00222"></a>00222 <span class="preprocessor"></span><span class="preprocessor">#define R123_USE_CXX11 (__cplusplus >= 201103L)</span>
+<a name="l00223"></a>00223 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00224"></a>00224 <span class="preprocessor"></span>
+<a name="l00225"></a>00225 <span class="preprocessor">#ifndef R123_USE_CXX11_UNRESTRICTED_UNIONS</span>
+<a name="l00226"></a>00226 <span class="preprocessor"></span><span class="preprocessor">#define R123_USE_CXX11_UNRESTRICTED_UNIONS R123_USE_CXX11</span>
+<a name="l00227"></a>00227 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00228"></a>00228 <span class="preprocessor"></span>
+<a name="l00229"></a>00229 <span class="preprocessor">#ifndef R123_USE_CXX11_STATIC_ASSERT</span>
+<a name="l00230"></a>00230 <span class="preprocessor"></span><span class="preprocessor">#define R123_USE_CXX11_STATIC_ASSERT R123_USE_CXX11</span>
+<a name="l00231"></a>00231 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00232"></a>00232 <span class="preprocessor"></span>
+<a name="l00233"></a>00233 <span class="preprocessor">#ifndef R123_USE_CXX11_CONSTEXPR</span>
+<a name="l00234"></a>00234 <span class="preprocessor"></span><span class="preprocessor">#define R123_USE_CXX11_CONSTEXPR R123_USE_CXX11</span>
+<a name="l00235"></a>00235 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00236"></a>00236 <span class="preprocessor"></span>
+<a name="l00237"></a>00237 <span class="preprocessor">#ifndef R123_USE_CXX11_EXPLICIT_CONVERSIONS</span>
+<a name="l00238"></a>00238 <span class="preprocessor"></span><span class="preprocessor">#define R123_USE_CXX11_EXPLICIT_CONVERSIONS R123_USE_CXX11</span>
+<a name="l00239"></a>00239 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00240"></a>00240 <span class="preprocessor"></span>
+<a name="l00241"></a>00241 <span class="preprocessor">#ifndef R123_USE_CXX11_RANDOM</span>
+<a name="l00242"></a>00242 <span class="preprocessor"></span><span class="preprocessor">#define R123_USE_CXX11_RANDOM R123_USE_CXX11</span>
+<a name="l00243"></a>00243 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00244"></a>00244 <span class="preprocessor"></span>
+<a name="l00245"></a>00245 <span class="preprocessor">#ifndef R123_USE_CXX11_TYPE_TRAITS</span>
+<a name="l00246"></a>00246 <span class="preprocessor"></span><span class="preprocessor">#define R123_USE_CXX11_TYPE_TRAITS R123_USE_CXX11</span>
+<a name="l00247"></a>00247 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00248"></a>00248 <span class="preprocessor"></span>
+<a name="l00249"></a>00249 <span class="preprocessor">#ifndef R123_USE_CXX11_LONG_LONG</span>
+<a name="l00250"></a>00250 <span class="preprocessor"></span><span class="preprocessor">#define R123_USE_CXX11_LONG_LONG R123_USE_CXX11</span>
+<a name="l00251"></a>00251 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00252"></a>00252 <span class="preprocessor"></span>
+<a name="l00253"></a>00253 <span class="preprocessor">#ifndef R123_USE_MULHILO64_C99</span>
+<a name="l00254"></a>00254 <span class="preprocessor"></span><span class="preprocessor">#define R123_USE_MULHILO64_C99 0</span>
+<a name="l00255"></a>00255 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00256"></a>00256 <span class="preprocessor"></span>
+<a name="l00257"></a>00257 <span class="preprocessor">#ifndef R123_USE_MULHILO64_MULHI_INTRIN</span>
+<a name="l00258"></a>00258 <span class="preprocessor"></span><span class="preprocessor">#define R123_USE_MULHILO64_MULHI_INTRIN 0</span>
+<a name="l00259"></a>00259 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00260"></a>00260 <span class="preprocessor"></span>
+<a name="l00261"></a>00261 <span class="preprocessor">#ifndef R123_USE_MULHILO32_MULHI_INTRIN</span>
+<a name="l00262"></a>00262 <span class="preprocessor"></span><span class="preprocessor">#define R123_USE_MULHILO32_MULHI_INTRIN 0</span>
+<a name="l00263"></a>00263 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00264"></a>00264 <span class="preprocessor"></span>
+<a name="l00265"></a>00265 <span class="preprocessor">#ifndef R123_STATIC_ASSERT</span>
+<a name="l00266"></a>00266 <span class="preprocessor"></span><span class="preprocessor">#if R123_USE_CXX11_STATIC_ASSERT</span>
+<a name="l00267"></a>00267 <span class="preprocessor"></span><span class="preprocessor">#define R123_STATIC_ASSERT(expr, msg) static_assert(expr, msg)</span>
+<a name="l00268"></a>00268 <span class="preprocessor"></span><span class="preprocessor">#else</span>
+<a name="l00269"></a>00269 <span class="preprocessor"></span>    <span class="comment">/* if msg always_looked_like_this, we could paste it into the name.  Worth it? */</span>
+<a name="l00270"></a>00270 <span class="preprocessor">#define R123_STATIC_ASSERT(expr, msg) typedef char static_assertion[(!!(expr))*2-1]</span>
+<a name="l00271"></a>00271 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00272"></a>00272 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00273"></a>00273 <span class="preprocessor"></span>
+<a name="l00274"></a>00274 <span class="preprocessor">#ifndef R123_CONSTEXPR</span>
+<a name="l00275"></a>00275 <span class="preprocessor"></span><span class="preprocessor">#if R123_USE_CXX11_CONSTEXPR</span>
+<a name="l00276"></a>00276 <span class="preprocessor"></span><span class="preprocessor">#define R123_CONSTEXPR constexpr</span>
+<a name="l00277"></a>00277 <span class="preprocessor"></span><span class="preprocessor">#else</span>
+<a name="l00278"></a>00278 <span class="preprocessor"></span><span class="preprocessor">#define R123_CONSTEXPR</span>
+<a name="l00279"></a>00279 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00280"></a>00280 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00281"></a>00281 <span class="preprocessor"></span>
+<a name="l00282"></a>00282 <span class="preprocessor">#ifndef R123_USE_PHILOX_64BIT</span>
+<a name="l00283"></a>00283 <span class="preprocessor"></span><span class="preprocessor">#define R123_USE_PHILOX_64BIT (R123_USE_MULHILO64_ASM || R123_USE_MULHILO64_MSVC_INTRIN || R123_USE_MULHILO64_CUDA_INTRIN || R123_USE_GNU_UINT128 || R123_USE_MULHILO64_C99 || R123_USE_MULHILO64_OPENCL_INTRIN || R123_USE_MULHILO64_MULHI_INTRIN)</span>
+<a name="l00284"></a>00284 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00285"></a>00285 <span class="preprocessor"></span>
+<a name="l00286"></a>00286 <span class="preprocessor">#ifndef R123_ULONG_LONG</span>
+<a name="l00287"></a>00287 <span class="preprocessor"></span><span class="preprocessor">#if defined(__cplusplus) && !R123_USE_CXX11_LONG_LONG</span>
+<a name="l00288"></a>00288 <span class="preprocessor"></span><span class="comment">/* C++98 doesn't have long long.  It doesn't have uint64_t either, but</span>
+<a name="l00289"></a>00289 <span class="comment">   we will have typedef'ed uint64_t to something in the xxxfeatures.h.</span>
+<a name="l00290"></a>00290 <span class="comment">   With luck, it won't elicit complaints from -pedantic.  Cross your</span>
+<a name="l00291"></a>00291 <span class="comment">   fingers... */</span>
+<a name="l00292"></a>00292 <span class="preprocessor">#define R123_ULONG_LONG uint64_t</span>
+<a name="l00293"></a>00293 <span class="preprocessor"></span><span class="preprocessor">#else</span>
+<a name="l00294"></a>00294 <span class="preprocessor"></span><span class="preprocessor">#define R123_ULONG_LONG unsigned long long</span>
+<a name="l00295"></a>00295 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00296"></a>00296 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00297"></a>00297 <span class="preprocessor"></span>
+<a name="l00298"></a>00298 <span class="comment">/* UINT64_C should have been #defined by XXXfeatures.h, either by</span>
+<a name="l00299"></a>00299 <span class="comment">   #include <stdint.h> or through compiler-dependent hacks */</span>
+<a name="l00300"></a>00300 <span class="preprocessor">#ifndef R123_64BIT</span>
+<a name="l00301"></a>00301 <span class="preprocessor"></span><span class="preprocessor">#define R123_64BIT(x) UINT64_C(x)</span>
+<a name="l00302"></a>00302 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00303"></a>00303 <span class="preprocessor"></span>
+<a name="l00304"></a>00304 <span class="preprocessor">#ifndef R123_THROW</span>
+<a name="l00305"></a>00305 <span class="preprocessor"></span><span class="preprocessor">#define R123_THROW(x)    throw (x)</span>
+<a name="l00306"></a>00306 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00307"></a>00307 <span class="preprocessor"></span>
+<a name="l00308"></a>00308 <span class="comment">/*</span>
+<a name="l00309"></a>00309 <span class="comment"> * Windows.h (and perhaps other "well-meaning" code define min and</span>
+<a name="l00310"></a>00310 <span class="comment"> * max, so there's a high chance that our definition of min, max</span>
+<a name="l00311"></a>00311 <span class="comment"> * methods or use of std::numeric_limits min and max will cause</span>
+<a name="l00312"></a>00312 <span class="comment"> * complaints in any program that happened to include Windows.h or</span>
+<a name="l00313"></a>00313 <span class="comment"> * suchlike first.  We use the null macro below in our own header</span>
+<a name="l00314"></a>00314 <span class="comment"> * files definition or use of min, max to defensively preclude</span>
+<a name="l00315"></a>00315 <span class="comment"> * this problem.  It may not be enough; one might need to #define</span>
+<a name="l00316"></a>00316 <span class="comment"> * NOMINMAX before including Windows.h or compile with -DNOMINMAX.</span>
+<a name="l00317"></a>00317 <span class="comment"> */</span>
+<a name="l00318"></a>00318 <span class="preprocessor">#define R123_NO_MACRO_SUBST</span>
+<a name="l00319"></a>00319 <span class="preprocessor"></span>
+</pre></div></div>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/doxygen.css b/docs/html/doxygen.css
new file mode 100644
index 0000000..658686f
--- /dev/null
+++ b/docs/html/doxygen.css
@@ -0,0 +1,656 @@
+/* The standard CSS for doxygen */
+
+body, table, div, p, dl {
+	font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif;
+	font-size: 12px;
+}
+
+/* @group Heading Levels */
+
+h1 {
+	font-size: 150%;
+}
+
+h2 {
+	font-size: 120%;
+}
+
+h3 {
+	font-size: 100%;
+}
+
+dt {
+	font-weight: bold;
+}
+
+div.multicol {
+	-moz-column-gap: 1em;
+	-webkit-column-gap: 1em;
+	-moz-column-count: 3;
+	-webkit-column-count: 3;
+}
+
+p.startli, p.startdd, p.starttd {
+	margin-top: 2px;
+}
+
+p.endli {
+	margin-bottom: 0px;
+}
+
+p.enddd {
+	margin-bottom: 4px;
+}
+
+p.endtd {
+	margin-bottom: 2px;
+}
+
+/* @end */
+
+caption {
+	font-weight: bold;
+}
+
+span.legend {
+        font-size: 70%;
+        text-align: center;
+}
+
+h3.version {
+        font-size: 90%;
+        text-align: center;
+}
+
+div.qindex, div.navtab{
+	background-color: #EBEFF6;
+	border: 1px solid #A3B4D7;
+	text-align: center;
+	margin: 2px;
+	padding: 2px;
+}
+
+div.qindex, div.navpath {
+	width: 100%;
+	line-height: 140%;
+}
+
+div.navtab {
+	margin-right: 15px;
+}
+
+/* @group Link Styling */
+
+a {
+	color: #3D578C;
+	font-weight: normal;
+	text-decoration: none;
+}
+
+.contents a:visited {
+	color: #4665A2;
+}
+
+a:hover {
+	text-decoration: underline;
+}
+
+a.qindex {
+	font-weight: bold;
+}
+
+a.qindexHL {
+	font-weight: bold;
+	background-color: #9CAFD4;
+	color: #ffffff;
+	border: 1px double #869DCA;
+}
+
+.contents a.qindexHL:visited {
+        color: #ffffff;
+}
+
+a.el {
+	font-weight: bold;
+}
+
+a.elRef {
+}
+
+a.code {
+	color: #4665A2;
+}
+
+a.codeRef {
+	color: #4665A2;
+}
+
+/* @end */
+
+dl.el {
+	margin-left: -1cm;
+}
+
+.fragment {
+	font-family: monospace, fixed;
+	font-size: 105%;
+}
+
+pre.fragment {
+	border: 1px solid #C4CFE5;
+	background-color: #FBFCFD;
+	padding: 4px 6px;
+	margin: 4px 8px 4px 2px;
+	overflow: auto;
+	word-wrap: break-word;
+	font-size:  9pt;
+	line-height: 125%;
+}
+
+div.ah {
+	background-color: black;
+	font-weight: bold;
+	color: #ffffff;
+	margin-bottom: 3px;
+	margin-top: 3px;
+	padding: 0.2em;
+	border: solid thin #333;
+	border-radius: 0.5em;
+	-webkit-border-radius: .5em;
+	-moz-border-radius: .5em;
+	-webkit-box-shadow: 2px 2px 3px #999;
+	-moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
+	background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444));
+	background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000);
+}
+
+div.groupHeader {
+	margin-left: 16px;
+	margin-top: 12px;
+	margin-bottom: 6px;
+	font-weight: bold;
+}
+
+div.groupText {
+	margin-left: 16px;
+	font-style: italic;
+}
+
+body {
+	background: white;
+	color: black;
+        margin: 0;
+}
+
+div.contents {
+	margin-top: 10px;
+	margin-left: 10px;
+	margin-right: 10px;
+}
+
+td.indexkey {
+	background-color: #EBEFF6;
+	font-weight: bold;
+	border: 1px solid #C4CFE5;
+	margin: 2px 0px 2px 0;
+	padding: 2px 10px;
+}
+
+td.indexvalue {
+	background-color: #EBEFF6;
+	border: 1px solid #C4CFE5;
+	padding: 2px 10px;
+	margin: 2px 0px;
+}
+
+tr.memlist {
+	background-color: #EEF1F7;
+}
+
+p.formulaDsp {
+	text-align: center;
+}
+
+img.formulaDsp {
+	
+}
+
+img.formulaInl {
+	vertical-align: middle;
+}
+
+div.center {
+	text-align: center;
+        margin-top: 0px;
+        margin-bottom: 0px;
+        padding: 0px;
+}
+
+div.center img {
+	border: 0px;
+}
+
+address.footer {
+	text-align: right;
+	padding-right: 12px;
+}
+
+img.footer {
+	border: 0px;
+	vertical-align: middle;
+}
+
+/* @group Code Colorization */
+
+span.keyword {
+	color: #008000
+}
+
+span.keywordtype {
+	color: #604020
+}
+
+span.keywordflow {
+	color: #e08000
+}
+
+span.comment {
+	color: #800000
+}
+
+span.preprocessor {
+	color: #806020
+}
+
+span.stringliteral {
+	color: #002080
+}
+
+span.charliteral {
+	color: #008080
+}
+
+span.vhdldigit { 
+	color: #ff00ff 
+}
+
+span.vhdlchar { 
+	color: #000000 
+}
+
+span.vhdlkeyword { 
+	color: #700070 
+}
+
+span.vhdllogic { 
+	color: #ff0000 
+}
+
+/* @end */
+
+/*
+.search {
+	color: #003399;
+	font-weight: bold;
+}
+
+form.search {
+	margin-bottom: 0px;
+	margin-top: 0px;
+}
+
+input.search {
+	font-size: 75%;
+	color: #000080;
+	font-weight: normal;
+	background-color: #e8eef2;
+}
+*/
+
+td.tiny {
+	font-size: 75%;
+}
+
+.dirtab {
+	padding: 4px;
+	border-collapse: collapse;
+	border: 1px solid #A3B4D7;
+}
+
+th.dirtab {
+	background: #EBEFF6;
+	font-weight: bold;
+}
+
+hr {
+	height: 0px;
+	border: none;
+	border-top: 1px solid #4A6AAA;
+}
+
+hr.footer {
+	height: 1px;
+}
+
+/* @group Member Descriptions */
+
+table.memberdecls {
+	border-spacing: 0px;
+	padding: 0px;
+}
+
+.mdescLeft, .mdescRight,
+.memItemLeft, .memItemRight,
+.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
+	background-color: #F9FAFC;
+	border: none;
+	margin: 4px;
+	padding: 1px 0 0 8px;
+}
+
+.mdescLeft, .mdescRight {
+	padding: 0px 8px 4px 8px;
+	color: #555;
+}
+
+.memItemLeft, .memItemRight, .memTemplParams {
+	border-top: 1px solid #C4CFE5;
+}
+
+.memItemLeft, .memTemplItemLeft {
+        white-space: nowrap;
+}
+
+.memTemplParams {
+	color: #4665A2;
+        white-space: nowrap;
+}
+
+/* @end */
+
+/* @group Member Details */
+
+/* Styles for detailed member documentation */
+
+.memtemplate {
+	font-size: 80%;
+	color: #4665A2;
+	font-weight: normal;
+	margin-left: 3px;
+}
+
+.memnav {
+	background-color: #EBEFF6;
+	border: 1px solid #A3B4D7;
+	text-align: center;
+	margin: 2px;
+	margin-right: 15px;
+	padding: 2px;
+}
+
+.memitem {
+	padding: 0;
+	margin-bottom: 10px;
+}
+
+.memname {
+        white-space: nowrap;
+        font-weight: bold;
+        margin-left: 6px;
+}
+
+.memproto {
+        border-top: 1px solid #A8B8D9;
+        border-left: 1px solid #A8B8D9;
+        border-right: 1px solid #A8B8D9;
+        padding: 6px 0px 6px 0px;
+        color: #253555;
+        font-weight: bold;
+        text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+        /* firefox specific markup */
+        -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+        -moz-border-radius-topright: 8px;
+        -moz-border-radius-topleft: 8px;
+        /* webkit specific markup */
+        -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+        -webkit-border-top-right-radius: 8px;
+        -webkit-border-top-left-radius: 8px;
+        background-image:url('nav_f.png');
+        background-repeat:repeat-x;
+        background-color: #E2E8F2;
+
+}
+
+.memdoc {
+        border-bottom: 1px solid #A8B8D9;      
+        border-left: 1px solid #A8B8D9;      
+        border-right: 1px solid #A8B8D9; 
+        padding: 2px 5px;
+        background-color: #FBFCFD;
+        border-top-width: 0;
+        /* firefox specific markup */
+        -moz-border-radius-bottomleft: 8px;
+        -moz-border-radius-bottomright: 8px;
+        -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+        background-image: -moz-linear-gradient(center top, #FFFFFF 0%, #FFFFFF 60%, #F7F8FB 95%, #EEF1F7);
+        /* webkit specific markup */
+        -webkit-border-bottom-left-radius: 8px;
+        -webkit-border-bottom-right-radius: 8px;
+        -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+        background-image: -webkit-gradient(linear,center top,center bottom,from(#FFFFFF), color-stop(0.6,#FFFFFF), color-stop(0.60,#FFFFFF), color-stop(0.95,#F7F8FB), to(#EEF1F7));
+}
+
+.paramkey {
+	text-align: right;
+}
+
+.paramtype {
+	white-space: nowrap;
+}
+
+.paramname {
+	color: #602020;
+	white-space: nowrap;
+}
+.paramname em {
+	font-style: normal;
+}
+
+/* @end */
+
+/* @group Directory (tree) */
+
+/* for the tree view */
+
+.ftvtree {
+	font-family: sans-serif;
+	margin: 0px;
+}
+
+/* these are for tree view when used as main index */
+
+.directory {
+	font-size: 9pt;
+	font-weight: bold;
+	margin: 5px;
+}
+
+.directory h3 {
+	margin: 0px;
+	margin-top: 1em;
+	font-size: 11pt;
+}
+
+/*
+The following two styles can be used to replace the root node title
+with an image of your choice.  Simply uncomment the next two styles,
+specify the name of your image and be sure to set 'height' to the
+proper pixel height of your image.
+*/
+
+/*
+.directory h3.swap {
+	height: 61px;
+	background-repeat: no-repeat;
+	background-image: url("yourimage.gif");
+}
+.directory h3.swap span {
+	display: none;
+}
+*/
+
+.directory > h3 {
+	margin-top: 0;
+}
+
+.directory p {
+	margin: 0px;
+	white-space: nowrap;
+}
+
+.directory div {
+	display: none;
+	margin: 0px;
+}
+
+.directory img {
+	vertical-align: -30%;
+}
+
+/* these are for tree view when not used as main index */
+
+.directory-alt {
+	font-size: 100%;
+	font-weight: bold;
+}
+
+.directory-alt h3 {
+	margin: 0px;
+	margin-top: 1em;
+	font-size: 11pt;
+}
+
+.directory-alt > h3 {
+	margin-top: 0;
+}
+
+.directory-alt p {
+	margin: 0px;
+	white-space: nowrap;
+}
+
+.directory-alt div {
+	display: none;
+	margin: 0px;
+}
+
+.directory-alt img {
+	vertical-align: -30%;
+}
+
+/* @end */
+
+div.dynheader {
+        margin-top: 8px;
+}
+
+address {
+	font-style: normal;
+	color: #2A3D61;
+}
+
+table.doxtable {
+	border-collapse:collapse;
+}
+
+table.doxtable td, table.doxtable th {
+	border: 1px solid #2D4068;
+	padding: 3px 7px 2px;
+}
+
+table.doxtable th {
+	background-color: #374F7F;
+	color: #FFFFFF;
+	font-size: 110%;
+	padding-bottom: 4px;
+	padding-top: 5px;
+	text-align:left;
+}
+
+.tabsearch {
+	top: 0px;
+	left: 10px;
+	height: 36px;
+	background-image: url('tab_b.png');
+	z-index: 101;
+	overflow: hidden;
+	font-size: 13px;
+}
+
+.navpath ul
+{
+	font-size: 11px;
+	background-image:url('tab_b.png');
+	background-repeat:repeat-x;
+	height:30px;
+	line-height:30px;
+	color:#8AA0CC;
+	border:solid 1px #C2CDE4;
+	overflow:hidden;
+	margin:0px;
+	padding:0px;
+}
+
+.navpath li
+{
+	list-style-type:none;
+	float:left;
+	padding-left:10px;
+	padding-right: 15px;
+	background-image:url('bc_s.png');
+	background-repeat:no-repeat;
+	background-position:right;
+	color:#364D7C;
+}
+
+.navpath a
+{
+	height:32px;
+	display:block;
+	text-decoration: none;
+	outline: none;
+}
+
+.navpath a:hover
+{
+	color:#6884BD;
+}
+
+div.summary
+{
+	float: right;
+	font-size: 8pt;
+	padding-right: 5px;
+	width: 50%;
+	text-align: right;
+}       
+
+div.summary a
+{
+	white-space: nowrap;
+}
+
+div.header
+{
+        background-image:url('nav_h.png');
+        background-repeat:repeat-x;
+	background-color: #F9FAFC;
+	margin:  0px;
+	border-bottom: 1px solid #C4CFE5;
+}
+
+div.headertitle
+{
+	padding: 5px 5px 5px 10px;
+}
+
diff --git a/docs/html/doxygen.png b/docs/html/doxygen.png
new file mode 100644
index 0000000..635ed52
Binary files /dev/null and b/docs/html/doxygen.png differ
diff --git a/docs/html/files.html b/docs/html/files.html
new file mode 100644
index 0000000..2687b4b
--- /dev/null
+++ b/docs/html/files.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: File Index</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li class="current"><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<h1>File List</h1>  </div>
+</div>
+<div class="contents">
+Here is a list of all files with brief descriptions:<table>
+  <tr><td class="indexkey"><a class="el" href="LICENSE.html">LICENSE</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey">examples/<a class="el" href="README.html">README</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey">Random123/<a class="el" href="aes_8h.html">aes.h</a> <a href="aes_8h_source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey">Random123/<a class="el" href="array_8h.html">array.h</a> <a href="array_8h_source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey">Random123/<a class="el" href="ars_8h.html">ars.h</a> <a href="ars_8h_source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey">Random123/<a class="el" href="gsl__microrng_8h.html">gsl_microrng.h</a> <a href="gsl__microrng_8h_source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey">Random123/<a class="el" href="MicroURNG_8hpp.html">MicroURNG.hpp</a> <a href="MicroURNG_8hpp_source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey">Random123/<a class="el" href="philox_8h.html">philox.h</a> <a href="philox_8h_source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey">Random123/<a class="el" href="ReinterpretCtr_8hpp.html">ReinterpretCtr.hpp</a> <a href="ReinterpretCtr_8hpp_source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey">Random123/<a class="el" href="threefry_8h.html">threefry.h</a> <a href="threefry_8h_source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey">Random123/conventional/<a class="el" href="Engine_8hpp.html">Engine.hpp</a> <a href="Engine_8hpp_source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey">Random123/conventional/<a class="el" href="gsl__cbrng_8h.html">gsl_cbrng.h</a> <a href="gsl__cbrng_8h_source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey">Random123/features/<a class="el" href="compilerfeatures_8h.html">compilerfeatures.h</a> <a href="compilerfeatures_8h_source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey">Random123/features/<a class="el" href="sse_8h.html">sse.h</a> <a href="sse_8h_source.html">[code]</a></td><td class="indexvalue"></td></tr>
+</table>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/functions.html b/docs/html/functions.html
new file mode 100644
index 0000000..cea1a1e
--- /dev/null
+++ b/docs/html/functions.html
@@ -0,0 +1,116 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li class="current"><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li class="current"><a href="functions.html"><span>All</span></a></li>
+      <li><a href="functions_func.html"><span>Functions</span></a></li>
+      <li><a href="functions_vars.html"><span>Variables</span></a></li>
+      <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+      <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="functions_rela.html"><span>Related Functions</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs3">
+    <ul class="tablist">
+      <li class="current"><a href="functions.html#index__"><span>_</span></a></li>
+      <li><a href="functions_0x61.html#index_a"><span>a</span></a></li>
+      <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
+      <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
+      <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
+      <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
+      <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
+      <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
+      <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
+      <li><a href="functions_0x6b.html#index_k"><span>k</span></a></li>
+      <li><a href="functions_0x6d.html#index_m"><span>m</span></a></li>
+      <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
+      <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
+      <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
+      <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
+      <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
+      <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+Here is a list of all class members with links to the classes they belong to:
+
+<h3><a class="anchor" id="index__"></a>- _ -</h3><ul>
+<li>_Max
+: <a class="el" href="classr123_1_1MicroURNG.html#a4faecd7ab54c7678ee66c413bb984bf0">r123::MicroURNG< CBRNG ></a>
+, <a class="el" href="structr123_1_1Engine.html#ae549f81e966b0414bcaf0f24b566ebd8">r123::Engine< CBRNG ></a>
+</li>
+<li>_Min
+: <a class="el" href="classr123_1_1MicroURNG.html#a1f2787f136a8a807d14eab8cb1ca8c14">r123::MicroURNG< CBRNG ></a>
+, <a class="el" href="structr123_1_1Engine.html#aa73e4d27847915f1438fd37b30777111">r123::Engine< CBRNG ></a>
+</li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/functions_0x61.html b/docs/html/functions_0x61.html
new file mode 100644
index 0000000..e4d887b
--- /dev/null
+++ b/docs/html/functions_0x61.html
@@ -0,0 +1,122 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li class="current"><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li class="current"><a href="functions.html"><span>All</span></a></li>
+      <li><a href="functions_func.html"><span>Functions</span></a></li>
+      <li><a href="functions_vars.html"><span>Variables</span></a></li>
+      <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+      <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="functions_rela.html"><span>Related Functions</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs3">
+    <ul class="tablist">
+      <li><a href="functions.html#index__"><span>_</span></a></li>
+      <li class="current"><a href="functions_0x61.html#index_a"><span>a</span></a></li>
+      <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
+      <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
+      <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
+      <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
+      <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
+      <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
+      <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
+      <li><a href="functions_0x6b.html#index_k"><span>k</span></a></li>
+      <li><a href="functions_0x6d.html#index_m"><span>m</span></a></li>
+      <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
+      <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
+      <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
+      <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
+      <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
+      <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+Here is a list of all class members with links to the classes they belong to:
+
+<h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
+<li>aesni1xm128i_key_t()
+: <a class="el" href="structaesni1xm128i__key__t.html#af1002e5b771616db8f12c793fc994c41">aesni1xm128i_key_t</a>
+</li>
+<li>at()
+: <a class="el" href="structr123array16x8.html#a088dbabe23cf873de370af292052905e">r123array16x8</a>
+, <a class="el" href="structr123array4x64.html#a893d3db3d274fc15ac32bc7cbab0e82a">r123array4x64</a>
+, <a class="el" href="structr123array2x64.html#a971ddfa7c395d161028e16c829179f3c">r123array2x64</a>
+, <a class="el" href="structr123array1x64.html#af6cf7706792eb1e44902dd94df388726">r123array1x64</a>
+, <a class="el" href="structr123array8x32.html#a79f982be8c435215a5e812e88e500216">r123array8x32</a>
+, <a class="el" href="structr123array4x32.html#abdb3253eb03291895f89885298e17169">r123array4x32</a>
+, <a class="el" href="structr123array2x32.html#ae985b8811e4e8849d5f28dae76231dca">r123array2x32</a>
+, <a class="el" href="structr123array1x32.html#a1d57048b43ee45e2a94ef372b4707783">r123array1x32</a>
+, <a class="el" href="structr123array1xm128i.html#a5e8a81ee3f7c3b022554c0023a686700">r123array1xm128i</a>
+</li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/functions_0x62.html b/docs/html/functions_0x62.html
new file mode 100644
index 0000000..4618e61
--- /dev/null
+++ b/docs/html/functions_0x62.html
@@ -0,0 +1,150 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li class="current"><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li class="current"><a href="functions.html"><span>All</span></a></li>
+      <li><a href="functions_func.html"><span>Functions</span></a></li>
+      <li><a href="functions_vars.html"><span>Variables</span></a></li>
+      <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+      <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="functions_rela.html"><span>Related Functions</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs3">
+    <ul class="tablist">
+      <li><a href="functions.html#index__"><span>_</span></a></li>
+      <li><a href="functions_0x61.html#index_a"><span>a</span></a></li>
+      <li class="current"><a href="functions_0x62.html#index_b"><span>b</span></a></li>
+      <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
+      <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
+      <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
+      <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
+      <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
+      <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
+      <li><a href="functions_0x6b.html#index_k"><span>k</span></a></li>
+      <li><a href="functions_0x6d.html#index_m"><span>m</span></a></li>
+      <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
+      <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
+      <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
+      <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
+      <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
+      <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+Here is a list of all class members with links to the classes they belong to:
+
+<h3><a class="anchor" id="index_b"></a>- b -</h3><ul>
+<li>b
+: <a class="el" href="structr123_1_1Engine.html#a5e430e850badcc4fd0f74de4a49a673b">r123::Engine< CBRNG ></a>
+</li>
+<li>back()
+: <a class="el" href="structr123array1x32.html#a3738a65a648899db793e81b53c252785">r123array1x32</a>
+, <a class="el" href="structr123array2x32.html#a3da7214b9946a3c8653312dcfa42a288">r123array2x32</a>
+, <a class="el" href="structr123array8x32.html#a1d4176e4ad6d70c98805e0c924d2df37">r123array8x32</a>
+, <a class="el" href="structr123array16x8.html#ae607d3b3d068aec88672241fc97948cb">r123array16x8</a>
+, <a class="el" href="structr123array8x32.html#a73f5b5012b1e6595f727ef88e60a53ac">r123array8x32</a>
+, <a class="el" href="structr123array1xm128i.html#a082b7b75374d69149ee03d1d228e2508">r123array1xm128i</a>
+, <a class="el" href="structr123array2x32.html#ae176c02299531373a0fff9a5f55226e5">r123array2x32</a>
+, <a class="el" href="structr123array1x64.html#ab85790fdee269501a80fe31179efc9f8">r123array1x64</a>
+, <a class="el" href="structr123array1x32.html#a32b89fb1c75e3cc26ff3b5acdd40af99">r123array1x32</a>
+, <a class="el" href="structr123array4x32.html#a70fd9b24cb3b126eb15c23049f786653">r123array4x32</a>
+, <a class="el" href="structr123array2x64.html#a9beb3e776cb4f3cbee6846518749cb03">r123array2x64</a>
+, <a class="el" href="structr123array4x32.html#a4e1cba8583b2fac8cc3bf854956191c4">r123array4x32</a>
+, <a class="el" href="structr123array4x64.html#abb40868277e8a943a0b5464985baceb5">r123array4x64</a>
+</li>
+<li>bctype
+: <a class="el" href="structr123_1_1ReinterpretCtr.html#ae0accaee618b5eb28a24acd516b3a4c6">r123::ReinterpretCtr< ToType, CBRNG ></a>
+</li>
+<li>begin()
+: <a class="el" href="structr123array1x32.html#a86b7d754ff8dd69e0565edfdbd060cb4">r123array1x32</a>
+, <a class="el" href="structr123array16x8.html#a43182e95cb41660de5511bb5a3968cb8">r123array16x8</a>
+, <a class="el" href="structr123array1xm128i.html#ae9102a4387a7b2013f5098c6c7c14e74">r123array1xm128i</a>
+, <a class="el" href="structr123array4x64.html#ab78c67c429da6405f9d1ed5054635961">r123array4x64</a>
+, <a class="el" href="structr123array2x32.html#aa52b394a0c44b755e5c0d0409dc2c4ea">r123array2x32</a>
+, <a class="el" href="structr123array4x32.html#a96a9c7e3ece3d2b128cf7f264af6ea3c">r123array4x32</a>
+, <a class="el" href="structr123array8x32.html#a7ae561c4d544e31f7bd2f256cb32f878">r123array8x32</a>
+, <a class="el" href="structr123array2x64.html#a0fcc60a49efd917a3b630cf53c526311">r123array2x64</a>
+, <a class="el" href="structr123array1x64.html#a0fddc6603fe2eb4547aeb57498ffe3c2">r123array1x64</a>
+, <a class="el" href="structr123array4x64.html#acd133812dbe01892199683e003921b8b">r123array4x64</a>
+, <a class="el" href="structr123array1xm128i.html#a275c9837db101efb234c36cff3e7562f">r123array1xm128i</a>
+, <a class="el" href="structr123array2x32.html#a96730b28149000a3ea4c6b0f05e1777b">r123array2x32</a>
+, <a class="el" href="structr123array4x32.html#a830254ee0db7bf12facf67f23428d2d9">r123array4x32</a>
+, <a class="el" href="structr123array1x64.html#af9150347761c6df32673bbd2411e67d0">r123array1x64</a>
+, <a class="el" href="structr123array2x64.html#a8cf4fadef6bdc6d438db173bc1d31165">r123array2x64</a>
+, <a class="el" href="structr123array1x32.html#a19089b8de6c637803408512407a4da91">r123array1x32</a>
+</li>
+<li>BITS
+: <a class="el" href="classr123_1_1MicroURNG.html#ac55cddda8fe0808f922f39beee587b27">r123::MicroURNG< CBRNG ></a>
+</li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/functions_0x63.html b/docs/html/functions_0x63.html
new file mode 100644
index 0000000..9c986bb
--- /dev/null
+++ b/docs/html/functions_0x63.html
@@ -0,0 +1,223 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li class="current"><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li class="current"><a href="functions.html"><span>All</span></a></li>
+      <li><a href="functions_func.html"><span>Functions</span></a></li>
+      <li><a href="functions_vars.html"><span>Variables</span></a></li>
+      <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+      <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="functions_rela.html"><span>Related Functions</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs3">
+    <ul class="tablist">
+      <li><a href="functions.html#index__"><span>_</span></a></li>
+      <li><a href="functions_0x61.html#index_a"><span>a</span></a></li>
+      <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
+      <li class="current"><a href="functions_0x63.html#index_c"><span>c</span></a></li>
+      <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
+      <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
+      <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
+      <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
+      <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
+      <li><a href="functions_0x6b.html#index_k"><span>k</span></a></li>
+      <li><a href="functions_0x6d.html#index_m"><span>m</span></a></li>
+      <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
+      <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
+      <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
+      <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
+      <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
+      <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+Here is a list of all class members with links to the classes they belong to:
+
+<h3><a class="anchor" id="index_c"></a>- c -</h3><ul>
+<li>c
+: <a class="el" href="structr123_1_1Engine.html#afb056ed93053f4175aabc9f4e5dd7b8d">r123::Engine< CBRNG ></a>
+</li>
+<li>cbegin()
+: <a class="el" href="structr123array1x32.html#a4b0a02537590babd835dd16405775efe">r123array1x32</a>
+, <a class="el" href="structr123array4x32.html#a4881e99f7b0ff88e2a3082b9e2464bf5">r123array4x32</a>
+, <a class="el" href="structr123array4x64.html#af716d2b14d1243870e8544ea2a3cece6">r123array4x64</a>
+, <a class="el" href="structr123array16x8.html#a80520b3d7040a8d6ec7068c8a143ba6f">r123array16x8</a>
+, <a class="el" href="structr123array8x32.html#a06c19ba6155e9c98892f5b98fb482c21">r123array8x32</a>
+, <a class="el" href="structr123array1xm128i.html#a335bab18a8bc904e34de0b3d9d1ce596">r123array1xm128i</a>
+, <a class="el" href="structr123array2x32.html#a9687a1e6cdb6b6c9a1ffd8f3c7d2ce45">r123array2x32</a>
+, <a class="el" href="structr123array1x64.html#a33d1c19a63dec48f63f7c30c758fca0c">r123array1x64</a>
+, <a class="el" href="structr123array2x64.html#ad1ccbda4186dbb8c0a673db1ec0957c0">r123array2x64</a>
+</li>
+<li>cbrng_type
+: <a class="el" href="classr123_1_1MicroURNG.html#ab0b3a77c9408dbcb2f9d6b5c67e9c3f7">r123::MicroURNG< CBRNG ></a>
+, <a class="el" href="structr123_1_1Engine.html#a45ee0086cf8cd6d10febb76dc88f8b22">r123::Engine< CBRNG ></a>
+</li>
+<li>cend()
+: <a class="el" href="structr123array8x32.html#a0e1dfc305279a3439789dbdda8bfb6ae">r123array8x32</a>
+, <a class="el" href="structr123array1x64.html#aa959a7054efa0d53f83f2d712d8d9049">r123array1x64</a>
+, <a class="el" href="structr123array2x64.html#ac80c7ce6fe5bd9ca8baf03db1e67a7e9">r123array2x64</a>
+, <a class="el" href="structr123array4x64.html#af970ab87ce987c91097316bc0a0836ef">r123array4x64</a>
+, <a class="el" href="structr123array16x8.html#ad7919a7f772fda7d3fe3b476ac1e058f">r123array16x8</a>
+, <a class="el" href="structr123array1xm128i.html#aa05003cae74984b777610702d27d66d2">r123array1xm128i</a>
+, <a class="el" href="structr123array1x32.html#aa0f83d3e29c452d23c3660c98e3bd0e9">r123array1x32</a>
+, <a class="el" href="structr123array2x32.html#a9bb4382830c6feb49573b82bb9a18efc">r123array2x32</a>
+, <a class="el" href="structr123array4x32.html#a0045f9134801ed79d31f65c7d224d72c">r123array4x32</a>
+</li>
+<li>const_iterator
+: <a class="el" href="structr123array1x32.html#ac7f82e8848759ec5b0026dce8830274e">r123array1x32</a>
+, <a class="el" href="structr123array2x32.html#a7963141a4af4c4aa74708909312a8644">r123array2x32</a>
+, <a class="el" href="structr123array4x32.html#a1078ba2cd13bb2a4f83e1b089c816ba7">r123array4x32</a>
+, <a class="el" href="structr123array8x32.html#aa026dfdf1e2741c96db4343ceffd3c9f">r123array8x32</a>
+, <a class="el" href="structr123array1x64.html#a28ff01c0fefda1d81112ec9812156164">r123array1x64</a>
+, <a class="el" href="structr123array2x64.html#ae4f249e82506274b19e6077c3d3f03af">r123array2x64</a>
+, <a class="el" href="structr123array4x64.html#a2aa5637bebf5c9c753edbce62e889d77">r123array4x64</a>
+, <a class="el" href="structr123array16x8.html#adda842a447360852f2ffa28fb97eb40c">r123array16x8</a>
+, <a class="el" href="structr123array1xm128i.html#af6be8b009459737fa25d9d2ac7c4e6aa">r123array1xm128i</a>
+</li>
+<li>const_pointer
+: <a class="el" href="structr123array2x32.html#accf098ed49f9d84cfa3831a9fe183885">r123array2x32</a>
+, <a class="el" href="structr123array4x32.html#a28d13183d1bfcc05854dc39bebbcdf51">r123array4x32</a>
+, <a class="el" href="structr123array8x32.html#a621f6293254c6300b1d1b9835b7f30ba">r123array8x32</a>
+, <a class="el" href="structr123array1x64.html#a2b23f2aa3edf21084ece97a03367bff5">r123array1x64</a>
+, <a class="el" href="structr123array2x64.html#a3a13a452ca15f62f8ddcd8b7de9efa08">r123array2x64</a>
+, <a class="el" href="structr123array4x64.html#aa268882d3b4fb43ec9d82baf22d58cc5">r123array4x64</a>
+, <a class="el" href="structr123array16x8.html#adbe5a6feb583ce6a682496e14cec9cca">r123array16x8</a>
+, <a class="el" href="structr123array1xm128i.html#acc3f6ecf7e6a6bc98c3681c80120ed61">r123array1xm128i</a>
+, <a class="el" href="structr123array1x32.html#ab4a82a1e5300814272528a05587d555b">r123array1x32</a>
+</li>
+<li>const_reference
+: <a class="el" href="structr123array1x32.html#adfa6614a8b20cd30c192458c8c2874da">r123array1x32</a>
+, <a class="el" href="structr123array2x32.html#a9d71cce3d7ccea7f48da94cf023e1486">r123array2x32</a>
+, <a class="el" href="structr123array4x32.html#a09d7e0d7b1572fc5fe2be119870a39bc">r123array4x32</a>
+, <a class="el" href="structr123array8x32.html#a2e7eda7e8940b37e17aef9b0efec3685">r123array8x32</a>
+, <a class="el" href="structr123array1x64.html#af75ba9dbfe38e0a6c143f446b7e4b995">r123array1x64</a>
+, <a class="el" href="structr123array2x64.html#a5d80c6b28d869a5422d99541ee1fb93f">r123array2x64</a>
+, <a class="el" href="structr123array4x64.html#ac2f21a458bf9008b831c553c5ae77508">r123array4x64</a>
+, <a class="el" href="structr123array16x8.html#a7252c320f8b0fb4d66a17acd9e94b4ad">r123array16x8</a>
+, <a class="el" href="structr123array1xm128i.html#a84d0123f4376cb6ab77cf817a0cea9cb">r123array1xm128i</a>
+</li>
+<li>const_reverse_iterator
+: <a class="el" href="structr123array4x64.html#a8405a219a9c81f8f298298cffbfd46ac">r123array4x64</a>
+, <a class="el" href="structr123array1x32.html#a2642ed91a9c6c91ace3b91add2a4feae">r123array1x32</a>
+, <a class="el" href="structr123array2x32.html#af298f85ad6bda860232465c5abc33618">r123array2x32</a>
+, <a class="el" href="structr123array4x32.html#a2926ff865e9dcbc3c20e6639aa8d0b1b">r123array4x32</a>
+, <a class="el" href="structr123array8x32.html#a207923147148d154b1659e257db44033">r123array8x32</a>
+, <a class="el" href="structr123array1x64.html#a61535adf62580285c3182a713ea0f3b1">r123array1x64</a>
+, <a class="el" href="structr123array2x64.html#aa37f04aef8a808c76715b3b2d49c3c30">r123array2x64</a>
+, <a class="el" href="structr123array16x8.html#a7a774fcb52f452f832e11e13dbde6dea">r123array16x8</a>
+, <a class="el" href="structr123array1xm128i.html#a6bf98ce6373b157b87c6fd4a7006ed68">r123array1xm128i</a>
+</li>
+<li>counter()
+: <a class="el" href="classr123_1_1MicroURNG.html#a30f52334b7cfcbe6d86870496ca57ea6">r123::MicroURNG< CBRNG ></a>
+</li>
+<li>crbegin()
+: <a class="el" href="structr123array2x64.html#a198ff47db0778d88db4fabe5f7721564">r123array2x64</a>
+, <a class="el" href="structr123array4x64.html#a7712a006a2b567321a6ac9e84bb267d8">r123array4x64</a>
+, <a class="el" href="structr123array16x8.html#a2ecc3c23f3ae3939a386b334f0556d73">r123array16x8</a>
+, <a class="el" href="structr123array8x32.html#a4ad5f793478a9658c52dc085b6c504ae">r123array8x32</a>
+, <a class="el" href="structr123array4x32.html#ad65e3e63740dc2301442718b3b8aa440">r123array4x32</a>
+, <a class="el" href="structr123array1x32.html#abe59890575233ef259a69d38bea4b5d9">r123array1x32</a>
+, <a class="el" href="structr123array1xm128i.html#a673c6cd3131269febe9a985dc76a2e08">r123array1xm128i</a>
+, <a class="el" href="structr123array1x64.html#adac6c38fef501a997b39229f54a6459c">r123array1x64</a>
+, <a class="el" href="structr123array2x32.html#a09b34692bd41a710bf75e19af2353afb">r123array2x32</a>
+</li>
+<li>crend()
+: <a class="el" href="structr123array1x32.html#a7f0211b995c536c540c6b175d9433c74">r123array1x32</a>
+, <a class="el" href="structr123array1x64.html#a250e375c11846dc2635c7690f283cc20">r123array1x64</a>
+, <a class="el" href="structr123array1xm128i.html#aad72d00c81c8f6b9e8fb6b6be98056c6">r123array1xm128i</a>
+, <a class="el" href="structr123array8x32.html#ace0b6344aa8f0b9812a2610b6949a6b7">r123array8x32</a>
+, <a class="el" href="structr123array2x32.html#a458da2536084746b5f3face73c9f962d">r123array2x32</a>
+, <a class="el" href="structr123array16x8.html#a2a98e77e851e130a98d44a14ce673ffd">r123array16x8</a>
+, <a class="el" href="structr123array4x32.html#a13322be3844d39f9de76d263fa8d1f75">r123array4x32</a>
+, <a class="el" href="structr123array2x64.html#a5bddb882c7c9a493c382d3ce0d6d6079">r123array2x64</a>
+, <a class="el" href="structr123array4x64.html#a907eb18b7392479a8ad6b2ddfaaecbd2">r123array4x64</a>
+</li>
+<li>ctr_type
+: <a class="el" href="structr123_1_1Threefry2x32__R.html#a60b1b58aeaa05d467607dc570aed1357">r123::Threefry2x32_R< R ></a>
+, <a class="el" href="structr123_1_1ARS1xm128i__R.html#a13a62c94f63054828c6960979f42a268">r123::ARS1xm128i_R< ROUNDS ></a>
+, <a class="el" href="structr123_1_1AESNI1xm128i.html#aaa136c21db9806859fa7cd4e2dbaaaa6">r123::AESNI1xm128i</a>
+, <a class="el" href="structr123_1_1Threefry4x32__R.html#ae89dabc0060c62e0d9e5c4ac34a8550f">r123::Threefry4x32_R< R ></a>
+, <a class="el" href="structr123_1_1ReinterpretCtr.html#a26cf9e933b35411c37070c948085ba02">r123::ReinterpretCtr< ToType, CBRNG ></a>
+, <a class="el" href="structr123_1_1Threefry4x64__R.html#a6c93334cb8a8b53ef01cc79b5296af0d">r123::Threefry4x64_R< R ></a>
+, <a class="el" href="structr123_1_1ARS4x32__R.html#a9951dbcb50de849ded7177109b344045">r123::ARS4x32_R< ROUNDS ></a>
+, <a class="el" href="structr123_1_1Philox4x64__R.html#afd5f78b34ae7c478ebe16eb601f7b202">r123::Philox4x64_R< ROUNDS ></a>
+, <a class="el" href="structr123_1_1Engine.html#a96e0f5f039d5efd6aae77b63bafaad90">r123::Engine< CBRNG ></a>
+, <a class="el" href="structr123_1_1Philox2x64__R.html#a8e615e3f4680b9e1b986ea071fd173fc">r123::Philox2x64_R< ROUNDS ></a>
+, <a class="el" href="structr123_1_1Philox2x32__R.html#af00c84c482900fbeca6bd2043395e599">r123::Philox2x32_R< ROUNDS ></a>
+, <a class="el" href="structr123_1_1Philox4x32__R.html#a23adf0320faed0fe4d12ebececdba50a">r123::Philox4x32_R< ROUNDS ></a>
+, <a class="el" href="structr123_1_1Threefry2x64__R.html#a6b151f30bc5544671596b9df91e896d8">r123::Threefry2x64_R< R ></a>
+, <a class="el" href="structr123_1_1AESNI4x32.html#ab8a1f8a822eecfc9e587bad76792df32">r123::AESNI4x32</a>
+, <a class="el" href="classr123_1_1MicroURNG.html#a5aba882fd21e4d8f1a445f546e1e4476">r123::MicroURNG< CBRNG ></a>
+</li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/functions_0x64.html b/docs/html/functions_0x64.html
new file mode 100644
index 0000000..a73dad8
--- /dev/null
+++ b/docs/html/functions_0x64.html
@@ -0,0 +1,140 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li class="current"><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li class="current"><a href="functions.html"><span>All</span></a></li>
+      <li><a href="functions_func.html"><span>Functions</span></a></li>
+      <li><a href="functions_vars.html"><span>Variables</span></a></li>
+      <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+      <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="functions_rela.html"><span>Related Functions</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs3">
+    <ul class="tablist">
+      <li><a href="functions.html#index__"><span>_</span></a></li>
+      <li><a href="functions_0x61.html#index_a"><span>a</span></a></li>
+      <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
+      <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
+      <li class="current"><a href="functions_0x64.html#index_d"><span>d</span></a></li>
+      <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
+      <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
+      <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
+      <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
+      <li><a href="functions_0x6b.html#index_k"><span>k</span></a></li>
+      <li><a href="functions_0x6d.html#index_m"><span>m</span></a></li>
+      <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
+      <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
+      <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
+      <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
+      <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
+      <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+Here is a list of all class members with links to the classes they belong to:
+
+<h3><a class="anchor" id="index_d"></a>- d -</h3><ul>
+<li>data()
+: <a class="el" href="structr123array1x32.html#a71529eccd6d52d7c396d58fd71214d0b">r123array1x32</a>
+, <a class="el" href="structr123array2x32.html#a15d5bce0ea3596ad5f7b5aa7432a33df">r123array2x32</a>
+, <a class="el" href="structr123array8x32.html#a0e2eb8cfaf36664411f19a6828339553">r123array8x32</a>
+, <a class="el" href="structr123array16x8.html#aced4f7455fcc853a4e947b9bf892c45e">r123array16x8</a>
+, <a class="el" href="structr123array1xm128i.html#acb25bc645e95f975ca6cbcb692add4b4">r123array1xm128i</a>
+, <a class="el" href="structr123array1x64.html#a2ecd5718a0fd863dd7a3eb724e07a540">r123array1x64</a>
+, <a class="el" href="structr123array1xm128i.html#ac66f2efebe9e32433b25f96ea3cf34fe">r123array1xm128i</a>
+, <a class="el" href="structr123array4x32.html#a72ee678cce1fa539f44480eb269a01f9">r123array4x32</a>
+, <a class="el" href="structr123array1x64.html#a02cd843e927803bd09f00b1a5541c72c">r123array1x64</a>
+, <a class="el" href="structr123array2x64.html#a9a6eb23f15f9ee3a55f39b951798a739">r123array2x64</a>
+, <a class="el" href="structr123array2x32.html#a76f2b3cd04d0502121b3c7894663e178">r123array2x32</a>
+, <a class="el" href="structr123array4x32.html#a20dd9fc18f9db8fe8e8eb08311398d22">r123array4x32</a>
+, <a class="el" href="structr123array2x64.html#a9cdb592780378bdcc8a560e31e11f084">r123array2x64</a>
+, <a class="el" href="structr123array16x8.html#aac0eda610fbd60cdaae5d1e2aa4eb03f">r123array16x8</a>
+, <a class="el" href="structr123array4x64.html#a31591d0bca18339d42c3a182a30457a0">r123array4x64</a>
+, <a class="el" href="structr123array8x32.html#a78448bbbef69b3383eec4d78a814b4b2">r123array8x32</a>
+</li>
+<li>difference_type
+: <a class="el" href="structr123array4x32.html#a3c690c039797cafe4718c03377937fb7">r123array4x32</a>
+, <a class="el" href="structr123array8x32.html#af8029821cb8a7b5a3500adb30d4f2326">r123array8x32</a>
+, <a class="el" href="structr123array2x64.html#a4227cd6be973fdb0d72398d0b5604da8">r123array2x64</a>
+, <a class="el" href="structr123array16x8.html#aaae0b6c18de6ce92ea55bf1b9bdbdf69">r123array16x8</a>
+, <a class="el" href="structr123array1xm128i.html#a319811ed6105c3050135d8ec3ba36f7a">r123array1xm128i</a>
+, <a class="el" href="structr123array1x32.html#a1084c78861e725e58c14c67af242952f">r123array1x32</a>
+, <a class="el" href="structr123array2x32.html#aa3dfe31d2483fb629a9e3ac304b24d07">r123array2x32</a>
+, <a class="el" href="structr123array1x64.html#a2abaa7dd6823b724ec6038b504c77011">r123array1x64</a>
+, <a class="el" href="structr123array4x64.html#a3b1c7395f17992d8760fe93d3930db12">r123array4x64</a>
+</li>
+<li>discard()
+: <a class="el" href="structr123_1_1Engine.html#a82a56c2c02b146dceb68ef3fd0a969fb">r123::Engine< CBRNG ></a>
+</li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/functions_0x65.html b/docs/html/functions_0x65.html
new file mode 100644
index 0000000..d52bb1b
--- /dev/null
+++ b/docs/html/functions_0x65.html
@@ -0,0 +1,141 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li class="current"><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li class="current"><a href="functions.html"><span>All</span></a></li>
+      <li><a href="functions_func.html"><span>Functions</span></a></li>
+      <li><a href="functions_vars.html"><span>Variables</span></a></li>
+      <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+      <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="functions_rela.html"><span>Related Functions</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs3">
+    <ul class="tablist">
+      <li><a href="functions.html#index__"><span>_</span></a></li>
+      <li><a href="functions_0x61.html#index_a"><span>a</span></a></li>
+      <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
+      <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
+      <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
+      <li class="current"><a href="functions_0x65.html#index_e"><span>e</span></a></li>
+      <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
+      <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
+      <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
+      <li><a href="functions_0x6b.html#index_k"><span>k</span></a></li>
+      <li><a href="functions_0x6d.html#index_m"><span>m</span></a></li>
+      <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
+      <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
+      <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
+      <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
+      <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
+      <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+Here is a list of all class members with links to the classes they belong to:
+
+<h3><a class="anchor" id="index_e"></a>- e -</h3><ul>
+<li>elem
+: <a class="el" href="structr123_1_1Engine.html#a7b40128e9dc7427cd13d27477647b319">r123::Engine< CBRNG ></a>
+</li>
+<li>elem_type
+: <a class="el" href="structr123_1_1Engine.html#a8fb9eb1ab76ad9b5374a47cf84ecd306">r123::Engine< CBRNG ></a>
+</li>
+<li>empty()
+: <a class="el" href="structr123array2x32.html#acc67c9fedcddd77fdb2727c088eaab9d">r123array2x32</a>
+, <a class="el" href="structr123array2x64.html#a60ed2f5af6357930b50a8de8f294f5c2">r123array2x64</a>
+, <a class="el" href="structr123array4x64.html#a51e4ded187a3f1ebadd6b915da039c3f">r123array4x64</a>
+, <a class="el" href="structr123array4x32.html#a4bc944eee354be2b258c0991d3cc61e1">r123array4x32</a>
+, <a class="el" href="structr123array16x8.html#a5f07441771ec90cd05a2c26fb64e575e">r123array16x8</a>
+, <a class="el" href="structr123array1xm128i.html#aa3e59f1626f2cadab5bc66e415ff0c72">r123array1xm128i</a>
+, <a class="el" href="structr123array1x32.html#ae791cf5ce80a35610c3b4d52ea533651">r123array1x32</a>
+, <a class="el" href="structr123array8x32.html#af2276e84924345efab98214be1691c83">r123array8x32</a>
+, <a class="el" href="structr123array1x64.html#af8636ea61389dcf15e94a5da70bd6bc0">r123array1x64</a>
+</li>
+<li>end()
+: <a class="el" href="structr123array16x8.html#aa0d2b0c70133dde0535b0a5e12283626">r123array16x8</a>
+, <a class="el" href="structr123array4x64.html#a9fed923c39000c81f7f6b608d88953f9">r123array4x64</a>
+, <a class="el" href="structr123array2x64.html#af16f99514770cb88a57e36b1b849e80d">r123array2x64</a>
+, <a class="el" href="structr123array4x32.html#a83dd3d17e17bb6a93b7cd544b0e9a403">r123array4x32</a>
+, <a class="el" href="structr123array8x32.html#a40c40a7a86150ec0e9d29739e0e649c3">r123array8x32</a>
+, <a class="el" href="structr123array1x64.html#a18a5fa64dbe73dc4f9fd0b6c45fe283f">r123array1x64</a>
+, <a class="el" href="structr123array2x64.html#a24679f6a101d9d25b339106a771c4e68">r123array2x64</a>
+, <a class="el" href="structr123array2x32.html#ad64dc05d5114c74d104bca45f21992fd">r123array2x32</a>
+, <a class="el" href="structr123array1x32.html#a5bda32a4f4e8e783744ed7f183dde0b2">r123array1x32</a>
+, <a class="el" href="structr123array16x8.html#aee42dddf2a59858114a31d760f2c1227">r123array16x8</a>
+, <a class="el" href="structr123array1xm128i.html#ae8ddb01064f8cdfbb7314d2f1fbd0dfd">r123array1xm128i</a>
+</li>
+<li>Engine()
+: <a class="el" href="structr123_1_1Engine.html#ac5676bbe189b0cdc1bef0dd812262ccd">r123::Engine< CBRNG ></a>
+</li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/functions_0x66.html b/docs/html/functions_0x66.html
new file mode 100644
index 0000000..5e6d1d2
--- /dev/null
+++ b/docs/html/functions_0x66.html
@@ -0,0 +1,136 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li class="current"><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li class="current"><a href="functions.html"><span>All</span></a></li>
+      <li><a href="functions_func.html"><span>Functions</span></a></li>
+      <li><a href="functions_vars.html"><span>Variables</span></a></li>
+      <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+      <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="functions_rela.html"><span>Related Functions</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs3">
+    <ul class="tablist">
+      <li><a href="functions.html#index__"><span>_</span></a></li>
+      <li><a href="functions_0x61.html#index_a"><span>a</span></a></li>
+      <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
+      <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
+      <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
+      <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
+      <li class="current"><a href="functions_0x66.html#index_f"><span>f</span></a></li>
+      <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
+      <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
+      <li><a href="functions_0x6b.html#index_k"><span>k</span></a></li>
+      <li><a href="functions_0x6d.html#index_m"><span>m</span></a></li>
+      <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
+      <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
+      <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
+      <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
+      <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
+      <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+Here is a list of all class members with links to the classes they belong to:
+
+<h3><a class="anchor" id="index_f"></a>- f -</h3><ul>
+<li>fill()
+: <a class="el" href="structr123array1x32.html#a973dbecc59b1d5f5a95bda92d25e5e73">r123array1x32</a>
+, <a class="el" href="structr123array2x32.html#af7ea9ed8a064e9cab59ee97885bb459e">r123array2x32</a>
+, <a class="el" href="structr123array8x32.html#a86481aecfb276687e9389cb6c43e1e8c">r123array8x32</a>
+, <a class="el" href="structr123array16x8.html#a883d42092ab4bae2eac132706ed06103">r123array16x8</a>
+, <a class="el" href="structr123array1xm128i.html#a7eba15dc035724245f70b4a3a98c6a52">r123array1xm128i</a>
+, <a class="el" href="structr123array1x64.html#ac9a372e0980632a4db29bb243b672039">r123array1x64</a>
+, <a class="el" href="structr123array4x32.html#ae362d7908c2ecc308f6fd4e085ace980">r123array4x32</a>
+, <a class="el" href="structr123array2x64.html#a30d20bbf203dbd0b592c6cb58cb6dcdb">r123array2x64</a>
+, <a class="el" href="structr123array4x64.html#a6580c77b7d68c0a76b5bef33e59ac662">r123array4x64</a>
+</li>
+<li>fix_invariant()
+: <a class="el" href="structr123_1_1Engine.html#aa7ad87d7238a0f820ee37640071dee7d">r123::Engine< CBRNG ></a>
+</li>
+<li>front()
+: <a class="el" href="structr123array1x64.html#a7d205216932e36303f62b38d233247d5">r123array1x64</a>
+, <a class="el" href="structr123array8x32.html#aee2127f4a99f86b3fc7a9059e7d84e76">r123array8x32</a>
+, <a class="el" href="structr123array4x32.html#ab3434550aea3d2e04579cb255b0b4e9e">r123array4x32</a>
+, <a class="el" href="structr123array2x32.html#a933676c34296b74eeea8a56a3c904a2c">r123array2x32</a>
+, <a class="el" href="structr123array1x32.html#af94d0df621b1de0b6a3ed904c276eb84">r123array1x32</a>
+, <a class="el" href="structr123array16x8.html#ad293e6494e131ff96941e963d9208586">r123array16x8</a>
+, <a class="el" href="structr123array1xm128i.html#a7efd9b7ccf35c3730fbdafb147e11660">r123array1xm128i</a>
+, <a class="el" href="structr123array2x64.html#a21cf5457f945f5c00b16ce4a73797c1b">r123array2x64</a>
+, <a class="el" href="structr123array4x64.html#a975ecaf4c5332fc400dfc8d6d60d9035">r123array4x64</a>
+, <a class="el" href="structr123array16x8.html#a85528130b6941b3f7b57265c201345c2">r123array16x8</a>
+, <a class="el" href="structr123array2x64.html#a95b79f70de75c8346dbae7c5f933d076">r123array2x64</a>
+, <a class="el" href="structr123array1x64.html#a7c0a3159492b3405a8019ce52cdf2c69">r123array1x64</a>
+</li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/functions_0x67.html b/docs/html/functions_0x67.html
new file mode 100644
index 0000000..f7be16e
--- /dev/null
+++ b/docs/html/functions_0x67.html
@@ -0,0 +1,114 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li class="current"><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li class="current"><a href="functions.html"><span>All</span></a></li>
+      <li><a href="functions_func.html"><span>Functions</span></a></li>
+      <li><a href="functions_vars.html"><span>Variables</span></a></li>
+      <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+      <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="functions_rela.html"><span>Related Functions</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs3">
+    <ul class="tablist">
+      <li><a href="functions.html#index__"><span>_</span></a></li>
+      <li><a href="functions_0x61.html#index_a"><span>a</span></a></li>
+      <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
+      <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
+      <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
+      <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
+      <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
+      <li class="current"><a href="functions_0x67.html#index_g"><span>g</span></a></li>
+      <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
+      <li><a href="functions_0x6b.html#index_k"><span>k</span></a></li>
+      <li><a href="functions_0x6d.html#index_m"><span>m</span></a></li>
+      <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
+      <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
+      <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
+      <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
+      <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
+      <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+Here is a list of all class members with links to the classes they belong to:
+
+<h3><a class="anchor" id="index_g"></a>- g -</h3><ul>
+<li>getcounter()
+: <a class="el" href="structr123_1_1Engine.html#a621df886f2a21ffb22e63d9094389173">r123::Engine< CBRNG ></a>
+</li>
+<li>getseed()
+: <a class="el" href="structr123_1_1Engine.html#aa7812a494fdb677c2e325db0acfe924a">r123::Engine< CBRNG ></a>
+</li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/functions_0x69.html b/docs/html/functions_0x69.html
new file mode 100644
index 0000000..31c4c64
--- /dev/null
+++ b/docs/html/functions_0x69.html
@@ -0,0 +1,141 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li class="current"><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li class="current"><a href="functions.html"><span>All</span></a></li>
+      <li><a href="functions_func.html"><span>Functions</span></a></li>
+      <li><a href="functions_vars.html"><span>Variables</span></a></li>
+      <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+      <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="functions_rela.html"><span>Related Functions</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs3">
+    <ul class="tablist">
+      <li><a href="functions.html#index__"><span>_</span></a></li>
+      <li><a href="functions_0x61.html#index_a"><span>a</span></a></li>
+      <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
+      <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
+      <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
+      <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
+      <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
+      <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
+      <li class="current"><a href="functions_0x69.html#index_i"><span>i</span></a></li>
+      <li><a href="functions_0x6b.html#index_k"><span>k</span></a></li>
+      <li><a href="functions_0x6d.html#index_m"><span>m</span></a></li>
+      <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
+      <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
+      <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
+      <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
+      <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
+      <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+Here is a list of all class members with links to the classes they belong to:
+
+<h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
+<li>incr()
+: <a class="el" href="structr123array1x32.html#aae5fbc153a37b06ea466f2283551622f">r123array1x32</a>
+, <a class="el" href="structr123array2x32.html#a7b295f3a299c8cf24a75ab7f9edfe46f">r123array2x32</a>
+, <a class="el" href="structr123array8x32.html#a92ded324d4b7e2602766fa0c71fa5985">r123array8x32</a>
+, <a class="el" href="structr123array16x8.html#aaf2d677b347b7c7bf362a2b318f46e3c">r123array16x8</a>
+, <a class="el" href="structr123array1xm128i.html#a62ee236dafcbfb81ef43d7aa82a66b47">r123array1xm128i</a>
+, <a class="el" href="structr123array1x64.html#ad44244e95f8937e0874dec9083071a85">r123array1x64</a>
+, <a class="el" href="structr123array4x32.html#a36515eb50711e36a88f1390bbd4e0e05">r123array4x32</a>
+, <a class="el" href="structr123array2x64.html#ac33e6336c8aee10e38259510ef76e5cf">r123array2x64</a>
+, <a class="el" href="structr123array4x64.html#ac4187b4ae44913183b1c8f9b7654f8a9">r123array4x64</a>
+</li>
+<li>incr_carefully()
+: <a class="el" href="structr123array4x64.html#af629d14b454f406cae4d128d9e05554d">r123array4x64</a>
+, <a class="el" href="structr123array16x8.html#abbc6c2d9cdc2187cdfdea759951498a0">r123array16x8</a>
+, <a class="el" href="structr123array1xm128i.html#ab35cfd8e9221c294ab7546855373a38c">r123array1xm128i</a>
+, <a class="el" href="structr123array1x32.html#a9c919289274ced376086f1110c8b6384">r123array1x32</a>
+, <a class="el" href="structr123array2x64.html#a52ddbfa3edbd9fa7f30e1402a9240da1">r123array2x64</a>
+, <a class="el" href="structr123array2x32.html#adf128cb5c0abaaa4f119d4bcef47ead9">r123array2x32</a>
+, <a class="el" href="structr123array4x32.html#acec3775361651e6f8dea517f07d7a8b8">r123array4x32</a>
+, <a class="el" href="structr123array8x32.html#a9e73ed67b7c577ebdb6c5e1f121fdc4f">r123array8x32</a>
+, <a class="el" href="structr123array1x64.html#ad848dc3e868f8195ee3eb5029698c976">r123array1x64</a>
+</li>
+<li>iterator
+: <a class="el" href="structr123array2x64.html#ac0fc5019e017f50e29d26df233085e56">r123array2x64</a>
+, <a class="el" href="structr123array1x32.html#ad17f00c1dbff151f91d381f7c0b99dc8">r123array1x32</a>
+, <a class="el" href="structr123array1x64.html#a486a75094513f75c268901b3bb6666ad">r123array1x64</a>
+, <a class="el" href="structr123array8x32.html#aad8ff34e784d954a05f3f058facfb2be">r123array8x32</a>
+, <a class="el" href="structr123array2x32.html#a4b447adc28d536d9b7ad7e33d5081a8e">r123array2x32</a>
+, <a class="el" href="structr123array1xm128i.html#af9db87a7c1ae4c7ba1e355af89b4d22d">r123array1xm128i</a>
+, <a class="el" href="structr123array16x8.html#a36bdba5b2d96c8dfe9b7e59b203d5047">r123array16x8</a>
+, <a class="el" href="structr123array4x64.html#adfc9f1209d12f855b9330ecccc8b6dd2">r123array4x64</a>
+, <a class="el" href="structr123array4x32.html#a73a2a55a200af374d7299d2de13aa5cc">r123array4x32</a>
+</li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/functions_0x6b.html b/docs/html/functions_0x6b.html
new file mode 100644
index 0000000..e1a6da2
--- /dev/null
+++ b/docs/html/functions_0x6b.html
@@ -0,0 +1,131 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li class="current"><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li class="current"><a href="functions.html"><span>All</span></a></li>
+      <li><a href="functions_func.html"><span>Functions</span></a></li>
+      <li><a href="functions_vars.html"><span>Variables</span></a></li>
+      <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+      <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="functions_rela.html"><span>Related Functions</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs3">
+    <ul class="tablist">
+      <li><a href="functions.html#index__"><span>_</span></a></li>
+      <li><a href="functions_0x61.html#index_a"><span>a</span></a></li>
+      <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
+      <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
+      <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
+      <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
+      <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
+      <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
+      <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
+      <li class="current"><a href="functions_0x6b.html#index_k"><span>k</span></a></li>
+      <li><a href="functions_0x6d.html#index_m"><span>m</span></a></li>
+      <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
+      <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
+      <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
+      <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
+      <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
+      <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+Here is a list of all class members with links to the classes they belong to:
+
+<h3><a class="anchor" id="index_k"></a>- k -</h3><ul>
+<li>k
+: <a class="el" href="structaesni1xm128i__key__t.html#a60cefca96e55b73732f570e844efbe54">aesni1xm128i_key_t</a>
+</li>
+<li>key
+: <a class="el" href="structr123_1_1Engine.html#adb9e1841a81f213a115e9f092f5c4654">r123::Engine< CBRNG ></a>
+</li>
+<li>key_type
+: <a class="el" href="structr123_1_1Threefry4x64__R.html#adb406d1af0e757bd8058582ee39f21dc">r123::Threefry4x64_R< R ></a>
+, <a class="el" href="structr123_1_1Threefry2x64__R.html#ae652f0e9ca6ec234fd2f4fc9afb1007c">r123::Threefry2x64_R< R ></a>
+, <a class="el" href="structr123_1_1Threefry4x32__R.html#a140f5cf20bde7784d778b82f0ebf8778">r123::Threefry4x32_R< R ></a>
+, <a class="el" href="structr123_1_1Threefry2x32__R.html#abfaaff871ef5e2e2cf397884ddab4cdc">r123::Threefry2x32_R< R ></a>
+, <a class="el" href="structr123_1_1ReinterpretCtr.html#a470b21676ed709aa9d9ad524a67410f1">r123::ReinterpretCtr< ToType, CBRNG ></a>
+, <a class="el" href="structr123_1_1Philox4x64__R.html#a9947ce12e3d03f9a60396d79bb56ba1c">r123::Philox4x64_R< ROUNDS ></a>
+, <a class="el" href="structr123_1_1Philox2x64__R.html#adb8a638d3d96ef0ab594b0320bae329f">r123::Philox2x64_R< ROUNDS ></a>
+, <a class="el" href="structr123_1_1Philox4x32__R.html#afa2e99f3e0b635f17ba9e16c186af63b">r123::Philox4x32_R< ROUNDS ></a>
+, <a class="el" href="structr123_1_1Philox2x32__R.html#a37dac768d36ef39e0228369e91b9f0ab">r123::Philox2x32_R< ROUNDS ></a>
+, <a class="el" href="classr123_1_1MicroURNG.html#aef90e6157f360434342ad0df4ce5f364">r123::MicroURNG< CBRNG ></a>
+, <a class="el" href="structr123_1_1ARS4x32__R.html#a7a651b6747b9e7c038bc6d11ffa2863e">r123::ARS4x32_R< ROUNDS ></a>
+, <a class="el" href="structr123_1_1ARS1xm128i__R.html#a8454d6de92379d9a6551d11828fbebc3">r123::ARS1xm128i_R< ROUNDS ></a>
+, <a class="el" href="structr123_1_1AESNI4x32.html#a3f47cb319d03ede5fd557800b618d28a">r123::AESNI4x32</a>
+, <a class="el" href="structr123_1_1AESNI1xm128i.html#a7dc33fd5abf509d9d16b571b23867a6b">r123::AESNI1xm128i</a>
+, <a class="el" href="structr123_1_1Engine.html#a18132a79d2327990c4809b37300eddc3">r123::Engine< CBRNG ></a>
+</li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/functions_0x6d.html b/docs/html/functions_0x6d.html
new file mode 100644
index 0000000..ec6ce9e
--- /dev/null
+++ b/docs/html/functions_0x6d.html
@@ -0,0 +1,125 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li class="current"><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li class="current"><a href="functions.html"><span>All</span></a></li>
+      <li><a href="functions_func.html"><span>Functions</span></a></li>
+      <li><a href="functions_vars.html"><span>Variables</span></a></li>
+      <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+      <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="functions_rela.html"><span>Related Functions</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs3">
+    <ul class="tablist">
+      <li><a href="functions.html#index__"><span>_</span></a></li>
+      <li><a href="functions_0x61.html#index_a"><span>a</span></a></li>
+      <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
+      <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
+      <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
+      <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
+      <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
+      <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
+      <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
+      <li><a href="functions_0x6b.html#index_k"><span>k</span></a></li>
+      <li class="current"><a href="functions_0x6d.html#index_m"><span>m</span></a></li>
+      <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
+      <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
+      <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
+      <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
+      <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
+      <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+Here is a list of all class members with links to the classes they belong to:
+
+<h3><a class="anchor" id="index_m"></a>- m -</h3><ul>
+<li>m
+: <a class="el" href="structr123m128i.html#a9b9908268281aace8028a3f34980634d">r123m128i</a>
+</li>
+<li>max_size()
+: <a class="el" href="structr123array1x32.html#a707c532168670ad508723d057f712928">r123array1x32</a>
+, <a class="el" href="structr123array4x32.html#afddfc77eea0f5f4c53dc075425f96ab3">r123array4x32</a>
+, <a class="el" href="structr123array1xm128i.html#a04e2b8952459b7aeabc011532fe3f8fa">r123array1xm128i</a>
+, <a class="el" href="structr123array4x64.html#aad1329f21e3fdd5d25a29148db564b8a">r123array4x64</a>
+, <a class="el" href="structr123array16x8.html#a3f59fb2b338aa8e33879e8d2d22840ed">r123array16x8</a>
+, <a class="el" href="structr123array2x64.html#a03f7c9e37e59210b1d2b9390e415e289">r123array2x64</a>
+, <a class="el" href="structr123array1x64.html#a1b02d097ca118866b7f696b7c1c5681f">r123array1x64</a>
+, <a class="el" href="structr123array8x32.html#a0ea0af65a3b0a51c090ab6ef11f20c63">r123array8x32</a>
+, <a class="el" href="structr123array2x32.html#a07345b400c5a81e6cd55689d1e38122f">r123array2x32</a>
+</li>
+<li>MicroURNG()
+: <a class="el" href="classr123_1_1MicroURNG.html#a19afb80312c370e1670bf8afc73d802e">r123::MicroURNG< CBRNG ></a>
+</li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/functions_0x6f.html b/docs/html/functions_0x6f.html
new file mode 100644
index 0000000..3588676
--- /dev/null
+++ b/docs/html/functions_0x6f.html
@@ -0,0 +1,185 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li class="current"><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li class="current"><a href="functions.html"><span>All</span></a></li>
+      <li><a href="functions_func.html"><span>Functions</span></a></li>
+      <li><a href="functions_vars.html"><span>Variables</span></a></li>
+      <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+      <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="functions_rela.html"><span>Related Functions</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs3">
+    <ul class="tablist">
+      <li><a href="functions.html#index__"><span>_</span></a></li>
+      <li><a href="functions_0x61.html#index_a"><span>a</span></a></li>
+      <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
+      <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
+      <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
+      <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
+      <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
+      <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
+      <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
+      <li><a href="functions_0x6b.html#index_k"><span>k</span></a></li>
+      <li><a href="functions_0x6d.html#index_m"><span>m</span></a></li>
+      <li class="current"><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
+      <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
+      <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
+      <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
+      <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
+      <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+Here is a list of all class members with links to the classes they belong to:
+
+<h3><a class="anchor" id="index_o"></a>- o -</h3><ul>
+<li>operator __m128i()
+: <a class="el" href="structr123m128i.html#a80a5c24f76fec61b3ab0ed0e0353cfb7">r123m128i</a>
+</li>
+<li>operator const void *()
+: <a class="el" href="structr123m128i.html#ae5788785c2ce7f7ca6ff8dd4377771f3">r123m128i</a>
+</li>
+<li>operator!=()
+: <a class="el" href="structr123array2x32.html#aa0c7e561ddeb475329ea8d8178fca2a1">r123array2x32</a>
+, <a class="el" href="structr123array2x64.html#a1ddc25ec182ac3b119e420f5e21c3f87">r123array2x64</a>
+, <a class="el" href="structr123array4x64.html#abf2fc58ddb163708c087f72921dfd11d">r123array4x64</a>
+, <a class="el" href="structr123array4x32.html#a1a7aa47c8dd7db5146e54cc54d1d4358">r123array4x32</a>
+, <a class="el" href="structr123array16x8.html#af48be55844748a0f6406b2ae437398b5">r123array16x8</a>
+, <a class="el" href="structr123array1xm128i.html#a60cf5b0e8283c20c386a7935f9ae0a60">r123array1xm128i</a>
+, <a class="el" href="structr123array1x32.html#af293f370d083051f6cf24408e07feff1">r123array1x32</a>
+, <a class="el" href="structr123array8x32.html#aed510e0472db9b00490c468d88e14bac">r123array8x32</a>
+, <a class="el" href="structr123_1_1Engine.html#af0947cdcfc03aef7ec30c9fafa660445">r123::Engine< CBRNG ></a>
+, <a class="el" href="structr123array1x64.html#a0969493a7aac290e5ab2a5135380bc3d">r123array1x64</a>
+</li>
+<li>operator()()
+: <a class="el" href="structr123_1_1ARS4x32__R.html#afcd326e150925e30de22166e727567df">r123::ARS4x32_R< ROUNDS ></a>
+, <a class="el" href="classr123_1_1MicroURNG.html#a64cd4d33b4cab5d3d9c556db68407b77">r123::MicroURNG< CBRNG ></a>
+, <a class="el" href="structr123_1_1Philox2x32__R.html#ab610a200c9fa62d090f31466b655c780">r123::Philox2x32_R< ROUNDS ></a>
+, <a class="el" href="structr123_1_1Philox4x32__R.html#adf05bdc0c856c9541db656711fd8c7d1">r123::Philox4x32_R< ROUNDS ></a>
+, <a class="el" href="structr123_1_1Philox2x64__R.html#a04f6039e87a958593ac011d9304d7ec9">r123::Philox2x64_R< ROUNDS ></a>
+, <a class="el" href="structr123_1_1Philox4x64__R.html#aa5a0488aa6e16c55b7647c155b18462c">r123::Philox4x64_R< ROUNDS ></a>
+, <a class="el" href="structr123_1_1ReinterpretCtr.html#a91edc5103397372cc5509ad17c0fc83a">r123::ReinterpretCtr< ToType, CBRNG ></a>
+, <a class="el" href="structr123_1_1Threefry2x32__R.html#a64b8018e82f3e7a0e252166b15b42a71">r123::Threefry2x32_R< R ></a>
+, <a class="el" href="structr123_1_1Threefry4x32__R.html#ae0dfbf399015fab602c769ad90256231">r123::Threefry4x32_R< R ></a>
+, <a class="el" href="structr123_1_1Threefry2x64__R.html#ab654a85f2c4ec65548ddfc85dc00f27e">r123::Threefry2x64_R< R ></a>
+, <a class="el" href="structr123_1_1AESNI1xm128i.html#a9bff0ac8478400c1006136e9bde91dc3">r123::AESNI1xm128i</a>
+, <a class="el" href="structr123_1_1Threefry4x64__R.html#a09e7fb82f9b7bcf6ccb4d849116b6ec1">r123::Threefry4x64_R< R ></a>
+, <a class="el" href="structr123_1_1Engine.html#aca309d0b4f2a8fff1f6f2ab38c6caf93">r123::Engine< CBRNG ></a>
+, <a class="el" href="structr123_1_1AESNI4x32.html#a981102e5bc0a7df916a95a40af8fd4c0">r123::AESNI4x32</a>
+, <a class="el" href="structr123_1_1Engine.html#af396a7d1656af55805e38f3d9c0fbef7">r123::Engine< CBRNG ></a>
+, <a class="el" href="structr123_1_1ARS1xm128i__R.html#a89c0fc4e1c90ee684fc88dde05d8d82c">r123::ARS1xm128i_R< ROUNDS ></a>
+</li>
+<li>operator<<
+: <a class="el" href="structr123_1_1Engine.html#ae0321571f689fca00c608d11ecad7d8d">r123::Engine< CBRNG ></a>
+</li>
+<li>operator=()
+: <a class="el" href="structr123m128i.html#a9842fbc85102e0019cc58d97c28e2d02">r123m128i</a>
+, <a class="el" href="structaesni1xm128i__key__t.html#acb24fef68c539f1a6ea217ee8ada185d">aesni1xm128i_key_t</a>
+</li>
+<li>operator==()
+: <a class="el" href="structr123array1x32.html#a61140a0fb8983a3018a2b98903d14047">r123array1x32</a>
+, <a class="el" href="structr123array2x32.html#aa8723e5786c66137e82405a532459b2d">r123array2x32</a>
+, <a class="el" href="structr123array4x32.html#a14123fe9160e559a83e61ab6c2901759">r123array4x32</a>
+, <a class="el" href="structr123array8x32.html#ae9ffa98997557c87b0a08b6ed2835155">r123array8x32</a>
+, <a class="el" href="structr123array1x64.html#a65018edc8a8596e8bdb7500926544a4a">r123array1x64</a>
+, <a class="el" href="structr123array4x64.html#afada659cc4a54a1416dca2522885cef1">r123array4x64</a>
+, <a class="el" href="structr123array16x8.html#a4d3ed48f2b716382ea874a968a2b7174">r123array16x8</a>
+, <a class="el" href="structr123array1xm128i.html#aa459abf9fe8d15019860de5b3b0cddf8">r123array1xm128i</a>
+, <a class="el" href="structr123_1_1Engine.html#a606e3ba824542e52f12df1345126e721">r123::Engine< CBRNG ></a>
+, <a class="el" href="structr123array2x64.html#aa690f425f846ff9908a734eb720df573">r123array2x64</a>
+</li>
+<li>operator>>
+: <a class="el" href="structr123_1_1Engine.html#ae708b771ab5ac17700d34bad875a16d9">r123::Engine< CBRNG ></a>
+</li>
+<li>operator[]()
+: <a class="el" href="structr123array4x32.html#a3161a139a59a1196398d5d4b81d740df">r123array4x32</a>
+, <a class="el" href="structr123array8x32.html#a2b0d17077d419e9f296318161fcc0470">r123array8x32</a>
+, <a class="el" href="structr123array16x8.html#a013713c00f6e8a5adb7be77388c22d8f">r123array16x8</a>
+, <a class="el" href="structr123array4x32.html#aa1fef4a0eb551a70d1ec5d766efcffb5">r123array4x32</a>
+, <a class="el" href="structr123array4x64.html#a27c2001bf5af042aa450f17637646bd3">r123array4x64</a>
+, <a class="el" href="structr123array1xm128i.html#aaa3ccbe6c0838b5bdafcd0dfa3c2c074">r123array1xm128i</a>
+, <a class="el" href="structr123array16x8.html#abe9f2b18e2e3b89e00725f6fa69b8236">r123array16x8</a>
+, <a class="el" href="structr123array8x32.html#ace7ad1b4aca1ad419c373d9cff872805">r123array8x32</a>
+, <a class="el" href="structr123array2x64.html#a7352cdb2c025b0373ece5c84409a1b1d">r123array2x64</a>
+, <a class="el" href="structr123array1x64.html#aa13b237c78d719ecfb5a59cdd557c889">r123array1x64</a>
+, <a class="el" href="structr123array2x64.html#ae534a7e32afae58303ccc8379408551b">r123array2x64</a>
+, <a class="el" href="structr123array1x32.html#a05cf21fa6a647c73763da02d4b7e2f2a">r123array1x32</a>
+, <a class="el" href="structr123array1xm128i.html#aba0d6532c59c3c879bcfbad16cab5748">r123array1xm128i</a>
+, <a class="el" href="structr123array2x32.html#a9926f6938472682c5d31a742378f17de">r123array2x32</a>
+, <a class="el" href="structr123array4x64.html#adf867ee2ffc437a3f358431d3729a33d">r123array4x64</a>
+, <a class="el" href="structr123array2x32.html#a0ae33a5edf89f9f12edec38209b02464">r123array2x32</a>
+, <a class="el" href="structr123array1x32.html#aa47bb157c60858c1b0ef69df79646a3b">r123array1x32</a>
+</li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/functions_0x70.html b/docs/html/functions_0x70.html
new file mode 100644
index 0000000..ac8d905
--- /dev/null
+++ b/docs/html/functions_0x70.html
@@ -0,0 +1,119 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li class="current"><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li class="current"><a href="functions.html"><span>All</span></a></li>
+      <li><a href="functions_func.html"><span>Functions</span></a></li>
+      <li><a href="functions_vars.html"><span>Variables</span></a></li>
+      <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+      <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="functions_rela.html"><span>Related Functions</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs3">
+    <ul class="tablist">
+      <li><a href="functions.html#index__"><span>_</span></a></li>
+      <li><a href="functions_0x61.html#index_a"><span>a</span></a></li>
+      <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
+      <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
+      <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
+      <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
+      <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
+      <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
+      <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
+      <li><a href="functions_0x6b.html#index_k"><span>k</span></a></li>
+      <li><a href="functions_0x6d.html#index_m"><span>m</span></a></li>
+      <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
+      <li class="current"><a href="functions_0x70.html#index_p"><span>p</span></a></li>
+      <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
+      <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
+      <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
+      <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+Here is a list of all class members with links to the classes they belong to:
+
+<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
+<li>pointer
+: <a class="el" href="structr123array1x32.html#a85ce46c2e10ab3d9c4f60aebe6268898">r123array1x32</a>
+, <a class="el" href="structr123array1xm128i.html#a4f78260ba2ec595bdc56fc21fd45e45a">r123array1xm128i</a>
+, <a class="el" href="structr123array16x8.html#aa6ae2e4843b3bb1b66425afa7da9e281">r123array16x8</a>
+, <a class="el" href="structr123array4x64.html#a08c39c2f70f4198a82cba99c0162e67c">r123array4x64</a>
+, <a class="el" href="structr123array2x64.html#a3b0b967b9ae134da266448c190f59c3a">r123array2x64</a>
+, <a class="el" href="structr123array1x64.html#a1c104fabb72d6c72c51348ac72bd419f">r123array1x64</a>
+, <a class="el" href="structr123array8x32.html#aeaf3b46bbc571a21d61ad6ee6e760291">r123array8x32</a>
+, <a class="el" href="structr123array4x32.html#adcef39f1e3989578b4c0a92524a15df2">r123array4x32</a>
+, <a class="el" href="structr123array2x32.html#ac884bcbd1063811354bfac66262a0b42">r123array2x32</a>
+</li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/functions_0x72.html b/docs/html/functions_0x72.html
new file mode 100644
index 0000000..cb0ac67
--- /dev/null
+++ b/docs/html/functions_0x72.html
@@ -0,0 +1,190 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li class="current"><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li class="current"><a href="functions.html"><span>All</span></a></li>
+      <li><a href="functions_func.html"><span>Functions</span></a></li>
+      <li><a href="functions_vars.html"><span>Variables</span></a></li>
+      <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+      <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="functions_rela.html"><span>Related Functions</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs3">
+    <ul class="tablist">
+      <li><a href="functions.html#index__"><span>_</span></a></li>
+      <li><a href="functions_0x61.html#index_a"><span>a</span></a></li>
+      <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
+      <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
+      <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
+      <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
+      <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
+      <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
+      <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
+      <li><a href="functions_0x6b.html#index_k"><span>k</span></a></li>
+      <li><a href="functions_0x6d.html#index_m"><span>m</span></a></li>
+      <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
+      <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
+      <li class="current"><a href="functions_0x72.html#index_r"><span>r</span></a></li>
+      <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
+      <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
+      <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+Here is a list of all class members with links to the classes they belong to:
+
+<h3><a class="anchor" id="index_r"></a>- r -</h3><ul>
+<li>R123_NO_MACRO_SUBST()
+: <a class="el" href="classr123_1_1MicroURNG.html#aa05c857c01053cf9185406d69757b101">r123::MicroURNG< CBRNG ></a>
+, <a class="el" href="structr123_1_1Engine.html#a112318f7d0015ecf4c3c6a8a5c76371b">r123::Engine< CBRNG ></a>
+</li>
+<li>rbegin()
+: <a class="el" href="structr123array2x32.html#a00afca78e25bbb9e0b00e6ab95ecb162">r123array2x32</a>
+, <a class="el" href="structr123array2x64.html#ad6720531d85d0c284ce32cde3b82a9da">r123array2x64</a>
+, <a class="el" href="structr123array4x64.html#a102f75427ce01bea725da02b975834b5">r123array4x64</a>
+, <a class="el" href="structr123array4x32.html#aea9aae067d8347aa53a12a4c9948ae9a">r123array4x32</a>
+, <a class="el" href="structr123array4x64.html#a7ccc255ba0e1803080b117703dc3dc70">r123array4x64</a>
+, <a class="el" href="structr123array16x8.html#a5023769f3e418e15a707501aaaac5487">r123array16x8</a>
+, <a class="el" href="structr123array1x32.html#a0c91373623da349c09b952f616b7f5e9">r123array1x32</a>
+, <a class="el" href="structr123array4x32.html#aadb177f7f316ae47deeea20a686e7909">r123array4x32</a>
+, <a class="el" href="structr123array16x8.html#a5da4b6af6ebaf8cc8204713a993a860c">r123array16x8</a>
+, <a class="el" href="structr123array1xm128i.html#a78034de911e765ed64162c894fe2ce05">r123array1xm128i</a>
+, <a class="el" href="structr123array8x32.html#a0a143a573df3282ba5b9cb2190047cca">r123array8x32</a>
+, <a class="el" href="structr123array1xm128i.html#acd4e73f214be1dfaae5d2e20559083eb">r123array1xm128i</a>
+, <a class="el" href="structr123array1x32.html#aacb0604c956b8e50b057a6034c78069c">r123array1x32</a>
+, <a class="el" href="structr123array8x32.html#a959345559456fbc9e7e72d03a72a032c">r123array8x32</a>
+, <a class="el" href="structr123array1x64.html#a56196452051f26a10a4bb3c3d7b75fd0">r123array1x64</a>
+, <a class="el" href="structr123array2x32.html#a54e96198e6cd511dc147348f274b0784">r123array2x32</a>
+, <a class="el" href="structr123array1x64.html#a5b080aafd94d77efda03730b6f853334">r123array1x64</a>
+, <a class="el" href="structr123array2x64.html#a6888b98627db6056afe3f4ee3396a9a6">r123array2x64</a>
+</li>
+<li>reference
+: <a class="el" href="structr123array1x32.html#ae5aa4e3a65528495ea71371529ade7d7">r123array1x32</a>
+, <a class="el" href="structr123array2x32.html#aacd028d9f97ec8a2f484f0eff815abd5">r123array2x32</a>
+, <a class="el" href="structr123array4x32.html#a620f00f67215ab7fd344ec551c596712">r123array4x32</a>
+, <a class="el" href="structr123array8x32.html#a4027cd913ec90428d5d0dcad23a5dc2b">r123array8x32</a>
+, <a class="el" href="structr123array1x64.html#a6b196cbfb84a28a57f24cd976c6fd6e6">r123array1x64</a>
+, <a class="el" href="structr123array2x64.html#a7150b3ad865d00ca1f753accd8165336">r123array2x64</a>
+, <a class="el" href="structr123array4x64.html#a14ea48b972d46d9424c317db9698224f">r123array4x64</a>
+, <a class="el" href="structr123array16x8.html#adf010ea54bc2f9dceb8568d59c6dde8a">r123array16x8</a>
+, <a class="el" href="structr123array1xm128i.html#a34f0cbdac5eb89118ecf2ab5939fbf83">r123array1xm128i</a>
+</li>
+<li>rend()
+: <a class="el" href="structr123array2x64.html#ad96f87786a8a277bf553d0c5584c20c1">r123array2x64</a>
+, <a class="el" href="structr123array1x32.html#a7a55225361d3e9e6f037daa13d340fc4">r123array1x32</a>
+, <a class="el" href="structr123array2x32.html#a383edbf33737eb3e5098d6da4ed326f8">r123array2x32</a>
+, <a class="el" href="structr123array8x32.html#afcf1ea68c3cd0ce7ff6de11d3030eb93">r123array8x32</a>
+, <a class="el" href="structr123array2x32.html#ab3f0841dcd9cea6255406b7bc6363621">r123array2x32</a>
+, <a class="el" href="structr123array4x32.html#a368f69bdd03a9af1c6254daf98496dbd">r123array4x32</a>
+, <a class="el" href="structr123array8x32.html#aa84fc75185aedca379d23c0220b5c64a">r123array8x32</a>
+, <a class="el" href="structr123array1x64.html#aa0f756e941d0e417355d940fd0ed3a33">r123array1x64</a>
+, <a class="el" href="structr123array2x64.html#ad1e373b457921fc672ed8892180431eb">r123array2x64</a>
+, <a class="el" href="structr123array4x64.html#a71f59163070cb4cfd7ddda6f4f8576a1">r123array4x64</a>
+, <a class="el" href="structr123array16x8.html#a252b937d65e7b04e5bc507d43643441f">r123array16x8</a>
+, <a class="el" href="structr123array1xm128i.html#aeb47d483223e3e29f6ad156e5c356a20">r123array1xm128i</a>
+, <a class="el" href="structr123array16x8.html#a286fef704fcf11e9f00d73703b7ab36b">r123array16x8</a>
+</li>
+<li>reset()
+: <a class="el" href="classr123_1_1MicroURNG.html#add2f214254ddc2291e3b2c8b5dbe791a">r123::MicroURNG< CBRNG ></a>
+</li>
+<li>result_type
+: <a class="el" href="structr123_1_1Engine.html#a3d7cb66d43f99f5e227990af985ecb45">r123::Engine< CBRNG ></a>
+, <a class="el" href="classr123_1_1MicroURNG.html#a512957c3e7b3d22741ef0a436b973c2b">r123::MicroURNG< CBRNG ></a>
+</li>
+<li>reverse_iterator
+: <a class="el" href="structr123array2x32.html#ad0b05bbfee2d432dfef71342f14b8430">r123array2x32</a>
+, <a class="el" href="structr123array2x64.html#abcbf25662447a5241ed4d19c202f647a">r123array2x64</a>
+, <a class="el" href="structr123array4x32.html#aaabdf758fb4a56eaf4cf256654f41314">r123array4x32</a>
+, <a class="el" href="structr123array4x64.html#acc93aa79ca040ce8fd0957ac86caa2f9">r123array4x64</a>
+, <a class="el" href="structr123array1xm128i.html#a6a507944eb872540e73e7a839cbc8e30">r123array1xm128i</a>
+, <a class="el" href="structr123array1x32.html#a21cb520afa483ae177c469f3940e7ed2">r123array1x32</a>
+, <a class="el" href="structr123array1x64.html#ac9c44218c6761d9e6f422435e49acb17">r123array1x64</a>
+, <a class="el" href="structr123array8x32.html#acab5de900b99bad5f69009f48fa72235">r123array8x32</a>
+, <a class="el" href="structr123array16x8.html#aeeb5d6d55c07a515e4c7d01cb5c5351b">r123array16x8</a>
+</li>
+<li>rounds
+: <a class="el" href="structr123_1_1Threefry4x64__R.html#ab8807960eec8fc2198055ec2a971e116">r123::Threefry4x64_R< R ></a>
+, <a class="el" href="structr123_1_1AESNI1xm128i.html#a1b5a44afde814ba844d8f5442e2a3a5f">r123::AESNI1xm128i</a>
+, <a class="el" href="structr123_1_1Threefry2x64__R.html#aa994d756504284e6a59cc8d3c57f16c6">r123::Threefry2x64_R< R ></a>
+, <a class="el" href="structr123_1_1ARS1xm128i__R.html#abe167a93280140e424d722c1ac47a8e9">r123::ARS1xm128i_R< ROUNDS ></a>
+, <a class="el" href="structr123_1_1Philox4x32__R.html#a90d6a86bff4dc6e5e24209423f125140">r123::Philox4x32_R< ROUNDS ></a>
+, <a class="el" href="structr123_1_1Philox4x64__R.html#ac51193ab00b118b75784f86cf3470876">r123::Philox4x64_R< ROUNDS ></a>
+, <a class="el" href="structr123_1_1Philox2x32__R.html#a52ee7b34688fc2e5315152a10d7df5f0">r123::Philox2x32_R< ROUNDS ></a>
+, <a class="el" href="structr123_1_1AESNI4x32.html#a725aad79b8d496d97bed24390f624be6">r123::AESNI4x32</a>
+, <a class="el" href="structr123_1_1Philox2x64__R.html#ac0764d78e07bf6d311b47d0f3ce92450">r123::Philox2x64_R< ROUNDS ></a>
+, <a class="el" href="structr123_1_1Threefry2x32__R.html#af5be46f8426cfcd86e75327e4b3750b0">r123::Threefry2x32_R< R ></a>
+, <a class="el" href="structr123_1_1Threefry4x32__R.html#af63fd38ba9acf04ee56d75e96b413291">r123::Threefry4x32_R< R ></a>
+, <a class="el" href="structr123_1_1ARS4x32__R.html#a710e59a54794b4cd5e55689dd906b9ba">r123::ARS4x32_R< ROUNDS ></a>
+</li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/functions_0x73.html b/docs/html/functions_0x73.html
new file mode 100644
index 0000000..ce71280
--- /dev/null
+++ b/docs/html/functions_0x73.html
@@ -0,0 +1,169 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li class="current"><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li class="current"><a href="functions.html"><span>All</span></a></li>
+      <li><a href="functions_func.html"><span>Functions</span></a></li>
+      <li><a href="functions_vars.html"><span>Variables</span></a></li>
+      <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+      <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="functions_rela.html"><span>Related Functions</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs3">
+    <ul class="tablist">
+      <li><a href="functions.html#index__"><span>_</span></a></li>
+      <li><a href="functions_0x61.html#index_a"><span>a</span></a></li>
+      <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
+      <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
+      <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
+      <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
+      <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
+      <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
+      <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
+      <li><a href="functions_0x6b.html#index_k"><span>k</span></a></li>
+      <li><a href="functions_0x6d.html#index_m"><span>m</span></a></li>
+      <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
+      <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
+      <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
+      <li class="current"><a href="functions_0x73.html#index_s"><span>s</span></a></li>
+      <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
+      <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+Here is a list of all class members with links to the classes they belong to:
+
+<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
+<li>seed()
+: <a class="el" href="structr123array1x32.html#adf914fa4384acfcfa1750fd47b758f42">r123array1x32</a>
+, <a class="el" href="structr123array2x32.html#a31cf9b80bbcc3c976681b878b7afa046">r123array2x32</a>
+, <a class="el" href="structr123array8x32.html#a93139b379ce88e16f75eb9edcf40b357">r123array8x32</a>
+, <a class="el" href="structr123array16x8.html#aef0741829d359c31ad913a6770661895">r123array16x8</a>
+, <a class="el" href="structr123array1xm128i.html#a6645aeddeb992559150089c49ac335c8">r123array1xm128i</a>
+, <a class="el" href="structr123array1x64.html#a69be3aa9c2588ce86b5ebb72649ce684">r123array1x64</a>
+, <a class="el" href="structr123_1_1Engine.html#a93429593bdb12b202b4b8ed38fe08bc4">r123::Engine< CBRNG ></a>
+, <a class="el" href="structr123array4x32.html#acdaad089dc0e44da5818ebda8404bd16">r123array4x32</a>
+, <a class="el" href="structr123array2x64.html#a3e5afc5e4c6886611630cec365d8397b">r123array2x64</a>
+, <a class="el" href="structr123_1_1Engine.html#aff36bc97d11bc66f6c0edb75d8dc88e5">r123::Engine< CBRNG ></a>
+, <a class="el" href="structr123array4x64.html#a6f0133930367a2260ed5a132bf737131">r123array4x64</a>
+, <a class="el" href="structr123_1_1Engine.html#a7bd6d3417cefb904c879f41d2c29e15e">r123::Engine< CBRNG ></a>
+</li>
+<li>setcounter()
+: <a class="el" href="structr123_1_1Engine.html#a6104bf5ee89450403379d5680bfae172">r123::Engine< CBRNG ></a>
+</li>
+<li>size()
+: <a class="el" href="structr123array1x32.html#a4cbaf3feeaad0bb7227d065294240561">r123array1x32</a>
+, <a class="el" href="structr123array2x32.html#ad3d7310bd3ced1bfb05cbe4f3e753490">r123array2x32</a>
+, <a class="el" href="structr123array4x32.html#a1da4bfacdcd4a520a227bc5c2cff6a4b">r123array4x32</a>
+, <a class="el" href="structr123array8x32.html#aa4025fb7c1ef2c3376bdc9ae88b91553">r123array8x32</a>
+, <a class="el" href="structr123array1x64.html#a81dba857004f49f48cb0712edaa39e76">r123array1x64</a>
+, <a class="el" href="structr123array2x64.html#a10e19c13a970156c4fc18fa070dc9756">r123array2x64</a>
+, <a class="el" href="structr123array4x64.html#a303c3feaf0783e99292c3220613ea903">r123array4x64</a>
+, <a class="el" href="structr123array16x8.html#a9a31da5cdf154eba3e44af4e51002a15">r123array16x8</a>
+, <a class="el" href="structr123array1xm128i.html#a3f272a3884d1d5ca7a207fb31a270617">r123array1xm128i</a>
+</li>
+<li>size_type
+: <a class="el" href="structr123array16x8.html#ae892bee1409b006ec01597c0e1f22952">r123array16x8</a>
+, <a class="el" href="structr123array1xm128i.html#a702efcd8e34016d657ed6141bc767e6c">r123array1xm128i</a>
+, <a class="el" href="structr123array4x64.html#adbe34157dc62e7d2c988f12b06b273af">r123array4x64</a>
+, <a class="el" href="structr123array1x32.html#a30405dcf03997aaf3f981c05d1fa1e53">r123array1x32</a>
+, <a class="el" href="structr123array2x32.html#ac168a0f0c7eddf1842c9882643b31e91">r123array2x32</a>
+, <a class="el" href="structr123array4x32.html#af4ee6cd95de0f8b7932d7a6a061663af">r123array4x32</a>
+, <a class="el" href="structr123array8x32.html#aa262b29c3d3fa22b07447b02c8c4be17">r123array8x32</a>
+, <a class="el" href="structr123array1x64.html#aa37d85a97cfe1f3f63b1ef1c33497cb7">r123array1x64</a>
+, <a class="el" href="structr123array2x64.html#aacb6269c183cc408285dca02e3b55526">r123array2x64</a>
+</li>
+<li>static_size
+: <a class="el" href="structr123array8x32.html#aae848a29e2a9b3229fc7063440885c4fa2270c17b2a56aea106facc9a22b62be6">r123array8x32</a>
+, <a class="el" href="structr123array16x8.html#a7b2912a12e57bc62644a8ce57e2301b2af0ee079d4b47a988dcd2b8b8457f266f">r123array16x8</a>
+, <a class="el" href="structr123array2x32.html#ad6e438ec0d5a08bfb0b71a3ff96ea7e8a5ae3e9837bb88660b088443c1a6fb47a">r123array2x32</a>
+, <a class="el" href="structr123array1x32.html#a2cdb0e09b7e8ba20de255ddcb54ea9baae9556d9b93643fe1f7e56e973200177a">r123array1x32</a>
+, <a class="el" href="structr123array4x32.html#a3d387fea63ac50668e75faa8ebe4594aa80d43f91cd038fece63f219b9f4a36c6">r123array4x32</a>
+, <a class="el" href="structr123array2x64.html#aa8ed42c5bf709f879674643a70e71dbca6219dc89b2a7ffde9b00364177f5b846">r123array2x64</a>
+, <a class="el" href="structr123array4x64.html#a904abc16c5828698aa8af5824b6a69c1aa1363fd51fd3dae2d8989711a11817ff">r123array4x64</a>
+, <a class="el" href="structr123array1x64.html#ab7fb5f41ed3716bce19489deb1dd4149a0c25e6a56a2c69eb7641adb24765e6af">r123array1x64</a>
+, <a class="el" href="structr123array1xm128i.html#a130e9722020433db562761a8e51bed2ca32ec6b84a0fa2dd836b04e0ffa69b2bc">r123array1xm128i</a>
+</li>
+<li>swap()
+: <a class="el" href="structr123array1x64.html#a6f929a34461c49c9571eedc1df65fd20">r123array1x64</a>
+, <a class="el" href="structr123array1x32.html#afdd8df41333430593d31350bd12db11a">r123array1x32</a>
+, <a class="el" href="structr123array16x8.html#a2de9273e9c4b4c47315cb20885e9c6ed">r123array16x8</a>
+, <a class="el" href="structr123array2x32.html#a1eac99d2198007201b9c0040a18b258c">r123array2x32</a>
+, <a class="el" href="structr123array4x64.html#a9845020f8799cbf04156e3114a4c9314">r123array4x64</a>
+, <a class="el" href="structr123array4x32.html#a3e6f9b7de70de3386bcd2ba44ad68fb5">r123array4x32</a>
+, <a class="el" href="structr123array2x64.html#a78ea0dba10b77c9f228108df9ab09c9d">r123array2x64</a>
+, <a class="el" href="structr123array1xm128i.html#a05f536079732d192e572bcf395ab6b4e">r123array1xm128i</a>
+, <a class="el" href="structr123array8x32.html#a04c88fca3a8cc3b579e9fc480629888e">r123array8x32</a>
+</li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/functions_0x75.html b/docs/html/functions_0x75.html
new file mode 100644
index 0000000..a418708
--- /dev/null
+++ b/docs/html/functions_0x75.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li class="current"><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li class="current"><a href="functions.html"><span>All</span></a></li>
+      <li><a href="functions_func.html"><span>Functions</span></a></li>
+      <li><a href="functions_vars.html"><span>Variables</span></a></li>
+      <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+      <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="functions_rela.html"><span>Related Functions</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs3">
+    <ul class="tablist">
+      <li><a href="functions.html#index__"><span>_</span></a></li>
+      <li><a href="functions_0x61.html#index_a"><span>a</span></a></li>
+      <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
+      <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
+      <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
+      <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
+      <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
+      <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
+      <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
+      <li><a href="functions_0x6b.html#index_k"><span>k</span></a></li>
+      <li><a href="functions_0x6d.html#index_m"><span>m</span></a></li>
+      <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
+      <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
+      <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
+      <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
+      <li class="current"><a href="functions_0x75.html#index_u"><span>u</span></a></li>
+      <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+Here is a list of all class members with links to the classes they belong to:
+
+<h3><a class="anchor" id="index_u"></a>- u -</h3><ul>
+<li>ukey
+: <a class="el" href="structr123_1_1Engine.html#a11a79253c3a7b07e697f7bf4c7edb52f">r123::Engine< CBRNG ></a>
+</li>
+<li>ukey_type
+: <a class="el" href="structr123_1_1Engine.html#a32973bdda8697bcbb4dde11c0366a5e3">r123::Engine< CBRNG ></a>
+, <a class="el" href="structr123_1_1Threefry4x64__R.html#a087ff88f84d115a6a726e008c6dcc325">r123::Threefry4x64_R< R ></a>
+, <a class="el" href="structr123_1_1Threefry2x64__R.html#a57db271865ab1889c8f569fb053ee66d">r123::Threefry2x64_R< R ></a>
+, <a class="el" href="structr123_1_1Threefry4x32__R.html#aab22e360de3f5e13f018ccf3a6754a8f">r123::Threefry4x32_R< R ></a>
+, <a class="el" href="structr123_1_1Threefry2x32__R.html#a3ab3969f7445f9fe935566fdc017c5ca">r123::Threefry2x32_R< R ></a>
+, <a class="el" href="structr123_1_1ReinterpretCtr.html#a4b0b69c1aa58d62bb22e51e16c586bee">r123::ReinterpretCtr< ToType, CBRNG ></a>
+, <a class="el" href="structr123_1_1Philox4x64__R.html#a4715e37129fb4ca9d7671cb9df4fa8c5">r123::Philox4x64_R< ROUNDS ></a>
+, <a class="el" href="structr123_1_1Philox2x64__R.html#a0c4cfeb8c3f00d1755ee047790c9da1c">r123::Philox2x64_R< ROUNDS ></a>
+, <a class="el" href="structr123_1_1Philox4x32__R.html#a804c8700155da93039c339ac83df99dd">r123::Philox4x32_R< ROUNDS ></a>
+, <a class="el" href="structr123_1_1Philox2x32__R.html#a8982960eb5a3b5afc26c8e8d6639275e">r123::Philox2x32_R< ROUNDS ></a>
+, <a class="el" href="classr123_1_1MicroURNG.html#a7e6fd93fec2fe138ee36b401ff376cfc">r123::MicroURNG< CBRNG ></a>
+, <a class="el" href="structr123_1_1ARS4x32__R.html#aa4bd7be98acb8b0299fb0ffce3db69ee">r123::ARS4x32_R< ROUNDS ></a>
+, <a class="el" href="structr123_1_1ARS1xm128i__R.html#ab26c7029e347e6b1e17dad795e462aeb">r123::ARS1xm128i_R< ROUNDS ></a>
+, <a class="el" href="structr123_1_1AESNI4x32.html#a3fbb6113e70575dce3b6047a22a751f4">r123::AESNI4x32</a>
+, <a class="el" href="structr123_1_1AESNI1xm128i.html#a1f405533da84d98b938030190a63cec5">r123::AESNI1xm128i</a>
+</li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/functions_0x76.html b/docs/html/functions_0x76.html
new file mode 100644
index 0000000..9ff3c8f
--- /dev/null
+++ b/docs/html/functions_0x76.html
@@ -0,0 +1,131 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li class="current"><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li class="current"><a href="functions.html"><span>All</span></a></li>
+      <li><a href="functions_func.html"><span>Functions</span></a></li>
+      <li><a href="functions_vars.html"><span>Variables</span></a></li>
+      <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+      <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="functions_rela.html"><span>Related Functions</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs3">
+    <ul class="tablist">
+      <li><a href="functions.html#index__"><span>_</span></a></li>
+      <li><a href="functions_0x61.html#index_a"><span>a</span></a></li>
+      <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
+      <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
+      <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
+      <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
+      <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
+      <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
+      <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
+      <li><a href="functions_0x6b.html#index_k"><span>k</span></a></li>
+      <li><a href="functions_0x6d.html#index_m"><span>m</span></a></li>
+      <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
+      <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
+      <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
+      <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
+      <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
+      <li class="current"><a href="functions_0x76.html#index_v"><span>v</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+Here is a list of all class members with links to the classes they belong to:
+
+<h3><a class="anchor" id="index_v"></a>- v -</h3><ul>
+<li>v
+: <a class="el" href="structr123array1x32.html#a1123ac44ecadd52dae06d2c8df86764a">r123array1x32</a>
+, <a class="el" href="structr123array2x32.html#a65524bf06568073021117ef196d6b45f">r123array2x32</a>
+, <a class="el" href="structr123array8x32.html#a7a84d2a924a271cc7b5f748023517d10">r123array8x32</a>
+, <a class="el" href="structr123array16x8.html#a703776a5f85fb222e16b739309489783">r123array16x8</a>
+, <a class="el" href="structr123array1xm128i.html#ab6d5e4b23c04e12c1aad7aaf38ff2bd5">r123array1xm128i</a>
+, <a class="el" href="structr123array1x64.html#a951c4b651e15e5ad4f66d81027c8e1b5">r123array1x64</a>
+, <a class="el" href="structr123_1_1Engine.html#a6169d4fbce1fd7725fabda4c693bf250">r123::Engine< CBRNG ></a>
+, <a class="el" href="structr123array4x32.html#ac8e6785120a3031b211fc8aa7d03d83f">r123array4x32</a>
+, <a class="el" href="structr123array2x64.html#a547e4a51e531cf36eef885fbf20a7048">r123array2x64</a>
+, <a class="el" href="structr123array4x64.html#aae3a18410877c49f1058bc4d78a62f48">r123array4x64</a>
+</li>
+<li>value_type
+: <a class="el" href="structr123array2x64.html#acefd9fb46661254e17877844c545e15f">r123array2x64</a>
+, <a class="el" href="structr123array16x8.html#ad1d7184f51cafaff4714a2dcf60c9ae2">r123array16x8</a>
+, <a class="el" href="structr123array1xm128i.html#a70ab4e530c7cce9481e07aa0b21dd96b">r123array1xm128i</a>
+, <a class="el" href="structr123array2x32.html#ab669df8d33d32ee3571210eb090c6cb2">r123array2x32</a>
+, <a class="el" href="structr123array4x32.html#a5ba59b507edcf793ba186a9a4e8c56d5">r123array4x32</a>
+, <a class="el" href="structr123array1x64.html#a4d8280ccd7087d5c3faba27641e8fbe7">r123array1x64</a>
+, <a class="el" href="structr123array4x64.html#ae4a79be3ab80944a8bb6bc7ec7907061">r123array4x64</a>
+, <a class="el" href="structr123array1x32.html#a9c8e0d672be32b52eef639f1a3b2b98a">r123array1x32</a>
+, <a class="el" href="structr123array8x32.html#af47fd0d348b68dd7a2853c68eb32d8b7">r123array8x32</a>
+</li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/functions_eval.html b/docs/html/functions_eval.html
new file mode 100644
index 0000000..9172c38
--- /dev/null
+++ b/docs/html/functions_eval.html
@@ -0,0 +1,96 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Class Members - Enumerator</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li class="current"><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="functions.html"><span>All</span></a></li>
+      <li><a href="functions_func.html"><span>Functions</span></a></li>
+      <li><a href="functions_vars.html"><span>Variables</span></a></li>
+      <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+      <li class="current"><a href="functions_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="functions_rela.html"><span>Related Functions</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+ <ul>
+<li>static_size
+: <a class="el" href="structr123array1x32.html#a2cdb0e09b7e8ba20de255ddcb54ea9baae9556d9b93643fe1f7e56e973200177a">r123array1x32</a>
+, <a class="el" href="structr123array1xm128i.html#a130e9722020433db562761a8e51bed2ca32ec6b84a0fa2dd836b04e0ffa69b2bc">r123array1xm128i</a>
+, <a class="el" href="structr123array16x8.html#a7b2912a12e57bc62644a8ce57e2301b2af0ee079d4b47a988dcd2b8b8457f266f">r123array16x8</a>
+, <a class="el" href="structr123array4x64.html#a904abc16c5828698aa8af5824b6a69c1aa1363fd51fd3dae2d8989711a11817ff">r123array4x64</a>
+, <a class="el" href="structr123array2x64.html#aa8ed42c5bf709f879674643a70e71dbca6219dc89b2a7ffde9b00364177f5b846">r123array2x64</a>
+, <a class="el" href="structr123array1x64.html#ab7fb5f41ed3716bce19489deb1dd4149a0c25e6a56a2c69eb7641adb24765e6af">r123array1x64</a>
+, <a class="el" href="structr123array8x32.html#aae848a29e2a9b3229fc7063440885c4fa2270c17b2a56aea106facc9a22b62be6">r123array8x32</a>
+, <a class="el" href="structr123array4x32.html#a3d387fea63ac50668e75faa8ebe4594aa80d43f91cd038fece63f219b9f4a36c6">r123array4x32</a>
+, <a class="el" href="structr123array2x32.html#ad6e438ec0d5a08bfb0b71a3ff96ea7e8a5ae3e9837bb88660b088443c1a6fb47a">r123array2x32</a>
+</li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/functions_func.html b/docs/html/functions_func.html
new file mode 100644
index 0000000..aced2d1
--- /dev/null
+++ b/docs/html/functions_func.html
@@ -0,0 +1,117 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Class Members - Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li class="current"><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="functions.html"><span>All</span></a></li>
+      <li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
+      <li><a href="functions_vars.html"><span>Variables</span></a></li>
+      <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+      <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="functions_rela.html"><span>Related Functions</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs3">
+    <ul class="tablist">
+      <li class="current"><a href="functions_func.html#index_a"><span>a</span></a></li>
+      <li><a href="functions_func_0x62.html#index_b"><span>b</span></a></li>
+      <li><a href="functions_func_0x63.html#index_c"><span>c</span></a></li>
+      <li><a href="functions_func_0x64.html#index_d"><span>d</span></a></li>
+      <li><a href="functions_func_0x65.html#index_e"><span>e</span></a></li>
+      <li><a href="functions_func_0x66.html#index_f"><span>f</span></a></li>
+      <li><a href="functions_func_0x67.html#index_g"><span>g</span></a></li>
+      <li><a href="functions_func_0x69.html#index_i"><span>i</span></a></li>
+      <li><a href="functions_func_0x6d.html#index_m"><span>m</span></a></li>
+      <li><a href="functions_func_0x6f.html#index_o"><span>o</span></a></li>
+      <li><a href="functions_func_0x72.html#index_r"><span>r</span></a></li>
+      <li><a href="functions_func_0x73.html#index_s"><span>s</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+ 
+
+<h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
+<li>aesni1xm128i_key_t()
+: <a class="el" href="structaesni1xm128i__key__t.html#af1002e5b771616db8f12c793fc994c41">aesni1xm128i_key_t</a>
+</li>
+<li>at()
+: <a class="el" href="structr123array16x8.html#a088dbabe23cf873de370af292052905e">r123array16x8</a>
+, <a class="el" href="structr123array4x64.html#a893d3db3d274fc15ac32bc7cbab0e82a">r123array4x64</a>
+, <a class="el" href="structr123array2x64.html#a971ddfa7c395d161028e16c829179f3c">r123array2x64</a>
+, <a class="el" href="structr123array1x64.html#af6cf7706792eb1e44902dd94df388726">r123array1x64</a>
+, <a class="el" href="structr123array8x32.html#a79f982be8c435215a5e812e88e500216">r123array8x32</a>
+, <a class="el" href="structr123array4x32.html#abdb3253eb03291895f89885298e17169">r123array4x32</a>
+, <a class="el" href="structr123array2x32.html#ae985b8811e4e8849d5f28dae76231dca">r123array2x32</a>
+, <a class="el" href="structr123array1x32.html#a1d57048b43ee45e2a94ef372b4707783">r123array1x32</a>
+, <a class="el" href="structr123array1xm128i.html#a5e8a81ee3f7c3b022554c0023a686700">r123array1xm128i</a>
+</li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/functions_func_0x62.html b/docs/html/functions_func_0x62.html
new file mode 100644
index 0000000..8b4e6d0
--- /dev/null
+++ b/docs/html/functions_func_0x62.html
@@ -0,0 +1,139 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Class Members - Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li class="current"><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="functions.html"><span>All</span></a></li>
+      <li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
+      <li><a href="functions_vars.html"><span>Variables</span></a></li>
+      <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+      <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="functions_rela.html"><span>Related Functions</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs3">
+    <ul class="tablist">
+      <li><a href="functions_func.html#index_a"><span>a</span></a></li>
+      <li class="current"><a href="functions_func_0x62.html#index_b"><span>b</span></a></li>
+      <li><a href="functions_func_0x63.html#index_c"><span>c</span></a></li>
+      <li><a href="functions_func_0x64.html#index_d"><span>d</span></a></li>
+      <li><a href="functions_func_0x65.html#index_e"><span>e</span></a></li>
+      <li><a href="functions_func_0x66.html#index_f"><span>f</span></a></li>
+      <li><a href="functions_func_0x67.html#index_g"><span>g</span></a></li>
+      <li><a href="functions_func_0x69.html#index_i"><span>i</span></a></li>
+      <li><a href="functions_func_0x6d.html#index_m"><span>m</span></a></li>
+      <li><a href="functions_func_0x6f.html#index_o"><span>o</span></a></li>
+      <li><a href="functions_func_0x72.html#index_r"><span>r</span></a></li>
+      <li><a href="functions_func_0x73.html#index_s"><span>s</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+ 
+
+<h3><a class="anchor" id="index_b"></a>- b -</h3><ul>
+<li>back()
+: <a class="el" href="structr123array1x32.html#a3738a65a648899db793e81b53c252785">r123array1x32</a>
+, <a class="el" href="structr123array2x32.html#ae176c02299531373a0fff9a5f55226e5">r123array2x32</a>
+, <a class="el" href="structr123array8x32.html#a73f5b5012b1e6595f727ef88e60a53ac">r123array8x32</a>
+, <a class="el" href="structr123array16x8.html#a6e5e98c20ae0e6bf4f8a897c08b0700e">r123array16x8</a>
+, <a class="el" href="structr123array1xm128i.html#a082b7b75374d69149ee03d1d228e2508">r123array1xm128i</a>
+, <a class="el" href="structr123array1x64.html#ab85790fdee269501a80fe31179efc9f8">r123array1x64</a>
+, <a class="el" href="structr123array1xm128i.html#a458be25b18c6e59d5c72e2c4d4ea6354">r123array1xm128i</a>
+, <a class="el" href="structr123array4x32.html#a70fd9b24cb3b126eb15c23049f786653">r123array4x32</a>
+, <a class="el" href="structr123array1x64.html#a2cd091b3015befa2b954ddab91271e39">r123array1x64</a>
+, <a class="el" href="structr123array2x64.html#a9beb3e776cb4f3cbee6846518749cb03">r123array2x64</a>
+, <a class="el" href="structr123array2x32.html#a3da7214b9946a3c8653312dcfa42a288">r123array2x32</a>
+, <a class="el" href="structr123array4x32.html#a4e1cba8583b2fac8cc3bf854956191c4">r123array4x32</a>
+, <a class="el" href="structr123array2x64.html#ac72fd3a39821ca25f94258f97da371c5">r123array2x64</a>
+, <a class="el" href="structr123array4x64.html#abb40868277e8a943a0b5464985baceb5">r123array4x64</a>
+, <a class="el" href="structr123array8x32.html#a1d4176e4ad6d70c98805e0c924d2df37">r123array8x32</a>
+, <a class="el" href="structr123array4x64.html#a9006cfe7882bbc791a81a52f7cc0fd2d">r123array4x64</a>
+, <a class="el" href="structr123array16x8.html#ae607d3b3d068aec88672241fc97948cb">r123array16x8</a>
+</li>
+<li>begin()
+: <a class="el" href="structr123array1x32.html#a86b7d754ff8dd69e0565edfdbd060cb4">r123array1x32</a>
+, <a class="el" href="structr123array16x8.html#a43182e95cb41660de5511bb5a3968cb8">r123array16x8</a>
+, <a class="el" href="structr123array1xm128i.html#a275c9837db101efb234c36cff3e7562f">r123array1xm128i</a>
+, <a class="el" href="structr123array2x32.html#aa52b394a0c44b755e5c0d0409dc2c4ea">r123array2x32</a>
+, <a class="el" href="structr123array4x32.html#a96a9c7e3ece3d2b128cf7f264af6ea3c">r123array4x32</a>
+, <a class="el" href="structr123array8x32.html#a7ae561c4d544e31f7bd2f256cb32f878">r123array8x32</a>
+, <a class="el" href="structr123array2x64.html#a0fcc60a49efd917a3b630cf53c526311">r123array2x64</a>
+, <a class="el" href="structr123array4x64.html#acd133812dbe01892199683e003921b8b">r123array4x64</a>
+, <a class="el" href="structr123array16x8.html#acef590bcf52e4a167c2388f4d1e0b20e">r123array16x8</a>
+, <a class="el" href="structr123array2x32.html#a96730b28149000a3ea4c6b0f05e1777b">r123array2x32</a>
+, <a class="el" href="structr123array4x32.html#a830254ee0db7bf12facf67f23428d2d9">r123array4x32</a>
+, <a class="el" href="structr123array1x64.html#a0fddc6603fe2eb4547aeb57498ffe3c2">r123array1x64</a>
+, <a class="el" href="structr123array4x64.html#ab78c67c429da6405f9d1ed5054635961">r123array4x64</a>
+, <a class="el" href="structr123array1x32.html#a19089b8de6c637803408512407a4da91">r123array1x32</a>
+, <a class="el" href="structr123array1x64.html#af9150347761c6df32673bbd2411e67d0">r123array1x64</a>
+</li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/functions_func_0x63.html b/docs/html/functions_func_0x63.html
new file mode 100644
index 0000000..05c3ea5
--- /dev/null
+++ b/docs/html/functions_func_0x63.html
@@ -0,0 +1,150 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Class Members - Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li class="current"><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="functions.html"><span>All</span></a></li>
+      <li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
+      <li><a href="functions_vars.html"><span>Variables</span></a></li>
+      <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+      <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="functions_rela.html"><span>Related Functions</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs3">
+    <ul class="tablist">
+      <li><a href="functions_func.html#index_a"><span>a</span></a></li>
+      <li><a href="functions_func_0x62.html#index_b"><span>b</span></a></li>
+      <li class="current"><a href="functions_func_0x63.html#index_c"><span>c</span></a></li>
+      <li><a href="functions_func_0x64.html#index_d"><span>d</span></a></li>
+      <li><a href="functions_func_0x65.html#index_e"><span>e</span></a></li>
+      <li><a href="functions_func_0x66.html#index_f"><span>f</span></a></li>
+      <li><a href="functions_func_0x67.html#index_g"><span>g</span></a></li>
+      <li><a href="functions_func_0x69.html#index_i"><span>i</span></a></li>
+      <li><a href="functions_func_0x6d.html#index_m"><span>m</span></a></li>
+      <li><a href="functions_func_0x6f.html#index_o"><span>o</span></a></li>
+      <li><a href="functions_func_0x72.html#index_r"><span>r</span></a></li>
+      <li><a href="functions_func_0x73.html#index_s"><span>s</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+ 
+
+<h3><a class="anchor" id="index_c"></a>- c -</h3><ul>
+<li>cbegin()
+: <a class="el" href="structr123array1x32.html#a4b0a02537590babd835dd16405775efe">r123array1x32</a>
+, <a class="el" href="structr123array2x32.html#a9687a1e6cdb6b6c9a1ffd8f3c7d2ce45">r123array2x32</a>
+, <a class="el" href="structr123array8x32.html#a06c19ba6155e9c98892f5b98fb482c21">r123array8x32</a>
+, <a class="el" href="structr123array16x8.html#a80520b3d7040a8d6ec7068c8a143ba6f">r123array16x8</a>
+, <a class="el" href="structr123array1xm128i.html#a335bab18a8bc904e34de0b3d9d1ce596">r123array1xm128i</a>
+, <a class="el" href="structr123array1x64.html#a33d1c19a63dec48f63f7c30c758fca0c">r123array1x64</a>
+, <a class="el" href="structr123array4x32.html#a4881e99f7b0ff88e2a3082b9e2464bf5">r123array4x32</a>
+, <a class="el" href="structr123array2x64.html#ad1ccbda4186dbb8c0a673db1ec0957c0">r123array2x64</a>
+, <a class="el" href="structr123array4x64.html#af716d2b14d1243870e8544ea2a3cece6">r123array4x64</a>
+</li>
+<li>cend()
+: <a class="el" href="structr123array4x64.html#af970ab87ce987c91097316bc0a0836ef">r123array4x64</a>
+, <a class="el" href="structr123array16x8.html#ad7919a7f772fda7d3fe3b476ac1e058f">r123array16x8</a>
+, <a class="el" href="structr123array1xm128i.html#aa05003cae74984b777610702d27d66d2">r123array1xm128i</a>
+, <a class="el" href="structr123array1x32.html#aa0f83d3e29c452d23c3660c98e3bd0e9">r123array1x32</a>
+, <a class="el" href="structr123array2x32.html#a9bb4382830c6feb49573b82bb9a18efc">r123array2x32</a>
+, <a class="el" href="structr123array4x32.html#a0045f9134801ed79d31f65c7d224d72c">r123array4x32</a>
+, <a class="el" href="structr123array8x32.html#a0e1dfc305279a3439789dbdda8bfb6ae">r123array8x32</a>
+, <a class="el" href="structr123array1x64.html#aa959a7054efa0d53f83f2d712d8d9049">r123array1x64</a>
+, <a class="el" href="structr123array2x64.html#ac80c7ce6fe5bd9ca8baf03db1e67a7e9">r123array2x64</a>
+</li>
+<li>counter()
+: <a class="el" href="classr123_1_1MicroURNG.html#a30f52334b7cfcbe6d86870496ca57ea6">r123::MicroURNG< CBRNG ></a>
+</li>
+<li>crbegin()
+: <a class="el" href="structr123array2x64.html#a198ff47db0778d88db4fabe5f7721564">r123array2x64</a>
+, <a class="el" href="structr123array1x32.html#abe59890575233ef259a69d38bea4b5d9">r123array1x32</a>
+, <a class="el" href="structr123array2x32.html#a09b34692bd41a710bf75e19af2353afb">r123array2x32</a>
+, <a class="el" href="structr123array16x8.html#a2ecc3c23f3ae3939a386b334f0556d73">r123array16x8</a>
+, <a class="el" href="structr123array8x32.html#a4ad5f793478a9658c52dc085b6c504ae">r123array8x32</a>
+, <a class="el" href="structr123array1xm128i.html#a673c6cd3131269febe9a985dc76a2e08">r123array1xm128i</a>
+, <a class="el" href="structr123array1x64.html#adac6c38fef501a997b39229f54a6459c">r123array1x64</a>
+, <a class="el" href="structr123array4x64.html#a7712a006a2b567321a6ac9e84bb267d8">r123array4x64</a>
+, <a class="el" href="structr123array4x32.html#ad65e3e63740dc2301442718b3b8aa440">r123array4x32</a>
+</li>
+<li>crend()
+: <a class="el" href="structr123array1x32.html#a7f0211b995c536c540c6b175d9433c74">r123array1x32</a>
+, <a class="el" href="structr123array4x32.html#a13322be3844d39f9de76d263fa8d1f75">r123array4x32</a>
+, <a class="el" href="structr123array1x64.html#a250e375c11846dc2635c7690f283cc20">r123array1x64</a>
+, <a class="el" href="structr123array8x32.html#ace0b6344aa8f0b9812a2610b6949a6b7">r123array8x32</a>
+, <a class="el" href="structr123array2x32.html#a458da2536084746b5f3face73c9f962d">r123array2x32</a>
+, <a class="el" href="structr123array4x64.html#a907eb18b7392479a8ad6b2ddfaaecbd2">r123array4x64</a>
+, <a class="el" href="structr123array2x64.html#a5bddb882c7c9a493c382d3ce0d6d6079">r123array2x64</a>
+, <a class="el" href="structr123array16x8.html#a2a98e77e851e130a98d44a14ce673ffd">r123array16x8</a>
+, <a class="el" href="structr123array1xm128i.html#aad72d00c81c8f6b9e8fb6b6be98056c6">r123array1xm128i</a>
+</li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/functions_func_0x64.html b/docs/html/functions_func_0x64.html
new file mode 100644
index 0000000..a49cb2a
--- /dev/null
+++ b/docs/html/functions_func_0x64.html
@@ -0,0 +1,119 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Class Members - Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li class="current"><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="functions.html"><span>All</span></a></li>
+      <li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
+      <li><a href="functions_vars.html"><span>Variables</span></a></li>
+      <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+      <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="functions_rela.html"><span>Related Functions</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs3">
+    <ul class="tablist">
+      <li><a href="functions_func.html#index_a"><span>a</span></a></li>
+      <li><a href="functions_func_0x62.html#index_b"><span>b</span></a></li>
+      <li><a href="functions_func_0x63.html#index_c"><span>c</span></a></li>
+      <li class="current"><a href="functions_func_0x64.html#index_d"><span>d</span></a></li>
+      <li><a href="functions_func_0x65.html#index_e"><span>e</span></a></li>
+      <li><a href="functions_func_0x66.html#index_f"><span>f</span></a></li>
+      <li><a href="functions_func_0x67.html#index_g"><span>g</span></a></li>
+      <li><a href="functions_func_0x69.html#index_i"><span>i</span></a></li>
+      <li><a href="functions_func_0x6d.html#index_m"><span>m</span></a></li>
+      <li><a href="functions_func_0x6f.html#index_o"><span>o</span></a></li>
+      <li><a href="functions_func_0x72.html#index_r"><span>r</span></a></li>
+      <li><a href="functions_func_0x73.html#index_s"><span>s</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+ 
+
+<h3><a class="anchor" id="index_d"></a>- d -</h3><ul>
+<li>data()
+: <a class="el" href="structr123array1x32.html#a71529eccd6d52d7c396d58fd71214d0b">r123array1x32</a>
+, <a class="el" href="structr123array1xm128i.html#ac66f2efebe9e32433b25f96ea3cf34fe">r123array1xm128i</a>
+, <a class="el" href="structr123array2x32.html#a15d5bce0ea3596ad5f7b5aa7432a33df">r123array2x32</a>
+, <a class="el" href="structr123array16x8.html#aac0eda610fbd60cdaae5d1e2aa4eb03f">r123array16x8</a>
+, <a class="el" href="structr123array4x64.html#a31591d0bca18339d42c3a182a30457a0">r123array4x64</a>
+, <a class="el" href="structr123array2x64.html#a9cdb592780378bdcc8a560e31e11f084">r123array2x64</a>
+, <a class="el" href="structr123array1x64.html#a02cd843e927803bd09f00b1a5541c72c">r123array1x64</a>
+, <a class="el" href="structr123array8x32.html#a0e2eb8cfaf36664411f19a6828339553">r123array8x32</a>
+, <a class="el" href="structr123array4x32.html#a20dd9fc18f9db8fe8e8eb08311398d22">r123array4x32</a>
+, <a class="el" href="structr123array16x8.html#aced4f7455fcc853a4e947b9bf892c45e">r123array16x8</a>
+, <a class="el" href="structr123array2x32.html#a76f2b3cd04d0502121b3c7894663e178">r123array2x32</a>
+</li>
+<li>discard()
+: <a class="el" href="structr123_1_1Engine.html#a82a56c2c02b146dceb68ef3fd0a969fb">r123::Engine< CBRNG ></a>
+</li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/functions_func_0x65.html b/docs/html/functions_func_0x65.html
new file mode 100644
index 0000000..ffd4faf
--- /dev/null
+++ b/docs/html/functions_func_0x65.html
@@ -0,0 +1,135 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Class Members - Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li class="current"><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="functions.html"><span>All</span></a></li>
+      <li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
+      <li><a href="functions_vars.html"><span>Variables</span></a></li>
+      <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+      <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="functions_rela.html"><span>Related Functions</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs3">
+    <ul class="tablist">
+      <li><a href="functions_func.html#index_a"><span>a</span></a></li>
+      <li><a href="functions_func_0x62.html#index_b"><span>b</span></a></li>
+      <li><a href="functions_func_0x63.html#index_c"><span>c</span></a></li>
+      <li><a href="functions_func_0x64.html#index_d"><span>d</span></a></li>
+      <li class="current"><a href="functions_func_0x65.html#index_e"><span>e</span></a></li>
+      <li><a href="functions_func_0x66.html#index_f"><span>f</span></a></li>
+      <li><a href="functions_func_0x67.html#index_g"><span>g</span></a></li>
+      <li><a href="functions_func_0x69.html#index_i"><span>i</span></a></li>
+      <li><a href="functions_func_0x6d.html#index_m"><span>m</span></a></li>
+      <li><a href="functions_func_0x6f.html#index_o"><span>o</span></a></li>
+      <li><a href="functions_func_0x72.html#index_r"><span>r</span></a></li>
+      <li><a href="functions_func_0x73.html#index_s"><span>s</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+ 
+
+<h3><a class="anchor" id="index_e"></a>- e -</h3><ul>
+<li>empty()
+: <a class="el" href="structr123array1x32.html#ae791cf5ce80a35610c3b4d52ea533651">r123array1x32</a>
+, <a class="el" href="structr123array2x32.html#acc67c9fedcddd77fdb2727c088eaab9d">r123array2x32</a>
+, <a class="el" href="structr123array8x32.html#af2276e84924345efab98214be1691c83">r123array8x32</a>
+, <a class="el" href="structr123array16x8.html#a5f07441771ec90cd05a2c26fb64e575e">r123array16x8</a>
+, <a class="el" href="structr123array1xm128i.html#aa3e59f1626f2cadab5bc66e415ff0c72">r123array1xm128i</a>
+, <a class="el" href="structr123array1x64.html#af8636ea61389dcf15e94a5da70bd6bc0">r123array1x64</a>
+, <a class="el" href="structr123array4x32.html#a4bc944eee354be2b258c0991d3cc61e1">r123array4x32</a>
+, <a class="el" href="structr123array2x64.html#a60ed2f5af6357930b50a8de8f294f5c2">r123array2x64</a>
+, <a class="el" href="structr123array4x64.html#a51e4ded187a3f1ebadd6b915da039c3f">r123array4x64</a>
+</li>
+<li>end()
+: <a class="el" href="structr123array1xm128i.html#a7383241079a4eae9fee0e184261174fd">r123array1xm128i</a>
+, <a class="el" href="structr123array16x8.html#aee42dddf2a59858114a31d760f2c1227">r123array16x8</a>
+, <a class="el" href="structr123array8x32.html#a40c40a7a86150ec0e9d29739e0e649c3">r123array8x32</a>
+, <a class="el" href="structr123array4x64.html#a9fed923c39000c81f7f6b608d88953f9">r123array4x64</a>
+, <a class="el" href="structr123array2x64.html#af16f99514770cb88a57e36b1b849e80d">r123array2x64</a>
+, <a class="el" href="structr123array8x32.html#acc1aa99ed89deb63c3ba7f71319ac10c">r123array8x32</a>
+, <a class="el" href="structr123array1x64.html#a18a5fa64dbe73dc4f9fd0b6c45fe283f">r123array1x64</a>
+, <a class="el" href="structr123array1x32.html#ac2b5032395c448c4598321f5a37ec29c">r123array1x32</a>
+, <a class="el" href="structr123array2x64.html#a24679f6a101d9d25b339106a771c4e68">r123array2x64</a>
+, <a class="el" href="structr123array4x32.html#ac6e732c58b1a5ad954c3b6f2be8385a1">r123array4x32</a>
+, <a class="el" href="structr123array1x32.html#a5bda32a4f4e8e783744ed7f183dde0b2">r123array1x32</a>
+, <a class="el" href="structr123array2x32.html#ad64dc05d5114c74d104bca45f21992fd">r123array2x32</a>
+, <a class="el" href="structr123array16x8.html#aa0d2b0c70133dde0535b0a5e12283626">r123array16x8</a>
+, <a class="el" href="structr123array1xm128i.html#ae8ddb01064f8cdfbb7314d2f1fbd0dfd">r123array1xm128i</a>
+, <a class="el" href="structr123array2x32.html#a0d98e92b198e8a314d46f9c6fd0771a7">r123array2x32</a>
+, <a class="el" href="structr123array4x32.html#a83dd3d17e17bb6a93b7cd544b0e9a403">r123array4x32</a>
+</li>
+<li>Engine()
+: <a class="el" href="structr123_1_1Engine.html#a37dd55cee849b59d678f74780f785672">r123::Engine< CBRNG ></a>
+</li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/functions_func_0x66.html b/docs/html/functions_func_0x66.html
new file mode 100644
index 0000000..d1717c7
--- /dev/null
+++ b/docs/html/functions_func_0x66.html
@@ -0,0 +1,131 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Class Members - Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li class="current"><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="functions.html"><span>All</span></a></li>
+      <li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
+      <li><a href="functions_vars.html"><span>Variables</span></a></li>
+      <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+      <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="functions_rela.html"><span>Related Functions</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs3">
+    <ul class="tablist">
+      <li><a href="functions_func.html#index_a"><span>a</span></a></li>
+      <li><a href="functions_func_0x62.html#index_b"><span>b</span></a></li>
+      <li><a href="functions_func_0x63.html#index_c"><span>c</span></a></li>
+      <li><a href="functions_func_0x64.html#index_d"><span>d</span></a></li>
+      <li><a href="functions_func_0x65.html#index_e"><span>e</span></a></li>
+      <li class="current"><a href="functions_func_0x66.html#index_f"><span>f</span></a></li>
+      <li><a href="functions_func_0x67.html#index_g"><span>g</span></a></li>
+      <li><a href="functions_func_0x69.html#index_i"><span>i</span></a></li>
+      <li><a href="functions_func_0x6d.html#index_m"><span>m</span></a></li>
+      <li><a href="functions_func_0x6f.html#index_o"><span>o</span></a></li>
+      <li><a href="functions_func_0x72.html#index_r"><span>r</span></a></li>
+      <li><a href="functions_func_0x73.html#index_s"><span>s</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+ 
+
+<h3><a class="anchor" id="index_f"></a>- f -</h3><ul>
+<li>fill()
+: <a class="el" href="structr123array1x32.html#a973dbecc59b1d5f5a95bda92d25e5e73">r123array1x32</a>
+, <a class="el" href="structr123array2x32.html#af7ea9ed8a064e9cab59ee97885bb459e">r123array2x32</a>
+, <a class="el" href="structr123array8x32.html#a86481aecfb276687e9389cb6c43e1e8c">r123array8x32</a>
+, <a class="el" href="structr123array16x8.html#a883d42092ab4bae2eac132706ed06103">r123array16x8</a>
+, <a class="el" href="structr123array1xm128i.html#a7eba15dc035724245f70b4a3a98c6a52">r123array1xm128i</a>
+, <a class="el" href="structr123array1x64.html#ac9a372e0980632a4db29bb243b672039">r123array1x64</a>
+, <a class="el" href="structr123array4x32.html#ae362d7908c2ecc308f6fd4e085ace980">r123array4x32</a>
+, <a class="el" href="structr123array2x64.html#a30d20bbf203dbd0b592c6cb58cb6dcdb">r123array2x64</a>
+, <a class="el" href="structr123array4x64.html#a6580c77b7d68c0a76b5bef33e59ac662">r123array4x64</a>
+</li>
+<li>fix_invariant()
+: <a class="el" href="structr123_1_1Engine.html#aa7ad87d7238a0f820ee37640071dee7d">r123::Engine< CBRNG ></a>
+</li>
+<li>front()
+: <a class="el" href="structr123array1x64.html#a7d205216932e36303f62b38d233247d5">r123array1x64</a>
+, <a class="el" href="structr123array8x32.html#aee2127f4a99f86b3fc7a9059e7d84e76">r123array8x32</a>
+, <a class="el" href="structr123array4x32.html#ab3434550aea3d2e04579cb255b0b4e9e">r123array4x32</a>
+, <a class="el" href="structr123array2x32.html#a933676c34296b74eeea8a56a3c904a2c">r123array2x32</a>
+, <a class="el" href="structr123array1x32.html#af94d0df621b1de0b6a3ed904c276eb84">r123array1x32</a>
+, <a class="el" href="structr123array16x8.html#ad293e6494e131ff96941e963d9208586">r123array16x8</a>
+, <a class="el" href="structr123array1xm128i.html#a7efd9b7ccf35c3730fbdafb147e11660">r123array1xm128i</a>
+, <a class="el" href="structr123array2x64.html#a21cf5457f945f5c00b16ce4a73797c1b">r123array2x64</a>
+, <a class="el" href="structr123array4x64.html#a975ecaf4c5332fc400dfc8d6d60d9035">r123array4x64</a>
+, <a class="el" href="structr123array16x8.html#a85528130b6941b3f7b57265c201345c2">r123array16x8</a>
+, <a class="el" href="structr123array2x64.html#a95b79f70de75c8346dbae7c5f933d076">r123array2x64</a>
+, <a class="el" href="structr123array1x64.html#a7c0a3159492b3405a8019ce52cdf2c69">r123array1x64</a>
+</li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/functions_func_0x67.html b/docs/html/functions_func_0x67.html
new file mode 100644
index 0000000..e018c1c
--- /dev/null
+++ b/docs/html/functions_func_0x67.html
@@ -0,0 +1,109 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Class Members - Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li class="current"><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="functions.html"><span>All</span></a></li>
+      <li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
+      <li><a href="functions_vars.html"><span>Variables</span></a></li>
+      <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+      <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="functions_rela.html"><span>Related Functions</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs3">
+    <ul class="tablist">
+      <li><a href="functions_func.html#index_a"><span>a</span></a></li>
+      <li><a href="functions_func_0x62.html#index_b"><span>b</span></a></li>
+      <li><a href="functions_func_0x63.html#index_c"><span>c</span></a></li>
+      <li><a href="functions_func_0x64.html#index_d"><span>d</span></a></li>
+      <li><a href="functions_func_0x65.html#index_e"><span>e</span></a></li>
+      <li><a href="functions_func_0x66.html#index_f"><span>f</span></a></li>
+      <li class="current"><a href="functions_func_0x67.html#index_g"><span>g</span></a></li>
+      <li><a href="functions_func_0x69.html#index_i"><span>i</span></a></li>
+      <li><a href="functions_func_0x6d.html#index_m"><span>m</span></a></li>
+      <li><a href="functions_func_0x6f.html#index_o"><span>o</span></a></li>
+      <li><a href="functions_func_0x72.html#index_r"><span>r</span></a></li>
+      <li><a href="functions_func_0x73.html#index_s"><span>s</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+ 
+
+<h3><a class="anchor" id="index_g"></a>- g -</h3><ul>
+<li>getcounter()
+: <a class="el" href="structr123_1_1Engine.html#a621df886f2a21ffb22e63d9094389173">r123::Engine< CBRNG ></a>
+</li>
+<li>getseed()
+: <a class="el" href="structr123_1_1Engine.html#aa7812a494fdb677c2e325db0acfe924a">r123::Engine< CBRNG ></a>
+</li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/functions_func_0x69.html b/docs/html/functions_func_0x69.html
new file mode 100644
index 0000000..a40641c
--- /dev/null
+++ b/docs/html/functions_func_0x69.html
@@ -0,0 +1,125 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Class Members - Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li class="current"><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="functions.html"><span>All</span></a></li>
+      <li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
+      <li><a href="functions_vars.html"><span>Variables</span></a></li>
+      <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+      <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="functions_rela.html"><span>Related Functions</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs3">
+    <ul class="tablist">
+      <li><a href="functions_func.html#index_a"><span>a</span></a></li>
+      <li><a href="functions_func_0x62.html#index_b"><span>b</span></a></li>
+      <li><a href="functions_func_0x63.html#index_c"><span>c</span></a></li>
+      <li><a href="functions_func_0x64.html#index_d"><span>d</span></a></li>
+      <li><a href="functions_func_0x65.html#index_e"><span>e</span></a></li>
+      <li><a href="functions_func_0x66.html#index_f"><span>f</span></a></li>
+      <li><a href="functions_func_0x67.html#index_g"><span>g</span></a></li>
+      <li class="current"><a href="functions_func_0x69.html#index_i"><span>i</span></a></li>
+      <li><a href="functions_func_0x6d.html#index_m"><span>m</span></a></li>
+      <li><a href="functions_func_0x6f.html#index_o"><span>o</span></a></li>
+      <li><a href="functions_func_0x72.html#index_r"><span>r</span></a></li>
+      <li><a href="functions_func_0x73.html#index_s"><span>s</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+ 
+
+<h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
+<li>incr()
+: <a class="el" href="structr123array1x32.html#aae5fbc153a37b06ea466f2283551622f">r123array1x32</a>
+, <a class="el" href="structr123array2x32.html#a7b295f3a299c8cf24a75ab7f9edfe46f">r123array2x32</a>
+, <a class="el" href="structr123array8x32.html#a92ded324d4b7e2602766fa0c71fa5985">r123array8x32</a>
+, <a class="el" href="structr123array16x8.html#aaf2d677b347b7c7bf362a2b318f46e3c">r123array16x8</a>
+, <a class="el" href="structr123array1xm128i.html#a62ee236dafcbfb81ef43d7aa82a66b47">r123array1xm128i</a>
+, <a class="el" href="structr123array1x64.html#ad44244e95f8937e0874dec9083071a85">r123array1x64</a>
+, <a class="el" href="structr123array4x32.html#a36515eb50711e36a88f1390bbd4e0e05">r123array4x32</a>
+, <a class="el" href="structr123array2x64.html#ac33e6336c8aee10e38259510ef76e5cf">r123array2x64</a>
+, <a class="el" href="structr123array4x64.html#ac4187b4ae44913183b1c8f9b7654f8a9">r123array4x64</a>
+</li>
+<li>incr_carefully()
+: <a class="el" href="structr123array1x32.html#a9c919289274ced376086f1110c8b6384">r123array1x32</a>
+, <a class="el" href="structr123array16x8.html#abbc6c2d9cdc2187cdfdea759951498a0">r123array16x8</a>
+, <a class="el" href="structr123array1xm128i.html#ab35cfd8e9221c294ab7546855373a38c">r123array1xm128i</a>
+, <a class="el" href="structr123array4x32.html#acec3775361651e6f8dea517f07d7a8b8">r123array4x32</a>
+, <a class="el" href="structr123array8x32.html#a9e73ed67b7c577ebdb6c5e1f121fdc4f">r123array8x32</a>
+, <a class="el" href="structr123array2x64.html#a52ddbfa3edbd9fa7f30e1402a9240da1">r123array2x64</a>
+, <a class="el" href="structr123array4x64.html#af629d14b454f406cae4d128d9e05554d">r123array4x64</a>
+, <a class="el" href="structr123array2x32.html#adf128cb5c0abaaa4f119d4bcef47ead9">r123array2x32</a>
+, <a class="el" href="structr123array1x64.html#ad848dc3e868f8195ee3eb5029698c976">r123array1x64</a>
+</li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/functions_func_0x6d.html b/docs/html/functions_func_0x6d.html
new file mode 100644
index 0000000..9707686
--- /dev/null
+++ b/docs/html/functions_func_0x6d.html
@@ -0,0 +1,117 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Class Members - Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li class="current"><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="functions.html"><span>All</span></a></li>
+      <li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
+      <li><a href="functions_vars.html"><span>Variables</span></a></li>
+      <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+      <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="functions_rela.html"><span>Related Functions</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs3">
+    <ul class="tablist">
+      <li><a href="functions_func.html#index_a"><span>a</span></a></li>
+      <li><a href="functions_func_0x62.html#index_b"><span>b</span></a></li>
+      <li><a href="functions_func_0x63.html#index_c"><span>c</span></a></li>
+      <li><a href="functions_func_0x64.html#index_d"><span>d</span></a></li>
+      <li><a href="functions_func_0x65.html#index_e"><span>e</span></a></li>
+      <li><a href="functions_func_0x66.html#index_f"><span>f</span></a></li>
+      <li><a href="functions_func_0x67.html#index_g"><span>g</span></a></li>
+      <li><a href="functions_func_0x69.html#index_i"><span>i</span></a></li>
+      <li class="current"><a href="functions_func_0x6d.html#index_m"><span>m</span></a></li>
+      <li><a href="functions_func_0x6f.html#index_o"><span>o</span></a></li>
+      <li><a href="functions_func_0x72.html#index_r"><span>r</span></a></li>
+      <li><a href="functions_func_0x73.html#index_s"><span>s</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+ 
+
+<h3><a class="anchor" id="index_m"></a>- m -</h3><ul>
+<li>max_size()
+: <a class="el" href="structr123array1x32.html#a707c532168670ad508723d057f712928">r123array1x32</a>
+, <a class="el" href="structr123array2x32.html#a07345b400c5a81e6cd55689d1e38122f">r123array2x32</a>
+, <a class="el" href="structr123array8x32.html#a0ea0af65a3b0a51c090ab6ef11f20c63">r123array8x32</a>
+, <a class="el" href="structr123array16x8.html#a3f59fb2b338aa8e33879e8d2d22840ed">r123array16x8</a>
+, <a class="el" href="structr123array1xm128i.html#a04e2b8952459b7aeabc011532fe3f8fa">r123array1xm128i</a>
+, <a class="el" href="structr123array4x64.html#aad1329f21e3fdd5d25a29148db564b8a">r123array4x64</a>
+, <a class="el" href="structr123array2x64.html#a03f7c9e37e59210b1d2b9390e415e289">r123array2x64</a>
+, <a class="el" href="structr123array1x64.html#a1b02d097ca118866b7f696b7c1c5681f">r123array1x64</a>
+, <a class="el" href="structr123array4x32.html#afddfc77eea0f5f4c53dc075425f96ab3">r123array4x32</a>
+</li>
+<li>MicroURNG()
+: <a class="el" href="classr123_1_1MicroURNG.html#a19afb80312c370e1670bf8afc73d802e">r123::MicroURNG< CBRNG ></a>
+</li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/functions_func_0x6f.html b/docs/html/functions_func_0x6f.html
new file mode 100644
index 0000000..d8cf212
--- /dev/null
+++ b/docs/html/functions_func_0x6f.html
@@ -0,0 +1,172 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Class Members - Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li class="current"><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="functions.html"><span>All</span></a></li>
+      <li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
+      <li><a href="functions_vars.html"><span>Variables</span></a></li>
+      <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+      <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="functions_rela.html"><span>Related Functions</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs3">
+    <ul class="tablist">
+      <li><a href="functions_func.html#index_a"><span>a</span></a></li>
+      <li><a href="functions_func_0x62.html#index_b"><span>b</span></a></li>
+      <li><a href="functions_func_0x63.html#index_c"><span>c</span></a></li>
+      <li><a href="functions_func_0x64.html#index_d"><span>d</span></a></li>
+      <li><a href="functions_func_0x65.html#index_e"><span>e</span></a></li>
+      <li><a href="functions_func_0x66.html#index_f"><span>f</span></a></li>
+      <li><a href="functions_func_0x67.html#index_g"><span>g</span></a></li>
+      <li><a href="functions_func_0x69.html#index_i"><span>i</span></a></li>
+      <li><a href="functions_func_0x6d.html#index_m"><span>m</span></a></li>
+      <li class="current"><a href="functions_func_0x6f.html#index_o"><span>o</span></a></li>
+      <li><a href="functions_func_0x72.html#index_r"><span>r</span></a></li>
+      <li><a href="functions_func_0x73.html#index_s"><span>s</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+ 
+
+<h3><a class="anchor" id="index_o"></a>- o -</h3><ul>
+<li>operator __m128i()
+: <a class="el" href="structr123m128i.html#a80a5c24f76fec61b3ab0ed0e0353cfb7">r123m128i</a>
+</li>
+<li>operator const void *()
+: <a class="el" href="structr123m128i.html#ae5788785c2ce7f7ca6ff8dd4377771f3">r123m128i</a>
+</li>
+<li>operator!=()
+: <a class="el" href="structr123array2x32.html#aa0c7e561ddeb475329ea8d8178fca2a1">r123array2x32</a>
+, <a class="el" href="structr123array2x64.html#a1ddc25ec182ac3b119e420f5e21c3f87">r123array2x64</a>
+, <a class="el" href="structr123array4x64.html#abf2fc58ddb163708c087f72921dfd11d">r123array4x64</a>
+, <a class="el" href="structr123array4x32.html#a1a7aa47c8dd7db5146e54cc54d1d4358">r123array4x32</a>
+, <a class="el" href="structr123array16x8.html#af48be55844748a0f6406b2ae437398b5">r123array16x8</a>
+, <a class="el" href="structr123array1xm128i.html#a60cf5b0e8283c20c386a7935f9ae0a60">r123array1xm128i</a>
+, <a class="el" href="structr123array1x32.html#af293f370d083051f6cf24408e07feff1">r123array1x32</a>
+, <a class="el" href="structr123array8x32.html#aed510e0472db9b00490c468d88e14bac">r123array8x32</a>
+, <a class="el" href="structr123array1x64.html#a0969493a7aac290e5ab2a5135380bc3d">r123array1x64</a>
+</li>
+<li>operator()()
+: <a class="el" href="classr123_1_1MicroURNG.html#a64cd4d33b4cab5d3d9c556db68407b77">r123::MicroURNG< CBRNG ></a>
+, <a class="el" href="structr123_1_1Philox2x32__R.html#ab610a200c9fa62d090f31466b655c780">r123::Philox2x32_R< ROUNDS ></a>
+, <a class="el" href="structr123_1_1Philox4x32__R.html#adf05bdc0c856c9541db656711fd8c7d1">r123::Philox4x32_R< ROUNDS ></a>
+, <a class="el" href="structr123_1_1Philox2x64__R.html#a04f6039e87a958593ac011d9304d7ec9">r123::Philox2x64_R< ROUNDS ></a>
+, <a class="el" href="structr123_1_1Philox4x64__R.html#aa5a0488aa6e16c55b7647c155b18462c">r123::Philox4x64_R< ROUNDS ></a>
+, <a class="el" href="structr123_1_1ReinterpretCtr.html#a91edc5103397372cc5509ad17c0fc83a">r123::ReinterpretCtr< ToType, CBRNG ></a>
+, <a class="el" href="structr123_1_1Threefry2x32__R.html#a64b8018e82f3e7a0e252166b15b42a71">r123::Threefry2x32_R< R ></a>
+, <a class="el" href="structr123_1_1Threefry4x32__R.html#ae0dfbf399015fab602c769ad90256231">r123::Threefry4x32_R< R ></a>
+, <a class="el" href="structr123_1_1AESNI1xm128i.html#a9bff0ac8478400c1006136e9bde91dc3">r123::AESNI1xm128i</a>
+, <a class="el" href="structr123_1_1Threefry2x64__R.html#ab654a85f2c4ec65548ddfc85dc00f27e">r123::Threefry2x64_R< R ></a>
+, <a class="el" href="structr123_1_1Threefry4x64__R.html#a09e7fb82f9b7bcf6ccb4d849116b6ec1">r123::Threefry4x64_R< R ></a>
+, <a class="el" href="structr123_1_1AESNI4x32.html#a981102e5bc0a7df916a95a40af8fd4c0">r123::AESNI4x32</a>
+, <a class="el" href="structr123_1_1Engine.html#aca309d0b4f2a8fff1f6f2ab38c6caf93">r123::Engine< CBRNG ></a>
+, <a class="el" href="structr123_1_1ARS1xm128i__R.html#a89c0fc4e1c90ee684fc88dde05d8d82c">r123::ARS1xm128i_R< ROUNDS ></a>
+, <a class="el" href="structr123_1_1ARS4x32__R.html#afcd326e150925e30de22166e727567df">r123::ARS4x32_R< ROUNDS ></a>
+</li>
+<li>operator=()
+: <a class="el" href="structaesni1xm128i__key__t.html#acb24fef68c539f1a6ea217ee8ada185d">aesni1xm128i_key_t</a>
+, <a class="el" href="structr123m128i.html#a9842fbc85102e0019cc58d97c28e2d02">r123m128i</a>
+</li>
+<li>operator==()
+: <a class="el" href="structr123array1x32.html#a61140a0fb8983a3018a2b98903d14047">r123array1x32</a>
+, <a class="el" href="structr123array2x32.html#aa8723e5786c66137e82405a532459b2d">r123array2x32</a>
+, <a class="el" href="structr123array4x32.html#a14123fe9160e559a83e61ab6c2901759">r123array4x32</a>
+, <a class="el" href="structr123array8x32.html#ae9ffa98997557c87b0a08b6ed2835155">r123array8x32</a>
+, <a class="el" href="structr123array1x64.html#a65018edc8a8596e8bdb7500926544a4a">r123array1x64</a>
+, <a class="el" href="structr123array2x64.html#aa690f425f846ff9908a734eb720df573">r123array2x64</a>
+, <a class="el" href="structr123array4x64.html#afada659cc4a54a1416dca2522885cef1">r123array4x64</a>
+, <a class="el" href="structr123array1xm128i.html#aa459abf9fe8d15019860de5b3b0cddf8">r123array1xm128i</a>
+, <a class="el" href="structr123array16x8.html#a4d3ed48f2b716382ea874a968a2b7174">r123array16x8</a>
+</li>
+<li>operator[]()
+: <a class="el" href="structr123array1x64.html#a10fbaabd5223f286d6e396e15227569c">r123array1x64</a>
+, <a class="el" href="structr123array8x32.html#a2b0d17077d419e9f296318161fcc0470">r123array8x32</a>
+, <a class="el" href="structr123array1x64.html#aa13b237c78d719ecfb5a59cdd557c889">r123array1x64</a>
+, <a class="el" href="structr123array4x32.html#a3161a139a59a1196398d5d4b81d740df">r123array4x32</a>
+, <a class="el" href="structr123array1xm128i.html#aaa3ccbe6c0838b5bdafcd0dfa3c2c074">r123array1xm128i</a>
+, <a class="el" href="structr123array2x64.html#ae534a7e32afae58303ccc8379408551b">r123array2x64</a>
+, <a class="el" href="structr123array1xm128i.html#aba0d6532c59c3c879bcfbad16cab5748">r123array1xm128i</a>
+, <a class="el" href="structr123array16x8.html#abe9f2b18e2e3b89e00725f6fa69b8236">r123array16x8</a>
+, <a class="el" href="structr123array2x32.html#a9926f6938472682c5d31a742378f17de">r123array2x32</a>
+, <a class="el" href="structr123array1x32.html#a05cf21fa6a647c73763da02d4b7e2f2a">r123array1x32</a>
+, <a class="el" href="structr123array2x64.html#a7352cdb2c025b0373ece5c84409a1b1d">r123array2x64</a>
+, <a class="el" href="structr123array8x32.html#ace7ad1b4aca1ad419c373d9cff872805">r123array8x32</a>
+, <a class="el" href="structr123array1x32.html#aa47bb157c60858c1b0ef69df79646a3b">r123array1x32</a>
+, <a class="el" href="structr123array16x8.html#a013713c00f6e8a5adb7be77388c22d8f">r123array16x8</a>
+, <a class="el" href="structr123array4x64.html#a27c2001bf5af042aa450f17637646bd3">r123array4x64</a>
+, <a class="el" href="structr123array2x32.html#a0ae33a5edf89f9f12edec38209b02464">r123array2x32</a>
+, <a class="el" href="structr123array4x32.html#aa1fef4a0eb551a70d1ec5d766efcffb5">r123array4x32</a>
+, <a class="el" href="structr123array4x64.html#adf867ee2ffc437a3f358431d3729a33d">r123array4x64</a>
+</li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/functions_func_0x72.html b/docs/html/functions_func_0x72.html
new file mode 100644
index 0000000..7ec8688
--- /dev/null
+++ b/docs/html/functions_func_0x72.html
@@ -0,0 +1,149 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Class Members - Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li class="current"><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="functions.html"><span>All</span></a></li>
+      <li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
+      <li><a href="functions_vars.html"><span>Variables</span></a></li>
+      <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+      <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="functions_rela.html"><span>Related Functions</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs3">
+    <ul class="tablist">
+      <li><a href="functions_func.html#index_a"><span>a</span></a></li>
+      <li><a href="functions_func_0x62.html#index_b"><span>b</span></a></li>
+      <li><a href="functions_func_0x63.html#index_c"><span>c</span></a></li>
+      <li><a href="functions_func_0x64.html#index_d"><span>d</span></a></li>
+      <li><a href="functions_func_0x65.html#index_e"><span>e</span></a></li>
+      <li><a href="functions_func_0x66.html#index_f"><span>f</span></a></li>
+      <li><a href="functions_func_0x67.html#index_g"><span>g</span></a></li>
+      <li><a href="functions_func_0x69.html#index_i"><span>i</span></a></li>
+      <li><a href="functions_func_0x6d.html#index_m"><span>m</span></a></li>
+      <li><a href="functions_func_0x6f.html#index_o"><span>o</span></a></li>
+      <li class="current"><a href="functions_func_0x72.html#index_r"><span>r</span></a></li>
+      <li><a href="functions_func_0x73.html#index_s"><span>s</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+ 
+
+<h3><a class="anchor" id="index_r"></a>- r -</h3><ul>
+<li>R123_NO_MACRO_SUBST()
+: <a class="el" href="classr123_1_1MicroURNG.html#aa05c857c01053cf9185406d69757b101">r123::MicroURNG< CBRNG ></a>
+, <a class="el" href="structr123_1_1Engine.html#a112318f7d0015ecf4c3c6a8a5c76371b">r123::Engine< CBRNG ></a>
+</li>
+<li>rbegin()
+: <a class="el" href="structr123array2x32.html#a00afca78e25bbb9e0b00e6ab95ecb162">r123array2x32</a>
+, <a class="el" href="structr123array2x64.html#ad6720531d85d0c284ce32cde3b82a9da">r123array2x64</a>
+, <a class="el" href="structr123array4x64.html#a102f75427ce01bea725da02b975834b5">r123array4x64</a>
+, <a class="el" href="structr123array4x32.html#aea9aae067d8347aa53a12a4c9948ae9a">r123array4x32</a>
+, <a class="el" href="structr123array4x64.html#a7ccc255ba0e1803080b117703dc3dc70">r123array4x64</a>
+, <a class="el" href="structr123array16x8.html#a5023769f3e418e15a707501aaaac5487">r123array16x8</a>
+, <a class="el" href="structr123array1x32.html#a0c91373623da349c09b952f616b7f5e9">r123array1x32</a>
+, <a class="el" href="structr123array4x32.html#aadb177f7f316ae47deeea20a686e7909">r123array4x32</a>
+, <a class="el" href="structr123array16x8.html#a5da4b6af6ebaf8cc8204713a993a860c">r123array16x8</a>
+, <a class="el" href="structr123array1xm128i.html#a78034de911e765ed64162c894fe2ce05">r123array1xm128i</a>
+, <a class="el" href="structr123array8x32.html#a0a143a573df3282ba5b9cb2190047cca">r123array8x32</a>
+, <a class="el" href="structr123array1xm128i.html#acd4e73f214be1dfaae5d2e20559083eb">r123array1xm128i</a>
+, <a class="el" href="structr123array1x32.html#aacb0604c956b8e50b057a6034c78069c">r123array1x32</a>
+, <a class="el" href="structr123array8x32.html#a959345559456fbc9e7e72d03a72a032c">r123array8x32</a>
+, <a class="el" href="structr123array1x64.html#a56196452051f26a10a4bb3c3d7b75fd0">r123array1x64</a>
+, <a class="el" href="structr123array2x32.html#a54e96198e6cd511dc147348f274b0784">r123array2x32</a>
+, <a class="el" href="structr123array1x64.html#a5b080aafd94d77efda03730b6f853334">r123array1x64</a>
+, <a class="el" href="structr123array2x64.html#a6888b98627db6056afe3f4ee3396a9a6">r123array2x64</a>
+</li>
+<li>rend()
+: <a class="el" href="structr123array2x64.html#ad1e373b457921fc672ed8892180431eb">r123array2x64</a>
+, <a class="el" href="structr123array4x64.html#a25538a452f6e709bacfc9f49b7216280">r123array4x64</a>
+, <a class="el" href="structr123array16x8.html#a252b937d65e7b04e5bc507d43643441f">r123array16x8</a>
+, <a class="el" href="structr123array1xm128i.html#a1599d2154e1f407bef2d556c985b0c21">r123array1xm128i</a>
+, <a class="el" href="structr123array1x64.html#a19f9d7dd7371c20fc5001d864da453ff">r123array1x64</a>
+, <a class="el" href="structr123array1x32.html#a7a55225361d3e9e6f037daa13d340fc4">r123array1x32</a>
+, <a class="el" href="structr123array2x32.html#ab3f0841dcd9cea6255406b7bc6363621">r123array2x32</a>
+, <a class="el" href="structr123array4x32.html#a368f69bdd03a9af1c6254daf98496dbd">r123array4x32</a>
+, <a class="el" href="structr123array8x32.html#aa84fc75185aedca379d23c0220b5c64a">r123array8x32</a>
+, <a class="el" href="structr123array1x64.html#aa0f756e941d0e417355d940fd0ed3a33">r123array1x64</a>
+, <a class="el" href="structr123array4x64.html#a71f59163070cb4cfd7ddda6f4f8576a1">r123array4x64</a>
+, <a class="el" href="structr123array2x64.html#ad96f87786a8a277bf553d0c5584c20c1">r123array2x64</a>
+, <a class="el" href="structr123array8x32.html#afcf1ea68c3cd0ce7ff6de11d3030eb93">r123array8x32</a>
+, <a class="el" href="structr123array1xm128i.html#aeb47d483223e3e29f6ad156e5c356a20">r123array1xm128i</a>
+, <a class="el" href="structr123array4x32.html#a7b2af2db2af5f90c8a3f5f7014193d72">r123array4x32</a>
+, <a class="el" href="structr123array16x8.html#a286fef704fcf11e9f00d73703b7ab36b">r123array16x8</a>
+, <a class="el" href="structr123array2x32.html#a383edbf33737eb3e5098d6da4ed326f8">r123array2x32</a>
+</li>
+<li>reset()
+: <a class="el" href="classr123_1_1MicroURNG.html#add2f214254ddc2291e3b2c8b5dbe791a">r123::MicroURNG< CBRNG ></a>
+</li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/functions_func_0x73.html b/docs/html/functions_func_0x73.html
new file mode 100644
index 0000000..350a4f0
--- /dev/null
+++ b/docs/html/functions_func_0x73.html
@@ -0,0 +1,142 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Class Members - Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li class="current"><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="functions.html"><span>All</span></a></li>
+      <li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
+      <li><a href="functions_vars.html"><span>Variables</span></a></li>
+      <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+      <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="functions_rela.html"><span>Related Functions</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs3">
+    <ul class="tablist">
+      <li><a href="functions_func.html#index_a"><span>a</span></a></li>
+      <li><a href="functions_func_0x62.html#index_b"><span>b</span></a></li>
+      <li><a href="functions_func_0x63.html#index_c"><span>c</span></a></li>
+      <li><a href="functions_func_0x64.html#index_d"><span>d</span></a></li>
+      <li><a href="functions_func_0x65.html#index_e"><span>e</span></a></li>
+      <li><a href="functions_func_0x66.html#index_f"><span>f</span></a></li>
+      <li><a href="functions_func_0x67.html#index_g"><span>g</span></a></li>
+      <li><a href="functions_func_0x69.html#index_i"><span>i</span></a></li>
+      <li><a href="functions_func_0x6d.html#index_m"><span>m</span></a></li>
+      <li><a href="functions_func_0x6f.html#index_o"><span>o</span></a></li>
+      <li><a href="functions_func_0x72.html#index_r"><span>r</span></a></li>
+      <li class="current"><a href="functions_func_0x73.html#index_s"><span>s</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+ 
+
+<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
+<li>seed()
+: <a class="el" href="structr123array1x32.html#adf914fa4384acfcfa1750fd47b758f42">r123array1x32</a>
+, <a class="el" href="structr123array2x32.html#a31cf9b80bbcc3c976681b878b7afa046">r123array2x32</a>
+, <a class="el" href="structr123array8x32.html#a93139b379ce88e16f75eb9edcf40b357">r123array8x32</a>
+, <a class="el" href="structr123array16x8.html#aef0741829d359c31ad913a6770661895">r123array16x8</a>
+, <a class="el" href="structr123array1xm128i.html#a6645aeddeb992559150089c49ac335c8">r123array1xm128i</a>
+, <a class="el" href="structr123array1x64.html#a69be3aa9c2588ce86b5ebb72649ce684">r123array1x64</a>
+, <a class="el" href="structr123_1_1Engine.html#a93429593bdb12b202b4b8ed38fe08bc4">r123::Engine< CBRNG ></a>
+, <a class="el" href="structr123array4x32.html#acdaad089dc0e44da5818ebda8404bd16">r123array4x32</a>
+, <a class="el" href="structr123array2x64.html#a3e5afc5e4c6886611630cec365d8397b">r123array2x64</a>
+, <a class="el" href="structr123_1_1Engine.html#aff36bc97d11bc66f6c0edb75d8dc88e5">r123::Engine< CBRNG ></a>
+, <a class="el" href="structr123array4x64.html#a6f0133930367a2260ed5a132bf737131">r123array4x64</a>
+, <a class="el" href="structr123_1_1Engine.html#a7bd6d3417cefb904c879f41d2c29e15e">r123::Engine< CBRNG ></a>
+</li>
+<li>setcounter()
+: <a class="el" href="structr123_1_1Engine.html#a6104bf5ee89450403379d5680bfae172">r123::Engine< CBRNG ></a>
+</li>
+<li>size()
+: <a class="el" href="structr123array8x32.html#aa4025fb7c1ef2c3376bdc9ae88b91553">r123array8x32</a>
+, <a class="el" href="structr123array1x32.html#a4cbaf3feeaad0bb7227d065294240561">r123array1x32</a>
+, <a class="el" href="structr123array2x32.html#ad3d7310bd3ced1bfb05cbe4f3e753490">r123array2x32</a>
+, <a class="el" href="structr123array4x32.html#a1da4bfacdcd4a520a227bc5c2cff6a4b">r123array4x32</a>
+, <a class="el" href="structr123array1x64.html#a81dba857004f49f48cb0712edaa39e76">r123array1x64</a>
+, <a class="el" href="structr123array2x64.html#a10e19c13a970156c4fc18fa070dc9756">r123array2x64</a>
+, <a class="el" href="structr123array4x64.html#a303c3feaf0783e99292c3220613ea903">r123array4x64</a>
+, <a class="el" href="structr123array1xm128i.html#a3f272a3884d1d5ca7a207fb31a270617">r123array1xm128i</a>
+, <a class="el" href="structr123array16x8.html#a9a31da5cdf154eba3e44af4e51002a15">r123array16x8</a>
+</li>
+<li>swap()
+: <a class="el" href="structr123array1xm128i.html#a05f536079732d192e572bcf395ab6b4e">r123array1xm128i</a>
+, <a class="el" href="structr123array16x8.html#a2de9273e9c4b4c47315cb20885e9c6ed">r123array16x8</a>
+, <a class="el" href="structr123array4x32.html#a3e6f9b7de70de3386bcd2ba44ad68fb5">r123array4x32</a>
+, <a class="el" href="structr123array2x32.html#a1eac99d2198007201b9c0040a18b258c">r123array2x32</a>
+, <a class="el" href="structr123array2x64.html#a78ea0dba10b77c9f228108df9ab09c9d">r123array2x64</a>
+, <a class="el" href="structr123array8x32.html#a04c88fca3a8cc3b579e9fc480629888e">r123array8x32</a>
+, <a class="el" href="structr123array4x64.html#a9845020f8799cbf04156e3114a4c9314">r123array4x64</a>
+, <a class="el" href="structr123array1x64.html#a6f929a34461c49c9571eedc1df65fd20">r123array1x64</a>
+, <a class="el" href="structr123array1x32.html#afdd8df41333430593d31350bd12db11a">r123array1x32</a>
+</li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/functions_rela.html b/docs/html/functions_rela.html
new file mode 100644
index 0000000..7ada274
--- /dev/null
+++ b/docs/html/functions_rela.html
@@ -0,0 +1,97 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Class Members - Related Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li class="current"><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="functions.html"><span>All</span></a></li>
+      <li><a href="functions_func.html"><span>Functions</span></a></li>
+      <li><a href="functions_vars.html"><span>Variables</span></a></li>
+      <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+      <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+      <li class="current"><a href="functions_rela.html"><span>Related Functions</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+ <ul>
+<li>operator!=
+: <a class="el" href="structr123_1_1Engine.html#af0947cdcfc03aef7ec30c9fafa660445">r123::Engine< CBRNG ></a>
+</li>
+<li>operator<<
+: <a class="el" href="structr123_1_1Engine.html#ae0321571f689fca00c608d11ecad7d8d">r123::Engine< CBRNG ></a>
+</li>
+<li>operator==
+: <a class="el" href="structr123_1_1Engine.html#a606e3ba824542e52f12df1345126e721">r123::Engine< CBRNG ></a>
+</li>
+<li>operator>>
+: <a class="el" href="structr123_1_1Engine.html#ae708b771ab5ac17700d34bad875a16d9">r123::Engine< CBRNG ></a>
+</li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/functions_type.html b/docs/html/functions_type.html
new file mode 100644
index 0000000..23e632d
--- /dev/null
+++ b/docs/html/functions_type.html
@@ -0,0 +1,328 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Class Members - Typedefs</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li class="current"><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="functions.html"><span>All</span></a></li>
+      <li><a href="functions_func.html"><span>Functions</span></a></li>
+      <li><a href="functions_vars.html"><span>Variables</span></a></li>
+      <li class="current"><a href="functions_type.html"><span>Typedefs</span></a></li>
+      <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="functions_rela.html"><span>Related Functions</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs3">
+    <ul class="tablist">
+      <li><a href="#index_b"><span>b</span></a></li>
+      <li><a href="#index_c"><span>c</span></a></li>
+      <li><a href="#index_d"><span>d</span></a></li>
+      <li><a href="#index_e"><span>e</span></a></li>
+      <li><a href="#index_i"><span>i</span></a></li>
+      <li><a href="#index_k"><span>k</span></a></li>
+      <li><a href="#index_p"><span>p</span></a></li>
+      <li><a href="#index_r"><span>r</span></a></li>
+      <li><a href="#index_s"><span>s</span></a></li>
+      <li><a href="#index_u"><span>u</span></a></li>
+      <li><a href="#index_v"><span>v</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+ 
+
+<h3><a class="anchor" id="index_b"></a>- b -</h3><ul>
+<li>bctype
+: <a class="el" href="structr123_1_1ReinterpretCtr.html#ae0accaee618b5eb28a24acd516b3a4c6">r123::ReinterpretCtr< ToType, CBRNG ></a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_c"></a>- c -</h3><ul>
+<li>cbrng_type
+: <a class="el" href="classr123_1_1MicroURNG.html#ab0b3a77c9408dbcb2f9d6b5c67e9c3f7">r123::MicroURNG< CBRNG ></a>
+, <a class="el" href="structr123_1_1Engine.html#a45ee0086cf8cd6d10febb76dc88f8b22">r123::Engine< CBRNG ></a>
+</li>
+<li>const_iterator
+: <a class="el" href="structr123array2x32.html#a7963141a4af4c4aa74708909312a8644">r123array2x32</a>
+, <a class="el" href="structr123array2x64.html#ae4f249e82506274b19e6077c3d3f03af">r123array2x64</a>
+, <a class="el" href="structr123array4x64.html#a2aa5637bebf5c9c753edbce62e889d77">r123array4x64</a>
+, <a class="el" href="structr123array4x32.html#a1078ba2cd13bb2a4f83e1b089c816ba7">r123array4x32</a>
+, <a class="el" href="structr123array16x8.html#adda842a447360852f2ffa28fb97eb40c">r123array16x8</a>
+, <a class="el" href="structr123array1xm128i.html#af6be8b009459737fa25d9d2ac7c4e6aa">r123array1xm128i</a>
+, <a class="el" href="structr123array1x32.html#ac7f82e8848759ec5b0026dce8830274e">r123array1x32</a>
+, <a class="el" href="structr123array8x32.html#aa026dfdf1e2741c96db4343ceffd3c9f">r123array8x32</a>
+, <a class="el" href="structr123array1x64.html#a28ff01c0fefda1d81112ec9812156164">r123array1x64</a>
+</li>
+<li>const_pointer
+: <a class="el" href="structr123array1x64.html#a2b23f2aa3edf21084ece97a03367bff5">r123array1x64</a>
+, <a class="el" href="structr123array2x64.html#a3a13a452ca15f62f8ddcd8b7de9efa08">r123array2x64</a>
+, <a class="el" href="structr123array4x64.html#aa268882d3b4fb43ec9d82baf22d58cc5">r123array4x64</a>
+, <a class="el" href="structr123array16x8.html#adbe5a6feb583ce6a682496e14cec9cca">r123array16x8</a>
+, <a class="el" href="structr123array1xm128i.html#acc3f6ecf7e6a6bc98c3681c80120ed61">r123array1xm128i</a>
+, <a class="el" href="structr123array1x32.html#ab4a82a1e5300814272528a05587d555b">r123array1x32</a>
+, <a class="el" href="structr123array2x32.html#accf098ed49f9d84cfa3831a9fe183885">r123array2x32</a>
+, <a class="el" href="structr123array4x32.html#a28d13183d1bfcc05854dc39bebbcdf51">r123array4x32</a>
+, <a class="el" href="structr123array8x32.html#a621f6293254c6300b1d1b9835b7f30ba">r123array8x32</a>
+</li>
+<li>const_reference
+: <a class="el" href="structr123array1x32.html#adfa6614a8b20cd30c192458c8c2874da">r123array1x32</a>
+, <a class="el" href="structr123array2x32.html#a9d71cce3d7ccea7f48da94cf023e1486">r123array2x32</a>
+, <a class="el" href="structr123array4x32.html#a09d7e0d7b1572fc5fe2be119870a39bc">r123array4x32</a>
+, <a class="el" href="structr123array8x32.html#a2e7eda7e8940b37e17aef9b0efec3685">r123array8x32</a>
+, <a class="el" href="structr123array1x64.html#af75ba9dbfe38e0a6c143f446b7e4b995">r123array1x64</a>
+, <a class="el" href="structr123array2x64.html#a5d80c6b28d869a5422d99541ee1fb93f">r123array2x64</a>
+, <a class="el" href="structr123array4x64.html#ac2f21a458bf9008b831c553c5ae77508">r123array4x64</a>
+, <a class="el" href="structr123array16x8.html#a7252c320f8b0fb4d66a17acd9e94b4ad">r123array16x8</a>
+, <a class="el" href="structr123array1xm128i.html#a84d0123f4376cb6ab77cf817a0cea9cb">r123array1xm128i</a>
+</li>
+<li>const_reverse_iterator
+: <a class="el" href="structr123array4x32.html#a2926ff865e9dcbc3c20e6639aa8d0b1b">r123array4x32</a>
+, <a class="el" href="structr123array8x32.html#a207923147148d154b1659e257db44033">r123array8x32</a>
+, <a class="el" href="structr123array1x64.html#a61535adf62580285c3182a713ea0f3b1">r123array1x64</a>
+, <a class="el" href="structr123array4x64.html#a8405a219a9c81f8f298298cffbfd46ac">r123array4x64</a>
+, <a class="el" href="structr123array16x8.html#a7a774fcb52f452f832e11e13dbde6dea">r123array16x8</a>
+, <a class="el" href="structr123array1xm128i.html#a6bf98ce6373b157b87c6fd4a7006ed68">r123array1xm128i</a>
+, <a class="el" href="structr123array2x64.html#aa37f04aef8a808c76715b3b2d49c3c30">r123array2x64</a>
+, <a class="el" href="structr123array2x32.html#af298f85ad6bda860232465c5abc33618">r123array2x32</a>
+, <a class="el" href="structr123array1x32.html#a2642ed91a9c6c91ace3b91add2a4feae">r123array1x32</a>
+</li>
+<li>ctr_type
+: <a class="el" href="structr123_1_1ARS1xm128i__R.html#a13a62c94f63054828c6960979f42a268">r123::ARS1xm128i_R< ROUNDS ></a>
+, <a class="el" href="structr123_1_1ARS4x32__R.html#a9951dbcb50de849ded7177109b344045">r123::ARS4x32_R< ROUNDS ></a>
+, <a class="el" href="structr123_1_1Philox4x32__R.html#a23adf0320faed0fe4d12ebececdba50a">r123::Philox4x32_R< ROUNDS ></a>
+, <a class="el" href="structr123_1_1Philox2x32__R.html#af00c84c482900fbeca6bd2043395e599">r123::Philox2x32_R< ROUNDS ></a>
+, <a class="el" href="structr123_1_1Threefry4x64__R.html#a6c93334cb8a8b53ef01cc79b5296af0d">r123::Threefry4x64_R< R ></a>
+, <a class="el" href="structr123_1_1Threefry2x64__R.html#a6b151f30bc5544671596b9df91e896d8">r123::Threefry2x64_R< R ></a>
+, <a class="el" href="structr123_1_1AESNI4x32.html#ab8a1f8a822eecfc9e587bad76792df32">r123::AESNI4x32</a>
+, <a class="el" href="structr123_1_1Threefry2x32__R.html#a60b1b58aeaa05d467607dc570aed1357">r123::Threefry2x32_R< R ></a>
+, <a class="el" href="classr123_1_1MicroURNG.html#a5aba882fd21e4d8f1a445f546e1e4476">r123::MicroURNG< CBRNG ></a>
+, <a class="el" href="structr123_1_1Philox2x64__R.html#a8e615e3f4680b9e1b986ea071fd173fc">r123::Philox2x64_R< ROUNDS ></a>
+, <a class="el" href="structr123_1_1AESNI1xm128i.html#aaa136c21db9806859fa7cd4e2dbaaaa6">r123::AESNI1xm128i</a>
+, <a class="el" href="structr123_1_1Philox4x64__R.html#afd5f78b34ae7c478ebe16eb601f7b202">r123::Philox4x64_R< ROUNDS ></a>
+, <a class="el" href="structr123_1_1ReinterpretCtr.html#a26cf9e933b35411c37070c948085ba02">r123::ReinterpretCtr< ToType, CBRNG ></a>
+, <a class="el" href="structr123_1_1Engine.html#a96e0f5f039d5efd6aae77b63bafaad90">r123::Engine< CBRNG ></a>
+, <a class="el" href="structr123_1_1Threefry4x32__R.html#ae89dabc0060c62e0d9e5c4ac34a8550f">r123::Threefry4x32_R< R ></a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_d"></a>- d -</h3><ul>
+<li>difference_type
+: <a class="el" href="structr123array1x32.html#a1084c78861e725e58c14c67af242952f">r123array1x32</a>
+, <a class="el" href="structr123array1xm128i.html#a319811ed6105c3050135d8ec3ba36f7a">r123array1xm128i</a>
+, <a class="el" href="structr123array16x8.html#aaae0b6c18de6ce92ea55bf1b9bdbdf69">r123array16x8</a>
+, <a class="el" href="structr123array4x64.html#a3b1c7395f17992d8760fe93d3930db12">r123array4x64</a>
+, <a class="el" href="structr123array2x64.html#a4227cd6be973fdb0d72398d0b5604da8">r123array2x64</a>
+, <a class="el" href="structr123array1x64.html#a2abaa7dd6823b724ec6038b504c77011">r123array1x64</a>
+, <a class="el" href="structr123array8x32.html#af8029821cb8a7b5a3500adb30d4f2326">r123array8x32</a>
+, <a class="el" href="structr123array4x32.html#a3c690c039797cafe4718c03377937fb7">r123array4x32</a>
+, <a class="el" href="structr123array2x32.html#aa3dfe31d2483fb629a9e3ac304b24d07">r123array2x32</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_e"></a>- e -</h3><ul>
+<li>elem_type
+: <a class="el" href="structr123_1_1Engine.html#a8fb9eb1ab76ad9b5374a47cf84ecd306">r123::Engine< CBRNG ></a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
+<li>iterator
+: <a class="el" href="structr123array1x32.html#ad17f00c1dbff151f91d381f7c0b99dc8">r123array1x32</a>
+, <a class="el" href="structr123array1xm128i.html#af9db87a7c1ae4c7ba1e355af89b4d22d">r123array1xm128i</a>
+, <a class="el" href="structr123array16x8.html#a36bdba5b2d96c8dfe9b7e59b203d5047">r123array16x8</a>
+, <a class="el" href="structr123array4x64.html#adfc9f1209d12f855b9330ecccc8b6dd2">r123array4x64</a>
+, <a class="el" href="structr123array2x64.html#ac0fc5019e017f50e29d26df233085e56">r123array2x64</a>
+, <a class="el" href="structr123array1x64.html#a486a75094513f75c268901b3bb6666ad">r123array1x64</a>
+, <a class="el" href="structr123array8x32.html#aad8ff34e784d954a05f3f058facfb2be">r123array8x32</a>
+, <a class="el" href="structr123array4x32.html#a73a2a55a200af374d7299d2de13aa5cc">r123array4x32</a>
+, <a class="el" href="structr123array2x32.html#a4b447adc28d536d9b7ad7e33d5081a8e">r123array2x32</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_k"></a>- k -</h3><ul>
+<li>key_type
+: <a class="el" href="structr123_1_1AESNI1xm128i.html#a7dc33fd5abf509d9d16b571b23867a6b">r123::AESNI1xm128i</a>
+, <a class="el" href="structr123_1_1Engine.html#a18132a79d2327990c4809b37300eddc3">r123::Engine< CBRNG ></a>
+, <a class="el" href="structr123_1_1Threefry4x64__R.html#adb406d1af0e757bd8058582ee39f21dc">r123::Threefry4x64_R< R ></a>
+, <a class="el" href="structr123_1_1Threefry2x64__R.html#ae652f0e9ca6ec234fd2f4fc9afb1007c">r123::Threefry2x64_R< R ></a>
+, <a class="el" href="structr123_1_1Threefry4x32__R.html#a140f5cf20bde7784d778b82f0ebf8778">r123::Threefry4x32_R< R ></a>
+, <a class="el" href="structr123_1_1Threefry2x32__R.html#abfaaff871ef5e2e2cf397884ddab4cdc">r123::Threefry2x32_R< R ></a>
+, <a class="el" href="structr123_1_1ReinterpretCtr.html#a470b21676ed709aa9d9ad524a67410f1">r123::ReinterpretCtr< ToType, CBRNG ></a>
+, <a class="el" href="structr123_1_1Philox4x64__R.html#a9947ce12e3d03f9a60396d79bb56ba1c">r123::Philox4x64_R< ROUNDS ></a>
+, <a class="el" href="structr123_1_1Philox2x64__R.html#adb8a638d3d96ef0ab594b0320bae329f">r123::Philox2x64_R< ROUNDS ></a>
+, <a class="el" href="structr123_1_1Philox4x32__R.html#afa2e99f3e0b635f17ba9e16c186af63b">r123::Philox4x32_R< ROUNDS ></a>
+, <a class="el" href="structr123_1_1Philox2x32__R.html#a37dac768d36ef39e0228369e91b9f0ab">r123::Philox2x32_R< ROUNDS ></a>
+, <a class="el" href="classr123_1_1MicroURNG.html#aef90e6157f360434342ad0df4ce5f364">r123::MicroURNG< CBRNG ></a>
+, <a class="el" href="structr123_1_1ARS4x32__R.html#a7a651b6747b9e7c038bc6d11ffa2863e">r123::ARS4x32_R< ROUNDS ></a>
+, <a class="el" href="structr123_1_1ARS1xm128i__R.html#a8454d6de92379d9a6551d11828fbebc3">r123::ARS1xm128i_R< ROUNDS ></a>
+, <a class="el" href="structr123_1_1AESNI4x32.html#a3f47cb319d03ede5fd557800b618d28a">r123::AESNI4x32</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
+<li>pointer
+: <a class="el" href="structr123array1x32.html#a85ce46c2e10ab3d9c4f60aebe6268898">r123array1x32</a>
+, <a class="el" href="structr123array1xm128i.html#a4f78260ba2ec595bdc56fc21fd45e45a">r123array1xm128i</a>
+, <a class="el" href="structr123array16x8.html#aa6ae2e4843b3bb1b66425afa7da9e281">r123array16x8</a>
+, <a class="el" href="structr123array4x64.html#a08c39c2f70f4198a82cba99c0162e67c">r123array4x64</a>
+, <a class="el" href="structr123array2x64.html#a3b0b967b9ae134da266448c190f59c3a">r123array2x64</a>
+, <a class="el" href="structr123array1x64.html#a1c104fabb72d6c72c51348ac72bd419f">r123array1x64</a>
+, <a class="el" href="structr123array8x32.html#aeaf3b46bbc571a21d61ad6ee6e760291">r123array8x32</a>
+, <a class="el" href="structr123array4x32.html#adcef39f1e3989578b4c0a92524a15df2">r123array4x32</a>
+, <a class="el" href="structr123array2x32.html#ac884bcbd1063811354bfac66262a0b42">r123array2x32</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_r"></a>- r -</h3><ul>
+<li>reference
+: <a class="el" href="structr123array1x32.html#ae5aa4e3a65528495ea71371529ade7d7">r123array1x32</a>
+, <a class="el" href="structr123array2x32.html#aacd028d9f97ec8a2f484f0eff815abd5">r123array2x32</a>
+, <a class="el" href="structr123array8x32.html#a4027cd913ec90428d5d0dcad23a5dc2b">r123array8x32</a>
+, <a class="el" href="structr123array16x8.html#adf010ea54bc2f9dceb8568d59c6dde8a">r123array16x8</a>
+, <a class="el" href="structr123array1xm128i.html#a34f0cbdac5eb89118ecf2ab5939fbf83">r123array1xm128i</a>
+, <a class="el" href="structr123array1x64.html#a6b196cbfb84a28a57f24cd976c6fd6e6">r123array1x64</a>
+, <a class="el" href="structr123array4x32.html#a620f00f67215ab7fd344ec551c596712">r123array4x32</a>
+, <a class="el" href="structr123array2x64.html#a7150b3ad865d00ca1f753accd8165336">r123array2x64</a>
+, <a class="el" href="structr123array4x64.html#a14ea48b972d46d9424c317db9698224f">r123array4x64</a>
+</li>
+<li>result_type
+: <a class="el" href="classr123_1_1MicroURNG.html#a512957c3e7b3d22741ef0a436b973c2b">r123::MicroURNG< CBRNG ></a>
+, <a class="el" href="structr123_1_1Engine.html#a3d7cb66d43f99f5e227990af985ecb45">r123::Engine< CBRNG ></a>
+</li>
+<li>reverse_iterator
+: <a class="el" href="structr123array2x64.html#abcbf25662447a5241ed4d19c202f647a">r123array2x64</a>
+, <a class="el" href="structr123array16x8.html#aeeb5d6d55c07a515e4c7d01cb5c5351b">r123array16x8</a>
+, <a class="el" href="structr123array1xm128i.html#a6a507944eb872540e73e7a839cbc8e30">r123array1xm128i</a>
+, <a class="el" href="structr123array4x32.html#aaabdf758fb4a56eaf4cf256654f41314">r123array4x32</a>
+, <a class="el" href="structr123array8x32.html#acab5de900b99bad5f69009f48fa72235">r123array8x32</a>
+, <a class="el" href="structr123array1x32.html#a21cb520afa483ae177c469f3940e7ed2">r123array1x32</a>
+, <a class="el" href="structr123array4x64.html#acc93aa79ca040ce8fd0957ac86caa2f9">r123array4x64</a>
+, <a class="el" href="structr123array2x32.html#ad0b05bbfee2d432dfef71342f14b8430">r123array2x32</a>
+, <a class="el" href="structr123array1x64.html#ac9c44218c6761d9e6f422435e49acb17">r123array1x64</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
+<li>size_type
+: <a class="el" href="structr123array1x32.html#a30405dcf03997aaf3f981c05d1fa1e53">r123array1x32</a>
+, <a class="el" href="structr123array1xm128i.html#a702efcd8e34016d657ed6141bc767e6c">r123array1xm128i</a>
+, <a class="el" href="structr123array16x8.html#ae892bee1409b006ec01597c0e1f22952">r123array16x8</a>
+, <a class="el" href="structr123array4x64.html#adbe34157dc62e7d2c988f12b06b273af">r123array4x64</a>
+, <a class="el" href="structr123array2x64.html#aacb6269c183cc408285dca02e3b55526">r123array2x64</a>
+, <a class="el" href="structr123array1x64.html#aa37d85a97cfe1f3f63b1ef1c33497cb7">r123array1x64</a>
+, <a class="el" href="structr123array8x32.html#aa262b29c3d3fa22b07447b02c8c4be17">r123array8x32</a>
+, <a class="el" href="structr123array4x32.html#af4ee6cd95de0f8b7932d7a6a061663af">r123array4x32</a>
+, <a class="el" href="structr123array2x32.html#ac168a0f0c7eddf1842c9882643b31e91">r123array2x32</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_u"></a>- u -</h3><ul>
+<li>ukey_type
+: <a class="el" href="structr123_1_1AESNI1xm128i.html#a1f405533da84d98b938030190a63cec5">r123::AESNI1xm128i</a>
+, <a class="el" href="structr123_1_1Engine.html#a32973bdda8697bcbb4dde11c0366a5e3">r123::Engine< CBRNG ></a>
+, <a class="el" href="structr123_1_1Threefry4x64__R.html#a087ff88f84d115a6a726e008c6dcc325">r123::Threefry4x64_R< R ></a>
+, <a class="el" href="structr123_1_1Threefry2x64__R.html#a57db271865ab1889c8f569fb053ee66d">r123::Threefry2x64_R< R ></a>
+, <a class="el" href="structr123_1_1Threefry4x32__R.html#aab22e360de3f5e13f018ccf3a6754a8f">r123::Threefry4x32_R< R ></a>
+, <a class="el" href="structr123_1_1Threefry2x32__R.html#a3ab3969f7445f9fe935566fdc017c5ca">r123::Threefry2x32_R< R ></a>
+, <a class="el" href="structr123_1_1ReinterpretCtr.html#a4b0b69c1aa58d62bb22e51e16c586bee">r123::ReinterpretCtr< ToType, CBRNG ></a>
+, <a class="el" href="structr123_1_1Philox4x64__R.html#a4715e37129fb4ca9d7671cb9df4fa8c5">r123::Philox4x64_R< ROUNDS ></a>
+, <a class="el" href="structr123_1_1Philox2x64__R.html#a0c4cfeb8c3f00d1755ee047790c9da1c">r123::Philox2x64_R< ROUNDS ></a>
+, <a class="el" href="structr123_1_1Philox4x32__R.html#a804c8700155da93039c339ac83df99dd">r123::Philox4x32_R< ROUNDS ></a>
+, <a class="el" href="structr123_1_1Philox2x32__R.html#a8982960eb5a3b5afc26c8e8d6639275e">r123::Philox2x32_R< ROUNDS ></a>
+, <a class="el" href="classr123_1_1MicroURNG.html#a7e6fd93fec2fe138ee36b401ff376cfc">r123::MicroURNG< CBRNG ></a>
+, <a class="el" href="structr123_1_1ARS4x32__R.html#aa4bd7be98acb8b0299fb0ffce3db69ee">r123::ARS4x32_R< ROUNDS ></a>
+, <a class="el" href="structr123_1_1ARS1xm128i__R.html#ab26c7029e347e6b1e17dad795e462aeb">r123::ARS1xm128i_R< ROUNDS ></a>
+, <a class="el" href="structr123_1_1AESNI4x32.html#a3fbb6113e70575dce3b6047a22a751f4">r123::AESNI4x32</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_v"></a>- v -</h3><ul>
+<li>value_type
+: <a class="el" href="structr123array1x32.html#a9c8e0d672be32b52eef639f1a3b2b98a">r123array1x32</a>
+, <a class="el" href="structr123array1xm128i.html#a70ab4e530c7cce9481e07aa0b21dd96b">r123array1xm128i</a>
+, <a class="el" href="structr123array16x8.html#ad1d7184f51cafaff4714a2dcf60c9ae2">r123array16x8</a>
+, <a class="el" href="structr123array4x64.html#ae4a79be3ab80944a8bb6bc7ec7907061">r123array4x64</a>
+, <a class="el" href="structr123array2x64.html#acefd9fb46661254e17877844c545e15f">r123array2x64</a>
+, <a class="el" href="structr123array1x64.html#a4d8280ccd7087d5c3faba27641e8fbe7">r123array1x64</a>
+, <a class="el" href="structr123array8x32.html#af47fd0d348b68dd7a2853c68eb32d8b7">r123array8x32</a>
+, <a class="el" href="structr123array4x32.html#a5ba59b507edcf793ba186a9a4e8c56d5">r123array4x32</a>
+, <a class="el" href="structr123array2x32.html#ab669df8d33d32ee3571210eb090c6cb2">r123array2x32</a>
+</li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/functions_vars.html b/docs/html/functions_vars.html
new file mode 100644
index 0000000..974dd58
--- /dev/null
+++ b/docs/html/functions_vars.html
@@ -0,0 +1,190 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Class Members - Variables</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li class="current"><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="functions.html"><span>All</span></a></li>
+      <li><a href="functions_func.html"><span>Functions</span></a></li>
+      <li class="current"><a href="functions_vars.html"><span>Variables</span></a></li>
+      <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+      <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="functions_rela.html"><span>Related Functions</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs3">
+    <ul class="tablist">
+      <li><a href="#index__"><span>_</span></a></li>
+      <li><a href="#index_b"><span>b</span></a></li>
+      <li><a href="#index_c"><span>c</span></a></li>
+      <li><a href="#index_e"><span>e</span></a></li>
+      <li><a href="#index_k"><span>k</span></a></li>
+      <li><a href="#index_m"><span>m</span></a></li>
+      <li><a href="#index_r"><span>r</span></a></li>
+      <li><a href="#index_u"><span>u</span></a></li>
+      <li><a href="#index_v"><span>v</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+ 
+
+<h3><a class="anchor" id="index__"></a>- _ -</h3><ul>
+<li>_Max
+: <a class="el" href="classr123_1_1MicroURNG.html#a4faecd7ab54c7678ee66c413bb984bf0">r123::MicroURNG< CBRNG ></a>
+, <a class="el" href="structr123_1_1Engine.html#ae549f81e966b0414bcaf0f24b566ebd8">r123::Engine< CBRNG ></a>
+</li>
+<li>_Min
+: <a class="el" href="classr123_1_1MicroURNG.html#a1f2787f136a8a807d14eab8cb1ca8c14">r123::MicroURNG< CBRNG ></a>
+, <a class="el" href="structr123_1_1Engine.html#aa73e4d27847915f1438fd37b30777111">r123::Engine< CBRNG ></a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_b"></a>- b -</h3><ul>
+<li>b
+: <a class="el" href="structr123_1_1Engine.html#a5e430e850badcc4fd0f74de4a49a673b">r123::Engine< CBRNG ></a>
+</li>
+<li>BITS
+: <a class="el" href="classr123_1_1MicroURNG.html#ac55cddda8fe0808f922f39beee587b27">r123::MicroURNG< CBRNG ></a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_c"></a>- c -</h3><ul>
+<li>c
+: <a class="el" href="structr123_1_1Engine.html#afb056ed93053f4175aabc9f4e5dd7b8d">r123::Engine< CBRNG ></a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_e"></a>- e -</h3><ul>
+<li>elem
+: <a class="el" href="structr123_1_1Engine.html#a7b40128e9dc7427cd13d27477647b319">r123::Engine< CBRNG ></a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_k"></a>- k -</h3><ul>
+<li>k
+: <a class="el" href="structaesni1xm128i__key__t.html#a60cefca96e55b73732f570e844efbe54">aesni1xm128i_key_t</a>
+</li>
+<li>key
+: <a class="el" href="structr123_1_1Engine.html#adb9e1841a81f213a115e9f092f5c4654">r123::Engine< CBRNG ></a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_m"></a>- m -</h3><ul>
+<li>m
+: <a class="el" href="structr123m128i.html#a9b9908268281aace8028a3f34980634d">r123m128i</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_r"></a>- r -</h3><ul>
+<li>rounds
+: <a class="el" href="structr123_1_1AESNI1xm128i.html#a1b5a44afde814ba844d8f5442e2a3a5f">r123::AESNI1xm128i</a>
+, <a class="el" href="structr123_1_1Threefry4x64__R.html#ab8807960eec8fc2198055ec2a971e116">r123::Threefry4x64_R< R ></a>
+, <a class="el" href="structr123_1_1Threefry2x64__R.html#aa994d756504284e6a59cc8d3c57f16c6">r123::Threefry2x64_R< R ></a>
+, <a class="el" href="structr123_1_1Threefry4x32__R.html#af63fd38ba9acf04ee56d75e96b413291">r123::Threefry4x32_R< R ></a>
+, <a class="el" href="structr123_1_1Threefry2x32__R.html#af5be46f8426cfcd86e75327e4b3750b0">r123::Threefry2x32_R< R ></a>
+, <a class="el" href="structr123_1_1Philox4x64__R.html#ac51193ab00b118b75784f86cf3470876">r123::Philox4x64_R< ROUNDS ></a>
+, <a class="el" href="structr123_1_1Philox2x64__R.html#ac0764d78e07bf6d311b47d0f3ce92450">r123::Philox2x64_R< ROUNDS ></a>
+, <a class="el" href="structr123_1_1Philox4x32__R.html#a90d6a86bff4dc6e5e24209423f125140">r123::Philox4x32_R< ROUNDS ></a>
+, <a class="el" href="structr123_1_1Philox2x32__R.html#a52ee7b34688fc2e5315152a10d7df5f0">r123::Philox2x32_R< ROUNDS ></a>
+, <a class="el" href="structr123_1_1ARS4x32__R.html#a710e59a54794b4cd5e55689dd906b9ba">r123::ARS4x32_R< ROUNDS ></a>
+, <a class="el" href="structr123_1_1ARS1xm128i__R.html#abe167a93280140e424d722c1ac47a8e9">r123::ARS1xm128i_R< ROUNDS ></a>
+, <a class="el" href="structr123_1_1AESNI4x32.html#a725aad79b8d496d97bed24390f624be6">r123::AESNI4x32</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_u"></a>- u -</h3><ul>
+<li>ukey
+: <a class="el" href="structr123_1_1Engine.html#a11a79253c3a7b07e697f7bf4c7edb52f">r123::Engine< CBRNG ></a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_v"></a>- v -</h3><ul>
+<li>v
+: <a class="el" href="structr123array1x32.html#a1123ac44ecadd52dae06d2c8df86764a">r123array1x32</a>
+, <a class="el" href="structr123_1_1Engine.html#a6169d4fbce1fd7725fabda4c693bf250">r123::Engine< CBRNG ></a>
+, <a class="el" href="structr123array1xm128i.html#ab6d5e4b23c04e12c1aad7aaf38ff2bd5">r123array1xm128i</a>
+, <a class="el" href="structr123array16x8.html#a703776a5f85fb222e16b739309489783">r123array16x8</a>
+, <a class="el" href="structr123array4x64.html#aae3a18410877c49f1058bc4d78a62f48">r123array4x64</a>
+, <a class="el" href="structr123array2x64.html#a547e4a51e531cf36eef885fbf20a7048">r123array2x64</a>
+, <a class="el" href="structr123array1x64.html#a951c4b651e15e5ad4f66d81027c8e1b5">r123array1x64</a>
+, <a class="el" href="structr123array8x32.html#a7a84d2a924a271cc7b5f748023517d10">r123array8x32</a>
+, <a class="el" href="structr123array4x32.html#ac8e6785120a3031b211fc8aa7d03d83f">r123array4x32</a>
+, <a class="el" href="structr123array2x32.html#a65524bf06568073021117ef196d6b45f">r123array2x32</a>
+</li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/globals.html b/docs/html/globals.html
new file mode 100644
index 0000000..5226ec5
--- /dev/null
+++ b/docs/html/globals.html
@@ -0,0 +1,464 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li class="current"><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li class="current"><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="globals_defs.html"><span>Defines</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs3">
+    <ul class="tablist">
+      <li><a href="#index__"><span>_</span></a></li>
+      <li><a href="#index_a"><span>a</span></a></li>
+      <li><a href="#index_g"><span>g</span></a></li>
+      <li><a href="#index_h"><span>h</span></a></li>
+      <li><a href="#index_o"><span>o</span></a></li>
+      <li><a href="#index_p"><span>p</span></a></li>
+      <li><a href="#index_r"><span>r</span></a></li>
+      <li><a href="#index_t"><span>t</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+Here is a list of all file members with links to the files they belong to:
+
+<h3><a class="anchor" id="index__"></a>- _ -</h3><ul>
+<li>_mm_extract_lo64()
+: <a class="el" href="sse_8h.html#adac6aaf79c4428abcd30bf583eeb5450">sse.h</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
+<li>aesni1xm128i()
+: <a class="el" href="group__AESNI.html#ga3ba5daca2d4d076ece24900084e71311">aes.h</a>
+</li>
+<li>aesni1xm128i_ctr_t
+: <a class="el" href="group__AESNI.html#gaab0f809a22e01e6cb6135f6af73bb532">aes.h</a>
+</li>
+<li>aesni1xm128i_R()
+: <a class="el" href="group__AESNI.html#ga89d9042c08ae5eef4c98bfb9609ebd34">aes.h</a>
+</li>
+<li>aesni1xm128i_rounds
+: <a class="el" href="group__AESNI.html#gga2814629101926e23001d564630ba7b86a2c404c51fea10eeacb032081dbab2408">aes.h</a>
+</li>
+<li>aesni1xm128i_ukey_t
+: <a class="el" href="group__AESNI.html#gaf4fa221e6387d0454e2e6399245bdead">aes.h</a>
+</li>
+<li>aesni4x32
+: <a class="el" href="group__AESNI.html#gae3950c524818b49d1cdfad481880a33a">aes.h</a>
+</li>
+<li>aesni4x32_ctr_t
+: <a class="el" href="group__AESNI.html#gae7459b3f4ee0e424cb4f13b4d5efc1fe">aes.h</a>
+</li>
+<li>aesni4x32_key_t
+: <a class="el" href="group__AESNI.html#ga6d88accdcfa339b48e14021a572e269b">aes.h</a>
+</li>
+<li>aesni4x32_R()
+: <a class="el" href="group__AESNI.html#gae28b030e9786a6f36a47df8f211a750b">aes.h</a>
+</li>
+<li>aesni4x32_rounds
+: <a class="el" href="aes_8h.html#a0e4c28ad2773dac7eb59004947c9e02b">aes.h</a>
+</li>
+<li>aesni4x32_ukey_t
+: <a class="el" href="group__AESNI.html#gac2c3248ec3b03591d442cf634fb51af5">aes.h</a>
+</li>
+<li>aesni4x32keyinit()
+: <a class="el" href="group__AESNI.html#ga2aa21ba4a3d3850faa96e7834114d8e1">aes.h</a>
+</li>
+<li>ars1xm128i
+: <a class="el" href="group__AESNI.html#ga22e0a9c885b544115d44d26cc7777303">ars.h</a>
+</li>
+<li>ars1xm128i_ctr_t
+: <a class="el" href="group__AESNI.html#ga23ddf8109ce08f2bc14401c5f269d2a9">ars.h</a>
+</li>
+<li>ARS1xm128i_DEFAULT_ROUNDS
+: <a class="el" href="ars_8h.html#aa1e31853c7493df739897205eb4f4a82">ars.h</a>
+</li>
+<li>ars1xm128i_key_t
+: <a class="el" href="group__AESNI.html#ga2c5b351a47bb39f4d1769506c98c06e2">ars.h</a>
+</li>
+<li>ars1xm128i_R()
+: <a class="el" href="group__AESNI.html#gaddc6efc2007f6f66ee914eb7074cff1e">ars.h</a>
+</li>
+<li>ars1xm128i_rounds
+: <a class="el" href="group__AESNI.html#ggabf0a537666d4d1421144cb0a5e67666cade1fd46524355ec1d7ce63fd13b54992">ars.h</a>
+</li>
+<li>ars1xm128i_ukey_t
+: <a class="el" href="group__AESNI.html#gaeaa234225e7dcec2ffcdb32a0faad4f0">ars.h</a>
+</li>
+<li>ars1xm128ikeyinit()
+: <a class="el" href="group__AESNI.html#gae307c205a2ad19142bbe70919abfbfc2">ars.h</a>
+</li>
+<li>ars4x32
+: <a class="el" href="group__AESNI.html#ga088ecbf341caf05e491ce246f2ea2d30">ars.h</a>
+</li>
+<li>ars4x32_ctr_t
+: <a class="el" href="group__AESNI.html#ga61721da91a455cb587ce6bc4a0f56117">ars.h</a>
+</li>
+<li>ars4x32_key_t
+: <a class="el" href="group__AESNI.html#ga3a1426aa6aaa06330d48ec8173cd3e7b">ars.h</a>
+</li>
+<li>ars4x32_R()
+: <a class="el" href="group__AESNI.html#gab13b093252d4bb3389d27d4e3b04dae8">ars.h</a>
+</li>
+<li>ars4x32_rounds
+: <a class="el" href="group__AESNI.html#ggaa623b038fa0c8d8d2864fdc0e45884d6a5e715f357770a0f188ef493e6e63d31d">ars.h</a>
+</li>
+<li>ars4x32_ukey_t
+: <a class="el" href="group__AESNI.html#ga54cb318ff6bd4df405897b2b9a4b109f">ars.h</a>
+</li>
+<li>ars4x32keyinit()
+: <a class="el" href="group__AESNI.html#ga1f3a02ea711ae6bacb0875f11a255516">ars.h</a>
+</li>
+<li>assemble_from_u32()
+: <a class="el" href="sse_8h.html#a99c42d1da8da3a4a273556a7817b5c1f">sse.h</a>
+</li>
+<li>assemble_from_u32< r123m128i >()
+: <a class="el" href="sse_8h.html#a0cd6ca87c67023d7afda38319ab40e43">sse.h</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_g"></a>- g -</h3><ul>
+<li>GSL_CBRNG
+: <a class="el" href="gsl__cbrng_8h.html#af561a004eef8e93cdfd6b255a8a1eb75">gsl_cbrng.h</a>
+</li>
+<li>GSL_MICRORNG
+: <a class="el" href="gsl__microrng_8h.html#a21c7bb64a536a1704c6dc96856b78297">gsl_microrng.h</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_h"></a>- h -</h3><ul>
+<li>haveAESNI()
+: <a class="el" href="sse_8h.html#a0b35a046e85316295476d7d552411044">sse.h</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_o"></a>- o -</h3><ul>
+<li>operator!=()
+: <a class="el" href="sse_8h.html#a9fc5dd462afc043229ab800abb8f7d64">sse.h</a>
+</li>
+<li>operator++()
+: <a class="el" href="sse_8h.html#a2ffeb79e1a2cbb9cb35b0daf514a06a5">sse.h</a>
+</li>
+<li>operator+=()
+: <a class="el" href="sse_8h.html#a436d4467bb1389d42bfa67686218fd98">sse.h</a>
+</li>
+<li>operator<()
+: <a class="el" href="sse_8h.html#ac2c263fa443dd074fe4ff96710219eb8">sse.h</a>
+</li>
+<li>operator<<()
+: <a class="el" href="array_8h.html#ab2b41774a3888c0bc9697fd79383eae4">array.h</a>
+, <a class="el" href="sse_8h.html#af965b43e09e7305795c7b5a35d20c75f">sse.h</a>
+</li>
+<li>operator<=()
+: <a class="el" href="sse_8h.html#a43e11de33821f27448feb163162ec895">sse.h</a>
+</li>
+<li>operator==()
+: <a class="el" href="sse_8h.html#ab1389a6d8b14bc380c6d6a6d4de8853e">sse.h</a>
+</li>
+<li>operator>()
+: <a class="el" href="sse_8h.html#ad07b59f8110eac57511ee8c2fa697f93">sse.h</a>
+</li>
+<li>operator>=()
+: <a class="el" href="sse_8h.html#aa7bb0ad8bfceb39a1b71262b9476e151">sse.h</a>
+</li>
+<li>operator>>()
+: <a class="el" href="array_8h.html#a3cdf7b897463996d6eda01443dd669c5">array.h</a>
+, <a class="el" href="sse_8h.html#a202aef4bea97c2203a82676cb6abba40">sse.h</a>
+, <a class="el" href="array_8h.html#ae63a28cc2f1e69f63a4402c8b83663b4">array.h</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
+<li>philox2x32
+: <a class="el" href="philox_8h.html#ab2496424917f063a4990f01943a07fe0">philox.h</a>
+</li>
+<li>philox2x32_ctr_t
+: <a class="el" href="philox_8h.html#a5fad831cdbd677bc6e53d37c0191f5e3">philox.h</a>
+</li>
+<li>philox2x32_key_t
+: <a class="el" href="philox_8h.html#a55c0e4adeab3387915f966a0e40dc036">philox.h</a>
+</li>
+<li>philox2x32_R()
+: <a class="el" href="philox_8h.html#acf0a4b82a9fd3f4695c04210df0cbefe">philox.h</a>
+</li>
+<li>philox2x32_rounds
+: <a class="el" href="group__PhiloxNxW.html#ggae7443e1a57429154124943b6a7c0bd08ad08568b592cd076441505eed926d929c">philox.h</a>
+</li>
+<li>philox2x32_ukey_t
+: <a class="el" href="philox_8h.html#abf96b0e95504989c58e6d3436b013a6b">philox.h</a>
+</li>
+<li>philox2x32keyinit()
+: <a class="el" href="philox_8h.html#ae5dd55c0697c37598c1fbce66457e124">philox.h</a>
+</li>
+<li>philox2x64
+: <a class="el" href="philox_8h.html#ae6b57a71e4efa369cc19416fc088b5a5">philox.h</a>
+</li>
+<li>philox2x64_ctr_t
+: <a class="el" href="philox_8h.html#a33fa626a4198f38d87713ae9504e53f2">philox.h</a>
+</li>
+<li>philox2x64_key_t
+: <a class="el" href="philox_8h.html#a190087c2584155a936ec7d7b9e8d7f34">philox.h</a>
+</li>
+<li>philox2x64_R()
+: <a class="el" href="philox_8h.html#a03c068219ecebcc870afa14a330c0735">philox.h</a>
+</li>
+<li>philox2x64_rounds
+: <a class="el" href="group__PhiloxNxW.html#ggaca9df5cdadde758a63952daa97ddff91ae15befbf8ae3f2e93d6e49ea9e05b636">philox.h</a>
+</li>
+<li>philox2x64_ukey_t
+: <a class="el" href="philox_8h.html#a419cc7ebdeeaa1fc8249c638eac3d00b">philox.h</a>
+</li>
+<li>philox2x64keyinit()
+: <a class="el" href="philox_8h.html#a36b9225fcb73f91d116b424f721275f1">philox.h</a>
+</li>
+<li>philox4x32
+: <a class="el" href="philox_8h.html#a432a3df828dd51acd0b7ec2fee1d4d7e">philox.h</a>
+</li>
+<li>philox4x32_ctr_t
+: <a class="el" href="philox_8h.html#a96f2a94ebcd7aba28aaeb0aba6543d2d">philox.h</a>
+</li>
+<li>philox4x32_key_t
+: <a class="el" href="philox_8h.html#ab1e74b78fcee751b43739b2b4415c592">philox.h</a>
+</li>
+<li>philox4x32_R()
+: <a class="el" href="philox_8h.html#a205fdd66786445b3e1c4157bd96d0967">philox.h</a>
+</li>
+<li>philox4x32_rounds
+: <a class="el" href="group__PhiloxNxW.html#gga67fd1bf4ed858d01663a7d6b219b97a2ac9dec73e096a7afb5d82f2388a7a5412">philox.h</a>
+</li>
+<li>philox4x32_ukey_t
+: <a class="el" href="philox_8h.html#a82e1d60f98bfbb600bde2bd939de4573">philox.h</a>
+</li>
+<li>philox4x32keyinit()
+: <a class="el" href="philox_8h.html#a5a012bb440c039eda46802b447c31851">philox.h</a>
+</li>
+<li>philox4x64
+: <a class="el" href="philox_8h.html#a62fb1b4d9775396303ebb2a801fea8e6">philox.h</a>
+</li>
+<li>philox4x64_ctr_t
+: <a class="el" href="philox_8h.html#a4d2063cc89bf13153ddeff0d94371986">philox.h</a>
+</li>
+<li>philox4x64_key_t
+: <a class="el" href="philox_8h.html#a0c8c9410e9d88d4c94e8093007e39b0c">philox.h</a>
+</li>
+<li>philox4x64_R()
+: <a class="el" href="philox_8h.html#ac72571943d83caf2f79b7bd309a2ae92">philox.h</a>
+</li>
+<li>philox4x64_rounds
+: <a class="el" href="group__PhiloxNxW.html#ggaf603860d055cee96c75f6986641e9cada3407accddb6e873c1005a4ab2edcef67">philox.h</a>
+</li>
+<li>philox4x64_ukey_t
+: <a class="el" href="philox_8h.html#a689ed8276d25fe0c983c4eb5b9a32fd4">philox.h</a>
+</li>
+<li>philox4x64keyinit()
+: <a class="el" href="philox_8h.html#a101674ffc206e3bd600f9544de0c3c4a">philox.h</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_r"></a>- r -</h3><ul>
+<li>r123_enum_aesni1xm128i
+: <a class="el" href="group__AESNI.html#ga2814629101926e23001d564630ba7b86">aes.h</a>
+</li>
+<li>r123_enum_aesni4x32
+: <a class="el" href="group__AESNI.html#ga1557a9d6e95543a3c4ca9082a4c14b0d">aes.h</a>
+</li>
+<li>r123_enum_ars1xm128i
+: <a class="el" href="group__AESNI.html#gabf0a537666d4d1421144cb0a5e67666c">ars.h</a>
+</li>
+<li>r123_enum_ars4x32
+: <a class="el" href="group__AESNI.html#gaa623b038fa0c8d8d2864fdc0e45884d6">ars.h</a>
+</li>
+<li>r123_enum_philox2x32
+: <a class="el" href="group__PhiloxNxW.html#gae7443e1a57429154124943b6a7c0bd08">philox.h</a>
+</li>
+<li>r123_enum_philox2x64
+: <a class="el" href="group__PhiloxNxW.html#gaca9df5cdadde758a63952daa97ddff91">philox.h</a>
+</li>
+<li>r123_enum_philox4x32
+: <a class="el" href="group__PhiloxNxW.html#ga67fd1bf4ed858d01663a7d6b219b97a2">philox.h</a>
+</li>
+<li>r123_enum_philox4x64
+: <a class="el" href="group__PhiloxNxW.html#gaf603860d055cee96c75f6986641e9cad">philox.h</a>
+</li>
+<li>r123_enum_threefry2x32
+: <a class="el" href="group__ThreefryNxW.html#gae1c47baba4367dd47d68025d23ae4775">threefry.h</a>
+</li>
+<li>r123_enum_threefry2x64
+: <a class="el" href="group__ThreefryNxW.html#gae4df1e52db01acafb28d9c6c25a41071">threefry.h</a>
+</li>
+<li>r123_enum_threefry4x32
+: <a class="el" href="group__ThreefryNxW.html#ga027cd15620ecab867c6af8bb065b189b">threefry.h</a>
+</li>
+<li>r123_enum_threefry4x64
+: <a class="el" href="group__ThreefryNxW.html#ga6379a4a73e85bc36235907a326945acc">threefry.h</a>
+</li>
+<li>R123_W
+: <a class="el" href="array_8h.html#a9b64205709c0daaea3b05bbf7ea5a322">array.h</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_t"></a>- t -</h3><ul>
+<li>threefry2x32
+: <a class="el" href="threefry_8h.html#a52e1635889bbf08009646f22897e07fc">threefry.h</a>
+</li>
+<li>threefry2x32_ctr_t
+: <a class="el" href="threefry_8h.html#ac0724455e1e9218f982501247d384833">threefry.h</a>
+</li>
+<li>threefry2x32_key_t
+: <a class="el" href="threefry_8h.html#a9ebab1ff37a7c983a4d5af114fb8f1c7">threefry.h</a>
+</li>
+<li>threefry2x32_R()
+: <a class="el" href="threefry_8h.html#ae8eee0d74a087c6cbc112af11b884501">threefry.h</a>
+</li>
+<li>threefry2x32_rounds
+: <a class="el" href="group__ThreefryNxW.html#ggae1c47baba4367dd47d68025d23ae4775a5c6f9a5f3ae1c3700938a3fca5f5821b">threefry.h</a>
+</li>
+<li>threefry2x32_ukey_t
+: <a class="el" href="threefry_8h.html#a642ffe8cacdd9e8f6b376bdffff36d24">threefry.h</a>
+</li>
+<li>threefry2x32keyinit()
+: <a class="el" href="threefry_8h.html#a5dbdf6e314925cd676da9f97013aefe4">threefry.h</a>
+</li>
+<li>threefry2x64
+: <a class="el" href="threefry_8h.html#acda3cc1cd02719e1e3d6cfdf7ce0c4c8">threefry.h</a>
+</li>
+<li>threefry2x64_ctr_t
+: <a class="el" href="threefry_8h.html#a13c6df8879e7c13605fc1dc67cb2173b">threefry.h</a>
+</li>
+<li>threefry2x64_key_t
+: <a class="el" href="threefry_8h.html#a31a08f696af23b0e339126bc64a78812">threefry.h</a>
+</li>
+<li>threefry2x64_R()
+: <a class="el" href="threefry_8h.html#abe5e028454aef3f2bc459e5db05e0e04">threefry.h</a>
+</li>
+<li>threefry2x64_rounds
+: <a class="el" href="group__ThreefryNxW.html#ggae4df1e52db01acafb28d9c6c25a41071a61579c86759ab497dbfc895f2fe6ec7c">threefry.h</a>
+</li>
+<li>threefry2x64_ukey_t
+: <a class="el" href="threefry_8h.html#abb918225d16fcdf0b2659e2096d182b9">threefry.h</a>
+</li>
+<li>threefry2x64keyinit()
+: <a class="el" href="threefry_8h.html#ac14fcf731b175a1cec85a80606ed5f04">threefry.h</a>
+</li>
+<li>threefry4x32
+: <a class="el" href="threefry_8h.html#aaaecd189b32b0081c6a3c2cb46577e23">threefry.h</a>
+</li>
+<li>threefry4x32_ctr_t
+: <a class="el" href="threefry_8h.html#aa72e480598b54b5bbc640a101f9cbe6e">threefry.h</a>
+</li>
+<li>threefry4x32_key_t
+: <a class="el" href="threefry_8h.html#af332bdaec196cee5378cab4fd049ecde">threefry.h</a>
+</li>
+<li>threefry4x32_R()
+: <a class="el" href="threefry_8h.html#a79eb6922e7404e224893f7f723fc240c">threefry.h</a>
+</li>
+<li>threefry4x32_rounds
+: <a class="el" href="group__ThreefryNxW.html#gga027cd15620ecab867c6af8bb065b189ba36063dd986ca2ccd28209c7b4bf711d7">threefry.h</a>
+</li>
+<li>threefry4x32_ukey_t
+: <a class="el" href="threefry_8h.html#ad65418f4e2c8d8df38059aabc2cc98b6">threefry.h</a>
+</li>
+<li>threefry4x32keyinit()
+: <a class="el" href="threefry_8h.html#a458f442301e620096d73efd479ab8591">threefry.h</a>
+</li>
+<li>threefry4x64()
+: <a class="el" href="threefry_8h.html#a382d18a49002d2a5e2b2f06d58669d70">threefry.h</a>
+</li>
+<li>threefry4x64_ctr_t
+: <a class="el" href="threefry_8h.html#a3296098832bc3a243f40078c1b93592e">threefry.h</a>
+</li>
+<li>threefry4x64_key_t
+: <a class="el" href="threefry_8h.html#ad51f07c7dc47238532cbc05e89f5cef9">threefry.h</a>
+</li>
+<li>threefry4x64_R()
+: <a class="el" href="threefry_8h.html#a2e04c3f1ae28c4833444bfafcf22c47f">threefry.h</a>
+</li>
+<li>threefry4x64_rounds
+: <a class="el" href="group__ThreefryNxW.html#gga6379a4a73e85bc36235907a326945acca9cdd4629047775ebe339ac9e9dd0ad65">threefry.h</a>
+</li>
+<li>threefry4x64_ukey_t
+: <a class="el" href="threefry_8h.html#a6b4db94d5185220d4fcec72f92a391ad">threefry.h</a>
+</li>
+<li>threefry4x64keyinit()
+: <a class="el" href="threefry_8h.html#aeed27be75e75bfffb0bf8c6333f71b10">threefry.h</a>
+</li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/globals_defs.html b/docs/html/globals_defs.html
new file mode 100644
index 0000000..e1637c8
--- /dev/null
+++ b/docs/html/globals_defs.html
@@ -0,0 +1,131 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li class="current"><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li class="current"><a href="globals_defs.html"><span>Defines</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+ <ul>
+<li>aesni4x32
+: <a class="el" href="group__AESNI.html#gae3950c524818b49d1cdfad481880a33a">aes.h</a>
+</li>
+<li>aesni4x32_rounds
+: <a class="el" href="aes_8h.html#a0e4c28ad2773dac7eb59004947c9e02b">aes.h</a>
+</li>
+<li>ars1xm128i
+: <a class="el" href="group__AESNI.html#ga22e0a9c885b544115d44d26cc7777303">ars.h</a>
+</li>
+<li>ARS1xm128i_DEFAULT_ROUNDS
+: <a class="el" href="ars_8h.html#aa1e31853c7493df739897205eb4f4a82">ars.h</a>
+</li>
+<li>ars4x32
+: <a class="el" href="group__AESNI.html#ga088ecbf341caf05e491ce246f2ea2d30">ars.h</a>
+</li>
+<li>GSL_CBRNG
+: <a class="el" href="gsl__cbrng_8h.html#af561a004eef8e93cdfd6b255a8a1eb75">gsl_cbrng.h</a>
+</li>
+<li>GSL_MICRORNG
+: <a class="el" href="gsl__microrng_8h.html#a21c7bb64a536a1704c6dc96856b78297">gsl_microrng.h</a>
+</li>
+<li>philox2x32
+: <a class="el" href="philox_8h.html#ab2496424917f063a4990f01943a07fe0">philox.h</a>
+</li>
+<li>philox2x64
+: <a class="el" href="philox_8h.html#ae6b57a71e4efa369cc19416fc088b5a5">philox.h</a>
+</li>
+<li>philox4x32
+: <a class="el" href="philox_8h.html#a432a3df828dd51acd0b7ec2fee1d4d7e">philox.h</a>
+</li>
+<li>philox4x64
+: <a class="el" href="philox_8h.html#a62fb1b4d9775396303ebb2a801fea8e6">philox.h</a>
+</li>
+<li>R123_W
+: <a class="el" href="array_8h.html#a9b64205709c0daaea3b05bbf7ea5a322">array.h</a>
+</li>
+<li>threefry2x32
+: <a class="el" href="threefry_8h.html#a52e1635889bbf08009646f22897e07fc">threefry.h</a>
+</li>
+<li>threefry2x64
+: <a class="el" href="threefry_8h.html#acda3cc1cd02719e1e3d6cfdf7ce0c4c8">threefry.h</a>
+</li>
+<li>threefry4x32
+: <a class="el" href="threefry_8h.html#aaaecd189b32b0081c6a3c2cb46577e23">threefry.h</a>
+</li>
+<li>threefry4x64
+: <a class="el" href="threefry_8h.html#a992029974a22f14e0ef29a862ede2b8d">threefry.h</a>
+</li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/globals_enum.html b/docs/html/globals_enum.html
new file mode 100644
index 0000000..03f2834
--- /dev/null
+++ b/docs/html/globals_enum.html
@@ -0,0 +1,119 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li class="current"><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li class="current"><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="globals_defs.html"><span>Defines</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+ <ul>
+<li>r123_enum_aesni1xm128i
+: <a class="el" href="group__AESNI.html#ga2814629101926e23001d564630ba7b86">aes.h</a>
+</li>
+<li>r123_enum_aesni4x32
+: <a class="el" href="group__AESNI.html#ga1557a9d6e95543a3c4ca9082a4c14b0d">aes.h</a>
+</li>
+<li>r123_enum_ars1xm128i
+: <a class="el" href="group__AESNI.html#gabf0a537666d4d1421144cb0a5e67666c">ars.h</a>
+</li>
+<li>r123_enum_ars4x32
+: <a class="el" href="group__AESNI.html#gaa623b038fa0c8d8d2864fdc0e45884d6">ars.h</a>
+</li>
+<li>r123_enum_philox2x32
+: <a class="el" href="group__PhiloxNxW.html#gae7443e1a57429154124943b6a7c0bd08">philox.h</a>
+</li>
+<li>r123_enum_philox2x64
+: <a class="el" href="group__PhiloxNxW.html#gaca9df5cdadde758a63952daa97ddff91">philox.h</a>
+</li>
+<li>r123_enum_philox4x32
+: <a class="el" href="group__PhiloxNxW.html#ga67fd1bf4ed858d01663a7d6b219b97a2">philox.h</a>
+</li>
+<li>r123_enum_philox4x64
+: <a class="el" href="group__PhiloxNxW.html#gaf603860d055cee96c75f6986641e9cad">philox.h</a>
+</li>
+<li>r123_enum_threefry2x32
+: <a class="el" href="group__ThreefryNxW.html#gae1c47baba4367dd47d68025d23ae4775">threefry.h</a>
+</li>
+<li>r123_enum_threefry2x64
+: <a class="el" href="group__ThreefryNxW.html#gae4df1e52db01acafb28d9c6c25a41071">threefry.h</a>
+</li>
+<li>r123_enum_threefry4x32
+: <a class="el" href="group__ThreefryNxW.html#ga027cd15620ecab867c6af8bb065b189b">threefry.h</a>
+</li>
+<li>r123_enum_threefry4x64
+: <a class="el" href="group__ThreefryNxW.html#ga6379a4a73e85bc36235907a326945acc">threefry.h</a>
+</li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/globals_eval.html b/docs/html/globals_eval.html
new file mode 100644
index 0000000..f614372
--- /dev/null
+++ b/docs/html/globals_eval.html
@@ -0,0 +1,119 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li class="current"><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li class="current"><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="globals_defs.html"><span>Defines</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+ <ul>
+<li>aesni1xm128i_rounds
+: <a class="el" href="group__AESNI.html#gga2814629101926e23001d564630ba7b86a2c404c51fea10eeacb032081dbab2408">aes.h</a>
+</li>
+<li>aesni4x32_rounds
+: <a class="el" href="group__AESNI.html#gga1557a9d6e95543a3c4ca9082a4c14b0dad65178990d928071f958bf2413ebdb4b">aes.h</a>
+</li>
+<li>ars1xm128i_rounds
+: <a class="el" href="group__AESNI.html#ggabf0a537666d4d1421144cb0a5e67666cade1fd46524355ec1d7ce63fd13b54992">ars.h</a>
+</li>
+<li>ars4x32_rounds
+: <a class="el" href="group__AESNI.html#ggaa623b038fa0c8d8d2864fdc0e45884d6a5e715f357770a0f188ef493e6e63d31d">ars.h</a>
+</li>
+<li>philox2x32_rounds
+: <a class="el" href="group__PhiloxNxW.html#ggae7443e1a57429154124943b6a7c0bd08ad08568b592cd076441505eed926d929c">philox.h</a>
+</li>
+<li>philox2x64_rounds
+: <a class="el" href="group__PhiloxNxW.html#ggaca9df5cdadde758a63952daa97ddff91ae15befbf8ae3f2e93d6e49ea9e05b636">philox.h</a>
+</li>
+<li>philox4x32_rounds
+: <a class="el" href="group__PhiloxNxW.html#gga67fd1bf4ed858d01663a7d6b219b97a2ac9dec73e096a7afb5d82f2388a7a5412">philox.h</a>
+</li>
+<li>philox4x64_rounds
+: <a class="el" href="group__PhiloxNxW.html#ggaf603860d055cee96c75f6986641e9cada3407accddb6e873c1005a4ab2edcef67">philox.h</a>
+</li>
+<li>threefry2x32_rounds
+: <a class="el" href="group__ThreefryNxW.html#ggae1c47baba4367dd47d68025d23ae4775a5c6f9a5f3ae1c3700938a3fca5f5821b">threefry.h</a>
+</li>
+<li>threefry2x64_rounds
+: <a class="el" href="group__ThreefryNxW.html#ggae4df1e52db01acafb28d9c6c25a41071a61579c86759ab497dbfc895f2fe6ec7c">threefry.h</a>
+</li>
+<li>threefry4x32_rounds
+: <a class="el" href="group__ThreefryNxW.html#gga027cd15620ecab867c6af8bb065b189ba36063dd986ca2ccd28209c7b4bf711d7">threefry.h</a>
+</li>
+<li>threefry4x64_rounds
+: <a class="el" href="group__ThreefryNxW.html#gga6379a4a73e85bc36235907a326945acca9cdd4629047775ebe339ac9e9dd0ad65">threefry.h</a>
+</li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/globals_func.html b/docs/html/globals_func.html
new file mode 100644
index 0000000..06ba185
--- /dev/null
+++ b/docs/html/globals_func.html
@@ -0,0 +1,244 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li class="current"><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="globals.html"><span>All</span></a></li>
+      <li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="globals_defs.html"><span>Defines</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs3">
+    <ul class="tablist">
+      <li><a href="#index__"><span>_</span></a></li>
+      <li><a href="#index_a"><span>a</span></a></li>
+      <li><a href="#index_h"><span>h</span></a></li>
+      <li><a href="#index_o"><span>o</span></a></li>
+      <li><a href="#index_p"><span>p</span></a></li>
+      <li><a href="#index_t"><span>t</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+ 
+
+<h3><a class="anchor" id="index__"></a>- _ -</h3><ul>
+<li>_mm_extract_lo64()
+: <a class="el" href="sse_8h.html#adac6aaf79c4428abcd30bf583eeb5450">sse.h</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
+<li>aesni1xm128i()
+: <a class="el" href="group__AESNI.html#ga3ba5daca2d4d076ece24900084e71311">aes.h</a>
+</li>
+<li>aesni1xm128i_R()
+: <a class="el" href="group__AESNI.html#ga89d9042c08ae5eef4c98bfb9609ebd34">aes.h</a>
+</li>
+<li>aesni4x32_R()
+: <a class="el" href="group__AESNI.html#gae28b030e9786a6f36a47df8f211a750b">aes.h</a>
+</li>
+<li>aesni4x32keyinit()
+: <a class="el" href="group__AESNI.html#ga2aa21ba4a3d3850faa96e7834114d8e1">aes.h</a>
+</li>
+<li>ars1xm128i_R()
+: <a class="el" href="group__AESNI.html#gaddc6efc2007f6f66ee914eb7074cff1e">ars.h</a>
+</li>
+<li>ars1xm128ikeyinit()
+: <a class="el" href="group__AESNI.html#gae307c205a2ad19142bbe70919abfbfc2">ars.h</a>
+</li>
+<li>ars4x32_R()
+: <a class="el" href="group__AESNI.html#gab13b093252d4bb3389d27d4e3b04dae8">ars.h</a>
+</li>
+<li>ars4x32keyinit()
+: <a class="el" href="group__AESNI.html#ga1f3a02ea711ae6bacb0875f11a255516">ars.h</a>
+</li>
+<li>assemble_from_u32()
+: <a class="el" href="sse_8h.html#a99c42d1da8da3a4a273556a7817b5c1f">sse.h</a>
+</li>
+<li>assemble_from_u32< r123m128i >()
+: <a class="el" href="sse_8h.html#a0cd6ca87c67023d7afda38319ab40e43">sse.h</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_h"></a>- h -</h3><ul>
+<li>haveAESNI()
+: <a class="el" href="sse_8h.html#a0b35a046e85316295476d7d552411044">sse.h</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_o"></a>- o -</h3><ul>
+<li>operator!=()
+: <a class="el" href="sse_8h.html#a9fc5dd462afc043229ab800abb8f7d64">sse.h</a>
+</li>
+<li>operator++()
+: <a class="el" href="sse_8h.html#a2ffeb79e1a2cbb9cb35b0daf514a06a5">sse.h</a>
+</li>
+<li>operator+=()
+: <a class="el" href="sse_8h.html#a436d4467bb1389d42bfa67686218fd98">sse.h</a>
+</li>
+<li>operator<()
+: <a class="el" href="sse_8h.html#ac2c263fa443dd074fe4ff96710219eb8">sse.h</a>
+</li>
+<li>operator<<()
+: <a class="el" href="array_8h.html#ab2b41774a3888c0bc9697fd79383eae4">array.h</a>
+, <a class="el" href="sse_8h.html#af965b43e09e7305795c7b5a35d20c75f">sse.h</a>
+</li>
+<li>operator<=()
+: <a class="el" href="sse_8h.html#a43e11de33821f27448feb163162ec895">sse.h</a>
+</li>
+<li>operator==()
+: <a class="el" href="sse_8h.html#ab1389a6d8b14bc380c6d6a6d4de8853e">sse.h</a>
+</li>
+<li>operator>()
+: <a class="el" href="sse_8h.html#ad07b59f8110eac57511ee8c2fa697f93">sse.h</a>
+</li>
+<li>operator>=()
+: <a class="el" href="sse_8h.html#aa7bb0ad8bfceb39a1b71262b9476e151">sse.h</a>
+</li>
+<li>operator>>()
+: <a class="el" href="array_8h.html#a3cdf7b897463996d6eda01443dd669c5">array.h</a>
+, <a class="el" href="sse_8h.html#a202aef4bea97c2203a82676cb6abba40">sse.h</a>
+, <a class="el" href="array_8h.html#ae63a28cc2f1e69f63a4402c8b83663b4">array.h</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
+<li>philox2x32_R()
+: <a class="el" href="philox_8h.html#acf0a4b82a9fd3f4695c04210df0cbefe">philox.h</a>
+</li>
+<li>philox2x32keyinit()
+: <a class="el" href="philox_8h.html#ae5dd55c0697c37598c1fbce66457e124">philox.h</a>
+</li>
+<li>philox2x64_R()
+: <a class="el" href="philox_8h.html#a03c068219ecebcc870afa14a330c0735">philox.h</a>
+</li>
+<li>philox2x64keyinit()
+: <a class="el" href="philox_8h.html#a36b9225fcb73f91d116b424f721275f1">philox.h</a>
+</li>
+<li>philox4x32_R()
+: <a class="el" href="philox_8h.html#a205fdd66786445b3e1c4157bd96d0967">philox.h</a>
+</li>
+<li>philox4x32keyinit()
+: <a class="el" href="philox_8h.html#a5a012bb440c039eda46802b447c31851">philox.h</a>
+</li>
+<li>philox4x64_R()
+: <a class="el" href="philox_8h.html#ac72571943d83caf2f79b7bd309a2ae92">philox.h</a>
+</li>
+<li>philox4x64keyinit()
+: <a class="el" href="philox_8h.html#a101674ffc206e3bd600f9544de0c3c4a">philox.h</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_t"></a>- t -</h3><ul>
+<li>threefry2x32()
+: <a class="el" href="threefry_8h.html#af98f648fb8e458ff0c6825cb903734f2">threefry.h</a>
+</li>
+<li>threefry2x32_R()
+: <a class="el" href="threefry_8h.html#ae8eee0d74a087c6cbc112af11b884501">threefry.h</a>
+</li>
+<li>threefry2x32keyinit()
+: <a class="el" href="threefry_8h.html#a5dbdf6e314925cd676da9f97013aefe4">threefry.h</a>
+</li>
+<li>threefry2x64()
+: <a class="el" href="threefry_8h.html#aea6a4bd5c80354a4f575c9bec2702172">threefry.h</a>
+</li>
+<li>threefry2x64_R()
+: <a class="el" href="threefry_8h.html#abe5e028454aef3f2bc459e5db05e0e04">threefry.h</a>
+</li>
+<li>threefry2x64keyinit()
+: <a class="el" href="threefry_8h.html#ac14fcf731b175a1cec85a80606ed5f04">threefry.h</a>
+</li>
+<li>threefry4x32()
+: <a class="el" href="threefry_8h.html#a1636cce9de54f919e8952a42b7f397fd">threefry.h</a>
+</li>
+<li>threefry4x32_R()
+: <a class="el" href="threefry_8h.html#a79eb6922e7404e224893f7f723fc240c">threefry.h</a>
+</li>
+<li>threefry4x32keyinit()
+: <a class="el" href="threefry_8h.html#a458f442301e620096d73efd479ab8591">threefry.h</a>
+</li>
+<li>threefry4x64()
+: <a class="el" href="threefry_8h.html#a382d18a49002d2a5e2b2f06d58669d70">threefry.h</a>
+</li>
+<li>threefry4x64_R()
+: <a class="el" href="threefry_8h.html#a2e04c3f1ae28c4833444bfafcf22c47f">threefry.h</a>
+</li>
+<li>threefry4x64keyinit()
+: <a class="el" href="threefry_8h.html#aeed27be75e75bfffb0bf8c6333f71b10">threefry.h</a>
+</li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/globals_type.html b/docs/html/globals_type.html
new file mode 100644
index 0000000..908ff36
--- /dev/null
+++ b/docs/html/globals_type.html
@@ -0,0 +1,205 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li class="current"><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
+      <li class="current"><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="globals_defs.html"><span>Defines</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs3">
+    <ul class="tablist">
+      <li><a href="#index_a"><span>a</span></a></li>
+      <li><a href="#index_p"><span>p</span></a></li>
+      <li><a href="#index_t"><span>t</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+ 
+
+<h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
+<li>aesni1xm128i_ctr_t
+: <a class="el" href="group__AESNI.html#gaab0f809a22e01e6cb6135f6af73bb532">aes.h</a>
+</li>
+<li>aesni1xm128i_ukey_t
+: <a class="el" href="group__AESNI.html#gaf4fa221e6387d0454e2e6399245bdead">aes.h</a>
+</li>
+<li>aesni4x32_ctr_t
+: <a class="el" href="group__AESNI.html#gae7459b3f4ee0e424cb4f13b4d5efc1fe">aes.h</a>
+</li>
+<li>aesni4x32_key_t
+: <a class="el" href="group__AESNI.html#ga6d88accdcfa339b48e14021a572e269b">aes.h</a>
+</li>
+<li>aesni4x32_ukey_t
+: <a class="el" href="group__AESNI.html#gac2c3248ec3b03591d442cf634fb51af5">aes.h</a>
+</li>
+<li>ars1xm128i_ctr_t
+: <a class="el" href="group__AESNI.html#ga23ddf8109ce08f2bc14401c5f269d2a9">ars.h</a>
+</li>
+<li>ars1xm128i_key_t
+: <a class="el" href="group__AESNI.html#ga2c5b351a47bb39f4d1769506c98c06e2">ars.h</a>
+</li>
+<li>ars1xm128i_ukey_t
+: <a class="el" href="group__AESNI.html#gaeaa234225e7dcec2ffcdb32a0faad4f0">ars.h</a>
+</li>
+<li>ars4x32_ctr_t
+: <a class="el" href="group__AESNI.html#ga61721da91a455cb587ce6bc4a0f56117">ars.h</a>
+</li>
+<li>ars4x32_key_t
+: <a class="el" href="group__AESNI.html#ga3a1426aa6aaa06330d48ec8173cd3e7b">ars.h</a>
+</li>
+<li>ars4x32_ukey_t
+: <a class="el" href="group__AESNI.html#ga54cb318ff6bd4df405897b2b9a4b109f">ars.h</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
+<li>philox2x32_ctr_t
+: <a class="el" href="philox_8h.html#a5fad831cdbd677bc6e53d37c0191f5e3">philox.h</a>
+</li>
+<li>philox2x32_key_t
+: <a class="el" href="philox_8h.html#a55c0e4adeab3387915f966a0e40dc036">philox.h</a>
+</li>
+<li>philox2x32_ukey_t
+: <a class="el" href="philox_8h.html#abf96b0e95504989c58e6d3436b013a6b">philox.h</a>
+</li>
+<li>philox2x64_ctr_t
+: <a class="el" href="philox_8h.html#a33fa626a4198f38d87713ae9504e53f2">philox.h</a>
+</li>
+<li>philox2x64_key_t
+: <a class="el" href="philox_8h.html#a190087c2584155a936ec7d7b9e8d7f34">philox.h</a>
+</li>
+<li>philox2x64_ukey_t
+: <a class="el" href="philox_8h.html#a419cc7ebdeeaa1fc8249c638eac3d00b">philox.h</a>
+</li>
+<li>philox4x32_ctr_t
+: <a class="el" href="philox_8h.html#a96f2a94ebcd7aba28aaeb0aba6543d2d">philox.h</a>
+</li>
+<li>philox4x32_key_t
+: <a class="el" href="philox_8h.html#ab1e74b78fcee751b43739b2b4415c592">philox.h</a>
+</li>
+<li>philox4x32_ukey_t
+: <a class="el" href="philox_8h.html#a82e1d60f98bfbb600bde2bd939de4573">philox.h</a>
+</li>
+<li>philox4x64_ctr_t
+: <a class="el" href="philox_8h.html#a4d2063cc89bf13153ddeff0d94371986">philox.h</a>
+</li>
+<li>philox4x64_key_t
+: <a class="el" href="philox_8h.html#a0c8c9410e9d88d4c94e8093007e39b0c">philox.h</a>
+</li>
+<li>philox4x64_ukey_t
+: <a class="el" href="philox_8h.html#a689ed8276d25fe0c983c4eb5b9a32fd4">philox.h</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_t"></a>- t -</h3><ul>
+<li>threefry2x32_ctr_t
+: <a class="el" href="threefry_8h.html#ac0724455e1e9218f982501247d384833">threefry.h</a>
+</li>
+<li>threefry2x32_key_t
+: <a class="el" href="threefry_8h.html#a9ebab1ff37a7c983a4d5af114fb8f1c7">threefry.h</a>
+</li>
+<li>threefry2x32_ukey_t
+: <a class="el" href="threefry_8h.html#a642ffe8cacdd9e8f6b376bdffff36d24">threefry.h</a>
+</li>
+<li>threefry2x64_ctr_t
+: <a class="el" href="threefry_8h.html#a13c6df8879e7c13605fc1dc67cb2173b">threefry.h</a>
+</li>
+<li>threefry2x64_key_t
+: <a class="el" href="threefry_8h.html#a31a08f696af23b0e339126bc64a78812">threefry.h</a>
+</li>
+<li>threefry2x64_ukey_t
+: <a class="el" href="threefry_8h.html#abb918225d16fcdf0b2659e2096d182b9">threefry.h</a>
+</li>
+<li>threefry4x32_ctr_t
+: <a class="el" href="threefry_8h.html#aa72e480598b54b5bbc640a101f9cbe6e">threefry.h</a>
+</li>
+<li>threefry4x32_key_t
+: <a class="el" href="threefry_8h.html#af332bdaec196cee5378cab4fd049ecde">threefry.h</a>
+</li>
+<li>threefry4x32_ukey_t
+: <a class="el" href="threefry_8h.html#ad65418f4e2c8d8df38059aabc2cc98b6">threefry.h</a>
+</li>
+<li>threefry4x64_ctr_t
+: <a class="el" href="threefry_8h.html#a3296098832bc3a243f40078c1b93592e">threefry.h</a>
+</li>
+<li>threefry4x64_key_t
+: <a class="el" href="threefry_8h.html#ad51f07c7dc47238532cbc05e89f5cef9">threefry.h</a>
+</li>
+<li>threefry4x64_ukey_t
+: <a class="el" href="threefry_8h.html#a6b4db94d5185220d4fcec72f92a391ad">threefry.h</a>
+</li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/group__AESNI.html b/docs/html/group__AESNI.html
new file mode 100644
index 0000000..96ff677
--- /dev/null
+++ b/docs/html/group__AESNI.html
@@ -0,0 +1,647 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: ARS and AESNI Classes and Typedefs</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Classes</a> |
+<a href="#define-members">Defines</a> |
+<a href="#typedef-members">Typedefs</a> |
+<a href="#enum-members">Enumerations</a> |
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<h1>ARS and AESNI Classes and Typedefs</h1>  </div>
+</div>
+<div class="contents">
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structaesni1xm128i__key__t.html">aesni1xm128i_key_t</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1AESNI1xm128i.html">r123::AESNI1xm128i</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1AESNI1xm128i__R.html">r123::AESNI1xm128i_R< ROUNDS ></a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1ARS1xm128i__R.html">r123::ARS1xm128i_R< ROUNDS ></a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1ARS4x32__R.html">r123::ARS4x32_R< ROUNDS ></a></td></tr>
+<tr><td colspan="2"><h2><a name="define-members"></a>
+Defines</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__AESNI.html#gae3950c524818b49d1cdfad481880a33a">aesni4x32</a>(c, k)   aesni4x32_R(aesni4x32_rounds, c, k)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__AESNI.html#ga22e0a9c885b544115d44d26cc7777303">ars1xm128i</a>(c, k)   ars1xm128i_R(ars1xm128i_rounds, c, k)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__AESNI.html#ga088ecbf341caf05e491ce246f2ea2d30">ars4x32</a>(c, k)   ars4x32_R(ars4x32_rounds, c, k)</td></tr>
+<tr><td colspan="2"><h2><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structr123array1xm128i.html">r123array1xm128i</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__AESNI.html#gaab0f809a22e01e6cb6135f6af73bb532">aesni1xm128i_ctr_t</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structr123array1xm128i.html">r123array1xm128i</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__AESNI.html#gaf4fa221e6387d0454e2e6399245bdead">aesni1xm128i_ukey_t</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structr123array4x32.html">r123array4x32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__AESNI.html#gac2c3248ec3b03591d442cf634fb51af5">aesni4x32_ukey_t</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structr123array4x32.html">r123array4x32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__AESNI.html#gae7459b3f4ee0e424cb4f13b4d5efc1fe">aesni4x32_ctr_t</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structaesni1xm128i__key__t.html">aesni1xm128i_key_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__AESNI.html#ga6d88accdcfa339b48e14021a572e269b">aesni4x32_key_t</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structr123array1xm128i.html">r123array1xm128i</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__AESNI.html#ga23ddf8109ce08f2bc14401c5f269d2a9">ars1xm128i_ctr_t</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structr123array1xm128i.html">r123array1xm128i</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__AESNI.html#ga2c5b351a47bb39f4d1769506c98c06e2">ars1xm128i_key_t</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structr123array1xm128i.html">r123array1xm128i</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__AESNI.html#gaeaa234225e7dcec2ffcdb32a0faad4f0">ars1xm128i_ukey_t</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structr123array4x32.html">r123array4x32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__AESNI.html#ga61721da91a455cb587ce6bc4a0f56117">ars4x32_ctr_t</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structr123array4x32.html">r123array4x32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__AESNI.html#ga3a1426aa6aaa06330d48ec8173cd3e7b">ars4x32_key_t</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structr123array4x32.html">r123array4x32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__AESNI.html#ga54cb318ff6bd4df405897b2b9a4b109f">ars4x32_ukey_t</a></td></tr>
+<tr><td colspan="2"><h2><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="group__AESNI.html#ga2814629101926e23001d564630ba7b86">r123_enum_aesni1xm128i</a> { <a class="el" href="group__AESNI.html#gga2814629101926e23001d564630ba7b86a2c404c51fea10eeacb032081dbab2408">aesni1xm128i_rounds</a> =  10
+ }</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="group__AESNI.html#ga1557a9d6e95543a3c4ca9082a4c14b0d">r123_enum_aesni4x32</a> { <a class="el" href="group__AESNI.html#gga1557a9d6e95543a3c4ca9082a4c14b0dad65178990d928071f958bf2413ebdb4b">aesni4x32_rounds</a> =  10
+ }</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="group__AESNI.html#gabf0a537666d4d1421144cb0a5e67666c">r123_enum_ars1xm128i</a> { <a class="el" href="group__AESNI.html#ggabf0a537666d4d1421144cb0a5e67666cade1fd46524355ec1d7ce63fd13b54992">ars1xm128i_rounds</a> =  7
+ }</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="group__AESNI.html#gaa623b038fa0c8d8d2864fdc0e45884d6">r123_enum_ars4x32</a> { <a class="el" href="group__AESNI.html#ggaa623b038fa0c8d8d2864fdc0e45884d6a5e715f357770a0f188ef493e6e63d31d">ars4x32_rounds</a> =  7
+ }</td></tr>
+<tr><td colspan="2"><h2><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structr123array1xm128i.html">aesni1xm128i_ctr_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__AESNI.html#ga3ba5daca2d4d076ece24900084e71311">aesni1xm128i</a> (<a class="el" href="structr123array1xm128i.html">aesni1xm128i_ctr_t</a> in, <a class="el" href="structaesni1xm128i__key__t.html">aesni1xm128i_key_t</a> k)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structr123array1xm128i.html">aesni1xm128i_ctr_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__AESNI.html#ga89d9042c08ae5eef4c98bfb9609ebd34">aesni1xm128i_R</a> (unsigned R, <a class="el" href="structr123array1xm128i.html">aesni1xm128i_ctr_t</a> in, <a class="el" href="structaesni1xm128i__key__t.html">aesni1xm128i_key_t</a> k)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structaesni1xm128i__key__t.html">aesni4x32_key_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__AESNI.html#ga2aa21ba4a3d3850faa96e7834114d8e1">aesni4x32keyinit</a> (<a class="el" href="structr123array4x32.html">aesni4x32_ukey_t</a> uk)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structr123array4x32.html">aesni4x32_ctr_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__AESNI.html#gae28b030e9786a6f36a47df8f211a750b">aesni4x32_R</a> (unsigned int Nrounds, <a class="el" href="structr123array4x32.html">aesni4x32_ctr_t</a> c, <a class="el" href="structaesni1xm128i__key__t.html">aesni4x32_key_t</a> k)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structr123array1xm128i.html">ars1xm128i_key_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__AESNI.html#gae307c205a2ad19142bbe70919abfbfc2">ars1xm128ikeyinit</a> (<a class="el" href="structr123array1xm128i.html">ars1xm128i_ukey_t</a> uk)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structr123array1xm128i.html">ars1xm128i_ctr_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__AESNI.html#gaddc6efc2007f6f66ee914eb7074cff1e">ars1xm128i_R</a> (unsigned int Nrounds, <a class="el" href="structr123array1xm128i.html">ars1xm128i_ctr_t</a> in, <a class="el" href="structr123array1xm128i.html">ars1xm128i_key_t</a> k)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structr123array4x32.html">ars4x32_key_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__AESNI.html#ga1f3a02ea711ae6bacb0875f11a255516">ars4x32keyinit</a> (<a class="el" href="structr123array4x32.html">ars4x32_ukey_t</a> uk)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structr123array4x32.html">ars4x32_ctr_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__AESNI.html#gab13b093252d4bb3389d27d4e3b04dae8">ars4x32_R</a> (unsigned int Nrounds, <a class="el" href="structr123array4x32.html">ars4x32_ctr_t</a> c, <a class="el" href="structr123array4x32.html">ars4x32_key_t</a> k)</td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>The ARS4x32, ARS1xm128i, <a class="el" href="structr123_1_1AESNI4x32.html">AESNI4x32</a> and <a class="el" href="structr123_1_1AESNI1xm128i.html">AESNI1xm128i</a> classes export the member functions, typedefs and operator overloads required by a <a class="el" href="CBRNG.html">CBRNG</a> class.</p>
+<p>ARS1xm128i and <a class="el" href="structr123_1_1AESNI1xm128i.html">AESNI1xm128i</a> are based on the AES block cipher and rely on the AES-NI hardware instructions available on some some new (2011) CPUs.</p>
+<p>The ARS1xm128i CBRNG and the use of AES for random number generation are described in <a href="http://dl.acm.org/citation.cfm?doid=2063405"><em>Parallel Random Numbers: As Easy as 1, 2, 3</em> </a>. Although it uses some cryptographic primitives, ARS1xm128i uses a cryptographically weak key schedule and is <b>not</b> suitable for cryptographic use. </p>
+<hr/><h2>Define Documentation</h2>
+<a class="anchor" id="gae3950c524818b49d1cdfad481880a33a"></a><!-- doxytag: member="aes.h::aesni4x32" ref="gae3950c524818b49d1cdfad481880a33a" args="(c, k)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define aesni4x32</td>
+          <td>(</td>
+          <td class="paramtype"> </td>
+          <td class="paramname">c, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"> </td>
+          <td class="paramname">k</td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td>   aesni4x32_R(aesni4x32_rounds, c, k)</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>The aesni4x32 macro provides a C API to the <a class="el" href="group__AESNI.html">AESNI</a> CBRNG, uses the default number of rounds i.e. <code>aesni4x32_rounds</code> </p>
+
+</div>
+</div>
+<a class="anchor" id="ga22e0a9c885b544115d44d26cc7777303"></a><!-- doxytag: member="ars.h::ars1xm128i" ref="ga22e0a9c885b544115d44d26cc7777303" args="(c, k)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define ars1xm128i</td>
+          <td>(</td>
+          <td class="paramtype"> </td>
+          <td class="paramname">c, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"> </td>
+          <td class="paramname">k</td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td>   ars1xm128i_R(ars1xm128i_rounds, c, k)</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>The ars1mx128i macro provides a C API interface to the <a class="el" href="group__AESNI.html">ARS</a> CBRNG with the default number of rounds i.e. <code>ars1xm128i_rounds</code> </p>
+
+</div>
+</div>
+<a class="anchor" id="ga088ecbf341caf05e491ce246f2ea2d30"></a><!-- doxytag: member="ars.h::ars4x32" ref="ga088ecbf341caf05e491ce246f2ea2d30" args="(c, k)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define ars4x32</td>
+          <td>(</td>
+          <td class="paramtype"> </td>
+          <td class="paramname">c, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"> </td>
+          <td class="paramname">k</td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td>   ars4x32_R(ars4x32_rounds, c, k)</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>The ars4x32 macro provides a C API interface to the <a class="el" href="group__AESNI.html">ARS</a> CBRNG with the default number of rounds i.e. <code>ars4x32_rounds</code> </p>
+
+</div>
+</div>
+<hr/><h2>Typedef Documentation</h2>
+<a class="anchor" id="gaab0f809a22e01e6cb6135f6af73bb532"></a><!-- doxytag: member="aes.h::aesni1xm128i_ctr_t" ref="gaab0f809a22e01e6cb6135f6af73bb532" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="structr123array1xm128i.html">r123array1xm128i</a> <a class="el" href="structr123array1xm128i.html">aesni1xm128i_ctr_t</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="gaf4fa221e6387d0454e2e6399245bdead"></a><!-- doxytag: member="aes.h::aesni1xm128i_ukey_t" ref="gaf4fa221e6387d0454e2e6399245bdead" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="structr123array1xm128i.html">r123array1xm128i</a> <a class="el" href="structr123array1xm128i.html">aesni1xm128i_ukey_t</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="gae7459b3f4ee0e424cb4f13b4d5efc1fe"></a><!-- doxytag: member="aes.h::aesni4x32_ctr_t" ref="gae7459b3f4ee0e424cb4f13b4d5efc1fe" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="structr123array4x32.html">r123array4x32</a> <a class="el" href="structr123array4x32.html">aesni4x32_ctr_t</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ga6d88accdcfa339b48e14021a572e269b"></a><!-- doxytag: member="aes.h::aesni4x32_key_t" ref="ga6d88accdcfa339b48e14021a572e269b" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="structaesni1xm128i__key__t.html">aesni1xm128i_key_t</a> <a class="el" href="structaesni1xm128i__key__t.html">aesni4x32_key_t</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="gac2c3248ec3b03591d442cf634fb51af5"></a><!-- doxytag: member="aes.h::aesni4x32_ukey_t" ref="gac2c3248ec3b03591d442cf634fb51af5" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="structr123array4x32.html">r123array4x32</a> <a class="el" href="structr123array4x32.html">aesni4x32_ukey_t</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ga23ddf8109ce08f2bc14401c5f269d2a9"></a><!-- doxytag: member="ars.h::ars1xm128i_ctr_t" ref="ga23ddf8109ce08f2bc14401c5f269d2a9" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="structr123array1xm128i.html">r123array1xm128i</a> <a class="el" href="structr123array1xm128i.html">ars1xm128i_ctr_t</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ga2c5b351a47bb39f4d1769506c98c06e2"></a><!-- doxytag: member="ars.h::ars1xm128i_key_t" ref="ga2c5b351a47bb39f4d1769506c98c06e2" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="structr123array1xm128i.html">r123array1xm128i</a> <a class="el" href="structr123array1xm128i.html">ars1xm128i_key_t</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="gaeaa234225e7dcec2ffcdb32a0faad4f0"></a><!-- doxytag: member="ars.h::ars1xm128i_ukey_t" ref="gaeaa234225e7dcec2ffcdb32a0faad4f0" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="structr123array1xm128i.html">r123array1xm128i</a> <a class="el" href="structr123array1xm128i.html">ars1xm128i_ukey_t</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ga61721da91a455cb587ce6bc4a0f56117"></a><!-- doxytag: member="ars.h::ars4x32_ctr_t" ref="ga61721da91a455cb587ce6bc4a0f56117" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="structr123array4x32.html">r123array4x32</a> <a class="el" href="structr123array4x32.html">ars4x32_ctr_t</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ga3a1426aa6aaa06330d48ec8173cd3e7b"></a><!-- doxytag: member="ars.h::ars4x32_key_t" ref="ga3a1426aa6aaa06330d48ec8173cd3e7b" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="structr123array4x32.html">r123array4x32</a> <a class="el" href="structr123array4x32.html">ars4x32_key_t</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ga54cb318ff6bd4df405897b2b9a4b109f"></a><!-- doxytag: member="ars.h::ars4x32_ukey_t" ref="ga54cb318ff6bd4df405897b2b9a4b109f" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="structr123array4x32.html">r123array4x32</a> <a class="el" href="structr123array4x32.html">ars4x32_ukey_t</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/><h2>Enumeration Type Documentation</h2>
+<a class="anchor" id="ga2814629101926e23001d564630ba7b86"></a><!-- doxytag: member="aes.h::r123_enum_aesni1xm128i" ref="ga2814629101926e23001d564630ba7b86" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="group__AESNI.html#ga2814629101926e23001d564630ba7b86">r123_enum_aesni1xm128i</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="gga2814629101926e23001d564630ba7b86a2c404c51fea10eeacb032081dbab2408"></a><!-- doxytag: member="aesni1xm128i_rounds" ref="gga2814629101926e23001d564630ba7b86a2c404c51fea10eeacb032081dbab2408" args="" -->aesni1xm128i_rounds</em> </td><td>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ga1557a9d6e95543a3c4ca9082a4c14b0d"></a><!-- doxytag: member="aes.h::r123_enum_aesni4x32" ref="ga1557a9d6e95543a3c4ca9082a4c14b0d" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="group__AESNI.html#ga1557a9d6e95543a3c4ca9082a4c14b0d">r123_enum_aesni4x32</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="gga1557a9d6e95543a3c4ca9082a4c14b0dad65178990d928071f958bf2413ebdb4b"></a><!-- doxytag: member="aesni4x32_rounds" ref="gga1557a9d6e95543a3c4ca9082a4c14b0dad65178990d928071f958bf2413ebdb4b" args="" -->aesni4x32_rounds</em> </td><td>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="gabf0a537666d4d1421144cb0a5e67666c"></a><!-- doxytag: member="ars.h::r123_enum_ars1xm128i" ref="gabf0a537666d4d1421144cb0a5e67666c" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="group__AESNI.html#gabf0a537666d4d1421144cb0a5e67666c">r123_enum_ars1xm128i</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="ggabf0a537666d4d1421144cb0a5e67666cade1fd46524355ec1d7ce63fd13b54992"></a><!-- doxytag: member="ars1xm128i_rounds" ref="ggabf0a537666d4d1421144cb0a5e67666cade1fd46524355ec1d7ce63fd13b54992" args="" -->ars1xm128i_rounds</em> </td><td>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="gaa623b038fa0c8d8d2864fdc0e45884d6"></a><!-- doxytag: member="ars.h::r123_enum_ars4x32" ref="gaa623b038fa0c8d8d2864fdc0e45884d6" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="group__AESNI.html#gaa623b038fa0c8d8d2864fdc0e45884d6">r123_enum_ars4x32</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="ggaa623b038fa0c8d8d2864fdc0e45884d6a5e715f357770a0f188ef493e6e63d31d"></a><!-- doxytag: member="ars4x32_rounds" ref="ggaa623b038fa0c8d8d2864fdc0e45884d6a5e715f357770a0f188ef493e6e63d31d" args="" -->ars4x32_rounds</em> </td><td>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+<hr/><h2>Function Documentation</h2>
+<a class="anchor" id="ga3ba5daca2d4d076ece24900084e71311"></a><!-- doxytag: member="aes.h::aesni1xm128i" ref="ga3ba5daca2d4d076ece24900084e71311" args="(aesni1xm128i_ctr_t in, aesni1xm128i_key_t k)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structr123array1xm128i.html">aesni1xm128i_ctr_t</a> aesni1xm128i </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array1xm128i.html">aesni1xm128i_ctr_t</a> </td>
+          <td class="paramname"> <em>in</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structaesni1xm128i__key__t.html">aesni1xm128i_key_t</a> </td>
+          <td class="paramname"> <em>k</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [inline, static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ga89d9042c08ae5eef4c98bfb9609ebd34"></a><!-- doxytag: member="aes.h::aesni1xm128i_R" ref="ga89d9042c08ae5eef4c98bfb9609ebd34" args="(unsigned R, aesni1xm128i_ctr_t in, aesni1xm128i_key_t k)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structr123array1xm128i.html">aesni1xm128i_ctr_t</a> aesni1xm128i_R </td>
+          <td>(</td>
+          <td class="paramtype">unsigned </td>
+          <td class="paramname"> <em>R</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structr123array1xm128i.html">aesni1xm128i_ctr_t</a> </td>
+          <td class="paramname"> <em>in</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structaesni1xm128i__key__t.html">aesni1xm128i_key_t</a> </td>
+          <td class="paramname"> <em>k</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [inline, static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="gae28b030e9786a6f36a47df8f211a750b"></a><!-- doxytag: member="aes.h::aesni4x32_R" ref="gae28b030e9786a6f36a47df8f211a750b" args="(unsigned int Nrounds, aesni4x32_ctr_t c, aesni4x32_key_t k)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structr123array4x32.html">aesni4x32_ctr_t</a> aesni4x32_R </td>
+          <td>(</td>
+          <td class="paramtype">unsigned int </td>
+          <td class="paramname"> <em>Nrounds</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structr123array4x32.html">aesni4x32_ctr_t</a> </td>
+          <td class="paramname"> <em>c</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structaesni1xm128i__key__t.html">aesni4x32_key_t</a> </td>
+          <td class="paramname"> <em>k</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [inline, static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>The aesni4x32_R function provides a C API to the <a class="el" href="group__AESNI.html">AESNI</a> CBRNG, allowing the number of rounds to be specified explicitly </p>
+
+</div>
+</div>
+<a class="anchor" id="ga2aa21ba4a3d3850faa96e7834114d8e1"></a><!-- doxytag: member="aes.h::aesni4x32keyinit" ref="ga2aa21ba4a3d3850faa96e7834114d8e1" args="(aesni4x32_ukey_t uk)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structaesni1xm128i__key__t.html">aesni4x32_key_t</a> aesni4x32keyinit </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array4x32.html">aesni4x32_ukey_t</a> </td>
+          <td class="paramname"> <em>uk</em></td>
+          <td> ) </td>
+          <td><code> [inline, static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="gaddc6efc2007f6f66ee914eb7074cff1e"></a><!-- doxytag: member="ars.h::ars1xm128i_R" ref="gaddc6efc2007f6f66ee914eb7074cff1e" args="(unsigned int Nrounds, ars1xm128i_ctr_t in, ars1xm128i_key_t k)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structr123array1xm128i.html">ars1xm128i_ctr_t</a> ars1xm128i_R </td>
+          <td>(</td>
+          <td class="paramtype">unsigned int </td>
+          <td class="paramname"> <em>Nrounds</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structr123array1xm128i.html">ars1xm128i_ctr_t</a> </td>
+          <td class="paramname"> <em>in</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structr123array1xm128i.html">ars1xm128i_key_t</a> </td>
+          <td class="paramname"> <em>k</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [inline, static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="gae307c205a2ad19142bbe70919abfbfc2"></a><!-- doxytag: member="ars.h::ars1xm128ikeyinit" ref="gae307c205a2ad19142bbe70919abfbfc2" args="(ars1xm128i_ukey_t uk)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structr123array1xm128i.html">ars1xm128i_key_t</a> ars1xm128ikeyinit </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array1xm128i.html">ars1xm128i_ukey_t</a> </td>
+          <td class="paramname"> <em>uk</em></td>
+          <td> ) </td>
+          <td><code> [inline, static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="gab13b093252d4bb3389d27d4e3b04dae8"></a><!-- doxytag: member="ars.h::ars4x32_R" ref="gab13b093252d4bb3389d27d4e3b04dae8" args="(unsigned int Nrounds, ars4x32_ctr_t c, ars4x32_key_t k)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structr123array4x32.html">ars4x32_ctr_t</a> ars4x32_R </td>
+          <td>(</td>
+          <td class="paramtype">unsigned int </td>
+          <td class="paramname"> <em>Nrounds</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structr123array4x32.html">ars4x32_ctr_t</a> </td>
+          <td class="paramname"> <em>c</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structr123array4x32.html">ars4x32_key_t</a> </td>
+          <td class="paramname"> <em>k</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [inline, static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ga1f3a02ea711ae6bacb0875f11a255516"></a><!-- doxytag: member="ars.h::ars4x32keyinit" ref="ga1f3a02ea711ae6bacb0875f11a255516" args="(ars4x32_ukey_t uk)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structr123array4x32.html">ars4x32_key_t</a> ars4x32keyinit </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array4x32.html">ars4x32_ukey_t</a> </td>
+          <td class="paramname"> <em>uk</em></td>
+          <td> ) </td>
+          <td><code> [inline, static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/group__PhiloxNxW.html b/docs/html/group__PhiloxNxW.html
new file mode 100644
index 0000000..dda954a
--- /dev/null
+++ b/docs/html/group__PhiloxNxW.html
@@ -0,0 +1,238 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Philox Classes and Typedefs</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Classes</a> |
+<a href="#typedef-members">Typedefs</a> |
+<a href="#enum-members">Enumerations</a>  </div>
+  <div class="headertitle">
+<h1>Philox Classes and Typedefs</h1>  </div>
+</div>
+<div class="contents">
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Philox2x32__R.html">r123::Philox2x32_R< ROUNDS ></a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Philox2x64__R.html">r123::Philox2x64_R< ROUNDS ></a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Philox4x32__R.html">r123::Philox4x32_R< ROUNDS ></a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Philox4x64__R.html">r123::Philox4x64_R< ROUNDS ></a></td></tr>
+<tr><td colspan="2"><h2><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef Philox2x32_R<br class="typebreak"/>
+< philox2x32_rounds > </td><td class="memItemRight" valign="bottom"><a class="el" href="group__PhiloxNxW.html#ga81659a3ee5a1ca9e2e85c5d725a1ea4f">r123::Philox2x32</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef Philox2x64_R<br class="typebreak"/>
+< philox2x64_rounds > </td><td class="memItemRight" valign="bottom"><a class="el" href="group__PhiloxNxW.html#ga616a669079ac25119353416c14d46426">r123::Philox2x64</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef Philox4x32_R<br class="typebreak"/>
+< philox4x32_rounds > </td><td class="memItemRight" valign="bottom"><a class="el" href="group__PhiloxNxW.html#gaafd54060af05012db410034e3c0ecdc4">r123::Philox4x32</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef Philox4x64_R<br class="typebreak"/>
+< philox4x64_rounds > </td><td class="memItemRight" valign="bottom"><a class="el" href="group__PhiloxNxW.html#ga7776f4d481b7c0ac00db70272a1c77f0">r123::Philox4x64</a></td></tr>
+<tr><td colspan="2"><h2><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="group__PhiloxNxW.html#gae7443e1a57429154124943b6a7c0bd08">r123_enum_philox2x32</a> { <a class="el" href="group__PhiloxNxW.html#ggae7443e1a57429154124943b6a7c0bd08ad08568b592cd076441505eed926d929c">philox2x32_rounds</a> =  10
+ }</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="group__PhiloxNxW.html#ga67fd1bf4ed858d01663a7d6b219b97a2">r123_enum_philox4x32</a> { <a class="el" href="group__PhiloxNxW.html#gga67fd1bf4ed858d01663a7d6b219b97a2ac9dec73e096a7afb5d82f2388a7a5412">philox4x32_rounds</a> =  10
+ }</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="group__PhiloxNxW.html#gaca9df5cdadde758a63952daa97ddff91">r123_enum_philox2x64</a> { <a class="el" href="group__PhiloxNxW.html#ggaca9df5cdadde758a63952daa97ddff91ae15befbf8ae3f2e93d6e49ea9e05b636">philox2x64_rounds</a> =  10
+ }</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="group__PhiloxNxW.html#gaf603860d055cee96c75f6986641e9cad">r123_enum_philox4x64</a> { <a class="el" href="group__PhiloxNxW.html#ggaf603860d055cee96c75f6986641e9cada3407accddb6e873c1005a4ab2edcef67">philox4x64_rounds</a> =  10
+ }</td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>The PhiloxNxW classes export the member functions, typedefs and operator overloads required by a <a class="el" href="CBRNG.html">CBRNG</a> class.</p>
+<p>As described in <a href="http://dl.acm.org/citation.cfm?doid=2063405"><em>Parallel Random Numbers: As Easy as 1, 2, 3</em> </a>. 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). </p>
+<hr/><h2>Typedef Documentation</h2>
+<a class="anchor" id="ga81659a3ee5a1ca9e2e85c5d725a1ea4f"></a><!-- doxytag: member="r123::Philox2x32" ref="ga81659a3ee5a1ca9e2e85c5d725a1ea4f" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123_1_1Philox2x32__R.html">r123::Philox2x32</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>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. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga616a669079ac25119353416c14d46426"></a><!-- doxytag: member="r123::Philox2x64" ref="ga616a669079ac25119353416c14d46426" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123_1_1Philox2x64__R.html">r123::Philox2x64</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>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. </p>
+
+</div>
+</div>
+<a class="anchor" id="gaafd54060af05012db410034e3c0ecdc4"></a><!-- doxytag: member="r123::Philox4x32" ref="gaafd54060af05012db410034e3c0ecdc4" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123_1_1Philox4x32__R.html">r123::Philox4x32</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>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. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga7776f4d481b7c0ac00db70272a1c77f0"></a><!-- doxytag: member="r123::Philox4x64" ref="ga7776f4d481b7c0ac00db70272a1c77f0" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123_1_1Philox4x64__R.html">r123::Philox4x64</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>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. </p>
+
+</div>
+</div>
+<hr/><h2>Enumeration Type Documentation</h2>
+<a class="anchor" id="gae7443e1a57429154124943b6a7c0bd08"></a><!-- doxytag: member="philox.h::r123_enum_philox2x32" ref="gae7443e1a57429154124943b6a7c0bd08" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="group__PhiloxNxW.html#gae7443e1a57429154124943b6a7c0bd08">r123_enum_philox2x32</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="ggae7443e1a57429154124943b6a7c0bd08ad08568b592cd076441505eed926d929c"></a><!-- doxytag: member="philox2x32_rounds" ref="ggae7443e1a57429154124943b6a7c0bd08ad08568b592cd076441505eed926d929c" args="" -->philox2x32_rounds</em> </td><td>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="gaca9df5cdadde758a63952daa97ddff91"></a><!-- doxytag: member="philox.h::r123_enum_philox2x64" ref="gaca9df5cdadde758a63952daa97ddff91" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="group__PhiloxNxW.html#gaca9df5cdadde758a63952daa97ddff91">r123_enum_philox2x64</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="ggaca9df5cdadde758a63952daa97ddff91ae15befbf8ae3f2e93d6e49ea9e05b636"></a><!-- doxytag: member="philox2x64_rounds" ref="ggaca9df5cdadde758a63952daa97ddff91ae15befbf8ae3f2e93d6e49ea9e05b636" args="" -->philox2x64_rounds</em> </td><td>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ga67fd1bf4ed858d01663a7d6b219b97a2"></a><!-- doxytag: member="philox.h::r123_enum_philox4x32" ref="ga67fd1bf4ed858d01663a7d6b219b97a2" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="group__PhiloxNxW.html#ga67fd1bf4ed858d01663a7d6b219b97a2">r123_enum_philox4x32</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="gga67fd1bf4ed858d01663a7d6b219b97a2ac9dec73e096a7afb5d82f2388a7a5412"></a><!-- doxytag: member="philox4x32_rounds" ref="gga67fd1bf4ed858d01663a7d6b219b97a2ac9dec73e096a7afb5d82f2388a7a5412" args="" -->philox4x32_rounds</em> </td><td>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="gaf603860d055cee96c75f6986641e9cad"></a><!-- doxytag: member="philox.h::r123_enum_philox4x64" ref="gaf603860d055cee96c75f6986641e9cad" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="group__PhiloxNxW.html#gaf603860d055cee96c75f6986641e9cad">r123_enum_philox4x64</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="ggaf603860d055cee96c75f6986641e9cada3407accddb6e873c1005a4ab2edcef67"></a><!-- doxytag: member="philox4x64_rounds" ref="ggaf603860d055cee96c75f6986641e9cada3407accddb6e873c1005a4ab2edcef67" args="" -->philox4x64_rounds</em> </td><td>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/group__ThreefryNxW.html b/docs/html/group__ThreefryNxW.html
new file mode 100644
index 0000000..c4c9d52
--- /dev/null
+++ b/docs/html/group__ThreefryNxW.html
@@ -0,0 +1,239 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Threefry Classes and Typedefs</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Classes</a> |
+<a href="#typedef-members">Typedefs</a> |
+<a href="#enum-members">Enumerations</a>  </div>
+  <div class="headertitle">
+<h1>Threefry Classes and Typedefs</h1>  </div>
+</div>
+<div class="contents">
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Threefry2x32__R.html">r123::Threefry2x32_R< R ></a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Threefry2x64__R.html">r123::Threefry2x64_R< R ></a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Threefry4x32__R.html">r123::Threefry4x32_R< R ></a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Threefry4x64__R.html">r123::Threefry4x64_R< R ></a></td></tr>
+<tr><td colspan="2"><h2><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef Threefry2x32_R<br class="typebreak"/>
+< threefry2x32_rounds > </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ThreefryNxW.html#ga1c32939b65f84966c93677f4382ea36d">r123::Threefry2x32</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef Threefry2x64_R<br class="typebreak"/>
+< threefry2x64_rounds > </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ThreefryNxW.html#ga2b54dd1b0d20f09239be5f8757f1f3db">r123::Threefry2x64</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef Threefry4x32_R<br class="typebreak"/>
+< threefry4x32_rounds > </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ThreefryNxW.html#gacb09a2dcfb7389769f0c58f45f132aaa">r123::Threefry4x32</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef Threefry4x64_R<br class="typebreak"/>
+< threefry4x64_rounds > </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ThreefryNxW.html#gae17c98bddf067365508ed0717f865e8b">r123::Threefry4x64</a></td></tr>
+<tr><td colspan="2"><h2><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ThreefryNxW.html#gae4df1e52db01acafb28d9c6c25a41071">r123_enum_threefry2x64</a> { <a class="el" href="group__ThreefryNxW.html#ggae4df1e52db01acafb28d9c6c25a41071a61579c86759ab497dbfc895f2fe6ec7c">threefry2x64_rounds</a> =  20
+ }</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ThreefryNxW.html#gae1c47baba4367dd47d68025d23ae4775">r123_enum_threefry2x32</a> { <a class="el" href="group__ThreefryNxW.html#ggae1c47baba4367dd47d68025d23ae4775a5c6f9a5f3ae1c3700938a3fca5f5821b">threefry2x32_rounds</a> =  20
+ }</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ThreefryNxW.html#ga6379a4a73e85bc36235907a326945acc">r123_enum_threefry4x64</a> { <a class="el" href="group__ThreefryNxW.html#gga6379a4a73e85bc36235907a326945acca9cdd4629047775ebe339ac9e9dd0ad65">threefry4x64_rounds</a> =  20
+ }</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ThreefryNxW.html#ga027cd15620ecab867c6af8bb065b189b">r123_enum_threefry4x32</a> { <a class="el" href="group__ThreefryNxW.html#gga027cd15620ecab867c6af8bb065b189ba36063dd986ca2ccd28209c7b4bf711d7">threefry4x32_rounds</a> =  20
+ }</td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>The ThreefryNxW classes export the member functions, typedefs and operator overloads required by a <a class="el" href="CBRNG.html">CBRNG</a> class.</p>
+<p>As described in <a href="http://dl.acm.org/citation.cfm?doid=2063405"><em>Parallel Random Numbers: As Easy as 1, 2, 3</em> </a>, the Threefry family is closely related to the Threefish block cipher from <a href="http://www.skein-hash.info/">Skein Hash Function</a>. Threefry is <b>not</b> suitable for cryptographic use.</p>
+<p>Threefry uses integer addition, bitwise rotation, xor and permutation of words to randomize its output. </p>
+<hr/><h2>Typedef Documentation</h2>
+<a class="anchor" id="ga1c32939b65f84966c93677f4382ea36d"></a><!-- doxytag: member="r123::Threefry2x32" ref="ga1c32939b65f84966c93677f4382ea36d" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123_1_1Threefry2x32__R.html">r123::Threefry2x32</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Threefry2x32 is equivalent to Threefry2x32_R<20>. With 20 rounds, Threefry2x32 has a considerable safety margin over the minimum number of rounds with no known statistical flaws, but still has excellent performance. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga2b54dd1b0d20f09239be5f8757f1f3db"></a><!-- doxytag: member="r123::Threefry2x64" ref="ga2b54dd1b0d20f09239be5f8757f1f3db" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123_1_1Threefry2x64__R.html">r123::Threefry2x64</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Threefry2x64 is equivalent to Threefry2x64_R<20>. With 20 rounds, Threefry2x64 has a considerable safety margin over the minimum number of rounds with no known statistical flaws, but still has excellent performance. </p>
+
+</div>
+</div>
+<a class="anchor" id="gacb09a2dcfb7389769f0c58f45f132aaa"></a><!-- doxytag: member="r123::Threefry4x32" ref="gacb09a2dcfb7389769f0c58f45f132aaa" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123_1_1Threefry4x32__R.html">r123::Threefry4x32</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Threefry4x32 is equivalent to Threefry4x32_R<20>. With 20 rounds, Threefry4x32 has a considerable safety margin over the minimum number of rounds with no known statistical flaws, but still has excellent performance. </p>
+
+</div>
+</div>
+<a class="anchor" id="gae17c98bddf067365508ed0717f865e8b"></a><!-- doxytag: member="r123::Threefry4x64" ref="gae17c98bddf067365508ed0717f865e8b" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123_1_1Threefry4x64__R.html">r123::Threefry4x64</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Threefry4x64 is equivalent to Threefry4x64_R<20>. With 20 rounds, Threefry4x64 has a considerable safety margin over the minimum number of rounds with no known statistical flaws, but still has excellent performance. </p>
+
+</div>
+</div>
+<hr/><h2>Enumeration Type Documentation</h2>
+<a class="anchor" id="gae1c47baba4367dd47d68025d23ae4775"></a><!-- doxytag: member="threefry.h::r123_enum_threefry2x32" ref="gae1c47baba4367dd47d68025d23ae4775" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="group__ThreefryNxW.html#gae1c47baba4367dd47d68025d23ae4775">r123_enum_threefry2x32</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="ggae1c47baba4367dd47d68025d23ae4775a5c6f9a5f3ae1c3700938a3fca5f5821b"></a><!-- doxytag: member="threefry2x32_rounds" ref="ggae1c47baba4367dd47d68025d23ae4775a5c6f9a5f3ae1c3700938a3fca5f5821b" args="" -->threefry2x32_rounds</em> </td><td>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="gae4df1e52db01acafb28d9c6c25a41071"></a><!-- doxytag: member="threefry.h::r123_enum_threefry2x64" ref="gae4df1e52db01acafb28d9c6c25a41071" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="group__ThreefryNxW.html#gae4df1e52db01acafb28d9c6c25a41071">r123_enum_threefry2x64</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="ggae4df1e52db01acafb28d9c6c25a41071a61579c86759ab497dbfc895f2fe6ec7c"></a><!-- doxytag: member="threefry2x64_rounds" ref="ggae4df1e52db01acafb28d9c6c25a41071a61579c86759ab497dbfc895f2fe6ec7c" args="" -->threefry2x64_rounds</em> </td><td>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ga027cd15620ecab867c6af8bb065b189b"></a><!-- doxytag: member="threefry.h::r123_enum_threefry4x32" ref="ga027cd15620ecab867c6af8bb065b189b" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="group__ThreefryNxW.html#ga027cd15620ecab867c6af8bb065b189b">r123_enum_threefry4x32</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="gga027cd15620ecab867c6af8bb065b189ba36063dd986ca2ccd28209c7b4bf711d7"></a><!-- doxytag: member="threefry4x32_rounds" ref="gga027cd15620ecab867c6af8bb065b189ba36063dd986ca2ccd28209c7b4bf711d7" args="" -->threefry4x32_rounds</em> </td><td>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ga6379a4a73e85bc36235907a326945acc"></a><!-- doxytag: member="threefry.h::r123_enum_threefry4x64" ref="ga6379a4a73e85bc36235907a326945acc" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="group__ThreefryNxW.html#ga6379a4a73e85bc36235907a326945acc">r123_enum_threefry4x64</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="gga6379a4a73e85bc36235907a326945acca9cdd4629047775ebe339ac9e9dd0ad65"></a><!-- doxytag: member="threefry4x64_rounds" ref="gga6379a4a73e85bc36235907a326945acca9cdd4629047775ebe339ac9e9dd0ad65" args="" -->threefry4x64_rounds</em> </td><td>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/group__arrayNxW.html b/docs/html/group__arrayNxW.html
new file mode 100644
index 0000000..c465199
--- /dev/null
+++ b/docs/html/group__arrayNxW.html
@@ -0,0 +1,88 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: The r123arrayNxW classes</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Classes</a>  </div>
+  <div class="headertitle">
+<h1>The r123arrayNxW classes</h1>  </div>
+</div>
+<div class="contents">
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x32.html">r123array1x32</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x32.html">r123array2x32</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x32.html">r123array4x32</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array8x32.html">r123array8x32</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x64.html">r123array1x64</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x64.html">r123array2x64</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x64.html">r123array4x64</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array16x8.html">r123array16x8</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1xm128i.html">r123array1xm128i</a></td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>Each of the r123arrayNxW is a fixed size array of N W-bit unsigned integers. It is functionally equivalent to the C++0x std::array<N, uintW_t>, but does not require C++0x features or libraries.</p>
+<p>In addition to meeting most of the requirements of a Container, it also has a member function, incr(), which increments the zero-th element and carrys overflows into higher indexed elements. Thus, by using incr(), sequences of up to 2^(N*W) distinct values can be produced.</p>
+<p>If SSE is supported by the compiler, then the class <a class="el" href="structr123array1xm128i.html">r123array1xm128i</a> is also defined, in which the data member is an array of one r123128i object. </p>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/gsl__cbrng_8h.html b/docs/html/gsl__cbrng_8h.html
new file mode 100644
index 0000000..44948c6
--- /dev/null
+++ b/docs/html/gsl__cbrng_8h.html
@@ -0,0 +1,126 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Random123/conventional/gsl_cbrng.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="summary">
+<a href="#define-members">Defines</a>  </div>
+  <div class="headertitle">
+<h1>Random123/conventional/gsl_cbrng.h File Reference</h1>  </div>
+</div>
+<div class="contents">
+<code>#include <gsl/gsl_rng.h></code><br/>
+<code>#include <string.h></code><br/>
+
+<p><a href="gsl__cbrng_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="define-members"></a>
+Defines</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="gsl__cbrng_8h.html#af561a004eef8e93cdfd6b255a8a1eb75">GSL_CBRNG</a>(NAME, CBRNGNAME)</td></tr>
+</table>
+<hr/><h2>Define Documentation</h2>
+<a class="anchor" id="af561a004eef8e93cdfd6b255a8a1eb75"></a><!-- doxytag: member="gsl_cbrng.h::GSL_CBRNG" ref="af561a004eef8e93cdfd6b255a8a1eb75" args="(NAME, CBRNGNAME)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define GSL_CBRNG</td>
+          <td>(</td>
+          <td class="paramtype"> </td>
+          <td class="paramname">NAME, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"> </td>
+          <td class="paramname">CBRNGNAME</td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>The macro: <a class="el" href="gsl__cbrng_8h.html#af561a004eef8e93cdfd6b255a8a1eb75">GSL_CBRNG(NAME, CBRNGNAME)</a> declares the necessary structs and constants that define a gsl_rng_NAME type based on the counter-based RNG CBRNGNAME. For example:</p>
+<p>Usage:</p>
+<div class="fragment"><pre class="fragment"><span class="preprocessor">   #include <<a class="code" href="threefry_8h.html">Random123/threefry.h</a>></span>
+<span class="preprocessor">   #include <<a class="code" href="gsl__cbrng_8h.html">Random123/conventional/gsl_cbrng.h</a>></span>  <span class="comment">// this file</span>
+   <a class="code" href="gsl__cbrng_8h.html#af561a004eef8e93cdfd6b255a8a1eb75">GSL_CBRNG</a>(cbrng, <a class="code" href="threefry_8h.html#aaaecd189b32b0081c6a3c2cb46577e23">threefry4x32</a>); <span class="comment">// creates gsl_rng_cbrng</span>
+
+   <span class="keywordtype">int</span> main(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> **argv){
+       gsl_rng *r = gsl_rng_alloc(gsl_rng_cbrng);
+       ... use r as you would use any other gsl_rng ...   
+    }
+</pre></div><p>It requires that NAME be the name of a CBRNG that follows the naming and stylistic conventions of the Random123 library.</p>
+<p>Note that wrapping a <a class="el" href="CBRNG.html">counter-based PRNG</a> with a traditional API in this way obscures much of the power of the CBRNG API. Nevertheless, it may be of value to applications that are already coded to work with GSL random number generators, and that wish to use the RNGs in the Random123 library. </p>
+
+</div>
+</div>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/gsl__cbrng_8h_source.html b/docs/html/gsl__cbrng_8h_source.html
new file mode 100644
index 0000000..06122e7
--- /dev/null
+++ b/docs/html/gsl__cbrng_8h_source.html
@@ -0,0 +1,174 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Random123/conventional/gsl_cbrng.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+<div class="header">
+  <div class="headertitle">
+<h1>Random123/conventional/gsl_cbrng.h</h1>  </div>
+</div>
+<div class="contents">
+<a href="gsl__cbrng_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
+<a name="l00002"></a>00002 <span class="comment">Copyright 2010-2011, D. E. Shaw Research.</span>
+<a name="l00003"></a>00003 <span class="comment">All rights reserved.</span>
+<a name="l00004"></a>00004 <span class="comment"></span>
+<a name="l00005"></a>00005 <span class="comment">Redistribution and use in source and binary forms, with or without</span>
+<a name="l00006"></a>00006 <span class="comment">modification, are permitted provided that the following conditions are</span>
+<a name="l00007"></a>00007 <span class="comment">met:</span>
+<a name="l00008"></a>00008 <span class="comment"></span>
+<a name="l00009"></a>00009 <span class="comment">* Redistributions of source code must retain the above copyright</span>
+<a name="l00010"></a>00010 <span class="comment">  notice, this list of conditions, and the following disclaimer.</span>
+<a name="l00011"></a>00011 <span class="comment"></span>
+<a name="l00012"></a>00012 <span class="comment">* Redistributions in binary form must reproduce the above copyright</span>
+<a name="l00013"></a>00013 <span class="comment">  notice, this list of conditions, and the following disclaimer in the</span>
+<a name="l00014"></a>00014 <span class="comment">  documentation and/or other materials provided with the distribution.</span>
+<a name="l00015"></a>00015 <span class="comment"></span>
+<a name="l00016"></a>00016 <span class="comment">* Neither the name of D. E. Shaw Research nor the names of its</span>
+<a name="l00017"></a>00017 <span class="comment">  contributors may be used to endorse or promote products derived from</span>
+<a name="l00018"></a>00018 <span class="comment">  this software without specific prior written permission.</span>
+<a name="l00019"></a>00019 <span class="comment"></span>
+<a name="l00020"></a>00020 <span class="comment">THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS</span>
+<a name="l00021"></a>00021 <span class="comment">"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT</span>
+<a name="l00022"></a>00022 <span class="comment">LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR</span>
+<a name="l00023"></a>00023 <span class="comment">A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT</span>
+<a name="l00024"></a>00024 <span class="comment">OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,</span>
+<a name="l00025"></a>00025 <span class="comment">SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT</span>
+<a name="l00026"></a>00026 <span class="comment">LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,</span>
+<a name="l00027"></a>00027 <span class="comment">DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY</span>
+<a name="l00028"></a>00028 <span class="comment">THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT</span>
+<a name="l00029"></a>00029 <span class="comment">(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE</span>
+<a name="l00030"></a>00030 <span class="comment">OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span>
+<a name="l00031"></a>00031 <span class="comment">*/</span>
+<a name="l00032"></a>00032 <span class="preprocessor">#ifndef __r123_compat_gslrng_dot_h__</span>
+<a name="l00033"></a>00033 <span class="preprocessor"></span><span class="preprocessor">#define __r123_compat_gslrng_dot_h__</span>
+<a name="l00034"></a>00034 <span class="preprocessor"></span>
+<a name="l00035"></a>00035 <span class="preprocessor">#include <gsl/gsl_rng.h></span>
+<a name="l00036"></a>00036 <span class="preprocessor">#include <string.h></span>
+<a name="l00037"></a>00037 
+<a name="l00067"></a><a class="code" href="gsl__cbrng_8h.html#af561a004eef8e93cdfd6b255a8a1eb75">00067</a> <span class="preprocessor">#define GSL_CBRNG(NAME, CBRNGNAME)                                      \</span>
+<a name="l00068"></a>00068 <span class="preprocessor">const gsl_rng_type *gsl_rng_##NAME;                                     \</span>
+<a name="l00069"></a>00069 <span class="preprocessor">                                                                        \</span>
+<a name="l00070"></a>00070 <span class="preprocessor">typedef struct{                                                         \</span>
+<a name="l00071"></a>00071 <span class="preprocessor">    CBRNGNAME##_ctr_t ctr;                                                   \</span>
+<a name="l00072"></a>00072 <span class="preprocessor">    CBRNGNAME##_ctr_t r;                                                     \</span>
+<a name="l00073"></a>00073 <span class="preprocessor">    CBRNGNAME##_key_t key;                                                   \</span>
+<a name="l00074"></a>00074 <span class="preprocessor">    int elem;                                                           \</span>
+<a name="l00075"></a>00075 <span class="preprocessor">} NAME##_state;                                                         \</span>
+<a name="l00076"></a>00076 <span class="preprocessor">                                                                        \</span>
+<a name="l00077"></a>00077 <span class="preprocessor">static unsigned long int NAME##_get(void *vstate){                      \</span>
+<a name="l00078"></a>00078 <span class="preprocessor">    NAME##_state *st = (NAME##_state *)vstate;                          \</span>
+<a name="l00079"></a>00079 <span class="preprocessor">    const int N=sizeof(st->ctr.v)/sizeof(st->ctr.v[0]);                 \</span>
+<a name="l00080"></a>00080 <span class="preprocessor">    if( st->elem == 0 ){                                                \</span>
+<a name="l00081"></a>00081 <span class="preprocessor">        ++st->ctr.v[0];                                                 \</span>
+<a name="l00082"></a>00082 <span class="preprocessor">        if( N>1 && st->ctr.v[0] == 0 ) ++st->ctr.v[1];                  \</span>
+<a name="l00083"></a>00083 <span class="preprocessor">        if( N>2 && st->ctr.v[1] == 0 ) ++st->ctr.v[2];                  \</span>
+<a name="l00084"></a>00084 <span class="preprocessor">        if( N>3 && st->ctr.v[2] == 0 ) ++st->ctr.v[3];                  \</span>
+<a name="l00085"></a>00085 <span class="preprocessor">        st->r = CBRNGNAME(st->ctr, st->key);                                 \</span>
+<a name="l00086"></a>00086 <span class="preprocessor">        st->elem = N;                                                   \</span>
+<a name="l00087"></a>00087 <span class="preprocessor">    }                                                                   \</span>
+<a name="l00088"></a>00088 <span class="preprocessor">    return 0xffffffffUL & st->r.v[--st->elem];                          \</span>
+<a name="l00089"></a>00089 <span class="preprocessor">}                                                                       \</span>
+<a name="l00090"></a>00090 <span class="preprocessor">                                                                        \</span>
+<a name="l00091"></a>00091 <span class="preprocessor">static double                                                           \</span>
+<a name="l00092"></a>00092 <span class="preprocessor">NAME##_get_double (void * vstate)                                       \</span>
+<a name="l00093"></a>00093 <span class="preprocessor">{                                                                       \</span>
+<a name="l00094"></a>00094 <span class="preprocessor">    return NAME##_get (vstate)/4294967296.0;                            \</span>
+<a name="l00095"></a>00095 <span class="preprocessor">}                                                                       \</span>
+<a name="l00096"></a>00096 <span class="preprocessor">                                                                        \</span>
+<a name="l00097"></a>00097 <span class="preprocessor">static void NAME##_set(void *vstate, unsigned long int s){              \</span>
+<a name="l00098"></a>00098 <span class="preprocessor">    NAME##_state *st = (NAME##_state *)vstate;                          \</span>
+<a name="l00099"></a>00099 <span class="preprocessor">    st->elem = 0;                                                       \</span>
+<a name="l00100"></a>00100 <span class="preprocessor">    </span><span class="comment">/* Assume that key and ctr have an array member, v,                 \</span>
+<a name="l00101"></a>00101 <span class="comment">       as if they are r123arrayNxW.  If not, this will fail             \</span>
+<a name="l00102"></a>00102 <span class="comment">       to compile.  In particular, this macro fails to compile          \</span>
+<a name="l00103"></a>00103 <span class="comment">       when the underlying CBRNG requires use of keyinit */</span>             \
+<a name="l00104"></a>00104     memset(&st->ctr.v[0], 0, sizeof(st->ctr.v));                        \
+<a name="l00105"></a>00105     memset(&st->key.v[0], 0, sizeof(st->key.v));                        \
+<a name="l00106"></a>00106     <span class="comment">/* GSL 1.15 documentation says this about gsl_rng_set:              \</span>
+<a name="l00107"></a>00107 <span class="comment">         Note that the most generators only accept 32-bit seeds, with higher \</span>
+<a name="l00108"></a>00108 <span class="comment">         values being reduced modulo 2^32.  For generators with smaller \</span>
+<a name="l00109"></a>00109 <span class="comment">         ranges the maximum seed value will typically be lower.         \</span>
+<a name="l00110"></a>00110 <span class="comment">     so we won't jump through any hoops here to deal with               \</span>
+<a name="l00111"></a>00111 <span class="comment">     high bits if sizeof(unsigned long) > sizeof(uint32_t). */</span>          \
+<a name="l00112"></a>00112     st->key.v[0] = s;                                                   \
+<a name="l00113"></a>00113 }                                                                       \
+<a name="l00114"></a>00114                                                                         \
+<a name="l00115"></a>00115 static const gsl_rng_type NAME##_type = {                               \
+<a name="l00116"></a>00116     #NAME,                                                              \
+<a name="l00117"></a>00117     0xffffffffUL,                                                       \
+<a name="l00118"></a>00118     0,                                                                  \
+<a name="l00119"></a>00119     sizeof(NAME##_state),                                               \
+<a name="l00120"></a>00120     &NAME##_set,                                                        \
+<a name="l00121"></a>00121     &NAME##_get,                                                        \
+<a name="l00122"></a>00122     &NAME##_get_double                                                  \
+<a name="l00123"></a>00123 };                                                                      \
+<a name="l00124"></a>00124                                                                         \
+<a name="l00125"></a>00125 const gsl_rng_type *gsl_rng_##NAME = &NAME##_type
+<a name="l00126"></a>00126 
+<a name="l00127"></a>00127 <span class="preprocessor">#endif</span>
+<a name="l00128"></a>00128 <span class="preprocessor"></span>
+</pre></div></div>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/gsl__microrng_8h.html b/docs/html/gsl__microrng_8h.html
new file mode 100644
index 0000000..2fa28c8
--- /dev/null
+++ b/docs/html/gsl__microrng_8h.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Random123/gsl_microrng.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="summary">
+<a href="#define-members">Defines</a>  </div>
+  <div class="headertitle">
+<h1>Random123/gsl_microrng.h File Reference</h1>  </div>
+</div>
+<div class="contents">
+<code>#include <gsl/gsl_rng.h></code><br/>
+<code>#include <string.h></code><br/>
+
+<p><a href="gsl__microrng_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="define-members"></a>
+Defines</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="gsl__microrng_8h.html#a21c7bb64a536a1704c6dc96856b78297">GSL_MICRORNG</a>(NAME, CBRNGNAME)</td></tr>
+</table>
+<hr/><h2>Define Documentation</h2>
+<a class="anchor" id="a21c7bb64a536a1704c6dc96856b78297"></a><!-- doxytag: member="gsl_microrng.h::GSL_MICRORNG" ref="a21c7bb64a536a1704c6dc96856b78297" args="(NAME, CBRNGNAME)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define GSL_MICRORNG</td>
+          <td>(</td>
+          <td class="paramtype"> </td>
+          <td class="paramname">NAME, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"> </td>
+          <td class="paramname">CBRNGNAME</td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>The macro: <a class="el" href="gsl__microrng_8h.html#a21c7bb64a536a1704c6dc96856b78297">GSL_MICRORNG(NAME, CBRNGNAME)</a> is the GSL analog analog of the C++ <a class="el" href="classr123_1_1MicroURNG.html">r123::MicroURNG</a> template. It declares a gsl_rng type named gsl_rng_NAME which uses the underlying CBRNGNAME and can be invoked a limited number of times between calls to NAME_reset.</p>
+<p>When the underlying CBRNG's <code>ctr_t</code> is an <a class="el" href="group__arrayNxW.html">r123arrayNxW</a>, and the gsl_rng_NAME may called up to <code>N*2^32</code> times between calls to <code>NAME_reset</code>.</p>
+<p><code>NAME_reset</code> takes a gsl_rng_NAME type, a counter and a key as arguments. It restarts the micro-rng with a new base counter and key.</p>
+<p>Note that you must call NAME_reset before the first use of a gsl_rng. NAME_reset is not called automatically by gsl_rng_alloc().</p>
+<div class="fragment"><pre class="fragment"><span class="preprocessor">   #include <<a class="code" href="threefry_8h.html">Random123/threefry.h</a>></span>
+<span class="preprocessor">   #include <<a class="code" href="gsl__microrng_8h.html">Random123/gsl_microrng.h</a>></span> <span class="comment">// this file</span>
+   <a class="code" href="gsl__microrng_8h.html#a21c7bb64a536a1704c6dc96856b78297">GSL_MICRORNG</a>(microcbrng, <a class="code" href="threefry_8h.html#a992029974a22f14e0ef29a862ede2b8d">threefry4x64</a>, 20)   <span class="comment">// creates gsl_rng_microcbrng</span>
+
+   int main(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv) {
+        gsl_rng *r = gsl_rng_alloc(gsl_rng_microcbrng);
+        <a class="code" href="structr123array4x64.html">threefry4x64_ctr_t</a> c = {{}};
+        <a class="code" href="structr123array4x64.html">threefry4x64_key_t</a> k = {{}};
+
+        <span class="keywordflow">for</span> (...) {
+            c.<a class="code" href="structr123array4x64.html#aae3a18410877c49f1058bc4d78a62f48">v</a>[0] = ??; <span class="comment">//  some application variable</span>
+            microcbrng_reset(r, c, k);
+            <span class="keywordflow">for</span> (...) {
+                <span class="comment">// gaussian calls r several times.  It is safe for</span>
+                <span class="comment">// r to be used upto 2^20 times in this loop</span>
+                something[i] = gsl_ran_gaussian(r, 1.5);
+            }
+        }
+   }
+</pre></div> 
+</div>
+</div>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/gsl__microrng_8h_source.html b/docs/html/gsl__microrng_8h_source.html
new file mode 100644
index 0000000..5ab44fc
--- /dev/null
+++ b/docs/html/gsl__microrng_8h_source.html
@@ -0,0 +1,171 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Random123/gsl_microrng.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+<div class="header">
+  <div class="headertitle">
+<h1>Random123/gsl_microrng.h</h1>  </div>
+</div>
+<div class="contents">
+<a href="gsl__microrng_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
+<a name="l00002"></a>00002 <span class="comment">Copyright 2010-2011, D. E. Shaw Research.</span>
+<a name="l00003"></a>00003 <span class="comment">All rights reserved.</span>
+<a name="l00004"></a>00004 <span class="comment"></span>
+<a name="l00005"></a>00005 <span class="comment">Redistribution and use in source and binary forms, with or without</span>
+<a name="l00006"></a>00006 <span class="comment">modification, are permitted provided that the following conditions are</span>
+<a name="l00007"></a>00007 <span class="comment">met:</span>
+<a name="l00008"></a>00008 <span class="comment"></span>
+<a name="l00009"></a>00009 <span class="comment">* Redistributions of source code must retain the above copyright</span>
+<a name="l00010"></a>00010 <span class="comment">  notice, this list of conditions, and the following disclaimer.</span>
+<a name="l00011"></a>00011 <span class="comment"></span>
+<a name="l00012"></a>00012 <span class="comment">* Redistributions in binary form must reproduce the above copyright</span>
+<a name="l00013"></a>00013 <span class="comment">  notice, this list of conditions, and the following disclaimer in the</span>
+<a name="l00014"></a>00014 <span class="comment">  documentation and/or other materials provided with the distribution.</span>
+<a name="l00015"></a>00015 <span class="comment"></span>
+<a name="l00016"></a>00016 <span class="comment">* Neither the name of D. E. Shaw Research nor the names of its</span>
+<a name="l00017"></a>00017 <span class="comment">  contributors may be used to endorse or promote products derived from</span>
+<a name="l00018"></a>00018 <span class="comment">  this software without specific prior written permission.</span>
+<a name="l00019"></a>00019 <span class="comment"></span>
+<a name="l00020"></a>00020 <span class="comment">THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS</span>
+<a name="l00021"></a>00021 <span class="comment">"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT</span>
+<a name="l00022"></a>00022 <span class="comment">LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR</span>
+<a name="l00023"></a>00023 <span class="comment">A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT</span>
+<a name="l00024"></a>00024 <span class="comment">OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,</span>
+<a name="l00025"></a>00025 <span class="comment">SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT</span>
+<a name="l00026"></a>00026 <span class="comment">LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,</span>
+<a name="l00027"></a>00027 <span class="comment">DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY</span>
+<a name="l00028"></a>00028 <span class="comment">THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT</span>
+<a name="l00029"></a>00029 <span class="comment">(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE</span>
+<a name="l00030"></a>00030 <span class="comment">OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span>
+<a name="l00031"></a>00031 <span class="comment">*/</span>
+<a name="l00032"></a>00032 <span class="preprocessor">#ifndef __r123_gslmicrorng_dot_h__</span>
+<a name="l00033"></a>00033 <span class="preprocessor"></span><span class="preprocessor">#define __r123_gslmicrorng_dot_h__</span>
+<a name="l00034"></a>00034 <span class="preprocessor"></span>
+<a name="l00035"></a>00035 
+<a name="l00036"></a>00036 <span class="preprocessor">#include <gsl/gsl_rng.h></span>
+<a name="l00037"></a>00037 <span class="preprocessor">#include <string.h></span>
+<a name="l00038"></a>00038 
+<a name="l00079"></a><a class="code" href="gsl__microrng_8h.html#a21c7bb64a536a1704c6dc96856b78297">00079</a> <span class="preprocessor">#define GSL_MICRORNG(NAME, CBRNGNAME)                                   \</span>
+<a name="l00080"></a>00080 <span class="preprocessor">const gsl_rng_type *gsl_rng_##NAME;                                     \</span>
+<a name="l00081"></a>00081 <span class="preprocessor">                                                                        \</span>
+<a name="l00082"></a>00082 <span class="preprocessor">typedef struct{                                                         \</span>
+<a name="l00083"></a>00083 <span class="preprocessor">    CBRNGNAME##_ctr_t ctr;                                              \</span>
+<a name="l00084"></a>00084 <span class="preprocessor">    CBRNGNAME##_ctr_t r;                                                \</span>
+<a name="l00085"></a>00085 <span class="preprocessor">    CBRNGNAME##_key_t key;                                              \</span>
+<a name="l00086"></a>00086 <span class="preprocessor">    R123_ULONG_LONG n;                                                  \</span>
+<a name="l00087"></a>00087 <span class="preprocessor">    int elem;                                                           \</span>
+<a name="l00088"></a>00088 <span class="preprocessor">} NAME##_state;                                                         \</span>
+<a name="l00089"></a>00089 <span class="preprocessor">                                                                        \</span>
+<a name="l00090"></a>00090 <span class="preprocessor">static unsigned long int NAME##_get(void *vstate){                      \</span>
+<a name="l00091"></a>00091 <span class="preprocessor">    NAME##_state *st = (NAME##_state *)vstate;                          \</span>
+<a name="l00092"></a>00092 <span class="preprocessor">    const int N=sizeof(st->ctr.v)/sizeof(st->ctr.v[0]);                 \</span>
+<a name="l00093"></a>00093 <span class="preprocessor">    if( st->elem == 0 ){                                                \</span>
+<a name="l00094"></a>00094 <span class="preprocessor">        CBRNGNAME##_ctr_t c = st->ctr;                                  \</span>
+<a name="l00095"></a>00095 <span class="preprocessor">        c.v[N-1] |= st->n<<(R123_W(CBRNGNAME##_ctr_t)-32);              \</span>
+<a name="l00096"></a>00096 <span class="preprocessor">        st->n++;                                                        \</span>
+<a name="l00097"></a>00097 <span class="preprocessor">        st->r = CBRNGNAME(c, st->key);                                  \</span>
+<a name="l00098"></a>00098 <span class="preprocessor">        st->elem = N;                                                   \</span>
+<a name="l00099"></a>00099 <span class="preprocessor">    }                                                                   \</span>
+<a name="l00100"></a>00100 <span class="preprocessor">    return 0xffffffff & st->r.v[--st->elem];                            \</span>
+<a name="l00101"></a>00101 <span class="preprocessor">}                                                                       \</span>
+<a name="l00102"></a>00102 <span class="preprocessor">                                                                        \</span>
+<a name="l00103"></a>00103 <span class="preprocessor">static double                                                           \</span>
+<a name="l00104"></a>00104 <span class="preprocessor">NAME##_get_double (void * vstate)                                       \</span>
+<a name="l00105"></a>00105 <span class="preprocessor">{                                                                       \</span>
+<a name="l00106"></a>00106 <span class="preprocessor">    return NAME##_get (vstate)/4294967296.;                             \</span>
+<a name="l00107"></a>00107 <span class="preprocessor">}                                                                       \</span>
+<a name="l00108"></a>00108 <span class="preprocessor">                                                                        \</span>
+<a name="l00109"></a>00109 <span class="preprocessor">static void NAME##_set(void *vstate, unsigned long int s){              \</span>
+<a name="l00110"></a>00110 <span class="preprocessor">    NAME##_state *st = (NAME##_state *)vstate;                          \</span>
+<a name="l00111"></a>00111 <span class="preprocessor">    (void)s; </span><span class="comment">/* ignored */</span>                                              \
+<a name="l00112"></a>00112     st->elem = 0;                                                       \
+<a name="l00113"></a>00113     st->n = ~0; <span class="comment">/* will abort if _reset is not called */</span>                \
+<a name="l00114"></a>00114 }                                                                       \
+<a name="l00115"></a>00115                                                                         \
+<a name="l00116"></a>00116 static const gsl_rng_type NAME##_type = {                               \
+<a name="l00117"></a>00117     #NAME,                                                              \
+<a name="l00118"></a>00118     0xffffffffUL,                                                       \
+<a name="l00119"></a>00119     0,                                                                  \
+<a name="l00120"></a>00120     sizeof(NAME##_state),                                               \
+<a name="l00121"></a>00121     &NAME##_set,                                                        \
+<a name="l00122"></a>00122     &NAME##_get,                                                        \
+<a name="l00123"></a>00123     &NAME##_get_double                                                  \
+<a name="l00124"></a>00124 };                                                                      \
+<a name="l00125"></a>00125                                                                         \
+<a name="l00126"></a>00126 R123_STATIC_INLINE void NAME##_reset(const gsl_rng* gr, CBRNGNAME##_ctr_t c, CBRNGNAME##_key_t k) { \
+<a name="l00127"></a>00127     NAME##_state* state = (NAME##_state *)gr->state;                    \
+<a name="l00128"></a>00128     state->ctr = c;                                                     \
+<a name="l00129"></a>00129     state->key = k;                                                     \
+<a name="l00130"></a>00130     state->n = 0;                                                       \
+<a name="l00131"></a>00131     state->elem = 0;                                                    \
+<a name="l00132"></a>00132 }                                                                       \
+<a name="l00133"></a>00133                                                                         \
+<a name="l00134"></a>00134 const gsl_rng_type *gsl_rng_##NAME = &NAME##_type
+<a name="l00135"></a>00135 
+<a name="l00136"></a>00136 <span class="preprocessor">#endif</span>
+</pre></div></div>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/hierarchy.html b/docs/html/hierarchy.html
new file mode 100644
index 0000000..d1c7c60
--- /dev/null
+++ b/docs/html/hierarchy.html
@@ -0,0 +1,111 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Hierarchical Index</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li class="current"><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<h1>Class Hierarchy</h1>  </div>
+</div>
+<div class="contents">
+This inheritance list is sorted roughly, but not completely, alphabetically:<ul>
+<li><a class="el" href="structr123_1_1AESNI1xm128i.html">r123::AESNI1xm128i</a><ul>
+<li><a class="el" href="structr123_1_1AESNI1xm128i__R.html">r123::AESNI1xm128i_R< ROUNDS ></a></li>
+</ul>
+</li>
+<li><a class="el" href="structaesni1xm128i__key__t.html">aesni1xm128i_key_t</a></li>
+<li><a class="el" href="structr123_1_1AESNI4x32.html">r123::AESNI4x32</a><ul>
+<li><a class="el" href="structr123_1_1AESNI4x32__R.html">r123::AESNI4x32_R< ROUNDS ></a></li>
+</ul>
+</li>
+<li><a class="el" href="structr123_1_1ARS1xm128i__R.html">r123::ARS1xm128i_R< ROUNDS ></a></li>
+<li><a class="el" href="structr123_1_1ARS4x32__R.html">r123::ARS4x32_R< ROUNDS ></a></li>
+<li><a class="el" href="structr123_1_1Engine.html">r123::Engine< CBRNG ></a></li>
+<li><a class="el" href="classr123_1_1MicroURNG.html">r123::MicroURNG< CBRNG ></a></li>
+<li><a class="el" href="structr123_1_1Philox2x32__R.html">r123::Philox2x32_R< ROUNDS ></a></li>
+<li><a class="el" href="structr123_1_1Philox2x64__R.html">r123::Philox2x64_R< ROUNDS ></a></li>
+<li><a class="el" href="structr123_1_1Philox4x32__R.html">r123::Philox4x32_R< ROUNDS ></a></li>
+<li><a class="el" href="structr123_1_1Philox4x64__R.html">r123::Philox4x64_R< ROUNDS ></a></li>
+<li><a class="el" href="structr123array16x8.html">r123array16x8</a></li>
+<li><a class="el" href="structr123array1x32.html">r123array1x32</a></li>
+<li><a class="el" href="structr123array1x64.html">r123array1x64</a></li>
+<li><a class="el" href="structr123array1xm128i.html">r123array1xm128i</a></li>
+<li><a class="el" href="structr123array2x32.html">r123array2x32</a></li>
+<li><a class="el" href="structr123array2x64.html">r123array2x64</a></li>
+<li><a class="el" href="structr123array4x32.html">r123array4x32</a></li>
+<li><a class="el" href="structr123array4x64.html">r123array4x64</a></li>
+<li><a class="el" href="structr123array8x32.html">r123array8x32</a></li>
+<li><a class="el" href="structr123m128i.html">r123m128i</a></li>
+<li><a class="el" href="structr123_1_1ReinterpretCtr.html">r123::ReinterpretCtr< ToType, CBRNG ></a></li>
+<li><a class="el" href="structr123_1_1Threefry2x32__R.html">r123::Threefry2x32_R< R ></a></li>
+<li><a class="el" href="structr123_1_1Threefry2x64__R.html">r123::Threefry2x64_R< R ></a></li>
+<li><a class="el" href="structr123_1_1Threefry4x32__R.html">r123::Threefry4x32_R< R ></a></li>
+<li><a class="el" href="structr123_1_1Threefry4x64__R.html">r123::Threefry4x64_R< R ></a></li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/index.html b/docs/html/index.html
new file mode 100644
index 0000000..d82d848
--- /dev/null
+++ b/docs/html/index.html
@@ -0,0 +1,253 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Random123: a Library of Counter-Based Random Number Generators</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li class="current"><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<h1>Random123: a Library of Counter-Based Random Number Generators </h1>  </div>
+</div>
+<div class="contents">
+<p>The Random123 library is a collection of counter-based random number generators (<a class="el" href="CBRNG.html">CBRNGs</a>) for CPUs (C and C++) and GPUs (CUDA and OpenCL), as described in <a href="http://dl.acm.org/citation.cfm?doid=2063405"><em>Parallel Random Numbers: As Easy as 1, 2, 3</em>, Salmon, Moraes, Dror & Shaw, SC11, Seattle, Washington, USA, 2011, ACM </a>. They are intended for use in statistical applications and Monte Carlo simulation and have passed all of the ri [...]
+<p>CBRNGs are as fast as, or faster than conventional RNGs, much easier to parallelize, use minimal memory/cache resources, and require very little code. On modern architectures, the Random123 CBRNGs require a few cycles per byte of random data returned and return random data in convenient sizes (arrays of two or four elements, each element is an unsigned integer of 32 or 64 bits. The range of random numbers is the full representable range of the 32 or 64 bit unsigned integer) The <code> [...]
+<p>The Random123 library was written by John Salmon and Mark Moraes. It is available from <a href="http://deshawresearch.com/resources_random123.html">http://deshawresearch.com/resources_random123.html.</a> Please see the <a class="el" href="LICENSE.html">license</a> for terms and conditions. Please send feedback, including bug reports, suggestions, patches, etc. to <a href="mailto:random123 at deshawresearch.com">random123 at deshawresearch.com</a>.</p>
+<h2><a class="anchor" id="overview"></a>
+Overview</h2>
+<p>Unlike conventional RNGs, counter-based RNGs are <b>stateless</b> functions (or function classes i.e. functors) whose arguments are a <em>counter</em>, and a <em>key</em> and returns a result of the same type as the counter.</p>
+<p>result = CBRNGname(counter, key)</p>
+<p>The returned result is a deterministic function of the key and counter, i.e. a unique (counter, key) tuple will always produce the same result. The result is highly sensitive to small changes in the inputs, so that the sequence of values produced by simply incrementing the counter (or key) is effectively indistinguishable from a sequence of samples of a uniformly distributed random variable.</p>
+<p>For all the CBRNGs in the Random123 library, the result and counter are the same type, specifically an array of <em>N</em> words, where words have a width of <em>W</em> bits, encapsulated in <a class="el" href="group__arrayNxW.html">r123arrayNxW</a> structs, or equivalently, for C++, in the <a class="el" href="namespacer123.html#acc1b0ed919ef806de26f5ff5b934b313">ArrayNxW</a> typedefs in the <a class="el" href="namespacer123.html">r123</a> namespace. Keys are usually also arrayMxW typ [...]
+<p>In C++, all public names (classes, structs, typedefs, etc) are in the <code><a class="el" href="namespacer123.html">r123</a></code> namespace. In C, the public names (functions, enums, structs, typedefs) begin either with <code>r123</code> or with one of the RNG family names, e.g., <code>threefry</code>, <code>philox</code>, <code>ars</code>, <code>aesni</code>. The RNG functions themselves have names like <code>philox4x32</code>. C++ class names are capitalized, e.g., <code>Threefry4 [...]
+<h2><a class="anchor" id="families"></a>
+The different families of Random123 generators</h2>
+<p>Several families of CBRNGs are available in this version of the library: </p>
+<ul>
+<li>
+<a class="el" href="group__ThreefryNxW.html">Threefry</a> is a <b>non-cryptographic</b> adaptation of the Threefish block cipher from the <a href="http://www.skein-hash.info/">Skein Hash Function</a>. See <a class="el" href="group__ThreefryNxW.html#ga1c32939b65f84966c93677f4382ea36d">r123::Threefry2x32</a>, <a class="el" href="group__ThreefryNxW.html#gacb09a2dcfb7389769f0c58f45f132aaa">r123::Threefry4x32</a>, <a class="el" href="group__ThreefryNxW.html#ga2b54dd1b0d20f09239be5f8757f1f3db" [...]
+<li>
+<a class="el" href="group__PhiloxNxW.html">Philox</a> uses a Feistel network and integer multiplication. See <a class="el" href="group__PhiloxNxW.html#ga81659a3ee5a1ca9e2e85c5d725a1ea4f">r123::Philox2x32</a>, <a class="el" href="group__PhiloxNxW.html#gaafd54060af05012db410034e3c0ecdc4">r123::Philox4x32</a>, <a class="el" href="group__PhiloxNxW.html#ga616a669079ac25119353416c14d46426">r123::Philox2x64</a>, <a class="el" href="group__PhiloxNxW.html#ga7776f4d481b7c0ac00db70272a1c77f0">r123: [...]
+<li>
+<a class="el" href="group__AESNI.html">AESNI</a> uses the Advanced Encryption Standard (AES) New Instruction, available on certain modern x86 processors (some models of Intel Westmere and Sandy Bridge, and AMD Interlagos, as of 2011). AESNI CBRNGs can operate on four 32bit words (internally converting them to the 128bit SSE type needed by the AES-NI instructions, or on a single m128i "word", which holds the SSE type. See <a class="el" href="structr123_1_1AESNI4x32.html">r123::AESNI4x32</ [...]
+<li>
+<a class="el" href="group__AESNI.html">ARS</a> (Advanced Randomization System) is a <b>non-cryptographic</b> simplification of <a class="el" href="group__AESNI.html">AESNI</a>. See <a class="el" href="structr123_1_1ARS4x32__R.html">r123::ARS4x32_R</a>, <a class="el" href="structr123_1_1ARS1xm128i__R.html">r123::ARS1xm128i_R</a>. </li>
+</ul>
+<h2><a class="anchor" id="install"></a>
+Installation and Testing</h2>
+<p>The Random123 library is implemented entirely in header files. Thus, there is nothing to compile before using it and nothing to link after you have <code>#include</code>d it in your source files. Simply direct your C or C++ compiler to find the header files in the <code>include/</code> directory that was unpacked from the distribution tar file and use the Random123 header files, types and functions in your application.</p>
+<p>In addition to the <code>include/</code> files which implement the library the distribution also contains an <code>examples/</code> directory. Users are <b> STRONGLY ADVISED </b> to compile and run the tests in examples/ before using Random123 in an application (see <code> <a class="el" href="ExamplesREADME.html">examples/README</a></code>). Do not use the library if any tests fail. (It is not a failure for a test to report that it cannot run because of missing hardware capabilities l [...]
+<h2><a class="anchor" id="usage"></a>
+Usage</h2>
+<h3><a class="anchor" id="CxxAPI"></a>
+C++ API</h3>
+<p>A typical C++ use case might look like:</p>
+<div class="fragment"><pre class="fragment"><span class="preprocessor">#include <<a class="code" href="philox_8h.html">Random123/philox.h</a>></span>
+
+<span class="keyword">typedef</span> <a class="code" href="structr123_1_1Philox4x32__R.html">r123::Philox4x32</a> RNG;
+RNG rng;
+RNG::ctr_type c={{}};
+RNG::ukey_type uk={{}};
+uk[0] = ???; <span class="comment">// some user_supplied_seed</span>
+RNG::key_type k=uk;
+
+<span class="keywordflow">for</span>(...){
+   c[0] = ???; <span class="comment">// some loop-dependent application variable </span>
+   c[1] = ???; <span class="comment">// another loop-dependent application variable </span>
+   RNG::ctr_type r = rng(c, k);
+   <span class="comment">// use the random values in r for some operation related to</span>
+   <span class="comment">// this iteration on objectid</span>
+}
+</pre></div><p>On each iteration,<code>r</code> contains an array of 4 32-bit random values that will not be repeated by any other call to <code>rng</code> as long as <code>c</code> and <code>k</code> are not reused.</p>
+<p>In the example above, we use the <a class="el" href="group__PhiloxNxW.html#gaafd54060af05012db410034e3c0ecdc4">r123::Philox4x32</a>, but any of the other <a class="el" href="CBRNG.html">CBRNGs</a> would serve equally well. Also note that for most CBRNGs, the ukey_type and the key_type are identical; the code could just as well ignore the ukey_type and directly construct the key_type. However, for the <a class="el" href="group__AESNI.html">AESNI</a> CBRNGs, the key_type is opaque, and  [...]
+<h3><a class="anchor" id="Capi"></a>
+The C API</h3>
+<p>In C, the example above could be written as: </p>
+<div class="fragment"><pre class="fragment"><span class="preprocessor">#include <<a class="code" href="philox_8h.html">Random123/philox.h</a>></span>
+
+<a class="code" href="structr123array4x32.html">philox4x32_ctr_t</a> c={{}};
+<a class="code" href="structr123array2x32.html">philox4x32_ukey_t</a> uk={{}};
+
+uk.<a class="code" href="structr123array2x32.html#a65524bf06568073021117ef196d6b45f">v</a>[0] = user_supplied_seed;
+<a class="code" href="structr123array2x32.html">philox4x32_key_t</a> k = <a class="code" href="philox_8h.html#a5a012bb440c039eda46802b447c31851">philox4x32keyinit</a>(uk);
+
+<span class="keywordflow">for</span>(...){
+    c.<a class="code" href="structr123array4x32.html#ac8e6785120a3031b211fc8aa7d03d83f">v</a>[0] = ???; <span class="comment">/* some loop-dependent application variable */</span>
+    c.<a class="code" href="structr123array4x32.html#ac8e6785120a3031b211fc8aa7d03d83f">v</a>[1] = ???; <span class="comment">/* another loop-dependent application variable */</span>
+    <a class="code" href="structr123array4x32.html">philox4x32_ctr_t</a> r = <a class="code" href="philox_8h.html#a432a3df828dd51acd0b7ec2fee1d4d7e">philox4x32</a>(c, k);
+}
+</pre></div><p>In C, access to the contents of the counter and key is through the fixed-size array member <code>v</code>.</p>
+<h2><a class="anchor" id="cuda"></a>
+The CUDA platform</h2>
+<p>All relevant functions in the C and C++ APIs for Random123 are declared as CUDA device functions if they are included in a CUDA kernel source file and compiled with a CUDA compiler (nvcc). They can be used exactly as described/documented for regular C or C++ programs. Note that CUDA device functions and host functions share the same namespace, so it is not currently possible to use Random123 functions in both the host portion and the device portion of the same .cu source file. To work [...]
+<p>It has been reported that Random123 uses 16 bytes of static memory per thread. This is undesirable and not intentional, but we do not have a workaround other than to suggest adjusting memory allocation accordingly.</p>
+<p>The pi_cuda.cu and pi_cudapp.cu examples illustrate the use of CUDA.</p>
+<h2><a class="anchor" id="opencl"></a>
+The OpenCL platform</h2>
+<p>The functions in the Random123 C API can all be used in OpenCL kernels, just as in regular C functions. As with CUDA, the Nx32 forms are faster than the Nx64 variants on current (2011) 32-bit GPU architectures.</p>
+<p>The pi_opencl.c and pi_opencl_kernel.ocl examples illustrate the use of OpenCL.</p>
+<h2><a class="anchor" id="cplusplus0x"></a>
+C++0X <random> interface</h2>
+<p>In addition to the stateless ("pure/functional") C++ API above, the Random123 package includes two C++ classes that leverage the C++0X <random> API.</p>
+<ul>
+<li>
+<a class="el" href="classr123_1_1MicroURNG.html">r123::MicroURNG</a> provides an adapter class that provides a more conventional interface compatible with the C++0X URNG (uniform random number generator) API; the MicroURNG adapter can be used with C++0x random number distributions and is fast/lightweight enough that a new MicroURNG can be instantiated with a unique key,counter tuple and used for each call to a distribution, there is little or no overhead to creating billions of unique Mi [...]
+<li>
+<a class="el" href="structr123_1_1Engine.html">r123::Engine</a> provides the C++0x Random Engine API. This can also be used with any of the C++0X random distributions, but sacrifices the application control over RNG state that is a defining characteristic of CBRNGs. </li>
+</ul>
+<h2><a class="anchor" id="gsl"></a>
+The GNU Scientific Library (GSL) interface</h2>
+<p>In addition to the stateless ("pure/functional") C API above, the Random123 package includes two C adapter interfaces to the <a href="http://www.gnu.org/s/gsl/">GNU Scientific Library (GSL).</a></p>
+<ul>
+<li>
+The <a class="el" href="gsl__microrng_8h.html#a21c7bb64a536a1704c6dc96856b78297">GSL_MICRORNG</a> macro allows the application to define a GSL random number generator. It can be used with GSL random distributions but still provides the application with complete control over the RNG state (it is analogous to the MicroURNG class, in that it uses shorter periods, and is intended to be instantiated in large numbers for a few calls to the random distribution). </li>
+<li>
+The <a class="el" href="gsl__cbrng_8h.html#af561a004eef8e93cdfd6b255a8a1eb75">GSL_CBRNG</a> macro allows the application to create a GSL RNG with a completely conventional interface, sacrificing application control over the internal RNG state. </li>
+</ul>
+<h2><a class="anchor" id="u01"></a>
+Generating uniformly distributed and Gaussian distributed floats and doubles</h2>
+<p>The Random123 library provides generators for uniformly distributed random <b>integers</b>. Often, applications want random <b>real</b> values or samples from other distributions. The general problem of generating samples from arbitrary distributions is beyond the scope of the Random123 library. One can, of course, use GSL or MicroURNG and the distributions in the C++11 <random> library, but a few simple cases are common enough that all that extra machinery seems like overkill.  [...]
+<ul>
+<li>
+examples/uniform.hpp - C++ functions that convert random integers to random, uniformly distributed floating point values. </li>
+<li>
+examples/u01fixedpt.h - C functions that convert random integers to random, uniformly distributed, equi-spaced, i.e., fixed point, values. </li>
+<li>
+examples/ua.hpp - C++11 functions that convert r123arrays of uniformly distributed integers into std::arrays of uniformly distributed floating point types. The return type is std::array because it is far easier, with template logic, to return a std::array of the correct size than an r123array of the correct size. </li>
+<li>
+examples/boxmuller.hpp - C++ functions that take two uniformly distributed integers (32 or 64 bit) and return a pair of Gaussian distributed floats or doubles. </li>
+</ul>
+<p>The Box-Muller method of generating Gaussian random variables is particularly well suited to Random123 because it deterministically consumes exactly two uniform randoms to generate exactly two gaussian randoms. It uses math library functions: sincos, log and sqrt which may be slow on some platforms, but which are surprisingly fast on others. Notably, on GPUs, the lack of branching in the Box-Muller method and hardware support for math functions overcomes the transcendental function ov [...]
+<h3><a class="anchor" id="Examples"></a>
+Tests and Benchmarks</h3>
+<p>The <a class="el" href="ExamplesREADME.html">examples/</a> directory, contains tests, examples and benchmarks.</p>
+<ul>
+<li>
+Unit tests for individual components and "known-answer-tests", which should be run to ensure that these RNGs build correctly on desired platforms. These help to provide assurance that the code is being compiled correctly. </li>
+<li>
+Complete, short programs estimate pi by counting the number of random points that fall inside a circle inscribed in a square, demonstrating the C, C++, AES, GSL, OpenCL, CUDA and C++0x APIs. </li>
+<li>
+Header files, including uniform.hpp, ufixed01.h, ua.hpp, and boxmuller.hpp containing code that users may find useful but that are outside the scope of the Random123 library itself. </li>
+<li>
+Some highly abstracted timing harnesses are provided which measure performance of a variety of generators in different programming environments. </li>
+</ul>
+<h2><a class="anchor" id="portability"></a>
+Portability</h2>
+<p>Although we have done our best to make Random123 portable and standards conforming, it is an unfortunate fact that there is no portable code. There is only code that has been ported. We have tested the Random123 library with the following infrastructure</p>
+<ul>
+<li>
+Linux, gcc (multiple versions from 3.4.3 through 5.2), on x86_64. </li>
+<li>
+Linux, clang-2.9, 3.0, 3.1, 3.3 and 3.6 on x86_64. </li>
+<li>
+Linux, clang-3.0 and 3.1 with lib++ (2012-04-19 svn checkout) on x86_64. </li>
+<li>
+Linux, open64-4.2.4 on x86_64. </li>
+<li>
+Linux, Intel icc and icpc 12.0.2 on x86_64. </li>
+<li>
+Linux, OpenCL (NVIDIA SDK 4.0.17) on GTX480, M2090, GTX580 and GTX680 GPUs. </li>
+<li>
+Linux, OpenCL (AMD APP SDK 2.4 or 2.5), on x86_64 CPUs and Radeon HD6970 GPUs. </li>
+<li>
+Linux, OpenCL (Intel OpenCL 1.5), on x86_64 CPUs. </li>
+<li>
+Linux, NVIDIA CUDA 4.1.15, 4.2.6, 5.5.22 and 7.5.1. (NOTE: We recommend against the use of CUDA before 4.1) </li>
+<li>
+Linux, gcc-4.1.2 and 4.4.1 on x86. </li>
+<li>
+Solaris, both gcc-3.4.3 and Sun C/C++ 5.8, on x86_64. </li>
+<li>
+FreeBSD 8.2, gcc-4.2.1, on x86_64. </li>
+<li>
+MacOS X 5.8, gcc-4.0.1, on x86. </li>
+<li>
+MacOS X 5.8, llvm-2.9.1 on x86 (problems with catching C++ exceptions). </li>
+<li>
+Windows 7, Microsoft Visual Studio, version 10.0, Microsoft C/C++ compiler 16.00. </li>
+</ul>
+<p>Others have reported success on </p>
+<ul>
+<li>
+MacOS, OpenCL on x86_64 CPUs </li>
+<li>
+Linux, gcc-4.7.2 on Powerpc64 (BlueGene/Q) </li>
+<li>
+Linux, Portland Group Compiler on Powerpc64 (BlueGene/Q) </li>
+<li>
+Linux, IBM xlc on Powerpc64 (BlueGene/Q) </li>
+</ul>
+<h2><a class="anchor" id="warnings"></a>
+Warnings</h2>
+<p>With some compilation options, the CUDA nvcc compiler warns about unreachable code in <a class="el" href="array_8h.html">array.h</a>. The compiler doesn't recognize that the code that is unreachable for some values of some macro parameters, is actually reachable for other values of the parameters. It is possible to disable that particular warning for a specific compilation unit by adding -Wcudafe --diag_suppress=111 to the compilation command line.</p>
+<h2><a class="anchor" id="contributors"></a>
+Contributors</h2>
+<p>We welcome feedback to <a href="mailto:random123 at deshawresearch.com">random123 at deshawresearch.com</a> about ports to other environments.</p>
+<p>We are grateful for contributions from the following users: </p>
+<ul>
+<li>
+Geoffrey Irving and Gabriel Rockefeller - BlueGene/Q and powerpc ports </li>
+<li>
+Yan Zhou - MacOS and clang ports </li>
+<li>
+David Lawrie - allowing 64-bit philox to compile for both host and device with CUDA </li>
+<li>
+Bogdan Opanchuk - pointing out the inconsistent rotation constants in the implementation of threefry2xW in version 1.07 and earlier. </li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/installdox b/docs/html/installdox
new file mode 100755
index 0000000..2697a81
--- /dev/null
+++ b/docs/html/installdox
@@ -0,0 +1,117 @@
+#!/usr/bin/perl
+
+%subst = ( );
+$quiet   = 0;
+
+if (open(F,"search.cfg"))
+{
+  $_=<F> ; s/[ \t\n]*$//g ; $subst{"_doc"} = $_;
+  $_=<F> ; s/[ \t\n]*$//g ; $subst{"_cgi"} = $_;
+}
+
+while ( @ARGV ) {
+  $_ = shift @ARGV;
+  if ( s/^-// ) {
+    if ( /^l(.*)/ ) {
+      $v = ($1 eq "") ? shift @ARGV : $1;
+      ($v =~ /\/$/) || ($v .= "/");
+      $_ = $v;
+      if ( /(.+)\@(.+)/ ) {
+        if ( exists $subst{$1} ) {
+          $subst{$1} = $2;
+        } else {
+          print STDERR "Unknown tag file $1 given with option -l\n";
+          &usage();
+        }
+      } else {
+        print STDERR "Argument $_ is invalid for option -l\n";
+        &usage();
+      }
+    }
+    elsif ( /^q/ ) {
+      $quiet = 1;
+    }
+    elsif ( /^\?|^h/ ) {
+      &usage();
+    }
+    else {
+      print STDERR "Illegal option -$_\n";
+      &usage();
+    }
+  }
+  else {
+    push (@files, $_ );
+  }
+}
+
+foreach $sub (keys %subst)
+{
+  if ( $subst{$sub} eq "" ) 
+  {
+    print STDERR "No substitute given for tag file `$sub'\n";
+    &usage();
+  }
+  elsif ( ! $quiet && $sub ne "_doc" && $sub ne "_cgi" )
+  {
+    print "Substituting $subst{$sub} for each occurrence of tag file $sub\n"; 
+  }
+}
+
+if ( ! @files ) {
+  if (opendir(D,".")) {
+    foreach $file ( readdir(D) ) {
+      $match = ".html";
+      next if ( $file =~ /^\.\.?$/ );
+      ($file =~ /$match/) && (push @files, $file);
+      ($file =~ "tree.js") && (push @files, $file);
+    }
+    closedir(D);
+  }
+}
+
+if ( ! @files ) {
+  print STDERR "Warning: No input files given and none found!\n";
+}
+
+foreach $f (@files)
+{
+  if ( ! $quiet ) {
+    print "Editing: $f...\n";
+  }
+  $oldf = $f;
+  $f   .= ".bak";
+  unless (rename $oldf,$f) {
+    print STDERR "Error: cannot rename file $oldf\n";
+    exit 1;
+  }
+  if (open(F,"<$f")) {
+    unless (open(G,">$oldf")) {
+      print STDERR "Error: opening file $oldf for writing\n";
+      exit 1;
+    }
+    if ($oldf ne "tree.js") {
+      while (<F>) {
+        s/doxygen\=\"([^ \"\:\t\>\<]*)\:([^ \"\t\>\<]*)\" (href|src)=\"\2/doxygen\=\"$1:$subst{$1}\" \3=\"$subst{$1}/g;
+        print G "$_";
+      }
+    }
+    else {
+      while (<F>) {
+        s/\"([^ \"\:\t\>\<]*)\:([^ \"\t\>\<]*)\", \"\2/\"$1:$subst{$1}\" ,\"$subst{$1}/g;
+        print G "$_";
+      }
+    }
+  } 
+  else {
+    print STDERR "Warning file $f does not exist\n";
+  }
+  unlink $f;
+}
+
+sub usage {
+  print STDERR "Usage: installdox [options] [html-file [html-file ...]]\n";
+  print STDERR "Options:\n";
+  print STDERR "     -l tagfile\@linkName   tag file + URL or directory \n";
+  print STDERR "     -q                    Quiet mode\n\n";
+  exit 1;
+}
diff --git a/docs/html/main_8dox.html b/docs/html/main_8dox.html
new file mode 100644
index 0000000..e35c5a3
--- /dev/null
+++ b/docs/html/main_8dox.html
@@ -0,0 +1,77 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: docs/main.dox File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<h1>docs/main.dox File Reference</h1>  </div>
+</div>
+<div class="contents">
+<table class="memberdecls">
+</table>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/modules.html b/docs/html/modules.html
new file mode 100644
index 0000000..bb36e07
--- /dev/null
+++ b/docs/html/modules.html
@@ -0,0 +1,75 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Module Index</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<h1>Modules</h1>  </div>
+</div>
+<div class="contents">
+Here is a list of all modules:<ul>
+<li><a class="el" href="group__AESNI.html">ARS and AESNI Classes and Typedefs</a></li>
+<li><a class="el" href="group__arrayNxW.html">The r123arrayNxW classes</a></li>
+<li><a class="el" href="group__PhiloxNxW.html">Philox Classes and Typedefs</a></li>
+<li><a class="el" href="group__ThreefryNxW.html">Threefry Classes and Typedefs</a></li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/namespacemembers.html b/docs/html/namespacemembers.html
new file mode 100644
index 0000000..b528e33
--- /dev/null
+++ b/docs/html/namespacemembers.html
@@ -0,0 +1,136 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="namespaces.html"><span>Namespace List</span></a></li>
+      <li class="current"><a href="namespacemembers.html"><span>Namespace Members</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li class="current"><a href="namespacemembers.html"><span>All</span></a></li>
+      <li><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+Here is a list of all namespace members with links to the namespace documentation for each member:<ul>
+<li>Array16x8
+: <a class="el" href="namespacer123.html#ac3148aed79e81051d40e9b29a8914cf4">r123</a>
+</li>
+<li>Array1x32
+: <a class="el" href="namespacer123.html#acc1b0ed919ef806de26f5ff5b934b313">r123</a>
+</li>
+<li>Array1x64
+: <a class="el" href="namespacer123.html#aeb81c4265759fad9993e09fda21ff4fa">r123</a>
+</li>
+<li>Array1xm128i
+: <a class="el" href="namespacer123.html#adbb729a97ee41e7cb075058b55a58c5d">r123</a>
+</li>
+<li>Array2x32
+: <a class="el" href="namespacer123.html#ab853ac55f8188e4a09d12ab23f2d8dea">r123</a>
+</li>
+<li>Array2x64
+: <a class="el" href="namespacer123.html#ad3b670563762f605a6fce61b5bab8412">r123</a>
+</li>
+<li>Array4x32
+: <a class="el" href="namespacer123.html#a0c352c3ea265e7fd182559e557113195">r123</a>
+</li>
+<li>Array4x64
+: <a class="el" href="namespacer123.html#a54c1a72670974c11acff37279eb23147">r123</a>
+</li>
+<li>Array8x32
+: <a class="el" href="namespacer123.html#aea31cf23efbfcc11808b7e394922f4d2">r123</a>
+</li>
+<li>ARS1xm128i
+: <a class="el" href="namespacer123.html#a964aa9123913d1f8cf535e0caaa4155f">r123</a>
+</li>
+<li>ARS4x32
+: <a class="el" href="namespacer123.html#afd2070dc979024a14317bd57c3a4c352">r123</a>
+</li>
+<li>Philox2x32
+: <a class="el" href="group__PhiloxNxW.html#ga81659a3ee5a1ca9e2e85c5d725a1ea4f">r123</a>
+</li>
+<li>Philox2x64
+: <a class="el" href="group__PhiloxNxW.html#ga616a669079ac25119353416c14d46426">r123</a>
+</li>
+<li>Philox4x32
+: <a class="el" href="group__PhiloxNxW.html#gaafd54060af05012db410034e3c0ecdc4">r123</a>
+</li>
+<li>Philox4x64
+: <a class="el" href="group__PhiloxNxW.html#ga7776f4d481b7c0ac00db70272a1c77f0">r123</a>
+</li>
+<li>Threefry2x32
+: <a class="el" href="group__ThreefryNxW.html#ga1c32939b65f84966c93677f4382ea36d">r123</a>
+</li>
+<li>Threefry2x64
+: <a class="el" href="group__ThreefryNxW.html#ga2b54dd1b0d20f09239be5f8757f1f3db">r123</a>
+</li>
+<li>Threefry4x32
+: <a class="el" href="group__ThreefryNxW.html#gacb09a2dcfb7389769f0c58f45f132aaa">r123</a>
+</li>
+<li>Threefry4x64
+: <a class="el" href="group__ThreefryNxW.html#gae17c98bddf067365508ed0717f865e8b">r123</a>
+</li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/namespacemembers_type.html b/docs/html/namespacemembers_type.html
new file mode 100644
index 0000000..8aae7e4
--- /dev/null
+++ b/docs/html/namespacemembers_type.html
@@ -0,0 +1,136 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="namespaces.html"><span>Namespace List</span></a></li>
+      <li class="current"><a href="namespacemembers.html"><span>Namespace Members</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="namespacemembers.html"><span>All</span></a></li>
+      <li class="current"><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+ <ul>
+<li>Array16x8
+: <a class="el" href="namespacer123.html#ac3148aed79e81051d40e9b29a8914cf4">r123</a>
+</li>
+<li>Array1x32
+: <a class="el" href="namespacer123.html#acc1b0ed919ef806de26f5ff5b934b313">r123</a>
+</li>
+<li>Array1x64
+: <a class="el" href="namespacer123.html#aeb81c4265759fad9993e09fda21ff4fa">r123</a>
+</li>
+<li>Array1xm128i
+: <a class="el" href="namespacer123.html#adbb729a97ee41e7cb075058b55a58c5d">r123</a>
+</li>
+<li>Array2x32
+: <a class="el" href="namespacer123.html#ab853ac55f8188e4a09d12ab23f2d8dea">r123</a>
+</li>
+<li>Array2x64
+: <a class="el" href="namespacer123.html#ad3b670563762f605a6fce61b5bab8412">r123</a>
+</li>
+<li>Array4x32
+: <a class="el" href="namespacer123.html#a0c352c3ea265e7fd182559e557113195">r123</a>
+</li>
+<li>Array4x64
+: <a class="el" href="namespacer123.html#a54c1a72670974c11acff37279eb23147">r123</a>
+</li>
+<li>Array8x32
+: <a class="el" href="namespacer123.html#aea31cf23efbfcc11808b7e394922f4d2">r123</a>
+</li>
+<li>ARS1xm128i
+: <a class="el" href="namespacer123.html#a964aa9123913d1f8cf535e0caaa4155f">r123</a>
+</li>
+<li>ARS4x32
+: <a class="el" href="namespacer123.html#afd2070dc979024a14317bd57c3a4c352">r123</a>
+</li>
+<li>Philox2x32
+: <a class="el" href="group__PhiloxNxW.html#ga81659a3ee5a1ca9e2e85c5d725a1ea4f">r123</a>
+</li>
+<li>Philox2x64
+: <a class="el" href="group__PhiloxNxW.html#ga616a669079ac25119353416c14d46426">r123</a>
+</li>
+<li>Philox4x32
+: <a class="el" href="group__PhiloxNxW.html#gaafd54060af05012db410034e3c0ecdc4">r123</a>
+</li>
+<li>Philox4x64
+: <a class="el" href="group__PhiloxNxW.html#ga7776f4d481b7c0ac00db70272a1c77f0">r123</a>
+</li>
+<li>Threefry2x32
+: <a class="el" href="group__ThreefryNxW.html#ga1c32939b65f84966c93677f4382ea36d">r123</a>
+</li>
+<li>Threefry2x64
+: <a class="el" href="group__ThreefryNxW.html#ga2b54dd1b0d20f09239be5f8757f1f3db">r123</a>
+</li>
+<li>Threefry4x32
+: <a class="el" href="group__ThreefryNxW.html#gacb09a2dcfb7389769f0c58f45f132aaa">r123</a>
+</li>
+<li>Threefry4x64
+: <a class="el" href="group__ThreefryNxW.html#gae17c98bddf067365508ed0717f865e8b">r123</a>
+</li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/namespacer123.html b/docs/html/namespacer123.html
new file mode 100644
index 0000000..bb9d048
--- /dev/null
+++ b/docs/html/namespacer123.html
@@ -0,0 +1,275 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: r123 Namespace Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="namespaces.html"><span>Namespace List</span></a></li>
+      <li><a href="namespacemembers.html"><span>Namespace Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Classes</a> |
+<a href="#typedef-members">Typedefs</a>  </div>
+  <div class="headertitle">
+<h1>r123 Namespace Reference</h1>  </div>
+</div>
+<div class="contents">
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1AESNI1xm128i.html">AESNI1xm128i</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1AESNI4x32.html">AESNI4x32</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1AESNI1xm128i__R.html">AESNI1xm128i_R</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1AESNI4x32__R.html">AESNI4x32_R</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1ARS1xm128i__R.html">ARS1xm128i_R</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1ARS4x32__R.html">ARS4x32_R</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classr123_1_1MicroURNG.html">MicroURNG</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Philox2x32__R.html">Philox2x32_R</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Philox4x32__R.html">Philox4x32_R</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Philox2x64__R.html">Philox2x64_R</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Philox4x64__R.html">Philox4x64_R</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1ReinterpretCtr.html">ReinterpretCtr</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Threefry2x32__R.html">Threefry2x32_R</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Threefry4x32__R.html">Threefry4x32_R</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Threefry2x64__R.html">Threefry2x64_R</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Threefry4x64__R.html">Threefry4x64_R</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Engine.html">Engine</a></td></tr>
+<tr><td colspan="2"><h2><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123array1x32.html">r123array1x32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacer123.html#acc1b0ed919ef806de26f5ff5b934b313">Array1x32</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123array2x32.html">r123array2x32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacer123.html#ab853ac55f8188e4a09d12ab23f2d8dea">Array2x32</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123array4x32.html">r123array4x32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacer123.html#a0c352c3ea265e7fd182559e557113195">Array4x32</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123array8x32.html">r123array8x32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacer123.html#aea31cf23efbfcc11808b7e394922f4d2">Array8x32</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123array1x64.html">r123array1x64</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacer123.html#aeb81c4265759fad9993e09fda21ff4fa">Array1x64</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123array2x64.html">r123array2x64</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacer123.html#ad3b670563762f605a6fce61b5bab8412">Array2x64</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123array4x64.html">r123array4x64</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacer123.html#a54c1a72670974c11acff37279eb23147">Array4x64</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123array16x8.html">r123array16x8</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacer123.html#ac3148aed79e81051d40e9b29a8914cf4">Array16x8</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123array1xm128i.html">r123array1xm128i</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacer123.html#adbb729a97ee41e7cb075058b55a58c5d">Array1xm128i</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123_1_1ARS1xm128i__R.html">ARS1xm128i_R</a><br class="typebreak"/>
+< ars1xm128i_rounds > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacer123.html#a964aa9123913d1f8cf535e0caaa4155f">ARS1xm128i</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123_1_1ARS4x32__R.html">ARS4x32_R</a>< ars4x32_rounds > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacer123.html#afd2070dc979024a14317bd57c3a4c352">ARS4x32</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123_1_1Philox2x32__R.html">Philox2x32_R</a><br class="typebreak"/>
+< philox2x32_rounds > </td><td class="memItemRight" valign="bottom"><a class="el" href="group__PhiloxNxW.html#ga81659a3ee5a1ca9e2e85c5d725a1ea4f">Philox2x32</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123_1_1Philox4x32__R.html">Philox4x32_R</a><br class="typebreak"/>
+< philox4x32_rounds > </td><td class="memItemRight" valign="bottom"><a class="el" href="group__PhiloxNxW.html#gaafd54060af05012db410034e3c0ecdc4">Philox4x32</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123_1_1Philox2x64__R.html">Philox2x64_R</a><br class="typebreak"/>
+< philox2x64_rounds > </td><td class="memItemRight" valign="bottom"><a class="el" href="group__PhiloxNxW.html#ga616a669079ac25119353416c14d46426">Philox2x64</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123_1_1Philox4x64__R.html">Philox4x64_R</a><br class="typebreak"/>
+< philox4x64_rounds > </td><td class="memItemRight" valign="bottom"><a class="el" href="group__PhiloxNxW.html#ga7776f4d481b7c0ac00db70272a1c77f0">Philox4x64</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123_1_1Threefry2x32__R.html">Threefry2x32_R</a><br class="typebreak"/>
+< threefry2x32_rounds > </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ThreefryNxW.html#ga1c32939b65f84966c93677f4382ea36d">Threefry2x32</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123_1_1Threefry4x32__R.html">Threefry4x32_R</a><br class="typebreak"/>
+< threefry4x32_rounds > </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ThreefryNxW.html#gacb09a2dcfb7389769f0c58f45f132aaa">Threefry4x32</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123_1_1Threefry2x64__R.html">Threefry2x64_R</a><br class="typebreak"/>
+< threefry2x64_rounds > </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ThreefryNxW.html#ga2b54dd1b0d20f09239be5f8757f1f3db">Threefry2x64</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123_1_1Threefry4x64__R.html">Threefry4x64_R</a><br class="typebreak"/>
+< threefry4x64_rounds > </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ThreefryNxW.html#gae17c98bddf067365508ed0717f865e8b">Threefry4x64</a></td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>Most of the Random123 C++ API is contained in the <a class="el" href="namespacer123.html">r123</a> namespace.</p>
+<hr/><h2>Typedef Documentation</h2>
+<a class="anchor" id="ac3148aed79e81051d40e9b29a8914cf4"></a><!-- doxytag: member="r123::Array16x8" ref="ac3148aed79e81051d40e9b29a8914cf4" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="structr123array16x8.html">r123array16x8</a> <a class="el" href="structr123array16x8.html">r123::Array16x8</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="acc1b0ed919ef806de26f5ff5b934b313"></a><!-- doxytag: member="r123::Array1x32" ref="acc1b0ed919ef806de26f5ff5b934b313" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="structr123array1x32.html">r123array1x32</a> <a class="el" href="structr123array1x32.html">r123::Array1x32</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aeb81c4265759fad9993e09fda21ff4fa"></a><!-- doxytag: member="r123::Array1x64" ref="aeb81c4265759fad9993e09fda21ff4fa" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="structr123array1x64.html">r123array1x64</a> <a class="el" href="structr123array1x64.html">r123::Array1x64</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="adbb729a97ee41e7cb075058b55a58c5d"></a><!-- doxytag: member="r123::Array1xm128i" ref="adbb729a97ee41e7cb075058b55a58c5d" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="structr123array1xm128i.html">r123array1xm128i</a> <a class="el" href="structr123array1xm128i.html">r123::Array1xm128i</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ab853ac55f8188e4a09d12ab23f2d8dea"></a><!-- doxytag: member="r123::Array2x32" ref="ab853ac55f8188e4a09d12ab23f2d8dea" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="structr123array2x32.html">r123array2x32</a> <a class="el" href="structr123array2x32.html">r123::Array2x32</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ad3b670563762f605a6fce61b5bab8412"></a><!-- doxytag: member="r123::Array2x64" ref="ad3b670563762f605a6fce61b5bab8412" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="structr123array2x64.html">r123array2x64</a> <a class="el" href="structr123array2x64.html">r123::Array2x64</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a0c352c3ea265e7fd182559e557113195"></a><!-- doxytag: member="r123::Array4x32" ref="a0c352c3ea265e7fd182559e557113195" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="structr123array4x32.html">r123array4x32</a> <a class="el" href="structr123array4x32.html">r123::Array4x32</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a54c1a72670974c11acff37279eb23147"></a><!-- doxytag: member="r123::Array4x64" ref="a54c1a72670974c11acff37279eb23147" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="structr123array4x64.html">r123array4x64</a> <a class="el" href="structr123array4x64.html">r123::Array4x64</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aea31cf23efbfcc11808b7e394922f4d2"></a><!-- doxytag: member="r123::Array8x32" ref="aea31cf23efbfcc11808b7e394922f4d2" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="structr123array8x32.html">r123array8x32</a> <a class="el" href="structr123array8x32.html">r123::Array8x32</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a964aa9123913d1f8cf535e0caaa4155f"></a><!-- doxytag: member="r123::ARS1xm128i" ref="a964aa9123913d1f8cf535e0caaa4155f" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="structr123_1_1ARS1xm128i__R.html">ARS1xm128i_R</a><ars1xm128i_rounds> <a class="el" href="structr123_1_1ARS1xm128i__R.html">r123::ARS1xm128i</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="afd2070dc979024a14317bd57c3a4c352"></a><!-- doxytag: member="r123::ARS4x32" ref="afd2070dc979024a14317bd57c3a4c352" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="structr123_1_1ARS4x32__R.html">ARS4x32_R</a><ars4x32_rounds> <a class="el" href="structr123_1_1ARS4x32__R.html">r123::ARS4x32</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/namespaces.html b/docs/html/namespaces.html
new file mode 100644
index 0000000..7df5481
--- /dev/null
+++ b/docs/html/namespaces.html
@@ -0,0 +1,78 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Namespace Index</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li class="current"><a href="namespaces.html"><span>Namespace List</span></a></li>
+      <li><a href="namespacemembers.html"><span>Namespace Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<h1>Namespace List</h1>  </div>
+</div>
+<div class="contents">
+Here is a list of all namespaces with brief descriptions:<table>
+  <tr><td class="indexkey"><a class="el" href="namespacer123.html">r123</a></td><td class="indexvalue"></td></tr>
+</table>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/nav_f.png b/docs/html/nav_f.png
new file mode 100644
index 0000000..1b07a16
Binary files /dev/null and b/docs/html/nav_f.png differ
diff --git a/docs/html/nav_h.png b/docs/html/nav_h.png
new file mode 100644
index 0000000..01f5fa6
Binary files /dev/null and b/docs/html/nav_h.png differ
diff --git a/docs/html/open.png b/docs/html/open.png
new file mode 100644
index 0000000..7b35d2c
Binary files /dev/null and b/docs/html/open.png differ
diff --git a/docs/html/pages.html b/docs/html/pages.html
new file mode 100644
index 0000000..bfdae9d
--- /dev/null
+++ b/docs/html/pages.html
@@ -0,0 +1,81 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Page Index</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li class="current"><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<h1>Related Pages</h1>  </div>
+</div>
+<div class="contents">
+Here is a list of all related documentation pages:<ul>
+<li><a class="el" href="CBRNG.html">Counter Based RNGs (CBRNGs).</a>
+</li>
+<li><a class="el" href="Release_01Notes.html">Release Notes</a>
+</li>
+<li><a class="el" href="porting.html">Preprocessor symbols for porting Random123 to different platforms.</a>
+</li>
+<li><a class="el" href="ExamplesREADME.html">Examples, Tests and Benchmarks</a>
+</li>
+<li><a class="el" href="LICENSE.html">LICENSE</a>
+</li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/philox_8h.html b/docs/html/philox_8h.html
new file mode 100644
index 0000000..f9c39d2
--- /dev/null
+++ b/docs/html/philox_8h.html
@@ -0,0 +1,617 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Random123/philox.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Classes</a> |
+<a href="#namespaces">Namespaces</a> |
+<a href="#define-members">Defines</a> |
+<a href="#typedef-members">Typedefs</a> |
+<a href="#enum-members">Enumerations</a> |
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<h1>Random123/philox.h File Reference</h1>  </div>
+</div>
+<div class="contents">
+<code>#include "<a class="el" href="compilerfeatures_8h_source.html">features/compilerfeatures.h</a>"</code><br/>
+<code>#include "<a class="el" href="array_8h_source.html">array.h</a>"</code><br/>
+<code>#include <stdexcept></code><br/>
+
+<p><a href="philox_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Philox2x32__R.html">r123::Philox2x32_R< ROUNDS ></a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Philox4x32__R.html">r123::Philox4x32_R< ROUNDS ></a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Philox2x64__R.html">r123::Philox2x64_R< ROUNDS ></a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Philox4x64__R.html">r123::Philox4x64_R< ROUNDS ></a></td></tr>
+<tr><td colspan="2"><h2><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacer123.html">r123</a></td></tr>
+<tr><td colspan="2"><h2><a name="define-members"></a>
+Defines</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="philox_8h.html#ab2496424917f063a4990f01943a07fe0">philox2x32</a>(c, k)   philox2x32_R(philox2x32_rounds, c, k)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="philox_8h.html#a432a3df828dd51acd0b7ec2fee1d4d7e">philox4x32</a>(c, k)   philox4x32_R(philox4x32_rounds, c, k)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="philox_8h.html#ae6b57a71e4efa369cc19416fc088b5a5">philox2x64</a>(c, k)   philox2x64_R(philox2x64_rounds, c, k)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="philox_8h.html#a62fb1b4d9775396303ebb2a801fea8e6">philox4x64</a>(c, k)   philox4x64_R(philox4x64_rounds, c, k)</td></tr>
+<tr><td colspan="2"><h2><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structr123array2x32.html">r123array2x32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="philox_8h.html#a5fad831cdbd677bc6e53d37c0191f5e3">philox2x32_ctr_t</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structr123array1x32.html">r123array1x32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="philox_8h.html#a55c0e4adeab3387915f966a0e40dc036">philox2x32_key_t</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structr123array1x32.html">r123array1x32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="philox_8h.html#abf96b0e95504989c58e6d3436b013a6b">philox2x32_ukey_t</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structr123array4x32.html">r123array4x32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="philox_8h.html#a96f2a94ebcd7aba28aaeb0aba6543d2d">philox4x32_ctr_t</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structr123array2x32.html">r123array2x32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="philox_8h.html#ab1e74b78fcee751b43739b2b4415c592">philox4x32_key_t</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structr123array2x32.html">r123array2x32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="philox_8h.html#a82e1d60f98bfbb600bde2bd939de4573">philox4x32_ukey_t</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structr123array2x64.html">r123array2x64</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="philox_8h.html#a33fa626a4198f38d87713ae9504e53f2">philox2x64_ctr_t</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structr123array1x64.html">r123array1x64</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="philox_8h.html#a190087c2584155a936ec7d7b9e8d7f34">philox2x64_key_t</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structr123array1x64.html">r123array1x64</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="philox_8h.html#a419cc7ebdeeaa1fc8249c638eac3d00b">philox2x64_ukey_t</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structr123array4x64.html">r123array4x64</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="philox_8h.html#a4d2063cc89bf13153ddeff0d94371986">philox4x64_ctr_t</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structr123array2x64.html">r123array2x64</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="philox_8h.html#a0c8c9410e9d88d4c94e8093007e39b0c">philox4x64_key_t</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structr123array2x64.html">r123array2x64</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="philox_8h.html#a689ed8276d25fe0c983c4eb5b9a32fd4">philox4x64_ukey_t</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef Philox2x32_R<br class="typebreak"/>
+< philox2x32_rounds > </td><td class="memItemRight" valign="bottom"><a class="el" href="group__PhiloxNxW.html#ga81659a3ee5a1ca9e2e85c5d725a1ea4f">r123::Philox2x32</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef Philox4x32_R<br class="typebreak"/>
+< philox4x32_rounds > </td><td class="memItemRight" valign="bottom"><a class="el" href="group__PhiloxNxW.html#gaafd54060af05012db410034e3c0ecdc4">r123::Philox4x32</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef Philox2x64_R<br class="typebreak"/>
+< philox2x64_rounds > </td><td class="memItemRight" valign="bottom"><a class="el" href="group__PhiloxNxW.html#ga616a669079ac25119353416c14d46426">r123::Philox2x64</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef Philox4x64_R<br class="typebreak"/>
+< philox4x64_rounds > </td><td class="memItemRight" valign="bottom"><a class="el" href="group__PhiloxNxW.html#ga7776f4d481b7c0ac00db70272a1c77f0">r123::Philox4x64</a></td></tr>
+<tr><td colspan="2"><h2><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="group__PhiloxNxW.html#gae7443e1a57429154124943b6a7c0bd08">r123_enum_philox2x32</a> { <a class="el" href="group__PhiloxNxW.html#ggae7443e1a57429154124943b6a7c0bd08ad08568b592cd076441505eed926d929c">philox2x32_rounds</a> =  10
+ }</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="group__PhiloxNxW.html#ga67fd1bf4ed858d01663a7d6b219b97a2">r123_enum_philox4x32</a> { <a class="el" href="group__PhiloxNxW.html#gga67fd1bf4ed858d01663a7d6b219b97a2ac9dec73e096a7afb5d82f2388a7a5412">philox4x32_rounds</a> =  10
+ }</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="group__PhiloxNxW.html#gaca9df5cdadde758a63952daa97ddff91">r123_enum_philox2x64</a> { <a class="el" href="group__PhiloxNxW.html#ggaca9df5cdadde758a63952daa97ddff91ae15befbf8ae3f2e93d6e49ea9e05b636">philox2x64_rounds</a> =  10
+ }</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="group__PhiloxNxW.html#gaf603860d055cee96c75f6986641e9cad">r123_enum_philox4x64</a> { <a class="el" href="group__PhiloxNxW.html#ggaf603860d055cee96c75f6986641e9cada3407accddb6e873c1005a4ab2edcef67">philox4x64_rounds</a> =  10
+ }</td></tr>
+<tr><td colspan="2"><h2><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structr123array1x32.html">philox2x32_key_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="philox_8h.html#ae5dd55c0697c37598c1fbce66457e124">philox2x32keyinit</a> (<a class="el" href="structr123array1x32.html">philox2x32_ukey_t</a> uk)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structr123array2x32.html">philox2x32_ctr_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="philox_8h.html#acf0a4b82a9fd3f4695c04210df0cbefe">philox2x32_R</a> (unsigned int R, <a class="el" href="structr123array2x32.html">philox2x32_ctr_t</a> ctr, <a class="el" href="structr123array1x32.html">philox2x32_key_t</a> key)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structr123array2x32.html">philox4x32_key_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="philox_8h.html#a5a012bb440c039eda46802b447c31851">philox4x32keyinit</a> (<a class="el" href="structr123array2x32.html">philox4x32_ukey_t</a> uk)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structr123array4x32.html">philox4x32_ctr_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="philox_8h.html#a205fdd66786445b3e1c4157bd96d0967">philox4x32_R</a> (unsigned int R, <a class="el" href="structr123array4x32.html">philox4x32_ctr_t</a> ctr, <a class="el" href="structr123array2x32.html">philox4x32_key_t</a> key)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structr123array1x64.html">philox2x64_key_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="philox_8h.html#a36b9225fcb73f91d116b424f721275f1">philox2x64keyinit</a> (<a class="el" href="structr123array1x64.html">philox2x64_ukey_t</a> uk)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structr123array2x64.html">philox2x64_ctr_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="philox_8h.html#a03c068219ecebcc870afa14a330c0735">philox2x64_R</a> (unsigned int R, <a class="el" href="structr123array2x64.html">philox2x64_ctr_t</a> ctr, <a class="el" href="structr123array1x64.html">philox2x64_key_t</a> key)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structr123array2x64.html">philox4x64_key_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="philox_8h.html#a101674ffc206e3bd600f9544de0c3c4a">philox4x64keyinit</a> (<a class="el" href="structr123array2x64.html">philox4x64_ukey_t</a> uk)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structr123array4x64.html">philox4x64_ctr_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="philox_8h.html#ac72571943d83caf2f79b7bd309a2ae92">philox4x64_R</a> (unsigned int R, <a class="el" href="structr123array4x64.html">philox4x64_ctr_t</a> ctr, <a class="el" href="structr123array2x64.html">philox4x64_key_t</a> key)</td></tr>
+</table>
+<hr/><h2>Define Documentation</h2>
+<a class="anchor" id="ab2496424917f063a4990f01943a07fe0"></a><!-- doxytag: member="philox.h::philox2x32" ref="ab2496424917f063a4990f01943a07fe0" args="(c, k)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define philox2x32</td>
+          <td>(</td>
+          <td class="paramtype"> </td>
+          <td class="paramname">c, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"> </td>
+          <td class="paramname">k</td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td>   philox2x32_R(philox2x32_rounds, c, k)</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae6b57a71e4efa369cc19416fc088b5a5"></a><!-- doxytag: member="philox.h::philox2x64" ref="ae6b57a71e4efa369cc19416fc088b5a5" args="(c, k)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define philox2x64</td>
+          <td>(</td>
+          <td class="paramtype"> </td>
+          <td class="paramname">c, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"> </td>
+          <td class="paramname">k</td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td>   philox2x64_R(philox2x64_rounds, c, k)</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a432a3df828dd51acd0b7ec2fee1d4d7e"></a><!-- doxytag: member="philox.h::philox4x32" ref="a432a3df828dd51acd0b7ec2fee1d4d7e" args="(c, k)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define philox4x32</td>
+          <td>(</td>
+          <td class="paramtype"> </td>
+          <td class="paramname">c, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"> </td>
+          <td class="paramname">k</td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td>   philox4x32_R(philox4x32_rounds, c, k)</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a62fb1b4d9775396303ebb2a801fea8e6"></a><!-- doxytag: member="philox.h::philox4x64" ref="a62fb1b4d9775396303ebb2a801fea8e6" args="(c, k)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define philox4x64</td>
+          <td>(</td>
+          <td class="paramtype"> </td>
+          <td class="paramname">c, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"> </td>
+          <td class="paramname">k</td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td>   philox4x64_R(philox4x64_rounds, c, k)</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/><h2>Typedef Documentation</h2>
+<a class="anchor" id="a5fad831cdbd677bc6e53d37c0191f5e3"></a><!-- doxytag: member="philox.h::philox2x32_ctr_t" ref="a5fad831cdbd677bc6e53d37c0191f5e3" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="structr123array2x32.html">r123array2x32</a> <a class="el" href="structr123array2x32.html">philox2x32_ctr_t</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a55c0e4adeab3387915f966a0e40dc036"></a><!-- doxytag: member="philox.h::philox2x32_key_t" ref="a55c0e4adeab3387915f966a0e40dc036" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="structr123array1x32.html">r123array1x32</a> <a class="el" href="structr123array1x32.html">philox2x32_key_t</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="abf96b0e95504989c58e6d3436b013a6b"></a><!-- doxytag: member="philox.h::philox2x32_ukey_t" ref="abf96b0e95504989c58e6d3436b013a6b" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="structr123array1x32.html">r123array1x32</a> <a class="el" href="structr123array1x32.html">philox2x32_ukey_t</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a33fa626a4198f38d87713ae9504e53f2"></a><!-- doxytag: member="philox.h::philox2x64_ctr_t" ref="a33fa626a4198f38d87713ae9504e53f2" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="structr123array2x64.html">r123array2x64</a> <a class="el" href="structr123array2x64.html">philox2x64_ctr_t</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a190087c2584155a936ec7d7b9e8d7f34"></a><!-- doxytag: member="philox.h::philox2x64_key_t" ref="a190087c2584155a936ec7d7b9e8d7f34" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="structr123array1x64.html">r123array1x64</a> <a class="el" href="structr123array1x64.html">philox2x64_key_t</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a419cc7ebdeeaa1fc8249c638eac3d00b"></a><!-- doxytag: member="philox.h::philox2x64_ukey_t" ref="a419cc7ebdeeaa1fc8249c638eac3d00b" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="structr123array1x64.html">r123array1x64</a> <a class="el" href="structr123array1x64.html">philox2x64_ukey_t</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a96f2a94ebcd7aba28aaeb0aba6543d2d"></a><!-- doxytag: member="philox.h::philox4x32_ctr_t" ref="a96f2a94ebcd7aba28aaeb0aba6543d2d" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="structr123array4x32.html">r123array4x32</a> <a class="el" href="structr123array4x32.html">philox4x32_ctr_t</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ab1e74b78fcee751b43739b2b4415c592"></a><!-- doxytag: member="philox.h::philox4x32_key_t" ref="ab1e74b78fcee751b43739b2b4415c592" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="structr123array2x32.html">r123array2x32</a> <a class="el" href="structr123array2x32.html">philox4x32_key_t</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a82e1d60f98bfbb600bde2bd939de4573"></a><!-- doxytag: member="philox.h::philox4x32_ukey_t" ref="a82e1d60f98bfbb600bde2bd939de4573" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="structr123array2x32.html">r123array2x32</a> <a class="el" href="structr123array2x32.html">philox4x32_ukey_t</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a4d2063cc89bf13153ddeff0d94371986"></a><!-- doxytag: member="philox.h::philox4x64_ctr_t" ref="a4d2063cc89bf13153ddeff0d94371986" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="structr123array4x64.html">r123array4x64</a> <a class="el" href="structr123array4x64.html">philox4x64_ctr_t</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a0c8c9410e9d88d4c94e8093007e39b0c"></a><!-- doxytag: member="philox.h::philox4x64_key_t" ref="a0c8c9410e9d88d4c94e8093007e39b0c" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="structr123array2x64.html">r123array2x64</a> <a class="el" href="structr123array2x64.html">philox4x64_key_t</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a689ed8276d25fe0c983c4eb5b9a32fd4"></a><!-- doxytag: member="philox.h::philox4x64_ukey_t" ref="a689ed8276d25fe0c983c4eb5b9a32fd4" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="structr123array2x64.html">r123array2x64</a> <a class="el" href="structr123array2x64.html">philox4x64_ukey_t</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/><h2>Function Documentation</h2>
+<a class="anchor" id="acf0a4b82a9fd3f4695c04210df0cbefe"></a><!-- doxytag: member="philox.h::philox2x32_R" ref="acf0a4b82a9fd3f4695c04210df0cbefe" args="(unsigned int R, philox2x32_ctr_t ctr, philox2x32_key_t key)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structr123array2x32.html">philox2x32_ctr_t</a> philox2x32_R </td>
+          <td>(</td>
+          <td class="paramtype">unsigned int </td>
+          <td class="paramname"> <em>R</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structr123array2x32.html">philox2x32_ctr_t</a> </td>
+          <td class="paramname"> <em>ctr</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structr123array1x32.html">philox2x32_key_t</a> </td>
+          <td class="paramname"> <em>key</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [inline, static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae5dd55c0697c37598c1fbce66457e124"></a><!-- doxytag: member="philox.h::philox2x32keyinit" ref="ae5dd55c0697c37598c1fbce66457e124" args="(philox2x32_ukey_t uk)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structr123array1x32.html">philox2x32_key_t</a> philox2x32keyinit </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array1x32.html">philox2x32_ukey_t</a> </td>
+          <td class="paramname"> <em>uk</em></td>
+          <td> ) </td>
+          <td><code> [inline, static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a03c068219ecebcc870afa14a330c0735"></a><!-- doxytag: member="philox.h::philox2x64_R" ref="a03c068219ecebcc870afa14a330c0735" args="(unsigned int R, philox2x64_ctr_t ctr, philox2x64_key_t key)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structr123array2x64.html">philox2x64_ctr_t</a> philox2x64_R </td>
+          <td>(</td>
+          <td class="paramtype">unsigned int </td>
+          <td class="paramname"> <em>R</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structr123array2x64.html">philox2x64_ctr_t</a> </td>
+          <td class="paramname"> <em>ctr</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structr123array1x64.html">philox2x64_key_t</a> </td>
+          <td class="paramname"> <em>key</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [inline, static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a36b9225fcb73f91d116b424f721275f1"></a><!-- doxytag: member="philox.h::philox2x64keyinit" ref="a36b9225fcb73f91d116b424f721275f1" args="(philox2x64_ukey_t uk)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structr123array1x64.html">philox2x64_key_t</a> philox2x64keyinit </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array1x64.html">philox2x64_ukey_t</a> </td>
+          <td class="paramname"> <em>uk</em></td>
+          <td> ) </td>
+          <td><code> [inline, static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a205fdd66786445b3e1c4157bd96d0967"></a><!-- doxytag: member="philox.h::philox4x32_R" ref="a205fdd66786445b3e1c4157bd96d0967" args="(unsigned int R, philox4x32_ctr_t ctr, philox4x32_key_t key)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structr123array4x32.html">philox4x32_ctr_t</a> philox4x32_R </td>
+          <td>(</td>
+          <td class="paramtype">unsigned int </td>
+          <td class="paramname"> <em>R</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structr123array4x32.html">philox4x32_ctr_t</a> </td>
+          <td class="paramname"> <em>ctr</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structr123array2x32.html">philox4x32_key_t</a> </td>
+          <td class="paramname"> <em>key</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [inline, static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a5a012bb440c039eda46802b447c31851"></a><!-- doxytag: member="philox.h::philox4x32keyinit" ref="a5a012bb440c039eda46802b447c31851" args="(philox4x32_ukey_t uk)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structr123array2x32.html">philox4x32_key_t</a> philox4x32keyinit </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array2x32.html">philox4x32_ukey_t</a> </td>
+          <td class="paramname"> <em>uk</em></td>
+          <td> ) </td>
+          <td><code> [inline, static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ac72571943d83caf2f79b7bd309a2ae92"></a><!-- doxytag: member="philox.h::philox4x64_R" ref="ac72571943d83caf2f79b7bd309a2ae92" args="(unsigned int R, philox4x64_ctr_t ctr, philox4x64_key_t key)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structr123array4x64.html">philox4x64_ctr_t</a> philox4x64_R </td>
+          <td>(</td>
+          <td class="paramtype">unsigned int </td>
+          <td class="paramname"> <em>R</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structr123array4x64.html">philox4x64_ctr_t</a> </td>
+          <td class="paramname"> <em>ctr</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structr123array2x64.html">philox4x64_key_t</a> </td>
+          <td class="paramname"> <em>key</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [inline, static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a101674ffc206e3bd600f9544de0c3c4a"></a><!-- doxytag: member="philox.h::philox4x64keyinit" ref="a101674ffc206e3bd600f9544de0c3c4a" args="(philox4x64_ukey_t uk)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structr123array2x64.html">philox4x64_key_t</a> philox4x64keyinit </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array2x64.html">philox4x64_ukey_t</a> </td>
+          <td class="paramname"> <em>uk</em></td>
+          <td> ) </td>
+          <td><code> [inline, static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/philox_8h_source.html b/docs/html/philox_8h_source.html
new file mode 100644
index 0000000..eba2fc3
--- /dev/null
+++ b/docs/html/philox_8h_source.html
@@ -0,0 +1,460 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Random123/philox.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+<div class="header">
+  <div class="headertitle">
+<h1>Random123/philox.h</h1>  </div>
+</div>
+<div class="contents">
+<a href="philox_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
+<a name="l00002"></a>00002 <span class="comment">Copyright 2010-2011, D. E. Shaw Research.</span>
+<a name="l00003"></a>00003 <span class="comment">All rights reserved.</span>
+<a name="l00004"></a>00004 <span class="comment"></span>
+<a name="l00005"></a>00005 <span class="comment">Redistribution and use in source and binary forms, with or without</span>
+<a name="l00006"></a>00006 <span class="comment">modification, are permitted provided that the following conditions are</span>
+<a name="l00007"></a>00007 <span class="comment">met:</span>
+<a name="l00008"></a>00008 <span class="comment"></span>
+<a name="l00009"></a>00009 <span class="comment">* Redistributions of source code must retain the above copyright</span>
+<a name="l00010"></a>00010 <span class="comment">  notice, this list of conditions, and the following disclaimer.</span>
+<a name="l00011"></a>00011 <span class="comment"></span>
+<a name="l00012"></a>00012 <span class="comment">* Redistributions in binary form must reproduce the above copyright</span>
+<a name="l00013"></a>00013 <span class="comment">  notice, this list of conditions, and the following disclaimer in the</span>
+<a name="l00014"></a>00014 <span class="comment">  documentation and/or other materials provided with the distribution.</span>
+<a name="l00015"></a>00015 <span class="comment"></span>
+<a name="l00016"></a>00016 <span class="comment">* Neither the name of D. E. Shaw Research nor the names of its</span>
+<a name="l00017"></a>00017 <span class="comment">  contributors may be used to endorse or promote products derived from</span>
+<a name="l00018"></a>00018 <span class="comment">  this software without specific prior written permission.</span>
+<a name="l00019"></a>00019 <span class="comment"></span>
+<a name="l00020"></a>00020 <span class="comment">THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS</span>
+<a name="l00021"></a>00021 <span class="comment">"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT</span>
+<a name="l00022"></a>00022 <span class="comment">LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR</span>
+<a name="l00023"></a>00023 <span class="comment">A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT</span>
+<a name="l00024"></a>00024 <span class="comment">OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,</span>
+<a name="l00025"></a>00025 <span class="comment">SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT</span>
+<a name="l00026"></a>00026 <span class="comment">LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,</span>
+<a name="l00027"></a>00027 <span class="comment">DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY</span>
+<a name="l00028"></a>00028 <span class="comment">THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT</span>
+<a name="l00029"></a>00029 <span class="comment">(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE</span>
+<a name="l00030"></a>00030 <span class="comment">OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span>
+<a name="l00031"></a>00031 <span class="comment">*/</span>
+<a name="l00032"></a>00032 <span class="preprocessor">#ifndef _philox_dot_h_</span>
+<a name="l00033"></a>00033 <span class="preprocessor"></span><span class="preprocessor">#define _philox_dot_h_</span>
+<a name="l00034"></a>00034 <span class="preprocessor"></span>
+<a name="l00037"></a>00037 <span class="preprocessor">#include "<a class="code" href="compilerfeatures_8h.html">features/compilerfeatures.h</a>"</span>
+<a name="l00038"></a>00038 <span class="preprocessor">#include "<a class="code" href="array_8h.html">array.h</a>"</span>
+<a name="l00039"></a>00039 
+<a name="l00040"></a>00040 
+<a name="l00041"></a>00041 <span class="comment">/*</span>
+<a name="l00042"></a>00042 <span class="comment">// Macros _Foo_tpl are code generation 'templates'  They define</span>
+<a name="l00043"></a>00043 <span class="comment">// inline functions with names obtained by mangling Foo and the</span>
+<a name="l00044"></a>00044 <span class="comment">// macro arguments.  E.g.,</span>
+<a name="l00045"></a>00045 <span class="comment">//   _mulhilo_tpl(32, uint32_t, uint64_t)</span>
+<a name="l00046"></a>00046 <span class="comment">// expands to a definition of:</span>
+<a name="l00047"></a>00047 <span class="comment">//   mulhilo32(uint32_t, uint32_t, uint32_t *, uint32_t *)</span>
+<a name="l00048"></a>00048 <span class="comment">// We then 'instantiate the template' to define</span>
+<a name="l00049"></a>00049 <span class="comment">// several different functions, e.g.,</span>
+<a name="l00050"></a>00050 <span class="comment">//   mulhilo32</span>
+<a name="l00051"></a>00051 <span class="comment">//   mulhilo64</span>
+<a name="l00052"></a>00052 <span class="comment">// These functions will be visible to user code, and may</span>
+<a name="l00053"></a>00053 <span class="comment">// also be used later in subsequent templates and definitions.</span>
+<a name="l00054"></a>00054 <span class="comment"></span>
+<a name="l00055"></a>00055 <span class="comment">// A template for mulhilo using a temporary of twice the word-width.</span>
+<a name="l00056"></a>00056 <span class="comment">// Gcc figures out that this can be reduced to a single 'mul' instruction,</span>
+<a name="l00057"></a>00057 <span class="comment">// despite the apparent use of double-wide variables, shifts, etc.  It's</span>
+<a name="l00058"></a>00058 <span class="comment">// obviously not guaranteed that all compilers will be that smart, so</span>
+<a name="l00059"></a>00059 <span class="comment">// other implementations might be preferable, e.g., using an intrinsic</span>
+<a name="l00060"></a>00060 <span class="comment">// or an asm block.  On the other hand, for 32-bit multiplies,</span>
+<a name="l00061"></a>00061 <span class="comment">// this *is* perfectly standard C99 - any C99 compiler should </span>
+<a name="l00062"></a>00062 <span class="comment">// understand it and produce correct code.  For 64-bit multiplies,</span>
+<a name="l00063"></a>00063 <span class="comment">// it's only usable if the compiler recognizes that it can do</span>
+<a name="l00064"></a>00064 <span class="comment">// arithmetic on a 128-bit type.  That happens to be true for gcc on</span>
+<a name="l00065"></a>00065 <span class="comment">// x86-64, and powerpc64 but not much else.</span>
+<a name="l00066"></a>00066 <span class="comment">*/</span>
+<a name="l00067"></a>00067 <span class="preprocessor">#define _mulhilo_dword_tpl(W, Word, Dword)                              \</span>
+<a name="l00068"></a>00068 <span class="preprocessor">R123_CUDA_DEVICE R123_STATIC_INLINE Word mulhilo##W(Word a, Word b, Word* hip){ \</span>
+<a name="l00069"></a>00069 <span class="preprocessor">    Dword product = ((Dword)a)*((Dword)b);                              \</span>
+<a name="l00070"></a>00070 <span class="preprocessor">    *hip = product>>W;                                                  \</span>
+<a name="l00071"></a>00071 <span class="preprocessor">    return (Word)product;                                               \</span>
+<a name="l00072"></a>00072 <span class="preprocessor">}</span>
+<a name="l00073"></a>00073 <span class="preprocessor"></span>
+<a name="l00074"></a>00074 <span class="comment">/*</span>
+<a name="l00075"></a>00075 <span class="comment">// A template for mulhilo using gnu-style asm syntax.</span>
+<a name="l00076"></a>00076 <span class="comment">// INSN can be "mulw", "mull" or "mulq".  </span>
+<a name="l00077"></a>00077 <span class="comment">// FIXME - porting to other architectures, we'll need still-more conditional</span>
+<a name="l00078"></a>00078 <span class="comment">// branching here.  Note that intrinsics are usually preferable.</span>
+<a name="l00079"></a>00079 <span class="comment">*/</span>
+<a name="l00080"></a>00080 <span class="preprocessor">#ifdef __powerpc__</span>
+<a name="l00081"></a>00081 <span class="preprocessor"></span><span class="preprocessor">#define _mulhilo_asm_tpl(W, Word, INSN)                         \</span>
+<a name="l00082"></a>00082 <span class="preprocessor">R123_STATIC_INLINE Word mulhilo##W(Word ax, Word b, Word *hip){ \</span>
+<a name="l00083"></a>00083 <span class="preprocessor">    Word dx = 0;                                                \</span>
+<a name="l00084"></a>00084 <span class="preprocessor">    __asm__("\n\t"                                              \</span>
+<a name="l00085"></a>00085 <span class="preprocessor">        INSN " %0,%1,%2\n\t"                                    \</span>
+<a name="l00086"></a>00086 <span class="preprocessor">        : "=r"(dx)                                              \</span>
+<a name="l00087"></a>00087 <span class="preprocessor">        : "r"(b), "r"(ax)                                       \</span>
+<a name="l00088"></a>00088 <span class="preprocessor">        );                                                      \</span>
+<a name="l00089"></a>00089 <span class="preprocessor">    *hip = dx;                                                  \</span>
+<a name="l00090"></a>00090 <span class="preprocessor">    return ax*b;                                                \</span>
+<a name="l00091"></a>00091 <span class="preprocessor">}</span>
+<a name="l00092"></a>00092 <span class="preprocessor"></span><span class="preprocessor">#else</span>
+<a name="l00093"></a>00093 <span class="preprocessor"></span><span class="preprocessor">#define _mulhilo_asm_tpl(W, Word, INSN)                         \</span>
+<a name="l00094"></a>00094 <span class="preprocessor">R123_STATIC_INLINE Word mulhilo##W(Word ax, Word b, Word *hip){      \</span>
+<a name="l00095"></a>00095 <span class="preprocessor">    Word dx;                                                    \</span>
+<a name="l00096"></a>00096 <span class="preprocessor">    __asm__("\n\t"                                              \</span>
+<a name="l00097"></a>00097 <span class="preprocessor">        INSN " %2\n\t"                                          \</span>
+<a name="l00098"></a>00098 <span class="preprocessor">        : "=a"(ax), "=d"(dx)                                    \</span>
+<a name="l00099"></a>00099 <span class="preprocessor">        : "r"(b), "0"(ax)                                       \</span>
+<a name="l00100"></a>00100 <span class="preprocessor">        );                                                      \</span>
+<a name="l00101"></a>00101 <span class="preprocessor">    *hip = dx;                                                  \</span>
+<a name="l00102"></a>00102 <span class="preprocessor">    return ax;                                                  \</span>
+<a name="l00103"></a>00103 <span class="preprocessor">}</span>
+<a name="l00104"></a>00104 <span class="preprocessor"></span><span class="preprocessor">#endif </span><span class="comment">/* __powerpc__ */</span>
+<a name="l00105"></a>00105 
+<a name="l00106"></a>00106 <span class="comment">/*</span>
+<a name="l00107"></a>00107 <span class="comment">// A template for mulhilo using MSVC-style intrinsics</span>
+<a name="l00108"></a>00108 <span class="comment">// For example,_umul128 is an msvc intrinsic, c.f.</span>
+<a name="l00109"></a>00109 <span class="comment">// http://msdn.microsoft.com/en-us/library/3dayytw9.aspx</span>
+<a name="l00110"></a>00110 <span class="comment">*/</span>
+<a name="l00111"></a>00111 <span class="preprocessor">#define _mulhilo_msvc_intrin_tpl(W, Word, INTRIN)               \</span>
+<a name="l00112"></a>00112 <span class="preprocessor">R123_STATIC_INLINE Word mulhilo##W(Word a, Word b, Word* hip){       \</span>
+<a name="l00113"></a>00113 <span class="preprocessor">    return INTRIN(a, b, hip);                                   \</span>
+<a name="l00114"></a>00114 <span class="preprocessor">}</span>
+<a name="l00115"></a>00115 <span class="preprocessor"></span>
+<a name="l00116"></a>00116 <span class="comment">/* N.B.  This really should be called _mulhilo_mulhi_intrin.  It just</span>
+<a name="l00117"></a>00117 <span class="comment">   happens that CUDA was the first time we used the idiom. */</span>
+<a name="l00118"></a>00118 <span class="preprocessor">#define _mulhilo_cuda_intrin_tpl(W, Word, INTRIN)                       \</span>
+<a name="l00119"></a>00119 <span class="preprocessor">R123_CUDA_DEVICE R123_STATIC_INLINE Word mulhilo##W(Word a, Word b, Word* hip){ \</span>
+<a name="l00120"></a>00120 <span class="preprocessor">    *hip = INTRIN(a, b);                                                \</span>
+<a name="l00121"></a>00121 <span class="preprocessor">    return a*b;                                                         \</span>
+<a name="l00122"></a>00122 <span class="preprocessor">}</span>
+<a name="l00123"></a>00123 <span class="preprocessor"></span>
+<a name="l00124"></a>00124 <span class="comment">/*</span>
+<a name="l00125"></a>00125 <span class="comment">// A template for mulhilo using only word-size operations and</span>
+<a name="l00126"></a>00126 <span class="comment">// C99 operators (no adc, no mulhi).  It</span>
+<a name="l00127"></a>00127 <span class="comment">// requires four multiplies and a dozen or so shifts, adds</span>
+<a name="l00128"></a>00128 <span class="comment">// and tests.  It's not clear what this is good for, other than</span>
+<a name="l00129"></a>00129 <span class="comment">// completeness.  On 32-bit platforms, it could be used to</span>
+<a name="l00130"></a>00130 <span class="comment">// implement philoxNx64, but on such platforms both the philoxNx32</span>
+<a name="l00131"></a>00131 <span class="comment">// and the threefryNx64 cbrngs are going to have much better</span>
+<a name="l00132"></a>00132 <span class="comment">// performance.  It is enabled below by R123_USE_MULHILO64_C99,</span>
+<a name="l00133"></a>00133 <span class="comment">// but that is currently (Sep 2011) not set by any of the</span>
+<a name="l00134"></a>00134 <span class="comment">// features/XXfeatures.h headers.  It can, of course, be</span>
+<a name="l00135"></a>00135 <span class="comment">// set with a compile-time -D option.</span>
+<a name="l00136"></a>00136 <span class="comment">*/</span>
+<a name="l00137"></a>00137 <span class="preprocessor">#define _mulhilo_c99_tpl(W, Word) \</span>
+<a name="l00138"></a>00138 <span class="preprocessor">R123_STATIC_INLINE Word mulhilo##W(Word a, Word b, Word *hip){ \</span>
+<a name="l00139"></a>00139 <span class="preprocessor">    const unsigned WHALF = W/2;                                    \</span>
+<a name="l00140"></a>00140 <span class="preprocessor">    const Word LOMASK = ((((Word)1)<<WHALF)-1);                    \</span>
+<a name="l00141"></a>00141 <span class="preprocessor">    Word lo = a*b;               </span><span class="comment">/* full low multiply */</span>           \
+<a name="l00142"></a>00142     Word ahi = a>>WHALF;                                           \
+<a name="l00143"></a>00143     Word alo = a& LOMASK;                                          \
+<a name="l00144"></a>00144     Word bhi = b>>WHALF;                                           \
+<a name="l00145"></a>00145     Word blo = b& LOMASK;                                          \
+<a name="l00146"></a>00146                                                                    \
+<a name="l00147"></a>00147     Word ahbl = ahi*blo;                                           \
+<a name="l00148"></a>00148     Word albh = alo*bhi;                                           \
+<a name="l00149"></a>00149                                                                    \
+<a name="l00150"></a>00150     Word ahbl_albh = ((ahbl&LOMASK) + (albh&LOMASK));                   \
+<a name="l00151"></a>00151     Word hi = ahi*bhi + (ahbl>>WHALF) +  (albh>>WHALF);                 \
+<a name="l00152"></a>00152     hi += ahbl_albh >> WHALF; <span class="comment">/* carry from the sum of lo(ahbl) + lo(albh) ) */</span> \
+<a name="l00153"></a>00153     <span class="comment">/* carry from the sum with alo*blo */</span>                               \
+<a name="l00154"></a>00154     hi += ((lo >> WHALF) < (ahbl_albh&LOMASK));                         \
+<a name="l00155"></a>00155     *hip = hi;                                                          \
+<a name="l00156"></a>00156     return lo;                                                          \
+<a name="l00157"></a>00157 }
+<a name="l00158"></a>00158 
+<a name="l00159"></a>00159 <span class="comment">/*</span>
+<a name="l00160"></a>00160 <span class="comment">// A template for mulhilo on a platform that can't do it</span>
+<a name="l00161"></a>00161 <span class="comment">// We could put a C version here, but is it better to run *VERY*</span>
+<a name="l00162"></a>00162 <span class="comment">// slowly or to just stop and force the user to find another CBRNG?</span>
+<a name="l00163"></a>00163 <span class="comment">*/</span>
+<a name="l00164"></a>00164 <span class="preprocessor">#define _mulhilo_fail_tpl(W, Word)                                      \</span>
+<a name="l00165"></a>00165 <span class="preprocessor">R123_STATIC_INLINE Word mulhilo##W(Word a, Word b, Word *hip){               \</span>
+<a name="l00166"></a>00166 <span class="preprocessor">    R123_STATIC_ASSERT(0, "mulhilo" #W " is not implemented on this machine\n"); \</span>
+<a name="l00167"></a>00167 <span class="preprocessor">}</span>
+<a name="l00168"></a>00168 <span class="preprocessor"></span>
+<a name="l00169"></a>00169 <span class="comment">/*</span>
+<a name="l00170"></a>00170 <span class="comment">// N.B.  There's an MSVC intrinsic called _emul,</span>
+<a name="l00171"></a>00171 <span class="comment">// which *might* compile into better code than</span>
+<a name="l00172"></a>00172 <span class="comment">// _mulhilo_dword_tpl </span>
+<a name="l00173"></a>00173 <span class="comment">*/</span>
+<a name="l00174"></a>00174 <span class="preprocessor">#if R123_USE_MULHILO32_ASM</span>
+<a name="l00175"></a>00175 <span class="preprocessor"></span><span class="preprocessor">#ifdef __powerpc__</span>
+<a name="l00176"></a>00176 <span class="preprocessor"></span>_mulhilo_asm_tpl(32, uint32_t, <span class="stringliteral">"mulhwu"</span>)
+<a name="l00177"></a>00177 <span class="preprocessor">#else</span>
+<a name="l00178"></a>00178 <span class="preprocessor"></span>_mulhilo_asm_tpl(32, uint32_t, <span class="stringliteral">"mull"</span>)
+<a name="l00179"></a>00179 <span class="preprocessor">#endif </span><span class="comment">/* __powerpc__ */</span>
+<a name="l00180"></a>00180 <span class="preprocessor">#else</span>
+<a name="l00181"></a>00181 <span class="preprocessor"></span>_mulhilo_dword_tpl(32, uint32_t, uint64_t)
+<a name="l00182"></a>00182 <span class="preprocessor">#endif</span>
+<a name="l00183"></a>00183 <span class="preprocessor"></span>
+<a name="l00184"></a>00184 <span class="preprocessor">#if R123_USE_PHILOX_64BIT</span>
+<a name="l00185"></a>00185 <span class="preprocessor"></span><span class="preprocessor">#if R123_USE_MULHILO64_ASM</span>
+<a name="l00186"></a>00186 <span class="preprocessor"></span><span class="preprocessor">#ifdef __powerpc64__</span>
+<a name="l00187"></a>00187 <span class="preprocessor"></span>_mulhilo_asm_tpl(64, uint64_t, <span class="stringliteral">"mulhdu"</span>)
+<a name="l00188"></a>00188 <span class="preprocessor">#else</span>
+<a name="l00189"></a>00189 <span class="preprocessor"></span>_mulhilo_asm_tpl(64, uint64_t, <span class="stringliteral">"mulq"</span>)
+<a name="l00190"></a>00190 <span class="preprocessor">#endif </span><span class="comment">/* __powerpc64__ */</span>
+<a name="l00191"></a>00191 <span class="preprocessor">#elif R123_USE_MULHILO64_MSVC_INTRIN</span>
+<a name="l00192"></a>00192 <span class="preprocessor"></span>_mulhilo_msvc_intrin_tpl(64, uint64_t, _umul128)
+<a name="l00193"></a>00193 <span class="preprocessor">#elif R123_USE_MULHILO64_CUDA_INTRIN</span>
+<a name="l00194"></a>00194 <span class="preprocessor"></span>_mulhilo_cuda_intrin_tpl(64, uint64_t, __umul64hi)
+<a name="l00195"></a>00195 <span class="preprocessor">#elif R123_USE_MULHILO64_OPENCL_INTRIN</span>
+<a name="l00196"></a>00196 <span class="preprocessor"></span>_mulhilo_cuda_intrin_tpl(64, uint64_t, mul_hi)
+<a name="l00197"></a>00197 <span class="preprocessor">#elif R123_USE_MULHILO64_MULHI_INTRIN</span>
+<a name="l00198"></a>00198 <span class="preprocessor"></span>_mulhilo_cuda_intrin_tpl(64, uint64_t, R123_MULHILO64_MULHI_INTRIN)
+<a name="l00199"></a>00199 <span class="preprocessor">#elif R123_USE_GNU_UINT128</span>
+<a name="l00200"></a>00200 <span class="preprocessor"></span>_mulhilo_dword_tpl(64, uint64_t, __uint128_t)
+<a name="l00201"></a>00201 <span class="preprocessor">#elif R123_USE_MULHILO64_C99</span>
+<a name="l00202"></a>00202 <span class="preprocessor"></span>_mulhilo_c99_tpl(64, uint64_t)
+<a name="l00203"></a>00203 <span class="preprocessor">#else</span>
+<a name="l00204"></a>00204 <span class="preprocessor"></span>_mulhilo_fail_tpl(64, uint64_t)
+<a name="l00205"></a>00205 <span class="preprocessor">#endif</span>
+<a name="l00206"></a>00206 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00207"></a>00207 <span class="preprocessor"></span>
+<a name="l00208"></a>00208 <span class="comment">/*</span>
+<a name="l00209"></a>00209 <span class="comment">// The multipliers and Weyl constants are "hard coded".</span>
+<a name="l00210"></a>00210 <span class="comment">// To change them, you can #define them with different</span>
+<a name="l00211"></a>00211 <span class="comment">// values before #include-ing this file. </span>
+<a name="l00212"></a>00212 <span class="comment">// This isn't terribly elegant, but it works for C as</span>
+<a name="l00213"></a>00213 <span class="comment">// well as C++.  A nice C++-only solution would be to</span>
+<a name="l00214"></a>00214 <span class="comment">// use template parameters in the style of <random></span>
+<a name="l00215"></a>00215 <span class="comment">*/</span>
+<a name="l00216"></a>00216 <span class="preprocessor">#ifndef PHILOX_M2x64_0</span>
+<a name="l00217"></a>00217 <span class="preprocessor"></span><span class="preprocessor">#define PHILOX_M2x64_0 R123_64BIT(0xD2B74407B1CE6E93)</span>
+<a name="l00218"></a>00218 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00219"></a>00219 <span class="preprocessor"></span>
+<a name="l00220"></a>00220 <span class="preprocessor">#ifndef PHILOX_M4x64_0</span>
+<a name="l00221"></a>00221 <span class="preprocessor"></span><span class="preprocessor">#define PHILOX_M4x64_0 R123_64BIT(0xD2E7470EE14C6C93)</span>
+<a name="l00222"></a>00222 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00223"></a>00223 <span class="preprocessor"></span>
+<a name="l00224"></a>00224 <span class="preprocessor">#ifndef PHILOX_M4x64_1</span>
+<a name="l00225"></a>00225 <span class="preprocessor"></span><span class="preprocessor">#define PHILOX_M4x64_1 R123_64BIT(0xCA5A826395121157)</span>
+<a name="l00226"></a>00226 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00227"></a>00227 <span class="preprocessor"></span>
+<a name="l00228"></a>00228 <span class="preprocessor">#ifndef PHILOX_M2x32_0</span>
+<a name="l00229"></a>00229 <span class="preprocessor"></span><span class="preprocessor">#define PHILOX_M2x32_0 ((uint32_t)0xd256d193)</span>
+<a name="l00230"></a>00230 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00231"></a>00231 <span class="preprocessor"></span>
+<a name="l00232"></a>00232 <span class="preprocessor">#ifndef PHILOX_M4x32_0</span>
+<a name="l00233"></a>00233 <span class="preprocessor"></span><span class="preprocessor">#define PHILOX_M4x32_0 ((uint32_t)0xD2511F53)</span>
+<a name="l00234"></a>00234 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00235"></a>00235 <span class="preprocessor"></span><span class="preprocessor">#ifndef PHILOX_M4x32_1</span>
+<a name="l00236"></a>00236 <span class="preprocessor"></span><span class="preprocessor">#define PHILOX_M4x32_1 ((uint32_t)0xCD9E8D57)</span>
+<a name="l00237"></a>00237 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00238"></a>00238 <span class="preprocessor"></span>
+<a name="l00239"></a>00239 <span class="preprocessor">#ifndef PHILOX_W64_0</span>
+<a name="l00240"></a>00240 <span class="preprocessor"></span><span class="preprocessor">#define PHILOX_W64_0 R123_64BIT(0x9E3779B97F4A7C15)  </span><span class="comment">/* golden ratio */</span>
+<a name="l00241"></a>00241 <span class="preprocessor">#endif</span>
+<a name="l00242"></a>00242 <span class="preprocessor"></span><span class="preprocessor">#ifndef PHILOX_W64_1</span>
+<a name="l00243"></a>00243 <span class="preprocessor"></span><span class="preprocessor">#define PHILOX_W64_1 R123_64BIT(0xBB67AE8584CAA73B)  </span><span class="comment">/* sqrt(3)-1 */</span>
+<a name="l00244"></a>00244 <span class="preprocessor">#endif</span>
+<a name="l00245"></a>00245 <span class="preprocessor"></span>
+<a name="l00246"></a>00246 <span class="preprocessor">#ifndef PHILOX_W32_0</span>
+<a name="l00247"></a>00247 <span class="preprocessor"></span><span class="preprocessor">#define PHILOX_W32_0 ((uint32_t)0x9E3779B9)</span>
+<a name="l00248"></a>00248 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00249"></a>00249 <span class="preprocessor"></span><span class="preprocessor">#ifndef PHILOX_W32_1</span>
+<a name="l00250"></a>00250 <span class="preprocessor"></span><span class="preprocessor">#define PHILOX_W32_1 ((uint32_t)0xBB67AE85)</span>
+<a name="l00251"></a>00251 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00252"></a>00252 <span class="preprocessor"></span>
+<a name="l00253"></a>00253 <span class="preprocessor">#ifndef PHILOX2x32_DEFAULT_ROUNDS</span>
+<a name="l00254"></a>00254 <span class="preprocessor"></span><span class="preprocessor">#define PHILOX2x32_DEFAULT_ROUNDS 10</span>
+<a name="l00255"></a>00255 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00256"></a>00256 <span class="preprocessor"></span>
+<a name="l00257"></a>00257 <span class="preprocessor">#ifndef PHILOX2x64_DEFAULT_ROUNDS</span>
+<a name="l00258"></a>00258 <span class="preprocessor"></span><span class="preprocessor">#define PHILOX2x64_DEFAULT_ROUNDS 10</span>
+<a name="l00259"></a>00259 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00260"></a>00260 <span class="preprocessor"></span>
+<a name="l00261"></a>00261 <span class="preprocessor">#ifndef PHILOX4x32_DEFAULT_ROUNDS</span>
+<a name="l00262"></a>00262 <span class="preprocessor"></span><span class="preprocessor">#define PHILOX4x32_DEFAULT_ROUNDS 10</span>
+<a name="l00263"></a>00263 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00264"></a>00264 <span class="preprocessor"></span>
+<a name="l00265"></a>00265 <span class="preprocessor">#ifndef PHILOX4x64_DEFAULT_ROUNDS</span>
+<a name="l00266"></a>00266 <span class="preprocessor"></span><span class="preprocessor">#define PHILOX4x64_DEFAULT_ROUNDS 10</span>
+<a name="l00267"></a>00267 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00268"></a>00268 <span class="preprocessor"></span>
+<a name="l00269"></a>00269 <span class="comment">/* The ignored fourth argument allows us to instantiate the</span>
+<a name="l00270"></a>00270 <span class="comment">   same macro regardless of N. */</span>
+<a name="l00271"></a>00271 <span class="preprocessor">#define _philox2xWround_tpl(W, T)                                       \</span>
+<a name="l00272"></a>00272 <span class="preprocessor">R123_CUDA_DEVICE R123_STATIC_INLINE R123_FORCE_INLINE(struct r123array2x##W _philox2x##W##round(struct r123array2x##W ctr, struct r123array1x##W key)); \</span>
+<a name="l00273"></a>00273 <span class="preprocessor">R123_CUDA_DEVICE R123_STATIC_INLINE struct r123array2x##W _philox2x##W##round(struct r123array2x##W ctr, struct r123array1x##W key){ \</span>
+<a name="l00274"></a>00274 <span class="preprocessor">    T hi;                                                               \</span>
+<a name="l00275"></a>00275 <span class="preprocessor">    T lo = mulhilo##W(PHILOX_M2x##W##_0, ctr.v[0], &hi);                \</span>
+<a name="l00276"></a>00276 <span class="preprocessor">    struct r123array2x##W out = {{hi^key.v[0]^ctr.v[1], lo}};               \</span>
+<a name="l00277"></a>00277 <span class="preprocessor">    return out;                                                         \</span>
+<a name="l00278"></a>00278 <span class="preprocessor">}</span>
+<a name="l00279"></a>00279 <span class="preprocessor"></span><span class="preprocessor">#define _philox2xWbumpkey_tpl(W)                                        \</span>
+<a name="l00280"></a>00280 <span class="preprocessor">R123_CUDA_DEVICE R123_STATIC_INLINE struct r123array1x##W _philox2x##W##bumpkey( struct r123array1x##W key) { \</span>
+<a name="l00281"></a>00281 <span class="preprocessor">    key.v[0] += PHILOX_W##W##_0;                                        \</span>
+<a name="l00282"></a>00282 <span class="preprocessor">    return key;                                                         \</span>
+<a name="l00283"></a>00283 <span class="preprocessor">}</span>
+<a name="l00284"></a>00284 <span class="preprocessor"></span>
+<a name="l00285"></a>00285 <span class="preprocessor">#define _philox4xWround_tpl(W, T)                                       \</span>
+<a name="l00286"></a>00286 <span class="preprocessor">R123_CUDA_DEVICE R123_STATIC_INLINE R123_FORCE_INLINE(struct r123array4x##W _philox4x##W##round(struct r123array4x##W ctr, struct r123array2x##W key)); \</span>
+<a name="l00287"></a>00287 <span class="preprocessor">R123_CUDA_DEVICE R123_STATIC_INLINE struct r123array4x##W _philox4x##W##round(struct r123array4x##W ctr, struct r123array2x##W key){ \</span>
+<a name="l00288"></a>00288 <span class="preprocessor">    T hi0;                                                              \</span>
+<a name="l00289"></a>00289 <span class="preprocessor">    T hi1;                                                              \</span>
+<a name="l00290"></a>00290 <span class="preprocessor">    T lo0 = mulhilo##W(PHILOX_M4x##W##_0, ctr.v[0], &hi0);              \</span>
+<a name="l00291"></a>00291 <span class="preprocessor">    T lo1 = mulhilo##W(PHILOX_M4x##W##_1, ctr.v[2], &hi1);              \</span>
+<a name="l00292"></a>00292 <span class="preprocessor">    struct r123array4x##W out = {{hi1^ctr.v[1]^key.v[0], lo1,               \</span>
+<a name="l00293"></a>00293 <span class="preprocessor">                              hi0^ctr.v[3]^key.v[1], lo0}};             \</span>
+<a name="l00294"></a>00294 <span class="preprocessor">    return out;                                                         \</span>
+<a name="l00295"></a>00295 <span class="preprocessor">}</span>
+<a name="l00296"></a>00296 <span class="preprocessor"></span>
+<a name="l00297"></a>00297 <span class="preprocessor">#define _philox4xWbumpkey_tpl(W)                                        \</span>
+<a name="l00298"></a>00298 <span class="preprocessor">R123_CUDA_DEVICE R123_STATIC_INLINE struct r123array2x##W _philox4x##W##bumpkey( struct r123array2x##W key) { \</span>
+<a name="l00299"></a>00299 <span class="preprocessor">    key.v[0] += PHILOX_W##W##_0;                                        \</span>
+<a name="l00300"></a>00300 <span class="preprocessor">    key.v[1] += PHILOX_W##W##_1;                                        \</span>
+<a name="l00301"></a>00301 <span class="preprocessor">    return key;                                                         \</span>
+<a name="l00302"></a>00302 <span class="preprocessor">}</span>
+<a name="l00303"></a>00303 <span class="preprocessor"></span>
+<a name="l00304"></a>00304 <span class="preprocessor">#define _philoxNxW_tpl(N, Nhalf, W, T)                         \</span>
+<a name="l00305"></a>00305 <span class="preprocessor">                                       \</span>
+<a name="l00306"></a>00306 <span class="preprocessor">enum r123_enum_philox##N##x##W { philox##N##x##W##_rounds = PHILOX##N##x##W##_DEFAULT_ROUNDS }; \</span>
+<a name="l00307"></a>00307 <span class="preprocessor">typedef struct r123array##N##x##W philox##N##x##W##_ctr_t;                  \</span>
+<a name="l00308"></a>00308 <span class="preprocessor">typedef struct r123array##Nhalf##x##W philox##N##x##W##_key_t;              \</span>
+<a name="l00309"></a>00309 <span class="preprocessor">typedef struct r123array##Nhalf##x##W philox##N##x##W##_ukey_t;              \</span>
+<a name="l00310"></a>00310 <span class="preprocessor">R123_CUDA_DEVICE R123_STATIC_INLINE philox##N##x##W##_key_t philox##N##x##W##keyinit(philox##N##x##W##_ukey_t uk) { return uk; } \</span>
+<a name="l00311"></a>00311 <span class="preprocessor">R123_CUDA_DEVICE R123_STATIC_INLINE R123_FORCE_INLINE(philox##N##x##W##_ctr_t philox##N##x##W##_R(unsigned int R, philox##N##x##W##_ctr_t ctr, philox##N##x##W##_key_t key)); \</span>
+<a name="l00312"></a>00312 <span class="preprocessor">R123_CUDA_DEVICE R123_STATIC_INLINE philox##N##x##W##_ctr_t philox##N##x##W##_R(unsigned int R, philox##N##x##W##_ctr_t ctr, philox##N##x##W##_key_t key) { \</span>
+<a name="l00313"></a>00313 <span class="preprocessor">    R123_ASSERT(R<=16);                                                 \</span>
+<a name="l00314"></a>00314 <span class="preprocessor">    if(R>0){                                       ctr = _philox##N##x##W##round(ctr, key); } \</span>
+<a name="l00315"></a>00315 <span class="preprocessor">    if(R>1){ key = _philox##N##x##W##bumpkey(key); ctr = _philox##N##x##W##round(ctr, key); } \</span>
+<a name="l00316"></a>00316 <span class="preprocessor">    if(R>2){ key = _philox##N##x##W##bumpkey(key); ctr = _philox##N##x##W##round(ctr, key); } \</span>
+<a name="l00317"></a>00317 <span class="preprocessor">    if(R>3){ key = _philox##N##x##W##bumpkey(key); ctr = _philox##N##x##W##round(ctr, key); } \</span>
+<a name="l00318"></a>00318 <span class="preprocessor">    if(R>4){ key = _philox##N##x##W##bumpkey(key); ctr = _philox##N##x##W##round(ctr, key); } \</span>
+<a name="l00319"></a>00319 <span class="preprocessor">    if(R>5){ key = _philox##N##x##W##bumpkey(key); ctr = _philox##N##x##W##round(ctr, key); } \</span>
+<a name="l00320"></a>00320 <span class="preprocessor">    if(R>6){ key = _philox##N##x##W##bumpkey(key); ctr = _philox##N##x##W##round(ctr, key); } \</span>
+<a name="l00321"></a>00321 <span class="preprocessor">    if(R>7){ key = _philox##N##x##W##bumpkey(key); ctr = _philox##N##x##W##round(ctr, key); } \</span>
+<a name="l00322"></a>00322 <span class="preprocessor">    if(R>8){ key = _philox##N##x##W##bumpkey(key); ctr = _philox##N##x##W##round(ctr, key); } \</span>
+<a name="l00323"></a>00323 <span class="preprocessor">    if(R>9){ key = _philox##N##x##W##bumpkey(key); ctr = _philox##N##x##W##round(ctr, key); } \</span>
+<a name="l00324"></a>00324 <span class="preprocessor">    if(R>10){ key = _philox##N##x##W##bumpkey(key); ctr = _philox##N##x##W##round(ctr, key); } \</span>
+<a name="l00325"></a>00325 <span class="preprocessor">    if(R>11){ key = _philox##N##x##W##bumpkey(key); ctr = _philox##N##x##W##round(ctr, key); } \</span>
+<a name="l00326"></a>00326 <span class="preprocessor">    if(R>12){ key = _philox##N##x##W##bumpkey(key); ctr = _philox##N##x##W##round(ctr, key); } \</span>
+<a name="l00327"></a>00327 <span class="preprocessor">    if(R>13){ key = _philox##N##x##W##bumpkey(key); ctr = _philox##N##x##W##round(ctr, key); } \</span>
+<a name="l00328"></a>00328 <span class="preprocessor">    if(R>14){ key = _philox##N##x##W##bumpkey(key); ctr = _philox##N##x##W##round(ctr, key); } \</span>
+<a name="l00329"></a>00329 <span class="preprocessor">    if(R>15){ key = _philox##N##x##W##bumpkey(key); ctr = _philox##N##x##W##round(ctr, key); } \</span>
+<a name="l00330"></a>00330 <span class="preprocessor">    return ctr;                                                         \</span>
+<a name="l00331"></a>00331 <span class="preprocessor">}</span>
+<a name="l00332"></a>00332 <span class="preprocessor"></span>         
+<a name="l00333"></a>00333 _philox2xWbumpkey_tpl(32)
+<a name="l00334"></a>00334 _philox4xWbumpkey_tpl(32)
+<a name="l00335"></a>00335 _philox2xWround_tpl(32, uint32_t) <span class="comment">/* philo2x32round */</span>
+<a name="l00336"></a>00336 _philox4xWround_tpl(32, uint32_t)            <span class="comment">/* philo4x32round */</span>
+<a name="l00338"></a><a class="code" href="group__PhiloxNxW.html#gae7443e1a57429154124943b6a7c0bd08">00338</a> _philoxNxW_tpl(2, 1, 32, uint32_t)    <span class="comment">/* philox2x32bijection */</span>
+<a name="l00339"></a><a class="code" href="group__PhiloxNxW.html#ga67fd1bf4ed858d01663a7d6b219b97a2">00339</a> _philoxNxW_tpl(4, 2, 32, uint32_t)    <span class="comment">/* philox4x32bijection */</span>
+<a name="l00340"></a>00340 <span class="preprocessor">#if R123_USE_PHILOX_64BIT</span>
+<a name="l00341"></a>00341 <span class="preprocessor"></span>
+<a name="l00342"></a>00342 _philox2xWbumpkey_tpl(64)
+<a name="l00343"></a>00343 _philox4xWbumpkey_tpl(64)
+<a name="l00344"></a>00344 _philox2xWround_tpl(64, uint64_t) <span class="comment">/* philo2x64round */</span>
+<a name="l00345"></a>00345 _philox4xWround_tpl(64, uint64_t) <span class="comment">/* philo4x64round */</span>
+<a name="l00347"></a><a class="code" href="group__PhiloxNxW.html#gaca9df5cdadde758a63952daa97ddff91">00347</a> _philoxNxW_tpl(2, 1, 64, uint64_t)    <span class="comment">/* philox2x64bijection */</span>
+<a name="l00348"></a><a class="code" href="group__PhiloxNxW.html#gaf603860d055cee96c75f6986641e9cad">00348</a> _philoxNxW_tpl(4, 2, 64, uint64_t)    <span class="comment">/* philox4x64bijection */</span>
+<a name="l00349"></a>00349 <span class="preprocessor">#endif </span><span class="comment">/* R123_USE_PHILOX_64BIT */</span>
+<a name="l00350"></a>00350 
+<a name="l00351"></a><a class="code" href="philox_8h.html#ab2496424917f063a4990f01943a07fe0">00351</a> <span class="preprocessor">#define philox2x32(c,k) philox2x32_R(philox2x32_rounds, c, k)</span>
+<a name="l00352"></a><a class="code" href="philox_8h.html#a432a3df828dd51acd0b7ec2fee1d4d7e">00352</a> <span class="preprocessor"></span><span class="preprocessor">#define philox4x32(c,k) philox4x32_R(philox4x32_rounds, c, k)</span>
+<a name="l00353"></a>00353 <span class="preprocessor"></span><span class="preprocessor">#if R123_USE_PHILOX_64BIT</span>
+<a name="l00354"></a><a class="code" href="philox_8h.html#ae6b57a71e4efa369cc19416fc088b5a5">00354</a> <span class="preprocessor"></span><span class="preprocessor">#define philox2x64(c,k) philox2x64_R(philox2x64_rounds, c, k)</span>
+<a name="l00355"></a><a class="code" href="philox_8h.html#a62fb1b4d9775396303ebb2a801fea8e6">00355</a> <span class="preprocessor"></span><span class="preprocessor">#define philox4x64(c,k) philox4x64_R(philox4x64_rounds, c, k)</span>
+<a name="l00356"></a>00356 <span class="preprocessor"></span><span class="preprocessor">#endif </span><span class="comment">/* R123_USE_PHILOX_64BIT */</span>
+<a name="l00357"></a>00357 
+<a name="l00358"></a>00358 <span class="preprocessor">#ifdef __cplusplus</span>
+<a name="l00359"></a>00359 <span class="preprocessor"></span><span class="preprocessor">#include <stdexcept></span>
+<a name="l00360"></a>00360 
+<a name="l00363"></a>00363 <span class="preprocessor">#define _PhiloxNxW_base_tpl(CType, KType, N, W)                         \</span>
+<a name="l00364"></a>00364 <span class="preprocessor">namespace r123{                                                          \</span>
+<a name="l00365"></a>00365 <span class="preprocessor">template<unsigned int ROUNDS>                                             \</span>
+<a name="l00366"></a>00366 <span class="preprocessor">struct Philox##N##x##W##_R{                                             \</span>
+<a name="l00367"></a>00367 <span class="preprocessor">    typedef CType ctr_type;                                         \</span>
+<a name="l00368"></a>00368 <span class="preprocessor">    typedef KType key_type;                                             \</span>
+<a name="l00369"></a>00369 <span class="preprocessor">    typedef KType ukey_type;                                         \</span>
+<a name="l00370"></a>00370 <span class="preprocessor">    static const unsigned int rounds=ROUNDS;                                 \</span>
+<a name="l00371"></a>00371 <span class="preprocessor">    inline R123_CUDA_DEVICE R123_FORCE_INLINE(ctr_type operator()(ctr_type ctr, key_type key) const){ \</span>
+<a name="l00372"></a>00372 <span class="preprocessor">        R123_STATIC_ASSERT(ROUNDS<=16, "philox is only unrolled up to 16 rounds\n"); \</span>
+<a name="l00373"></a>00373 <span class="preprocessor">        return philox##N##x##W##_R(ROUNDS, ctr, key);                       \</span>
+<a name="l00374"></a>00374 <span class="preprocessor">    }                                                                   \</span>
+<a name="l00375"></a>00375 <span class="preprocessor">};                                                                      \</span>
+<a name="l00376"></a>00376 <span class="preprocessor">typedef Philox##N##x##W##_R<philox##N##x##W##_rounds> Philox##N##x##W; \</span>
+<a name="l00377"></a>00377 <span class="preprocessor"> } // namespace r123</span>
+<a name="l00378"></a>00378 <span class="preprocessor"></span>
+<a name="l00380"></a><a class="code" href="group__PhiloxNxW.html#ga81659a3ee5a1ca9e2e85c5d725a1ea4f">00380</a> _PhiloxNxW_base_tpl(<a class="code" href="structr123array2x32.html">r123array2x32</a>, <a class="code" href="structr123array1x32.html">r123array1x32</a>, 2, 32) <span class="comment">// Philox2x32_R<R></span>
+<a name="l00381"></a><a class="code" href="group__PhiloxNxW.html#gaafd54060af05012db410034e3c0ecdc4">00381</a> _PhiloxNxW_base_tpl(<a class="code" href="structr123array4x32.html">r123array4x32</a>, <a class="code" href="structr123array2x32.html">r123array2x32</a>, 4, 32) <span class="comment">// Philox4x32_R<R></span>
+<a name="l00382"></a>00382 <span class="preprocessor">#if R123_USE_PHILOX_64BIT</span>
+<a name="l00383"></a><a class="code" href="group__PhiloxNxW.html#ga616a669079ac25119353416c14d46426">00383</a> <span class="preprocessor"></span>_PhiloxNxW_base_tpl(<a class="code" href="structr123array2x64.html">r123array2x64</a>, <a class="code" href="structr123array1x64.html">r123array1x64</a>, 2, 64) <span class="comment">// Philox2x64_R<R></span>
+<a name="l00384"></a><a class="code" href="group__PhiloxNxW.html#ga7776f4d481b7c0ac00db70272a1c77f0">00384</a> _PhiloxNxW_base_tpl(<a class="code" href="structr123array4x64.html">r123array4x64</a>, <a class="code" href="structr123array2x64.html">r123array2x64</a>, 4, 64) <span class="comment">// Philox4x64_R<R></span>
+<a name="l00385"></a>00385 <span class="preprocessor">#endif</span>
+<a name="l00386"></a>00386 <span class="preprocessor"></span>
+<a name="l00387"></a>00387 <span class="comment">/* The _tpl macros don't quite work to do string-pasting inside comments.</span>
+<a name="l00388"></a>00388 <span class="comment">   so we just write out the boilerplate documentation four times... */</span>
+<a name="l00389"></a>00389 
+<a name="l00484"></a>00484 <span class="preprocessor">#endif </span><span class="comment">/* __cplusplus */</span>
+<a name="l00485"></a>00485 
+<a name="l00486"></a>00486 <span class="preprocessor">#endif </span><span class="comment">/* _philox_dot_h_ */</span>
+</pre></div></div>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/porting.html b/docs/html/porting.html
new file mode 100644
index 0000000..0572808
--- /dev/null
+++ b/docs/html/porting.html
@@ -0,0 +1,165 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Preprocessor symbols for porting Random123 to different platforms.</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li class="current"><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<h1>Preprocessor symbols for porting Random123 to different platforms. </h1>  </div>
+</div>
+<div class="contents">
+<p>The Random123 library is portable across C, C++, CUDA, OpenCL environments, and multiple operating systems (Linux, Windows 7, Mac OS X, FreeBSD, Solaris). This level of portability requires the abstraction of some features and idioms that are either not standardized (e.g., asm statments), or for which different vendors have their own standards (e.g., SSE intrinsics) or for which vendors simply refuse to conform to well-established standards (e.g., <inttypes.h>).</p>
+<p><a class="el" href="compilerfeatures_8h.html">Random123/features/compilerfeatures.h</a> conditionally includes a compiler-or-OS-specific Random123/featires/XXXfeatures.h file which defines appropriate values for the preprocessor symbols which can be used with a specific compiler or OS. Those symbols will then be used by other header files and source files in the Random123 library (and may be used by applications) to control what actually gets presented to the compiler.</p>
+<p>Most of the symbols are boolean valued. In general, they will <b>always</b> be defined with value either 1 or 0, so do <b>NOT</b> use #ifdef. Use #if R123_USE_SOMETHING instead.</p>
+<p>Library users can override any value by defining the pp-symbol with a compiler option, e.g.,</p>
+<p>cc -DR123_USE_MULHILO64_C99</p>
+<p>will use a strictly c99 version of the full-width 64x64->128-bit multiplication function, even if it would be disabled by default.</p>
+<p>All boolean-valued pre-processor symbols in <a class="el" href="compilerfeatures_8h.html">Random123/features/compilerfeatures.h</a> start with the prefix R123_USE_ </p>
+<div class="fragment"><pre class="fragment">
+         AES_NI
+         AES_OPENSSL
+         SSE4_2
+         SSE4_1
+         SSE
+
+         STD_RANDOM
+
+         GNU_UINT128
+         ASM_GNU
+         ASM_MSASM
+
+         CPUID_MSVC
+
+         CXX11_RANDOM
+         CXX11_TYPE_TRAITS
+         CXX11_STATIC_ASSERT
+         CXX11_CONSTEXPR
+         CXX11_UNRESTRICTED_UNIONS
+         CXX11_EXPLICIT_CONVERSIONS
+         CXX11_LONG_LONG
+         CXX11 
+   
+         X86INTRIN_H
+         IA32INTRIN_H
+         XMMINTRIN_H
+         EMMINTRIN_H
+         SMMINTRIN_H
+         WMMINTRIN_H
+         INTRIN_H
+
+         MULHILO32_ASM
+         MULHILO64_ASM
+         MULHILO64_MSVC_INTRIN
+         MULHILO64_CUDA_INTRIN
+         MULHILO64_OPENCL_INTRIN
+         MULHILO64_C99
+
+         U01_DOUBLE
+	 
+</pre></div><p> Most have obvious meanings. Some non-obvious ones:</p>
+<p>AES_NI and AES_OPENSSL are not mutually exclusive. You can have one, both or neither.</p>
+<p>GNU_UINT128 says that it's safe to use __uint128_t, but it does not require its use. In particular, it should be used in mulhilo<uint64_t> only if MULHILO64_ASM is unset.</p>
+<p>If the XXXINTRIN_H macros are true, then one should </p>
+<div class="fragment"><pre class="fragment"><span class="preprocessor">#include <xxxintrin.h></span>
+</pre></div><p> to gain accesss to compiler intrinsics.</p>
+<p>The CXX11_SOME_FEATURE macros allow the code to use specific features of the C++11 language and library. The catchall In the absence of a specific CXX11_SOME_FEATURE, the feature is controlled by the catch-all R123_USE_CXX11 macro.</p>
+<p>U01_DOUBLE defaults on, and can be turned off (set to 0) if one does not want the utility functions that convert to double (i.e. u01_*_53()), e.g. on OpenCL without the cl_khr_fp64 extension.</p>
+<p>There are a number of invariants that are always true. Application code may choose to rely on these:</p>
+<ul>
+<li>
+ASM_GNU and ASM_MASM are mutually exclusive </li>
+<li>
+The "higher" SSE values imply the lower ones. </li>
+</ul>
+<p>There are also non-boolean valued symbols:</p>
+<ul>
+<li>
+<p class="startli">R123_STATIC_INLINE - According to both C99 and GNU99, the 'static inline' declaration allows the compiler to not emit code if the function is not used. Note that the semantics of 'inline', 'static' and 'extern' in gcc have changed over time and are subject to modification by command line options, e.g., -std=gnu89, -fgnu-inline. Nevertheless, it appears that the meaning of 'static inline' has not changed over time and (with a little luck) the use of 'static inline' here [...]
+<p class="endli"></p>
+</li>
+<li>
+<p class="startli">R123_FORCE_INLINE(decl) - which expands to 'decl', adorned with the compiler-specific embellishments to strongly encourage that the declared function be inlined. If there is no such compiler-specific magic, it should expand to decl, unadorned.</p>
+<p class="endli"></p>
+</li>
+<li>
+<p class="startli">R123_CUDA_DEVICE - which expands to __device__ (or something else with sufficiently similar semantics) when CUDA is in use, and expands to nothing in other cases.</p>
+<p class="endli"></p>
+</li>
+<li>
+<p class="startli">R123_ASSERT(x) - which expands to assert(x), or maybe to nothing at all if we're in an environment so feature-poor that you can't even call assert (I'm looking at you, CUDA and OpenCL), or even include assert.h safely (OpenCL).</p>
+<p class="endli"></p>
+</li>
+<li>
+<p class="startli">R123_STATIC_ASSERT(expr,msg) - which expands to static_assert(expr,msg), or to an expression that will raise a compile-time exception if expr is not true.</p>
+<p class="endli"></p>
+</li>
+<li>
+<p class="startli">R123_ULONG_LONG - which expands to a declaration of the longest available unsigned integer.</p>
+<p class="endli"></p>
+</li>
+<li>
+<p class="startli">R123_64BIT(x) - expands to something equivalent to UINT64_C(x) from <stdint.h>, even in environments where <stdint.h> is not available, e.g., MSVC and OpenCL.</p>
+<p class="endli"></p>
+</li>
+<li>
+R123_BUILTIN_EXPECT(expr,likely_value) - expands to something with the semantics of gcc's __builtin_expect(expr,likely_value). If the environment has nothing like __builtin_expect, it should expand to just expr. </li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/releasenotes_8dox.html b/docs/html/releasenotes_8dox.html
new file mode 100644
index 0000000..e5945b1
--- /dev/null
+++ b/docs/html/releasenotes_8dox.html
@@ -0,0 +1,77 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: docs/releasenotes.dox File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<h1>docs/releasenotes.dox File Reference</h1>  </div>
+</div>
+<div class="contents">
+<table class="memberdecls">
+</table>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/search/all_5f.html b/docs/html/search/all_5f.html
new file mode 100644
index 0000000..1b4ad5a
--- /dev/null
+++ b/docs/html/search/all_5f.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR__5fmax">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="javascript:searchResults.Toggle('SR__5fmax')">_Max</a>
+  <div class="SRChildren">
+    <a id="Item0_c0" onkeydown="return searchResults.NavChild(event,0,0)" onkeypress="return searchResults.NavChild(event,0,0)" onkeyup="return searchResults.NavChild(event,0,0)" class="SRScope" href="../classr123_1_1MicroURNG.html#a4faecd7ab54c7678ee66c413bb984bf0" target="_parent">r123::MicroURNG::_Max()</a>
+    <a id="Item0_c1" onkeydown="return searchResults.NavChild(event,0,1)" onkeypress="return searchResults.NavChild(event,0,1)" onkeyup="return searchResults.NavChild(event,0,1)" class="SRScope" href="../structr123_1_1Engine.html#ae549f81e966b0414bcaf0f24b566ebd8" target="_parent">r123::Engine::_Max()</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fmin">
+ <div class="SREntry">
+  <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="javascript:searchResults.Toggle('SR__5fmin')">_Min</a>
+  <div class="SRChildren">
+    <a id="Item1_c0" onkeydown="return searchResults.NavChild(event,1,0)" onkeypress="return searchResults.NavChild(event,1,0)" onkeyup="return searchResults.NavChild(event,1,0)" class="SRScope" href="../classr123_1_1MicroURNG.html#a1f2787f136a8a807d14eab8cb1ca8c14" target="_parent">r123::MicroURNG::_Min()</a>
+    <a id="Item1_c1" onkeydown="return searchResults.NavChild(event,1,1)" onkeypress="return searchResults.NavChild(event,1,1)" onkeyup="return searchResults.NavChild(event,1,1)" class="SRScope" href="../structr123_1_1Engine.html#aa73e4d27847915f1438fd37b30777111" target="_parent">r123::Engine::_Min()</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fmm_5fextract_5flo64">
+ <div class="SREntry">
+  <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../sse_8h.html#adac6aaf79c4428abcd30bf583eeb5450" target="_parent">_mm_extract_lo64</a>
+  <span class="SRScope">sse.h</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/all_61.html b/docs/html/search/all_61.html
new file mode 100644
index 0000000..029fc8f
--- /dev/null
+++ b/docs/html/search/all_61.html
@@ -0,0 +1,344 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_aes_2eh">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../aes_8h.html" target="_parent">aes.h</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_aesni1xm128i">
+ <div class="SREntry">
+  <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../structr123_1_1AESNI1xm128i.html" target="_parent">AESNI1xm128i</a>
+  <span class="SRScope">r123</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_aesni1xm128i">
+ <div class="SREntry">
+  <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../group__AESNI.html#ga3ba5daca2d4d076ece24900084e71311" target="_parent">aesni1xm128i</a>
+  <span class="SRScope">aes.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_aesni1xm128i_5fctr_5ft">
+ <div class="SREntry">
+  <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="../group__AESNI.html#gaab0f809a22e01e6cb6135f6af73bb532" target="_parent">aesni1xm128i_ctr_t</a>
+  <span class="SRScope">aes.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_aesni1xm128i_5fkey_5ft">
+ <div class="SREntry">
+  <a id="Item4" onkeydown="return searchResults.Nav(event,4)" onkeypress="return searchResults.Nav(event,4)" onkeyup="return searchResults.Nav(event,4)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_aesni1xm128i_5fkey_5ft')">aesni1xm128i_key_t</a>
+  <div class="SRChildren">
+    <a id="Item4_c0" onkeydown="return searchResults.NavChild(event,4,0)" onkeypress="return searchResults.NavChild(event,4,0)" onkeyup="return searchResults.NavChild(event,4,0)" class="SRScope" href="../structaesni1xm128i__key__t.html" target="_parent">aesni1xm128i_key_t</a>
+    <a id="Item4_c1" onkeydown="return searchResults.NavChild(event,4,1)" onkeypress="return searchResults.NavChild(event,4,1)" onkeyup="return searchResults.NavChild(event,4,1)" class="SRScope" href="../structaesni1xm128i__key__t.html#af1002e5b771616db8f12c793fc994c41" target="_parent">aesni1xm128i_key_t::aesni1xm128i_key_t()</a>
+    <a id="Item4_c2" onkeydown="return searchResults.NavChild(event,4,2)" onkeypress="return searchResults.NavChild(event,4,2)" onkeyup="return searchResults.NavChild(event,4,2)" class="SRScope" href="../structaesni1xm128i__key__t.html#a2076072522f671a8596a831cc93dc616" target="_parent">aesni1xm128i_key_t::aesni1xm128i_key_t(const aesni1xm128i_ukey_t &uk)</a>
+    <a id="Item4_c3" onkeydown="return searchResults.NavChild(event,4,3)" onkeypress="return searchResults.NavChild(event,4,3)" onkeyup="return searchResults.NavChild(event,4,3)" class="SRScope" href="../structaesni1xm128i__key__t.html#a43d53407125d4cec0d6a14586c0357e3" target="_parent">aesni1xm128i_key_t::aesni1xm128i_key_t(const aesni4x32_ukey_t &uk)</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_aesni1xm128i_5fr">
+ <div class="SREntry">
+  <a id="Item5" onkeydown="return searchResults.Nav(event,5)" onkeypress="return searchResults.Nav(event,5)" onkeyup="return searchResults.Nav(event,5)" class="SRSymbol" href="../structr123_1_1AESNI1xm128i__R.html" target="_parent">AESNI1xm128i_R</a>
+  <span class="SRScope">r123</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_aesni1xm128i_5fr">
+ <div class="SREntry">
+  <a id="Item6" onkeydown="return searchResults.Nav(event,6)" onkeypress="return searchResults.Nav(event,6)" onkeyup="return searchResults.Nav(event,6)" class="SRSymbol" href="../group__AESNI.html#ga89d9042c08ae5eef4c98bfb9609ebd34" target="_parent">aesni1xm128i_R</a>
+  <span class="SRScope">aes.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_aesni1xm128i_5frounds">
+ <div class="SREntry">
+  <a id="Item7" onkeydown="return searchResults.Nav(event,7)" onkeypress="return searchResults.Nav(event,7)" onkeyup="return searchResults.Nav(event,7)" class="SRSymbol" href="../group__AESNI.html#gga2814629101926e23001d564630ba7b86a2c404c51fea10eeacb032081dbab2408" target="_parent">aesni1xm128i_rounds</a>
+  <span class="SRScope">aes.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_aesni1xm128i_5fukey_5ft">
+ <div class="SREntry">
+  <a id="Item8" onkeydown="return searchResults.Nav(event,8)" onkeypress="return searchResults.Nav(event,8)" onkeyup="return searchResults.Nav(event,8)" class="SRSymbol" href="../group__AESNI.html#gaf4fa221e6387d0454e2e6399245bdead" target="_parent">aesni1xm128i_ukey_t</a>
+  <span class="SRScope">aes.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_aesni4x32">
+ <div class="SREntry">
+  <a id="Item9" onkeydown="return searchResults.Nav(event,9)" onkeypress="return searchResults.Nav(event,9)" onkeyup="return searchResults.Nav(event,9)" class="SRSymbol" href="../structr123_1_1AESNI4x32.html" target="_parent">AESNI4x32</a>
+  <span class="SRScope">r123</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_aesni4x32">
+ <div class="SREntry">
+  <a id="Item10" onkeydown="return searchResults.Nav(event,10)" onkeypress="return searchResults.Nav(event,10)" onkeyup="return searchResults.Nav(event,10)" class="SRSymbol" href="../group__AESNI.html#gae3950c524818b49d1cdfad481880a33a" target="_parent">aesni4x32</a>
+  <span class="SRScope">aes.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_aesni4x32_5fctr_5ft">
+ <div class="SREntry">
+  <a id="Item11" onkeydown="return searchResults.Nav(event,11)" onkeypress="return searchResults.Nav(event,11)" onkeyup="return searchResults.Nav(event,11)" class="SRSymbol" href="../group__AESNI.html#gae7459b3f4ee0e424cb4f13b4d5efc1fe" target="_parent">aesni4x32_ctr_t</a>
+  <span class="SRScope">aes.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_aesni4x32_5fkey_5ft">
+ <div class="SREntry">
+  <a id="Item12" onkeydown="return searchResults.Nav(event,12)" onkeypress="return searchResults.Nav(event,12)" onkeyup="return searchResults.Nav(event,12)" class="SRSymbol" href="../group__AESNI.html#ga6d88accdcfa339b48e14021a572e269b" target="_parent">aesni4x32_key_t</a>
+  <span class="SRScope">aes.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_aesni4x32_5fr">
+ <div class="SREntry">
+  <a id="Item13" onkeydown="return searchResults.Nav(event,13)" onkeypress="return searchResults.Nav(event,13)" onkeyup="return searchResults.Nav(event,13)" class="SRSymbol" href="../structr123_1_1AESNI4x32__R.html" target="_parent">AESNI4x32_R</a>
+  <span class="SRScope">r123</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_aesni4x32_5fr">
+ <div class="SREntry">
+  <a id="Item14" onkeydown="return searchResults.Nav(event,14)" onkeypress="return searchResults.Nav(event,14)" onkeyup="return searchResults.Nav(event,14)" class="SRSymbol" href="../group__AESNI.html#gae28b030e9786a6f36a47df8f211a750b" target="_parent">aesni4x32_R</a>
+  <span class="SRScope">aes.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_aesni4x32_5frounds">
+ <div class="SREntry">
+  <a id="Item15" onkeydown="return searchResults.Nav(event,15)" onkeypress="return searchResults.Nav(event,15)" onkeyup="return searchResults.Nav(event,15)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_aesni4x32_5frounds')">aesni4x32_rounds</a>
+  <div class="SRChildren">
+    <a id="Item15_c0" onkeydown="return searchResults.NavChild(event,15,0)" onkeypress="return searchResults.NavChild(event,15,0)" onkeyup="return searchResults.NavChild(event,15,0)" class="SRScope" href="../aes_8h.html#a0e4c28ad2773dac7eb59004947c9e02b" target="_parent">aesni4x32_rounds(): aes.h</a>
+    <a id="Item15_c1" onkeydown="return searchResults.NavChild(event,15,1)" onkeypress="return searchResults.NavChild(event,15,1)" onkeyup="return searchResults.NavChild(event,15,1)" class="SRScope" href="../group__AESNI.html#gga1557a9d6e95543a3c4ca9082a4c14b0dad65178990d928071f958bf2413ebdb4b" target="_parent">aesni4x32_rounds(): aes.h</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_aesni4x32_5fukey_5ft">
+ <div class="SREntry">
+  <a id="Item16" onkeydown="return searchResults.Nav(event,16)" onkeypress="return searchResults.Nav(event,16)" onkeyup="return searchResults.Nav(event,16)" class="SRSymbol" href="../group__AESNI.html#gac2c3248ec3b03591d442cf634fb51af5" target="_parent">aesni4x32_ukey_t</a>
+  <span class="SRScope">aes.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_aesni4x32keyinit">
+ <div class="SREntry">
+  <a id="Item17" onkeydown="return searchResults.Nav(event,17)" onkeypress="return searchResults.Nav(event,17)" onkeyup="return searchResults.Nav(event,17)" class="SRSymbol" href="../group__AESNI.html#ga2aa21ba4a3d3850faa96e7834114d8e1" target="_parent">aesni4x32keyinit</a>
+  <span class="SRScope">aes.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_array_2eh">
+ <div class="SREntry">
+  <a id="Item18" onkeydown="return searchResults.Nav(event,18)" onkeypress="return searchResults.Nav(event,18)" onkeyup="return searchResults.Nav(event,18)" class="SRSymbol" href="../array_8h.html" target="_parent">array.h</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_array16x8">
+ <div class="SREntry">
+  <a id="Item19" onkeydown="return searchResults.Nav(event,19)" onkeypress="return searchResults.Nav(event,19)" onkeyup="return searchResults.Nav(event,19)" class="SRSymbol" href="../namespacer123.html#ac3148aed79e81051d40e9b29a8914cf4" target="_parent">Array16x8</a>
+  <span class="SRScope">r123</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_array1x32">
+ <div class="SREntry">
+  <a id="Item20" onkeydown="return searchResults.Nav(event,20)" onkeypress="return searchResults.Nav(event,20)" onkeyup="return searchResults.Nav(event,20)" class="SRSymbol" href="../namespacer123.html#acc1b0ed919ef806de26f5ff5b934b313" target="_parent">Array1x32</a>
+  <span class="SRScope">r123</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_array1x64">
+ <div class="SREntry">
+  <a id="Item21" onkeydown="return searchResults.Nav(event,21)" onkeypress="return searchResults.Nav(event,21)" onkeyup="return searchResults.Nav(event,21)" class="SRSymbol" href="../namespacer123.html#aeb81c4265759fad9993e09fda21ff4fa" target="_parent">Array1x64</a>
+  <span class="SRScope">r123</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_array1xm128i">
+ <div class="SREntry">
+  <a id="Item22" onkeydown="return searchResults.Nav(event,22)" onkeypress="return searchResults.Nav(event,22)" onkeyup="return searchResults.Nav(event,22)" class="SRSymbol" href="../namespacer123.html#adbb729a97ee41e7cb075058b55a58c5d" target="_parent">Array1xm128i</a>
+  <span class="SRScope">r123</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_array2x32">
+ <div class="SREntry">
+  <a id="Item23" onkeydown="return searchResults.Nav(event,23)" onkeypress="return searchResults.Nav(event,23)" onkeyup="return searchResults.Nav(event,23)" class="SRSymbol" href="../namespacer123.html#ab853ac55f8188e4a09d12ab23f2d8dea" target="_parent">Array2x32</a>
+  <span class="SRScope">r123</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_array2x64">
+ <div class="SREntry">
+  <a id="Item24" onkeydown="return searchResults.Nav(event,24)" onkeypress="return searchResults.Nav(event,24)" onkeyup="return searchResults.Nav(event,24)" class="SRSymbol" href="../namespacer123.html#ad3b670563762f605a6fce61b5bab8412" target="_parent">Array2x64</a>
+  <span class="SRScope">r123</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_array4x32">
+ <div class="SREntry">
+  <a id="Item25" onkeydown="return searchResults.Nav(event,25)" onkeypress="return searchResults.Nav(event,25)" onkeyup="return searchResults.Nav(event,25)" class="SRSymbol" href="../namespacer123.html#a0c352c3ea265e7fd182559e557113195" target="_parent">Array4x32</a>
+  <span class="SRScope">r123</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_array4x64">
+ <div class="SREntry">
+  <a id="Item26" onkeydown="return searchResults.Nav(event,26)" onkeypress="return searchResults.Nav(event,26)" onkeyup="return searchResults.Nav(event,26)" class="SRSymbol" href="../namespacer123.html#a54c1a72670974c11acff37279eb23147" target="_parent">Array4x64</a>
+  <span class="SRScope">r123</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_array8x32">
+ <div class="SREntry">
+  <a id="Item27" onkeydown="return searchResults.Nav(event,27)" onkeypress="return searchResults.Nav(event,27)" onkeyup="return searchResults.Nav(event,27)" class="SRSymbol" href="../namespacer123.html#aea31cf23efbfcc11808b7e394922f4d2" target="_parent">Array8x32</a>
+  <span class="SRScope">r123</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_ars_2eh">
+ <div class="SREntry">
+  <a id="Item28" onkeydown="return searchResults.Nav(event,28)" onkeypress="return searchResults.Nav(event,28)" onkeyup="return searchResults.Nav(event,28)" class="SRSymbol" href="../ars_8h.html" target="_parent">ars.h</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_ars1xm128i">
+ <div class="SREntry">
+  <a id="Item29" onkeydown="return searchResults.Nav(event,29)" onkeypress="return searchResults.Nav(event,29)" onkeyup="return searchResults.Nav(event,29)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_ars1xm128i')">ars1xm128i</a>
+  <div class="SRChildren">
+    <a id="Item29_c0" onkeydown="return searchResults.NavChild(event,29,0)" onkeypress="return searchResults.NavChild(event,29,0)" onkeyup="return searchResults.NavChild(event,29,0)" class="SRScope" href="../group__AESNI.html#ga22e0a9c885b544115d44d26cc7777303" target="_parent">ars1xm128i(): ars.h</a>
+    <a id="Item29_c1" onkeydown="return searchResults.NavChild(event,29,1)" onkeypress="return searchResults.NavChild(event,29,1)" onkeyup="return searchResults.NavChild(event,29,1)" class="SRScope" href="../namespacer123.html#a964aa9123913d1f8cf535e0caaa4155f" target="_parent">r123::ARS1xm128i()</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_ars1xm128i_5fctr_5ft">
+ <div class="SREntry">
+  <a id="Item30" onkeydown="return searchResults.Nav(event,30)" onkeypress="return searchResults.Nav(event,30)" onkeyup="return searchResults.Nav(event,30)" class="SRSymbol" href="../group__AESNI.html#ga23ddf8109ce08f2bc14401c5f269d2a9" target="_parent">ars1xm128i_ctr_t</a>
+  <span class="SRScope">ars.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_ars1xm128i_5fdefault_5frounds">
+ <div class="SREntry">
+  <a id="Item31" onkeydown="return searchResults.Nav(event,31)" onkeypress="return searchResults.Nav(event,31)" onkeyup="return searchResults.Nav(event,31)" class="SRSymbol" href="../ars_8h.html#aa1e31853c7493df739897205eb4f4a82" target="_parent">ARS1xm128i_DEFAULT_ROUNDS</a>
+  <span class="SRScope">ars.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_ars1xm128i_5fkey_5ft">
+ <div class="SREntry">
+  <a id="Item32" onkeydown="return searchResults.Nav(event,32)" onkeypress="return searchResults.Nav(event,32)" onkeyup="return searchResults.Nav(event,32)" class="SRSymbol" href="../group__AESNI.html#ga2c5b351a47bb39f4d1769506c98c06e2" target="_parent">ars1xm128i_key_t</a>
+  <span class="SRScope">ars.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_ars1xm128i_5fr">
+ <div class="SREntry">
+  <a id="Item33" onkeydown="return searchResults.Nav(event,33)" onkeypress="return searchResults.Nav(event,33)" onkeyup="return searchResults.Nav(event,33)" class="SRSymbol" href="../group__AESNI.html#gaddc6efc2007f6f66ee914eb7074cff1e" target="_parent">ars1xm128i_R</a>
+  <span class="SRScope">ars.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_ars1xm128i_5fr">
+ <div class="SREntry">
+  <a id="Item34" onkeydown="return searchResults.Nav(event,34)" onkeypress="return searchResults.Nav(event,34)" onkeyup="return searchResults.Nav(event,34)" class="SRSymbol" href="../structr123_1_1ARS1xm128i__R.html" target="_parent">ARS1xm128i_R</a>
+  <span class="SRScope">r123</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_ars1xm128i_5frounds">
+ <div class="SREntry">
+  <a id="Item35" onkeydown="return searchResults.Nav(event,35)" onkeypress="return searchResults.Nav(event,35)" onkeyup="return searchResults.Nav(event,35)" class="SRSymbol" href="../group__AESNI.html#ggabf0a537666d4d1421144cb0a5e67666cade1fd46524355ec1d7ce63fd13b54992" target="_parent">ars1xm128i_rounds</a>
+  <span class="SRScope">ars.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_ars1xm128i_5fukey_5ft">
+ <div class="SREntry">
+  <a id="Item36" onkeydown="return searchResults.Nav(event,36)" onkeypress="return searchResults.Nav(event,36)" onkeyup="return searchResults.Nav(event,36)" class="SRSymbol" href="../group__AESNI.html#gaeaa234225e7dcec2ffcdb32a0faad4f0" target="_parent">ars1xm128i_ukey_t</a>
+  <span class="SRScope">ars.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_ars1xm128ikeyinit">
+ <div class="SREntry">
+  <a id="Item37" onkeydown="return searchResults.Nav(event,37)" onkeypress="return searchResults.Nav(event,37)" onkeyup="return searchResults.Nav(event,37)" class="SRSymbol" href="../group__AESNI.html#gae307c205a2ad19142bbe70919abfbfc2" target="_parent">ars1xm128ikeyinit</a>
+  <span class="SRScope">ars.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_ars4x32">
+ <div class="SREntry">
+  <a id="Item38" onkeydown="return searchResults.Nav(event,38)" onkeypress="return searchResults.Nav(event,38)" onkeyup="return searchResults.Nav(event,38)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_ars4x32')">ARS4x32</a>
+  <div class="SRChildren">
+    <a id="Item38_c0" onkeydown="return searchResults.NavChild(event,38,0)" onkeypress="return searchResults.NavChild(event,38,0)" onkeyup="return searchResults.NavChild(event,38,0)" class="SRScope" href="../namespacer123.html#afd2070dc979024a14317bd57c3a4c352" target="_parent">r123::ARS4x32()</a>
+    <a id="Item38_c1" onkeydown="return searchResults.NavChild(event,38,1)" onkeypress="return searchResults.NavChild(event,38,1)" onkeyup="return searchResults.NavChild(event,38,1)" class="SRScope" href="../group__AESNI.html#ga088ecbf341caf05e491ce246f2ea2d30" target="_parent">ars4x32(): ars.h</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_ars4x32_5fctr_5ft">
+ <div class="SREntry">
+  <a id="Item39" onkeydown="return searchResults.Nav(event,39)" onkeypress="return searchResults.Nav(event,39)" onkeyup="return searchResults.Nav(event,39)" class="SRSymbol" href="../group__AESNI.html#ga61721da91a455cb587ce6bc4a0f56117" target="_parent">ars4x32_ctr_t</a>
+  <span class="SRScope">ars.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_ars4x32_5fkey_5ft">
+ <div class="SREntry">
+  <a id="Item40" onkeydown="return searchResults.Nav(event,40)" onkeypress="return searchResults.Nav(event,40)" onkeyup="return searchResults.Nav(event,40)" class="SRSymbol" href="../group__AESNI.html#ga3a1426aa6aaa06330d48ec8173cd3e7b" target="_parent">ars4x32_key_t</a>
+  <span class="SRScope">ars.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_ars4x32_5fr">
+ <div class="SREntry">
+  <a id="Item41" onkeydown="return searchResults.Nav(event,41)" onkeypress="return searchResults.Nav(event,41)" onkeyup="return searchResults.Nav(event,41)" class="SRSymbol" href="../group__AESNI.html#gab13b093252d4bb3389d27d4e3b04dae8" target="_parent">ars4x32_R</a>
+  <span class="SRScope">ars.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_ars4x32_5fr">
+ <div class="SREntry">
+  <a id="Item42" onkeydown="return searchResults.Nav(event,42)" onkeypress="return searchResults.Nav(event,42)" onkeyup="return searchResults.Nav(event,42)" class="SRSymbol" href="../structr123_1_1ARS4x32__R.html" target="_parent">ARS4x32_R</a>
+  <span class="SRScope">r123</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_ars4x32_5frounds">
+ <div class="SREntry">
+  <a id="Item43" onkeydown="return searchResults.Nav(event,43)" onkeypress="return searchResults.Nav(event,43)" onkeyup="return searchResults.Nav(event,43)" class="SRSymbol" href="../group__AESNI.html#ggaa623b038fa0c8d8d2864fdc0e45884d6a5e715f357770a0f188ef493e6e63d31d" target="_parent">ars4x32_rounds</a>
+  <span class="SRScope">ars.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_ars4x32_5fukey_5ft">
+ <div class="SREntry">
+  <a id="Item44" onkeydown="return searchResults.Nav(event,44)" onkeypress="return searchResults.Nav(event,44)" onkeyup="return searchResults.Nav(event,44)" class="SRSymbol" href="../group__AESNI.html#ga54cb318ff6bd4df405897b2b9a4b109f" target="_parent">ars4x32_ukey_t</a>
+  <span class="SRScope">ars.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_ars4x32keyinit">
+ <div class="SREntry">
+  <a id="Item45" onkeydown="return searchResults.Nav(event,45)" onkeypress="return searchResults.Nav(event,45)" onkeyup="return searchResults.Nav(event,45)" class="SRSymbol" href="../group__AESNI.html#ga1f3a02ea711ae6bacb0875f11a255516" target="_parent">ars4x32keyinit</a>
+  <span class="SRScope">ars.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_assemble_5ffrom_5fu32">
+ <div class="SREntry">
+  <a id="Item46" onkeydown="return searchResults.Nav(event,46)" onkeypress="return searchResults.Nav(event,46)" onkeyup="return searchResults.Nav(event,46)" class="SRSymbol" href="../sse_8h.html#a99c42d1da8da3a4a273556a7817b5c1f" target="_parent">assemble_from_u32</a>
+  <span class="SRScope">sse.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_assemble_5ffrom_5fu32_3c_20r123m128i_20_3e">
+ <div class="SREntry">
+  <a id="Item47" onkeydown="return searchResults.Nav(event,47)" onkeypress="return searchResults.Nav(event,47)" onkeyup="return searchResults.Nav(event,47)" class="SRSymbol" href="../sse_8h.html#a0cd6ca87c67023d7afda38319ab40e43" target="_parent">assemble_from_u32< r123m128i ></a>
+  <span class="SRScope">sse.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_at">
+ <div class="SREntry">
+  <a id="Item48" onkeydown="return searchResults.Nav(event,48)" onkeypress="return searchResults.Nav(event,48)" onkeyup="return searchResults.Nav(event,48)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_at')">at</a>
+  <div class="SRChildren">
+    <a id="Item48_c0" onkeydown="return searchResults.NavChild(event,48,0)" onkeypress="return searchResults.NavChild(event,48,0)" onkeyup="return searchResults.NavChild(event,48,0)" class="SRScope" href="../structr123array1x32.html#a300f163f4293879003e6831b1180350d" target="_parent">r123array1x32::at(size_type i)</a>
+    <a id="Item48_c1" onkeydown="return searchResults.NavChild(event,48,1)" onkeypress="return searchResults.NavChild(event,48,1)" onkeyup="return searchResults.NavChild(event,48,1)" class="SRScope" href="../structr123array1x32.html#a1d57048b43ee45e2a94ef372b4707783" target="_parent">r123array1x32::at(size_type i) const </a>
+    <a id="Item48_c2" onkeydown="return searchResults.NavChild(event,48,2)" onkeypress="return searchResults.NavChild(event,48,2)" onkeyup="return searchResults.NavChild(event,48,2)" class="SRScope" href="../structr123array2x32.html#aa29e0ae21be47bda2ac83e6c945b5719" target="_parent">r123array2x32::at(size_type i)</a>
+    <a id="Item48_c3" onkeydown="return searchResults.NavChild(event,48,3)" onkeypress="return searchResults.NavChild(event,48,3)" onkeyup="return searchResults.NavChild(event,48,3)" class="SRScope" href="../structr123array2x32.html#ae985b8811e4e8849d5f28dae76231dca" target="_parent">r123array2x32::at(size_type i) const </a>
+    <a id="Item48_c4" onkeydown="return searchResults.NavChild(event,48,4)" onkeypress="return searchResults.NavChild(event,48,4)" onkeyup="return searchResults.NavChild(event,48,4)" class="SRScope" href="../structr123array4x32.html#ac44f12891effca2d069a3a3a8173dd62" target="_parent">r123array4x32::at(size_type i)</a>
+    <a id="Item48_c5" onkeydown="return searchResults.NavChild(event,48,5)" onkeypress="return searchResults.NavChild(event,48,5)" onkeyup="return searchResults.NavChild(event,48,5)" class="SRScope" href="../structr123array4x32.html#abdb3253eb03291895f89885298e17169" target="_parent">r123array4x32::at(size_type i) const </a>
+    <a id="Item48_c6" onkeydown="return searchResults.NavChild(event,48,6)" onkeypress="return searchResults.NavChild(event,48,6)" onkeyup="return searchResults.NavChild(event,48,6)" class="SRScope" href="../structr123array8x32.html#aa6c0788063f7e7b717aae2d9606cf302" target="_parent">r123array8x32::at(size_type i)</a>
+    <a id="Item48_c7" onkeydown="return searchResults.NavChild(event,48,7)" onkeypress="return searchResults.NavChild(event,48,7)" onkeyup="return searchResults.NavChild(event,48,7)" class="SRScope" href="../structr123array8x32.html#a79f982be8c435215a5e812e88e500216" target="_parent">r123array8x32::at(size_type i) const </a>
+    <a id="Item48_c8" onkeydown="return searchResults.NavChild(event,48,8)" onkeypress="return searchResults.NavChild(event,48,8)" onkeyup="return searchResults.NavChild(event,48,8)" class="SRScope" href="../structr123array1x64.html#a6575299135436acf90fcb8da262d623c" target="_parent">r123array1x64::at(size_type i)</a>
+    <a id="Item48_c9" onkeydown="return searchResults.NavChild(event,48,9)" onkeypress="return searchResults.NavChild(event,48,9)" onkeyup="return searchResults.NavChild(event,48,9)" class="SRScope" href="../structr123array1x64.html#af6cf7706792eb1e44902dd94df388726" target="_parent">r123array1x64::at(size_type i) const </a>
+    <a id="Item48_c10" onkeydown="return searchResults.NavChild(event,48,10)" onkeypress="return searchResults.NavChild(event,48,10)" onkeyup="return searchResults.NavChild(event,48,10)" class="SRScope" href="../structr123array2x64.html#a46789872cf0f3a6310f864b2a35b2ea7" target="_parent">r123array2x64::at(size_type i)</a>
+    <a id="Item48_c11" onkeydown="return searchResults.NavChild(event,48,11)" onkeypress="return searchResults.NavChild(event,48,11)" onkeyup="return searchResults.NavChild(event,48,11)" class="SRScope" href="../structr123array2x64.html#a971ddfa7c395d161028e16c829179f3c" target="_parent">r123array2x64::at(size_type i) const </a>
+    <a id="Item48_c12" onkeydown="return searchResults.NavChild(event,48,12)" onkeypress="return searchResults.NavChild(event,48,12)" onkeyup="return searchResults.NavChild(event,48,12)" class="SRScope" href="../structr123array4x64.html#a5b60c8dcd20ce894109e346fdb4cbdb2" target="_parent">r123array4x64::at(size_type i)</a>
+    <a id="Item48_c13" onkeydown="return searchResults.NavChild(event,48,13)" onkeypress="return searchResults.NavChild(event,48,13)" onkeyup="return searchResults.NavChild(event,48,13)" class="SRScope" href="../structr123array4x64.html#a893d3db3d274fc15ac32bc7cbab0e82a" target="_parent">r123array4x64::at(size_type i) const </a>
+    <a id="Item48_c14" onkeydown="return searchResults.NavChild(event,48,14)" onkeypress="return searchResults.NavChild(event,48,14)" onkeyup="return searchResults.NavChild(event,48,14)" class="SRScope" href="../structr123array16x8.html#a7742edac513767b0f3ca6abe1a3eabb7" target="_parent">r123array16x8::at(size_type i)</a>
+    <a id="Item48_c15" onkeydown="return searchResults.NavChild(event,48,15)" onkeypress="return searchResults.NavChild(event,48,15)" onkeyup="return searchResults.NavChild(event,48,15)" class="SRScope" href="../structr123array16x8.html#a088dbabe23cf873de370af292052905e" target="_parent">r123array16x8::at(size_type i) const </a>
+    <a id="Item48_c16" onkeydown="return searchResults.NavChild(event,48,16)" onkeypress="return searchResults.NavChild(event,48,16)" onkeyup="return searchResults.NavChild(event,48,16)" class="SRScope" href="../structr123array1xm128i.html#a5e8a81ee3f7c3b022554c0023a686700" target="_parent">r123array1xm128i::at(size_type i)</a>
+    <a id="Item48_c17" onkeydown="return searchResults.NavChild(event,48,17)" onkeypress="return searchResults.NavChild(event,48,17)" onkeyup="return searchResults.NavChild(event,48,17)" class="SRScope" href="../structr123array1xm128i.html#a53ad470978c3105c97f502959d31ffa0" target="_parent">r123array1xm128i::at(size_type i) const </a>
+  </div>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/all_62.html b/docs/html/search/all_62.html
new file mode 100644
index 0000000..bb75812
--- /dev/null
+++ b/docs/html/search/all_62.html
@@ -0,0 +1,88 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_b">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structr123_1_1Engine.html#a5e430e850badcc4fd0f74de4a49a673b" target="_parent">b</a>
+  <span class="SRScope">r123::Engine</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_back">
+ <div class="SREntry">
+  <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_back')">back</a>
+  <div class="SRChildren">
+    <a id="Item1_c0" onkeydown="return searchResults.NavChild(event,1,0)" onkeypress="return searchResults.NavChild(event,1,0)" onkeyup="return searchResults.NavChild(event,1,0)" class="SRScope" href="../structr123array1x32.html#a3738a65a648899db793e81b53c252785" target="_parent">r123array1x32::back()</a>
+    <a id="Item1_c1" onkeydown="return searchResults.NavChild(event,1,1)" onkeypress="return searchResults.NavChild(event,1,1)" onkeyup="return searchResults.NavChild(event,1,1)" class="SRScope" href="../structr123array1x32.html#a32b89fb1c75e3cc26ff3b5acdd40af99" target="_parent">r123array1x32::back() const </a>
+    <a id="Item1_c2" onkeydown="return searchResults.NavChild(event,1,2)" onkeypress="return searchResults.NavChild(event,1,2)" onkeyup="return searchResults.NavChild(event,1,2)" class="SRScope" href="../structr123array2x32.html#a3da7214b9946a3c8653312dcfa42a288" target="_parent">r123array2x32::back()</a>
+    <a id="Item1_c3" onkeydown="return searchResults.NavChild(event,1,3)" onkeypress="return searchResults.NavChild(event,1,3)" onkeyup="return searchResults.NavChild(event,1,3)" class="SRScope" href="../structr123array2x32.html#ae176c02299531373a0fff9a5f55226e5" target="_parent">r123array2x32::back() const </a>
+    <a id="Item1_c4" onkeydown="return searchResults.NavChild(event,1,4)" onkeypress="return searchResults.NavChild(event,1,4)" onkeyup="return searchResults.NavChild(event,1,4)" class="SRScope" href="../structr123array4x32.html#a70fd9b24cb3b126eb15c23049f786653" target="_parent">r123array4x32::back()</a>
+    <a id="Item1_c5" onkeydown="return searchResults.NavChild(event,1,5)" onkeypress="return searchResults.NavChild(event,1,5)" onkeyup="return searchResults.NavChild(event,1,5)" class="SRScope" href="../structr123array4x32.html#a4e1cba8583b2fac8cc3bf854956191c4" target="_parent">r123array4x32::back() const </a>
+    <a id="Item1_c6" onkeydown="return searchResults.NavChild(event,1,6)" onkeypress="return searchResults.NavChild(event,1,6)" onkeyup="return searchResults.NavChild(event,1,6)" class="SRScope" href="../structr123array8x32.html#a1d4176e4ad6d70c98805e0c924d2df37" target="_parent">r123array8x32::back()</a>
+    <a id="Item1_c7" onkeydown="return searchResults.NavChild(event,1,7)" onkeypress="return searchResults.NavChild(event,1,7)" onkeyup="return searchResults.NavChild(event,1,7)" class="SRScope" href="../structr123array8x32.html#a73f5b5012b1e6595f727ef88e60a53ac" target="_parent">r123array8x32::back() const </a>
+    <a id="Item1_c8" onkeydown="return searchResults.NavChild(event,1,8)" onkeypress="return searchResults.NavChild(event,1,8)" onkeyup="return searchResults.NavChild(event,1,8)" class="SRScope" href="../structr123array1x64.html#ab85790fdee269501a80fe31179efc9f8" target="_parent">r123array1x64::back()</a>
+    <a id="Item1_c9" onkeydown="return searchResults.NavChild(event,1,9)" onkeypress="return searchResults.NavChild(event,1,9)" onkeyup="return searchResults.NavChild(event,1,9)" class="SRScope" href="../structr123array1x64.html#a2cd091b3015befa2b954ddab91271e39" target="_parent">r123array1x64::back() const </a>
+    <a id="Item1_c10" onkeydown="return searchResults.NavChild(event,1,10)" onkeypress="return searchResults.NavChild(event,1,10)" onkeyup="return searchResults.NavChild(event,1,10)" class="SRScope" href="../structr123array2x64.html#a9beb3e776cb4f3cbee6846518749cb03" target="_parent">r123array2x64::back()</a>
+    <a id="Item1_c11" onkeydown="return searchResults.NavChild(event,1,11)" onkeypress="return searchResults.NavChild(event,1,11)" onkeyup="return searchResults.NavChild(event,1,11)" class="SRScope" href="../structr123array2x64.html#ac72fd3a39821ca25f94258f97da371c5" target="_parent">r123array2x64::back() const </a>
+    <a id="Item1_c12" onkeydown="return searchResults.NavChild(event,1,12)" onkeypress="return searchResults.NavChild(event,1,12)" onkeyup="return searchResults.NavChild(event,1,12)" class="SRScope" href="../structr123array4x64.html#abb40868277e8a943a0b5464985baceb5" target="_parent">r123array4x64::back()</a>
+    <a id="Item1_c13" onkeydown="return searchResults.NavChild(event,1,13)" onkeypress="return searchResults.NavChild(event,1,13)" onkeyup="return searchResults.NavChild(event,1,13)" class="SRScope" href="../structr123array4x64.html#a9006cfe7882bbc791a81a52f7cc0fd2d" target="_parent">r123array4x64::back() const </a>
+    <a id="Item1_c14" onkeydown="return searchResults.NavChild(event,1,14)" onkeypress="return searchResults.NavChild(event,1,14)" onkeyup="return searchResults.NavChild(event,1,14)" class="SRScope" href="../structr123array16x8.html#ae607d3b3d068aec88672241fc97948cb" target="_parent">r123array16x8::back()</a>
+    <a id="Item1_c15" onkeydown="return searchResults.NavChild(event,1,15)" onkeypress="return searchResults.NavChild(event,1,15)" onkeyup="return searchResults.NavChild(event,1,15)" class="SRScope" href="../structr123array16x8.html#a6e5e98c20ae0e6bf4f8a897c08b0700e" target="_parent">r123array16x8::back() const </a>
+    <a id="Item1_c16" onkeydown="return searchResults.NavChild(event,1,16)" onkeypress="return searchResults.NavChild(event,1,16)" onkeyup="return searchResults.NavChild(event,1,16)" class="SRScope" href="../structr123array1xm128i.html#a082b7b75374d69149ee03d1d228e2508" target="_parent">r123array1xm128i::back()</a>
+    <a id="Item1_c17" onkeydown="return searchResults.NavChild(event,1,17)" onkeypress="return searchResults.NavChild(event,1,17)" onkeyup="return searchResults.NavChild(event,1,17)" class="SRScope" href="../structr123array1xm128i.html#a458be25b18c6e59d5c72e2c4d4ea6354" target="_parent">r123array1xm128i::back() const </a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_bctype">
+ <div class="SREntry">
+  <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../structr123_1_1ReinterpretCtr.html#ae0accaee618b5eb28a24acd516b3a4c6" target="_parent">bctype</a>
+  <span class="SRScope">r123::ReinterpretCtr</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_begin">
+ <div class="SREntry">
+  <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_begin')">begin</a>
+  <div class="SRChildren">
+    <a id="Item3_c0" onkeydown="return searchResults.NavChild(event,3,0)" onkeypress="return searchResults.NavChild(event,3,0)" onkeyup="return searchResults.NavChild(event,3,0)" class="SRScope" href="../structr123array1x32.html#a86b7d754ff8dd69e0565edfdbd060cb4" target="_parent">r123array1x32::begin()</a>
+    <a id="Item3_c1" onkeydown="return searchResults.NavChild(event,3,1)" onkeypress="return searchResults.NavChild(event,3,1)" onkeyup="return searchResults.NavChild(event,3,1)" class="SRScope" href="../structr123array1x32.html#a19089b8de6c637803408512407a4da91" target="_parent">r123array1x32::begin() const </a>
+    <a id="Item3_c2" onkeydown="return searchResults.NavChild(event,3,2)" onkeypress="return searchResults.NavChild(event,3,2)" onkeyup="return searchResults.NavChild(event,3,2)" class="SRScope" href="../structr123array2x32.html#a96730b28149000a3ea4c6b0f05e1777b" target="_parent">r123array2x32::begin()</a>
+    <a id="Item3_c3" onkeydown="return searchResults.NavChild(event,3,3)" onkeypress="return searchResults.NavChild(event,3,3)" onkeyup="return searchResults.NavChild(event,3,3)" class="SRScope" href="../structr123array2x32.html#aa52b394a0c44b755e5c0d0409dc2c4ea" target="_parent">r123array2x32::begin() const </a>
+    <a id="Item3_c4" onkeydown="return searchResults.NavChild(event,3,4)" onkeypress="return searchResults.NavChild(event,3,4)" onkeyup="return searchResults.NavChild(event,3,4)" class="SRScope" href="../structr123array4x32.html#a96a9c7e3ece3d2b128cf7f264af6ea3c" target="_parent">r123array4x32::begin()</a>
+    <a id="Item3_c5" onkeydown="return searchResults.NavChild(event,3,5)" onkeypress="return searchResults.NavChild(event,3,5)" onkeyup="return searchResults.NavChild(event,3,5)" class="SRScope" href="../structr123array4x32.html#a830254ee0db7bf12facf67f23428d2d9" target="_parent">r123array4x32::begin() const </a>
+    <a id="Item3_c6" onkeydown="return searchResults.NavChild(event,3,6)" onkeypress="return searchResults.NavChild(event,3,6)" onkeyup="return searchResults.NavChild(event,3,6)" class="SRScope" href="../structr123array8x32.html#a7ae561c4d544e31f7bd2f256cb32f878" target="_parent">r123array8x32::begin()</a>
+    <a id="Item3_c7" onkeydown="return searchResults.NavChild(event,3,7)" onkeypress="return searchResults.NavChild(event,3,7)" onkeyup="return searchResults.NavChild(event,3,7)" class="SRScope" href="../structr123array8x32.html#ad924bdaf9facc3271ca2ae727cda23a3" target="_parent">r123array8x32::begin() const </a>
+    <a id="Item3_c8" onkeydown="return searchResults.NavChild(event,3,8)" onkeypress="return searchResults.NavChild(event,3,8)" onkeyup="return searchResults.NavChild(event,3,8)" class="SRScope" href="../structr123array1x64.html#af9150347761c6df32673bbd2411e67d0" target="_parent">r123array1x64::begin()</a>
+    <a id="Item3_c9" onkeydown="return searchResults.NavChild(event,3,9)" onkeypress="return searchResults.NavChild(event,3,9)" onkeyup="return searchResults.NavChild(event,3,9)" class="SRScope" href="../structr123array1x64.html#a0fddc6603fe2eb4547aeb57498ffe3c2" target="_parent">r123array1x64::begin() const </a>
+    <a id="Item3_c10" onkeydown="return searchResults.NavChild(event,3,10)" onkeypress="return searchResults.NavChild(event,3,10)" onkeyup="return searchResults.NavChild(event,3,10)" class="SRScope" href="../structr123array2x64.html#a0fcc60a49efd917a3b630cf53c526311" target="_parent">r123array2x64::begin()</a>
+    <a id="Item3_c11" onkeydown="return searchResults.NavChild(event,3,11)" onkeypress="return searchResults.NavChild(event,3,11)" onkeyup="return searchResults.NavChild(event,3,11)" class="SRScope" href="../structr123array2x64.html#a8cf4fadef6bdc6d438db173bc1d31165" target="_parent">r123array2x64::begin() const </a>
+    <a id="Item3_c12" onkeydown="return searchResults.NavChild(event,3,12)" onkeypress="return searchResults.NavChild(event,3,12)" onkeyup="return searchResults.NavChild(event,3,12)" class="SRScope" href="../structr123array4x64.html#ab78c67c429da6405f9d1ed5054635961" target="_parent">r123array4x64::begin()</a>
+    <a id="Item3_c13" onkeydown="return searchResults.NavChild(event,3,13)" onkeypress="return searchResults.NavChild(event,3,13)" onkeyup="return searchResults.NavChild(event,3,13)" class="SRScope" href="../structr123array4x64.html#acd133812dbe01892199683e003921b8b" target="_parent">r123array4x64::begin() const </a>
+    <a id="Item3_c14" onkeydown="return searchResults.NavChild(event,3,14)" onkeypress="return searchResults.NavChild(event,3,14)" onkeyup="return searchResults.NavChild(event,3,14)" class="SRScope" href="../structr123array16x8.html#a43182e95cb41660de5511bb5a3968cb8" target="_parent">r123array16x8::begin()</a>
+    <a id="Item3_c15" onkeydown="return searchResults.NavChild(event,3,15)" onkeypress="return searchResults.NavChild(event,3,15)" onkeyup="return searchResults.NavChild(event,3,15)" class="SRScope" href="../structr123array16x8.html#acef590bcf52e4a167c2388f4d1e0b20e" target="_parent">r123array16x8::begin() const </a>
+    <a id="Item3_c16" onkeydown="return searchResults.NavChild(event,3,16)" onkeypress="return searchResults.NavChild(event,3,16)" onkeyup="return searchResults.NavChild(event,3,16)" class="SRScope" href="../structr123array1xm128i.html#a275c9837db101efb234c36cff3e7562f" target="_parent">r123array1xm128i::begin()</a>
+    <a id="Item3_c17" onkeydown="return searchResults.NavChild(event,3,17)" onkeypress="return searchResults.NavChild(event,3,17)" onkeyup="return searchResults.NavChild(event,3,17)" class="SRScope" href="../structr123array1xm128i.html#ae9102a4387a7b2013f5098c6c7c14e74" target="_parent">r123array1xm128i::begin() const </a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_bits">
+ <div class="SREntry">
+  <a id="Item4" onkeydown="return searchResults.Nav(event,4)" onkeypress="return searchResults.Nav(event,4)" onkeyup="return searchResults.Nav(event,4)" class="SRSymbol" href="../classr123_1_1MicroURNG.html#ac55cddda8fe0808f922f39beee587b27" target="_parent">BITS</a>
+  <span class="SRScope">r123::MicroURNG</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/all_63.html b/docs/html/search/all_63.html
new file mode 100644
index 0000000..103ac6c
--- /dev/null
+++ b/docs/html/search/all_63.html
@@ -0,0 +1,201 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_c">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structr123_1_1Engine.html#afb056ed93053f4175aabc9f4e5dd7b8d" target="_parent">c</a>
+  <span class="SRScope">r123::Engine</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_cbegin">
+ <div class="SREntry">
+  <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_cbegin')">cbegin</a>
+  <div class="SRChildren">
+    <a id="Item1_c0" onkeydown="return searchResults.NavChild(event,1,0)" onkeypress="return searchResults.NavChild(event,1,0)" onkeyup="return searchResults.NavChild(event,1,0)" class="SRScope" href="../structr123array1x32.html#a4b0a02537590babd835dd16405775efe" target="_parent">r123array1x32::cbegin()</a>
+    <a id="Item1_c1" onkeydown="return searchResults.NavChild(event,1,1)" onkeypress="return searchResults.NavChild(event,1,1)" onkeyup="return searchResults.NavChild(event,1,1)" class="SRScope" href="../structr123array2x32.html#a9687a1e6cdb6b6c9a1ffd8f3c7d2ce45" target="_parent">r123array2x32::cbegin()</a>
+    <a id="Item1_c2" onkeydown="return searchResults.NavChild(event,1,2)" onkeypress="return searchResults.NavChild(event,1,2)" onkeyup="return searchResults.NavChild(event,1,2)" class="SRScope" href="../structr123array4x32.html#a4881e99f7b0ff88e2a3082b9e2464bf5" target="_parent">r123array4x32::cbegin()</a>
+    <a id="Item1_c3" onkeydown="return searchResults.NavChild(event,1,3)" onkeypress="return searchResults.NavChild(event,1,3)" onkeyup="return searchResults.NavChild(event,1,3)" class="SRScope" href="../structr123array8x32.html#a06c19ba6155e9c98892f5b98fb482c21" target="_parent">r123array8x32::cbegin()</a>
+    <a id="Item1_c4" onkeydown="return searchResults.NavChild(event,1,4)" onkeypress="return searchResults.NavChild(event,1,4)" onkeyup="return searchResults.NavChild(event,1,4)" class="SRScope" href="../structr123array1x64.html#a33d1c19a63dec48f63f7c30c758fca0c" target="_parent">r123array1x64::cbegin()</a>
+    <a id="Item1_c5" onkeydown="return searchResults.NavChild(event,1,5)" onkeypress="return searchResults.NavChild(event,1,5)" onkeyup="return searchResults.NavChild(event,1,5)" class="SRScope" href="../structr123array2x64.html#ad1ccbda4186dbb8c0a673db1ec0957c0" target="_parent">r123array2x64::cbegin()</a>
+    <a id="Item1_c6" onkeydown="return searchResults.NavChild(event,1,6)" onkeypress="return searchResults.NavChild(event,1,6)" onkeyup="return searchResults.NavChild(event,1,6)" class="SRScope" href="../structr123array4x64.html#af716d2b14d1243870e8544ea2a3cece6" target="_parent">r123array4x64::cbegin()</a>
+    <a id="Item1_c7" onkeydown="return searchResults.NavChild(event,1,7)" onkeypress="return searchResults.NavChild(event,1,7)" onkeyup="return searchResults.NavChild(event,1,7)" class="SRScope" href="../structr123array16x8.html#a80520b3d7040a8d6ec7068c8a143ba6f" target="_parent">r123array16x8::cbegin()</a>
+    <a id="Item1_c8" onkeydown="return searchResults.NavChild(event,1,8)" onkeypress="return searchResults.NavChild(event,1,8)" onkeyup="return searchResults.NavChild(event,1,8)" class="SRScope" href="../structr123array1xm128i.html#a335bab18a8bc904e34de0b3d9d1ce596" target="_parent">r123array1xm128i::cbegin()</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_cbrng_2edox">
+ <div class="SREntry">
+  <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../cbrng_8dox.html" target="_parent">cbrng.dox</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_cbrng_5ftype">
+ <div class="SREntry">
+  <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_cbrng_5ftype')">cbrng_type</a>
+  <div class="SRChildren">
+    <a id="Item3_c0" onkeydown="return searchResults.NavChild(event,3,0)" onkeypress="return searchResults.NavChild(event,3,0)" onkeyup="return searchResults.NavChild(event,3,0)" class="SRScope" href="../classr123_1_1MicroURNG.html#ab0b3a77c9408dbcb2f9d6b5c67e9c3f7" target="_parent">r123::MicroURNG::cbrng_type()</a>
+    <a id="Item3_c1" onkeydown="return searchResults.NavChild(event,3,1)" onkeypress="return searchResults.NavChild(event,3,1)" onkeyup="return searchResults.NavChild(event,3,1)" class="SRScope" href="../structr123_1_1Engine.html#a45ee0086cf8cd6d10febb76dc88f8b22" target="_parent">r123::Engine::cbrng_type()</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_cend">
+ <div class="SREntry">
+  <a id="Item4" onkeydown="return searchResults.Nav(event,4)" onkeypress="return searchResults.Nav(event,4)" onkeyup="return searchResults.Nav(event,4)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_cend')">cend</a>
+  <div class="SRChildren">
+    <a id="Item4_c0" onkeydown="return searchResults.NavChild(event,4,0)" onkeypress="return searchResults.NavChild(event,4,0)" onkeyup="return searchResults.NavChild(event,4,0)" class="SRScope" href="../structr123array1x32.html#aa0f83d3e29c452d23c3660c98e3bd0e9" target="_parent">r123array1x32::cend()</a>
+    <a id="Item4_c1" onkeydown="return searchResults.NavChild(event,4,1)" onkeypress="return searchResults.NavChild(event,4,1)" onkeyup="return searchResults.NavChild(event,4,1)" class="SRScope" href="../structr123array2x32.html#a9bb4382830c6feb49573b82bb9a18efc" target="_parent">r123array2x32::cend()</a>
+    <a id="Item4_c2" onkeydown="return searchResults.NavChild(event,4,2)" onkeypress="return searchResults.NavChild(event,4,2)" onkeyup="return searchResults.NavChild(event,4,2)" class="SRScope" href="../structr123array4x32.html#a0045f9134801ed79d31f65c7d224d72c" target="_parent">r123array4x32::cend()</a>
+    <a id="Item4_c3" onkeydown="return searchResults.NavChild(event,4,3)" onkeypress="return searchResults.NavChild(event,4,3)" onkeyup="return searchResults.NavChild(event,4,3)" class="SRScope" href="../structr123array8x32.html#a0e1dfc305279a3439789dbdda8bfb6ae" target="_parent">r123array8x32::cend()</a>
+    <a id="Item4_c4" onkeydown="return searchResults.NavChild(event,4,4)" onkeypress="return searchResults.NavChild(event,4,4)" onkeyup="return searchResults.NavChild(event,4,4)" class="SRScope" href="../structr123array1x64.html#aa959a7054efa0d53f83f2d712d8d9049" target="_parent">r123array1x64::cend()</a>
+    <a id="Item4_c5" onkeydown="return searchResults.NavChild(event,4,5)" onkeypress="return searchResults.NavChild(event,4,5)" onkeyup="return searchResults.NavChild(event,4,5)" class="SRScope" href="../structr123array2x64.html#ac80c7ce6fe5bd9ca8baf03db1e67a7e9" target="_parent">r123array2x64::cend()</a>
+    <a id="Item4_c6" onkeydown="return searchResults.NavChild(event,4,6)" onkeypress="return searchResults.NavChild(event,4,6)" onkeyup="return searchResults.NavChild(event,4,6)" class="SRScope" href="../structr123array4x64.html#af970ab87ce987c91097316bc0a0836ef" target="_parent">r123array4x64::cend()</a>
+    <a id="Item4_c7" onkeydown="return searchResults.NavChild(event,4,7)" onkeypress="return searchResults.NavChild(event,4,7)" onkeyup="return searchResults.NavChild(event,4,7)" class="SRScope" href="../structr123array16x8.html#ad7919a7f772fda7d3fe3b476ac1e058f" target="_parent">r123array16x8::cend()</a>
+    <a id="Item4_c8" onkeydown="return searchResults.NavChild(event,4,8)" onkeypress="return searchResults.NavChild(event,4,8)" onkeyup="return searchResults.NavChild(event,4,8)" class="SRScope" href="../structr123array1xm128i.html#aa05003cae74984b777610702d27d66d2" target="_parent">r123array1xm128i::cend()</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_compilerfeatures_2eh">
+ <div class="SREntry">
+  <a id="Item5" onkeydown="return searchResults.Nav(event,5)" onkeypress="return searchResults.Nav(event,5)" onkeyup="return searchResults.Nav(event,5)" class="SRSymbol" href="../compilerfeatures_8h.html" target="_parent">compilerfeatures.h</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_const_5fiterator">
+ <div class="SREntry">
+  <a id="Item6" onkeydown="return searchResults.Nav(event,6)" onkeypress="return searchResults.Nav(event,6)" onkeyup="return searchResults.Nav(event,6)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_const_5fiterator')">const_iterator</a>
+  <div class="SRChildren">
+    <a id="Item6_c0" onkeydown="return searchResults.NavChild(event,6,0)" onkeypress="return searchResults.NavChild(event,6,0)" onkeyup="return searchResults.NavChild(event,6,0)" class="SRScope" href="../structr123array1x32.html#ac7f82e8848759ec5b0026dce8830274e" target="_parent">r123array1x32::const_iterator()</a>
+    <a id="Item6_c1" onkeydown="return searchResults.NavChild(event,6,1)" onkeypress="return searchResults.NavChild(event,6,1)" onkeyup="return searchResults.NavChild(event,6,1)" class="SRScope" href="../structr123array2x32.html#a7963141a4af4c4aa74708909312a8644" target="_parent">r123array2x32::const_iterator()</a>
+    <a id="Item6_c2" onkeydown="return searchResults.NavChild(event,6,2)" onkeypress="return searchResults.NavChild(event,6,2)" onkeyup="return searchResults.NavChild(event,6,2)" class="SRScope" href="../structr123array4x32.html#a1078ba2cd13bb2a4f83e1b089c816ba7" target="_parent">r123array4x32::const_iterator()</a>
+    <a id="Item6_c3" onkeydown="return searchResults.NavChild(event,6,3)" onkeypress="return searchResults.NavChild(event,6,3)" onkeyup="return searchResults.NavChild(event,6,3)" class="SRScope" href="../structr123array8x32.html#aa026dfdf1e2741c96db4343ceffd3c9f" target="_parent">r123array8x32::const_iterator()</a>
+    <a id="Item6_c4" onkeydown="return searchResults.NavChild(event,6,4)" onkeypress="return searchResults.NavChild(event,6,4)" onkeyup="return searchResults.NavChild(event,6,4)" class="SRScope" href="../structr123array1x64.html#a28ff01c0fefda1d81112ec9812156164" target="_parent">r123array1x64::const_iterator()</a>
+    <a id="Item6_c5" onkeydown="return searchResults.NavChild(event,6,5)" onkeypress="return searchResults.NavChild(event,6,5)" onkeyup="return searchResults.NavChild(event,6,5)" class="SRScope" href="../structr123array2x64.html#ae4f249e82506274b19e6077c3d3f03af" target="_parent">r123array2x64::const_iterator()</a>
+    <a id="Item6_c6" onkeydown="return searchResults.NavChild(event,6,6)" onkeypress="return searchResults.NavChild(event,6,6)" onkeyup="return searchResults.NavChild(event,6,6)" class="SRScope" href="../structr123array4x64.html#a2aa5637bebf5c9c753edbce62e889d77" target="_parent">r123array4x64::const_iterator()</a>
+    <a id="Item6_c7" onkeydown="return searchResults.NavChild(event,6,7)" onkeypress="return searchResults.NavChild(event,6,7)" onkeyup="return searchResults.NavChild(event,6,7)" class="SRScope" href="../structr123array16x8.html#adda842a447360852f2ffa28fb97eb40c" target="_parent">r123array16x8::const_iterator()</a>
+    <a id="Item6_c8" onkeydown="return searchResults.NavChild(event,6,8)" onkeypress="return searchResults.NavChild(event,6,8)" onkeyup="return searchResults.NavChild(event,6,8)" class="SRScope" href="../structr123array1xm128i.html#af6be8b009459737fa25d9d2ac7c4e6aa" target="_parent">r123array1xm128i::const_iterator()</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_const_5fpointer">
+ <div class="SREntry">
+  <a id="Item7" onkeydown="return searchResults.Nav(event,7)" onkeypress="return searchResults.Nav(event,7)" onkeyup="return searchResults.Nav(event,7)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_const_5fpointer')">const_pointer</a>
+  <div class="SRChildren">
+    <a id="Item7_c0" onkeydown="return searchResults.NavChild(event,7,0)" onkeypress="return searchResults.NavChild(event,7,0)" onkeyup="return searchResults.NavChild(event,7,0)" class="SRScope" href="../structr123array1x32.html#ab4a82a1e5300814272528a05587d555b" target="_parent">r123array1x32::const_pointer()</a>
+    <a id="Item7_c1" onkeydown="return searchResults.NavChild(event,7,1)" onkeypress="return searchResults.NavChild(event,7,1)" onkeyup="return searchResults.NavChild(event,7,1)" class="SRScope" href="../structr123array2x32.html#accf098ed49f9d84cfa3831a9fe183885" target="_parent">r123array2x32::const_pointer()</a>
+    <a id="Item7_c2" onkeydown="return searchResults.NavChild(event,7,2)" onkeypress="return searchResults.NavChild(event,7,2)" onkeyup="return searchResults.NavChild(event,7,2)" class="SRScope" href="../structr123array4x32.html#a28d13183d1bfcc05854dc39bebbcdf51" target="_parent">r123array4x32::const_pointer()</a>
+    <a id="Item7_c3" onkeydown="return searchResults.NavChild(event,7,3)" onkeypress="return searchResults.NavChild(event,7,3)" onkeyup="return searchResults.NavChild(event,7,3)" class="SRScope" href="../structr123array8x32.html#a621f6293254c6300b1d1b9835b7f30ba" target="_parent">r123array8x32::const_pointer()</a>
+    <a id="Item7_c4" onkeydown="return searchResults.NavChild(event,7,4)" onkeypress="return searchResults.NavChild(event,7,4)" onkeyup="return searchResults.NavChild(event,7,4)" class="SRScope" href="../structr123array1x64.html#a2b23f2aa3edf21084ece97a03367bff5" target="_parent">r123array1x64::const_pointer()</a>
+    <a id="Item7_c5" onkeydown="return searchResults.NavChild(event,7,5)" onkeypress="return searchResults.NavChild(event,7,5)" onkeyup="return searchResults.NavChild(event,7,5)" class="SRScope" href="../structr123array2x64.html#a3a13a452ca15f62f8ddcd8b7de9efa08" target="_parent">r123array2x64::const_pointer()</a>
+    <a id="Item7_c6" onkeydown="return searchResults.NavChild(event,7,6)" onkeypress="return searchResults.NavChild(event,7,6)" onkeyup="return searchResults.NavChild(event,7,6)" class="SRScope" href="../structr123array4x64.html#aa268882d3b4fb43ec9d82baf22d58cc5" target="_parent">r123array4x64::const_pointer()</a>
+    <a id="Item7_c7" onkeydown="return searchResults.NavChild(event,7,7)" onkeypress="return searchResults.NavChild(event,7,7)" onkeyup="return searchResults.NavChild(event,7,7)" class="SRScope" href="../structr123array16x8.html#adbe5a6feb583ce6a682496e14cec9cca" target="_parent">r123array16x8::const_pointer()</a>
+    <a id="Item7_c8" onkeydown="return searchResults.NavChild(event,7,8)" onkeypress="return searchResults.NavChild(event,7,8)" onkeyup="return searchResults.NavChild(event,7,8)" class="SRScope" href="../structr123array1xm128i.html#acc3f6ecf7e6a6bc98c3681c80120ed61" target="_parent">r123array1xm128i::const_pointer()</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_const_5freference">
+ <div class="SREntry">
+  <a id="Item8" onkeydown="return searchResults.Nav(event,8)" onkeypress="return searchResults.Nav(event,8)" onkeyup="return searchResults.Nav(event,8)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_const_5freference')">const_reference</a>
+  <div class="SRChildren">
+    <a id="Item8_c0" onkeydown="return searchResults.NavChild(event,8,0)" onkeypress="return searchResults.NavChild(event,8,0)" onkeyup="return searchResults.NavChild(event,8,0)" class="SRScope" href="../structr123array1x32.html#adfa6614a8b20cd30c192458c8c2874da" target="_parent">r123array1x32::const_reference()</a>
+    <a id="Item8_c1" onkeydown="return searchResults.NavChild(event,8,1)" onkeypress="return searchResults.NavChild(event,8,1)" onkeyup="return searchResults.NavChild(event,8,1)" class="SRScope" href="../structr123array2x32.html#a9d71cce3d7ccea7f48da94cf023e1486" target="_parent">r123array2x32::const_reference()</a>
+    <a id="Item8_c2" onkeydown="return searchResults.NavChild(event,8,2)" onkeypress="return searchResults.NavChild(event,8,2)" onkeyup="return searchResults.NavChild(event,8,2)" class="SRScope" href="../structr123array4x32.html#a09d7e0d7b1572fc5fe2be119870a39bc" target="_parent">r123array4x32::const_reference()</a>
+    <a id="Item8_c3" onkeydown="return searchResults.NavChild(event,8,3)" onkeypress="return searchResults.NavChild(event,8,3)" onkeyup="return searchResults.NavChild(event,8,3)" class="SRScope" href="../structr123array8x32.html#a2e7eda7e8940b37e17aef9b0efec3685" target="_parent">r123array8x32::const_reference()</a>
+    <a id="Item8_c4" onkeydown="return searchResults.NavChild(event,8,4)" onkeypress="return searchResults.NavChild(event,8,4)" onkeyup="return searchResults.NavChild(event,8,4)" class="SRScope" href="../structr123array1x64.html#af75ba9dbfe38e0a6c143f446b7e4b995" target="_parent">r123array1x64::const_reference()</a>
+    <a id="Item8_c5" onkeydown="return searchResults.NavChild(event,8,5)" onkeypress="return searchResults.NavChild(event,8,5)" onkeyup="return searchResults.NavChild(event,8,5)" class="SRScope" href="../structr123array2x64.html#a5d80c6b28d869a5422d99541ee1fb93f" target="_parent">r123array2x64::const_reference()</a>
+    <a id="Item8_c6" onkeydown="return searchResults.NavChild(event,8,6)" onkeypress="return searchResults.NavChild(event,8,6)" onkeyup="return searchResults.NavChild(event,8,6)" class="SRScope" href="../structr123array4x64.html#ac2f21a458bf9008b831c553c5ae77508" target="_parent">r123array4x64::const_reference()</a>
+    <a id="Item8_c7" onkeydown="return searchResults.NavChild(event,8,7)" onkeypress="return searchResults.NavChild(event,8,7)" onkeyup="return searchResults.NavChild(event,8,7)" class="SRScope" href="../structr123array16x8.html#a7252c320f8b0fb4d66a17acd9e94b4ad" target="_parent">r123array16x8::const_reference()</a>
+    <a id="Item8_c8" onkeydown="return searchResults.NavChild(event,8,8)" onkeypress="return searchResults.NavChild(event,8,8)" onkeyup="return searchResults.NavChild(event,8,8)" class="SRScope" href="../structr123array1xm128i.html#a84d0123f4376cb6ab77cf817a0cea9cb" target="_parent">r123array1xm128i::const_reference()</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_const_5freverse_5fiterator">
+ <div class="SREntry">
+  <a id="Item9" onkeydown="return searchResults.Nav(event,9)" onkeypress="return searchResults.Nav(event,9)" onkeyup="return searchResults.Nav(event,9)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_const_5freverse_5fiterator')">const_reverse_iterator</a>
+  <div class="SRChildren">
+    <a id="Item9_c0" onkeydown="return searchResults.NavChild(event,9,0)" onkeypress="return searchResults.NavChild(event,9,0)" onkeyup="return searchResults.NavChild(event,9,0)" class="SRScope" href="../structr123array1x32.html#a2642ed91a9c6c91ace3b91add2a4feae" target="_parent">r123array1x32::const_reverse_iterator()</a>
+    <a id="Item9_c1" onkeydown="return searchResults.NavChild(event,9,1)" onkeypress="return searchResults.NavChild(event,9,1)" onkeyup="return searchResults.NavChild(event,9,1)" class="SRScope" href="../structr123array2x32.html#af298f85ad6bda860232465c5abc33618" target="_parent">r123array2x32::const_reverse_iterator()</a>
+    <a id="Item9_c2" onkeydown="return searchResults.NavChild(event,9,2)" onkeypress="return searchResults.NavChild(event,9,2)" onkeyup="return searchResults.NavChild(event,9,2)" class="SRScope" href="../structr123array4x32.html#a2926ff865e9dcbc3c20e6639aa8d0b1b" target="_parent">r123array4x32::const_reverse_iterator()</a>
+    <a id="Item9_c3" onkeydown="return searchResults.NavChild(event,9,3)" onkeypress="return searchResults.NavChild(event,9,3)" onkeyup="return searchResults.NavChild(event,9,3)" class="SRScope" href="../structr123array8x32.html#a207923147148d154b1659e257db44033" target="_parent">r123array8x32::const_reverse_iterator()</a>
+    <a id="Item9_c4" onkeydown="return searchResults.NavChild(event,9,4)" onkeypress="return searchResults.NavChild(event,9,4)" onkeyup="return searchResults.NavChild(event,9,4)" class="SRScope" href="../structr123array1x64.html#a61535adf62580285c3182a713ea0f3b1" target="_parent">r123array1x64::const_reverse_iterator()</a>
+    <a id="Item9_c5" onkeydown="return searchResults.NavChild(event,9,5)" onkeypress="return searchResults.NavChild(event,9,5)" onkeyup="return searchResults.NavChild(event,9,5)" class="SRScope" href="../structr123array2x64.html#aa37f04aef8a808c76715b3b2d49c3c30" target="_parent">r123array2x64::const_reverse_iterator()</a>
+    <a id="Item9_c6" onkeydown="return searchResults.NavChild(event,9,6)" onkeypress="return searchResults.NavChild(event,9,6)" onkeyup="return searchResults.NavChild(event,9,6)" class="SRScope" href="../structr123array4x64.html#a8405a219a9c81f8f298298cffbfd46ac" target="_parent">r123array4x64::const_reverse_iterator()</a>
+    <a id="Item9_c7" onkeydown="return searchResults.NavChild(event,9,7)" onkeypress="return searchResults.NavChild(event,9,7)" onkeyup="return searchResults.NavChild(event,9,7)" class="SRScope" href="../structr123array16x8.html#a7a774fcb52f452f832e11e13dbde6dea" target="_parent">r123array16x8::const_reverse_iterator()</a>
+    <a id="Item9_c8" onkeydown="return searchResults.NavChild(event,9,8)" onkeypress="return searchResults.NavChild(event,9,8)" onkeyup="return searchResults.NavChild(event,9,8)" class="SRScope" href="../structr123array1xm128i.html#a6bf98ce6373b157b87c6fd4a7006ed68" target="_parent">r123array1xm128i::const_reverse_iterator()</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_counter">
+ <div class="SREntry">
+  <a id="Item10" onkeydown="return searchResults.Nav(event,10)" onkeypress="return searchResults.Nav(event,10)" onkeyup="return searchResults.Nav(event,10)" class="SRSymbol" href="../classr123_1_1MicroURNG.html#a30f52334b7cfcbe6d86870496ca57ea6" target="_parent">counter</a>
+  <span class="SRScope">r123::MicroURNG</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_crbegin">
+ <div class="SREntry">
+  <a id="Item11" onkeydown="return searchResults.Nav(event,11)" onkeypress="return searchResults.Nav(event,11)" onkeyup="return searchResults.Nav(event,11)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_crbegin')">crbegin</a>
+  <div class="SRChildren">
+    <a id="Item11_c0" onkeydown="return searchResults.NavChild(event,11,0)" onkeypress="return searchResults.NavChild(event,11,0)" onkeyup="return searchResults.NavChild(event,11,0)" class="SRScope" href="../structr123array1x32.html#abe59890575233ef259a69d38bea4b5d9" target="_parent">r123array1x32::crbegin()</a>
+    <a id="Item11_c1" onkeydown="return searchResults.NavChild(event,11,1)" onkeypress="return searchResults.NavChild(event,11,1)" onkeyup="return searchResults.NavChild(event,11,1)" class="SRScope" href="../structr123array2x32.html#a09b34692bd41a710bf75e19af2353afb" target="_parent">r123array2x32::crbegin()</a>
+    <a id="Item11_c2" onkeydown="return searchResults.NavChild(event,11,2)" onkeypress="return searchResults.NavChild(event,11,2)" onkeyup="return searchResults.NavChild(event,11,2)" class="SRScope" href="../structr123array4x32.html#ad65e3e63740dc2301442718b3b8aa440" target="_parent">r123array4x32::crbegin()</a>
+    <a id="Item11_c3" onkeydown="return searchResults.NavChild(event,11,3)" onkeypress="return searchResults.NavChild(event,11,3)" onkeyup="return searchResults.NavChild(event,11,3)" class="SRScope" href="../structr123array8x32.html#a4ad5f793478a9658c52dc085b6c504ae" target="_parent">r123array8x32::crbegin()</a>
+    <a id="Item11_c4" onkeydown="return searchResults.NavChild(event,11,4)" onkeypress="return searchResults.NavChild(event,11,4)" onkeyup="return searchResults.NavChild(event,11,4)" class="SRScope" href="../structr123array1x64.html#adac6c38fef501a997b39229f54a6459c" target="_parent">r123array1x64::crbegin()</a>
+    <a id="Item11_c5" onkeydown="return searchResults.NavChild(event,11,5)" onkeypress="return searchResults.NavChild(event,11,5)" onkeyup="return searchResults.NavChild(event,11,5)" class="SRScope" href="../structr123array2x64.html#a198ff47db0778d88db4fabe5f7721564" target="_parent">r123array2x64::crbegin()</a>
+    <a id="Item11_c6" onkeydown="return searchResults.NavChild(event,11,6)" onkeypress="return searchResults.NavChild(event,11,6)" onkeyup="return searchResults.NavChild(event,11,6)" class="SRScope" href="../structr123array4x64.html#a7712a006a2b567321a6ac9e84bb267d8" target="_parent">r123array4x64::crbegin()</a>
+    <a id="Item11_c7" onkeydown="return searchResults.NavChild(event,11,7)" onkeypress="return searchResults.NavChild(event,11,7)" onkeyup="return searchResults.NavChild(event,11,7)" class="SRScope" href="../structr123array16x8.html#a2ecc3c23f3ae3939a386b334f0556d73" target="_parent">r123array16x8::crbegin()</a>
+    <a id="Item11_c8" onkeydown="return searchResults.NavChild(event,11,8)" onkeypress="return searchResults.NavChild(event,11,8)" onkeyup="return searchResults.NavChild(event,11,8)" class="SRScope" href="../structr123array1xm128i.html#a673c6cd3131269febe9a985dc76a2e08" target="_parent">r123array1xm128i::crbegin()</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_crend">
+ <div class="SREntry">
+  <a id="Item12" onkeydown="return searchResults.Nav(event,12)" onkeypress="return searchResults.Nav(event,12)" onkeyup="return searchResults.Nav(event,12)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_crend')">crend</a>
+  <div class="SRChildren">
+    <a id="Item12_c0" onkeydown="return searchResults.NavChild(event,12,0)" onkeypress="return searchResults.NavChild(event,12,0)" onkeyup="return searchResults.NavChild(event,12,0)" class="SRScope" href="../structr123array1x32.html#a7f0211b995c536c540c6b175d9433c74" target="_parent">r123array1x32::crend()</a>
+    <a id="Item12_c1" onkeydown="return searchResults.NavChild(event,12,1)" onkeypress="return searchResults.NavChild(event,12,1)" onkeyup="return searchResults.NavChild(event,12,1)" class="SRScope" href="../structr123array2x32.html#a458da2536084746b5f3face73c9f962d" target="_parent">r123array2x32::crend()</a>
+    <a id="Item12_c2" onkeydown="return searchResults.NavChild(event,12,2)" onkeypress="return searchResults.NavChild(event,12,2)" onkeyup="return searchResults.NavChild(event,12,2)" class="SRScope" href="../structr123array4x32.html#a13322be3844d39f9de76d263fa8d1f75" target="_parent">r123array4x32::crend()</a>
+    <a id="Item12_c3" onkeydown="return searchResults.NavChild(event,12,3)" onkeypress="return searchResults.NavChild(event,12,3)" onkeyup="return searchResults.NavChild(event,12,3)" class="SRScope" href="../structr123array8x32.html#ace0b6344aa8f0b9812a2610b6949a6b7" target="_parent">r123array8x32::crend()</a>
+    <a id="Item12_c4" onkeydown="return searchResults.NavChild(event,12,4)" onkeypress="return searchResults.NavChild(event,12,4)" onkeyup="return searchResults.NavChild(event,12,4)" class="SRScope" href="../structr123array1x64.html#a250e375c11846dc2635c7690f283cc20" target="_parent">r123array1x64::crend()</a>
+    <a id="Item12_c5" onkeydown="return searchResults.NavChild(event,12,5)" onkeypress="return searchResults.NavChild(event,12,5)" onkeyup="return searchResults.NavChild(event,12,5)" class="SRScope" href="../structr123array2x64.html#a5bddb882c7c9a493c382d3ce0d6d6079" target="_parent">r123array2x64::crend()</a>
+    <a id="Item12_c6" onkeydown="return searchResults.NavChild(event,12,6)" onkeypress="return searchResults.NavChild(event,12,6)" onkeyup="return searchResults.NavChild(event,12,6)" class="SRScope" href="../structr123array4x64.html#a907eb18b7392479a8ad6b2ddfaaecbd2" target="_parent">r123array4x64::crend()</a>
+    <a id="Item12_c7" onkeydown="return searchResults.NavChild(event,12,7)" onkeypress="return searchResults.NavChild(event,12,7)" onkeyup="return searchResults.NavChild(event,12,7)" class="SRScope" href="../structr123array16x8.html#a2a98e77e851e130a98d44a14ce673ffd" target="_parent">r123array16x8::crend()</a>
+    <a id="Item12_c8" onkeydown="return searchResults.NavChild(event,12,8)" onkeypress="return searchResults.NavChild(event,12,8)" onkeyup="return searchResults.NavChild(event,12,8)" class="SRScope" href="../structr123array1xm128i.html#aad72d00c81c8f6b9e8fb6b6be98056c6" target="_parent">r123array1xm128i::crend()</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_ctr_5ftype">
+ <div class="SREntry">
+  <a id="Item13" onkeydown="return searchResults.Nav(event,13)" onkeypress="return searchResults.Nav(event,13)" onkeyup="return searchResults.Nav(event,13)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_ctr_5ftype')">ctr_type</a>
+  <div class="SRChildren">
+    <a id="Item13_c0" onkeydown="return searchResults.NavChild(event,13,0)" onkeypress="return searchResults.NavChild(event,13,0)" onkeyup="return searchResults.NavChild(event,13,0)" class="SRScope" href="../structr123_1_1AESNI1xm128i.html#aaa136c21db9806859fa7cd4e2dbaaaa6" target="_parent">r123::AESNI1xm128i::ctr_type()</a>
+    <a id="Item13_c1" onkeydown="return searchResults.NavChild(event,13,1)" onkeypress="return searchResults.NavChild(event,13,1)" onkeyup="return searchResults.NavChild(event,13,1)" class="SRScope" href="../structr123_1_1AESNI4x32.html#ab8a1f8a822eecfc9e587bad76792df32" target="_parent">r123::AESNI4x32::ctr_type()</a>
+    <a id="Item13_c2" onkeydown="return searchResults.NavChild(event,13,2)" onkeypress="return searchResults.NavChild(event,13,2)" onkeyup="return searchResults.NavChild(event,13,2)" class="SRScope" href="../structr123_1_1ARS1xm128i__R.html#a13a62c94f63054828c6960979f42a268" target="_parent">r123::ARS1xm128i_R::ctr_type()</a>
+    <a id="Item13_c3" onkeydown="return searchResults.NavChild(event,13,3)" onkeypress="return searchResults.NavChild(event,13,3)" onkeyup="return searchResults.NavChild(event,13,3)" class="SRScope" href="../structr123_1_1ARS4x32__R.html#a9951dbcb50de849ded7177109b344045" target="_parent">r123::ARS4x32_R::ctr_type()</a>
+    <a id="Item13_c4" onkeydown="return searchResults.NavChild(event,13,4)" onkeypress="return searchResults.NavChild(event,13,4)" onkeyup="return searchResults.NavChild(event,13,4)" class="SRScope" href="../classr123_1_1MicroURNG.html#a5aba882fd21e4d8f1a445f546e1e4476" target="_parent">r123::MicroURNG::ctr_type()</a>
+    <a id="Item13_c5" onkeydown="return searchResults.NavChild(event,13,5)" onkeypress="return searchResults.NavChild(event,13,5)" onkeyup="return searchResults.NavChild(event,13,5)" class="SRScope" href="../structr123_1_1Philox2x32__R.html#af00c84c482900fbeca6bd2043395e599" target="_parent">r123::Philox2x32_R::ctr_type()</a>
+    <a id="Item13_c6" onkeydown="return searchResults.NavChild(event,13,6)" onkeypress="return searchResults.NavChild(event,13,6)" onkeyup="return searchResults.NavChild(event,13,6)" class="SRScope" href="../structr123_1_1Philox4x32__R.html#a23adf0320faed0fe4d12ebececdba50a" target="_parent">r123::Philox4x32_R::ctr_type()</a>
+    <a id="Item13_c7" onkeydown="return searchResults.NavChild(event,13,7)" onkeypress="return searchResults.NavChild(event,13,7)" onkeyup="return searchResults.NavChild(event,13,7)" class="SRScope" href="../structr123_1_1Philox2x64__R.html#a8e615e3f4680b9e1b986ea071fd173fc" target="_parent">r123::Philox2x64_R::ctr_type()</a>
+    <a id="Item13_c8" onkeydown="return searchResults.NavChild(event,13,8)" onkeypress="return searchResults.NavChild(event,13,8)" onkeyup="return searchResults.NavChild(event,13,8)" class="SRScope" href="../structr123_1_1Philox4x64__R.html#afd5f78b34ae7c478ebe16eb601f7b202" target="_parent">r123::Philox4x64_R::ctr_type()</a>
+    <a id="Item13_c9" onkeydown="return searchResults.NavChild(event,13,9)" onkeypress="return searchResults.NavChild(event,13,9)" onkeyup="return searchResults.NavChild(event,13,9)" class="SRScope" href="../structr123_1_1ReinterpretCtr.html#a26cf9e933b35411c37070c948085ba02" target="_parent">r123::ReinterpretCtr::ctr_type()</a>
+    <a id="Item13_c10" onkeydown="return searchResults.NavChild(event,13,10)" onkeypress="return searchResults.NavChild(event,13,10)" onkeyup="return searchResults.NavChild(event,13,10)" class="SRScope" href="../structr123_1_1Threefry2x32__R.html#a60b1b58aeaa05d467607dc570aed1357" target="_parent">r123::Threefry2x32_R::ctr_type()</a>
+    <a id="Item13_c11" onkeydown="return searchResults.NavChild(event,13,11)" onkeypress="return searchResults.NavChild(event,13,11)" onkeyup="return searchResults.NavChild(event,13,11)" class="SRScope" href="../structr123_1_1Threefry4x32__R.html#ae89dabc0060c62e0d9e5c4ac34a8550f" target="_parent">r123::Threefry4x32_R::ctr_type()</a>
+    <a id="Item13_c12" onkeydown="return searchResults.NavChild(event,13,12)" onkeypress="return searchResults.NavChild(event,13,12)" onkeyup="return searchResults.NavChild(event,13,12)" class="SRScope" href="../structr123_1_1Threefry2x64__R.html#a6b151f30bc5544671596b9df91e896d8" target="_parent">r123::Threefry2x64_R::ctr_type()</a>
+    <a id="Item13_c13" onkeydown="return searchResults.NavChild(event,13,13)" onkeypress="return searchResults.NavChild(event,13,13)" onkeyup="return searchResults.NavChild(event,13,13)" class="SRScope" href="../structr123_1_1Threefry4x64__R.html#a6c93334cb8a8b53ef01cc79b5296af0d" target="_parent">r123::Threefry4x64_R::ctr_type()</a>
+    <a id="Item13_c14" onkeydown="return searchResults.NavChild(event,13,14)" onkeypress="return searchResults.NavChild(event,13,14)" onkeyup="return searchResults.NavChild(event,13,14)" class="SRScope" href="../structr123_1_1Engine.html#a96e0f5f039d5efd6aae77b63bafaad90" target="_parent">r123::Engine::ctr_type()</a>
+  </div>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/all_64.html b/docs/html/search/all_64.html
new file mode 100644
index 0000000..4328d7d
--- /dev/null
+++ b/docs/html/search/all_64.html
@@ -0,0 +1,67 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_data">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_data')">data</a>
+  <div class="SRChildren">
+    <a id="Item0_c0" onkeydown="return searchResults.NavChild(event,0,0)" onkeypress="return searchResults.NavChild(event,0,0)" onkeyup="return searchResults.NavChild(event,0,0)" class="SRScope" href="../structr123array1x32.html#a71529eccd6d52d7c396d58fd71214d0b" target="_parent">r123array1x32::data()</a>
+    <a id="Item0_c1" onkeydown="return searchResults.NavChild(event,0,1)" onkeypress="return searchResults.NavChild(event,0,1)" onkeyup="return searchResults.NavChild(event,0,1)" class="SRScope" href="../structr123array1x32.html#a8ca295876693f207df52a7cce6f96241" target="_parent">r123array1x32::data() const </a>
+    <a id="Item0_c2" onkeydown="return searchResults.NavChild(event,0,2)" onkeypress="return searchResults.NavChild(event,0,2)" onkeyup="return searchResults.NavChild(event,0,2)" class="SRScope" href="../structr123array2x32.html#a76f2b3cd04d0502121b3c7894663e178" target="_parent">r123array2x32::data()</a>
+    <a id="Item0_c3" onkeydown="return searchResults.NavChild(event,0,3)" onkeypress="return searchResults.NavChild(event,0,3)" onkeyup="return searchResults.NavChild(event,0,3)" class="SRScope" href="../structr123array2x32.html#a15d5bce0ea3596ad5f7b5aa7432a33df" target="_parent">r123array2x32::data() const </a>
+    <a id="Item0_c4" onkeydown="return searchResults.NavChild(event,0,4)" onkeypress="return searchResults.NavChild(event,0,4)" onkeyup="return searchResults.NavChild(event,0,4)" class="SRScope" href="../structr123array4x32.html#a72ee678cce1fa539f44480eb269a01f9" target="_parent">r123array4x32::data()</a>
+    <a id="Item0_c5" onkeydown="return searchResults.NavChild(event,0,5)" onkeypress="return searchResults.NavChild(event,0,5)" onkeyup="return searchResults.NavChild(event,0,5)" class="SRScope" href="../structr123array4x32.html#a20dd9fc18f9db8fe8e8eb08311398d22" target="_parent">r123array4x32::data() const </a>
+    <a id="Item0_c6" onkeydown="return searchResults.NavChild(event,0,6)" onkeypress="return searchResults.NavChild(event,0,6)" onkeyup="return searchResults.NavChild(event,0,6)" class="SRScope" href="../structr123array8x32.html#a78448bbbef69b3383eec4d78a814b4b2" target="_parent">r123array8x32::data()</a>
+    <a id="Item0_c7" onkeydown="return searchResults.NavChild(event,0,7)" onkeypress="return searchResults.NavChild(event,0,7)" onkeyup="return searchResults.NavChild(event,0,7)" class="SRScope" href="../structr123array8x32.html#a0e2eb8cfaf36664411f19a6828339553" target="_parent">r123array8x32::data() const </a>
+    <a id="Item0_c8" onkeydown="return searchResults.NavChild(event,0,8)" onkeypress="return searchResults.NavChild(event,0,8)" onkeyup="return searchResults.NavChild(event,0,8)" class="SRScope" href="../structr123array1x64.html#a2ecd5718a0fd863dd7a3eb724e07a540" target="_parent">r123array1x64::data()</a>
+    <a id="Item0_c9" onkeydown="return searchResults.NavChild(event,0,9)" onkeypress="return searchResults.NavChild(event,0,9)" onkeyup="return searchResults.NavChild(event,0,9)" class="SRScope" href="../structr123array1x64.html#a02cd843e927803bd09f00b1a5541c72c" target="_parent">r123array1x64::data() const </a>
+    <a id="Item0_c10" onkeydown="return searchResults.NavChild(event,0,10)" onkeypress="return searchResults.NavChild(event,0,10)" onkeyup="return searchResults.NavChild(event,0,10)" class="SRScope" href="../structr123array2x64.html#a9a6eb23f15f9ee3a55f39b951798a739" target="_parent">r123array2x64::data()</a>
+    <a id="Item0_c11" onkeydown="return searchResults.NavChild(event,0,11)" onkeypress="return searchResults.NavChild(event,0,11)" onkeyup="return searchResults.NavChild(event,0,11)" class="SRScope" href="../structr123array2x64.html#a9cdb592780378bdcc8a560e31e11f084" target="_parent">r123array2x64::data() const </a>
+    <a id="Item0_c12" onkeydown="return searchResults.NavChild(event,0,12)" onkeypress="return searchResults.NavChild(event,0,12)" onkeyup="return searchResults.NavChild(event,0,12)" class="SRScope" href="../structr123array4x64.html#a8567c3d6c4ee6c9cc2d8770d26e7fee9" target="_parent">r123array4x64::data()</a>
+    <a id="Item0_c13" onkeydown="return searchResults.NavChild(event,0,13)" onkeypress="return searchResults.NavChild(event,0,13)" onkeyup="return searchResults.NavChild(event,0,13)" class="SRScope" href="../structr123array4x64.html#a31591d0bca18339d42c3a182a30457a0" target="_parent">r123array4x64::data() const </a>
+    <a id="Item0_c14" onkeydown="return searchResults.NavChild(event,0,14)" onkeypress="return searchResults.NavChild(event,0,14)" onkeyup="return searchResults.NavChild(event,0,14)" class="SRScope" href="../structr123array16x8.html#aac0eda610fbd60cdaae5d1e2aa4eb03f" target="_parent">r123array16x8::data()</a>
+    <a id="Item0_c15" onkeydown="return searchResults.NavChild(event,0,15)" onkeypress="return searchResults.NavChild(event,0,15)" onkeyup="return searchResults.NavChild(event,0,15)" class="SRScope" href="../structr123array16x8.html#aced4f7455fcc853a4e947b9bf892c45e" target="_parent">r123array16x8::data() const </a>
+    <a id="Item0_c16" onkeydown="return searchResults.NavChild(event,0,16)" onkeypress="return searchResults.NavChild(event,0,16)" onkeyup="return searchResults.NavChild(event,0,16)" class="SRScope" href="../structr123array1xm128i.html#acb25bc645e95f975ca6cbcb692add4b4" target="_parent">r123array1xm128i::data()</a>
+    <a id="Item0_c17" onkeydown="return searchResults.NavChild(event,0,17)" onkeypress="return searchResults.NavChild(event,0,17)" onkeyup="return searchResults.NavChild(event,0,17)" class="SRScope" href="../structr123array1xm128i.html#ac66f2efebe9e32433b25f96ea3cf34fe" target="_parent">r123array1xm128i::data() const </a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_difference_5ftype">
+ <div class="SREntry">
+  <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_difference_5ftype')">difference_type</a>
+  <div class="SRChildren">
+    <a id="Item1_c0" onkeydown="return searchResults.NavChild(event,1,0)" onkeypress="return searchResults.NavChild(event,1,0)" onkeyup="return searchResults.NavChild(event,1,0)" class="SRScope" href="../structr123array1x32.html#a1084c78861e725e58c14c67af242952f" target="_parent">r123array1x32::difference_type()</a>
+    <a id="Item1_c1" onkeydown="return searchResults.NavChild(event,1,1)" onkeypress="return searchResults.NavChild(event,1,1)" onkeyup="return searchResults.NavChild(event,1,1)" class="SRScope" href="../structr123array2x32.html#aa3dfe31d2483fb629a9e3ac304b24d07" target="_parent">r123array2x32::difference_type()</a>
+    <a id="Item1_c2" onkeydown="return searchResults.NavChild(event,1,2)" onkeypress="return searchResults.NavChild(event,1,2)" onkeyup="return searchResults.NavChild(event,1,2)" class="SRScope" href="../structr123array4x32.html#a3c690c039797cafe4718c03377937fb7" target="_parent">r123array4x32::difference_type()</a>
+    <a id="Item1_c3" onkeydown="return searchResults.NavChild(event,1,3)" onkeypress="return searchResults.NavChild(event,1,3)" onkeyup="return searchResults.NavChild(event,1,3)" class="SRScope" href="../structr123array8x32.html#af8029821cb8a7b5a3500adb30d4f2326" target="_parent">r123array8x32::difference_type()</a>
+    <a id="Item1_c4" onkeydown="return searchResults.NavChild(event,1,4)" onkeypress="return searchResults.NavChild(event,1,4)" onkeyup="return searchResults.NavChild(event,1,4)" class="SRScope" href="../structr123array1x64.html#a2abaa7dd6823b724ec6038b504c77011" target="_parent">r123array1x64::difference_type()</a>
+    <a id="Item1_c5" onkeydown="return searchResults.NavChild(event,1,5)" onkeypress="return searchResults.NavChild(event,1,5)" onkeyup="return searchResults.NavChild(event,1,5)" class="SRScope" href="../structr123array2x64.html#a4227cd6be973fdb0d72398d0b5604da8" target="_parent">r123array2x64::difference_type()</a>
+    <a id="Item1_c6" onkeydown="return searchResults.NavChild(event,1,6)" onkeypress="return searchResults.NavChild(event,1,6)" onkeyup="return searchResults.NavChild(event,1,6)" class="SRScope" href="../structr123array4x64.html#a3b1c7395f17992d8760fe93d3930db12" target="_parent">r123array4x64::difference_type()</a>
+    <a id="Item1_c7" onkeydown="return searchResults.NavChild(event,1,7)" onkeypress="return searchResults.NavChild(event,1,7)" onkeyup="return searchResults.NavChild(event,1,7)" class="SRScope" href="../structr123array16x8.html#aaae0b6c18de6ce92ea55bf1b9bdbdf69" target="_parent">r123array16x8::difference_type()</a>
+    <a id="Item1_c8" onkeydown="return searchResults.NavChild(event,1,8)" onkeypress="return searchResults.NavChild(event,1,8)" onkeyup="return searchResults.NavChild(event,1,8)" class="SRScope" href="../structr123array1xm128i.html#a319811ed6105c3050135d8ec3ba36f7a" target="_parent">r123array1xm128i::difference_type()</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_discard">
+ <div class="SREntry">
+  <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../structr123_1_1Engine.html#a82a56c2c02b146dceb68ef3fd0a969fb" target="_parent">discard</a>
+  <span class="SRScope">r123::Engine</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/all_65.html b/docs/html/search/all_65.html
new file mode 100644
index 0000000..18bf573
--- /dev/null
+++ b/docs/html/search/all_65.html
@@ -0,0 +1,98 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_elem">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structr123_1_1Engine.html#a7b40128e9dc7427cd13d27477647b319" target="_parent">elem</a>
+  <span class="SRScope">r123::Engine</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_elem_5ftype">
+ <div class="SREntry">
+  <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../structr123_1_1Engine.html#a8fb9eb1ab76ad9b5374a47cf84ecd306" target="_parent">elem_type</a>
+  <span class="SRScope">r123::Engine</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_empty">
+ <div class="SREntry">
+  <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_empty')">empty</a>
+  <div class="SRChildren">
+    <a id="Item2_c0" onkeydown="return searchResults.NavChild(event,2,0)" onkeypress="return searchResults.NavChild(event,2,0)" onkeyup="return searchResults.NavChild(event,2,0)" class="SRScope" href="../structr123array1x32.html#ae791cf5ce80a35610c3b4d52ea533651" target="_parent">r123array1x32::empty()</a>
+    <a id="Item2_c1" onkeydown="return searchResults.NavChild(event,2,1)" onkeypress="return searchResults.NavChild(event,2,1)" onkeyup="return searchResults.NavChild(event,2,1)" class="SRScope" href="../structr123array2x32.html#acc67c9fedcddd77fdb2727c088eaab9d" target="_parent">r123array2x32::empty()</a>
+    <a id="Item2_c2" onkeydown="return searchResults.NavChild(event,2,2)" onkeypress="return searchResults.NavChild(event,2,2)" onkeyup="return searchResults.NavChild(event,2,2)" class="SRScope" href="../structr123array4x32.html#a4bc944eee354be2b258c0991d3cc61e1" target="_parent">r123array4x32::empty()</a>
+    <a id="Item2_c3" onkeydown="return searchResults.NavChild(event,2,3)" onkeypress="return searchResults.NavChild(event,2,3)" onkeyup="return searchResults.NavChild(event,2,3)" class="SRScope" href="../structr123array8x32.html#af2276e84924345efab98214be1691c83" target="_parent">r123array8x32::empty()</a>
+    <a id="Item2_c4" onkeydown="return searchResults.NavChild(event,2,4)" onkeypress="return searchResults.NavChild(event,2,4)" onkeyup="return searchResults.NavChild(event,2,4)" class="SRScope" href="../structr123array1x64.html#af8636ea61389dcf15e94a5da70bd6bc0" target="_parent">r123array1x64::empty()</a>
+    <a id="Item2_c5" onkeydown="return searchResults.NavChild(event,2,5)" onkeypress="return searchResults.NavChild(event,2,5)" onkeyup="return searchResults.NavChild(event,2,5)" class="SRScope" href="../structr123array2x64.html#a60ed2f5af6357930b50a8de8f294f5c2" target="_parent">r123array2x64::empty()</a>
+    <a id="Item2_c6" onkeydown="return searchResults.NavChild(event,2,6)" onkeypress="return searchResults.NavChild(event,2,6)" onkeyup="return searchResults.NavChild(event,2,6)" class="SRScope" href="../structr123array4x64.html#a51e4ded187a3f1ebadd6b915da039c3f" target="_parent">r123array4x64::empty()</a>
+    <a id="Item2_c7" onkeydown="return searchResults.NavChild(event,2,7)" onkeypress="return searchResults.NavChild(event,2,7)" onkeyup="return searchResults.NavChild(event,2,7)" class="SRScope" href="../structr123array16x8.html#a5f07441771ec90cd05a2c26fb64e575e" target="_parent">r123array16x8::empty()</a>
+    <a id="Item2_c8" onkeydown="return searchResults.NavChild(event,2,8)" onkeypress="return searchResults.NavChild(event,2,8)" onkeyup="return searchResults.NavChild(event,2,8)" class="SRScope" href="../structr123array1xm128i.html#aa3e59f1626f2cadab5bc66e415ff0c72" target="_parent">r123array1xm128i::empty()</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_end">
+ <div class="SREntry">
+  <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_end')">end</a>
+  <div class="SRChildren">
+    <a id="Item3_c0" onkeydown="return searchResults.NavChild(event,3,0)" onkeypress="return searchResults.NavChild(event,3,0)" onkeyup="return searchResults.NavChild(event,3,0)" class="SRScope" href="../structr123array1x32.html#ac2b5032395c448c4598321f5a37ec29c" target="_parent">r123array1x32::end()</a>
+    <a id="Item3_c1" onkeydown="return searchResults.NavChild(event,3,1)" onkeypress="return searchResults.NavChild(event,3,1)" onkeyup="return searchResults.NavChild(event,3,1)" class="SRScope" href="../structr123array1x32.html#a5bda32a4f4e8e783744ed7f183dde0b2" target="_parent">r123array1x32::end() const </a>
+    <a id="Item3_c2" onkeydown="return searchResults.NavChild(event,3,2)" onkeypress="return searchResults.NavChild(event,3,2)" onkeyup="return searchResults.NavChild(event,3,2)" class="SRScope" href="../structr123array2x32.html#a0d98e92b198e8a314d46f9c6fd0771a7" target="_parent">r123array2x32::end()</a>
+    <a id="Item3_c3" onkeydown="return searchResults.NavChild(event,3,3)" onkeypress="return searchResults.NavChild(event,3,3)" onkeyup="return searchResults.NavChild(event,3,3)" class="SRScope" href="../structr123array2x32.html#ad64dc05d5114c74d104bca45f21992fd" target="_parent">r123array2x32::end() const </a>
+    <a id="Item3_c4" onkeydown="return searchResults.NavChild(event,3,4)" onkeypress="return searchResults.NavChild(event,3,4)" onkeyup="return searchResults.NavChild(event,3,4)" class="SRScope" href="../structr123array4x32.html#a83dd3d17e17bb6a93b7cd544b0e9a403" target="_parent">r123array4x32::end()</a>
+    <a id="Item3_c5" onkeydown="return searchResults.NavChild(event,3,5)" onkeypress="return searchResults.NavChild(event,3,5)" onkeyup="return searchResults.NavChild(event,3,5)" class="SRScope" href="../structr123array4x32.html#ac6e732c58b1a5ad954c3b6f2be8385a1" target="_parent">r123array4x32::end() const </a>
+    <a id="Item3_c6" onkeydown="return searchResults.NavChild(event,3,6)" onkeypress="return searchResults.NavChild(event,3,6)" onkeyup="return searchResults.NavChild(event,3,6)" class="SRScope" href="../structr123array8x32.html#a40c40a7a86150ec0e9d29739e0e649c3" target="_parent">r123array8x32::end()</a>
+    <a id="Item3_c7" onkeydown="return searchResults.NavChild(event,3,7)" onkeypress="return searchResults.NavChild(event,3,7)" onkeyup="return searchResults.NavChild(event,3,7)" class="SRScope" href="../structr123array8x32.html#acc1aa99ed89deb63c3ba7f71319ac10c" target="_parent">r123array8x32::end() const </a>
+    <a id="Item3_c8" onkeydown="return searchResults.NavChild(event,3,8)" onkeypress="return searchResults.NavChild(event,3,8)" onkeyup="return searchResults.NavChild(event,3,8)" class="SRScope" href="../structr123array1x64.html#a18a5fa64dbe73dc4f9fd0b6c45fe283f" target="_parent">r123array1x64::end()</a>
+    <a id="Item3_c9" onkeydown="return searchResults.NavChild(event,3,9)" onkeypress="return searchResults.NavChild(event,3,9)" onkeyup="return searchResults.NavChild(event,3,9)" class="SRScope" href="../structr123array1x64.html#a595e77ff43ac41c4937e91f6d109a46a" target="_parent">r123array1x64::end() const </a>
+    <a id="Item3_c10" onkeydown="return searchResults.NavChild(event,3,10)" onkeypress="return searchResults.NavChild(event,3,10)" onkeyup="return searchResults.NavChild(event,3,10)" class="SRScope" href="../structr123array2x64.html#a24679f6a101d9d25b339106a771c4e68" target="_parent">r123array2x64::end()</a>
+    <a id="Item3_c11" onkeydown="return searchResults.NavChild(event,3,11)" onkeypress="return searchResults.NavChild(event,3,11)" onkeyup="return searchResults.NavChild(event,3,11)" class="SRScope" href="../structr123array2x64.html#af16f99514770cb88a57e36b1b849e80d" target="_parent">r123array2x64::end() const </a>
+    <a id="Item3_c12" onkeydown="return searchResults.NavChild(event,3,12)" onkeypress="return searchResults.NavChild(event,3,12)" onkeyup="return searchResults.NavChild(event,3,12)" class="SRScope" href="../structr123array4x64.html#a298a04608a19dd91cb30bd7980ad796f" target="_parent">r123array4x64::end()</a>
+    <a id="Item3_c13" onkeydown="return searchResults.NavChild(event,3,13)" onkeypress="return searchResults.NavChild(event,3,13)" onkeyup="return searchResults.NavChild(event,3,13)" class="SRScope" href="../structr123array4x64.html#a9fed923c39000c81f7f6b608d88953f9" target="_parent">r123array4x64::end() const </a>
+    <a id="Item3_c14" onkeydown="return searchResults.NavChild(event,3,14)" onkeypress="return searchResults.NavChild(event,3,14)" onkeyup="return searchResults.NavChild(event,3,14)" class="SRScope" href="../structr123array16x8.html#aa0d2b0c70133dde0535b0a5e12283626" target="_parent">r123array16x8::end()</a>
+    <a id="Item3_c15" onkeydown="return searchResults.NavChild(event,3,15)" onkeypress="return searchResults.NavChild(event,3,15)" onkeyup="return searchResults.NavChild(event,3,15)" class="SRScope" href="../structr123array16x8.html#aee42dddf2a59858114a31d760f2c1227" target="_parent">r123array16x8::end() const </a>
+    <a id="Item3_c16" onkeydown="return searchResults.NavChild(event,3,16)" onkeypress="return searchResults.NavChild(event,3,16)" onkeyup="return searchResults.NavChild(event,3,16)" class="SRScope" href="../structr123array1xm128i.html#a7383241079a4eae9fee0e184261174fd" target="_parent">r123array1xm128i::end()</a>
+    <a id="Item3_c17" onkeydown="return searchResults.NavChild(event,3,17)" onkeypress="return searchResults.NavChild(event,3,17)" onkeyup="return searchResults.NavChild(event,3,17)" class="SRScope" href="../structr123array1xm128i.html#ae8ddb01064f8cdfbb7314d2f1fbd0dfd" target="_parent">r123array1xm128i::end() const </a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_engine">
+ <div class="SREntry">
+  <a id="Item4" onkeydown="return searchResults.Nav(event,4)" onkeypress="return searchResults.Nav(event,4)" onkeyup="return searchResults.Nav(event,4)" class="SRSymbol" href="../structr123_1_1Engine.html" target="_parent">Engine</a>
+  <span class="SRScope">r123</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_engine">
+ <div class="SREntry">
+  <a id="Item5" onkeydown="return searchResults.Nav(event,5)" onkeypress="return searchResults.Nav(event,5)" onkeyup="return searchResults.Nav(event,5)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_engine')">Engine</a>
+  <div class="SRChildren">
+    <a id="Item5_c0" onkeydown="return searchResults.NavChild(event,5,0)" onkeypress="return searchResults.NavChild(event,5,0)" onkeyup="return searchResults.NavChild(event,5,0)" class="SRScope" href="../structr123_1_1Engine.html#ac5676bbe189b0cdc1bef0dd812262ccd" target="_parent">r123::Engine::Engine()</a>
+    <a id="Item5_c1" onkeydown="return searchResults.NavChild(event,5,1)" onkeypress="return searchResults.NavChild(event,5,1)" onkeyup="return searchResults.NavChild(event,5,1)" class="SRScope" href="../structr123_1_1Engine.html#ae1a249af828cfdac77db6c16e3f8f8eb" target="_parent">r123::Engine::Engine(result_type r)</a>
+    <a id="Item5_c2" onkeydown="return searchResults.NavChild(event,5,2)" onkeypress="return searchResults.NavChild(event,5,2)" onkeyup="return searchResults.NavChild(event,5,2)" class="SRScope" href="../structr123_1_1Engine.html#a37dd55cee849b59d678f74780f785672" target="_parent">r123::Engine::Engine(Engine &e)</a>
+    <a id="Item5_c3" onkeydown="return searchResults.NavChild(event,5,3)" onkeypress="return searchResults.NavChild(event,5,3)" onkeyup="return searchResults.NavChild(event,5,3)" class="SRScope" href="../structr123_1_1Engine.html#a478b486b166316597a51ffdd7b5b2d0c" target="_parent">r123::Engine::Engine(const Engine &e)</a>
+    <a id="Item5_c4" onkeydown="return searchResults.NavChild(event,5,4)" onkeypress="return searchResults.NavChild(event,5,4)" onkeyup="return searchResults.NavChild(event,5,4)" class="SRScope" href="../structr123_1_1Engine.html#a52b968cfefe413441d668b3013de023a" target="_parent">r123::Engine::Engine(SeedSeq &s)</a>
+    <a id="Item5_c5" onkeydown="return searchResults.NavChild(event,5,5)" onkeypress="return searchResults.NavChild(event,5,5)" onkeyup="return searchResults.NavChild(event,5,5)" class="SRScope" href="../structr123_1_1Engine.html#ab5f45b4eb97995cc45350abee3ec8388" target="_parent">r123::Engine::Engine(const ukey_type &uk)</a>
+    <a id="Item5_c6" onkeydown="return searchResults.NavChild(event,5,6)" onkeypress="return searchResults.NavChild(event,5,6)" onkeyup="return searchResults.NavChild(event,5,6)" class="SRScope" href="../structr123_1_1Engine.html#aeb178b9305cbf1fb7e11e8e33a631ba7" target="_parent">r123::Engine::Engine(ukey_type &uk)</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_engine_2ehpp">
+ <div class="SREntry">
+  <a id="Item6" onkeydown="return searchResults.Nav(event,6)" onkeypress="return searchResults.Nav(event,6)" onkeyup="return searchResults.Nav(event,6)" class="SRSymbol" href="../Engine_8hpp.html" target="_parent">Engine.hpp</a>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/all_66.html b/docs/html/search/all_66.html
new file mode 100644
index 0000000..a27f2ff
--- /dev/null
+++ b/docs/html/search/all_66.html
@@ -0,0 +1,67 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_fill">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_fill')">fill</a>
+  <div class="SRChildren">
+    <a id="Item0_c0" onkeydown="return searchResults.NavChild(event,0,0)" onkeypress="return searchResults.NavChild(event,0,0)" onkeyup="return searchResults.NavChild(event,0,0)" class="SRScope" href="../structr123array1x32.html#a973dbecc59b1d5f5a95bda92d25e5e73" target="_parent">r123array1x32::fill()</a>
+    <a id="Item0_c1" onkeydown="return searchResults.NavChild(event,0,1)" onkeypress="return searchResults.NavChild(event,0,1)" onkeyup="return searchResults.NavChild(event,0,1)" class="SRScope" href="../structr123array2x32.html#af7ea9ed8a064e9cab59ee97885bb459e" target="_parent">r123array2x32::fill()</a>
+    <a id="Item0_c2" onkeydown="return searchResults.NavChild(event,0,2)" onkeypress="return searchResults.NavChild(event,0,2)" onkeyup="return searchResults.NavChild(event,0,2)" class="SRScope" href="../structr123array4x32.html#ae362d7908c2ecc308f6fd4e085ace980" target="_parent">r123array4x32::fill()</a>
+    <a id="Item0_c3" onkeydown="return searchResults.NavChild(event,0,3)" onkeypress="return searchResults.NavChild(event,0,3)" onkeyup="return searchResults.NavChild(event,0,3)" class="SRScope" href="../structr123array8x32.html#a86481aecfb276687e9389cb6c43e1e8c" target="_parent">r123array8x32::fill()</a>
+    <a id="Item0_c4" onkeydown="return searchResults.NavChild(event,0,4)" onkeypress="return searchResults.NavChild(event,0,4)" onkeyup="return searchResults.NavChild(event,0,4)" class="SRScope" href="../structr123array1x64.html#ac9a372e0980632a4db29bb243b672039" target="_parent">r123array1x64::fill()</a>
+    <a id="Item0_c5" onkeydown="return searchResults.NavChild(event,0,5)" onkeypress="return searchResults.NavChild(event,0,5)" onkeyup="return searchResults.NavChild(event,0,5)" class="SRScope" href="../structr123array2x64.html#a30d20bbf203dbd0b592c6cb58cb6dcdb" target="_parent">r123array2x64::fill()</a>
+    <a id="Item0_c6" onkeydown="return searchResults.NavChild(event,0,6)" onkeypress="return searchResults.NavChild(event,0,6)" onkeyup="return searchResults.NavChild(event,0,6)" class="SRScope" href="../structr123array4x64.html#a6580c77b7d68c0a76b5bef33e59ac662" target="_parent">r123array4x64::fill()</a>
+    <a id="Item0_c7" onkeydown="return searchResults.NavChild(event,0,7)" onkeypress="return searchResults.NavChild(event,0,7)" onkeyup="return searchResults.NavChild(event,0,7)" class="SRScope" href="../structr123array16x8.html#a883d42092ab4bae2eac132706ed06103" target="_parent">r123array16x8::fill()</a>
+    <a id="Item0_c8" onkeydown="return searchResults.NavChild(event,0,8)" onkeypress="return searchResults.NavChild(event,0,8)" onkeyup="return searchResults.NavChild(event,0,8)" class="SRScope" href="../structr123array1xm128i.html#a7eba15dc035724245f70b4a3a98c6a52" target="_parent">r123array1xm128i::fill()</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_fix_5finvariant">
+ <div class="SREntry">
+  <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../structr123_1_1Engine.html#aa7ad87d7238a0f820ee37640071dee7d" target="_parent">fix_invariant</a>
+  <span class="SRScope">r123::Engine</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_front">
+ <div class="SREntry">
+  <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_front')">front</a>
+  <div class="SRChildren">
+    <a id="Item2_c0" onkeydown="return searchResults.NavChild(event,2,0)" onkeypress="return searchResults.NavChild(event,2,0)" onkeyup="return searchResults.NavChild(event,2,0)" class="SRScope" href="../structr123array1x32.html#a69727e5b1c14fcc2f7c9b6af4410cc16" target="_parent">r123array1x32::front()</a>
+    <a id="Item2_c1" onkeydown="return searchResults.NavChild(event,2,1)" onkeypress="return searchResults.NavChild(event,2,1)" onkeyup="return searchResults.NavChild(event,2,1)" class="SRScope" href="../structr123array1x32.html#af94d0df621b1de0b6a3ed904c276eb84" target="_parent">r123array1x32::front() const </a>
+    <a id="Item2_c2" onkeydown="return searchResults.NavChild(event,2,2)" onkeypress="return searchResults.NavChild(event,2,2)" onkeyup="return searchResults.NavChild(event,2,2)" class="SRScope" href="../structr123array2x32.html#ad5e3ba16c4d22c3ac0775337bef3cc70" target="_parent">r123array2x32::front()</a>
+    <a id="Item2_c3" onkeydown="return searchResults.NavChild(event,2,3)" onkeypress="return searchResults.NavChild(event,2,3)" onkeyup="return searchResults.NavChild(event,2,3)" class="SRScope" href="../structr123array2x32.html#a933676c34296b74eeea8a56a3c904a2c" target="_parent">r123array2x32::front() const </a>
+    <a id="Item2_c4" onkeydown="return searchResults.NavChild(event,2,4)" onkeypress="return searchResults.NavChild(event,2,4)" onkeyup="return searchResults.NavChild(event,2,4)" class="SRScope" href="../structr123array4x32.html#a82b3fdeacb835bb64765def4bef92751" target="_parent">r123array4x32::front()</a>
+    <a id="Item2_c5" onkeydown="return searchResults.NavChild(event,2,5)" onkeypress="return searchResults.NavChild(event,2,5)" onkeyup="return searchResults.NavChild(event,2,5)" class="SRScope" href="../structr123array4x32.html#ab3434550aea3d2e04579cb255b0b4e9e" target="_parent">r123array4x32::front() const </a>
+    <a id="Item2_c6" onkeydown="return searchResults.NavChild(event,2,6)" onkeypress="return searchResults.NavChild(event,2,6)" onkeyup="return searchResults.NavChild(event,2,6)" class="SRScope" href="../structr123array8x32.html#aeab7da4db40303e2104b79c2d8f3eced" target="_parent">r123array8x32::front()</a>
+    <a id="Item2_c7" onkeydown="return searchResults.NavChild(event,2,7)" onkeypress="return searchResults.NavChild(event,2,7)" onkeyup="return searchResults.NavChild(event,2,7)" class="SRScope" href="../structr123array8x32.html#aee2127f4a99f86b3fc7a9059e7d84e76" target="_parent">r123array8x32::front() const </a>
+    <a id="Item2_c8" onkeydown="return searchResults.NavChild(event,2,8)" onkeypress="return searchResults.NavChild(event,2,8)" onkeyup="return searchResults.NavChild(event,2,8)" class="SRScope" href="../structr123array1x64.html#a7d205216932e36303f62b38d233247d5" target="_parent">r123array1x64::front()</a>
+    <a id="Item2_c9" onkeydown="return searchResults.NavChild(event,2,9)" onkeypress="return searchResults.NavChild(event,2,9)" onkeyup="return searchResults.NavChild(event,2,9)" class="SRScope" href="../structr123array1x64.html#a7c0a3159492b3405a8019ce52cdf2c69" target="_parent">r123array1x64::front() const </a>
+    <a id="Item2_c10" onkeydown="return searchResults.NavChild(event,2,10)" onkeypress="return searchResults.NavChild(event,2,10)" onkeyup="return searchResults.NavChild(event,2,10)" class="SRScope" href="../structr123array2x64.html#a95b79f70de75c8346dbae7c5f933d076" target="_parent">r123array2x64::front()</a>
+    <a id="Item2_c11" onkeydown="return searchResults.NavChild(event,2,11)" onkeypress="return searchResults.NavChild(event,2,11)" onkeyup="return searchResults.NavChild(event,2,11)" class="SRScope" href="../structr123array2x64.html#a21cf5457f945f5c00b16ce4a73797c1b" target="_parent">r123array2x64::front() const </a>
+    <a id="Item2_c12" onkeydown="return searchResults.NavChild(event,2,12)" onkeypress="return searchResults.NavChild(event,2,12)" onkeyup="return searchResults.NavChild(event,2,12)" class="SRScope" href="../structr123array4x64.html#a975ecaf4c5332fc400dfc8d6d60d9035" target="_parent">r123array4x64::front()</a>
+    <a id="Item2_c13" onkeydown="return searchResults.NavChild(event,2,13)" onkeypress="return searchResults.NavChild(event,2,13)" onkeyup="return searchResults.NavChild(event,2,13)" class="SRScope" href="../structr123array4x64.html#a256920b96d1d3a4c61489b145da7383e" target="_parent">r123array4x64::front() const </a>
+    <a id="Item2_c14" onkeydown="return searchResults.NavChild(event,2,14)" onkeypress="return searchResults.NavChild(event,2,14)" onkeyup="return searchResults.NavChild(event,2,14)" class="SRScope" href="../structr123array16x8.html#ad293e6494e131ff96941e963d9208586" target="_parent">r123array16x8::front()</a>
+    <a id="Item2_c15" onkeydown="return searchResults.NavChild(event,2,15)" onkeypress="return searchResults.NavChild(event,2,15)" onkeyup="return searchResults.NavChild(event,2,15)" class="SRScope" href="../structr123array16x8.html#a85528130b6941b3f7b57265c201345c2" target="_parent">r123array16x8::front() const </a>
+    <a id="Item2_c16" onkeydown="return searchResults.NavChild(event,2,16)" onkeypress="return searchResults.NavChild(event,2,16)" onkeyup="return searchResults.NavChild(event,2,16)" class="SRScope" href="../structr123array1xm128i.html#a7efd9b7ccf35c3730fbdafb147e11660" target="_parent">r123array1xm128i::front()</a>
+    <a id="Item2_c17" onkeydown="return searchResults.NavChild(event,2,17)" onkeypress="return searchResults.NavChild(event,2,17)" onkeyup="return searchResults.NavChild(event,2,17)" class="SRScope" href="../structr123array1xm128i.html#a0b5a33169ae87744ab353bfa7dc8f710" target="_parent">r123array1xm128i::front() const </a>
+  </div>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/all_67.html b/docs/html/search/all_67.html
new file mode 100644
index 0000000..e24721d
--- /dev/null
+++ b/docs/html/search/all_67.html
@@ -0,0 +1,54 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_getcounter">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structr123_1_1Engine.html#a621df886f2a21ffb22e63d9094389173" target="_parent">getcounter</a>
+  <span class="SRScope">r123::Engine</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_getseed">
+ <div class="SREntry">
+  <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../structr123_1_1Engine.html#aa7812a494fdb677c2e325db0acfe924a" target="_parent">getseed</a>
+  <span class="SRScope">r123::Engine</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_gsl_5fcbrng">
+ <div class="SREntry">
+  <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../gsl__cbrng_8h.html#af561a004eef8e93cdfd6b255a8a1eb75" target="_parent">GSL_CBRNG</a>
+  <span class="SRScope">gsl_cbrng.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_gsl_5fcbrng_2eh">
+ <div class="SREntry">
+  <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="../gsl__cbrng_8h.html" target="_parent">gsl_cbrng.h</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_gsl_5fmicrorng">
+ <div class="SREntry">
+  <a id="Item4" onkeydown="return searchResults.Nav(event,4)" onkeypress="return searchResults.Nav(event,4)" onkeyup="return searchResults.Nav(event,4)" class="SRSymbol" href="../gsl__microrng_8h.html#a21c7bb64a536a1704c6dc96856b78297" target="_parent">GSL_MICRORNG</a>
+  <span class="SRScope">gsl_microrng.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_gsl_5fmicrorng_2eh">
+ <div class="SREntry">
+  <a id="Item5" onkeydown="return searchResults.Nav(event,5)" onkeypress="return searchResults.Nav(event,5)" onkeyup="return searchResults.Nav(event,5)" class="SRSymbol" href="../gsl__microrng_8h.html" target="_parent">gsl_microrng.h</a>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/all_68.html b/docs/html/search/all_68.html
new file mode 100644
index 0000000..d4c1545
--- /dev/null
+++ b/docs/html/search/all_68.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_haveaesni">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../sse_8h.html#a0b35a046e85316295476d7d552411044" target="_parent">haveAESNI</a>
+  <span class="SRScope">sse.h</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/all_69.html b/docs/html/search/all_69.html
new file mode 100644
index 0000000..35f5b17
--- /dev/null
+++ b/docs/html/search/all_69.html
@@ -0,0 +1,68 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_incr">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_incr')">incr</a>
+  <div class="SRChildren">
+    <a id="Item0_c0" onkeydown="return searchResults.NavChild(event,0,0)" onkeypress="return searchResults.NavChild(event,0,0)" onkeyup="return searchResults.NavChild(event,0,0)" class="SRScope" href="../structr123array1x32.html#aae5fbc153a37b06ea466f2283551622f" target="_parent">r123array1x32::incr()</a>
+    <a id="Item0_c1" onkeydown="return searchResults.NavChild(event,0,1)" onkeypress="return searchResults.NavChild(event,0,1)" onkeyup="return searchResults.NavChild(event,0,1)" class="SRScope" href="../structr123array2x32.html#a7b295f3a299c8cf24a75ab7f9edfe46f" target="_parent">r123array2x32::incr()</a>
+    <a id="Item0_c2" onkeydown="return searchResults.NavChild(event,0,2)" onkeypress="return searchResults.NavChild(event,0,2)" onkeyup="return searchResults.NavChild(event,0,2)" class="SRScope" href="../structr123array4x32.html#a36515eb50711e36a88f1390bbd4e0e05" target="_parent">r123array4x32::incr()</a>
+    <a id="Item0_c3" onkeydown="return searchResults.NavChild(event,0,3)" onkeypress="return searchResults.NavChild(event,0,3)" onkeyup="return searchResults.NavChild(event,0,3)" class="SRScope" href="../structr123array8x32.html#a92ded324d4b7e2602766fa0c71fa5985" target="_parent">r123array8x32::incr()</a>
+    <a id="Item0_c4" onkeydown="return searchResults.NavChild(event,0,4)" onkeypress="return searchResults.NavChild(event,0,4)" onkeyup="return searchResults.NavChild(event,0,4)" class="SRScope" href="../structr123array1x64.html#ad44244e95f8937e0874dec9083071a85" target="_parent">r123array1x64::incr()</a>
+    <a id="Item0_c5" onkeydown="return searchResults.NavChild(event,0,5)" onkeypress="return searchResults.NavChild(event,0,5)" onkeyup="return searchResults.NavChild(event,0,5)" class="SRScope" href="../structr123array2x64.html#ac33e6336c8aee10e38259510ef76e5cf" target="_parent">r123array2x64::incr()</a>
+    <a id="Item0_c6" onkeydown="return searchResults.NavChild(event,0,6)" onkeypress="return searchResults.NavChild(event,0,6)" onkeyup="return searchResults.NavChild(event,0,6)" class="SRScope" href="../structr123array4x64.html#ac4187b4ae44913183b1c8f9b7654f8a9" target="_parent">r123array4x64::incr()</a>
+    <a id="Item0_c7" onkeydown="return searchResults.NavChild(event,0,7)" onkeypress="return searchResults.NavChild(event,0,7)" onkeyup="return searchResults.NavChild(event,0,7)" class="SRScope" href="../structr123array16x8.html#aaf2d677b347b7c7bf362a2b318f46e3c" target="_parent">r123array16x8::incr()</a>
+    <a id="Item0_c8" onkeydown="return searchResults.NavChild(event,0,8)" onkeypress="return searchResults.NavChild(event,0,8)" onkeyup="return searchResults.NavChild(event,0,8)" class="SRScope" href="../structr123array1xm128i.html#a62ee236dafcbfb81ef43d7aa82a66b47" target="_parent">r123array1xm128i::incr()</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_incr_5fcarefully">
+ <div class="SREntry">
+  <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_incr_5fcarefully')">incr_carefully</a>
+  <div class="SRChildren">
+    <a id="Item1_c0" onkeydown="return searchResults.NavChild(event,1,0)" onkeypress="return searchResults.NavChild(event,1,0)" onkeyup="return searchResults.NavChild(event,1,0)" class="SRScope" href="../structr123array1x32.html#a9c919289274ced376086f1110c8b6384" target="_parent">r123array1x32::incr_carefully()</a>
+    <a id="Item1_c1" onkeydown="return searchResults.NavChild(event,1,1)" onkeypress="return searchResults.NavChild(event,1,1)" onkeyup="return searchResults.NavChild(event,1,1)" class="SRScope" href="../structr123array2x32.html#adf128cb5c0abaaa4f119d4bcef47ead9" target="_parent">r123array2x32::incr_carefully()</a>
+    <a id="Item1_c2" onkeydown="return searchResults.NavChild(event,1,2)" onkeypress="return searchResults.NavChild(event,1,2)" onkeyup="return searchResults.NavChild(event,1,2)" class="SRScope" href="../structr123array4x32.html#acec3775361651e6f8dea517f07d7a8b8" target="_parent">r123array4x32::incr_carefully()</a>
+    <a id="Item1_c3" onkeydown="return searchResults.NavChild(event,1,3)" onkeypress="return searchResults.NavChild(event,1,3)" onkeyup="return searchResults.NavChild(event,1,3)" class="SRScope" href="../structr123array8x32.html#a9e73ed67b7c577ebdb6c5e1f121fdc4f" target="_parent">r123array8x32::incr_carefully()</a>
+    <a id="Item1_c4" onkeydown="return searchResults.NavChild(event,1,4)" onkeypress="return searchResults.NavChild(event,1,4)" onkeyup="return searchResults.NavChild(event,1,4)" class="SRScope" href="../structr123array1x64.html#ad848dc3e868f8195ee3eb5029698c976" target="_parent">r123array1x64::incr_carefully()</a>
+    <a id="Item1_c5" onkeydown="return searchResults.NavChild(event,1,5)" onkeypress="return searchResults.NavChild(event,1,5)" onkeyup="return searchResults.NavChild(event,1,5)" class="SRScope" href="../structr123array2x64.html#a52ddbfa3edbd9fa7f30e1402a9240da1" target="_parent">r123array2x64::incr_carefully()</a>
+    <a id="Item1_c6" onkeydown="return searchResults.NavChild(event,1,6)" onkeypress="return searchResults.NavChild(event,1,6)" onkeyup="return searchResults.NavChild(event,1,6)" class="SRScope" href="../structr123array4x64.html#af629d14b454f406cae4d128d9e05554d" target="_parent">r123array4x64::incr_carefully()</a>
+    <a id="Item1_c7" onkeydown="return searchResults.NavChild(event,1,7)" onkeypress="return searchResults.NavChild(event,1,7)" onkeyup="return searchResults.NavChild(event,1,7)" class="SRScope" href="../structr123array16x8.html#abbc6c2d9cdc2187cdfdea759951498a0" target="_parent">r123array16x8::incr_carefully()</a>
+    <a id="Item1_c8" onkeydown="return searchResults.NavChild(event,1,8)" onkeypress="return searchResults.NavChild(event,1,8)" onkeyup="return searchResults.NavChild(event,1,8)" class="SRScope" href="../structr123array1xm128i.html#ab35cfd8e9221c294ab7546855373a38c" target="_parent">r123array1xm128i::incr_carefully()</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_iterator">
+ <div class="SREntry">
+  <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_iterator')">iterator</a>
+  <div class="SRChildren">
+    <a id="Item2_c0" onkeydown="return searchResults.NavChild(event,2,0)" onkeypress="return searchResults.NavChild(event,2,0)" onkeyup="return searchResults.NavChild(event,2,0)" class="SRScope" href="../structr123array1x32.html#ad17f00c1dbff151f91d381f7c0b99dc8" target="_parent">r123array1x32::iterator()</a>
+    <a id="Item2_c1" onkeydown="return searchResults.NavChild(event,2,1)" onkeypress="return searchResults.NavChild(event,2,1)" onkeyup="return searchResults.NavChild(event,2,1)" class="SRScope" href="../structr123array2x32.html#a4b447adc28d536d9b7ad7e33d5081a8e" target="_parent">r123array2x32::iterator()</a>
+    <a id="Item2_c2" onkeydown="return searchResults.NavChild(event,2,2)" onkeypress="return searchResults.NavChild(event,2,2)" onkeyup="return searchResults.NavChild(event,2,2)" class="SRScope" href="../structr123array4x32.html#a73a2a55a200af374d7299d2de13aa5cc" target="_parent">r123array4x32::iterator()</a>
+    <a id="Item2_c3" onkeydown="return searchResults.NavChild(event,2,3)" onkeypress="return searchResults.NavChild(event,2,3)" onkeyup="return searchResults.NavChild(event,2,3)" class="SRScope" href="../structr123array8x32.html#aad8ff34e784d954a05f3f058facfb2be" target="_parent">r123array8x32::iterator()</a>
+    <a id="Item2_c4" onkeydown="return searchResults.NavChild(event,2,4)" onkeypress="return searchResults.NavChild(event,2,4)" onkeyup="return searchResults.NavChild(event,2,4)" class="SRScope" href="../structr123array1x64.html#a486a75094513f75c268901b3bb6666ad" target="_parent">r123array1x64::iterator()</a>
+    <a id="Item2_c5" onkeydown="return searchResults.NavChild(event,2,5)" onkeypress="return searchResults.NavChild(event,2,5)" onkeyup="return searchResults.NavChild(event,2,5)" class="SRScope" href="../structr123array2x64.html#ac0fc5019e017f50e29d26df233085e56" target="_parent">r123array2x64::iterator()</a>
+    <a id="Item2_c6" onkeydown="return searchResults.NavChild(event,2,6)" onkeypress="return searchResults.NavChild(event,2,6)" onkeyup="return searchResults.NavChild(event,2,6)" class="SRScope" href="../structr123array4x64.html#adfc9f1209d12f855b9330ecccc8b6dd2" target="_parent">r123array4x64::iterator()</a>
+    <a id="Item2_c7" onkeydown="return searchResults.NavChild(event,2,7)" onkeypress="return searchResults.NavChild(event,2,7)" onkeyup="return searchResults.NavChild(event,2,7)" class="SRScope" href="../structr123array16x8.html#a36bdba5b2d96c8dfe9b7e59b203d5047" target="_parent">r123array16x8::iterator()</a>
+    <a id="Item2_c8" onkeydown="return searchResults.NavChild(event,2,8)" onkeypress="return searchResults.NavChild(event,2,8)" onkeyup="return searchResults.NavChild(event,2,8)" class="SRScope" href="../structr123array1xm128i.html#af9db87a7c1ae4c7ba1e355af89b4d22d" target="_parent">r123array1xm128i::iterator()</a>
+  </div>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/all_6b.html b/docs/html/search/all_6b.html
new file mode 100644
index 0000000..f67b39b
--- /dev/null
+++ b/docs/html/search/all_6b.html
@@ -0,0 +1,54 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_k">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structaesni1xm128i__key__t.html#a60cefca96e55b73732f570e844efbe54" target="_parent">k</a>
+  <span class="SRScope">aesni1xm128i_key_t</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_key">
+ <div class="SREntry">
+  <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../structr123_1_1Engine.html#adb9e1841a81f213a115e9f092f5c4654" target="_parent">key</a>
+  <span class="SRScope">r123::Engine</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_key_5ftype">
+ <div class="SREntry">
+  <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_key_5ftype')">key_type</a>
+  <div class="SRChildren">
+    <a id="Item2_c0" onkeydown="return searchResults.NavChild(event,2,0)" onkeypress="return searchResults.NavChild(event,2,0)" onkeyup="return searchResults.NavChild(event,2,0)" class="SRScope" href="../structr123_1_1AESNI1xm128i.html#a7dc33fd5abf509d9d16b571b23867a6b" target="_parent">r123::AESNI1xm128i::key_type()</a>
+    <a id="Item2_c1" onkeydown="return searchResults.NavChild(event,2,1)" onkeypress="return searchResults.NavChild(event,2,1)" onkeyup="return searchResults.NavChild(event,2,1)" class="SRScope" href="../structr123_1_1AESNI4x32.html#a3f47cb319d03ede5fd557800b618d28a" target="_parent">r123::AESNI4x32::key_type()</a>
+    <a id="Item2_c2" onkeydown="return searchResults.NavChild(event,2,2)" onkeypress="return searchResults.NavChild(event,2,2)" onkeyup="return searchResults.NavChild(event,2,2)" class="SRScope" href="../structr123_1_1ARS1xm128i__R.html#a8454d6de92379d9a6551d11828fbebc3" target="_parent">r123::ARS1xm128i_R::key_type()</a>
+    <a id="Item2_c3" onkeydown="return searchResults.NavChild(event,2,3)" onkeypress="return searchResults.NavChild(event,2,3)" onkeyup="return searchResults.NavChild(event,2,3)" class="SRScope" href="../structr123_1_1ARS4x32__R.html#a7a651b6747b9e7c038bc6d11ffa2863e" target="_parent">r123::ARS4x32_R::key_type()</a>
+    <a id="Item2_c4" onkeydown="return searchResults.NavChild(event,2,4)" onkeypress="return searchResults.NavChild(event,2,4)" onkeyup="return searchResults.NavChild(event,2,4)" class="SRScope" href="../classr123_1_1MicroURNG.html#aef90e6157f360434342ad0df4ce5f364" target="_parent">r123::MicroURNG::key_type()</a>
+    <a id="Item2_c5" onkeydown="return searchResults.NavChild(event,2,5)" onkeypress="return searchResults.NavChild(event,2,5)" onkeyup="return searchResults.NavChild(event,2,5)" class="SRScope" href="../structr123_1_1Philox2x32__R.html#a37dac768d36ef39e0228369e91b9f0ab" target="_parent">r123::Philox2x32_R::key_type()</a>
+    <a id="Item2_c6" onkeydown="return searchResults.NavChild(event,2,6)" onkeypress="return searchResults.NavChild(event,2,6)" onkeyup="return searchResults.NavChild(event,2,6)" class="SRScope" href="../structr123_1_1Philox4x32__R.html#afa2e99f3e0b635f17ba9e16c186af63b" target="_parent">r123::Philox4x32_R::key_type()</a>
+    <a id="Item2_c7" onkeydown="return searchResults.NavChild(event,2,7)" onkeypress="return searchResults.NavChild(event,2,7)" onkeyup="return searchResults.NavChild(event,2,7)" class="SRScope" href="../structr123_1_1Philox2x64__R.html#adb8a638d3d96ef0ab594b0320bae329f" target="_parent">r123::Philox2x64_R::key_type()</a>
+    <a id="Item2_c8" onkeydown="return searchResults.NavChild(event,2,8)" onkeypress="return searchResults.NavChild(event,2,8)" onkeyup="return searchResults.NavChild(event,2,8)" class="SRScope" href="../structr123_1_1Philox4x64__R.html#a9947ce12e3d03f9a60396d79bb56ba1c" target="_parent">r123::Philox4x64_R::key_type()</a>
+    <a id="Item2_c9" onkeydown="return searchResults.NavChild(event,2,9)" onkeypress="return searchResults.NavChild(event,2,9)" onkeyup="return searchResults.NavChild(event,2,9)" class="SRScope" href="../structr123_1_1ReinterpretCtr.html#a470b21676ed709aa9d9ad524a67410f1" target="_parent">r123::ReinterpretCtr::key_type()</a>
+    <a id="Item2_c10" onkeydown="return searchResults.NavChild(event,2,10)" onkeypress="return searchResults.NavChild(event,2,10)" onkeyup="return searchResults.NavChild(event,2,10)" class="SRScope" href="../structr123_1_1Threefry2x32__R.html#abfaaff871ef5e2e2cf397884ddab4cdc" target="_parent">r123::Threefry2x32_R::key_type()</a>
+    <a id="Item2_c11" onkeydown="return searchResults.NavChild(event,2,11)" onkeypress="return searchResults.NavChild(event,2,11)" onkeyup="return searchResults.NavChild(event,2,11)" class="SRScope" href="../structr123_1_1Threefry4x32__R.html#a140f5cf20bde7784d778b82f0ebf8778" target="_parent">r123::Threefry4x32_R::key_type()</a>
+    <a id="Item2_c12" onkeydown="return searchResults.NavChild(event,2,12)" onkeypress="return searchResults.NavChild(event,2,12)" onkeyup="return searchResults.NavChild(event,2,12)" class="SRScope" href="../structr123_1_1Threefry2x64__R.html#ae652f0e9ca6ec234fd2f4fc9afb1007c" target="_parent">r123::Threefry2x64_R::key_type()</a>
+    <a id="Item2_c13" onkeydown="return searchResults.NavChild(event,2,13)" onkeypress="return searchResults.NavChild(event,2,13)" onkeyup="return searchResults.NavChild(event,2,13)" class="SRScope" href="../structr123_1_1Threefry4x64__R.html#adb406d1af0e757bd8058582ee39f21dc" target="_parent">r123::Threefry4x64_R::key_type()</a>
+    <a id="Item2_c14" onkeydown="return searchResults.NavChild(event,2,14)" onkeypress="return searchResults.NavChild(event,2,14)" onkeyup="return searchResults.NavChild(event,2,14)" class="SRScope" href="../structr123_1_1Engine.html#a18132a79d2327990c4809b37300eddc3" target="_parent">r123::Engine::key_type()</a>
+  </div>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/all_6c.html b/docs/html/search/all_6c.html
new file mode 100644
index 0000000..68eda1b
--- /dev/null
+++ b/docs/html/search/all_6c.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_license">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../LICENSE.html" target="_parent">LICENSE</a>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/all_6d.html b/docs/html/search/all_6d.html
new file mode 100644
index 0000000..de8d187
--- /dev/null
+++ b/docs/html/search/all_6d.html
@@ -0,0 +1,67 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_m">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structr123m128i.html#a9b9908268281aace8028a3f34980634d" target="_parent">m</a>
+  <span class="SRScope">r123m128i</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_main_2edox">
+ <div class="SREntry">
+  <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../main_8dox.html" target="_parent">main.dox</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_max_5fsize">
+ <div class="SREntry">
+  <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_max_5fsize')">max_size</a>
+  <div class="SRChildren">
+    <a id="Item2_c0" onkeydown="return searchResults.NavChild(event,2,0)" onkeypress="return searchResults.NavChild(event,2,0)" onkeyup="return searchResults.NavChild(event,2,0)" class="SRScope" href="../structr123array1x32.html#a707c532168670ad508723d057f712928" target="_parent">r123array1x32::max_size()</a>
+    <a id="Item2_c1" onkeydown="return searchResults.NavChild(event,2,1)" onkeypress="return searchResults.NavChild(event,2,1)" onkeyup="return searchResults.NavChild(event,2,1)" class="SRScope" href="../structr123array2x32.html#a07345b400c5a81e6cd55689d1e38122f" target="_parent">r123array2x32::max_size()</a>
+    <a id="Item2_c2" onkeydown="return searchResults.NavChild(event,2,2)" onkeypress="return searchResults.NavChild(event,2,2)" onkeyup="return searchResults.NavChild(event,2,2)" class="SRScope" href="../structr123array4x32.html#afddfc77eea0f5f4c53dc075425f96ab3" target="_parent">r123array4x32::max_size()</a>
+    <a id="Item2_c3" onkeydown="return searchResults.NavChild(event,2,3)" onkeypress="return searchResults.NavChild(event,2,3)" onkeyup="return searchResults.NavChild(event,2,3)" class="SRScope" href="../structr123array8x32.html#a0ea0af65a3b0a51c090ab6ef11f20c63" target="_parent">r123array8x32::max_size()</a>
+    <a id="Item2_c4" onkeydown="return searchResults.NavChild(event,2,4)" onkeypress="return searchResults.NavChild(event,2,4)" onkeyup="return searchResults.NavChild(event,2,4)" class="SRScope" href="../structr123array1x64.html#a1b02d097ca118866b7f696b7c1c5681f" target="_parent">r123array1x64::max_size()</a>
+    <a id="Item2_c5" onkeydown="return searchResults.NavChild(event,2,5)" onkeypress="return searchResults.NavChild(event,2,5)" onkeyup="return searchResults.NavChild(event,2,5)" class="SRScope" href="../structr123array2x64.html#a03f7c9e37e59210b1d2b9390e415e289" target="_parent">r123array2x64::max_size()</a>
+    <a id="Item2_c6" onkeydown="return searchResults.NavChild(event,2,6)" onkeypress="return searchResults.NavChild(event,2,6)" onkeyup="return searchResults.NavChild(event,2,6)" class="SRScope" href="../structr123array4x64.html#aad1329f21e3fdd5d25a29148db564b8a" target="_parent">r123array4x64::max_size()</a>
+    <a id="Item2_c7" onkeydown="return searchResults.NavChild(event,2,7)" onkeypress="return searchResults.NavChild(event,2,7)" onkeyup="return searchResults.NavChild(event,2,7)" class="SRScope" href="../structr123array16x8.html#a3f59fb2b338aa8e33879e8d2d22840ed" target="_parent">r123array16x8::max_size()</a>
+    <a id="Item2_c8" onkeydown="return searchResults.NavChild(event,2,8)" onkeypress="return searchResults.NavChild(event,2,8)" onkeyup="return searchResults.NavChild(event,2,8)" class="SRScope" href="../structr123array1xm128i.html#a04e2b8952459b7aeabc011532fe3f8fa" target="_parent">r123array1xm128i::max_size()</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_microurng">
+ <div class="SREntry">
+  <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="../classr123_1_1MicroURNG.html" target="_parent">MicroURNG</a>
+  <span class="SRScope">r123</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_microurng">
+ <div class="SREntry">
+  <a id="Item4" onkeydown="return searchResults.Nav(event,4)" onkeypress="return searchResults.Nav(event,4)" onkeyup="return searchResults.Nav(event,4)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_microurng')">MicroURNG</a>
+  <div class="SRChildren">
+    <a id="Item4_c0" onkeydown="return searchResults.NavChild(event,4,0)" onkeypress="return searchResults.NavChild(event,4,0)" onkeyup="return searchResults.NavChild(event,4,0)" class="SRScope" href="../classr123_1_1MicroURNG.html#a19afb80312c370e1670bf8afc73d802e" target="_parent">r123::MicroURNG::MicroURNG(cbrng_type _b, ctr_type _c0, ukey_type _uk)</a>
+    <a id="Item4_c1" onkeydown="return searchResults.NavChild(event,4,1)" onkeypress="return searchResults.NavChild(event,4,1)" onkeyup="return searchResults.NavChild(event,4,1)" class="SRScope" href="../classr123_1_1MicroURNG.html#a7ecf43819bc96804892a78c6715f587b" target="_parent">r123::MicroURNG::MicroURNG(ctr_type _c0, ukey_type _uk)</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_microurng_2ehpp">
+ <div class="SREntry">
+  <a id="Item5" onkeydown="return searchResults.Nav(event,5)" onkeypress="return searchResults.Nav(event,5)" onkeyup="return searchResults.Nav(event,5)" class="SRSymbol" href="../MicroURNG_8hpp.html" target="_parent">MicroURNG.hpp</a>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/all_6f.html b/docs/html/search/all_6f.html
new file mode 100644
index 0000000..b30ebbb
--- /dev/null
+++ b/docs/html/search/all_6f.html
@@ -0,0 +1,204 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_operator_20_5f_5fm128i">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structr123m128i.html#a80a5c24f76fec61b3ab0ed0e0353cfb7" target="_parent">operator __m128i</a>
+  <span class="SRScope">r123m128i</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_operator_20const_20void_20_2a">
+ <div class="SREntry">
+  <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../structr123m128i.html#ae5788785c2ce7f7ca6ff8dd4377771f3" target="_parent">operator const void *</a>
+  <span class="SRScope">r123m128i</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_operator_21_3d">
+ <div class="SREntry">
+  <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_operator_21_3d')">operator!=</a>
+  <div class="SRChildren">
+    <a id="Item2_c0" onkeydown="return searchResults.NavChild(event,2,0)" onkeypress="return searchResults.NavChild(event,2,0)" onkeyup="return searchResults.NavChild(event,2,0)" class="SRScope" href="../structr123array1x32.html#af293f370d083051f6cf24408e07feff1" target="_parent">r123array1x32::operator!=()</a>
+    <a id="Item2_c1" onkeydown="return searchResults.NavChild(event,2,1)" onkeypress="return searchResults.NavChild(event,2,1)" onkeyup="return searchResults.NavChild(event,2,1)" class="SRScope" href="../structr123array2x32.html#aa0c7e561ddeb475329ea8d8178fca2a1" target="_parent">r123array2x32::operator!=()</a>
+    <a id="Item2_c2" onkeydown="return searchResults.NavChild(event,2,2)" onkeypress="return searchResults.NavChild(event,2,2)" onkeyup="return searchResults.NavChild(event,2,2)" class="SRScope" href="../structr123array4x32.html#a1a7aa47c8dd7db5146e54cc54d1d4358" target="_parent">r123array4x32::operator!=()</a>
+    <a id="Item2_c3" onkeydown="return searchResults.NavChild(event,2,3)" onkeypress="return searchResults.NavChild(event,2,3)" onkeyup="return searchResults.NavChild(event,2,3)" class="SRScope" href="../structr123array8x32.html#aed510e0472db9b00490c468d88e14bac" target="_parent">r123array8x32::operator!=()</a>
+    <a id="Item2_c4" onkeydown="return searchResults.NavChild(event,2,4)" onkeypress="return searchResults.NavChild(event,2,4)" onkeyup="return searchResults.NavChild(event,2,4)" class="SRScope" href="../structr123array1x64.html#a0969493a7aac290e5ab2a5135380bc3d" target="_parent">r123array1x64::operator!=()</a>
+    <a id="Item2_c5" onkeydown="return searchResults.NavChild(event,2,5)" onkeypress="return searchResults.NavChild(event,2,5)" onkeyup="return searchResults.NavChild(event,2,5)" class="SRScope" href="../structr123array2x64.html#a1ddc25ec182ac3b119e420f5e21c3f87" target="_parent">r123array2x64::operator!=()</a>
+    <a id="Item2_c6" onkeydown="return searchResults.NavChild(event,2,6)" onkeypress="return searchResults.NavChild(event,2,6)" onkeyup="return searchResults.NavChild(event,2,6)" class="SRScope" href="../structr123array4x64.html#abf2fc58ddb163708c087f72921dfd11d" target="_parent">r123array4x64::operator!=()</a>
+    <a id="Item2_c7" onkeydown="return searchResults.NavChild(event,2,7)" onkeypress="return searchResults.NavChild(event,2,7)" onkeyup="return searchResults.NavChild(event,2,7)" class="SRScope" href="../structr123array16x8.html#af48be55844748a0f6406b2ae437398b5" target="_parent">r123array16x8::operator!=()</a>
+    <a id="Item2_c8" onkeydown="return searchResults.NavChild(event,2,8)" onkeypress="return searchResults.NavChild(event,2,8)" onkeyup="return searchResults.NavChild(event,2,8)" class="SRScope" href="../structr123array1xm128i.html#a60cf5b0e8283c20c386a7935f9ae0a60" target="_parent">r123array1xm128i::operator!=()</a>
+    <a id="Item2_c9" onkeydown="return searchResults.NavChild(event,2,9)" onkeypress="return searchResults.NavChild(event,2,9)" onkeyup="return searchResults.NavChild(event,2,9)" class="SRScope" href="../structr123_1_1Engine.html#af0947cdcfc03aef7ec30c9fafa660445" target="_parent">r123::Engine::operator!=()</a>
+    <a id="Item2_c10" onkeydown="return searchResults.NavChild(event,2,10)" onkeypress="return searchResults.NavChild(event,2,10)" onkeyup="return searchResults.NavChild(event,2,10)" class="SRScope" href="../sse_8h.html#a9fc5dd462afc043229ab800abb8f7d64" target="_parent">operator!=(const r123m128i &lhs, const r123m128i &rhs): sse.h</a>
+    <a id="Item2_c11" onkeydown="return searchResults.NavChild(event,2,11)" onkeypress="return searchResults.NavChild(event,2,11)" onkeyup="return searchResults.NavChild(event,2,11)" class="SRScope" href="../sse_8h.html#a76ef724b020add862a911a699a21451b" target="_parent">operator!=(uint64_t lhs, const r123m128i &rhs): sse.h</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_operator_28_29">
+ <div class="SREntry">
+  <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_operator_28_29')">operator()</a>
+  <div class="SRChildren">
+    <a id="Item3_c0" onkeydown="return searchResults.NavChild(event,3,0)" onkeypress="return searchResults.NavChild(event,3,0)" onkeyup="return searchResults.NavChild(event,3,0)" class="SRScope" href="../structr123_1_1AESNI1xm128i.html#a9bff0ac8478400c1006136e9bde91dc3" target="_parent">r123::AESNI1xm128i::operator()()</a>
+    <a id="Item3_c1" onkeydown="return searchResults.NavChild(event,3,1)" onkeypress="return searchResults.NavChild(event,3,1)" onkeyup="return searchResults.NavChild(event,3,1)" class="SRScope" href="../structr123_1_1AESNI4x32.html#a981102e5bc0a7df916a95a40af8fd4c0" target="_parent">r123::AESNI4x32::operator()()</a>
+    <a id="Item3_c2" onkeydown="return searchResults.NavChild(event,3,2)" onkeypress="return searchResults.NavChild(event,3,2)" onkeyup="return searchResults.NavChild(event,3,2)" class="SRScope" href="../structr123_1_1ARS1xm128i__R.html#a89c0fc4e1c90ee684fc88dde05d8d82c" target="_parent">r123::ARS1xm128i_R::operator()()</a>
+    <a id="Item3_c3" onkeydown="return searchResults.NavChild(event,3,3)" onkeypress="return searchResults.NavChild(event,3,3)" onkeyup="return searchResults.NavChild(event,3,3)" class="SRScope" href="../structr123_1_1ARS4x32__R.html#afcd326e150925e30de22166e727567df" target="_parent">r123::ARS4x32_R::operator()()</a>
+    <a id="Item3_c4" onkeydown="return searchResults.NavChild(event,3,4)" onkeypress="return searchResults.NavChild(event,3,4)" onkeyup="return searchResults.NavChild(event,3,4)" class="SRScope" href="../classr123_1_1MicroURNG.html#a64cd4d33b4cab5d3d9c556db68407b77" target="_parent">r123::MicroURNG::operator()()</a>
+    <a id="Item3_c5" onkeydown="return searchResults.NavChild(event,3,5)" onkeypress="return searchResults.NavChild(event,3,5)" onkeyup="return searchResults.NavChild(event,3,5)" class="SRScope" href="../structr123_1_1Philox2x32__R.html#ab610a200c9fa62d090f31466b655c780" target="_parent">r123::Philox2x32_R::operator()()</a>
+    <a id="Item3_c6" onkeydown="return searchResults.NavChild(event,3,6)" onkeypress="return searchResults.NavChild(event,3,6)" onkeyup="return searchResults.NavChild(event,3,6)" class="SRScope" href="../structr123_1_1Philox4x32__R.html#adf05bdc0c856c9541db656711fd8c7d1" target="_parent">r123::Philox4x32_R::operator()()</a>
+    <a id="Item3_c7" onkeydown="return searchResults.NavChild(event,3,7)" onkeypress="return searchResults.NavChild(event,3,7)" onkeyup="return searchResults.NavChild(event,3,7)" class="SRScope" href="../structr123_1_1Philox2x64__R.html#a04f6039e87a958593ac011d9304d7ec9" target="_parent">r123::Philox2x64_R::operator()()</a>
+    <a id="Item3_c8" onkeydown="return searchResults.NavChild(event,3,8)" onkeypress="return searchResults.NavChild(event,3,8)" onkeyup="return searchResults.NavChild(event,3,8)" class="SRScope" href="../structr123_1_1Philox4x64__R.html#aa5a0488aa6e16c55b7647c155b18462c" target="_parent">r123::Philox4x64_R::operator()()</a>
+    <a id="Item3_c9" onkeydown="return searchResults.NavChild(event,3,9)" onkeypress="return searchResults.NavChild(event,3,9)" onkeyup="return searchResults.NavChild(event,3,9)" class="SRScope" href="../structr123_1_1ReinterpretCtr.html#a91edc5103397372cc5509ad17c0fc83a" target="_parent">r123::ReinterpretCtr::operator()()</a>
+    <a id="Item3_c10" onkeydown="return searchResults.NavChild(event,3,10)" onkeypress="return searchResults.NavChild(event,3,10)" onkeyup="return searchResults.NavChild(event,3,10)" class="SRScope" href="../structr123_1_1Threefry2x32__R.html#a64b8018e82f3e7a0e252166b15b42a71" target="_parent">r123::Threefry2x32_R::operator()()</a>
+    <a id="Item3_c11" onkeydown="return searchResults.NavChild(event,3,11)" onkeypress="return searchResults.NavChild(event,3,11)" onkeyup="return searchResults.NavChild(event,3,11)" class="SRScope" href="../structr123_1_1Threefry4x32__R.html#ae0dfbf399015fab602c769ad90256231" target="_parent">r123::Threefry4x32_R::operator()()</a>
+    <a id="Item3_c12" onkeydown="return searchResults.NavChild(event,3,12)" onkeypress="return searchResults.NavChild(event,3,12)" onkeyup="return searchResults.NavChild(event,3,12)" class="SRScope" href="../structr123_1_1Threefry2x64__R.html#ab654a85f2c4ec65548ddfc85dc00f27e" target="_parent">r123::Threefry2x64_R::operator()()</a>
+    <a id="Item3_c13" onkeydown="return searchResults.NavChild(event,3,13)" onkeypress="return searchResults.NavChild(event,3,13)" onkeyup="return searchResults.NavChild(event,3,13)" class="SRScope" href="../structr123_1_1Threefry4x64__R.html#a09e7fb82f9b7bcf6ccb4d849116b6ec1" target="_parent">r123::Threefry4x64_R::operator()()</a>
+    <a id="Item3_c14" onkeydown="return searchResults.NavChild(event,3,14)" onkeypress="return searchResults.NavChild(event,3,14)" onkeyup="return searchResults.NavChild(event,3,14)" class="SRScope" href="../structr123_1_1Engine.html#aca309d0b4f2a8fff1f6f2ab38c6caf93" target="_parent">r123::Engine::operator()()</a>
+    <a id="Item3_c15" onkeydown="return searchResults.NavChild(event,3,15)" onkeypress="return searchResults.NavChild(event,3,15)" onkeyup="return searchResults.NavChild(event,3,15)" class="SRScope" href="../structr123_1_1Engine.html#af396a7d1656af55805e38f3d9c0fbef7" target="_parent">r123::Engine::operator()(const ctr_type &c) const </a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_operator_2b_2b">
+ <div class="SREntry">
+  <a id="Item4" onkeydown="return searchResults.Nav(event,4)" onkeypress="return searchResults.Nav(event,4)" onkeyup="return searchResults.Nav(event,4)" class="SRSymbol" href="../sse_8h.html#a2ffeb79e1a2cbb9cb35b0daf514a06a5" target="_parent">operator++</a>
+  <span class="SRScope">sse.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_operator_2b_3d">
+ <div class="SREntry">
+  <a id="Item5" onkeydown="return searchResults.Nav(event,5)" onkeypress="return searchResults.Nav(event,5)" onkeyup="return searchResults.Nav(event,5)" class="SRSymbol" href="../sse_8h.html#a436d4467bb1389d42bfa67686218fd98" target="_parent">operator+=</a>
+  <span class="SRScope">sse.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_operator_3c">
+ <div class="SREntry">
+  <a id="Item6" onkeydown="return searchResults.Nav(event,6)" onkeypress="return searchResults.Nav(event,6)" onkeyup="return searchResults.Nav(event,6)" class="SRSymbol" href="../sse_8h.html#ac2c263fa443dd074fe4ff96710219eb8" target="_parent">operator<</a>
+  <span class="SRScope">sse.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_operator_3c_3c">
+ <div class="SREntry">
+  <a id="Item7" onkeydown="return searchResults.Nav(event,7)" onkeypress="return searchResults.Nav(event,7)" onkeyup="return searchResults.Nav(event,7)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_operator_3c_3c')">operator<<</a>
+  <div class="SRChildren">
+    <a id="Item7_c0" onkeydown="return searchResults.NavChild(event,7,0)" onkeypress="return searchResults.NavChild(event,7,0)" onkeyup="return searchResults.NavChild(event,7,0)" class="SRScope" href="../structr123_1_1Engine.html#ae0321571f689fca00c608d11ecad7d8d" target="_parent">r123::Engine::operator<<()</a>
+    <a id="Item7_c1" onkeydown="return searchResults.NavChild(event,7,1)" onkeypress="return searchResults.NavChild(event,7,1)" onkeyup="return searchResults.NavChild(event,7,1)" class="SRScope" href="../array_8h.html#af29a19da89789058ead246fdef153ce0" target="_parent">operator<<(std::ostream &os, const r123array1x32 &a): array.h</a>
+    <a id="Item7_c2" onkeydown="return searchResults.NavChild(event,7,2)" onkeypress="return searchResults.NavChild(event,7,2)" onkeyup="return searchResults.NavChild(event,7,2)" class="SRScope" href="../array_8h.html#a9c1f24a8b73925bc24a5acf09fd4e305" target="_parent">operator<<(std::ostream &os, const r123array2x32 &a): array.h</a>
+    <a id="Item7_c3" onkeydown="return searchResults.NavChild(event,7,3)" onkeypress="return searchResults.NavChild(event,7,3)" onkeyup="return searchResults.NavChild(event,7,3)" class="SRScope" href="../array_8h.html#ab2b41774a3888c0bc9697fd79383eae4" target="_parent">operator<<(std::ostream &os, const r123array4x32 &a): array.h</a>
+    <a id="Item7_c4" onkeydown="return searchResults.NavChild(event,7,4)" onkeypress="return searchResults.NavChild(event,7,4)" onkeyup="return searchResults.NavChild(event,7,4)" class="SRScope" href="../array_8h.html#a8339351efe6ba804aacd3d97632e2bdf" target="_parent">operator<<(std::ostream &os, const r123array8x32 &a): array.h</a>
+    <a id="Item7_c5" onkeydown="return searchResults.NavChild(event,7,5)" onkeypress="return searchResults.NavChild(event,7,5)" onkeyup="return searchResults.NavChild(event,7,5)" class="SRScope" href="../array_8h.html#ae87e390bd8c0cadc74bd08dfffd0101f" target="_parent">operator<<(std::ostream &os, const r123array1x64 &a): array.h</a>
+    <a id="Item7_c6" onkeydown="return searchResults.NavChild(event,7,6)" onkeypress="return searchResults.NavChild(event,7,6)" onkeyup="return searchResults.NavChild(event,7,6)" class="SRScope" href="../array_8h.html#a06634d010d5cde0afe278031c7597cc3" target="_parent">operator<<(std::ostream &os, const r123array2x64 &a): array.h</a>
+    <a id="Item7_c7" onkeydown="return searchResults.NavChild(event,7,7)" onkeypress="return searchResults.NavChild(event,7,7)" onkeyup="return searchResults.NavChild(event,7,7)" class="SRScope" href="../array_8h.html#acff68189292ea886eed0f24b5146566d" target="_parent">operator<<(std::ostream &os, const r123array4x64 &a): array.h</a>
+    <a id="Item7_c8" onkeydown="return searchResults.NavChild(event,7,8)" onkeypress="return searchResults.NavChild(event,7,8)" onkeyup="return searchResults.NavChild(event,7,8)" class="SRScope" href="../array_8h.html#a8b82ce828fcb9bb530870dd2919975e9" target="_parent">operator<<(std::ostream &os, const r123array16x8 &a): array.h</a>
+    <a id="Item7_c9" onkeydown="return searchResults.NavChild(event,7,9)" onkeypress="return searchResults.NavChild(event,7,9)" onkeyup="return searchResults.NavChild(event,7,9)" class="SRScope" href="../array_8h.html#af4437aa49ff7855c60ca4ddacf2e48e5" target="_parent">operator<<(std::ostream &os, const r123array1xm128i &a): array.h</a>
+    <a id="Item7_c10" onkeydown="return searchResults.NavChild(event,7,10)" onkeypress="return searchResults.NavChild(event,7,10)" onkeyup="return searchResults.NavChild(event,7,10)" class="SRScope" href="../sse_8h.html#af965b43e09e7305795c7b5a35d20c75f" target="_parent">operator<<(std::ostream &os, const r123m128i &m): sse.h</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_operator_3c_3d">
+ <div class="SREntry">
+  <a id="Item8" onkeydown="return searchResults.Nav(event,8)" onkeypress="return searchResults.Nav(event,8)" onkeyup="return searchResults.Nav(event,8)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_operator_3c_3d')">operator<=</a>
+  <div class="SRChildren">
+    <a id="Item8_c0" onkeydown="return searchResults.NavChild(event,8,0)" onkeypress="return searchResults.NavChild(event,8,0)" onkeyup="return searchResults.NavChild(event,8,0)" class="SRScope" href="../sse_8h.html#a43e11de33821f27448feb163162ec895" target="_parent">operator<=(uint64_t, const r123m128i &): sse.h</a>
+    <a id="Item8_c1" onkeydown="return searchResults.NavChild(event,8,1)" onkeypress="return searchResults.NavChild(event,8,1)" onkeyup="return searchResults.NavChild(event,8,1)" class="SRScope" href="../sse_8h.html#a9ce245b77f0638255e7138190d0ff4fd" target="_parent">operator<=(const r123m128i &, const r123m128i &): sse.h</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_operator_3d">
+ <div class="SREntry">
+  <a id="Item9" onkeydown="return searchResults.Nav(event,9)" onkeypress="return searchResults.Nav(event,9)" onkeyup="return searchResults.Nav(event,9)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_operator_3d')">operator=</a>
+  <div class="SRChildren">
+    <a id="Item9_c0" onkeydown="return searchResults.NavChild(event,9,0)" onkeypress="return searchResults.NavChild(event,9,0)" onkeyup="return searchResults.NavChild(event,9,0)" class="SRScope" href="../structaesni1xm128i__key__t.html#acb24fef68c539f1a6ea217ee8ada185d" target="_parent">aesni1xm128i_key_t::operator=(const aesni1xm128i_ukey_t &uk)</a>
+    <a id="Item9_c1" onkeydown="return searchResults.NavChild(event,9,1)" onkeypress="return searchResults.NavChild(event,9,1)" onkeyup="return searchResults.NavChild(event,9,1)" class="SRScope" href="../structaesni1xm128i__key__t.html#a0290dac35d6f14706247217fb49bcd60" target="_parent">aesni1xm128i_key_t::operator=(const aesni4x32_ukey_t &uk)</a>
+    <a id="Item9_c2" onkeydown="return searchResults.NavChild(event,9,2)" onkeypress="return searchResults.NavChild(event,9,2)" onkeyup="return searchResults.NavChild(event,9,2)" class="SRScope" href="../structr123m128i.html#a9842fbc85102e0019cc58d97c28e2d02" target="_parent">r123m128i::operator=(const __m128i &rhs)</a>
+    <a id="Item9_c3" onkeydown="return searchResults.NavChild(event,9,3)" onkeypress="return searchResults.NavChild(event,9,3)" onkeyup="return searchResults.NavChild(event,9,3)" class="SRScope" href="../structr123m128i.html#a0da7ae920bce1b75efb91017ab6bc37c" target="_parent">r123m128i::operator=(uint64_t n)</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_operator_3d_3d">
+ <div class="SREntry">
+  <a id="Item10" onkeydown="return searchResults.Nav(event,10)" onkeypress="return searchResults.Nav(event,10)" onkeyup="return searchResults.Nav(event,10)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_operator_3d_3d')">operator==</a>
+  <div class="SRChildren">
+    <a id="Item10_c0" onkeydown="return searchResults.NavChild(event,10,0)" onkeypress="return searchResults.NavChild(event,10,0)" onkeyup="return searchResults.NavChild(event,10,0)" class="SRScope" href="../structr123array1x32.html#a61140a0fb8983a3018a2b98903d14047" target="_parent">r123array1x32::operator==()</a>
+    <a id="Item10_c1" onkeydown="return searchResults.NavChild(event,10,1)" onkeypress="return searchResults.NavChild(event,10,1)" onkeyup="return searchResults.NavChild(event,10,1)" class="SRScope" href="../structr123array2x32.html#aa8723e5786c66137e82405a532459b2d" target="_parent">r123array2x32::operator==()</a>
+    <a id="Item10_c2" onkeydown="return searchResults.NavChild(event,10,2)" onkeypress="return searchResults.NavChild(event,10,2)" onkeyup="return searchResults.NavChild(event,10,2)" class="SRScope" href="../structr123array4x32.html#a14123fe9160e559a83e61ab6c2901759" target="_parent">r123array4x32::operator==()</a>
+    <a id="Item10_c3" onkeydown="return searchResults.NavChild(event,10,3)" onkeypress="return searchResults.NavChild(event,10,3)" onkeyup="return searchResults.NavChild(event,10,3)" class="SRScope" href="../structr123array8x32.html#ae9ffa98997557c87b0a08b6ed2835155" target="_parent">r123array8x32::operator==()</a>
+    <a id="Item10_c4" onkeydown="return searchResults.NavChild(event,10,4)" onkeypress="return searchResults.NavChild(event,10,4)" onkeyup="return searchResults.NavChild(event,10,4)" class="SRScope" href="../structr123array1x64.html#a65018edc8a8596e8bdb7500926544a4a" target="_parent">r123array1x64::operator==()</a>
+    <a id="Item10_c5" onkeydown="return searchResults.NavChild(event,10,5)" onkeypress="return searchResults.NavChild(event,10,5)" onkeyup="return searchResults.NavChild(event,10,5)" class="SRScope" href="../structr123array2x64.html#aa690f425f846ff9908a734eb720df573" target="_parent">r123array2x64::operator==()</a>
+    <a id="Item10_c6" onkeydown="return searchResults.NavChild(event,10,6)" onkeypress="return searchResults.NavChild(event,10,6)" onkeyup="return searchResults.NavChild(event,10,6)" class="SRScope" href="../structr123array4x64.html#afada659cc4a54a1416dca2522885cef1" target="_parent">r123array4x64::operator==()</a>
+    <a id="Item10_c7" onkeydown="return searchResults.NavChild(event,10,7)" onkeypress="return searchResults.NavChild(event,10,7)" onkeyup="return searchResults.NavChild(event,10,7)" class="SRScope" href="../structr123array16x8.html#a4d3ed48f2b716382ea874a968a2b7174" target="_parent">r123array16x8::operator==()</a>
+    <a id="Item10_c8" onkeydown="return searchResults.NavChild(event,10,8)" onkeypress="return searchResults.NavChild(event,10,8)" onkeyup="return searchResults.NavChild(event,10,8)" class="SRScope" href="../structr123array1xm128i.html#aa459abf9fe8d15019860de5b3b0cddf8" target="_parent">r123array1xm128i::operator==()</a>
+    <a id="Item10_c9" onkeydown="return searchResults.NavChild(event,10,9)" onkeypress="return searchResults.NavChild(event,10,9)" onkeyup="return searchResults.NavChild(event,10,9)" class="SRScope" href="../structr123_1_1Engine.html#a606e3ba824542e52f12df1345126e721" target="_parent">r123::Engine::operator==()</a>
+    <a id="Item10_c10" onkeydown="return searchResults.NavChild(event,10,10)" onkeypress="return searchResults.NavChild(event,10,10)" onkeyup="return searchResults.NavChild(event,10,10)" class="SRScope" href="../sse_8h.html#ab1389a6d8b14bc380c6d6a6d4de8853e" target="_parent">operator==(const r123m128i &lhs, const r123m128i &rhs): sse.h</a>
+    <a id="Item10_c11" onkeydown="return searchResults.NavChild(event,10,11)" onkeypress="return searchResults.NavChild(event,10,11)" onkeyup="return searchResults.NavChild(event,10,11)" class="SRScope" href="../sse_8h.html#a01fbbba16839c5938b3fa29668870db2" target="_parent">operator==(uint64_t lhs, const r123m128i &rhs): sse.h</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_operator_3e">
+ <div class="SREntry">
+  <a id="Item11" onkeydown="return searchResults.Nav(event,11)" onkeypress="return searchResults.Nav(event,11)" onkeyup="return searchResults.Nav(event,11)" class="SRSymbol" href="../sse_8h.html#ad07b59f8110eac57511ee8c2fa697f93" target="_parent">operator></a>
+  <span class="SRScope">sse.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_operator_3e_3d">
+ <div class="SREntry">
+  <a id="Item12" onkeydown="return searchResults.Nav(event,12)" onkeypress="return searchResults.Nav(event,12)" onkeyup="return searchResults.Nav(event,12)" class="SRSymbol" href="../sse_8h.html#aa7bb0ad8bfceb39a1b71262b9476e151" target="_parent">operator>=</a>
+  <span class="SRScope">sse.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_operator_3e_3e">
+ <div class="SREntry">
+  <a id="Item13" onkeydown="return searchResults.Nav(event,13)" onkeypress="return searchResults.Nav(event,13)" onkeyup="return searchResults.Nav(event,13)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_operator_3e_3e')">operator>></a>
+  <div class="SRChildren">
+    <a id="Item13_c0" onkeydown="return searchResults.NavChild(event,13,0)" onkeypress="return searchResults.NavChild(event,13,0)" onkeyup="return searchResults.NavChild(event,13,0)" class="SRScope" href="../structr123_1_1Engine.html#ae708b771ab5ac17700d34bad875a16d9" target="_parent">r123::Engine::operator>>()</a>
+    <a id="Item13_c1" onkeydown="return searchResults.NavChild(event,13,1)" onkeypress="return searchResults.NavChild(event,13,1)" onkeyup="return searchResults.NavChild(event,13,1)" class="SRScope" href="../array_8h.html#ace3112deae6709884feac904b1c260a1" target="_parent">operator>>(std::istream &is, r123array1x32 &a): array.h</a>
+    <a id="Item13_c2" onkeydown="return searchResults.NavChild(event,13,2)" onkeypress="return searchResults.NavChild(event,13,2)" onkeyup="return searchResults.NavChild(event,13,2)" class="SRScope" href="../array_8h.html#a41bb2d7e99cf51ca5927a074d1424a03" target="_parent">operator>>(std::istream &is, r123array2x32 &a): array.h</a>
+    <a id="Item13_c3" onkeydown="return searchResults.NavChild(event,13,3)" onkeypress="return searchResults.NavChild(event,13,3)" onkeyup="return searchResults.NavChild(event,13,3)" class="SRScope" href="../array_8h.html#a2782402f8b3941e104e01c317fd4b099" target="_parent">operator>>(std::istream &is, r123array4x32 &a): array.h</a>
+    <a id="Item13_c4" onkeydown="return searchResults.NavChild(event,13,4)" onkeypress="return searchResults.NavChild(event,13,4)" onkeyup="return searchResults.NavChild(event,13,4)" class="SRScope" href="../array_8h.html#ae63a28cc2f1e69f63a4402c8b83663b4" target="_parent">operator>>(std::istream &is, r123array8x32 &a): array.h</a>
+    <a id="Item13_c5" onkeydown="return searchResults.NavChild(event,13,5)" onkeypress="return searchResults.NavChild(event,13,5)" onkeyup="return searchResults.NavChild(event,13,5)" class="SRScope" href="../array_8h.html#a3cdf7b897463996d6eda01443dd669c5" target="_parent">operator>>(std::istream &is, r123array1x64 &a): array.h</a>
+    <a id="Item13_c6" onkeydown="return searchResults.NavChild(event,13,6)" onkeypress="return searchResults.NavChild(event,13,6)" onkeyup="return searchResults.NavChild(event,13,6)" class="SRScope" href="../array_8h.html#a7b32dd7601d0a11b72583a841abc8fca" target="_parent">operator>>(std::istream &is, r123array2x64 &a): array.h</a>
+    <a id="Item13_c7" onkeydown="return searchResults.NavChild(event,13,7)" onkeypress="return searchResults.NavChild(event,13,7)" onkeyup="return searchResults.NavChild(event,13,7)" class="SRScope" href="../array_8h.html#a60aa3cdbb34ced56c0c7c82371f2b30c" target="_parent">operator>>(std::istream &is, r123array4x64 &a): array.h</a>
+    <a id="Item13_c8" onkeydown="return searchResults.NavChild(event,13,8)" onkeypress="return searchResults.NavChild(event,13,8)" onkeyup="return searchResults.NavChild(event,13,8)" class="SRScope" href="../array_8h.html#abb64305331045d211dfa35be0d0cc6a9" target="_parent">operator>>(std::istream &is, r123array16x8 &a): array.h</a>
+    <a id="Item13_c9" onkeydown="return searchResults.NavChild(event,13,9)" onkeypress="return searchResults.NavChild(event,13,9)" onkeyup="return searchResults.NavChild(event,13,9)" class="SRScope" href="../array_8h.html#af831caf1f33e800dad6a659523525a78" target="_parent">operator>>(std::istream &is, r123array1xm128i &a): array.h</a>
+    <a id="Item13_c10" onkeydown="return searchResults.NavChild(event,13,10)" onkeypress="return searchResults.NavChild(event,13,10)" onkeyup="return searchResults.NavChild(event,13,10)" class="SRScope" href="../sse_8h.html#a202aef4bea97c2203a82676cb6abba40" target="_parent">operator>>(std::istream &is, r123m128i &m): sse.h</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_operator_5b_5d">
+ <div class="SREntry">
+  <a id="Item14" onkeydown="return searchResults.Nav(event,14)" onkeypress="return searchResults.Nav(event,14)" onkeyup="return searchResults.Nav(event,14)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_operator_5b_5d')">operator[]</a>
+  <div class="SRChildren">
+    <a id="Item14_c0" onkeydown="return searchResults.NavChild(event,14,0)" onkeypress="return searchResults.NavChild(event,14,0)" onkeyup="return searchResults.NavChild(event,14,0)" class="SRScope" href="../structr123array1x32.html#aa47bb157c60858c1b0ef69df79646a3b" target="_parent">r123array1x32::operator[](size_type i)</a>
+    <a id="Item14_c1" onkeydown="return searchResults.NavChild(event,14,1)" onkeypress="return searchResults.NavChild(event,14,1)" onkeyup="return searchResults.NavChild(event,14,1)" class="SRScope" href="../structr123array1x32.html#a05cf21fa6a647c73763da02d4b7e2f2a" target="_parent">r123array1x32::operator[](size_type i) const </a>
+    <a id="Item14_c2" onkeydown="return searchResults.NavChild(event,14,2)" onkeypress="return searchResults.NavChild(event,14,2)" onkeyup="return searchResults.NavChild(event,14,2)" class="SRScope" href="../structr123array2x32.html#a9926f6938472682c5d31a742378f17de" target="_parent">r123array2x32::operator[](size_type i)</a>
+    <a id="Item14_c3" onkeydown="return searchResults.NavChild(event,14,3)" onkeypress="return searchResults.NavChild(event,14,3)" onkeyup="return searchResults.NavChild(event,14,3)" class="SRScope" href="../structr123array2x32.html#a0ae33a5edf89f9f12edec38209b02464" target="_parent">r123array2x32::operator[](size_type i) const </a>
+    <a id="Item14_c4" onkeydown="return searchResults.NavChild(event,14,4)" onkeypress="return searchResults.NavChild(event,14,4)" onkeyup="return searchResults.NavChild(event,14,4)" class="SRScope" href="../structr123array4x32.html#aa1fef4a0eb551a70d1ec5d766efcffb5" target="_parent">r123array4x32::operator[](size_type i)</a>
+    <a id="Item14_c5" onkeydown="return searchResults.NavChild(event,14,5)" onkeypress="return searchResults.NavChild(event,14,5)" onkeyup="return searchResults.NavChild(event,14,5)" class="SRScope" href="../structr123array4x32.html#a3161a139a59a1196398d5d4b81d740df" target="_parent">r123array4x32::operator[](size_type i) const </a>
+    <a id="Item14_c6" onkeydown="return searchResults.NavChild(event,14,6)" onkeypress="return searchResults.NavChild(event,14,6)" onkeyup="return searchResults.NavChild(event,14,6)" class="SRScope" href="../structr123array8x32.html#a2b0d17077d419e9f296318161fcc0470" target="_parent">r123array8x32::operator[](size_type i)</a>
+    <a id="Item14_c7" onkeydown="return searchResults.NavChild(event,14,7)" onkeypress="return searchResults.NavChild(event,14,7)" onkeyup="return searchResults.NavChild(event,14,7)" class="SRScope" href="../structr123array8x32.html#ace7ad1b4aca1ad419c373d9cff872805" target="_parent">r123array8x32::operator[](size_type i) const </a>
+    <a id="Item14_c8" onkeydown="return searchResults.NavChild(event,14,8)" onkeypress="return searchResults.NavChild(event,14,8)" onkeyup="return searchResults.NavChild(event,14,8)" class="SRScope" href="../structr123array1x64.html#a10fbaabd5223f286d6e396e15227569c" target="_parent">r123array1x64::operator[](size_type i)</a>
+    <a id="Item14_c9" onkeydown="return searchResults.NavChild(event,14,9)" onkeypress="return searchResults.NavChild(event,14,9)" onkeyup="return searchResults.NavChild(event,14,9)" class="SRScope" href="../structr123array1x64.html#aa13b237c78d719ecfb5a59cdd557c889" target="_parent">r123array1x64::operator[](size_type i) const </a>
+    <a id="Item14_c10" onkeydown="return searchResults.NavChild(event,14,10)" onkeypress="return searchResults.NavChild(event,14,10)" onkeyup="return searchResults.NavChild(event,14,10)" class="SRScope" href="../structr123array2x64.html#a7352cdb2c025b0373ece5c84409a1b1d" target="_parent">r123array2x64::operator[](size_type i)</a>
+    <a id="Item14_c11" onkeydown="return searchResults.NavChild(event,14,11)" onkeypress="return searchResults.NavChild(event,14,11)" onkeyup="return searchResults.NavChild(event,14,11)" class="SRScope" href="../structr123array2x64.html#ae534a7e32afae58303ccc8379408551b" target="_parent">r123array2x64::operator[](size_type i) const </a>
+    <a id="Item14_c12" onkeydown="return searchResults.NavChild(event,14,12)" onkeypress="return searchResults.NavChild(event,14,12)" onkeyup="return searchResults.NavChild(event,14,12)" class="SRScope" href="../structr123array4x64.html#adf867ee2ffc437a3f358431d3729a33d" target="_parent">r123array4x64::operator[](size_type i)</a>
+    <a id="Item14_c13" onkeydown="return searchResults.NavChild(event,14,13)" onkeypress="return searchResults.NavChild(event,14,13)" onkeyup="return searchResults.NavChild(event,14,13)" class="SRScope" href="../structr123array4x64.html#a27c2001bf5af042aa450f17637646bd3" target="_parent">r123array4x64::operator[](size_type i) const </a>
+    <a id="Item14_c14" onkeydown="return searchResults.NavChild(event,14,14)" onkeypress="return searchResults.NavChild(event,14,14)" onkeyup="return searchResults.NavChild(event,14,14)" class="SRScope" href="../structr123array16x8.html#abe9f2b18e2e3b89e00725f6fa69b8236" target="_parent">r123array16x8::operator[](size_type i)</a>
+    <a id="Item14_c15" onkeydown="return searchResults.NavChild(event,14,15)" onkeypress="return searchResults.NavChild(event,14,15)" onkeyup="return searchResults.NavChild(event,14,15)" class="SRScope" href="../structr123array16x8.html#a013713c00f6e8a5adb7be77388c22d8f" target="_parent">r123array16x8::operator[](size_type i) const </a>
+    <a id="Item14_c16" onkeydown="return searchResults.NavChild(event,14,16)" onkeypress="return searchResults.NavChild(event,14,16)" onkeyup="return searchResults.NavChild(event,14,16)" class="SRScope" href="../structr123array1xm128i.html#aba0d6532c59c3c879bcfbad16cab5748" target="_parent">r123array1xm128i::operator[](size_type i)</a>
+    <a id="Item14_c17" onkeydown="return searchResults.NavChild(event,14,17)" onkeypress="return searchResults.NavChild(event,14,17)" onkeyup="return searchResults.NavChild(event,14,17)" class="SRScope" href="../structr123array1xm128i.html#aaa3ccbe6c0838b5bdafcd0dfa3c2c074" target="_parent">r123array1xm128i::operator[](size_type i) const </a>
+  </div>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/all_70.html b/docs/html/search/all_70.html
new file mode 100644
index 0000000..5b697e7
--- /dev/null
+++ b/docs/html/search/all_70.html
@@ -0,0 +1,245 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_philox_2eh">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../philox_8h.html" target="_parent">philox.h</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_philox2x32">
+ <div class="SREntry">
+  <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_philox2x32')">philox2x32</a>
+  <div class="SRChildren">
+    <a id="Item1_c0" onkeydown="return searchResults.NavChild(event,1,0)" onkeypress="return searchResults.NavChild(event,1,0)" onkeyup="return searchResults.NavChild(event,1,0)" class="SRScope" href="../philox_8h.html#ab2496424917f063a4990f01943a07fe0" target="_parent">philox2x32(): philox.h</a>
+    <a id="Item1_c1" onkeydown="return searchResults.NavChild(event,1,1)" onkeypress="return searchResults.NavChild(event,1,1)" onkeyup="return searchResults.NavChild(event,1,1)" class="SRScope" href="../group__PhiloxNxW.html#ga81659a3ee5a1ca9e2e85c5d725a1ea4f" target="_parent">r123::Philox2x32()</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_philox2x32_5fctr_5ft">
+ <div class="SREntry">
+  <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../philox_8h.html#a5fad831cdbd677bc6e53d37c0191f5e3" target="_parent">philox2x32_ctr_t</a>
+  <span class="SRScope">philox.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_philox2x32_5fkey_5ft">
+ <div class="SREntry">
+  <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="../philox_8h.html#a55c0e4adeab3387915f966a0e40dc036" target="_parent">philox2x32_key_t</a>
+  <span class="SRScope">philox.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_philox2x32_5fr">
+ <div class="SREntry">
+  <a id="Item4" onkeydown="return searchResults.Nav(event,4)" onkeypress="return searchResults.Nav(event,4)" onkeyup="return searchResults.Nav(event,4)" class="SRSymbol" href="../structr123_1_1Philox2x32__R.html" target="_parent">Philox2x32_R</a>
+  <span class="SRScope">r123</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_philox2x32_5fr">
+ <div class="SREntry">
+  <a id="Item5" onkeydown="return searchResults.Nav(event,5)" onkeypress="return searchResults.Nav(event,5)" onkeyup="return searchResults.Nav(event,5)" class="SRSymbol" href="../philox_8h.html#acf0a4b82a9fd3f4695c04210df0cbefe" target="_parent">philox2x32_R</a>
+  <span class="SRScope">philox.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_philox2x32_5frounds">
+ <div class="SREntry">
+  <a id="Item6" onkeydown="return searchResults.Nav(event,6)" onkeypress="return searchResults.Nav(event,6)" onkeyup="return searchResults.Nav(event,6)" class="SRSymbol" href="../group__PhiloxNxW.html#ggae7443e1a57429154124943b6a7c0bd08ad08568b592cd076441505eed926d929c" target="_parent">philox2x32_rounds</a>
+  <span class="SRScope">philox.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_philox2x32_5fukey_5ft">
+ <div class="SREntry">
+  <a id="Item7" onkeydown="return searchResults.Nav(event,7)" onkeypress="return searchResults.Nav(event,7)" onkeyup="return searchResults.Nav(event,7)" class="SRSymbol" href="../philox_8h.html#abf96b0e95504989c58e6d3436b013a6b" target="_parent">philox2x32_ukey_t</a>
+  <span class="SRScope">philox.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_philox2x32keyinit">
+ <div class="SREntry">
+  <a id="Item8" onkeydown="return searchResults.Nav(event,8)" onkeypress="return searchResults.Nav(event,8)" onkeyup="return searchResults.Nav(event,8)" class="SRSymbol" href="../philox_8h.html#ae5dd55c0697c37598c1fbce66457e124" target="_parent">philox2x32keyinit</a>
+  <span class="SRScope">philox.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_philox2x64">
+ <div class="SREntry">
+  <a id="Item9" onkeydown="return searchResults.Nav(event,9)" onkeypress="return searchResults.Nav(event,9)" onkeyup="return searchResults.Nav(event,9)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_philox2x64')">philox2x64</a>
+  <div class="SRChildren">
+    <a id="Item9_c0" onkeydown="return searchResults.NavChild(event,9,0)" onkeypress="return searchResults.NavChild(event,9,0)" onkeyup="return searchResults.NavChild(event,9,0)" class="SRScope" href="../philox_8h.html#ae6b57a71e4efa369cc19416fc088b5a5" target="_parent">philox2x64(): philox.h</a>
+    <a id="Item9_c1" onkeydown="return searchResults.NavChild(event,9,1)" onkeypress="return searchResults.NavChild(event,9,1)" onkeyup="return searchResults.NavChild(event,9,1)" class="SRScope" href="../group__PhiloxNxW.html#ga616a669079ac25119353416c14d46426" target="_parent">r123::Philox2x64()</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_philox2x64_5fctr_5ft">
+ <div class="SREntry">
+  <a id="Item10" onkeydown="return searchResults.Nav(event,10)" onkeypress="return searchResults.Nav(event,10)" onkeyup="return searchResults.Nav(event,10)" class="SRSymbol" href="../philox_8h.html#a33fa626a4198f38d87713ae9504e53f2" target="_parent">philox2x64_ctr_t</a>
+  <span class="SRScope">philox.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_philox2x64_5fkey_5ft">
+ <div class="SREntry">
+  <a id="Item11" onkeydown="return searchResults.Nav(event,11)" onkeypress="return searchResults.Nav(event,11)" onkeyup="return searchResults.Nav(event,11)" class="SRSymbol" href="../philox_8h.html#a190087c2584155a936ec7d7b9e8d7f34" target="_parent">philox2x64_key_t</a>
+  <span class="SRScope">philox.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_philox2x64_5fr">
+ <div class="SREntry">
+  <a id="Item12" onkeydown="return searchResults.Nav(event,12)" onkeypress="return searchResults.Nav(event,12)" onkeyup="return searchResults.Nav(event,12)" class="SRSymbol" href="../philox_8h.html#a03c068219ecebcc870afa14a330c0735" target="_parent">philox2x64_R</a>
+  <span class="SRScope">philox.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_philox2x64_5fr">
+ <div class="SREntry">
+  <a id="Item13" onkeydown="return searchResults.Nav(event,13)" onkeypress="return searchResults.Nav(event,13)" onkeyup="return searchResults.Nav(event,13)" class="SRSymbol" href="../structr123_1_1Philox2x64__R.html" target="_parent">Philox2x64_R</a>
+  <span class="SRScope">r123</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_philox2x64_5frounds">
+ <div class="SREntry">
+  <a id="Item14" onkeydown="return searchResults.Nav(event,14)" onkeypress="return searchResults.Nav(event,14)" onkeyup="return searchResults.Nav(event,14)" class="SRSymbol" href="../group__PhiloxNxW.html#ggaca9df5cdadde758a63952daa97ddff91ae15befbf8ae3f2e93d6e49ea9e05b636" target="_parent">philox2x64_rounds</a>
+  <span class="SRScope">philox.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_philox2x64_5fukey_5ft">
+ <div class="SREntry">
+  <a id="Item15" onkeydown="return searchResults.Nav(event,15)" onkeypress="return searchResults.Nav(event,15)" onkeyup="return searchResults.Nav(event,15)" class="SRSymbol" href="../philox_8h.html#a419cc7ebdeeaa1fc8249c638eac3d00b" target="_parent">philox2x64_ukey_t</a>
+  <span class="SRScope">philox.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_philox2x64keyinit">
+ <div class="SREntry">
+  <a id="Item16" onkeydown="return searchResults.Nav(event,16)" onkeypress="return searchResults.Nav(event,16)" onkeyup="return searchResults.Nav(event,16)" class="SRSymbol" href="../philox_8h.html#a36b9225fcb73f91d116b424f721275f1" target="_parent">philox2x64keyinit</a>
+  <span class="SRScope">philox.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_philox4x32">
+ <div class="SREntry">
+  <a id="Item17" onkeydown="return searchResults.Nav(event,17)" onkeypress="return searchResults.Nav(event,17)" onkeyup="return searchResults.Nav(event,17)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_philox4x32')">philox4x32</a>
+  <div class="SRChildren">
+    <a id="Item17_c0" onkeydown="return searchResults.NavChild(event,17,0)" onkeypress="return searchResults.NavChild(event,17,0)" onkeyup="return searchResults.NavChild(event,17,0)" class="SRScope" href="../philox_8h.html#a432a3df828dd51acd0b7ec2fee1d4d7e" target="_parent">philox4x32(): philox.h</a>
+    <a id="Item17_c1" onkeydown="return searchResults.NavChild(event,17,1)" onkeypress="return searchResults.NavChild(event,17,1)" onkeyup="return searchResults.NavChild(event,17,1)" class="SRScope" href="../group__PhiloxNxW.html#gaafd54060af05012db410034e3c0ecdc4" target="_parent">r123::Philox4x32()</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_philox4x32_5fctr_5ft">
+ <div class="SREntry">
+  <a id="Item18" onkeydown="return searchResults.Nav(event,18)" onkeypress="return searchResults.Nav(event,18)" onkeyup="return searchResults.Nav(event,18)" class="SRSymbol" href="../philox_8h.html#a96f2a94ebcd7aba28aaeb0aba6543d2d" target="_parent">philox4x32_ctr_t</a>
+  <span class="SRScope">philox.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_philox4x32_5fkey_5ft">
+ <div class="SREntry">
+  <a id="Item19" onkeydown="return searchResults.Nav(event,19)" onkeypress="return searchResults.Nav(event,19)" onkeyup="return searchResults.Nav(event,19)" class="SRSymbol" href="../philox_8h.html#ab1e74b78fcee751b43739b2b4415c592" target="_parent">philox4x32_key_t</a>
+  <span class="SRScope">philox.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_philox4x32_5fr">
+ <div class="SREntry">
+  <a id="Item20" onkeydown="return searchResults.Nav(event,20)" onkeypress="return searchResults.Nav(event,20)" onkeyup="return searchResults.Nav(event,20)" class="SRSymbol" href="../philox_8h.html#a205fdd66786445b3e1c4157bd96d0967" target="_parent">philox4x32_R</a>
+  <span class="SRScope">philox.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_philox4x32_5fr">
+ <div class="SREntry">
+  <a id="Item21" onkeydown="return searchResults.Nav(event,21)" onkeypress="return searchResults.Nav(event,21)" onkeyup="return searchResults.Nav(event,21)" class="SRSymbol" href="../structr123_1_1Philox4x32__R.html" target="_parent">Philox4x32_R</a>
+  <span class="SRScope">r123</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_philox4x32_5frounds">
+ <div class="SREntry">
+  <a id="Item22" onkeydown="return searchResults.Nav(event,22)" onkeypress="return searchResults.Nav(event,22)" onkeyup="return searchResults.Nav(event,22)" class="SRSymbol" href="../group__PhiloxNxW.html#gga67fd1bf4ed858d01663a7d6b219b97a2ac9dec73e096a7afb5d82f2388a7a5412" target="_parent">philox4x32_rounds</a>
+  <span class="SRScope">philox.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_philox4x32_5fukey_5ft">
+ <div class="SREntry">
+  <a id="Item23" onkeydown="return searchResults.Nav(event,23)" onkeypress="return searchResults.Nav(event,23)" onkeyup="return searchResults.Nav(event,23)" class="SRSymbol" href="../philox_8h.html#a82e1d60f98bfbb600bde2bd939de4573" target="_parent">philox4x32_ukey_t</a>
+  <span class="SRScope">philox.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_philox4x32keyinit">
+ <div class="SREntry">
+  <a id="Item24" onkeydown="return searchResults.Nav(event,24)" onkeypress="return searchResults.Nav(event,24)" onkeyup="return searchResults.Nav(event,24)" class="SRSymbol" href="../philox_8h.html#a5a012bb440c039eda46802b447c31851" target="_parent">philox4x32keyinit</a>
+  <span class="SRScope">philox.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_philox4x64">
+ <div class="SREntry">
+  <a id="Item25" onkeydown="return searchResults.Nav(event,25)" onkeypress="return searchResults.Nav(event,25)" onkeyup="return searchResults.Nav(event,25)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_philox4x64')">Philox4x64</a>
+  <div class="SRChildren">
+    <a id="Item25_c0" onkeydown="return searchResults.NavChild(event,25,0)" onkeypress="return searchResults.NavChild(event,25,0)" onkeyup="return searchResults.NavChild(event,25,0)" class="SRScope" href="../group__PhiloxNxW.html#ga7776f4d481b7c0ac00db70272a1c77f0" target="_parent">r123::Philox4x64()</a>
+    <a id="Item25_c1" onkeydown="return searchResults.NavChild(event,25,1)" onkeypress="return searchResults.NavChild(event,25,1)" onkeyup="return searchResults.NavChild(event,25,1)" class="SRScope" href="../philox_8h.html#a62fb1b4d9775396303ebb2a801fea8e6" target="_parent">philox4x64(): philox.h</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_philox4x64_5fctr_5ft">
+ <div class="SREntry">
+  <a id="Item26" onkeydown="return searchResults.Nav(event,26)" onkeypress="return searchResults.Nav(event,26)" onkeyup="return searchResults.Nav(event,26)" class="SRSymbol" href="../philox_8h.html#a4d2063cc89bf13153ddeff0d94371986" target="_parent">philox4x64_ctr_t</a>
+  <span class="SRScope">philox.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_philox4x64_5fkey_5ft">
+ <div class="SREntry">
+  <a id="Item27" onkeydown="return searchResults.Nav(event,27)" onkeypress="return searchResults.Nav(event,27)" onkeyup="return searchResults.Nav(event,27)" class="SRSymbol" href="../philox_8h.html#a0c8c9410e9d88d4c94e8093007e39b0c" target="_parent">philox4x64_key_t</a>
+  <span class="SRScope">philox.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_philox4x64_5fr">
+ <div class="SREntry">
+  <a id="Item28" onkeydown="return searchResults.Nav(event,28)" onkeypress="return searchResults.Nav(event,28)" onkeyup="return searchResults.Nav(event,28)" class="SRSymbol" href="../structr123_1_1Philox4x64__R.html" target="_parent">Philox4x64_R</a>
+  <span class="SRScope">r123</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_philox4x64_5fr">
+ <div class="SREntry">
+  <a id="Item29" onkeydown="return searchResults.Nav(event,29)" onkeypress="return searchResults.Nav(event,29)" onkeyup="return searchResults.Nav(event,29)" class="SRSymbol" href="../philox_8h.html#ac72571943d83caf2f79b7bd309a2ae92" target="_parent">philox4x64_R</a>
+  <span class="SRScope">philox.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_philox4x64_5frounds">
+ <div class="SREntry">
+  <a id="Item30" onkeydown="return searchResults.Nav(event,30)" onkeypress="return searchResults.Nav(event,30)" onkeyup="return searchResults.Nav(event,30)" class="SRSymbol" href="../group__PhiloxNxW.html#ggaf603860d055cee96c75f6986641e9cada3407accddb6e873c1005a4ab2edcef67" target="_parent">philox4x64_rounds</a>
+  <span class="SRScope">philox.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_philox4x64_5fukey_5ft">
+ <div class="SREntry">
+  <a id="Item31" onkeydown="return searchResults.Nav(event,31)" onkeypress="return searchResults.Nav(event,31)" onkeyup="return searchResults.Nav(event,31)" class="SRSymbol" href="../philox_8h.html#a689ed8276d25fe0c983c4eb5b9a32fd4" target="_parent">philox4x64_ukey_t</a>
+  <span class="SRScope">philox.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_philox4x64keyinit">
+ <div class="SREntry">
+  <a id="Item32" onkeydown="return searchResults.Nav(event,32)" onkeypress="return searchResults.Nav(event,32)" onkeyup="return searchResults.Nav(event,32)" class="SRSymbol" href="../philox_8h.html#a101674ffc206e3bd600f9544de0c3c4a" target="_parent">philox4x64keyinit</a>
+  <span class="SRScope">philox.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_pointer">
+ <div class="SREntry">
+  <a id="Item33" onkeydown="return searchResults.Nav(event,33)" onkeypress="return searchResults.Nav(event,33)" onkeyup="return searchResults.Nav(event,33)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_pointer')">pointer</a>
+  <div class="SRChildren">
+    <a id="Item33_c0" onkeydown="return searchResults.NavChild(event,33,0)" onkeypress="return searchResults.NavChild(event,33,0)" onkeyup="return searchResults.NavChild(event,33,0)" class="SRScope" href="../structr123array1x32.html#a85ce46c2e10ab3d9c4f60aebe6268898" target="_parent">r123array1x32::pointer()</a>
+    <a id="Item33_c1" onkeydown="return searchResults.NavChild(event,33,1)" onkeypress="return searchResults.NavChild(event,33,1)" onkeyup="return searchResults.NavChild(event,33,1)" class="SRScope" href="../structr123array2x32.html#ac884bcbd1063811354bfac66262a0b42" target="_parent">r123array2x32::pointer()</a>
+    <a id="Item33_c2" onkeydown="return searchResults.NavChild(event,33,2)" onkeypress="return searchResults.NavChild(event,33,2)" onkeyup="return searchResults.NavChild(event,33,2)" class="SRScope" href="../structr123array4x32.html#adcef39f1e3989578b4c0a92524a15df2" target="_parent">r123array4x32::pointer()</a>
+    <a id="Item33_c3" onkeydown="return searchResults.NavChild(event,33,3)" onkeypress="return searchResults.NavChild(event,33,3)" onkeyup="return searchResults.NavChild(event,33,3)" class="SRScope" href="../structr123array8x32.html#aeaf3b46bbc571a21d61ad6ee6e760291" target="_parent">r123array8x32::pointer()</a>
+    <a id="Item33_c4" onkeydown="return searchResults.NavChild(event,33,4)" onkeypress="return searchResults.NavChild(event,33,4)" onkeyup="return searchResults.NavChild(event,33,4)" class="SRScope" href="../structr123array1x64.html#a1c104fabb72d6c72c51348ac72bd419f" target="_parent">r123array1x64::pointer()</a>
+    <a id="Item33_c5" onkeydown="return searchResults.NavChild(event,33,5)" onkeypress="return searchResults.NavChild(event,33,5)" onkeyup="return searchResults.NavChild(event,33,5)" class="SRScope" href="../structr123array2x64.html#a3b0b967b9ae134da266448c190f59c3a" target="_parent">r123array2x64::pointer()</a>
+    <a id="Item33_c6" onkeydown="return searchResults.NavChild(event,33,6)" onkeypress="return searchResults.NavChild(event,33,6)" onkeyup="return searchResults.NavChild(event,33,6)" class="SRScope" href="../structr123array4x64.html#a08c39c2f70f4198a82cba99c0162e67c" target="_parent">r123array4x64::pointer()</a>
+    <a id="Item33_c7" onkeydown="return searchResults.NavChild(event,33,7)" onkeypress="return searchResults.NavChild(event,33,7)" onkeyup="return searchResults.NavChild(event,33,7)" class="SRScope" href="../structr123array16x8.html#aa6ae2e4843b3bb1b66425afa7da9e281" target="_parent">r123array16x8::pointer()</a>
+    <a id="Item33_c8" onkeydown="return searchResults.NavChild(event,33,8)" onkeypress="return searchResults.NavChild(event,33,8)" onkeyup="return searchResults.NavChild(event,33,8)" class="SRScope" href="../structr123array1xm128i.html#a4f78260ba2ec595bdc56fc21fd45e45a" target="_parent">r123array1xm128i::pointer()</a>
+  </div>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/all_72.html b/docs/html/search/all_72.html
new file mode 100644
index 0000000..49e3421
--- /dev/null
+++ b/docs/html/search/all_72.html
@@ -0,0 +1,301 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_r123">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../namespacer123.html" target="_parent">r123</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_r123_5fenum_5faesni1xm128i">
+ <div class="SREntry">
+  <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../group__AESNI.html#ga2814629101926e23001d564630ba7b86" target="_parent">r123_enum_aesni1xm128i</a>
+  <span class="SRScope">aes.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_r123_5fenum_5faesni4x32">
+ <div class="SREntry">
+  <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../group__AESNI.html#ga1557a9d6e95543a3c4ca9082a4c14b0d" target="_parent">r123_enum_aesni4x32</a>
+  <span class="SRScope">aes.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_r123_5fenum_5fars1xm128i">
+ <div class="SREntry">
+  <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="../group__AESNI.html#gabf0a537666d4d1421144cb0a5e67666c" target="_parent">r123_enum_ars1xm128i</a>
+  <span class="SRScope">ars.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_r123_5fenum_5fars4x32">
+ <div class="SREntry">
+  <a id="Item4" onkeydown="return searchResults.Nav(event,4)" onkeypress="return searchResults.Nav(event,4)" onkeyup="return searchResults.Nav(event,4)" class="SRSymbol" href="../group__AESNI.html#gaa623b038fa0c8d8d2864fdc0e45884d6" target="_parent">r123_enum_ars4x32</a>
+  <span class="SRScope">ars.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_r123_5fenum_5fphilox2x32">
+ <div class="SREntry">
+  <a id="Item5" onkeydown="return searchResults.Nav(event,5)" onkeypress="return searchResults.Nav(event,5)" onkeyup="return searchResults.Nav(event,5)" class="SRSymbol" href="../group__PhiloxNxW.html#gae7443e1a57429154124943b6a7c0bd08" target="_parent">r123_enum_philox2x32</a>
+  <span class="SRScope">philox.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_r123_5fenum_5fphilox2x64">
+ <div class="SREntry">
+  <a id="Item6" onkeydown="return searchResults.Nav(event,6)" onkeypress="return searchResults.Nav(event,6)" onkeyup="return searchResults.Nav(event,6)" class="SRSymbol" href="../group__PhiloxNxW.html#gaca9df5cdadde758a63952daa97ddff91" target="_parent">r123_enum_philox2x64</a>
+  <span class="SRScope">philox.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_r123_5fenum_5fphilox4x32">
+ <div class="SREntry">
+  <a id="Item7" onkeydown="return searchResults.Nav(event,7)" onkeypress="return searchResults.Nav(event,7)" onkeyup="return searchResults.Nav(event,7)" class="SRSymbol" href="../group__PhiloxNxW.html#ga67fd1bf4ed858d01663a7d6b219b97a2" target="_parent">r123_enum_philox4x32</a>
+  <span class="SRScope">philox.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_r123_5fenum_5fphilox4x64">
+ <div class="SREntry">
+  <a id="Item8" onkeydown="return searchResults.Nav(event,8)" onkeypress="return searchResults.Nav(event,8)" onkeyup="return searchResults.Nav(event,8)" class="SRSymbol" href="../group__PhiloxNxW.html#gaf603860d055cee96c75f6986641e9cad" target="_parent">r123_enum_philox4x64</a>
+  <span class="SRScope">philox.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_r123_5fenum_5fthreefry2x32">
+ <div class="SREntry">
+  <a id="Item9" onkeydown="return searchResults.Nav(event,9)" onkeypress="return searchResults.Nav(event,9)" onkeyup="return searchResults.Nav(event,9)" class="SRSymbol" href="../group__ThreefryNxW.html#gae1c47baba4367dd47d68025d23ae4775" target="_parent">r123_enum_threefry2x32</a>
+  <span class="SRScope">threefry.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_r123_5fenum_5fthreefry2x64">
+ <div class="SREntry">
+  <a id="Item10" onkeydown="return searchResults.Nav(event,10)" onkeypress="return searchResults.Nav(event,10)" onkeyup="return searchResults.Nav(event,10)" class="SRSymbol" href="../group__ThreefryNxW.html#gae4df1e52db01acafb28d9c6c25a41071" target="_parent">r123_enum_threefry2x64</a>
+  <span class="SRScope">threefry.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_r123_5fenum_5fthreefry4x32">
+ <div class="SREntry">
+  <a id="Item11" onkeydown="return searchResults.Nav(event,11)" onkeypress="return searchResults.Nav(event,11)" onkeyup="return searchResults.Nav(event,11)" class="SRSymbol" href="../group__ThreefryNxW.html#ga027cd15620ecab867c6af8bb065b189b" target="_parent">r123_enum_threefry4x32</a>
+  <span class="SRScope">threefry.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_r123_5fenum_5fthreefry4x64">
+ <div class="SREntry">
+  <a id="Item12" onkeydown="return searchResults.Nav(event,12)" onkeypress="return searchResults.Nav(event,12)" onkeyup="return searchResults.Nav(event,12)" class="SRSymbol" href="../group__ThreefryNxW.html#ga6379a4a73e85bc36235907a326945acc" target="_parent">r123_enum_threefry4x64</a>
+  <span class="SRScope">threefry.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_r123_5fno_5fmacro_5fsubst">
+ <div class="SREntry">
+  <a id="Item13" onkeydown="return searchResults.Nav(event,13)" onkeypress="return searchResults.Nav(event,13)" onkeyup="return searchResults.Nav(event,13)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_r123_5fno_5fmacro_5fsubst')">R123_NO_MACRO_SUBST</a>
+  <div class="SRChildren">
+    <a id="Item13_c0" onkeydown="return searchResults.NavChild(event,13,0)" onkeypress="return searchResults.NavChild(event,13,0)" onkeyup="return searchResults.NavChild(event,13,0)" class="SRScope" href="../classr123_1_1MicroURNG.html#aa05c857c01053cf9185406d69757b101" target="_parent">r123::MicroURNG::R123_NO_MACRO_SUBST()</a>
+    <a id="Item13_c1" onkeydown="return searchResults.NavChild(event,13,1)" onkeypress="return searchResults.NavChild(event,13,1)" onkeyup="return searchResults.NavChild(event,13,1)" class="SRScope" href="../classr123_1_1MicroURNG.html#a3af623b6366d6e848d67d72e4b0f363c" target="_parent">r123::MicroURNG::R123_NO_MACRO_SUBST()</a>
+    <a id="Item13_c2" onkeydown="return searchResults.NavChild(event,13,2)" onkeypress="return searchResults.NavChild(event,13,2)" onkeyup="return searchResults.NavChild(event,13,2)" class="SRScope" href="../structr123_1_1Engine.html#af5441fc62932c3d099f8b16150d2aa81" target="_parent">r123::Engine::R123_NO_MACRO_SUBST()</a>
+    <a id="Item13_c3" onkeydown="return searchResults.NavChild(event,13,3)" onkeypress="return searchResults.NavChild(event,13,3)" onkeyup="return searchResults.NavChild(event,13,3)" class="SRScope" href="../structr123_1_1Engine.html#a112318f7d0015ecf4c3c6a8a5c76371b" target="_parent">r123::Engine::R123_NO_MACRO_SUBST()</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_r123_5fw">
+ <div class="SREntry">
+  <a id="Item14" onkeydown="return searchResults.Nav(event,14)" onkeypress="return searchResults.Nav(event,14)" onkeyup="return searchResults.Nav(event,14)" class="SRSymbol" href="../array_8h.html#a9b64205709c0daaea3b05bbf7ea5a322" target="_parent">R123_W</a>
+  <span class="SRScope">array.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_r123array16x8">
+ <div class="SREntry">
+  <a id="Item15" onkeydown="return searchResults.Nav(event,15)" onkeypress="return searchResults.Nav(event,15)" onkeyup="return searchResults.Nav(event,15)" class="SRSymbol" href="../structr123array16x8.html" target="_parent">r123array16x8</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_r123array1x32">
+ <div class="SREntry">
+  <a id="Item16" onkeydown="return searchResults.Nav(event,16)" onkeypress="return searchResults.Nav(event,16)" onkeyup="return searchResults.Nav(event,16)" class="SRSymbol" href="../structr123array1x32.html" target="_parent">r123array1x32</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_r123array1x64">
+ <div class="SREntry">
+  <a id="Item17" onkeydown="return searchResults.Nav(event,17)" onkeypress="return searchResults.Nav(event,17)" onkeyup="return searchResults.Nav(event,17)" class="SRSymbol" href="../structr123array1x64.html" target="_parent">r123array1x64</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_r123array1xm128i">
+ <div class="SREntry">
+  <a id="Item18" onkeydown="return searchResults.Nav(event,18)" onkeypress="return searchResults.Nav(event,18)" onkeyup="return searchResults.Nav(event,18)" class="SRSymbol" href="../structr123array1xm128i.html" target="_parent">r123array1xm128i</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_r123array2x32">
+ <div class="SREntry">
+  <a id="Item19" onkeydown="return searchResults.Nav(event,19)" onkeypress="return searchResults.Nav(event,19)" onkeyup="return searchResults.Nav(event,19)" class="SRSymbol" href="../structr123array2x32.html" target="_parent">r123array2x32</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_r123array2x64">
+ <div class="SREntry">
+  <a id="Item20" onkeydown="return searchResults.Nav(event,20)" onkeypress="return searchResults.Nav(event,20)" onkeyup="return searchResults.Nav(event,20)" class="SRSymbol" href="../structr123array2x64.html" target="_parent">r123array2x64</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_r123array4x32">
+ <div class="SREntry">
+  <a id="Item21" onkeydown="return searchResults.Nav(event,21)" onkeypress="return searchResults.Nav(event,21)" onkeyup="return searchResults.Nav(event,21)" class="SRSymbol" href="../structr123array4x32.html" target="_parent">r123array4x32</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_r123array4x64">
+ <div class="SREntry">
+  <a id="Item22" onkeydown="return searchResults.Nav(event,22)" onkeypress="return searchResults.Nav(event,22)" onkeyup="return searchResults.Nav(event,22)" class="SRSymbol" href="../structr123array4x64.html" target="_parent">r123array4x64</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_r123array8x32">
+ <div class="SREntry">
+  <a id="Item23" onkeydown="return searchResults.Nav(event,23)" onkeypress="return searchResults.Nav(event,23)" onkeyup="return searchResults.Nav(event,23)" class="SRSymbol" href="../structr123array8x32.html" target="_parent">r123array8x32</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_r123m128i">
+ <div class="SREntry">
+  <a id="Item24" onkeydown="return searchResults.Nav(event,24)" onkeypress="return searchResults.Nav(event,24)" onkeyup="return searchResults.Nav(event,24)" class="SRSymbol" href="../structr123m128i.html" target="_parent">r123m128i</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_rbegin">
+ <div class="SREntry">
+  <a id="Item25" onkeydown="return searchResults.Nav(event,25)" onkeypress="return searchResults.Nav(event,25)" onkeyup="return searchResults.Nav(event,25)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_rbegin')">rbegin</a>
+  <div class="SRChildren">
+    <a id="Item25_c0" onkeydown="return searchResults.NavChild(event,25,0)" onkeypress="return searchResults.NavChild(event,25,0)" onkeyup="return searchResults.NavChild(event,25,0)" class="SRScope" href="../structr123array1x32.html#a0c91373623da349c09b952f616b7f5e9" target="_parent">r123array1x32::rbegin()</a>
+    <a id="Item25_c1" onkeydown="return searchResults.NavChild(event,25,1)" onkeypress="return searchResults.NavChild(event,25,1)" onkeyup="return searchResults.NavChild(event,25,1)" class="SRScope" href="../structr123array1x32.html#aacb0604c956b8e50b057a6034c78069c" target="_parent">r123array1x32::rbegin() const </a>
+    <a id="Item25_c2" onkeydown="return searchResults.NavChild(event,25,2)" onkeypress="return searchResults.NavChild(event,25,2)" onkeyup="return searchResults.NavChild(event,25,2)" class="SRScope" href="../structr123array2x32.html#a54e96198e6cd511dc147348f274b0784" target="_parent">r123array2x32::rbegin()</a>
+    <a id="Item25_c3" onkeydown="return searchResults.NavChild(event,25,3)" onkeypress="return searchResults.NavChild(event,25,3)" onkeyup="return searchResults.NavChild(event,25,3)" class="SRScope" href="../structr123array2x32.html#a00afca78e25bbb9e0b00e6ab95ecb162" target="_parent">r123array2x32::rbegin() const </a>
+    <a id="Item25_c4" onkeydown="return searchResults.NavChild(event,25,4)" onkeypress="return searchResults.NavChild(event,25,4)" onkeyup="return searchResults.NavChild(event,25,4)" class="SRScope" href="../structr123array4x32.html#aea9aae067d8347aa53a12a4c9948ae9a" target="_parent">r123array4x32::rbegin()</a>
+    <a id="Item25_c5" onkeydown="return searchResults.NavChild(event,25,5)" onkeypress="return searchResults.NavChild(event,25,5)" onkeyup="return searchResults.NavChild(event,25,5)" class="SRScope" href="../structr123array4x32.html#aadb177f7f316ae47deeea20a686e7909" target="_parent">r123array4x32::rbegin() const </a>
+    <a id="Item25_c6" onkeydown="return searchResults.NavChild(event,25,6)" onkeypress="return searchResults.NavChild(event,25,6)" onkeyup="return searchResults.NavChild(event,25,6)" class="SRScope" href="../structr123array8x32.html#a0a143a573df3282ba5b9cb2190047cca" target="_parent">r123array8x32::rbegin()</a>
+    <a id="Item25_c7" onkeydown="return searchResults.NavChild(event,25,7)" onkeypress="return searchResults.NavChild(event,25,7)" onkeyup="return searchResults.NavChild(event,25,7)" class="SRScope" href="../structr123array8x32.html#a959345559456fbc9e7e72d03a72a032c" target="_parent">r123array8x32::rbegin() const </a>
+    <a id="Item25_c8" onkeydown="return searchResults.NavChild(event,25,8)" onkeypress="return searchResults.NavChild(event,25,8)" onkeyup="return searchResults.NavChild(event,25,8)" class="SRScope" href="../structr123array1x64.html#a56196452051f26a10a4bb3c3d7b75fd0" target="_parent">r123array1x64::rbegin()</a>
+    <a id="Item25_c9" onkeydown="return searchResults.NavChild(event,25,9)" onkeypress="return searchResults.NavChild(event,25,9)" onkeyup="return searchResults.NavChild(event,25,9)" class="SRScope" href="../structr123array1x64.html#a5b080aafd94d77efda03730b6f853334" target="_parent">r123array1x64::rbegin() const </a>
+    <a id="Item25_c10" onkeydown="return searchResults.NavChild(event,25,10)" onkeypress="return searchResults.NavChild(event,25,10)" onkeyup="return searchResults.NavChild(event,25,10)" class="SRScope" href="../structr123array2x64.html#a6888b98627db6056afe3f4ee3396a9a6" target="_parent">r123array2x64::rbegin()</a>
+    <a id="Item25_c11" onkeydown="return searchResults.NavChild(event,25,11)" onkeypress="return searchResults.NavChild(event,25,11)" onkeyup="return searchResults.NavChild(event,25,11)" class="SRScope" href="../structr123array2x64.html#ad6720531d85d0c284ce32cde3b82a9da" target="_parent">r123array2x64::rbegin() const </a>
+    <a id="Item25_c12" onkeydown="return searchResults.NavChild(event,25,12)" onkeypress="return searchResults.NavChild(event,25,12)" onkeyup="return searchResults.NavChild(event,25,12)" class="SRScope" href="../structr123array4x64.html#a102f75427ce01bea725da02b975834b5" target="_parent">r123array4x64::rbegin()</a>
+    <a id="Item25_c13" onkeydown="return searchResults.NavChild(event,25,13)" onkeypress="return searchResults.NavChild(event,25,13)" onkeyup="return searchResults.NavChild(event,25,13)" class="SRScope" href="../structr123array4x64.html#a7ccc255ba0e1803080b117703dc3dc70" target="_parent">r123array4x64::rbegin() const </a>
+    <a id="Item25_c14" onkeydown="return searchResults.NavChild(event,25,14)" onkeypress="return searchResults.NavChild(event,25,14)" onkeyup="return searchResults.NavChild(event,25,14)" class="SRScope" href="../structr123array16x8.html#a5023769f3e418e15a707501aaaac5487" target="_parent">r123array16x8::rbegin()</a>
+    <a id="Item25_c15" onkeydown="return searchResults.NavChild(event,25,15)" onkeypress="return searchResults.NavChild(event,25,15)" onkeyup="return searchResults.NavChild(event,25,15)" class="SRScope" href="../structr123array16x8.html#a5da4b6af6ebaf8cc8204713a993a860c" target="_parent">r123array16x8::rbegin() const </a>
+    <a id="Item25_c16" onkeydown="return searchResults.NavChild(event,25,16)" onkeypress="return searchResults.NavChild(event,25,16)" onkeyup="return searchResults.NavChild(event,25,16)" class="SRScope" href="../structr123array1xm128i.html#a78034de911e765ed64162c894fe2ce05" target="_parent">r123array1xm128i::rbegin()</a>
+    <a id="Item25_c17" onkeydown="return searchResults.NavChild(event,25,17)" onkeypress="return searchResults.NavChild(event,25,17)" onkeyup="return searchResults.NavChild(event,25,17)" class="SRScope" href="../structr123array1xm128i.html#acd4e73f214be1dfaae5d2e20559083eb" target="_parent">r123array1xm128i::rbegin() const </a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_readme">
+ <div class="SREntry">
+  <a id="Item26" onkeydown="return searchResults.Nav(event,26)" onkeypress="return searchResults.Nav(event,26)" onkeyup="return searchResults.Nav(event,26)" class="SRSymbol" href="../README.html" target="_parent">README</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_reference">
+ <div class="SREntry">
+  <a id="Item27" onkeydown="return searchResults.Nav(event,27)" onkeypress="return searchResults.Nav(event,27)" onkeyup="return searchResults.Nav(event,27)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_reference')">reference</a>
+  <div class="SRChildren">
+    <a id="Item27_c0" onkeydown="return searchResults.NavChild(event,27,0)" onkeypress="return searchResults.NavChild(event,27,0)" onkeyup="return searchResults.NavChild(event,27,0)" class="SRScope" href="../structr123array1x32.html#ae5aa4e3a65528495ea71371529ade7d7" target="_parent">r123array1x32::reference()</a>
+    <a id="Item27_c1" onkeydown="return searchResults.NavChild(event,27,1)" onkeypress="return searchResults.NavChild(event,27,1)" onkeyup="return searchResults.NavChild(event,27,1)" class="SRScope" href="../structr123array2x32.html#aacd028d9f97ec8a2f484f0eff815abd5" target="_parent">r123array2x32::reference()</a>
+    <a id="Item27_c2" onkeydown="return searchResults.NavChild(event,27,2)" onkeypress="return searchResults.NavChild(event,27,2)" onkeyup="return searchResults.NavChild(event,27,2)" class="SRScope" href="../structr123array4x32.html#a620f00f67215ab7fd344ec551c596712" target="_parent">r123array4x32::reference()</a>
+    <a id="Item27_c3" onkeydown="return searchResults.NavChild(event,27,3)" onkeypress="return searchResults.NavChild(event,27,3)" onkeyup="return searchResults.NavChild(event,27,3)" class="SRScope" href="../structr123array8x32.html#a4027cd913ec90428d5d0dcad23a5dc2b" target="_parent">r123array8x32::reference()</a>
+    <a id="Item27_c4" onkeydown="return searchResults.NavChild(event,27,4)" onkeypress="return searchResults.NavChild(event,27,4)" onkeyup="return searchResults.NavChild(event,27,4)" class="SRScope" href="../structr123array1x64.html#a6b196cbfb84a28a57f24cd976c6fd6e6" target="_parent">r123array1x64::reference()</a>
+    <a id="Item27_c5" onkeydown="return searchResults.NavChild(event,27,5)" onkeypress="return searchResults.NavChild(event,27,5)" onkeyup="return searchResults.NavChild(event,27,5)" class="SRScope" href="../structr123array2x64.html#a7150b3ad865d00ca1f753accd8165336" target="_parent">r123array2x64::reference()</a>
+    <a id="Item27_c6" onkeydown="return searchResults.NavChild(event,27,6)" onkeypress="return searchResults.NavChild(event,27,6)" onkeyup="return searchResults.NavChild(event,27,6)" class="SRScope" href="../structr123array4x64.html#a14ea48b972d46d9424c317db9698224f" target="_parent">r123array4x64::reference()</a>
+    <a id="Item27_c7" onkeydown="return searchResults.NavChild(event,27,7)" onkeypress="return searchResults.NavChild(event,27,7)" onkeyup="return searchResults.NavChild(event,27,7)" class="SRScope" href="../structr123array16x8.html#adf010ea54bc2f9dceb8568d59c6dde8a" target="_parent">r123array16x8::reference()</a>
+    <a id="Item27_c8" onkeydown="return searchResults.NavChild(event,27,8)" onkeypress="return searchResults.NavChild(event,27,8)" onkeyup="return searchResults.NavChild(event,27,8)" class="SRScope" href="../structr123array1xm128i.html#a34f0cbdac5eb89118ecf2ab5939fbf83" target="_parent">r123array1xm128i::reference()</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_reinterpretctr">
+ <div class="SREntry">
+  <a id="Item28" onkeydown="return searchResults.Nav(event,28)" onkeypress="return searchResults.Nav(event,28)" onkeyup="return searchResults.Nav(event,28)" class="SRSymbol" href="../structr123_1_1ReinterpretCtr.html" target="_parent">ReinterpretCtr</a>
+  <span class="SRScope">r123</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_reinterpretctr_2ehpp">
+ <div class="SREntry">
+  <a id="Item29" onkeydown="return searchResults.Nav(event,29)" onkeypress="return searchResults.Nav(event,29)" onkeyup="return searchResults.Nav(event,29)" class="SRSymbol" href="../ReinterpretCtr_8hpp.html" target="_parent">ReinterpretCtr.hpp</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_releasenotes_2edox">
+ <div class="SREntry">
+  <a id="Item30" onkeydown="return searchResults.Nav(event,30)" onkeypress="return searchResults.Nav(event,30)" onkeyup="return searchResults.Nav(event,30)" class="SRSymbol" href="../releasenotes_8dox.html" target="_parent">releasenotes.dox</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_rend">
+ <div class="SREntry">
+  <a id="Item31" onkeydown="return searchResults.Nav(event,31)" onkeypress="return searchResults.Nav(event,31)" onkeyup="return searchResults.Nav(event,31)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_rend')">rend</a>
+  <div class="SRChildren">
+    <a id="Item31_c0" onkeydown="return searchResults.NavChild(event,31,0)" onkeypress="return searchResults.NavChild(event,31,0)" onkeyup="return searchResults.NavChild(event,31,0)" class="SRScope" href="../structr123array1x32.html#a7a55225361d3e9e6f037daa13d340fc4" target="_parent">r123array1x32::rend()</a>
+    <a id="Item31_c1" onkeydown="return searchResults.NavChild(event,31,1)" onkeypress="return searchResults.NavChild(event,31,1)" onkeyup="return searchResults.NavChild(event,31,1)" class="SRScope" href="../structr123array1x32.html#aad87615e3d9d32467d2f139be5be08ce" target="_parent">r123array1x32::rend() const </a>
+    <a id="Item31_c2" onkeydown="return searchResults.NavChild(event,31,2)" onkeypress="return searchResults.NavChild(event,31,2)" onkeyup="return searchResults.NavChild(event,31,2)" class="SRScope" href="../structr123array2x32.html#a383edbf33737eb3e5098d6da4ed326f8" target="_parent">r123array2x32::rend()</a>
+    <a id="Item31_c3" onkeydown="return searchResults.NavChild(event,31,3)" onkeypress="return searchResults.NavChild(event,31,3)" onkeyup="return searchResults.NavChild(event,31,3)" class="SRScope" href="../structr123array2x32.html#ab3f0841dcd9cea6255406b7bc6363621" target="_parent">r123array2x32::rend() const </a>
+    <a id="Item31_c4" onkeydown="return searchResults.NavChild(event,31,4)" onkeypress="return searchResults.NavChild(event,31,4)" onkeyup="return searchResults.NavChild(event,31,4)" class="SRScope" href="../structr123array4x32.html#a368f69bdd03a9af1c6254daf98496dbd" target="_parent">r123array4x32::rend()</a>
+    <a id="Item31_c5" onkeydown="return searchResults.NavChild(event,31,5)" onkeypress="return searchResults.NavChild(event,31,5)" onkeyup="return searchResults.NavChild(event,31,5)" class="SRScope" href="../structr123array4x32.html#a7b2af2db2af5f90c8a3f5f7014193d72" target="_parent">r123array4x32::rend() const </a>
+    <a id="Item31_c6" onkeydown="return searchResults.NavChild(event,31,6)" onkeypress="return searchResults.NavChild(event,31,6)" onkeyup="return searchResults.NavChild(event,31,6)" class="SRScope" href="../structr123array8x32.html#aa84fc75185aedca379d23c0220b5c64a" target="_parent">r123array8x32::rend()</a>
+    <a id="Item31_c7" onkeydown="return searchResults.NavChild(event,31,7)" onkeypress="return searchResults.NavChild(event,31,7)" onkeyup="return searchResults.NavChild(event,31,7)" class="SRScope" href="../structr123array8x32.html#afcf1ea68c3cd0ce7ff6de11d3030eb93" target="_parent">r123array8x32::rend() const </a>
+    <a id="Item31_c8" onkeydown="return searchResults.NavChild(event,31,8)" onkeypress="return searchResults.NavChild(event,31,8)" onkeyup="return searchResults.NavChild(event,31,8)" class="SRScope" href="../structr123array1x64.html#aa0f756e941d0e417355d940fd0ed3a33" target="_parent">r123array1x64::rend()</a>
+    <a id="Item31_c9" onkeydown="return searchResults.NavChild(event,31,9)" onkeypress="return searchResults.NavChild(event,31,9)" onkeyup="return searchResults.NavChild(event,31,9)" class="SRScope" href="../structr123array1x64.html#a19f9d7dd7371c20fc5001d864da453ff" target="_parent">r123array1x64::rend() const </a>
+    <a id="Item31_c10" onkeydown="return searchResults.NavChild(event,31,10)" onkeypress="return searchResults.NavChild(event,31,10)" onkeyup="return searchResults.NavChild(event,31,10)" class="SRScope" href="../structr123array2x64.html#ad1e373b457921fc672ed8892180431eb" target="_parent">r123array2x64::rend()</a>
+    <a id="Item31_c11" onkeydown="return searchResults.NavChild(event,31,11)" onkeypress="return searchResults.NavChild(event,31,11)" onkeyup="return searchResults.NavChild(event,31,11)" class="SRScope" href="../structr123array2x64.html#ad96f87786a8a277bf553d0c5584c20c1" target="_parent">r123array2x64::rend() const </a>
+    <a id="Item31_c12" onkeydown="return searchResults.NavChild(event,31,12)" onkeypress="return searchResults.NavChild(event,31,12)" onkeyup="return searchResults.NavChild(event,31,12)" class="SRScope" href="../structr123array4x64.html#a71f59163070cb4cfd7ddda6f4f8576a1" target="_parent">r123array4x64::rend()</a>
+    <a id="Item31_c13" onkeydown="return searchResults.NavChild(event,31,13)" onkeypress="return searchResults.NavChild(event,31,13)" onkeyup="return searchResults.NavChild(event,31,13)" class="SRScope" href="../structr123array4x64.html#a25538a452f6e709bacfc9f49b7216280" target="_parent">r123array4x64::rend() const </a>
+    <a id="Item31_c14" onkeydown="return searchResults.NavChild(event,31,14)" onkeypress="return searchResults.NavChild(event,31,14)" onkeyup="return searchResults.NavChild(event,31,14)" class="SRScope" href="../structr123array16x8.html#a252b937d65e7b04e5bc507d43643441f" target="_parent">r123array16x8::rend()</a>
+    <a id="Item31_c15" onkeydown="return searchResults.NavChild(event,31,15)" onkeypress="return searchResults.NavChild(event,31,15)" onkeyup="return searchResults.NavChild(event,31,15)" class="SRScope" href="../structr123array16x8.html#a286fef704fcf11e9f00d73703b7ab36b" target="_parent">r123array16x8::rend() const </a>
+    <a id="Item31_c16" onkeydown="return searchResults.NavChild(event,31,16)" onkeypress="return searchResults.NavChild(event,31,16)" onkeyup="return searchResults.NavChild(event,31,16)" class="SRScope" href="../structr123array1xm128i.html#aeb47d483223e3e29f6ad156e5c356a20" target="_parent">r123array1xm128i::rend()</a>
+    <a id="Item31_c17" onkeydown="return searchResults.NavChild(event,31,17)" onkeypress="return searchResults.NavChild(event,31,17)" onkeyup="return searchResults.NavChild(event,31,17)" class="SRScope" href="../structr123array1xm128i.html#a1599d2154e1f407bef2d556c985b0c21" target="_parent">r123array1xm128i::rend() const </a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_reset">
+ <div class="SREntry">
+  <a id="Item32" onkeydown="return searchResults.Nav(event,32)" onkeypress="return searchResults.Nav(event,32)" onkeyup="return searchResults.Nav(event,32)" class="SRSymbol" href="../classr123_1_1MicroURNG.html#add2f214254ddc2291e3b2c8b5dbe791a" target="_parent">reset</a>
+  <span class="SRScope">r123::MicroURNG</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_result_5ftype">
+ <div class="SREntry">
+  <a id="Item33" onkeydown="return searchResults.Nav(event,33)" onkeypress="return searchResults.Nav(event,33)" onkeyup="return searchResults.Nav(event,33)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_result_5ftype')">result_type</a>
+  <div class="SRChildren">
+    <a id="Item33_c0" onkeydown="return searchResults.NavChild(event,33,0)" onkeypress="return searchResults.NavChild(event,33,0)" onkeyup="return searchResults.NavChild(event,33,0)" class="SRScope" href="../classr123_1_1MicroURNG.html#a512957c3e7b3d22741ef0a436b973c2b" target="_parent">r123::MicroURNG::result_type()</a>
+    <a id="Item33_c1" onkeydown="return searchResults.NavChild(event,33,1)" onkeypress="return searchResults.NavChild(event,33,1)" onkeyup="return searchResults.NavChild(event,33,1)" class="SRScope" href="../structr123_1_1Engine.html#a3d7cb66d43f99f5e227990af985ecb45" target="_parent">r123::Engine::result_type()</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_reverse_5fiterator">
+ <div class="SREntry">
+  <a id="Item34" onkeydown="return searchResults.Nav(event,34)" onkeypress="return searchResults.Nav(event,34)" onkeyup="return searchResults.Nav(event,34)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_reverse_5fiterator')">reverse_iterator</a>
+  <div class="SRChildren">
+    <a id="Item34_c0" onkeydown="return searchResults.NavChild(event,34,0)" onkeypress="return searchResults.NavChild(event,34,0)" onkeyup="return searchResults.NavChild(event,34,0)" class="SRScope" href="../structr123array1x32.html#a21cb520afa483ae177c469f3940e7ed2" target="_parent">r123array1x32::reverse_iterator()</a>
+    <a id="Item34_c1" onkeydown="return searchResults.NavChild(event,34,1)" onkeypress="return searchResults.NavChild(event,34,1)" onkeyup="return searchResults.NavChild(event,34,1)" class="SRScope" href="../structr123array2x32.html#ad0b05bbfee2d432dfef71342f14b8430" target="_parent">r123array2x32::reverse_iterator()</a>
+    <a id="Item34_c2" onkeydown="return searchResults.NavChild(event,34,2)" onkeypress="return searchResults.NavChild(event,34,2)" onkeyup="return searchResults.NavChild(event,34,2)" class="SRScope" href="../structr123array4x32.html#aaabdf758fb4a56eaf4cf256654f41314" target="_parent">r123array4x32::reverse_iterator()</a>
+    <a id="Item34_c3" onkeydown="return searchResults.NavChild(event,34,3)" onkeypress="return searchResults.NavChild(event,34,3)" onkeyup="return searchResults.NavChild(event,34,3)" class="SRScope" href="../structr123array8x32.html#acab5de900b99bad5f69009f48fa72235" target="_parent">r123array8x32::reverse_iterator()</a>
+    <a id="Item34_c4" onkeydown="return searchResults.NavChild(event,34,4)" onkeypress="return searchResults.NavChild(event,34,4)" onkeyup="return searchResults.NavChild(event,34,4)" class="SRScope" href="../structr123array1x64.html#ac9c44218c6761d9e6f422435e49acb17" target="_parent">r123array1x64::reverse_iterator()</a>
+    <a id="Item34_c5" onkeydown="return searchResults.NavChild(event,34,5)" onkeypress="return searchResults.NavChild(event,34,5)" onkeyup="return searchResults.NavChild(event,34,5)" class="SRScope" href="../structr123array2x64.html#abcbf25662447a5241ed4d19c202f647a" target="_parent">r123array2x64::reverse_iterator()</a>
+    <a id="Item34_c6" onkeydown="return searchResults.NavChild(event,34,6)" onkeypress="return searchResults.NavChild(event,34,6)" onkeyup="return searchResults.NavChild(event,34,6)" class="SRScope" href="../structr123array4x64.html#acc93aa79ca040ce8fd0957ac86caa2f9" target="_parent">r123array4x64::reverse_iterator()</a>
+    <a id="Item34_c7" onkeydown="return searchResults.NavChild(event,34,7)" onkeypress="return searchResults.NavChild(event,34,7)" onkeyup="return searchResults.NavChild(event,34,7)" class="SRScope" href="../structr123array16x8.html#aeeb5d6d55c07a515e4c7d01cb5c5351b" target="_parent">r123array16x8::reverse_iterator()</a>
+    <a id="Item34_c8" onkeydown="return searchResults.NavChild(event,34,8)" onkeypress="return searchResults.NavChild(event,34,8)" onkeyup="return searchResults.NavChild(event,34,8)" class="SRScope" href="../structr123array1xm128i.html#a6a507944eb872540e73e7a839cbc8e30" target="_parent">r123array1xm128i::reverse_iterator()</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_rounds">
+ <div class="SREntry">
+  <a id="Item35" onkeydown="return searchResults.Nav(event,35)" onkeypress="return searchResults.Nav(event,35)" onkeyup="return searchResults.Nav(event,35)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_rounds')">rounds</a>
+  <div class="SRChildren">
+    <a id="Item35_c0" onkeydown="return searchResults.NavChild(event,35,0)" onkeypress="return searchResults.NavChild(event,35,0)" onkeyup="return searchResults.NavChild(event,35,0)" class="SRScope" href="../structr123_1_1AESNI1xm128i.html#a1b5a44afde814ba844d8f5442e2a3a5f" target="_parent">r123::AESNI1xm128i::rounds()</a>
+    <a id="Item35_c1" onkeydown="return searchResults.NavChild(event,35,1)" onkeypress="return searchResults.NavChild(event,35,1)" onkeyup="return searchResults.NavChild(event,35,1)" class="SRScope" href="../structr123_1_1AESNI4x32.html#a725aad79b8d496d97bed24390f624be6" target="_parent">r123::AESNI4x32::rounds()</a>
+    <a id="Item35_c2" onkeydown="return searchResults.NavChild(event,35,2)" onkeypress="return searchResults.NavChild(event,35,2)" onkeyup="return searchResults.NavChild(event,35,2)" class="SRScope" href="../structr123_1_1ARS1xm128i__R.html#abe167a93280140e424d722c1ac47a8e9" target="_parent">r123::ARS1xm128i_R::rounds()</a>
+    <a id="Item35_c3" onkeydown="return searchResults.NavChild(event,35,3)" onkeypress="return searchResults.NavChild(event,35,3)" onkeyup="return searchResults.NavChild(event,35,3)" class="SRScope" href="../structr123_1_1ARS4x32__R.html#a710e59a54794b4cd5e55689dd906b9ba" target="_parent">r123::ARS4x32_R::rounds()</a>
+    <a id="Item35_c4" onkeydown="return searchResults.NavChild(event,35,4)" onkeypress="return searchResults.NavChild(event,35,4)" onkeyup="return searchResults.NavChild(event,35,4)" class="SRScope" href="../structr123_1_1Philox2x32__R.html#a52ee7b34688fc2e5315152a10d7df5f0" target="_parent">r123::Philox2x32_R::rounds()</a>
+    <a id="Item35_c5" onkeydown="return searchResults.NavChild(event,35,5)" onkeypress="return searchResults.NavChild(event,35,5)" onkeyup="return searchResults.NavChild(event,35,5)" class="SRScope" href="../structr123_1_1Philox4x32__R.html#a90d6a86bff4dc6e5e24209423f125140" target="_parent">r123::Philox4x32_R::rounds()</a>
+    <a id="Item35_c6" onkeydown="return searchResults.NavChild(event,35,6)" onkeypress="return searchResults.NavChild(event,35,6)" onkeyup="return searchResults.NavChild(event,35,6)" class="SRScope" href="../structr123_1_1Philox2x64__R.html#ac0764d78e07bf6d311b47d0f3ce92450" target="_parent">r123::Philox2x64_R::rounds()</a>
+    <a id="Item35_c7" onkeydown="return searchResults.NavChild(event,35,7)" onkeypress="return searchResults.NavChild(event,35,7)" onkeyup="return searchResults.NavChild(event,35,7)" class="SRScope" href="../structr123_1_1Philox4x64__R.html#ac51193ab00b118b75784f86cf3470876" target="_parent">r123::Philox4x64_R::rounds()</a>
+    <a id="Item35_c8" onkeydown="return searchResults.NavChild(event,35,8)" onkeypress="return searchResults.NavChild(event,35,8)" onkeyup="return searchResults.NavChild(event,35,8)" class="SRScope" href="../structr123_1_1Threefry2x32__R.html#af5be46f8426cfcd86e75327e4b3750b0" target="_parent">r123::Threefry2x32_R::rounds()</a>
+    <a id="Item35_c9" onkeydown="return searchResults.NavChild(event,35,9)" onkeypress="return searchResults.NavChild(event,35,9)" onkeyup="return searchResults.NavChild(event,35,9)" class="SRScope" href="../structr123_1_1Threefry4x32__R.html#af63fd38ba9acf04ee56d75e96b413291" target="_parent">r123::Threefry4x32_R::rounds()</a>
+    <a id="Item35_c10" onkeydown="return searchResults.NavChild(event,35,10)" onkeypress="return searchResults.NavChild(event,35,10)" onkeyup="return searchResults.NavChild(event,35,10)" class="SRScope" href="../structr123_1_1Threefry2x64__R.html#aa994d756504284e6a59cc8d3c57f16c6" target="_parent">r123::Threefry2x64_R::rounds()</a>
+    <a id="Item35_c11" onkeydown="return searchResults.NavChild(event,35,11)" onkeypress="return searchResults.NavChild(event,35,11)" onkeyup="return searchResults.NavChild(event,35,11)" class="SRScope" href="../structr123_1_1Threefry4x64__R.html#ab8807960eec8fc2198055ec2a971e116" target="_parent">r123::Threefry4x64_R::rounds()</a>
+  </div>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/all_73.html b/docs/html/search/all_73.html
new file mode 100644
index 0000000..1ebc6d5
--- /dev/null
+++ b/docs/html/search/all_73.html
@@ -0,0 +1,116 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_seed">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_seed')">seed</a>
+  <div class="SRChildren">
+    <a id="Item0_c0" onkeydown="return searchResults.NavChild(event,0,0)" onkeypress="return searchResults.NavChild(event,0,0)" onkeyup="return searchResults.NavChild(event,0,0)" class="SRScope" href="../structr123array1x32.html#adf914fa4384acfcfa1750fd47b758f42" target="_parent">r123array1x32::seed()</a>
+    <a id="Item0_c1" onkeydown="return searchResults.NavChild(event,0,1)" onkeypress="return searchResults.NavChild(event,0,1)" onkeyup="return searchResults.NavChild(event,0,1)" class="SRScope" href="../structr123array2x32.html#a31cf9b80bbcc3c976681b878b7afa046" target="_parent">r123array2x32::seed()</a>
+    <a id="Item0_c2" onkeydown="return searchResults.NavChild(event,0,2)" onkeypress="return searchResults.NavChild(event,0,2)" onkeyup="return searchResults.NavChild(event,0,2)" class="SRScope" href="../structr123array4x32.html#acdaad089dc0e44da5818ebda8404bd16" target="_parent">r123array4x32::seed()</a>
+    <a id="Item0_c3" onkeydown="return searchResults.NavChild(event,0,3)" onkeypress="return searchResults.NavChild(event,0,3)" onkeyup="return searchResults.NavChild(event,0,3)" class="SRScope" href="../structr123array8x32.html#a93139b379ce88e16f75eb9edcf40b357" target="_parent">r123array8x32::seed()</a>
+    <a id="Item0_c4" onkeydown="return searchResults.NavChild(event,0,4)" onkeypress="return searchResults.NavChild(event,0,4)" onkeyup="return searchResults.NavChild(event,0,4)" class="SRScope" href="../structr123array1x64.html#a69be3aa9c2588ce86b5ebb72649ce684" target="_parent">r123array1x64::seed()</a>
+    <a id="Item0_c5" onkeydown="return searchResults.NavChild(event,0,5)" onkeypress="return searchResults.NavChild(event,0,5)" onkeyup="return searchResults.NavChild(event,0,5)" class="SRScope" href="../structr123array2x64.html#a3e5afc5e4c6886611630cec365d8397b" target="_parent">r123array2x64::seed()</a>
+    <a id="Item0_c6" onkeydown="return searchResults.NavChild(event,0,6)" onkeypress="return searchResults.NavChild(event,0,6)" onkeyup="return searchResults.NavChild(event,0,6)" class="SRScope" href="../structr123array4x64.html#a6f0133930367a2260ed5a132bf737131" target="_parent">r123array4x64::seed()</a>
+    <a id="Item0_c7" onkeydown="return searchResults.NavChild(event,0,7)" onkeypress="return searchResults.NavChild(event,0,7)" onkeyup="return searchResults.NavChild(event,0,7)" class="SRScope" href="../structr123array16x8.html#aef0741829d359c31ad913a6770661895" target="_parent">r123array16x8::seed()</a>
+    <a id="Item0_c8" onkeydown="return searchResults.NavChild(event,0,8)" onkeypress="return searchResults.NavChild(event,0,8)" onkeyup="return searchResults.NavChild(event,0,8)" class="SRScope" href="../structr123array1xm128i.html#a6645aeddeb992559150089c49ac335c8" target="_parent">r123array1xm128i::seed()</a>
+    <a id="Item0_c9" onkeydown="return searchResults.NavChild(event,0,9)" onkeypress="return searchResults.NavChild(event,0,9)" onkeyup="return searchResults.NavChild(event,0,9)" class="SRScope" href="../structr123_1_1Engine.html#a93429593bdb12b202b4b8ed38fe08bc4" target="_parent">r123::Engine::seed(result_type r)</a>
+    <a id="Item0_c10" onkeydown="return searchResults.NavChild(event,0,10)" onkeypress="return searchResults.NavChild(event,0,10)" onkeyup="return searchResults.NavChild(event,0,10)" class="SRScope" href="../structr123_1_1Engine.html#ac4d05ee820a1eb70e76cabb14645dad4" target="_parent">r123::Engine::seed(SeedSeq &s)</a>
+    <a id="Item0_c11" onkeydown="return searchResults.NavChild(event,0,11)" onkeypress="return searchResults.NavChild(event,0,11)" onkeyup="return searchResults.NavChild(event,0,11)" class="SRScope" href="../structr123_1_1Engine.html#aff36bc97d11bc66f6c0edb75d8dc88e5" target="_parent">r123::Engine::seed()</a>
+    <a id="Item0_c12" onkeydown="return searchResults.NavChild(event,0,12)" onkeypress="return searchResults.NavChild(event,0,12)" onkeyup="return searchResults.NavChild(event,0,12)" class="SRScope" href="../structr123_1_1Engine.html#a5c4d68dbbccfc71f467f3c902f5b93da" target="_parent">r123::Engine::seed(const ukey_type &uk)</a>
+    <a id="Item0_c13" onkeydown="return searchResults.NavChild(event,0,13)" onkeypress="return searchResults.NavChild(event,0,13)" onkeyup="return searchResults.NavChild(event,0,13)" class="SRScope" href="../structr123_1_1Engine.html#a7bd6d3417cefb904c879f41d2c29e15e" target="_parent">r123::Engine::seed(ukey_type &uk)</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_setcounter">
+ <div class="SREntry">
+  <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../structr123_1_1Engine.html#a6104bf5ee89450403379d5680bfae172" target="_parent">setcounter</a>
+  <span class="SRScope">r123::Engine</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_size">
+ <div class="SREntry">
+  <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_size')">size</a>
+  <div class="SRChildren">
+    <a id="Item2_c0" onkeydown="return searchResults.NavChild(event,2,0)" onkeypress="return searchResults.NavChild(event,2,0)" onkeyup="return searchResults.NavChild(event,2,0)" class="SRScope" href="../structr123array1x32.html#a4cbaf3feeaad0bb7227d065294240561" target="_parent">r123array1x32::size()</a>
+    <a id="Item2_c1" onkeydown="return searchResults.NavChild(event,2,1)" onkeypress="return searchResults.NavChild(event,2,1)" onkeyup="return searchResults.NavChild(event,2,1)" class="SRScope" href="../structr123array2x32.html#ad3d7310bd3ced1bfb05cbe4f3e753490" target="_parent">r123array2x32::size()</a>
+    <a id="Item2_c2" onkeydown="return searchResults.NavChild(event,2,2)" onkeypress="return searchResults.NavChild(event,2,2)" onkeyup="return searchResults.NavChild(event,2,2)" class="SRScope" href="../structr123array4x32.html#a1da4bfacdcd4a520a227bc5c2cff6a4b" target="_parent">r123array4x32::size()</a>
+    <a id="Item2_c3" onkeydown="return searchResults.NavChild(event,2,3)" onkeypress="return searchResults.NavChild(event,2,3)" onkeyup="return searchResults.NavChild(event,2,3)" class="SRScope" href="../structr123array8x32.html#aa4025fb7c1ef2c3376bdc9ae88b91553" target="_parent">r123array8x32::size()</a>
+    <a id="Item2_c4" onkeydown="return searchResults.NavChild(event,2,4)" onkeypress="return searchResults.NavChild(event,2,4)" onkeyup="return searchResults.NavChild(event,2,4)" class="SRScope" href="../structr123array1x64.html#a81dba857004f49f48cb0712edaa39e76" target="_parent">r123array1x64::size()</a>
+    <a id="Item2_c5" onkeydown="return searchResults.NavChild(event,2,5)" onkeypress="return searchResults.NavChild(event,2,5)" onkeyup="return searchResults.NavChild(event,2,5)" class="SRScope" href="../structr123array2x64.html#a10e19c13a970156c4fc18fa070dc9756" target="_parent">r123array2x64::size()</a>
+    <a id="Item2_c6" onkeydown="return searchResults.NavChild(event,2,6)" onkeypress="return searchResults.NavChild(event,2,6)" onkeyup="return searchResults.NavChild(event,2,6)" class="SRScope" href="../structr123array4x64.html#a303c3feaf0783e99292c3220613ea903" target="_parent">r123array4x64::size()</a>
+    <a id="Item2_c7" onkeydown="return searchResults.NavChild(event,2,7)" onkeypress="return searchResults.NavChild(event,2,7)" onkeyup="return searchResults.NavChild(event,2,7)" class="SRScope" href="../structr123array16x8.html#a9a31da5cdf154eba3e44af4e51002a15" target="_parent">r123array16x8::size()</a>
+    <a id="Item2_c8" onkeydown="return searchResults.NavChild(event,2,8)" onkeypress="return searchResults.NavChild(event,2,8)" onkeyup="return searchResults.NavChild(event,2,8)" class="SRScope" href="../structr123array1xm128i.html#a3f272a3884d1d5ca7a207fb31a270617" target="_parent">r123array1xm128i::size()</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_size_5ftype">
+ <div class="SREntry">
+  <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_size_5ftype')">size_type</a>
+  <div class="SRChildren">
+    <a id="Item3_c0" onkeydown="return searchResults.NavChild(event,3,0)" onkeypress="return searchResults.NavChild(event,3,0)" onkeyup="return searchResults.NavChild(event,3,0)" class="SRScope" href="../structr123array1x32.html#a30405dcf03997aaf3f981c05d1fa1e53" target="_parent">r123array1x32::size_type()</a>
+    <a id="Item3_c1" onkeydown="return searchResults.NavChild(event,3,1)" onkeypress="return searchResults.NavChild(event,3,1)" onkeyup="return searchResults.NavChild(event,3,1)" class="SRScope" href="../structr123array2x32.html#ac168a0f0c7eddf1842c9882643b31e91" target="_parent">r123array2x32::size_type()</a>
+    <a id="Item3_c2" onkeydown="return searchResults.NavChild(event,3,2)" onkeypress="return searchResults.NavChild(event,3,2)" onkeyup="return searchResults.NavChild(event,3,2)" class="SRScope" href="../structr123array4x32.html#af4ee6cd95de0f8b7932d7a6a061663af" target="_parent">r123array4x32::size_type()</a>
+    <a id="Item3_c3" onkeydown="return searchResults.NavChild(event,3,3)" onkeypress="return searchResults.NavChild(event,3,3)" onkeyup="return searchResults.NavChild(event,3,3)" class="SRScope" href="../structr123array8x32.html#aa262b29c3d3fa22b07447b02c8c4be17" target="_parent">r123array8x32::size_type()</a>
+    <a id="Item3_c4" onkeydown="return searchResults.NavChild(event,3,4)" onkeypress="return searchResults.NavChild(event,3,4)" onkeyup="return searchResults.NavChild(event,3,4)" class="SRScope" href="../structr123array1x64.html#aa37d85a97cfe1f3f63b1ef1c33497cb7" target="_parent">r123array1x64::size_type()</a>
+    <a id="Item3_c5" onkeydown="return searchResults.NavChild(event,3,5)" onkeypress="return searchResults.NavChild(event,3,5)" onkeyup="return searchResults.NavChild(event,3,5)" class="SRScope" href="../structr123array2x64.html#aacb6269c183cc408285dca02e3b55526" target="_parent">r123array2x64::size_type()</a>
+    <a id="Item3_c6" onkeydown="return searchResults.NavChild(event,3,6)" onkeypress="return searchResults.NavChild(event,3,6)" onkeyup="return searchResults.NavChild(event,3,6)" class="SRScope" href="../structr123array4x64.html#adbe34157dc62e7d2c988f12b06b273af" target="_parent">r123array4x64::size_type()</a>
+    <a id="Item3_c7" onkeydown="return searchResults.NavChild(event,3,7)" onkeypress="return searchResults.NavChild(event,3,7)" onkeyup="return searchResults.NavChild(event,3,7)" class="SRScope" href="../structr123array16x8.html#ae892bee1409b006ec01597c0e1f22952" target="_parent">r123array16x8::size_type()</a>
+    <a id="Item3_c8" onkeydown="return searchResults.NavChild(event,3,8)" onkeypress="return searchResults.NavChild(event,3,8)" onkeyup="return searchResults.NavChild(event,3,8)" class="SRScope" href="../structr123array1xm128i.html#a702efcd8e34016d657ed6141bc767e6c" target="_parent">r123array1xm128i::size_type()</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_sse_2eh">
+ <div class="SREntry">
+  <a id="Item4" onkeydown="return searchResults.Nav(event,4)" onkeypress="return searchResults.Nav(event,4)" onkeyup="return searchResults.Nav(event,4)" class="SRSymbol" href="../sse_8h.html" target="_parent">sse.h</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_static_5fsize">
+ <div class="SREntry">
+  <a id="Item5" onkeydown="return searchResults.Nav(event,5)" onkeypress="return searchResults.Nav(event,5)" onkeyup="return searchResults.Nav(event,5)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_static_5fsize')">static_size</a>
+  <div class="SRChildren">
+    <a id="Item5_c0" onkeydown="return searchResults.NavChild(event,5,0)" onkeypress="return searchResults.NavChild(event,5,0)" onkeyup="return searchResults.NavChild(event,5,0)" class="SRScope" href="../structr123array1x32.html#a2cdb0e09b7e8ba20de255ddcb54ea9baae9556d9b93643fe1f7e56e973200177a" target="_parent">r123array1x32::static_size()</a>
+    <a id="Item5_c1" onkeydown="return searchResults.NavChild(event,5,1)" onkeypress="return searchResults.NavChild(event,5,1)" onkeyup="return searchResults.NavChild(event,5,1)" class="SRScope" href="../structr123array2x32.html#ad6e438ec0d5a08bfb0b71a3ff96ea7e8a5ae3e9837bb88660b088443c1a6fb47a" target="_parent">r123array2x32::static_size()</a>
+    <a id="Item5_c2" onkeydown="return searchResults.NavChild(event,5,2)" onkeypress="return searchResults.NavChild(event,5,2)" onkeyup="return searchResults.NavChild(event,5,2)" class="SRScope" href="../structr123array4x32.html#a3d387fea63ac50668e75faa8ebe4594aa80d43f91cd038fece63f219b9f4a36c6" target="_parent">r123array4x32::static_size()</a>
+    <a id="Item5_c3" onkeydown="return searchResults.NavChild(event,5,3)" onkeypress="return searchResults.NavChild(event,5,3)" onkeyup="return searchResults.NavChild(event,5,3)" class="SRScope" href="../structr123array8x32.html#aae848a29e2a9b3229fc7063440885c4fa2270c17b2a56aea106facc9a22b62be6" target="_parent">r123array8x32::static_size()</a>
+    <a id="Item5_c4" onkeydown="return searchResults.NavChild(event,5,4)" onkeypress="return searchResults.NavChild(event,5,4)" onkeyup="return searchResults.NavChild(event,5,4)" class="SRScope" href="../structr123array1x64.html#ab7fb5f41ed3716bce19489deb1dd4149a0c25e6a56a2c69eb7641adb24765e6af" target="_parent">r123array1x64::static_size()</a>
+    <a id="Item5_c5" onkeydown="return searchResults.NavChild(event,5,5)" onkeypress="return searchResults.NavChild(event,5,5)" onkeyup="return searchResults.NavChild(event,5,5)" class="SRScope" href="../structr123array2x64.html#aa8ed42c5bf709f879674643a70e71dbca6219dc89b2a7ffde9b00364177f5b846" target="_parent">r123array2x64::static_size()</a>
+    <a id="Item5_c6" onkeydown="return searchResults.NavChild(event,5,6)" onkeypress="return searchResults.NavChild(event,5,6)" onkeyup="return searchResults.NavChild(event,5,6)" class="SRScope" href="../structr123array4x64.html#a904abc16c5828698aa8af5824b6a69c1aa1363fd51fd3dae2d8989711a11817ff" target="_parent">r123array4x64::static_size()</a>
+    <a id="Item5_c7" onkeydown="return searchResults.NavChild(event,5,7)" onkeypress="return searchResults.NavChild(event,5,7)" onkeyup="return searchResults.NavChild(event,5,7)" class="SRScope" href="../structr123array16x8.html#a7b2912a12e57bc62644a8ce57e2301b2af0ee079d4b47a988dcd2b8b8457f266f" target="_parent">r123array16x8::static_size()</a>
+    <a id="Item5_c8" onkeydown="return searchResults.NavChild(event,5,8)" onkeypress="return searchResults.NavChild(event,5,8)" onkeyup="return searchResults.NavChild(event,5,8)" class="SRScope" href="../structr123array1xm128i.html#a130e9722020433db562761a8e51bed2ca32ec6b84a0fa2dd836b04e0ffa69b2bc" target="_parent">r123array1xm128i::static_size()</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_swap">
+ <div class="SREntry">
+  <a id="Item6" onkeydown="return searchResults.Nav(event,6)" onkeypress="return searchResults.Nav(event,6)" onkeyup="return searchResults.Nav(event,6)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_swap')">swap</a>
+  <div class="SRChildren">
+    <a id="Item6_c0" onkeydown="return searchResults.NavChild(event,6,0)" onkeypress="return searchResults.NavChild(event,6,0)" onkeyup="return searchResults.NavChild(event,6,0)" class="SRScope" href="../structr123array1x32.html#afdd8df41333430593d31350bd12db11a" target="_parent">r123array1x32::swap()</a>
+    <a id="Item6_c1" onkeydown="return searchResults.NavChild(event,6,1)" onkeypress="return searchResults.NavChild(event,6,1)" onkeyup="return searchResults.NavChild(event,6,1)" class="SRScope" href="../structr123array2x32.html#a1eac99d2198007201b9c0040a18b258c" target="_parent">r123array2x32::swap()</a>
+    <a id="Item6_c2" onkeydown="return searchResults.NavChild(event,6,2)" onkeypress="return searchResults.NavChild(event,6,2)" onkeyup="return searchResults.NavChild(event,6,2)" class="SRScope" href="../structr123array4x32.html#a3e6f9b7de70de3386bcd2ba44ad68fb5" target="_parent">r123array4x32::swap()</a>
+    <a id="Item6_c3" onkeydown="return searchResults.NavChild(event,6,3)" onkeypress="return searchResults.NavChild(event,6,3)" onkeyup="return searchResults.NavChild(event,6,3)" class="SRScope" href="../structr123array8x32.html#a04c88fca3a8cc3b579e9fc480629888e" target="_parent">r123array8x32::swap()</a>
+    <a id="Item6_c4" onkeydown="return searchResults.NavChild(event,6,4)" onkeypress="return searchResults.NavChild(event,6,4)" onkeyup="return searchResults.NavChild(event,6,4)" class="SRScope" href="../structr123array1x64.html#a6f929a34461c49c9571eedc1df65fd20" target="_parent">r123array1x64::swap()</a>
+    <a id="Item6_c5" onkeydown="return searchResults.NavChild(event,6,5)" onkeypress="return searchResults.NavChild(event,6,5)" onkeyup="return searchResults.NavChild(event,6,5)" class="SRScope" href="../structr123array2x64.html#a78ea0dba10b77c9f228108df9ab09c9d" target="_parent">r123array2x64::swap()</a>
+    <a id="Item6_c6" onkeydown="return searchResults.NavChild(event,6,6)" onkeypress="return searchResults.NavChild(event,6,6)" onkeyup="return searchResults.NavChild(event,6,6)" class="SRScope" href="../structr123array4x64.html#a9845020f8799cbf04156e3114a4c9314" target="_parent">r123array4x64::swap()</a>
+    <a id="Item6_c7" onkeydown="return searchResults.NavChild(event,6,7)" onkeypress="return searchResults.NavChild(event,6,7)" onkeyup="return searchResults.NavChild(event,6,7)" class="SRScope" href="../structr123array16x8.html#a2de9273e9c4b4c47315cb20885e9c6ed" target="_parent">r123array16x8::swap()</a>
+    <a id="Item6_c8" onkeydown="return searchResults.NavChild(event,6,8)" onkeypress="return searchResults.NavChild(event,6,8)" onkeyup="return searchResults.NavChild(event,6,8)" class="SRScope" href="../structr123array1xm128i.html#a05f536079732d192e572bcf395ab6b4e" target="_parent">r123array1xm128i::swap()</a>
+  </div>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/all_74.html b/docs/html/search/all_74.html
new file mode 100644
index 0000000..fee6a41
--- /dev/null
+++ b/docs/html/search/all_74.html
@@ -0,0 +1,233 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_threefry_2eh">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../threefry_8h.html" target="_parent">threefry.h</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_threefry2x32">
+ <div class="SREntry">
+  <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_threefry2x32')">threefry2x32</a>
+  <div class="SRChildren">
+    <a id="Item1_c0" onkeydown="return searchResults.NavChild(event,1,0)" onkeypress="return searchResults.NavChild(event,1,0)" onkeyup="return searchResults.NavChild(event,1,0)" class="SRScope" href="../threefry_8h.html#a52e1635889bbf08009646f22897e07fc" target="_parent">threefry2x32(): threefry.h</a>
+    <a id="Item1_c1" onkeydown="return searchResults.NavChild(event,1,1)" onkeypress="return searchResults.NavChild(event,1,1)" onkeyup="return searchResults.NavChild(event,1,1)" class="SRScope" href="../threefry_8h.html#af98f648fb8e458ff0c6825cb903734f2" target="_parent">threefry2x32(threefry2x32_ctr_t in, threefry2x32_key_t k): threefry.h</a>
+    <a id="Item1_c2" onkeydown="return searchResults.NavChild(event,1,2)" onkeypress="return searchResults.NavChild(event,1,2)" onkeyup="return searchResults.NavChild(event,1,2)" class="SRScope" href="../group__ThreefryNxW.html#ga1c32939b65f84966c93677f4382ea36d" target="_parent">r123::Threefry2x32()</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_threefry2x32_5fctr_5ft">
+ <div class="SREntry">
+  <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../threefry_8h.html#ac0724455e1e9218f982501247d384833" target="_parent">threefry2x32_ctr_t</a>
+  <span class="SRScope">threefry.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_threefry2x32_5fkey_5ft">
+ <div class="SREntry">
+  <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="../threefry_8h.html#a9ebab1ff37a7c983a4d5af114fb8f1c7" target="_parent">threefry2x32_key_t</a>
+  <span class="SRScope">threefry.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_threefry2x32_5fr">
+ <div class="SREntry">
+  <a id="Item4" onkeydown="return searchResults.Nav(event,4)" onkeypress="return searchResults.Nav(event,4)" onkeyup="return searchResults.Nav(event,4)" class="SRSymbol" href="../structr123_1_1Threefry2x32__R.html" target="_parent">Threefry2x32_R</a>
+  <span class="SRScope">r123</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_threefry2x32_5fr">
+ <div class="SREntry">
+  <a id="Item5" onkeydown="return searchResults.Nav(event,5)" onkeypress="return searchResults.Nav(event,5)" onkeyup="return searchResults.Nav(event,5)" class="SRSymbol" href="../threefry_8h.html#ae8eee0d74a087c6cbc112af11b884501" target="_parent">threefry2x32_R</a>
+  <span class="SRScope">threefry.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_threefry2x32_5frounds">
+ <div class="SREntry">
+  <a id="Item6" onkeydown="return searchResults.Nav(event,6)" onkeypress="return searchResults.Nav(event,6)" onkeyup="return searchResults.Nav(event,6)" class="SRSymbol" href="../group__ThreefryNxW.html#ggae1c47baba4367dd47d68025d23ae4775a5c6f9a5f3ae1c3700938a3fca5f5821b" target="_parent">threefry2x32_rounds</a>
+  <span class="SRScope">threefry.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_threefry2x32_5fukey_5ft">
+ <div class="SREntry">
+  <a id="Item7" onkeydown="return searchResults.Nav(event,7)" onkeypress="return searchResults.Nav(event,7)" onkeyup="return searchResults.Nav(event,7)" class="SRSymbol" href="../threefry_8h.html#a642ffe8cacdd9e8f6b376bdffff36d24" target="_parent">threefry2x32_ukey_t</a>
+  <span class="SRScope">threefry.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_threefry2x32keyinit">
+ <div class="SREntry">
+  <a id="Item8" onkeydown="return searchResults.Nav(event,8)" onkeypress="return searchResults.Nav(event,8)" onkeyup="return searchResults.Nav(event,8)" class="SRSymbol" href="../threefry_8h.html#a5dbdf6e314925cd676da9f97013aefe4" target="_parent">threefry2x32keyinit</a>
+  <span class="SRScope">threefry.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_threefry2x64">
+ <div class="SREntry">
+  <a id="Item9" onkeydown="return searchResults.Nav(event,9)" onkeypress="return searchResults.Nav(event,9)" onkeyup="return searchResults.Nav(event,9)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_threefry2x64')">Threefry2x64</a>
+  <div class="SRChildren">
+    <a id="Item9_c0" onkeydown="return searchResults.NavChild(event,9,0)" onkeypress="return searchResults.NavChild(event,9,0)" onkeyup="return searchResults.NavChild(event,9,0)" class="SRScope" href="../group__ThreefryNxW.html#ga2b54dd1b0d20f09239be5f8757f1f3db" target="_parent">r123::Threefry2x64()</a>
+    <a id="Item9_c1" onkeydown="return searchResults.NavChild(event,9,1)" onkeypress="return searchResults.NavChild(event,9,1)" onkeyup="return searchResults.NavChild(event,9,1)" class="SRScope" href="../threefry_8h.html#acda3cc1cd02719e1e3d6cfdf7ce0c4c8" target="_parent">threefry2x64(): threefry.h</a>
+    <a id="Item9_c2" onkeydown="return searchResults.NavChild(event,9,2)" onkeypress="return searchResults.NavChild(event,9,2)" onkeyup="return searchResults.NavChild(event,9,2)" class="SRScope" href="../threefry_8h.html#aea6a4bd5c80354a4f575c9bec2702172" target="_parent">threefry2x64(threefry2x64_ctr_t in, threefry2x64_key_t k): threefry.h</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_threefry2x64_5fctr_5ft">
+ <div class="SREntry">
+  <a id="Item10" onkeydown="return searchResults.Nav(event,10)" onkeypress="return searchResults.Nav(event,10)" onkeyup="return searchResults.Nav(event,10)" class="SRSymbol" href="../threefry_8h.html#a13c6df8879e7c13605fc1dc67cb2173b" target="_parent">threefry2x64_ctr_t</a>
+  <span class="SRScope">threefry.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_threefry2x64_5fkey_5ft">
+ <div class="SREntry">
+  <a id="Item11" onkeydown="return searchResults.Nav(event,11)" onkeypress="return searchResults.Nav(event,11)" onkeyup="return searchResults.Nav(event,11)" class="SRSymbol" href="../threefry_8h.html#a31a08f696af23b0e339126bc64a78812" target="_parent">threefry2x64_key_t</a>
+  <span class="SRScope">threefry.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_threefry2x64_5fr">
+ <div class="SREntry">
+  <a id="Item12" onkeydown="return searchResults.Nav(event,12)" onkeypress="return searchResults.Nav(event,12)" onkeyup="return searchResults.Nav(event,12)" class="SRSymbol" href="../threefry_8h.html#abe5e028454aef3f2bc459e5db05e0e04" target="_parent">threefry2x64_R</a>
+  <span class="SRScope">threefry.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_threefry2x64_5fr">
+ <div class="SREntry">
+  <a id="Item13" onkeydown="return searchResults.Nav(event,13)" onkeypress="return searchResults.Nav(event,13)" onkeyup="return searchResults.Nav(event,13)" class="SRSymbol" href="../structr123_1_1Threefry2x64__R.html" target="_parent">Threefry2x64_R</a>
+  <span class="SRScope">r123</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_threefry2x64_5frounds">
+ <div class="SREntry">
+  <a id="Item14" onkeydown="return searchResults.Nav(event,14)" onkeypress="return searchResults.Nav(event,14)" onkeyup="return searchResults.Nav(event,14)" class="SRSymbol" href="../group__ThreefryNxW.html#ggae4df1e52db01acafb28d9c6c25a41071a61579c86759ab497dbfc895f2fe6ec7c" target="_parent">threefry2x64_rounds</a>
+  <span class="SRScope">threefry.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_threefry2x64_5fukey_5ft">
+ <div class="SREntry">
+  <a id="Item15" onkeydown="return searchResults.Nav(event,15)" onkeypress="return searchResults.Nav(event,15)" onkeyup="return searchResults.Nav(event,15)" class="SRSymbol" href="../threefry_8h.html#abb918225d16fcdf0b2659e2096d182b9" target="_parent">threefry2x64_ukey_t</a>
+  <span class="SRScope">threefry.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_threefry2x64keyinit">
+ <div class="SREntry">
+  <a id="Item16" onkeydown="return searchResults.Nav(event,16)" onkeypress="return searchResults.Nav(event,16)" onkeyup="return searchResults.Nav(event,16)" class="SRSymbol" href="../threefry_8h.html#ac14fcf731b175a1cec85a80606ed5f04" target="_parent">threefry2x64keyinit</a>
+  <span class="SRScope">threefry.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_threefry4x32">
+ <div class="SREntry">
+  <a id="Item17" onkeydown="return searchResults.Nav(event,17)" onkeypress="return searchResults.Nav(event,17)" onkeyup="return searchResults.Nav(event,17)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_threefry4x32')">threefry4x32</a>
+  <div class="SRChildren">
+    <a id="Item17_c0" onkeydown="return searchResults.NavChild(event,17,0)" onkeypress="return searchResults.NavChild(event,17,0)" onkeyup="return searchResults.NavChild(event,17,0)" class="SRScope" href="../threefry_8h.html#aaaecd189b32b0081c6a3c2cb46577e23" target="_parent">threefry4x32(): threefry.h</a>
+    <a id="Item17_c1" onkeydown="return searchResults.NavChild(event,17,1)" onkeypress="return searchResults.NavChild(event,17,1)" onkeyup="return searchResults.NavChild(event,17,1)" class="SRScope" href="../threefry_8h.html#a1636cce9de54f919e8952a42b7f397fd" target="_parent">threefry4x32(threefry4x32_ctr_t in, threefry4x32_key_t k): threefry.h</a>
+    <a id="Item17_c2" onkeydown="return searchResults.NavChild(event,17,2)" onkeypress="return searchResults.NavChild(event,17,2)" onkeyup="return searchResults.NavChild(event,17,2)" class="SRScope" href="../group__ThreefryNxW.html#gacb09a2dcfb7389769f0c58f45f132aaa" target="_parent">r123::Threefry4x32()</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_threefry4x32_5fctr_5ft">
+ <div class="SREntry">
+  <a id="Item18" onkeydown="return searchResults.Nav(event,18)" onkeypress="return searchResults.Nav(event,18)" onkeyup="return searchResults.Nav(event,18)" class="SRSymbol" href="../threefry_8h.html#aa72e480598b54b5bbc640a101f9cbe6e" target="_parent">threefry4x32_ctr_t</a>
+  <span class="SRScope">threefry.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_threefry4x32_5fkey_5ft">
+ <div class="SREntry">
+  <a id="Item19" onkeydown="return searchResults.Nav(event,19)" onkeypress="return searchResults.Nav(event,19)" onkeyup="return searchResults.Nav(event,19)" class="SRSymbol" href="../threefry_8h.html#af332bdaec196cee5378cab4fd049ecde" target="_parent">threefry4x32_key_t</a>
+  <span class="SRScope">threefry.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_threefry4x32_5fr">
+ <div class="SREntry">
+  <a id="Item20" onkeydown="return searchResults.Nav(event,20)" onkeypress="return searchResults.Nav(event,20)" onkeyup="return searchResults.Nav(event,20)" class="SRSymbol" href="../threefry_8h.html#a79eb6922e7404e224893f7f723fc240c" target="_parent">threefry4x32_R</a>
+  <span class="SRScope">threefry.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_threefry4x32_5fr">
+ <div class="SREntry">
+  <a id="Item21" onkeydown="return searchResults.Nav(event,21)" onkeypress="return searchResults.Nav(event,21)" onkeyup="return searchResults.Nav(event,21)" class="SRSymbol" href="../structr123_1_1Threefry4x32__R.html" target="_parent">Threefry4x32_R</a>
+  <span class="SRScope">r123</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_threefry4x32_5frounds">
+ <div class="SREntry">
+  <a id="Item22" onkeydown="return searchResults.Nav(event,22)" onkeypress="return searchResults.Nav(event,22)" onkeyup="return searchResults.Nav(event,22)" class="SRSymbol" href="../group__ThreefryNxW.html#gga027cd15620ecab867c6af8bb065b189ba36063dd986ca2ccd28209c7b4bf711d7" target="_parent">threefry4x32_rounds</a>
+  <span class="SRScope">threefry.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_threefry4x32_5fukey_5ft">
+ <div class="SREntry">
+  <a id="Item23" onkeydown="return searchResults.Nav(event,23)" onkeypress="return searchResults.Nav(event,23)" onkeyup="return searchResults.Nav(event,23)" class="SRSymbol" href="../threefry_8h.html#ad65418f4e2c8d8df38059aabc2cc98b6" target="_parent">threefry4x32_ukey_t</a>
+  <span class="SRScope">threefry.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_threefry4x32keyinit">
+ <div class="SREntry">
+  <a id="Item24" onkeydown="return searchResults.Nav(event,24)" onkeypress="return searchResults.Nav(event,24)" onkeyup="return searchResults.Nav(event,24)" class="SRSymbol" href="../threefry_8h.html#a458f442301e620096d73efd479ab8591" target="_parent">threefry4x32keyinit</a>
+  <span class="SRScope">threefry.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_threefry4x64">
+ <div class="SREntry">
+  <a id="Item25" onkeydown="return searchResults.Nav(event,25)" onkeypress="return searchResults.Nav(event,25)" onkeyup="return searchResults.Nav(event,25)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_threefry4x64')">Threefry4x64</a>
+  <div class="SRChildren">
+    <a id="Item25_c0" onkeydown="return searchResults.NavChild(event,25,0)" onkeypress="return searchResults.NavChild(event,25,0)" onkeyup="return searchResults.NavChild(event,25,0)" class="SRScope" href="../group__ThreefryNxW.html#gae17c98bddf067365508ed0717f865e8b" target="_parent">r123::Threefry4x64()</a>
+    <a id="Item25_c1" onkeydown="return searchResults.NavChild(event,25,1)" onkeypress="return searchResults.NavChild(event,25,1)" onkeyup="return searchResults.NavChild(event,25,1)" class="SRScope" href="../threefry_8h.html#a992029974a22f14e0ef29a862ede2b8d" target="_parent">threefry4x64(): threefry.h</a>
+    <a id="Item25_c2" onkeydown="return searchResults.NavChild(event,25,2)" onkeypress="return searchResults.NavChild(event,25,2)" onkeyup="return searchResults.NavChild(event,25,2)" class="SRScope" href="../threefry_8h.html#a382d18a49002d2a5e2b2f06d58669d70" target="_parent">threefry4x64(threefry4x64_ctr_t in, threefry4x64_key_t k): threefry.h</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_threefry4x64_5fctr_5ft">
+ <div class="SREntry">
+  <a id="Item26" onkeydown="return searchResults.Nav(event,26)" onkeypress="return searchResults.Nav(event,26)" onkeyup="return searchResults.Nav(event,26)" class="SRSymbol" href="../threefry_8h.html#a3296098832bc3a243f40078c1b93592e" target="_parent">threefry4x64_ctr_t</a>
+  <span class="SRScope">threefry.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_threefry4x64_5fkey_5ft">
+ <div class="SREntry">
+  <a id="Item27" onkeydown="return searchResults.Nav(event,27)" onkeypress="return searchResults.Nav(event,27)" onkeyup="return searchResults.Nav(event,27)" class="SRSymbol" href="../threefry_8h.html#ad51f07c7dc47238532cbc05e89f5cef9" target="_parent">threefry4x64_key_t</a>
+  <span class="SRScope">threefry.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_threefry4x64_5fr">
+ <div class="SREntry">
+  <a id="Item28" onkeydown="return searchResults.Nav(event,28)" onkeypress="return searchResults.Nav(event,28)" onkeyup="return searchResults.Nav(event,28)" class="SRSymbol" href="../structr123_1_1Threefry4x64__R.html" target="_parent">Threefry4x64_R</a>
+  <span class="SRScope">r123</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_threefry4x64_5fr">
+ <div class="SREntry">
+  <a id="Item29" onkeydown="return searchResults.Nav(event,29)" onkeypress="return searchResults.Nav(event,29)" onkeyup="return searchResults.Nav(event,29)" class="SRSymbol" href="../threefry_8h.html#a2e04c3f1ae28c4833444bfafcf22c47f" target="_parent">threefry4x64_R</a>
+  <span class="SRScope">threefry.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_threefry4x64_5frounds">
+ <div class="SREntry">
+  <a id="Item30" onkeydown="return searchResults.Nav(event,30)" onkeypress="return searchResults.Nav(event,30)" onkeyup="return searchResults.Nav(event,30)" class="SRSymbol" href="../group__ThreefryNxW.html#gga6379a4a73e85bc36235907a326945acca9cdd4629047775ebe339ac9e9dd0ad65" target="_parent">threefry4x64_rounds</a>
+  <span class="SRScope">threefry.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_threefry4x64_5fukey_5ft">
+ <div class="SREntry">
+  <a id="Item31" onkeydown="return searchResults.Nav(event,31)" onkeypress="return searchResults.Nav(event,31)" onkeyup="return searchResults.Nav(event,31)" class="SRSymbol" href="../threefry_8h.html#a6b4db94d5185220d4fcec72f92a391ad" target="_parent">threefry4x64_ukey_t</a>
+  <span class="SRScope">threefry.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_threefry4x64keyinit">
+ <div class="SREntry">
+  <a id="Item32" onkeydown="return searchResults.Nav(event,32)" onkeypress="return searchResults.Nav(event,32)" onkeyup="return searchResults.Nav(event,32)" class="SRSymbol" href="../threefry_8h.html#aeed27be75e75bfffb0bf8c6333f71b10" target="_parent">threefry4x64keyinit</a>
+  <span class="SRScope">threefry.h</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/all_75.html b/docs/html/search/all_75.html
new file mode 100644
index 0000000..d698cf5
--- /dev/null
+++ b/docs/html/search/all_75.html
@@ -0,0 +1,48 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_ukey">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structr123_1_1Engine.html#a11a79253c3a7b07e697f7bf4c7edb52f" target="_parent">ukey</a>
+  <span class="SRScope">r123::Engine</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_ukey_5ftype">
+ <div class="SREntry">
+  <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_ukey_5ftype')">ukey_type</a>
+  <div class="SRChildren">
+    <a id="Item1_c0" onkeydown="return searchResults.NavChild(event,1,0)" onkeypress="return searchResults.NavChild(event,1,0)" onkeyup="return searchResults.NavChild(event,1,0)" class="SRScope" href="../structr123_1_1AESNI1xm128i.html#a1f405533da84d98b938030190a63cec5" target="_parent">r123::AESNI1xm128i::ukey_type()</a>
+    <a id="Item1_c1" onkeydown="return searchResults.NavChild(event,1,1)" onkeypress="return searchResults.NavChild(event,1,1)" onkeyup="return searchResults.NavChild(event,1,1)" class="SRScope" href="../structr123_1_1AESNI4x32.html#a3fbb6113e70575dce3b6047a22a751f4" target="_parent">r123::AESNI4x32::ukey_type()</a>
+    <a id="Item1_c2" onkeydown="return searchResults.NavChild(event,1,2)" onkeypress="return searchResults.NavChild(event,1,2)" onkeyup="return searchResults.NavChild(event,1,2)" class="SRScope" href="../structr123_1_1ARS1xm128i__R.html#ab26c7029e347e6b1e17dad795e462aeb" target="_parent">r123::ARS1xm128i_R::ukey_type()</a>
+    <a id="Item1_c3" onkeydown="return searchResults.NavChild(event,1,3)" onkeypress="return searchResults.NavChild(event,1,3)" onkeyup="return searchResults.NavChild(event,1,3)" class="SRScope" href="../structr123_1_1ARS4x32__R.html#aa4bd7be98acb8b0299fb0ffce3db69ee" target="_parent">r123::ARS4x32_R::ukey_type()</a>
+    <a id="Item1_c4" onkeydown="return searchResults.NavChild(event,1,4)" onkeypress="return searchResults.NavChild(event,1,4)" onkeyup="return searchResults.NavChild(event,1,4)" class="SRScope" href="../classr123_1_1MicroURNG.html#a7e6fd93fec2fe138ee36b401ff376cfc" target="_parent">r123::MicroURNG::ukey_type()</a>
+    <a id="Item1_c5" onkeydown="return searchResults.NavChild(event,1,5)" onkeypress="return searchResults.NavChild(event,1,5)" onkeyup="return searchResults.NavChild(event,1,5)" class="SRScope" href="../structr123_1_1Philox2x32__R.html#a8982960eb5a3b5afc26c8e8d6639275e" target="_parent">r123::Philox2x32_R::ukey_type()</a>
+    <a id="Item1_c6" onkeydown="return searchResults.NavChild(event,1,6)" onkeypress="return searchResults.NavChild(event,1,6)" onkeyup="return searchResults.NavChild(event,1,6)" class="SRScope" href="../structr123_1_1Philox4x32__R.html#a804c8700155da93039c339ac83df99dd" target="_parent">r123::Philox4x32_R::ukey_type()</a>
+    <a id="Item1_c7" onkeydown="return searchResults.NavChild(event,1,7)" onkeypress="return searchResults.NavChild(event,1,7)" onkeyup="return searchResults.NavChild(event,1,7)" class="SRScope" href="../structr123_1_1Philox2x64__R.html#a0c4cfeb8c3f00d1755ee047790c9da1c" target="_parent">r123::Philox2x64_R::ukey_type()</a>
+    <a id="Item1_c8" onkeydown="return searchResults.NavChild(event,1,8)" onkeypress="return searchResults.NavChild(event,1,8)" onkeyup="return searchResults.NavChild(event,1,8)" class="SRScope" href="../structr123_1_1Philox4x64__R.html#a4715e37129fb4ca9d7671cb9df4fa8c5" target="_parent">r123::Philox4x64_R::ukey_type()</a>
+    <a id="Item1_c9" onkeydown="return searchResults.NavChild(event,1,9)" onkeypress="return searchResults.NavChild(event,1,9)" onkeyup="return searchResults.NavChild(event,1,9)" class="SRScope" href="../structr123_1_1ReinterpretCtr.html#a4b0b69c1aa58d62bb22e51e16c586bee" target="_parent">r123::ReinterpretCtr::ukey_type()</a>
+    <a id="Item1_c10" onkeydown="return searchResults.NavChild(event,1,10)" onkeypress="return searchResults.NavChild(event,1,10)" onkeyup="return searchResults.NavChild(event,1,10)" class="SRScope" href="../structr123_1_1Threefry2x32__R.html#a3ab3969f7445f9fe935566fdc017c5ca" target="_parent">r123::Threefry2x32_R::ukey_type()</a>
+    <a id="Item1_c11" onkeydown="return searchResults.NavChild(event,1,11)" onkeypress="return searchResults.NavChild(event,1,11)" onkeyup="return searchResults.NavChild(event,1,11)" class="SRScope" href="../structr123_1_1Threefry4x32__R.html#aab22e360de3f5e13f018ccf3a6754a8f" target="_parent">r123::Threefry4x32_R::ukey_type()</a>
+    <a id="Item1_c12" onkeydown="return searchResults.NavChild(event,1,12)" onkeypress="return searchResults.NavChild(event,1,12)" onkeyup="return searchResults.NavChild(event,1,12)" class="SRScope" href="../structr123_1_1Threefry2x64__R.html#a57db271865ab1889c8f569fb053ee66d" target="_parent">r123::Threefry2x64_R::ukey_type()</a>
+    <a id="Item1_c13" onkeydown="return searchResults.NavChild(event,1,13)" onkeypress="return searchResults.NavChild(event,1,13)" onkeyup="return searchResults.NavChild(event,1,13)" class="SRScope" href="../structr123_1_1Threefry4x64__R.html#a087ff88f84d115a6a726e008c6dcc325" target="_parent">r123::Threefry4x64_R::ukey_type()</a>
+    <a id="Item1_c14" onkeydown="return searchResults.NavChild(event,1,14)" onkeypress="return searchResults.NavChild(event,1,14)" onkeyup="return searchResults.NavChild(event,1,14)" class="SRScope" href="../structr123_1_1Engine.html#a32973bdda8697bcbb4dde11c0366a5e3" target="_parent">r123::Engine::ukey_type()</a>
+  </div>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/all_76.html b/docs/html/search/all_76.html
new file mode 100644
index 0000000..2184f87
--- /dev/null
+++ b/docs/html/search/all_76.html
@@ -0,0 +1,53 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_v">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_v')">v</a>
+  <div class="SRChildren">
+    <a id="Item0_c0" onkeydown="return searchResults.NavChild(event,0,0)" onkeypress="return searchResults.NavChild(event,0,0)" onkeyup="return searchResults.NavChild(event,0,0)" class="SRScope" href="../structr123array1x32.html#a1123ac44ecadd52dae06d2c8df86764a" target="_parent">r123array1x32::v()</a>
+    <a id="Item0_c1" onkeydown="return searchResults.NavChild(event,0,1)" onkeypress="return searchResults.NavChild(event,0,1)" onkeyup="return searchResults.NavChild(event,0,1)" class="SRScope" href="../structr123array2x32.html#a65524bf06568073021117ef196d6b45f" target="_parent">r123array2x32::v()</a>
+    <a id="Item0_c2" onkeydown="return searchResults.NavChild(event,0,2)" onkeypress="return searchResults.NavChild(event,0,2)" onkeyup="return searchResults.NavChild(event,0,2)" class="SRScope" href="../structr123array4x32.html#ac8e6785120a3031b211fc8aa7d03d83f" target="_parent">r123array4x32::v()</a>
+    <a id="Item0_c3" onkeydown="return searchResults.NavChild(event,0,3)" onkeypress="return searchResults.NavChild(event,0,3)" onkeyup="return searchResults.NavChild(event,0,3)" class="SRScope" href="../structr123array8x32.html#a7a84d2a924a271cc7b5f748023517d10" target="_parent">r123array8x32::v()</a>
+    <a id="Item0_c4" onkeydown="return searchResults.NavChild(event,0,4)" onkeypress="return searchResults.NavChild(event,0,4)" onkeyup="return searchResults.NavChild(event,0,4)" class="SRScope" href="../structr123array1x64.html#a951c4b651e15e5ad4f66d81027c8e1b5" target="_parent">r123array1x64::v()</a>
+    <a id="Item0_c5" onkeydown="return searchResults.NavChild(event,0,5)" onkeypress="return searchResults.NavChild(event,0,5)" onkeyup="return searchResults.NavChild(event,0,5)" class="SRScope" href="../structr123array2x64.html#a547e4a51e531cf36eef885fbf20a7048" target="_parent">r123array2x64::v()</a>
+    <a id="Item0_c6" onkeydown="return searchResults.NavChild(event,0,6)" onkeypress="return searchResults.NavChild(event,0,6)" onkeyup="return searchResults.NavChild(event,0,6)" class="SRScope" href="../structr123array4x64.html#aae3a18410877c49f1058bc4d78a62f48" target="_parent">r123array4x64::v()</a>
+    <a id="Item0_c7" onkeydown="return searchResults.NavChild(event,0,7)" onkeypress="return searchResults.NavChild(event,0,7)" onkeyup="return searchResults.NavChild(event,0,7)" class="SRScope" href="../structr123array16x8.html#a703776a5f85fb222e16b739309489783" target="_parent">r123array16x8::v()</a>
+    <a id="Item0_c8" onkeydown="return searchResults.NavChild(event,0,8)" onkeypress="return searchResults.NavChild(event,0,8)" onkeyup="return searchResults.NavChild(event,0,8)" class="SRScope" href="../structr123array1xm128i.html#ab6d5e4b23c04e12c1aad7aaf38ff2bd5" target="_parent">r123array1xm128i::v()</a>
+    <a id="Item0_c9" onkeydown="return searchResults.NavChild(event,0,9)" onkeypress="return searchResults.NavChild(event,0,9)" onkeyup="return searchResults.NavChild(event,0,9)" class="SRScope" href="../structr123_1_1Engine.html#a6169d4fbce1fd7725fabda4c693bf250" target="_parent">r123::Engine::v()</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_value_5ftype">
+ <div class="SREntry">
+  <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_value_5ftype')">value_type</a>
+  <div class="SRChildren">
+    <a id="Item1_c0" onkeydown="return searchResults.NavChild(event,1,0)" onkeypress="return searchResults.NavChild(event,1,0)" onkeyup="return searchResults.NavChild(event,1,0)" class="SRScope" href="../structr123array1x32.html#a9c8e0d672be32b52eef639f1a3b2b98a" target="_parent">r123array1x32::value_type()</a>
+    <a id="Item1_c1" onkeydown="return searchResults.NavChild(event,1,1)" onkeypress="return searchResults.NavChild(event,1,1)" onkeyup="return searchResults.NavChild(event,1,1)" class="SRScope" href="../structr123array2x32.html#ab669df8d33d32ee3571210eb090c6cb2" target="_parent">r123array2x32::value_type()</a>
+    <a id="Item1_c2" onkeydown="return searchResults.NavChild(event,1,2)" onkeypress="return searchResults.NavChild(event,1,2)" onkeyup="return searchResults.NavChild(event,1,2)" class="SRScope" href="../structr123array4x32.html#a5ba59b507edcf793ba186a9a4e8c56d5" target="_parent">r123array4x32::value_type()</a>
+    <a id="Item1_c3" onkeydown="return searchResults.NavChild(event,1,3)" onkeypress="return searchResults.NavChild(event,1,3)" onkeyup="return searchResults.NavChild(event,1,3)" class="SRScope" href="../structr123array8x32.html#af47fd0d348b68dd7a2853c68eb32d8b7" target="_parent">r123array8x32::value_type()</a>
+    <a id="Item1_c4" onkeydown="return searchResults.NavChild(event,1,4)" onkeypress="return searchResults.NavChild(event,1,4)" onkeyup="return searchResults.NavChild(event,1,4)" class="SRScope" href="../structr123array1x64.html#a4d8280ccd7087d5c3faba27641e8fbe7" target="_parent">r123array1x64::value_type()</a>
+    <a id="Item1_c5" onkeydown="return searchResults.NavChild(event,1,5)" onkeypress="return searchResults.NavChild(event,1,5)" onkeyup="return searchResults.NavChild(event,1,5)" class="SRScope" href="../structr123array2x64.html#acefd9fb46661254e17877844c545e15f" target="_parent">r123array2x64::value_type()</a>
+    <a id="Item1_c6" onkeydown="return searchResults.NavChild(event,1,6)" onkeypress="return searchResults.NavChild(event,1,6)" onkeyup="return searchResults.NavChild(event,1,6)" class="SRScope" href="../structr123array4x64.html#ae4a79be3ab80944a8bb6bc7ec7907061" target="_parent">r123array4x64::value_type()</a>
+    <a id="Item1_c7" onkeydown="return searchResults.NavChild(event,1,7)" onkeypress="return searchResults.NavChild(event,1,7)" onkeyup="return searchResults.NavChild(event,1,7)" class="SRScope" href="../structr123array16x8.html#ad1d7184f51cafaff4714a2dcf60c9ae2" target="_parent">r123array16x8::value_type()</a>
+    <a id="Item1_c8" onkeydown="return searchResults.NavChild(event,1,8)" onkeypress="return searchResults.NavChild(event,1,8)" onkeyup="return searchResults.NavChild(event,1,8)" class="SRScope" href="../structr123array1xm128i.html#a70ab4e530c7cce9481e07aa0b21dd96b" target="_parent">r123array1xm128i::value_type()</a>
+  </div>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/classes_61.html b/docs/html/search/classes_61.html
new file mode 100644
index 0000000..d3cd05c
--- /dev/null
+++ b/docs/html/search/classes_61.html
@@ -0,0 +1,61 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_aesni1xm128i">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structr123_1_1AESNI1xm128i.html" target="_parent">AESNI1xm128i</a>
+  <span class="SRScope">r123</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_aesni1xm128i_5fkey_5ft">
+ <div class="SREntry">
+  <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../structaesni1xm128i__key__t.html" target="_parent">aesni1xm128i_key_t</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_aesni1xm128i_5fr">
+ <div class="SREntry">
+  <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../structr123_1_1AESNI1xm128i__R.html" target="_parent">AESNI1xm128i_R</a>
+  <span class="SRScope">r123</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_aesni4x32">
+ <div class="SREntry">
+  <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="../structr123_1_1AESNI4x32.html" target="_parent">AESNI4x32</a>
+  <span class="SRScope">r123</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_aesni4x32_5fr">
+ <div class="SREntry">
+  <a id="Item4" onkeydown="return searchResults.Nav(event,4)" onkeypress="return searchResults.Nav(event,4)" onkeyup="return searchResults.Nav(event,4)" class="SRSymbol" href="../structr123_1_1AESNI4x32__R.html" target="_parent">AESNI4x32_R</a>
+  <span class="SRScope">r123</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_ars1xm128i_5fr">
+ <div class="SREntry">
+  <a id="Item5" onkeydown="return searchResults.Nav(event,5)" onkeypress="return searchResults.Nav(event,5)" onkeyup="return searchResults.Nav(event,5)" class="SRSymbol" href="../structr123_1_1ARS1xm128i__R.html" target="_parent">ARS1xm128i_R</a>
+  <span class="SRScope">r123</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_ars4x32_5fr">
+ <div class="SREntry">
+  <a id="Item6" onkeydown="return searchResults.Nav(event,6)" onkeypress="return searchResults.Nav(event,6)" onkeyup="return searchResults.Nav(event,6)" class="SRSymbol" href="../structr123_1_1ARS4x32__R.html" target="_parent">ARS4x32_R</a>
+  <span class="SRScope">r123</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/classes_65.html b/docs/html/search/classes_65.html
new file mode 100644
index 0000000..31adc8b
--- /dev/null
+++ b/docs/html/search/classes_65.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_engine">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structr123_1_1Engine.html" target="_parent">Engine</a>
+  <span class="SRScope">r123</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/classes_6d.html b/docs/html/search/classes_6d.html
new file mode 100644
index 0000000..54fdf45
--- /dev/null
+++ b/docs/html/search/classes_6d.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_microurng">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../classr123_1_1MicroURNG.html" target="_parent">MicroURNG</a>
+  <span class="SRScope">r123</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/classes_70.html b/docs/html/search/classes_70.html
new file mode 100644
index 0000000..b16ad5a
--- /dev/null
+++ b/docs/html/search/classes_70.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_philox2x32_5fr">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structr123_1_1Philox2x32__R.html" target="_parent">Philox2x32_R</a>
+  <span class="SRScope">r123</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_philox2x64_5fr">
+ <div class="SREntry">
+  <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../structr123_1_1Philox2x64__R.html" target="_parent">Philox2x64_R</a>
+  <span class="SRScope">r123</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_philox4x32_5fr">
+ <div class="SREntry">
+  <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../structr123_1_1Philox4x32__R.html" target="_parent">Philox4x32_R</a>
+  <span class="SRScope">r123</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_philox4x64_5fr">
+ <div class="SREntry">
+  <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="../structr123_1_1Philox4x64__R.html" target="_parent">Philox4x64_R</a>
+  <span class="SRScope">r123</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/classes_72.html b/docs/html/search/classes_72.html
new file mode 100644
index 0000000..ea550c9
--- /dev/null
+++ b/docs/html/search/classes_72.html
@@ -0,0 +1,76 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_r123array16x8">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structr123array16x8.html" target="_parent">r123array16x8</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_r123array1x32">
+ <div class="SREntry">
+  <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../structr123array1x32.html" target="_parent">r123array1x32</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_r123array1x64">
+ <div class="SREntry">
+  <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../structr123array1x64.html" target="_parent">r123array1x64</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_r123array1xm128i">
+ <div class="SREntry">
+  <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="../structr123array1xm128i.html" target="_parent">r123array1xm128i</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_r123array2x32">
+ <div class="SREntry">
+  <a id="Item4" onkeydown="return searchResults.Nav(event,4)" onkeypress="return searchResults.Nav(event,4)" onkeyup="return searchResults.Nav(event,4)" class="SRSymbol" href="../structr123array2x32.html" target="_parent">r123array2x32</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_r123array2x64">
+ <div class="SREntry">
+  <a id="Item5" onkeydown="return searchResults.Nav(event,5)" onkeypress="return searchResults.Nav(event,5)" onkeyup="return searchResults.Nav(event,5)" class="SRSymbol" href="../structr123array2x64.html" target="_parent">r123array2x64</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_r123array4x32">
+ <div class="SREntry">
+  <a id="Item6" onkeydown="return searchResults.Nav(event,6)" onkeypress="return searchResults.Nav(event,6)" onkeyup="return searchResults.Nav(event,6)" class="SRSymbol" href="../structr123array4x32.html" target="_parent">r123array4x32</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_r123array4x64">
+ <div class="SREntry">
+  <a id="Item7" onkeydown="return searchResults.Nav(event,7)" onkeypress="return searchResults.Nav(event,7)" onkeyup="return searchResults.Nav(event,7)" class="SRSymbol" href="../structr123array4x64.html" target="_parent">r123array4x64</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_r123array8x32">
+ <div class="SREntry">
+  <a id="Item8" onkeydown="return searchResults.Nav(event,8)" onkeypress="return searchResults.Nav(event,8)" onkeyup="return searchResults.Nav(event,8)" class="SRSymbol" href="../structr123array8x32.html" target="_parent">r123array8x32</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_r123m128i">
+ <div class="SREntry">
+  <a id="Item9" onkeydown="return searchResults.Nav(event,9)" onkeypress="return searchResults.Nav(event,9)" onkeyup="return searchResults.Nav(event,9)" class="SRSymbol" href="../structr123m128i.html" target="_parent">r123m128i</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_reinterpretctr">
+ <div class="SREntry">
+  <a id="Item10" onkeydown="return searchResults.Nav(event,10)" onkeypress="return searchResults.Nav(event,10)" onkeyup="return searchResults.Nav(event,10)" class="SRSymbol" href="../structr123_1_1ReinterpretCtr.html" target="_parent">ReinterpretCtr</a>
+  <span class="SRScope">r123</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/classes_74.html b/docs/html/search/classes_74.html
new file mode 100644
index 0000000..2b70932
--- /dev/null
+++ b/docs/html/search/classes_74.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_threefry2x32_5fr">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structr123_1_1Threefry2x32__R.html" target="_parent">Threefry2x32_R</a>
+  <span class="SRScope">r123</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_threefry2x64_5fr">
+ <div class="SREntry">
+  <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../structr123_1_1Threefry2x64__R.html" target="_parent">Threefry2x64_R</a>
+  <span class="SRScope">r123</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_threefry4x32_5fr">
+ <div class="SREntry">
+  <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../structr123_1_1Threefry4x32__R.html" target="_parent">Threefry4x32_R</a>
+  <span class="SRScope">r123</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_threefry4x64_5fr">
+ <div class="SREntry">
+  <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="../structr123_1_1Threefry4x64__R.html" target="_parent">Threefry4x64_R</a>
+  <span class="SRScope">r123</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/close.png b/docs/html/search/close.png
new file mode 100644
index 0000000..9342d3d
Binary files /dev/null and b/docs/html/search/close.png differ
diff --git a/docs/html/search/defines_61.html b/docs/html/search/defines_61.html
new file mode 100644
index 0000000..1cf27c6
--- /dev/null
+++ b/docs/html/search/defines_61.html
@@ -0,0 +1,50 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_aesni4x32">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../group__AESNI.html#gae3950c524818b49d1cdfad481880a33a" target="_parent">aesni4x32</a>
+  <span class="SRScope">aes.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_aesni4x32_5frounds">
+ <div class="SREntry">
+  <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../aes_8h.html#a0e4c28ad2773dac7eb59004947c9e02b" target="_parent">aesni4x32_rounds</a>
+  <span class="SRScope">aes.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_ars1xm128i">
+ <div class="SREntry">
+  <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../group__AESNI.html#ga22e0a9c885b544115d44d26cc7777303" target="_parent">ars1xm128i</a>
+  <span class="SRScope">ars.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_ars1xm128i_5fdefault_5frounds">
+ <div class="SREntry">
+  <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="../ars_8h.html#aa1e31853c7493df739897205eb4f4a82" target="_parent">ARS1xm128i_DEFAULT_ROUNDS</a>
+  <span class="SRScope">ars.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_ars4x32">
+ <div class="SREntry">
+  <a id="Item4" onkeydown="return searchResults.Nav(event,4)" onkeypress="return searchResults.Nav(event,4)" onkeyup="return searchResults.Nav(event,4)" class="SRSymbol" href="../group__AESNI.html#ga088ecbf341caf05e491ce246f2ea2d30" target="_parent">ars4x32</a>
+  <span class="SRScope">ars.h</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/defines_67.html b/docs/html/search/defines_67.html
new file mode 100644
index 0000000..1c14e72
--- /dev/null
+++ b/docs/html/search/defines_67.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_gsl_5fcbrng">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../gsl__cbrng_8h.html#af561a004eef8e93cdfd6b255a8a1eb75" target="_parent">GSL_CBRNG</a>
+  <span class="SRScope">gsl_cbrng.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_gsl_5fmicrorng">
+ <div class="SREntry">
+  <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../gsl__microrng_8h.html#a21c7bb64a536a1704c6dc96856b78297" target="_parent">GSL_MICRORNG</a>
+  <span class="SRScope">gsl_microrng.h</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/defines_70.html b/docs/html/search/defines_70.html
new file mode 100644
index 0000000..959d639
--- /dev/null
+++ b/docs/html/search/defines_70.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_philox2x32">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../philox_8h.html#ab2496424917f063a4990f01943a07fe0" target="_parent">philox2x32</a>
+  <span class="SRScope">philox.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_philox2x64">
+ <div class="SREntry">
+  <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../philox_8h.html#ae6b57a71e4efa369cc19416fc088b5a5" target="_parent">philox2x64</a>
+  <span class="SRScope">philox.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_philox4x32">
+ <div class="SREntry">
+  <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../philox_8h.html#a432a3df828dd51acd0b7ec2fee1d4d7e" target="_parent">philox4x32</a>
+  <span class="SRScope">philox.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_philox4x64">
+ <div class="SREntry">
+  <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="../philox_8h.html#a62fb1b4d9775396303ebb2a801fea8e6" target="_parent">philox4x64</a>
+  <span class="SRScope">philox.h</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/defines_72.html b/docs/html/search/defines_72.html
new file mode 100644
index 0000000..7e1e935
--- /dev/null
+++ b/docs/html/search/defines_72.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_r123_5fw">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../array_8h.html#a9b64205709c0daaea3b05bbf7ea5a322" target="_parent">R123_W</a>
+  <span class="SRScope">array.h</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/defines_74.html b/docs/html/search/defines_74.html
new file mode 100644
index 0000000..a9461fa
--- /dev/null
+++ b/docs/html/search/defines_74.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_threefry2x32">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../threefry_8h.html#a52e1635889bbf08009646f22897e07fc" target="_parent">threefry2x32</a>
+  <span class="SRScope">threefry.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_threefry2x64">
+ <div class="SREntry">
+  <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../threefry_8h.html#acda3cc1cd02719e1e3d6cfdf7ce0c4c8" target="_parent">threefry2x64</a>
+  <span class="SRScope">threefry.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_threefry4x32">
+ <div class="SREntry">
+  <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../threefry_8h.html#aaaecd189b32b0081c6a3c2cb46577e23" target="_parent">threefry4x32</a>
+  <span class="SRScope">threefry.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_threefry4x64">
+ <div class="SREntry">
+  <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="../threefry_8h.html#a992029974a22f14e0ef29a862ede2b8d" target="_parent">threefry4x64</a>
+  <span class="SRScope">threefry.h</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/enums_72.html b/docs/html/search/enums_72.html
new file mode 100644
index 0000000..6351151
--- /dev/null
+++ b/docs/html/search/enums_72.html
@@ -0,0 +1,92 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_r123_5fenum_5faesni1xm128i">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../group__AESNI.html#ga2814629101926e23001d564630ba7b86" target="_parent">r123_enum_aesni1xm128i</a>
+  <span class="SRScope">aes.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_r123_5fenum_5faesni4x32">
+ <div class="SREntry">
+  <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../group__AESNI.html#ga1557a9d6e95543a3c4ca9082a4c14b0d" target="_parent">r123_enum_aesni4x32</a>
+  <span class="SRScope">aes.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_r123_5fenum_5fars1xm128i">
+ <div class="SREntry">
+  <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../group__AESNI.html#gabf0a537666d4d1421144cb0a5e67666c" target="_parent">r123_enum_ars1xm128i</a>
+  <span class="SRScope">ars.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_r123_5fenum_5fars4x32">
+ <div class="SREntry">
+  <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="../group__AESNI.html#gaa623b038fa0c8d8d2864fdc0e45884d6" target="_parent">r123_enum_ars4x32</a>
+  <span class="SRScope">ars.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_r123_5fenum_5fphilox2x32">
+ <div class="SREntry">
+  <a id="Item4" onkeydown="return searchResults.Nav(event,4)" onkeypress="return searchResults.Nav(event,4)" onkeyup="return searchResults.Nav(event,4)" class="SRSymbol" href="../group__PhiloxNxW.html#gae7443e1a57429154124943b6a7c0bd08" target="_parent">r123_enum_philox2x32</a>
+  <span class="SRScope">philox.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_r123_5fenum_5fphilox2x64">
+ <div class="SREntry">
+  <a id="Item5" onkeydown="return searchResults.Nav(event,5)" onkeypress="return searchResults.Nav(event,5)" onkeyup="return searchResults.Nav(event,5)" class="SRSymbol" href="../group__PhiloxNxW.html#gaca9df5cdadde758a63952daa97ddff91" target="_parent">r123_enum_philox2x64</a>
+  <span class="SRScope">philox.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_r123_5fenum_5fphilox4x32">
+ <div class="SREntry">
+  <a id="Item6" onkeydown="return searchResults.Nav(event,6)" onkeypress="return searchResults.Nav(event,6)" onkeyup="return searchResults.Nav(event,6)" class="SRSymbol" href="../group__PhiloxNxW.html#ga67fd1bf4ed858d01663a7d6b219b97a2" target="_parent">r123_enum_philox4x32</a>
+  <span class="SRScope">philox.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_r123_5fenum_5fphilox4x64">
+ <div class="SREntry">
+  <a id="Item7" onkeydown="return searchResults.Nav(event,7)" onkeypress="return searchResults.Nav(event,7)" onkeyup="return searchResults.Nav(event,7)" class="SRSymbol" href="../group__PhiloxNxW.html#gaf603860d055cee96c75f6986641e9cad" target="_parent">r123_enum_philox4x64</a>
+  <span class="SRScope">philox.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_r123_5fenum_5fthreefry2x32">
+ <div class="SREntry">
+  <a id="Item8" onkeydown="return searchResults.Nav(event,8)" onkeypress="return searchResults.Nav(event,8)" onkeyup="return searchResults.Nav(event,8)" class="SRSymbol" href="../group__ThreefryNxW.html#gae1c47baba4367dd47d68025d23ae4775" target="_parent">r123_enum_threefry2x32</a>
+  <span class="SRScope">threefry.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_r123_5fenum_5fthreefry2x64">
+ <div class="SREntry">
+  <a id="Item9" onkeydown="return searchResults.Nav(event,9)" onkeypress="return searchResults.Nav(event,9)" onkeyup="return searchResults.Nav(event,9)" class="SRSymbol" href="../group__ThreefryNxW.html#gae4df1e52db01acafb28d9c6c25a41071" target="_parent">r123_enum_threefry2x64</a>
+  <span class="SRScope">threefry.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_r123_5fenum_5fthreefry4x32">
+ <div class="SREntry">
+  <a id="Item10" onkeydown="return searchResults.Nav(event,10)" onkeypress="return searchResults.Nav(event,10)" onkeyup="return searchResults.Nav(event,10)" class="SRSymbol" href="../group__ThreefryNxW.html#ga027cd15620ecab867c6af8bb065b189b" target="_parent">r123_enum_threefry4x32</a>
+  <span class="SRScope">threefry.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_r123_5fenum_5fthreefry4x64">
+ <div class="SREntry">
+  <a id="Item11" onkeydown="return searchResults.Nav(event,11)" onkeypress="return searchResults.Nav(event,11)" onkeyup="return searchResults.Nav(event,11)" class="SRSymbol" href="../group__ThreefryNxW.html#ga6379a4a73e85bc36235907a326945acc" target="_parent">r123_enum_threefry4x64</a>
+  <span class="SRScope">threefry.h</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/enumvalues_61.html b/docs/html/search/enumvalues_61.html
new file mode 100644
index 0000000..bcc9b7c
--- /dev/null
+++ b/docs/html/search/enumvalues_61.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_aesni1xm128i_5frounds">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../group__AESNI.html#gga2814629101926e23001d564630ba7b86a2c404c51fea10eeacb032081dbab2408" target="_parent">aesni1xm128i_rounds</a>
+  <span class="SRScope">aes.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_aesni4x32_5frounds">
+ <div class="SREntry">
+  <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../group__AESNI.html#gga1557a9d6e95543a3c4ca9082a4c14b0dad65178990d928071f958bf2413ebdb4b" target="_parent">aesni4x32_rounds</a>
+  <span class="SRScope">aes.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_ars1xm128i_5frounds">
+ <div class="SREntry">
+  <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../group__AESNI.html#ggabf0a537666d4d1421144cb0a5e67666cade1fd46524355ec1d7ce63fd13b54992" target="_parent">ars1xm128i_rounds</a>
+  <span class="SRScope">ars.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_ars4x32_5frounds">
+ <div class="SREntry">
+  <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="../group__AESNI.html#ggaa623b038fa0c8d8d2864fdc0e45884d6a5e715f357770a0f188ef493e6e63d31d" target="_parent">ars4x32_rounds</a>
+  <span class="SRScope">ars.h</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/enumvalues_70.html b/docs/html/search/enumvalues_70.html
new file mode 100644
index 0000000..91fc18c
--- /dev/null
+++ b/docs/html/search/enumvalues_70.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_philox2x32_5frounds">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../group__PhiloxNxW.html#ggae7443e1a57429154124943b6a7c0bd08ad08568b592cd076441505eed926d929c" target="_parent">philox2x32_rounds</a>
+  <span class="SRScope">philox.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_philox2x64_5frounds">
+ <div class="SREntry">
+  <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../group__PhiloxNxW.html#ggaca9df5cdadde758a63952daa97ddff91ae15befbf8ae3f2e93d6e49ea9e05b636" target="_parent">philox2x64_rounds</a>
+  <span class="SRScope">philox.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_philox4x32_5frounds">
+ <div class="SREntry">
+  <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../group__PhiloxNxW.html#gga67fd1bf4ed858d01663a7d6b219b97a2ac9dec73e096a7afb5d82f2388a7a5412" target="_parent">philox4x32_rounds</a>
+  <span class="SRScope">philox.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_philox4x64_5frounds">
+ <div class="SREntry">
+  <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="../group__PhiloxNxW.html#ggaf603860d055cee96c75f6986641e9cada3407accddb6e873c1005a4ab2edcef67" target="_parent">philox4x64_rounds</a>
+  <span class="SRScope">philox.h</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/enumvalues_73.html b/docs/html/search/enumvalues_73.html
new file mode 100644
index 0000000..29834fe
--- /dev/null
+++ b/docs/html/search/enumvalues_73.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_static_5fsize">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_static_5fsize')">static_size</a>
+  <div class="SRChildren">
+    <a id="Item0_c0" onkeydown="return searchResults.NavChild(event,0,0)" onkeypress="return searchResults.NavChild(event,0,0)" onkeyup="return searchResults.NavChild(event,0,0)" class="SRScope" href="../structr123array1x32.html#a2cdb0e09b7e8ba20de255ddcb54ea9baae9556d9b93643fe1f7e56e973200177a" target="_parent">r123array1x32::static_size()</a>
+    <a id="Item0_c1" onkeydown="return searchResults.NavChild(event,0,1)" onkeypress="return searchResults.NavChild(event,0,1)" onkeyup="return searchResults.NavChild(event,0,1)" class="SRScope" href="../structr123array2x32.html#ad6e438ec0d5a08bfb0b71a3ff96ea7e8a5ae3e9837bb88660b088443c1a6fb47a" target="_parent">r123array2x32::static_size()</a>
+    <a id="Item0_c2" onkeydown="return searchResults.NavChild(event,0,2)" onkeypress="return searchResults.NavChild(event,0,2)" onkeyup="return searchResults.NavChild(event,0,2)" class="SRScope" href="../structr123array4x32.html#a3d387fea63ac50668e75faa8ebe4594aa80d43f91cd038fece63f219b9f4a36c6" target="_parent">r123array4x32::static_size()</a>
+    <a id="Item0_c3" onkeydown="return searchResults.NavChild(event,0,3)" onkeypress="return searchResults.NavChild(event,0,3)" onkeyup="return searchResults.NavChild(event,0,3)" class="SRScope" href="../structr123array8x32.html#aae848a29e2a9b3229fc7063440885c4fa2270c17b2a56aea106facc9a22b62be6" target="_parent">r123array8x32::static_size()</a>
+    <a id="Item0_c4" onkeydown="return searchResults.NavChild(event,0,4)" onkeypress="return searchResults.NavChild(event,0,4)" onkeyup="return searchResults.NavChild(event,0,4)" class="SRScope" href="../structr123array1x64.html#ab7fb5f41ed3716bce19489deb1dd4149a0c25e6a56a2c69eb7641adb24765e6af" target="_parent">r123array1x64::static_size()</a>
+    <a id="Item0_c5" onkeydown="return searchResults.NavChild(event,0,5)" onkeypress="return searchResults.NavChild(event,0,5)" onkeyup="return searchResults.NavChild(event,0,5)" class="SRScope" href="../structr123array2x64.html#aa8ed42c5bf709f879674643a70e71dbca6219dc89b2a7ffde9b00364177f5b846" target="_parent">r123array2x64::static_size()</a>
+    <a id="Item0_c6" onkeydown="return searchResults.NavChild(event,0,6)" onkeypress="return searchResults.NavChild(event,0,6)" onkeyup="return searchResults.NavChild(event,0,6)" class="SRScope" href="../structr123array4x64.html#a904abc16c5828698aa8af5824b6a69c1aa1363fd51fd3dae2d8989711a11817ff" target="_parent">r123array4x64::static_size()</a>
+    <a id="Item0_c7" onkeydown="return searchResults.NavChild(event,0,7)" onkeypress="return searchResults.NavChild(event,0,7)" onkeyup="return searchResults.NavChild(event,0,7)" class="SRScope" href="../structr123array16x8.html#a7b2912a12e57bc62644a8ce57e2301b2af0ee079d4b47a988dcd2b8b8457f266f" target="_parent">r123array16x8::static_size()</a>
+    <a id="Item0_c8" onkeydown="return searchResults.NavChild(event,0,8)" onkeypress="return searchResults.NavChild(event,0,8)" onkeyup="return searchResults.NavChild(event,0,8)" class="SRScope" href="../structr123array1xm128i.html#a130e9722020433db562761a8e51bed2ca32ec6b84a0fa2dd836b04e0ffa69b2bc" target="_parent">r123array1xm128i::static_size()</a>
+  </div>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/enumvalues_74.html b/docs/html/search/enumvalues_74.html
new file mode 100644
index 0000000..5b31e02
--- /dev/null
+++ b/docs/html/search/enumvalues_74.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_threefry2x32_5frounds">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../group__ThreefryNxW.html#ggae1c47baba4367dd47d68025d23ae4775a5c6f9a5f3ae1c3700938a3fca5f5821b" target="_parent">threefry2x32_rounds</a>
+  <span class="SRScope">threefry.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_threefry2x64_5frounds">
+ <div class="SREntry">
+  <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../group__ThreefryNxW.html#ggae4df1e52db01acafb28d9c6c25a41071a61579c86759ab497dbfc895f2fe6ec7c" target="_parent">threefry2x64_rounds</a>
+  <span class="SRScope">threefry.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_threefry4x32_5frounds">
+ <div class="SREntry">
+  <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../group__ThreefryNxW.html#gga027cd15620ecab867c6af8bb065b189ba36063dd986ca2ccd28209c7b4bf711d7" target="_parent">threefry4x32_rounds</a>
+  <span class="SRScope">threefry.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_threefry4x64_5frounds">
+ <div class="SREntry">
+  <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="../group__ThreefryNxW.html#gga6379a4a73e85bc36235907a326945acca9cdd4629047775ebe339ac9e9dd0ad65" target="_parent">threefry4x64_rounds</a>
+  <span class="SRScope">threefry.h</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/files_61.html b/docs/html/search/files_61.html
new file mode 100644
index 0000000..c8f5bf1
--- /dev/null
+++ b/docs/html/search/files_61.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_aes_2eh">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../aes_8h.html" target="_parent">aes.h</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_array_2eh">
+ <div class="SREntry">
+  <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../array_8h.html" target="_parent">array.h</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_ars_2eh">
+ <div class="SREntry">
+  <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../ars_8h.html" target="_parent">ars.h</a>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/files_63.html b/docs/html/search/files_63.html
new file mode 100644
index 0000000..fb7da82
--- /dev/null
+++ b/docs/html/search/files_63.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_cbrng_2edox">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../cbrng_8dox.html" target="_parent">cbrng.dox</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_compilerfeatures_2eh">
+ <div class="SREntry">
+  <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../compilerfeatures_8h.html" target="_parent">compilerfeatures.h</a>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/files_65.html b/docs/html/search/files_65.html
new file mode 100644
index 0000000..9db3a06
--- /dev/null
+++ b/docs/html/search/files_65.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_engine_2ehpp">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../Engine_8hpp.html" target="_parent">Engine.hpp</a>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/files_67.html b/docs/html/search/files_67.html
new file mode 100644
index 0000000..33c2dbd
--- /dev/null
+++ b/docs/html/search/files_67.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_gsl_5fcbrng_2eh">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../gsl__cbrng_8h.html" target="_parent">gsl_cbrng.h</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_gsl_5fmicrorng_2eh">
+ <div class="SREntry">
+  <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../gsl__microrng_8h.html" target="_parent">gsl_microrng.h</a>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/files_6c.html b/docs/html/search/files_6c.html
new file mode 100644
index 0000000..68eda1b
--- /dev/null
+++ b/docs/html/search/files_6c.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_license">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../LICENSE.html" target="_parent">LICENSE</a>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/files_6d.html b/docs/html/search/files_6d.html
new file mode 100644
index 0000000..059ffc9
--- /dev/null
+++ b/docs/html/search/files_6d.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_main_2edox">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../main_8dox.html" target="_parent">main.dox</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_microurng_2ehpp">
+ <div class="SREntry">
+  <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../MicroURNG_8hpp.html" target="_parent">MicroURNG.hpp</a>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/files_70.html b/docs/html/search/files_70.html
new file mode 100644
index 0000000..d3762f2
--- /dev/null
+++ b/docs/html/search/files_70.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_philox_2eh">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../philox_8h.html" target="_parent">philox.h</a>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/files_72.html b/docs/html/search/files_72.html
new file mode 100644
index 0000000..3e07f1b
--- /dev/null
+++ b/docs/html/search/files_72.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_readme">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../README.html" target="_parent">README</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_reinterpretctr_2ehpp">
+ <div class="SREntry">
+  <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../ReinterpretCtr_8hpp.html" target="_parent">ReinterpretCtr.hpp</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_releasenotes_2edox">
+ <div class="SREntry">
+  <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../releasenotes_8dox.html" target="_parent">releasenotes.dox</a>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/files_73.html b/docs/html/search/files_73.html
new file mode 100644
index 0000000..182b818
--- /dev/null
+++ b/docs/html/search/files_73.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_sse_2eh">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../sse_8h.html" target="_parent">sse.h</a>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/files_74.html b/docs/html/search/files_74.html
new file mode 100644
index 0000000..96b3493
--- /dev/null
+++ b/docs/html/search/files_74.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_threefry_2eh">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../threefry_8h.html" target="_parent">threefry.h</a>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/functions_5f.html b/docs/html/search/functions_5f.html
new file mode 100644
index 0000000..958bceb
--- /dev/null
+++ b/docs/html/search/functions_5f.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR__5fmm_5fextract_5flo64">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../sse_8h.html#adac6aaf79c4428abcd30bf583eeb5450" target="_parent">_mm_extract_lo64</a>
+  <span class="SRScope">sse.h</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/functions_61.html b/docs/html/search/functions_61.html
new file mode 100644
index 0000000..4eabb5a
--- /dev/null
+++ b/docs/html/search/functions_61.html
@@ -0,0 +1,115 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_aesni1xm128i">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../group__AESNI.html#ga3ba5daca2d4d076ece24900084e71311" target="_parent">aesni1xm128i</a>
+  <span class="SRScope">aes.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_aesni1xm128i_5fkey_5ft">
+ <div class="SREntry">
+  <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_aesni1xm128i_5fkey_5ft')">aesni1xm128i_key_t</a>
+  <div class="SRChildren">
+    <a id="Item1_c0" onkeydown="return searchResults.NavChild(event,1,0)" onkeypress="return searchResults.NavChild(event,1,0)" onkeyup="return searchResults.NavChild(event,1,0)" class="SRScope" href="../structaesni1xm128i__key__t.html#af1002e5b771616db8f12c793fc994c41" target="_parent">aesni1xm128i_key_t::aesni1xm128i_key_t()</a>
+    <a id="Item1_c1" onkeydown="return searchResults.NavChild(event,1,1)" onkeypress="return searchResults.NavChild(event,1,1)" onkeyup="return searchResults.NavChild(event,1,1)" class="SRScope" href="../structaesni1xm128i__key__t.html#a2076072522f671a8596a831cc93dc616" target="_parent">aesni1xm128i_key_t::aesni1xm128i_key_t(const aesni1xm128i_ukey_t &uk)</a>
+    <a id="Item1_c2" onkeydown="return searchResults.NavChild(event,1,2)" onkeypress="return searchResults.NavChild(event,1,2)" onkeyup="return searchResults.NavChild(event,1,2)" class="SRScope" href="../structaesni1xm128i__key__t.html#a43d53407125d4cec0d6a14586c0357e3" target="_parent">aesni1xm128i_key_t::aesni1xm128i_key_t(const aesni4x32_ukey_t &uk)</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_aesni1xm128i_5fr">
+ <div class="SREntry">
+  <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../group__AESNI.html#ga89d9042c08ae5eef4c98bfb9609ebd34" target="_parent">aesni1xm128i_R</a>
+  <span class="SRScope">aes.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_aesni4x32_5fr">
+ <div class="SREntry">
+  <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="../group__AESNI.html#gae28b030e9786a6f36a47df8f211a750b" target="_parent">aesni4x32_R</a>
+  <span class="SRScope">aes.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_aesni4x32keyinit">
+ <div class="SREntry">
+  <a id="Item4" onkeydown="return searchResults.Nav(event,4)" onkeypress="return searchResults.Nav(event,4)" onkeyup="return searchResults.Nav(event,4)" class="SRSymbol" href="../group__AESNI.html#ga2aa21ba4a3d3850faa96e7834114d8e1" target="_parent">aesni4x32keyinit</a>
+  <span class="SRScope">aes.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_ars1xm128i_5fr">
+ <div class="SREntry">
+  <a id="Item5" onkeydown="return searchResults.Nav(event,5)" onkeypress="return searchResults.Nav(event,5)" onkeyup="return searchResults.Nav(event,5)" class="SRSymbol" href="../group__AESNI.html#gaddc6efc2007f6f66ee914eb7074cff1e" target="_parent">ars1xm128i_R</a>
+  <span class="SRScope">ars.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_ars1xm128ikeyinit">
+ <div class="SREntry">
+  <a id="Item6" onkeydown="return searchResults.Nav(event,6)" onkeypress="return searchResults.Nav(event,6)" onkeyup="return searchResults.Nav(event,6)" class="SRSymbol" href="../group__AESNI.html#gae307c205a2ad19142bbe70919abfbfc2" target="_parent">ars1xm128ikeyinit</a>
+  <span class="SRScope">ars.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_ars4x32_5fr">
+ <div class="SREntry">
+  <a id="Item7" onkeydown="return searchResults.Nav(event,7)" onkeypress="return searchResults.Nav(event,7)" onkeyup="return searchResults.Nav(event,7)" class="SRSymbol" href="../group__AESNI.html#gab13b093252d4bb3389d27d4e3b04dae8" target="_parent">ars4x32_R</a>
+  <span class="SRScope">ars.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_ars4x32keyinit">
+ <div class="SREntry">
+  <a id="Item8" onkeydown="return searchResults.Nav(event,8)" onkeypress="return searchResults.Nav(event,8)" onkeyup="return searchResults.Nav(event,8)" class="SRSymbol" href="../group__AESNI.html#ga1f3a02ea711ae6bacb0875f11a255516" target="_parent">ars4x32keyinit</a>
+  <span class="SRScope">ars.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_assemble_5ffrom_5fu32">
+ <div class="SREntry">
+  <a id="Item9" onkeydown="return searchResults.Nav(event,9)" onkeypress="return searchResults.Nav(event,9)" onkeyup="return searchResults.Nav(event,9)" class="SRSymbol" href="../sse_8h.html#a99c42d1da8da3a4a273556a7817b5c1f" target="_parent">assemble_from_u32</a>
+  <span class="SRScope">sse.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_assemble_5ffrom_5fu32_3c_20r123m128i_20_3e">
+ <div class="SREntry">
+  <a id="Item10" onkeydown="return searchResults.Nav(event,10)" onkeypress="return searchResults.Nav(event,10)" onkeyup="return searchResults.Nav(event,10)" class="SRSymbol" href="../sse_8h.html#a0cd6ca87c67023d7afda38319ab40e43" target="_parent">assemble_from_u32< r123m128i ></a>
+  <span class="SRScope">sse.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_at">
+ <div class="SREntry">
+  <a id="Item11" onkeydown="return searchResults.Nav(event,11)" onkeypress="return searchResults.Nav(event,11)" onkeyup="return searchResults.Nav(event,11)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_at')">at</a>
+  <div class="SRChildren">
+    <a id="Item11_c0" onkeydown="return searchResults.NavChild(event,11,0)" onkeypress="return searchResults.NavChild(event,11,0)" onkeyup="return searchResults.NavChild(event,11,0)" class="SRScope" href="../structr123array1x32.html#a300f163f4293879003e6831b1180350d" target="_parent">r123array1x32::at(size_type i)</a>
+    <a id="Item11_c1" onkeydown="return searchResults.NavChild(event,11,1)" onkeypress="return searchResults.NavChild(event,11,1)" onkeyup="return searchResults.NavChild(event,11,1)" class="SRScope" href="../structr123array1x32.html#a1d57048b43ee45e2a94ef372b4707783" target="_parent">r123array1x32::at(size_type i) const </a>
+    <a id="Item11_c2" onkeydown="return searchResults.NavChild(event,11,2)" onkeypress="return searchResults.NavChild(event,11,2)" onkeyup="return searchResults.NavChild(event,11,2)" class="SRScope" href="../structr123array2x32.html#aa29e0ae21be47bda2ac83e6c945b5719" target="_parent">r123array2x32::at(size_type i)</a>
+    <a id="Item11_c3" onkeydown="return searchResults.NavChild(event,11,3)" onkeypress="return searchResults.NavChild(event,11,3)" onkeyup="return searchResults.NavChild(event,11,3)" class="SRScope" href="../structr123array2x32.html#ae985b8811e4e8849d5f28dae76231dca" target="_parent">r123array2x32::at(size_type i) const </a>
+    <a id="Item11_c4" onkeydown="return searchResults.NavChild(event,11,4)" onkeypress="return searchResults.NavChild(event,11,4)" onkeyup="return searchResults.NavChild(event,11,4)" class="SRScope" href="../structr123array4x32.html#ac44f12891effca2d069a3a3a8173dd62" target="_parent">r123array4x32::at(size_type i)</a>
+    <a id="Item11_c5" onkeydown="return searchResults.NavChild(event,11,5)" onkeypress="return searchResults.NavChild(event,11,5)" onkeyup="return searchResults.NavChild(event,11,5)" class="SRScope" href="../structr123array4x32.html#abdb3253eb03291895f89885298e17169" target="_parent">r123array4x32::at(size_type i) const </a>
+    <a id="Item11_c6" onkeydown="return searchResults.NavChild(event,11,6)" onkeypress="return searchResults.NavChild(event,11,6)" onkeyup="return searchResults.NavChild(event,11,6)" class="SRScope" href="../structr123array8x32.html#aa6c0788063f7e7b717aae2d9606cf302" target="_parent">r123array8x32::at(size_type i)</a>
+    <a id="Item11_c7" onkeydown="return searchResults.NavChild(event,11,7)" onkeypress="return searchResults.NavChild(event,11,7)" onkeyup="return searchResults.NavChild(event,11,7)" class="SRScope" href="../structr123array8x32.html#a79f982be8c435215a5e812e88e500216" target="_parent">r123array8x32::at(size_type i) const </a>
+    <a id="Item11_c8" onkeydown="return searchResults.NavChild(event,11,8)" onkeypress="return searchResults.NavChild(event,11,8)" onkeyup="return searchResults.NavChild(event,11,8)" class="SRScope" href="../structr123array1x64.html#a6575299135436acf90fcb8da262d623c" target="_parent">r123array1x64::at(size_type i)</a>
+    <a id="Item11_c9" onkeydown="return searchResults.NavChild(event,11,9)" onkeypress="return searchResults.NavChild(event,11,9)" onkeyup="return searchResults.NavChild(event,11,9)" class="SRScope" href="../structr123array1x64.html#af6cf7706792eb1e44902dd94df388726" target="_parent">r123array1x64::at(size_type i) const </a>
+    <a id="Item11_c10" onkeydown="return searchResults.NavChild(event,11,10)" onkeypress="return searchResults.NavChild(event,11,10)" onkeyup="return searchResults.NavChild(event,11,10)" class="SRScope" href="../structr123array2x64.html#a46789872cf0f3a6310f864b2a35b2ea7" target="_parent">r123array2x64::at(size_type i)</a>
+    <a id="Item11_c11" onkeydown="return searchResults.NavChild(event,11,11)" onkeypress="return searchResults.NavChild(event,11,11)" onkeyup="return searchResults.NavChild(event,11,11)" class="SRScope" href="../structr123array2x64.html#a971ddfa7c395d161028e16c829179f3c" target="_parent">r123array2x64::at(size_type i) const </a>
+    <a id="Item11_c12" onkeydown="return searchResults.NavChild(event,11,12)" onkeypress="return searchResults.NavChild(event,11,12)" onkeyup="return searchResults.NavChild(event,11,12)" class="SRScope" href="../structr123array4x64.html#a5b60c8dcd20ce894109e346fdb4cbdb2" target="_parent">r123array4x64::at(size_type i)</a>
+    <a id="Item11_c13" onkeydown="return searchResults.NavChild(event,11,13)" onkeypress="return searchResults.NavChild(event,11,13)" onkeyup="return searchResults.NavChild(event,11,13)" class="SRScope" href="../structr123array4x64.html#a893d3db3d274fc15ac32bc7cbab0e82a" target="_parent">r123array4x64::at(size_type i) const </a>
+    <a id="Item11_c14" onkeydown="return searchResults.NavChild(event,11,14)" onkeypress="return searchResults.NavChild(event,11,14)" onkeyup="return searchResults.NavChild(event,11,14)" class="SRScope" href="../structr123array16x8.html#a7742edac513767b0f3ca6abe1a3eabb7" target="_parent">r123array16x8::at(size_type i)</a>
+    <a id="Item11_c15" onkeydown="return searchResults.NavChild(event,11,15)" onkeypress="return searchResults.NavChild(event,11,15)" onkeyup="return searchResults.NavChild(event,11,15)" class="SRScope" href="../structr123array16x8.html#a088dbabe23cf873de370af292052905e" target="_parent">r123array16x8::at(size_type i) const </a>
+    <a id="Item11_c16" onkeydown="return searchResults.NavChild(event,11,16)" onkeypress="return searchResults.NavChild(event,11,16)" onkeyup="return searchResults.NavChild(event,11,16)" class="SRScope" href="../structr123array1xm128i.html#a5e8a81ee3f7c3b022554c0023a686700" target="_parent">r123array1xm128i::at(size_type i)</a>
+    <a id="Item11_c17" onkeydown="return searchResults.NavChild(event,11,17)" onkeypress="return searchResults.NavChild(event,11,17)" onkeyup="return searchResults.NavChild(event,11,17)" class="SRScope" href="../structr123array1xm128i.html#a53ad470978c3105c97f502959d31ffa0" target="_parent">r123array1xm128i::at(size_type i) const </a>
+  </div>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/functions_62.html b/docs/html/search/functions_62.html
new file mode 100644
index 0000000..73241d8
--- /dev/null
+++ b/docs/html/search/functions_62.html
@@ -0,0 +1,70 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_back">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_back')">back</a>
+  <div class="SRChildren">
+    <a id="Item0_c0" onkeydown="return searchResults.NavChild(event,0,0)" onkeypress="return searchResults.NavChild(event,0,0)" onkeyup="return searchResults.NavChild(event,0,0)" class="SRScope" href="../structr123array1x32.html#a3738a65a648899db793e81b53c252785" target="_parent">r123array1x32::back()</a>
+    <a id="Item0_c1" onkeydown="return searchResults.NavChild(event,0,1)" onkeypress="return searchResults.NavChild(event,0,1)" onkeyup="return searchResults.NavChild(event,0,1)" class="SRScope" href="../structr123array1x32.html#a32b89fb1c75e3cc26ff3b5acdd40af99" target="_parent">r123array1x32::back() const </a>
+    <a id="Item0_c2" onkeydown="return searchResults.NavChild(event,0,2)" onkeypress="return searchResults.NavChild(event,0,2)" onkeyup="return searchResults.NavChild(event,0,2)" class="SRScope" href="../structr123array2x32.html#a3da7214b9946a3c8653312dcfa42a288" target="_parent">r123array2x32::back()</a>
+    <a id="Item0_c3" onkeydown="return searchResults.NavChild(event,0,3)" onkeypress="return searchResults.NavChild(event,0,3)" onkeyup="return searchResults.NavChild(event,0,3)" class="SRScope" href="../structr123array2x32.html#ae176c02299531373a0fff9a5f55226e5" target="_parent">r123array2x32::back() const </a>
+    <a id="Item0_c4" onkeydown="return searchResults.NavChild(event,0,4)" onkeypress="return searchResults.NavChild(event,0,4)" onkeyup="return searchResults.NavChild(event,0,4)" class="SRScope" href="../structr123array4x32.html#a70fd9b24cb3b126eb15c23049f786653" target="_parent">r123array4x32::back()</a>
+    <a id="Item0_c5" onkeydown="return searchResults.NavChild(event,0,5)" onkeypress="return searchResults.NavChild(event,0,5)" onkeyup="return searchResults.NavChild(event,0,5)" class="SRScope" href="../structr123array4x32.html#a4e1cba8583b2fac8cc3bf854956191c4" target="_parent">r123array4x32::back() const </a>
+    <a id="Item0_c6" onkeydown="return searchResults.NavChild(event,0,6)" onkeypress="return searchResults.NavChild(event,0,6)" onkeyup="return searchResults.NavChild(event,0,6)" class="SRScope" href="../structr123array8x32.html#a1d4176e4ad6d70c98805e0c924d2df37" target="_parent">r123array8x32::back()</a>
+    <a id="Item0_c7" onkeydown="return searchResults.NavChild(event,0,7)" onkeypress="return searchResults.NavChild(event,0,7)" onkeyup="return searchResults.NavChild(event,0,7)" class="SRScope" href="../structr123array8x32.html#a73f5b5012b1e6595f727ef88e60a53ac" target="_parent">r123array8x32::back() const </a>
+    <a id="Item0_c8" onkeydown="return searchResults.NavChild(event,0,8)" onkeypress="return searchResults.NavChild(event,0,8)" onkeyup="return searchResults.NavChild(event,0,8)" class="SRScope" href="../structr123array1x64.html#ab85790fdee269501a80fe31179efc9f8" target="_parent">r123array1x64::back()</a>
+    <a id="Item0_c9" onkeydown="return searchResults.NavChild(event,0,9)" onkeypress="return searchResults.NavChild(event,0,9)" onkeyup="return searchResults.NavChild(event,0,9)" class="SRScope" href="../structr123array1x64.html#a2cd091b3015befa2b954ddab91271e39" target="_parent">r123array1x64::back() const </a>
+    <a id="Item0_c10" onkeydown="return searchResults.NavChild(event,0,10)" onkeypress="return searchResults.NavChild(event,0,10)" onkeyup="return searchResults.NavChild(event,0,10)" class="SRScope" href="../structr123array2x64.html#a9beb3e776cb4f3cbee6846518749cb03" target="_parent">r123array2x64::back()</a>
+    <a id="Item0_c11" onkeydown="return searchResults.NavChild(event,0,11)" onkeypress="return searchResults.NavChild(event,0,11)" onkeyup="return searchResults.NavChild(event,0,11)" class="SRScope" href="../structr123array2x64.html#ac72fd3a39821ca25f94258f97da371c5" target="_parent">r123array2x64::back() const </a>
+    <a id="Item0_c12" onkeydown="return searchResults.NavChild(event,0,12)" onkeypress="return searchResults.NavChild(event,0,12)" onkeyup="return searchResults.NavChild(event,0,12)" class="SRScope" href="../structr123array4x64.html#abb40868277e8a943a0b5464985baceb5" target="_parent">r123array4x64::back()</a>
+    <a id="Item0_c13" onkeydown="return searchResults.NavChild(event,0,13)" onkeypress="return searchResults.NavChild(event,0,13)" onkeyup="return searchResults.NavChild(event,0,13)" class="SRScope" href="../structr123array4x64.html#a9006cfe7882bbc791a81a52f7cc0fd2d" target="_parent">r123array4x64::back() const </a>
+    <a id="Item0_c14" onkeydown="return searchResults.NavChild(event,0,14)" onkeypress="return searchResults.NavChild(event,0,14)" onkeyup="return searchResults.NavChild(event,0,14)" class="SRScope" href="../structr123array16x8.html#ae607d3b3d068aec88672241fc97948cb" target="_parent">r123array16x8::back()</a>
+    <a id="Item0_c15" onkeydown="return searchResults.NavChild(event,0,15)" onkeypress="return searchResults.NavChild(event,0,15)" onkeyup="return searchResults.NavChild(event,0,15)" class="SRScope" href="../structr123array16x8.html#a6e5e98c20ae0e6bf4f8a897c08b0700e" target="_parent">r123array16x8::back() const </a>
+    <a id="Item0_c16" onkeydown="return searchResults.NavChild(event,0,16)" onkeypress="return searchResults.NavChild(event,0,16)" onkeyup="return searchResults.NavChild(event,0,16)" class="SRScope" href="../structr123array1xm128i.html#a082b7b75374d69149ee03d1d228e2508" target="_parent">r123array1xm128i::back()</a>
+    <a id="Item0_c17" onkeydown="return searchResults.NavChild(event,0,17)" onkeypress="return searchResults.NavChild(event,0,17)" onkeyup="return searchResults.NavChild(event,0,17)" class="SRScope" href="../structr123array1xm128i.html#a458be25b18c6e59d5c72e2c4d4ea6354" target="_parent">r123array1xm128i::back() const </a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_begin">
+ <div class="SREntry">
+  <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_begin')">begin</a>
+  <div class="SRChildren">
+    <a id="Item1_c0" onkeydown="return searchResults.NavChild(event,1,0)" onkeypress="return searchResults.NavChild(event,1,0)" onkeyup="return searchResults.NavChild(event,1,0)" class="SRScope" href="../structr123array1x32.html#a86b7d754ff8dd69e0565edfdbd060cb4" target="_parent">r123array1x32::begin()</a>
+    <a id="Item1_c1" onkeydown="return searchResults.NavChild(event,1,1)" onkeypress="return searchResults.NavChild(event,1,1)" onkeyup="return searchResults.NavChild(event,1,1)" class="SRScope" href="../structr123array1x32.html#a19089b8de6c637803408512407a4da91" target="_parent">r123array1x32::begin() const </a>
+    <a id="Item1_c2" onkeydown="return searchResults.NavChild(event,1,2)" onkeypress="return searchResults.NavChild(event,1,2)" onkeyup="return searchResults.NavChild(event,1,2)" class="SRScope" href="../structr123array2x32.html#a96730b28149000a3ea4c6b0f05e1777b" target="_parent">r123array2x32::begin()</a>
+    <a id="Item1_c3" onkeydown="return searchResults.NavChild(event,1,3)" onkeypress="return searchResults.NavChild(event,1,3)" onkeyup="return searchResults.NavChild(event,1,3)" class="SRScope" href="../structr123array2x32.html#aa52b394a0c44b755e5c0d0409dc2c4ea" target="_parent">r123array2x32::begin() const </a>
+    <a id="Item1_c4" onkeydown="return searchResults.NavChild(event,1,4)" onkeypress="return searchResults.NavChild(event,1,4)" onkeyup="return searchResults.NavChild(event,1,4)" class="SRScope" href="../structr123array4x32.html#a96a9c7e3ece3d2b128cf7f264af6ea3c" target="_parent">r123array4x32::begin()</a>
+    <a id="Item1_c5" onkeydown="return searchResults.NavChild(event,1,5)" onkeypress="return searchResults.NavChild(event,1,5)" onkeyup="return searchResults.NavChild(event,1,5)" class="SRScope" href="../structr123array4x32.html#a830254ee0db7bf12facf67f23428d2d9" target="_parent">r123array4x32::begin() const </a>
+    <a id="Item1_c6" onkeydown="return searchResults.NavChild(event,1,6)" onkeypress="return searchResults.NavChild(event,1,6)" onkeyup="return searchResults.NavChild(event,1,6)" class="SRScope" href="../structr123array8x32.html#a7ae561c4d544e31f7bd2f256cb32f878" target="_parent">r123array8x32::begin()</a>
+    <a id="Item1_c7" onkeydown="return searchResults.NavChild(event,1,7)" onkeypress="return searchResults.NavChild(event,1,7)" onkeyup="return searchResults.NavChild(event,1,7)" class="SRScope" href="../structr123array8x32.html#ad924bdaf9facc3271ca2ae727cda23a3" target="_parent">r123array8x32::begin() const </a>
+    <a id="Item1_c8" onkeydown="return searchResults.NavChild(event,1,8)" onkeypress="return searchResults.NavChild(event,1,8)" onkeyup="return searchResults.NavChild(event,1,8)" class="SRScope" href="../structr123array1x64.html#af9150347761c6df32673bbd2411e67d0" target="_parent">r123array1x64::begin()</a>
+    <a id="Item1_c9" onkeydown="return searchResults.NavChild(event,1,9)" onkeypress="return searchResults.NavChild(event,1,9)" onkeyup="return searchResults.NavChild(event,1,9)" class="SRScope" href="../structr123array1x64.html#a0fddc6603fe2eb4547aeb57498ffe3c2" target="_parent">r123array1x64::begin() const </a>
+    <a id="Item1_c10" onkeydown="return searchResults.NavChild(event,1,10)" onkeypress="return searchResults.NavChild(event,1,10)" onkeyup="return searchResults.NavChild(event,1,10)" class="SRScope" href="../structr123array2x64.html#a0fcc60a49efd917a3b630cf53c526311" target="_parent">r123array2x64::begin()</a>
+    <a id="Item1_c11" onkeydown="return searchResults.NavChild(event,1,11)" onkeypress="return searchResults.NavChild(event,1,11)" onkeyup="return searchResults.NavChild(event,1,11)" class="SRScope" href="../structr123array2x64.html#a8cf4fadef6bdc6d438db173bc1d31165" target="_parent">r123array2x64::begin() const </a>
+    <a id="Item1_c12" onkeydown="return searchResults.NavChild(event,1,12)" onkeypress="return searchResults.NavChild(event,1,12)" onkeyup="return searchResults.NavChild(event,1,12)" class="SRScope" href="../structr123array4x64.html#ab78c67c429da6405f9d1ed5054635961" target="_parent">r123array4x64::begin()</a>
+    <a id="Item1_c13" onkeydown="return searchResults.NavChild(event,1,13)" onkeypress="return searchResults.NavChild(event,1,13)" onkeyup="return searchResults.NavChild(event,1,13)" class="SRScope" href="../structr123array4x64.html#acd133812dbe01892199683e003921b8b" target="_parent">r123array4x64::begin() const </a>
+    <a id="Item1_c14" onkeydown="return searchResults.NavChild(event,1,14)" onkeypress="return searchResults.NavChild(event,1,14)" onkeyup="return searchResults.NavChild(event,1,14)" class="SRScope" href="../structr123array16x8.html#a43182e95cb41660de5511bb5a3968cb8" target="_parent">r123array16x8::begin()</a>
+    <a id="Item1_c15" onkeydown="return searchResults.NavChild(event,1,15)" onkeypress="return searchResults.NavChild(event,1,15)" onkeyup="return searchResults.NavChild(event,1,15)" class="SRScope" href="../structr123array16x8.html#acef590bcf52e4a167c2388f4d1e0b20e" target="_parent">r123array16x8::begin() const </a>
+    <a id="Item1_c16" onkeydown="return searchResults.NavChild(event,1,16)" onkeypress="return searchResults.NavChild(event,1,16)" onkeyup="return searchResults.NavChild(event,1,16)" class="SRScope" href="../structr123array1xm128i.html#a275c9837db101efb234c36cff3e7562f" target="_parent">r123array1xm128i::begin()</a>
+    <a id="Item1_c17" onkeydown="return searchResults.NavChild(event,1,17)" onkeypress="return searchResults.NavChild(event,1,17)" onkeyup="return searchResults.NavChild(event,1,17)" class="SRScope" href="../structr123array1xm128i.html#ae9102a4387a7b2013f5098c6c7c14e74" target="_parent">r123array1xm128i::begin() const </a>
+  </div>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/functions_63.html b/docs/html/search/functions_63.html
new file mode 100644
index 0000000..8218ee6
--- /dev/null
+++ b/docs/html/search/functions_63.html
@@ -0,0 +1,90 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_cbegin">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_cbegin')">cbegin</a>
+  <div class="SRChildren">
+    <a id="Item0_c0" onkeydown="return searchResults.NavChild(event,0,0)" onkeypress="return searchResults.NavChild(event,0,0)" onkeyup="return searchResults.NavChild(event,0,0)" class="SRScope" href="../structr123array1x32.html#a4b0a02537590babd835dd16405775efe" target="_parent">r123array1x32::cbegin()</a>
+    <a id="Item0_c1" onkeydown="return searchResults.NavChild(event,0,1)" onkeypress="return searchResults.NavChild(event,0,1)" onkeyup="return searchResults.NavChild(event,0,1)" class="SRScope" href="../structr123array2x32.html#a9687a1e6cdb6b6c9a1ffd8f3c7d2ce45" target="_parent">r123array2x32::cbegin()</a>
+    <a id="Item0_c2" onkeydown="return searchResults.NavChild(event,0,2)" onkeypress="return searchResults.NavChild(event,0,2)" onkeyup="return searchResults.NavChild(event,0,2)" class="SRScope" href="../structr123array4x32.html#a4881e99f7b0ff88e2a3082b9e2464bf5" target="_parent">r123array4x32::cbegin()</a>
+    <a id="Item0_c3" onkeydown="return searchResults.NavChild(event,0,3)" onkeypress="return searchResults.NavChild(event,0,3)" onkeyup="return searchResults.NavChild(event,0,3)" class="SRScope" href="../structr123array8x32.html#a06c19ba6155e9c98892f5b98fb482c21" target="_parent">r123array8x32::cbegin()</a>
+    <a id="Item0_c4" onkeydown="return searchResults.NavChild(event,0,4)" onkeypress="return searchResults.NavChild(event,0,4)" onkeyup="return searchResults.NavChild(event,0,4)" class="SRScope" href="../structr123array1x64.html#a33d1c19a63dec48f63f7c30c758fca0c" target="_parent">r123array1x64::cbegin()</a>
+    <a id="Item0_c5" onkeydown="return searchResults.NavChild(event,0,5)" onkeypress="return searchResults.NavChild(event,0,5)" onkeyup="return searchResults.NavChild(event,0,5)" class="SRScope" href="../structr123array2x64.html#ad1ccbda4186dbb8c0a673db1ec0957c0" target="_parent">r123array2x64::cbegin()</a>
+    <a id="Item0_c6" onkeydown="return searchResults.NavChild(event,0,6)" onkeypress="return searchResults.NavChild(event,0,6)" onkeyup="return searchResults.NavChild(event,0,6)" class="SRScope" href="../structr123array4x64.html#af716d2b14d1243870e8544ea2a3cece6" target="_parent">r123array4x64::cbegin()</a>
+    <a id="Item0_c7" onkeydown="return searchResults.NavChild(event,0,7)" onkeypress="return searchResults.NavChild(event,0,7)" onkeyup="return searchResults.NavChild(event,0,7)" class="SRScope" href="../structr123array16x8.html#a80520b3d7040a8d6ec7068c8a143ba6f" target="_parent">r123array16x8::cbegin()</a>
+    <a id="Item0_c8" onkeydown="return searchResults.NavChild(event,0,8)" onkeypress="return searchResults.NavChild(event,0,8)" onkeyup="return searchResults.NavChild(event,0,8)" class="SRScope" href="../structr123array1xm128i.html#a335bab18a8bc904e34de0b3d9d1ce596" target="_parent">r123array1xm128i::cbegin()</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_cend">
+ <div class="SREntry">
+  <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_cend')">cend</a>
+  <div class="SRChildren">
+    <a id="Item1_c0" onkeydown="return searchResults.NavChild(event,1,0)" onkeypress="return searchResults.NavChild(event,1,0)" onkeyup="return searchResults.NavChild(event,1,0)" class="SRScope" href="../structr123array1x32.html#aa0f83d3e29c452d23c3660c98e3bd0e9" target="_parent">r123array1x32::cend()</a>
+    <a id="Item1_c1" onkeydown="return searchResults.NavChild(event,1,1)" onkeypress="return searchResults.NavChild(event,1,1)" onkeyup="return searchResults.NavChild(event,1,1)" class="SRScope" href="../structr123array2x32.html#a9bb4382830c6feb49573b82bb9a18efc" target="_parent">r123array2x32::cend()</a>
+    <a id="Item1_c2" onkeydown="return searchResults.NavChild(event,1,2)" onkeypress="return searchResults.NavChild(event,1,2)" onkeyup="return searchResults.NavChild(event,1,2)" class="SRScope" href="../structr123array4x32.html#a0045f9134801ed79d31f65c7d224d72c" target="_parent">r123array4x32::cend()</a>
+    <a id="Item1_c3" onkeydown="return searchResults.NavChild(event,1,3)" onkeypress="return searchResults.NavChild(event,1,3)" onkeyup="return searchResults.NavChild(event,1,3)" class="SRScope" href="../structr123array8x32.html#a0e1dfc305279a3439789dbdda8bfb6ae" target="_parent">r123array8x32::cend()</a>
+    <a id="Item1_c4" onkeydown="return searchResults.NavChild(event,1,4)" onkeypress="return searchResults.NavChild(event,1,4)" onkeyup="return searchResults.NavChild(event,1,4)" class="SRScope" href="../structr123array1x64.html#aa959a7054efa0d53f83f2d712d8d9049" target="_parent">r123array1x64::cend()</a>
+    <a id="Item1_c5" onkeydown="return searchResults.NavChild(event,1,5)" onkeypress="return searchResults.NavChild(event,1,5)" onkeyup="return searchResults.NavChild(event,1,5)" class="SRScope" href="../structr123array2x64.html#ac80c7ce6fe5bd9ca8baf03db1e67a7e9" target="_parent">r123array2x64::cend()</a>
+    <a id="Item1_c6" onkeydown="return searchResults.NavChild(event,1,6)" onkeypress="return searchResults.NavChild(event,1,6)" onkeyup="return searchResults.NavChild(event,1,6)" class="SRScope" href="../structr123array4x64.html#af970ab87ce987c91097316bc0a0836ef" target="_parent">r123array4x64::cend()</a>
+    <a id="Item1_c7" onkeydown="return searchResults.NavChild(event,1,7)" onkeypress="return searchResults.NavChild(event,1,7)" onkeyup="return searchResults.NavChild(event,1,7)" class="SRScope" href="../structr123array16x8.html#ad7919a7f772fda7d3fe3b476ac1e058f" target="_parent">r123array16x8::cend()</a>
+    <a id="Item1_c8" onkeydown="return searchResults.NavChild(event,1,8)" onkeypress="return searchResults.NavChild(event,1,8)" onkeyup="return searchResults.NavChild(event,1,8)" class="SRScope" href="../structr123array1xm128i.html#aa05003cae74984b777610702d27d66d2" target="_parent">r123array1xm128i::cend()</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_counter">
+ <div class="SREntry">
+  <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../classr123_1_1MicroURNG.html#a30f52334b7cfcbe6d86870496ca57ea6" target="_parent">counter</a>
+  <span class="SRScope">r123::MicroURNG</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_crbegin">
+ <div class="SREntry">
+  <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_crbegin')">crbegin</a>
+  <div class="SRChildren">
+    <a id="Item3_c0" onkeydown="return searchResults.NavChild(event,3,0)" onkeypress="return searchResults.NavChild(event,3,0)" onkeyup="return searchResults.NavChild(event,3,0)" class="SRScope" href="../structr123array1x32.html#abe59890575233ef259a69d38bea4b5d9" target="_parent">r123array1x32::crbegin()</a>
+    <a id="Item3_c1" onkeydown="return searchResults.NavChild(event,3,1)" onkeypress="return searchResults.NavChild(event,3,1)" onkeyup="return searchResults.NavChild(event,3,1)" class="SRScope" href="../structr123array2x32.html#a09b34692bd41a710bf75e19af2353afb" target="_parent">r123array2x32::crbegin()</a>
+    <a id="Item3_c2" onkeydown="return searchResults.NavChild(event,3,2)" onkeypress="return searchResults.NavChild(event,3,2)" onkeyup="return searchResults.NavChild(event,3,2)" class="SRScope" href="../structr123array4x32.html#ad65e3e63740dc2301442718b3b8aa440" target="_parent">r123array4x32::crbegin()</a>
+    <a id="Item3_c3" onkeydown="return searchResults.NavChild(event,3,3)" onkeypress="return searchResults.NavChild(event,3,3)" onkeyup="return searchResults.NavChild(event,3,3)" class="SRScope" href="../structr123array8x32.html#a4ad5f793478a9658c52dc085b6c504ae" target="_parent">r123array8x32::crbegin()</a>
+    <a id="Item3_c4" onkeydown="return searchResults.NavChild(event,3,4)" onkeypress="return searchResults.NavChild(event,3,4)" onkeyup="return searchResults.NavChild(event,3,4)" class="SRScope" href="../structr123array1x64.html#adac6c38fef501a997b39229f54a6459c" target="_parent">r123array1x64::crbegin()</a>
+    <a id="Item3_c5" onkeydown="return searchResults.NavChild(event,3,5)" onkeypress="return searchResults.NavChild(event,3,5)" onkeyup="return searchResults.NavChild(event,3,5)" class="SRScope" href="../structr123array2x64.html#a198ff47db0778d88db4fabe5f7721564" target="_parent">r123array2x64::crbegin()</a>
+    <a id="Item3_c6" onkeydown="return searchResults.NavChild(event,3,6)" onkeypress="return searchResults.NavChild(event,3,6)" onkeyup="return searchResults.NavChild(event,3,6)" class="SRScope" href="../structr123array4x64.html#a7712a006a2b567321a6ac9e84bb267d8" target="_parent">r123array4x64::crbegin()</a>
+    <a id="Item3_c7" onkeydown="return searchResults.NavChild(event,3,7)" onkeypress="return searchResults.NavChild(event,3,7)" onkeyup="return searchResults.NavChild(event,3,7)" class="SRScope" href="../structr123array16x8.html#a2ecc3c23f3ae3939a386b334f0556d73" target="_parent">r123array16x8::crbegin()</a>
+    <a id="Item3_c8" onkeydown="return searchResults.NavChild(event,3,8)" onkeypress="return searchResults.NavChild(event,3,8)" onkeyup="return searchResults.NavChild(event,3,8)" class="SRScope" href="../structr123array1xm128i.html#a673c6cd3131269febe9a985dc76a2e08" target="_parent">r123array1xm128i::crbegin()</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_crend">
+ <div class="SREntry">
+  <a id="Item4" onkeydown="return searchResults.Nav(event,4)" onkeypress="return searchResults.Nav(event,4)" onkeyup="return searchResults.Nav(event,4)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_crend')">crend</a>
+  <div class="SRChildren">
+    <a id="Item4_c0" onkeydown="return searchResults.NavChild(event,4,0)" onkeypress="return searchResults.NavChild(event,4,0)" onkeyup="return searchResults.NavChild(event,4,0)" class="SRScope" href="../structr123array1x32.html#a7f0211b995c536c540c6b175d9433c74" target="_parent">r123array1x32::crend()</a>
+    <a id="Item4_c1" onkeydown="return searchResults.NavChild(event,4,1)" onkeypress="return searchResults.NavChild(event,4,1)" onkeyup="return searchResults.NavChild(event,4,1)" class="SRScope" href="../structr123array2x32.html#a458da2536084746b5f3face73c9f962d" target="_parent">r123array2x32::crend()</a>
+    <a id="Item4_c2" onkeydown="return searchResults.NavChild(event,4,2)" onkeypress="return searchResults.NavChild(event,4,2)" onkeyup="return searchResults.NavChild(event,4,2)" class="SRScope" href="../structr123array4x32.html#a13322be3844d39f9de76d263fa8d1f75" target="_parent">r123array4x32::crend()</a>
+    <a id="Item4_c3" onkeydown="return searchResults.NavChild(event,4,3)" onkeypress="return searchResults.NavChild(event,4,3)" onkeyup="return searchResults.NavChild(event,4,3)" class="SRScope" href="../structr123array8x32.html#ace0b6344aa8f0b9812a2610b6949a6b7" target="_parent">r123array8x32::crend()</a>
+    <a id="Item4_c4" onkeydown="return searchResults.NavChild(event,4,4)" onkeypress="return searchResults.NavChild(event,4,4)" onkeyup="return searchResults.NavChild(event,4,4)" class="SRScope" href="../structr123array1x64.html#a250e375c11846dc2635c7690f283cc20" target="_parent">r123array1x64::crend()</a>
+    <a id="Item4_c5" onkeydown="return searchResults.NavChild(event,4,5)" onkeypress="return searchResults.NavChild(event,4,5)" onkeyup="return searchResults.NavChild(event,4,5)" class="SRScope" href="../structr123array2x64.html#a5bddb882c7c9a493c382d3ce0d6d6079" target="_parent">r123array2x64::crend()</a>
+    <a id="Item4_c6" onkeydown="return searchResults.NavChild(event,4,6)" onkeypress="return searchResults.NavChild(event,4,6)" onkeyup="return searchResults.NavChild(event,4,6)" class="SRScope" href="../structr123array4x64.html#a907eb18b7392479a8ad6b2ddfaaecbd2" target="_parent">r123array4x64::crend()</a>
+    <a id="Item4_c7" onkeydown="return searchResults.NavChild(event,4,7)" onkeypress="return searchResults.NavChild(event,4,7)" onkeyup="return searchResults.NavChild(event,4,7)" class="SRScope" href="../structr123array16x8.html#a2a98e77e851e130a98d44a14ce673ffd" target="_parent">r123array16x8::crend()</a>
+    <a id="Item4_c8" onkeydown="return searchResults.NavChild(event,4,8)" onkeypress="return searchResults.NavChild(event,4,8)" onkeyup="return searchResults.NavChild(event,4,8)" class="SRScope" href="../structr123array1xm128i.html#aad72d00c81c8f6b9e8fb6b6be98056c6" target="_parent">r123array1xm128i::crend()</a>
+  </div>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/functions_64.html b/docs/html/search/functions_64.html
new file mode 100644
index 0000000..9babe63
--- /dev/null
+++ b/docs/html/search/functions_64.html
@@ -0,0 +1,51 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_data">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_data')">data</a>
+  <div class="SRChildren">
+    <a id="Item0_c0" onkeydown="return searchResults.NavChild(event,0,0)" onkeypress="return searchResults.NavChild(event,0,0)" onkeyup="return searchResults.NavChild(event,0,0)" class="SRScope" href="../structr123array1x32.html#a71529eccd6d52d7c396d58fd71214d0b" target="_parent">r123array1x32::data()</a>
+    <a id="Item0_c1" onkeydown="return searchResults.NavChild(event,0,1)" onkeypress="return searchResults.NavChild(event,0,1)" onkeyup="return searchResults.NavChild(event,0,1)" class="SRScope" href="../structr123array1x32.html#a8ca295876693f207df52a7cce6f96241" target="_parent">r123array1x32::data() const </a>
+    <a id="Item0_c2" onkeydown="return searchResults.NavChild(event,0,2)" onkeypress="return searchResults.NavChild(event,0,2)" onkeyup="return searchResults.NavChild(event,0,2)" class="SRScope" href="../structr123array2x32.html#a76f2b3cd04d0502121b3c7894663e178" target="_parent">r123array2x32::data()</a>
+    <a id="Item0_c3" onkeydown="return searchResults.NavChild(event,0,3)" onkeypress="return searchResults.NavChild(event,0,3)" onkeyup="return searchResults.NavChild(event,0,3)" class="SRScope" href="../structr123array2x32.html#a15d5bce0ea3596ad5f7b5aa7432a33df" target="_parent">r123array2x32::data() const </a>
+    <a id="Item0_c4" onkeydown="return searchResults.NavChild(event,0,4)" onkeypress="return searchResults.NavChild(event,0,4)" onkeyup="return searchResults.NavChild(event,0,4)" class="SRScope" href="../structr123array4x32.html#a72ee678cce1fa539f44480eb269a01f9" target="_parent">r123array4x32::data()</a>
+    <a id="Item0_c5" onkeydown="return searchResults.NavChild(event,0,5)" onkeypress="return searchResults.NavChild(event,0,5)" onkeyup="return searchResults.NavChild(event,0,5)" class="SRScope" href="../structr123array4x32.html#a20dd9fc18f9db8fe8e8eb08311398d22" target="_parent">r123array4x32::data() const </a>
+    <a id="Item0_c6" onkeydown="return searchResults.NavChild(event,0,6)" onkeypress="return searchResults.NavChild(event,0,6)" onkeyup="return searchResults.NavChild(event,0,6)" class="SRScope" href="../structr123array8x32.html#a78448bbbef69b3383eec4d78a814b4b2" target="_parent">r123array8x32::data()</a>
+    <a id="Item0_c7" onkeydown="return searchResults.NavChild(event,0,7)" onkeypress="return searchResults.NavChild(event,0,7)" onkeyup="return searchResults.NavChild(event,0,7)" class="SRScope" href="../structr123array8x32.html#a0e2eb8cfaf36664411f19a6828339553" target="_parent">r123array8x32::data() const </a>
+    <a id="Item0_c8" onkeydown="return searchResults.NavChild(event,0,8)" onkeypress="return searchResults.NavChild(event,0,8)" onkeyup="return searchResults.NavChild(event,0,8)" class="SRScope" href="../structr123array1x64.html#a2ecd5718a0fd863dd7a3eb724e07a540" target="_parent">r123array1x64::data()</a>
+    <a id="Item0_c9" onkeydown="return searchResults.NavChild(event,0,9)" onkeypress="return searchResults.NavChild(event,0,9)" onkeyup="return searchResults.NavChild(event,0,9)" class="SRScope" href="../structr123array1x64.html#a02cd843e927803bd09f00b1a5541c72c" target="_parent">r123array1x64::data() const </a>
+    <a id="Item0_c10" onkeydown="return searchResults.NavChild(event,0,10)" onkeypress="return searchResults.NavChild(event,0,10)" onkeyup="return searchResults.NavChild(event,0,10)" class="SRScope" href="../structr123array2x64.html#a9a6eb23f15f9ee3a55f39b951798a739" target="_parent">r123array2x64::data()</a>
+    <a id="Item0_c11" onkeydown="return searchResults.NavChild(event,0,11)" onkeypress="return searchResults.NavChild(event,0,11)" onkeyup="return searchResults.NavChild(event,0,11)" class="SRScope" href="../structr123array2x64.html#a9cdb592780378bdcc8a560e31e11f084" target="_parent">r123array2x64::data() const </a>
+    <a id="Item0_c12" onkeydown="return searchResults.NavChild(event,0,12)" onkeypress="return searchResults.NavChild(event,0,12)" onkeyup="return searchResults.NavChild(event,0,12)" class="SRScope" href="../structr123array4x64.html#a8567c3d6c4ee6c9cc2d8770d26e7fee9" target="_parent">r123array4x64::data()</a>
+    <a id="Item0_c13" onkeydown="return searchResults.NavChild(event,0,13)" onkeypress="return searchResults.NavChild(event,0,13)" onkeyup="return searchResults.NavChild(event,0,13)" class="SRScope" href="../structr123array4x64.html#a31591d0bca18339d42c3a182a30457a0" target="_parent">r123array4x64::data() const </a>
+    <a id="Item0_c14" onkeydown="return searchResults.NavChild(event,0,14)" onkeypress="return searchResults.NavChild(event,0,14)" onkeyup="return searchResults.NavChild(event,0,14)" class="SRScope" href="../structr123array16x8.html#aac0eda610fbd60cdaae5d1e2aa4eb03f" target="_parent">r123array16x8::data()</a>
+    <a id="Item0_c15" onkeydown="return searchResults.NavChild(event,0,15)" onkeypress="return searchResults.NavChild(event,0,15)" onkeyup="return searchResults.NavChild(event,0,15)" class="SRScope" href="../structr123array16x8.html#aced4f7455fcc853a4e947b9bf892c45e" target="_parent">r123array16x8::data() const </a>
+    <a id="Item0_c16" onkeydown="return searchResults.NavChild(event,0,16)" onkeypress="return searchResults.NavChild(event,0,16)" onkeyup="return searchResults.NavChild(event,0,16)" class="SRScope" href="../structr123array1xm128i.html#acb25bc645e95f975ca6cbcb692add4b4" target="_parent">r123array1xm128i::data()</a>
+    <a id="Item0_c17" onkeydown="return searchResults.NavChild(event,0,17)" onkeypress="return searchResults.NavChild(event,0,17)" onkeyup="return searchResults.NavChild(event,0,17)" class="SRScope" href="../structr123array1xm128i.html#ac66f2efebe9e32433b25f96ea3cf34fe" target="_parent">r123array1xm128i::data() const </a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_discard">
+ <div class="SREntry">
+  <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../structr123_1_1Engine.html#a82a56c2c02b146dceb68ef3fd0a969fb" target="_parent">discard</a>
+  <span class="SRScope">r123::Engine</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/functions_65.html b/docs/html/search/functions_65.html
new file mode 100644
index 0000000..51ddaac
--- /dev/null
+++ b/docs/html/search/functions_65.html
@@ -0,0 +1,75 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_empty">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_empty')">empty</a>
+  <div class="SRChildren">
+    <a id="Item0_c0" onkeydown="return searchResults.NavChild(event,0,0)" onkeypress="return searchResults.NavChild(event,0,0)" onkeyup="return searchResults.NavChild(event,0,0)" class="SRScope" href="../structr123array1x32.html#ae791cf5ce80a35610c3b4d52ea533651" target="_parent">r123array1x32::empty()</a>
+    <a id="Item0_c1" onkeydown="return searchResults.NavChild(event,0,1)" onkeypress="return searchResults.NavChild(event,0,1)" onkeyup="return searchResults.NavChild(event,0,1)" class="SRScope" href="../structr123array2x32.html#acc67c9fedcddd77fdb2727c088eaab9d" target="_parent">r123array2x32::empty()</a>
+    <a id="Item0_c2" onkeydown="return searchResults.NavChild(event,0,2)" onkeypress="return searchResults.NavChild(event,0,2)" onkeyup="return searchResults.NavChild(event,0,2)" class="SRScope" href="../structr123array4x32.html#a4bc944eee354be2b258c0991d3cc61e1" target="_parent">r123array4x32::empty()</a>
+    <a id="Item0_c3" onkeydown="return searchResults.NavChild(event,0,3)" onkeypress="return searchResults.NavChild(event,0,3)" onkeyup="return searchResults.NavChild(event,0,3)" class="SRScope" href="../structr123array8x32.html#af2276e84924345efab98214be1691c83" target="_parent">r123array8x32::empty()</a>
+    <a id="Item0_c4" onkeydown="return searchResults.NavChild(event,0,4)" onkeypress="return searchResults.NavChild(event,0,4)" onkeyup="return searchResults.NavChild(event,0,4)" class="SRScope" href="../structr123array1x64.html#af8636ea61389dcf15e94a5da70bd6bc0" target="_parent">r123array1x64::empty()</a>
+    <a id="Item0_c5" onkeydown="return searchResults.NavChild(event,0,5)" onkeypress="return searchResults.NavChild(event,0,5)" onkeyup="return searchResults.NavChild(event,0,5)" class="SRScope" href="../structr123array2x64.html#a60ed2f5af6357930b50a8de8f294f5c2" target="_parent">r123array2x64::empty()</a>
+    <a id="Item0_c6" onkeydown="return searchResults.NavChild(event,0,6)" onkeypress="return searchResults.NavChild(event,0,6)" onkeyup="return searchResults.NavChild(event,0,6)" class="SRScope" href="../structr123array4x64.html#a51e4ded187a3f1ebadd6b915da039c3f" target="_parent">r123array4x64::empty()</a>
+    <a id="Item0_c7" onkeydown="return searchResults.NavChild(event,0,7)" onkeypress="return searchResults.NavChild(event,0,7)" onkeyup="return searchResults.NavChild(event,0,7)" class="SRScope" href="../structr123array16x8.html#a5f07441771ec90cd05a2c26fb64e575e" target="_parent">r123array16x8::empty()</a>
+    <a id="Item0_c8" onkeydown="return searchResults.NavChild(event,0,8)" onkeypress="return searchResults.NavChild(event,0,8)" onkeyup="return searchResults.NavChild(event,0,8)" class="SRScope" href="../structr123array1xm128i.html#aa3e59f1626f2cadab5bc66e415ff0c72" target="_parent">r123array1xm128i::empty()</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_end">
+ <div class="SREntry">
+  <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_end')">end</a>
+  <div class="SRChildren">
+    <a id="Item1_c0" onkeydown="return searchResults.NavChild(event,1,0)" onkeypress="return searchResults.NavChild(event,1,0)" onkeyup="return searchResults.NavChild(event,1,0)" class="SRScope" href="../structr123array1x32.html#ac2b5032395c448c4598321f5a37ec29c" target="_parent">r123array1x32::end()</a>
+    <a id="Item1_c1" onkeydown="return searchResults.NavChild(event,1,1)" onkeypress="return searchResults.NavChild(event,1,1)" onkeyup="return searchResults.NavChild(event,1,1)" class="SRScope" href="../structr123array1x32.html#a5bda32a4f4e8e783744ed7f183dde0b2" target="_parent">r123array1x32::end() const </a>
+    <a id="Item1_c2" onkeydown="return searchResults.NavChild(event,1,2)" onkeypress="return searchResults.NavChild(event,1,2)" onkeyup="return searchResults.NavChild(event,1,2)" class="SRScope" href="../structr123array2x32.html#a0d98e92b198e8a314d46f9c6fd0771a7" target="_parent">r123array2x32::end()</a>
+    <a id="Item1_c3" onkeydown="return searchResults.NavChild(event,1,3)" onkeypress="return searchResults.NavChild(event,1,3)" onkeyup="return searchResults.NavChild(event,1,3)" class="SRScope" href="../structr123array2x32.html#ad64dc05d5114c74d104bca45f21992fd" target="_parent">r123array2x32::end() const </a>
+    <a id="Item1_c4" onkeydown="return searchResults.NavChild(event,1,4)" onkeypress="return searchResults.NavChild(event,1,4)" onkeyup="return searchResults.NavChild(event,1,4)" class="SRScope" href="../structr123array4x32.html#a83dd3d17e17bb6a93b7cd544b0e9a403" target="_parent">r123array4x32::end()</a>
+    <a id="Item1_c5" onkeydown="return searchResults.NavChild(event,1,5)" onkeypress="return searchResults.NavChild(event,1,5)" onkeyup="return searchResults.NavChild(event,1,5)" class="SRScope" href="../structr123array4x32.html#ac6e732c58b1a5ad954c3b6f2be8385a1" target="_parent">r123array4x32::end() const </a>
+    <a id="Item1_c6" onkeydown="return searchResults.NavChild(event,1,6)" onkeypress="return searchResults.NavChild(event,1,6)" onkeyup="return searchResults.NavChild(event,1,6)" class="SRScope" href="../structr123array8x32.html#a40c40a7a86150ec0e9d29739e0e649c3" target="_parent">r123array8x32::end()</a>
+    <a id="Item1_c7" onkeydown="return searchResults.NavChild(event,1,7)" onkeypress="return searchResults.NavChild(event,1,7)" onkeyup="return searchResults.NavChild(event,1,7)" class="SRScope" href="../structr123array8x32.html#acc1aa99ed89deb63c3ba7f71319ac10c" target="_parent">r123array8x32::end() const </a>
+    <a id="Item1_c8" onkeydown="return searchResults.NavChild(event,1,8)" onkeypress="return searchResults.NavChild(event,1,8)" onkeyup="return searchResults.NavChild(event,1,8)" class="SRScope" href="../structr123array1x64.html#a18a5fa64dbe73dc4f9fd0b6c45fe283f" target="_parent">r123array1x64::end()</a>
+    <a id="Item1_c9" onkeydown="return searchResults.NavChild(event,1,9)" onkeypress="return searchResults.NavChild(event,1,9)" onkeyup="return searchResults.NavChild(event,1,9)" class="SRScope" href="../structr123array1x64.html#a595e77ff43ac41c4937e91f6d109a46a" target="_parent">r123array1x64::end() const </a>
+    <a id="Item1_c10" onkeydown="return searchResults.NavChild(event,1,10)" onkeypress="return searchResults.NavChild(event,1,10)" onkeyup="return searchResults.NavChild(event,1,10)" class="SRScope" href="../structr123array2x64.html#a24679f6a101d9d25b339106a771c4e68" target="_parent">r123array2x64::end()</a>
+    <a id="Item1_c11" onkeydown="return searchResults.NavChild(event,1,11)" onkeypress="return searchResults.NavChild(event,1,11)" onkeyup="return searchResults.NavChild(event,1,11)" class="SRScope" href="../structr123array2x64.html#af16f99514770cb88a57e36b1b849e80d" target="_parent">r123array2x64::end() const </a>
+    <a id="Item1_c12" onkeydown="return searchResults.NavChild(event,1,12)" onkeypress="return searchResults.NavChild(event,1,12)" onkeyup="return searchResults.NavChild(event,1,12)" class="SRScope" href="../structr123array4x64.html#a298a04608a19dd91cb30bd7980ad796f" target="_parent">r123array4x64::end()</a>
+    <a id="Item1_c13" onkeydown="return searchResults.NavChild(event,1,13)" onkeypress="return searchResults.NavChild(event,1,13)" onkeyup="return searchResults.NavChild(event,1,13)" class="SRScope" href="../structr123array4x64.html#a9fed923c39000c81f7f6b608d88953f9" target="_parent">r123array4x64::end() const </a>
+    <a id="Item1_c14" onkeydown="return searchResults.NavChild(event,1,14)" onkeypress="return searchResults.NavChild(event,1,14)" onkeyup="return searchResults.NavChild(event,1,14)" class="SRScope" href="../structr123array16x8.html#aa0d2b0c70133dde0535b0a5e12283626" target="_parent">r123array16x8::end()</a>
+    <a id="Item1_c15" onkeydown="return searchResults.NavChild(event,1,15)" onkeypress="return searchResults.NavChild(event,1,15)" onkeyup="return searchResults.NavChild(event,1,15)" class="SRScope" href="../structr123array16x8.html#aee42dddf2a59858114a31d760f2c1227" target="_parent">r123array16x8::end() const </a>
+    <a id="Item1_c16" onkeydown="return searchResults.NavChild(event,1,16)" onkeypress="return searchResults.NavChild(event,1,16)" onkeyup="return searchResults.NavChild(event,1,16)" class="SRScope" href="../structr123array1xm128i.html#a7383241079a4eae9fee0e184261174fd" target="_parent">r123array1xm128i::end()</a>
+    <a id="Item1_c17" onkeydown="return searchResults.NavChild(event,1,17)" onkeypress="return searchResults.NavChild(event,1,17)" onkeyup="return searchResults.NavChild(event,1,17)" class="SRScope" href="../structr123array1xm128i.html#ae8ddb01064f8cdfbb7314d2f1fbd0dfd" target="_parent">r123array1xm128i::end() const </a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_engine">
+ <div class="SREntry">
+  <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_engine')">Engine</a>
+  <div class="SRChildren">
+    <a id="Item2_c0" onkeydown="return searchResults.NavChild(event,2,0)" onkeypress="return searchResults.NavChild(event,2,0)" onkeyup="return searchResults.NavChild(event,2,0)" class="SRScope" href="../structr123_1_1Engine.html#ac5676bbe189b0cdc1bef0dd812262ccd" target="_parent">r123::Engine::Engine()</a>
+    <a id="Item2_c1" onkeydown="return searchResults.NavChild(event,2,1)" onkeypress="return searchResults.NavChild(event,2,1)" onkeyup="return searchResults.NavChild(event,2,1)" class="SRScope" href="../structr123_1_1Engine.html#ae1a249af828cfdac77db6c16e3f8f8eb" target="_parent">r123::Engine::Engine(result_type r)</a>
+    <a id="Item2_c2" onkeydown="return searchResults.NavChild(event,2,2)" onkeypress="return searchResults.NavChild(event,2,2)" onkeyup="return searchResults.NavChild(event,2,2)" class="SRScope" href="../structr123_1_1Engine.html#a37dd55cee849b59d678f74780f785672" target="_parent">r123::Engine::Engine(Engine &e)</a>
+    <a id="Item2_c3" onkeydown="return searchResults.NavChild(event,2,3)" onkeypress="return searchResults.NavChild(event,2,3)" onkeyup="return searchResults.NavChild(event,2,3)" class="SRScope" href="../structr123_1_1Engine.html#a478b486b166316597a51ffdd7b5b2d0c" target="_parent">r123::Engine::Engine(const Engine &e)</a>
+    <a id="Item2_c4" onkeydown="return searchResults.NavChild(event,2,4)" onkeypress="return searchResults.NavChild(event,2,4)" onkeyup="return searchResults.NavChild(event,2,4)" class="SRScope" href="../structr123_1_1Engine.html#a52b968cfefe413441d668b3013de023a" target="_parent">r123::Engine::Engine(SeedSeq &s)</a>
+    <a id="Item2_c5" onkeydown="return searchResults.NavChild(event,2,5)" onkeypress="return searchResults.NavChild(event,2,5)" onkeyup="return searchResults.NavChild(event,2,5)" class="SRScope" href="../structr123_1_1Engine.html#ab5f45b4eb97995cc45350abee3ec8388" target="_parent">r123::Engine::Engine(const ukey_type &uk)</a>
+    <a id="Item2_c6" onkeydown="return searchResults.NavChild(event,2,6)" onkeypress="return searchResults.NavChild(event,2,6)" onkeyup="return searchResults.NavChild(event,2,6)" class="SRScope" href="../structr123_1_1Engine.html#aeb178b9305cbf1fb7e11e8e33a631ba7" target="_parent">r123::Engine::Engine(ukey_type &uk)</a>
+  </div>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/functions_66.html b/docs/html/search/functions_66.html
new file mode 100644
index 0000000..a27f2ff
--- /dev/null
+++ b/docs/html/search/functions_66.html
@@ -0,0 +1,67 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_fill">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_fill')">fill</a>
+  <div class="SRChildren">
+    <a id="Item0_c0" onkeydown="return searchResults.NavChild(event,0,0)" onkeypress="return searchResults.NavChild(event,0,0)" onkeyup="return searchResults.NavChild(event,0,0)" class="SRScope" href="../structr123array1x32.html#a973dbecc59b1d5f5a95bda92d25e5e73" target="_parent">r123array1x32::fill()</a>
+    <a id="Item0_c1" onkeydown="return searchResults.NavChild(event,0,1)" onkeypress="return searchResults.NavChild(event,0,1)" onkeyup="return searchResults.NavChild(event,0,1)" class="SRScope" href="../structr123array2x32.html#af7ea9ed8a064e9cab59ee97885bb459e" target="_parent">r123array2x32::fill()</a>
+    <a id="Item0_c2" onkeydown="return searchResults.NavChild(event,0,2)" onkeypress="return searchResults.NavChild(event,0,2)" onkeyup="return searchResults.NavChild(event,0,2)" class="SRScope" href="../structr123array4x32.html#ae362d7908c2ecc308f6fd4e085ace980" target="_parent">r123array4x32::fill()</a>
+    <a id="Item0_c3" onkeydown="return searchResults.NavChild(event,0,3)" onkeypress="return searchResults.NavChild(event,0,3)" onkeyup="return searchResults.NavChild(event,0,3)" class="SRScope" href="../structr123array8x32.html#a86481aecfb276687e9389cb6c43e1e8c" target="_parent">r123array8x32::fill()</a>
+    <a id="Item0_c4" onkeydown="return searchResults.NavChild(event,0,4)" onkeypress="return searchResults.NavChild(event,0,4)" onkeyup="return searchResults.NavChild(event,0,4)" class="SRScope" href="../structr123array1x64.html#ac9a372e0980632a4db29bb243b672039" target="_parent">r123array1x64::fill()</a>
+    <a id="Item0_c5" onkeydown="return searchResults.NavChild(event,0,5)" onkeypress="return searchResults.NavChild(event,0,5)" onkeyup="return searchResults.NavChild(event,0,5)" class="SRScope" href="../structr123array2x64.html#a30d20bbf203dbd0b592c6cb58cb6dcdb" target="_parent">r123array2x64::fill()</a>
+    <a id="Item0_c6" onkeydown="return searchResults.NavChild(event,0,6)" onkeypress="return searchResults.NavChild(event,0,6)" onkeyup="return searchResults.NavChild(event,0,6)" class="SRScope" href="../structr123array4x64.html#a6580c77b7d68c0a76b5bef33e59ac662" target="_parent">r123array4x64::fill()</a>
+    <a id="Item0_c7" onkeydown="return searchResults.NavChild(event,0,7)" onkeypress="return searchResults.NavChild(event,0,7)" onkeyup="return searchResults.NavChild(event,0,7)" class="SRScope" href="../structr123array16x8.html#a883d42092ab4bae2eac132706ed06103" target="_parent">r123array16x8::fill()</a>
+    <a id="Item0_c8" onkeydown="return searchResults.NavChild(event,0,8)" onkeypress="return searchResults.NavChild(event,0,8)" onkeyup="return searchResults.NavChild(event,0,8)" class="SRScope" href="../structr123array1xm128i.html#a7eba15dc035724245f70b4a3a98c6a52" target="_parent">r123array1xm128i::fill()</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_fix_5finvariant">
+ <div class="SREntry">
+  <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../structr123_1_1Engine.html#aa7ad87d7238a0f820ee37640071dee7d" target="_parent">fix_invariant</a>
+  <span class="SRScope">r123::Engine</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_front">
+ <div class="SREntry">
+  <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_front')">front</a>
+  <div class="SRChildren">
+    <a id="Item2_c0" onkeydown="return searchResults.NavChild(event,2,0)" onkeypress="return searchResults.NavChild(event,2,0)" onkeyup="return searchResults.NavChild(event,2,0)" class="SRScope" href="../structr123array1x32.html#a69727e5b1c14fcc2f7c9b6af4410cc16" target="_parent">r123array1x32::front()</a>
+    <a id="Item2_c1" onkeydown="return searchResults.NavChild(event,2,1)" onkeypress="return searchResults.NavChild(event,2,1)" onkeyup="return searchResults.NavChild(event,2,1)" class="SRScope" href="../structr123array1x32.html#af94d0df621b1de0b6a3ed904c276eb84" target="_parent">r123array1x32::front() const </a>
+    <a id="Item2_c2" onkeydown="return searchResults.NavChild(event,2,2)" onkeypress="return searchResults.NavChild(event,2,2)" onkeyup="return searchResults.NavChild(event,2,2)" class="SRScope" href="../structr123array2x32.html#ad5e3ba16c4d22c3ac0775337bef3cc70" target="_parent">r123array2x32::front()</a>
+    <a id="Item2_c3" onkeydown="return searchResults.NavChild(event,2,3)" onkeypress="return searchResults.NavChild(event,2,3)" onkeyup="return searchResults.NavChild(event,2,3)" class="SRScope" href="../structr123array2x32.html#a933676c34296b74eeea8a56a3c904a2c" target="_parent">r123array2x32::front() const </a>
+    <a id="Item2_c4" onkeydown="return searchResults.NavChild(event,2,4)" onkeypress="return searchResults.NavChild(event,2,4)" onkeyup="return searchResults.NavChild(event,2,4)" class="SRScope" href="../structr123array4x32.html#a82b3fdeacb835bb64765def4bef92751" target="_parent">r123array4x32::front()</a>
+    <a id="Item2_c5" onkeydown="return searchResults.NavChild(event,2,5)" onkeypress="return searchResults.NavChild(event,2,5)" onkeyup="return searchResults.NavChild(event,2,5)" class="SRScope" href="../structr123array4x32.html#ab3434550aea3d2e04579cb255b0b4e9e" target="_parent">r123array4x32::front() const </a>
+    <a id="Item2_c6" onkeydown="return searchResults.NavChild(event,2,6)" onkeypress="return searchResults.NavChild(event,2,6)" onkeyup="return searchResults.NavChild(event,2,6)" class="SRScope" href="../structr123array8x32.html#aeab7da4db40303e2104b79c2d8f3eced" target="_parent">r123array8x32::front()</a>
+    <a id="Item2_c7" onkeydown="return searchResults.NavChild(event,2,7)" onkeypress="return searchResults.NavChild(event,2,7)" onkeyup="return searchResults.NavChild(event,2,7)" class="SRScope" href="../structr123array8x32.html#aee2127f4a99f86b3fc7a9059e7d84e76" target="_parent">r123array8x32::front() const </a>
+    <a id="Item2_c8" onkeydown="return searchResults.NavChild(event,2,8)" onkeypress="return searchResults.NavChild(event,2,8)" onkeyup="return searchResults.NavChild(event,2,8)" class="SRScope" href="../structr123array1x64.html#a7d205216932e36303f62b38d233247d5" target="_parent">r123array1x64::front()</a>
+    <a id="Item2_c9" onkeydown="return searchResults.NavChild(event,2,9)" onkeypress="return searchResults.NavChild(event,2,9)" onkeyup="return searchResults.NavChild(event,2,9)" class="SRScope" href="../structr123array1x64.html#a7c0a3159492b3405a8019ce52cdf2c69" target="_parent">r123array1x64::front() const </a>
+    <a id="Item2_c10" onkeydown="return searchResults.NavChild(event,2,10)" onkeypress="return searchResults.NavChild(event,2,10)" onkeyup="return searchResults.NavChild(event,2,10)" class="SRScope" href="../structr123array2x64.html#a95b79f70de75c8346dbae7c5f933d076" target="_parent">r123array2x64::front()</a>
+    <a id="Item2_c11" onkeydown="return searchResults.NavChild(event,2,11)" onkeypress="return searchResults.NavChild(event,2,11)" onkeyup="return searchResults.NavChild(event,2,11)" class="SRScope" href="../structr123array2x64.html#a21cf5457f945f5c00b16ce4a73797c1b" target="_parent">r123array2x64::front() const </a>
+    <a id="Item2_c12" onkeydown="return searchResults.NavChild(event,2,12)" onkeypress="return searchResults.NavChild(event,2,12)" onkeyup="return searchResults.NavChild(event,2,12)" class="SRScope" href="../structr123array4x64.html#a975ecaf4c5332fc400dfc8d6d60d9035" target="_parent">r123array4x64::front()</a>
+    <a id="Item2_c13" onkeydown="return searchResults.NavChild(event,2,13)" onkeypress="return searchResults.NavChild(event,2,13)" onkeyup="return searchResults.NavChild(event,2,13)" class="SRScope" href="../structr123array4x64.html#a256920b96d1d3a4c61489b145da7383e" target="_parent">r123array4x64::front() const </a>
+    <a id="Item2_c14" onkeydown="return searchResults.NavChild(event,2,14)" onkeypress="return searchResults.NavChild(event,2,14)" onkeyup="return searchResults.NavChild(event,2,14)" class="SRScope" href="../structr123array16x8.html#ad293e6494e131ff96941e963d9208586" target="_parent">r123array16x8::front()</a>
+    <a id="Item2_c15" onkeydown="return searchResults.NavChild(event,2,15)" onkeypress="return searchResults.NavChild(event,2,15)" onkeyup="return searchResults.NavChild(event,2,15)" class="SRScope" href="../structr123array16x8.html#a85528130b6941b3f7b57265c201345c2" target="_parent">r123array16x8::front() const </a>
+    <a id="Item2_c16" onkeydown="return searchResults.NavChild(event,2,16)" onkeypress="return searchResults.NavChild(event,2,16)" onkeyup="return searchResults.NavChild(event,2,16)" class="SRScope" href="../structr123array1xm128i.html#a7efd9b7ccf35c3730fbdafb147e11660" target="_parent">r123array1xm128i::front()</a>
+    <a id="Item2_c17" onkeydown="return searchResults.NavChild(event,2,17)" onkeypress="return searchResults.NavChild(event,2,17)" onkeyup="return searchResults.NavChild(event,2,17)" class="SRScope" href="../structr123array1xm128i.html#a0b5a33169ae87744ab353bfa7dc8f710" target="_parent">r123array1xm128i::front() const </a>
+  </div>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/functions_67.html b/docs/html/search/functions_67.html
new file mode 100644
index 0000000..0823a4e
--- /dev/null
+++ b/docs/html/search/functions_67.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_getcounter">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structr123_1_1Engine.html#a621df886f2a21ffb22e63d9094389173" target="_parent">getcounter</a>
+  <span class="SRScope">r123::Engine</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_getseed">
+ <div class="SREntry">
+  <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../structr123_1_1Engine.html#aa7812a494fdb677c2e325db0acfe924a" target="_parent">getseed</a>
+  <span class="SRScope">r123::Engine</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/functions_68.html b/docs/html/search/functions_68.html
new file mode 100644
index 0000000..d4c1545
--- /dev/null
+++ b/docs/html/search/functions_68.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_haveaesni">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../sse_8h.html#a0b35a046e85316295476d7d552411044" target="_parent">haveAESNI</a>
+  <span class="SRScope">sse.h</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/functions_69.html b/docs/html/search/functions_69.html
new file mode 100644
index 0000000..247af39
--- /dev/null
+++ b/docs/html/search/functions_69.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_incr">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_incr')">incr</a>
+  <div class="SRChildren">
+    <a id="Item0_c0" onkeydown="return searchResults.NavChild(event,0,0)" onkeypress="return searchResults.NavChild(event,0,0)" onkeyup="return searchResults.NavChild(event,0,0)" class="SRScope" href="../structr123array1x32.html#aae5fbc153a37b06ea466f2283551622f" target="_parent">r123array1x32::incr()</a>
+    <a id="Item0_c1" onkeydown="return searchResults.NavChild(event,0,1)" onkeypress="return searchResults.NavChild(event,0,1)" onkeyup="return searchResults.NavChild(event,0,1)" class="SRScope" href="../structr123array2x32.html#a7b295f3a299c8cf24a75ab7f9edfe46f" target="_parent">r123array2x32::incr()</a>
+    <a id="Item0_c2" onkeydown="return searchResults.NavChild(event,0,2)" onkeypress="return searchResults.NavChild(event,0,2)" onkeyup="return searchResults.NavChild(event,0,2)" class="SRScope" href="../structr123array4x32.html#a36515eb50711e36a88f1390bbd4e0e05" target="_parent">r123array4x32::incr()</a>
+    <a id="Item0_c3" onkeydown="return searchResults.NavChild(event,0,3)" onkeypress="return searchResults.NavChild(event,0,3)" onkeyup="return searchResults.NavChild(event,0,3)" class="SRScope" href="../structr123array8x32.html#a92ded324d4b7e2602766fa0c71fa5985" target="_parent">r123array8x32::incr()</a>
+    <a id="Item0_c4" onkeydown="return searchResults.NavChild(event,0,4)" onkeypress="return searchResults.NavChild(event,0,4)" onkeyup="return searchResults.NavChild(event,0,4)" class="SRScope" href="../structr123array1x64.html#ad44244e95f8937e0874dec9083071a85" target="_parent">r123array1x64::incr()</a>
+    <a id="Item0_c5" onkeydown="return searchResults.NavChild(event,0,5)" onkeypress="return searchResults.NavChild(event,0,5)" onkeyup="return searchResults.NavChild(event,0,5)" class="SRScope" href="../structr123array2x64.html#ac33e6336c8aee10e38259510ef76e5cf" target="_parent">r123array2x64::incr()</a>
+    <a id="Item0_c6" onkeydown="return searchResults.NavChild(event,0,6)" onkeypress="return searchResults.NavChild(event,0,6)" onkeyup="return searchResults.NavChild(event,0,6)" class="SRScope" href="../structr123array4x64.html#ac4187b4ae44913183b1c8f9b7654f8a9" target="_parent">r123array4x64::incr()</a>
+    <a id="Item0_c7" onkeydown="return searchResults.NavChild(event,0,7)" onkeypress="return searchResults.NavChild(event,0,7)" onkeyup="return searchResults.NavChild(event,0,7)" class="SRScope" href="../structr123array16x8.html#aaf2d677b347b7c7bf362a2b318f46e3c" target="_parent">r123array16x8::incr()</a>
+    <a id="Item0_c8" onkeydown="return searchResults.NavChild(event,0,8)" onkeypress="return searchResults.NavChild(event,0,8)" onkeyup="return searchResults.NavChild(event,0,8)" class="SRScope" href="../structr123array1xm128i.html#a62ee236dafcbfb81ef43d7aa82a66b47" target="_parent">r123array1xm128i::incr()</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_incr_5fcarefully">
+ <div class="SREntry">
+  <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_incr_5fcarefully')">incr_carefully</a>
+  <div class="SRChildren">
+    <a id="Item1_c0" onkeydown="return searchResults.NavChild(event,1,0)" onkeypress="return searchResults.NavChild(event,1,0)" onkeyup="return searchResults.NavChild(event,1,0)" class="SRScope" href="../structr123array1x32.html#a9c919289274ced376086f1110c8b6384" target="_parent">r123array1x32::incr_carefully()</a>
+    <a id="Item1_c1" onkeydown="return searchResults.NavChild(event,1,1)" onkeypress="return searchResults.NavChild(event,1,1)" onkeyup="return searchResults.NavChild(event,1,1)" class="SRScope" href="../structr123array2x32.html#adf128cb5c0abaaa4f119d4bcef47ead9" target="_parent">r123array2x32::incr_carefully()</a>
+    <a id="Item1_c2" onkeydown="return searchResults.NavChild(event,1,2)" onkeypress="return searchResults.NavChild(event,1,2)" onkeyup="return searchResults.NavChild(event,1,2)" class="SRScope" href="../structr123array4x32.html#acec3775361651e6f8dea517f07d7a8b8" target="_parent">r123array4x32::incr_carefully()</a>
+    <a id="Item1_c3" onkeydown="return searchResults.NavChild(event,1,3)" onkeypress="return searchResults.NavChild(event,1,3)" onkeyup="return searchResults.NavChild(event,1,3)" class="SRScope" href="../structr123array8x32.html#a9e73ed67b7c577ebdb6c5e1f121fdc4f" target="_parent">r123array8x32::incr_carefully()</a>
+    <a id="Item1_c4" onkeydown="return searchResults.NavChild(event,1,4)" onkeypress="return searchResults.NavChild(event,1,4)" onkeyup="return searchResults.NavChild(event,1,4)" class="SRScope" href="../structr123array1x64.html#ad848dc3e868f8195ee3eb5029698c976" target="_parent">r123array1x64::incr_carefully()</a>
+    <a id="Item1_c5" onkeydown="return searchResults.NavChild(event,1,5)" onkeypress="return searchResults.NavChild(event,1,5)" onkeyup="return searchResults.NavChild(event,1,5)" class="SRScope" href="../structr123array2x64.html#a52ddbfa3edbd9fa7f30e1402a9240da1" target="_parent">r123array2x64::incr_carefully()</a>
+    <a id="Item1_c6" onkeydown="return searchResults.NavChild(event,1,6)" onkeypress="return searchResults.NavChild(event,1,6)" onkeyup="return searchResults.NavChild(event,1,6)" class="SRScope" href="../structr123array4x64.html#af629d14b454f406cae4d128d9e05554d" target="_parent">r123array4x64::incr_carefully()</a>
+    <a id="Item1_c7" onkeydown="return searchResults.NavChild(event,1,7)" onkeypress="return searchResults.NavChild(event,1,7)" onkeyup="return searchResults.NavChild(event,1,7)" class="SRScope" href="../structr123array16x8.html#abbc6c2d9cdc2187cdfdea759951498a0" target="_parent">r123array16x8::incr_carefully()</a>
+    <a id="Item1_c8" onkeydown="return searchResults.NavChild(event,1,8)" onkeypress="return searchResults.NavChild(event,1,8)" onkeyup="return searchResults.NavChild(event,1,8)" class="SRScope" href="../structr123array1xm128i.html#ab35cfd8e9221c294ab7546855373a38c" target="_parent">r123array1xm128i::incr_carefully()</a>
+  </div>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/functions_6d.html b/docs/html/search/functions_6d.html
new file mode 100644
index 0000000..1a18e3d
--- /dev/null
+++ b/docs/html/search/functions_6d.html
@@ -0,0 +1,45 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_max_5fsize">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_max_5fsize')">max_size</a>
+  <div class="SRChildren">
+    <a id="Item0_c0" onkeydown="return searchResults.NavChild(event,0,0)" onkeypress="return searchResults.NavChild(event,0,0)" onkeyup="return searchResults.NavChild(event,0,0)" class="SRScope" href="../structr123array1x32.html#a707c532168670ad508723d057f712928" target="_parent">r123array1x32::max_size()</a>
+    <a id="Item0_c1" onkeydown="return searchResults.NavChild(event,0,1)" onkeypress="return searchResults.NavChild(event,0,1)" onkeyup="return searchResults.NavChild(event,0,1)" class="SRScope" href="../structr123array2x32.html#a07345b400c5a81e6cd55689d1e38122f" target="_parent">r123array2x32::max_size()</a>
+    <a id="Item0_c2" onkeydown="return searchResults.NavChild(event,0,2)" onkeypress="return searchResults.NavChild(event,0,2)" onkeyup="return searchResults.NavChild(event,0,2)" class="SRScope" href="../structr123array4x32.html#afddfc77eea0f5f4c53dc075425f96ab3" target="_parent">r123array4x32::max_size()</a>
+    <a id="Item0_c3" onkeydown="return searchResults.NavChild(event,0,3)" onkeypress="return searchResults.NavChild(event,0,3)" onkeyup="return searchResults.NavChild(event,0,3)" class="SRScope" href="../structr123array8x32.html#a0ea0af65a3b0a51c090ab6ef11f20c63" target="_parent">r123array8x32::max_size()</a>
+    <a id="Item0_c4" onkeydown="return searchResults.NavChild(event,0,4)" onkeypress="return searchResults.NavChild(event,0,4)" onkeyup="return searchResults.NavChild(event,0,4)" class="SRScope" href="../structr123array1x64.html#a1b02d097ca118866b7f696b7c1c5681f" target="_parent">r123array1x64::max_size()</a>
+    <a id="Item0_c5" onkeydown="return searchResults.NavChild(event,0,5)" onkeypress="return searchResults.NavChild(event,0,5)" onkeyup="return searchResults.NavChild(event,0,5)" class="SRScope" href="../structr123array2x64.html#a03f7c9e37e59210b1d2b9390e415e289" target="_parent">r123array2x64::max_size()</a>
+    <a id="Item0_c6" onkeydown="return searchResults.NavChild(event,0,6)" onkeypress="return searchResults.NavChild(event,0,6)" onkeyup="return searchResults.NavChild(event,0,6)" class="SRScope" href="../structr123array4x64.html#aad1329f21e3fdd5d25a29148db564b8a" target="_parent">r123array4x64::max_size()</a>
+    <a id="Item0_c7" onkeydown="return searchResults.NavChild(event,0,7)" onkeypress="return searchResults.NavChild(event,0,7)" onkeyup="return searchResults.NavChild(event,0,7)" class="SRScope" href="../structr123array16x8.html#a3f59fb2b338aa8e33879e8d2d22840ed" target="_parent">r123array16x8::max_size()</a>
+    <a id="Item0_c8" onkeydown="return searchResults.NavChild(event,0,8)" onkeypress="return searchResults.NavChild(event,0,8)" onkeyup="return searchResults.NavChild(event,0,8)" class="SRScope" href="../structr123array1xm128i.html#a04e2b8952459b7aeabc011532fe3f8fa" target="_parent">r123array1xm128i::max_size()</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_microurng">
+ <div class="SREntry">
+  <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_microurng')">MicroURNG</a>
+  <div class="SRChildren">
+    <a id="Item1_c0" onkeydown="return searchResults.NavChild(event,1,0)" onkeypress="return searchResults.NavChild(event,1,0)" onkeyup="return searchResults.NavChild(event,1,0)" class="SRScope" href="../classr123_1_1MicroURNG.html#a19afb80312c370e1670bf8afc73d802e" target="_parent">r123::MicroURNG::MicroURNG(cbrng_type _b, ctr_type _c0, ukey_type _uk)</a>
+    <a id="Item1_c1" onkeydown="return searchResults.NavChild(event,1,1)" onkeypress="return searchResults.NavChild(event,1,1)" onkeyup="return searchResults.NavChild(event,1,1)" class="SRScope" href="../classr123_1_1MicroURNG.html#a7ecf43819bc96804892a78c6715f587b" target="_parent">r123::MicroURNG::MicroURNG(ctr_type _c0, ukey_type _uk)</a>
+  </div>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/functions_6f.html b/docs/html/search/functions_6f.html
new file mode 100644
index 0000000..444bcd6
--- /dev/null
+++ b/docs/html/search/functions_6f.html
@@ -0,0 +1,200 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_operator_20_5f_5fm128i">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structr123m128i.html#a80a5c24f76fec61b3ab0ed0e0353cfb7" target="_parent">operator __m128i</a>
+  <span class="SRScope">r123m128i</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_operator_20const_20void_20_2a">
+ <div class="SREntry">
+  <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../structr123m128i.html#ae5788785c2ce7f7ca6ff8dd4377771f3" target="_parent">operator const void *</a>
+  <span class="SRScope">r123m128i</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_operator_21_3d">
+ <div class="SREntry">
+  <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_operator_21_3d')">operator!=</a>
+  <div class="SRChildren">
+    <a id="Item2_c0" onkeydown="return searchResults.NavChild(event,2,0)" onkeypress="return searchResults.NavChild(event,2,0)" onkeyup="return searchResults.NavChild(event,2,0)" class="SRScope" href="../structr123array1x32.html#af293f370d083051f6cf24408e07feff1" target="_parent">r123array1x32::operator!=()</a>
+    <a id="Item2_c1" onkeydown="return searchResults.NavChild(event,2,1)" onkeypress="return searchResults.NavChild(event,2,1)" onkeyup="return searchResults.NavChild(event,2,1)" class="SRScope" href="../structr123array2x32.html#aa0c7e561ddeb475329ea8d8178fca2a1" target="_parent">r123array2x32::operator!=()</a>
+    <a id="Item2_c2" onkeydown="return searchResults.NavChild(event,2,2)" onkeypress="return searchResults.NavChild(event,2,2)" onkeyup="return searchResults.NavChild(event,2,2)" class="SRScope" href="../structr123array4x32.html#a1a7aa47c8dd7db5146e54cc54d1d4358" target="_parent">r123array4x32::operator!=()</a>
+    <a id="Item2_c3" onkeydown="return searchResults.NavChild(event,2,3)" onkeypress="return searchResults.NavChild(event,2,3)" onkeyup="return searchResults.NavChild(event,2,3)" class="SRScope" href="../structr123array8x32.html#aed510e0472db9b00490c468d88e14bac" target="_parent">r123array8x32::operator!=()</a>
+    <a id="Item2_c4" onkeydown="return searchResults.NavChild(event,2,4)" onkeypress="return searchResults.NavChild(event,2,4)" onkeyup="return searchResults.NavChild(event,2,4)" class="SRScope" href="../structr123array1x64.html#a0969493a7aac290e5ab2a5135380bc3d" target="_parent">r123array1x64::operator!=()</a>
+    <a id="Item2_c5" onkeydown="return searchResults.NavChild(event,2,5)" onkeypress="return searchResults.NavChild(event,2,5)" onkeyup="return searchResults.NavChild(event,2,5)" class="SRScope" href="../structr123array2x64.html#a1ddc25ec182ac3b119e420f5e21c3f87" target="_parent">r123array2x64::operator!=()</a>
+    <a id="Item2_c6" onkeydown="return searchResults.NavChild(event,2,6)" onkeypress="return searchResults.NavChild(event,2,6)" onkeyup="return searchResults.NavChild(event,2,6)" class="SRScope" href="../structr123array4x64.html#abf2fc58ddb163708c087f72921dfd11d" target="_parent">r123array4x64::operator!=()</a>
+    <a id="Item2_c7" onkeydown="return searchResults.NavChild(event,2,7)" onkeypress="return searchResults.NavChild(event,2,7)" onkeyup="return searchResults.NavChild(event,2,7)" class="SRScope" href="../structr123array16x8.html#af48be55844748a0f6406b2ae437398b5" target="_parent">r123array16x8::operator!=()</a>
+    <a id="Item2_c8" onkeydown="return searchResults.NavChild(event,2,8)" onkeypress="return searchResults.NavChild(event,2,8)" onkeyup="return searchResults.NavChild(event,2,8)" class="SRScope" href="../structr123array1xm128i.html#a60cf5b0e8283c20c386a7935f9ae0a60" target="_parent">r123array1xm128i::operator!=()</a>
+    <a id="Item2_c9" onkeydown="return searchResults.NavChild(event,2,9)" onkeypress="return searchResults.NavChild(event,2,9)" onkeyup="return searchResults.NavChild(event,2,9)" class="SRScope" href="../sse_8h.html#a9fc5dd462afc043229ab800abb8f7d64" target="_parent">operator!=(const r123m128i &lhs, const r123m128i &rhs): sse.h</a>
+    <a id="Item2_c10" onkeydown="return searchResults.NavChild(event,2,10)" onkeypress="return searchResults.NavChild(event,2,10)" onkeyup="return searchResults.NavChild(event,2,10)" class="SRScope" href="../sse_8h.html#a76ef724b020add862a911a699a21451b" target="_parent">operator!=(uint64_t lhs, const r123m128i &rhs): sse.h</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_operator_28_29">
+ <div class="SREntry">
+  <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_operator_28_29')">operator()</a>
+  <div class="SRChildren">
+    <a id="Item3_c0" onkeydown="return searchResults.NavChild(event,3,0)" onkeypress="return searchResults.NavChild(event,3,0)" onkeyup="return searchResults.NavChild(event,3,0)" class="SRScope" href="../structr123_1_1AESNI1xm128i.html#a9bff0ac8478400c1006136e9bde91dc3" target="_parent">r123::AESNI1xm128i::operator()()</a>
+    <a id="Item3_c1" onkeydown="return searchResults.NavChild(event,3,1)" onkeypress="return searchResults.NavChild(event,3,1)" onkeyup="return searchResults.NavChild(event,3,1)" class="SRScope" href="../structr123_1_1AESNI4x32.html#a981102e5bc0a7df916a95a40af8fd4c0" target="_parent">r123::AESNI4x32::operator()()</a>
+    <a id="Item3_c2" onkeydown="return searchResults.NavChild(event,3,2)" onkeypress="return searchResults.NavChild(event,3,2)" onkeyup="return searchResults.NavChild(event,3,2)" class="SRScope" href="../structr123_1_1ARS1xm128i__R.html#a89c0fc4e1c90ee684fc88dde05d8d82c" target="_parent">r123::ARS1xm128i_R::operator()()</a>
+    <a id="Item3_c3" onkeydown="return searchResults.NavChild(event,3,3)" onkeypress="return searchResults.NavChild(event,3,3)" onkeyup="return searchResults.NavChild(event,3,3)" class="SRScope" href="../structr123_1_1ARS4x32__R.html#afcd326e150925e30de22166e727567df" target="_parent">r123::ARS4x32_R::operator()()</a>
+    <a id="Item3_c4" onkeydown="return searchResults.NavChild(event,3,4)" onkeypress="return searchResults.NavChild(event,3,4)" onkeyup="return searchResults.NavChild(event,3,4)" class="SRScope" href="../classr123_1_1MicroURNG.html#a64cd4d33b4cab5d3d9c556db68407b77" target="_parent">r123::MicroURNG::operator()()</a>
+    <a id="Item3_c5" onkeydown="return searchResults.NavChild(event,3,5)" onkeypress="return searchResults.NavChild(event,3,5)" onkeyup="return searchResults.NavChild(event,3,5)" class="SRScope" href="../structr123_1_1Philox2x32__R.html#ab610a200c9fa62d090f31466b655c780" target="_parent">r123::Philox2x32_R::operator()()</a>
+    <a id="Item3_c6" onkeydown="return searchResults.NavChild(event,3,6)" onkeypress="return searchResults.NavChild(event,3,6)" onkeyup="return searchResults.NavChild(event,3,6)" class="SRScope" href="../structr123_1_1Philox4x32__R.html#adf05bdc0c856c9541db656711fd8c7d1" target="_parent">r123::Philox4x32_R::operator()()</a>
+    <a id="Item3_c7" onkeydown="return searchResults.NavChild(event,3,7)" onkeypress="return searchResults.NavChild(event,3,7)" onkeyup="return searchResults.NavChild(event,3,7)" class="SRScope" href="../structr123_1_1Philox2x64__R.html#a04f6039e87a958593ac011d9304d7ec9" target="_parent">r123::Philox2x64_R::operator()()</a>
+    <a id="Item3_c8" onkeydown="return searchResults.NavChild(event,3,8)" onkeypress="return searchResults.NavChild(event,3,8)" onkeyup="return searchResults.NavChild(event,3,8)" class="SRScope" href="../structr123_1_1Philox4x64__R.html#aa5a0488aa6e16c55b7647c155b18462c" target="_parent">r123::Philox4x64_R::operator()()</a>
+    <a id="Item3_c9" onkeydown="return searchResults.NavChild(event,3,9)" onkeypress="return searchResults.NavChild(event,3,9)" onkeyup="return searchResults.NavChild(event,3,9)" class="SRScope" href="../structr123_1_1ReinterpretCtr.html#a91edc5103397372cc5509ad17c0fc83a" target="_parent">r123::ReinterpretCtr::operator()()</a>
+    <a id="Item3_c10" onkeydown="return searchResults.NavChild(event,3,10)" onkeypress="return searchResults.NavChild(event,3,10)" onkeyup="return searchResults.NavChild(event,3,10)" class="SRScope" href="../structr123_1_1Threefry2x32__R.html#a64b8018e82f3e7a0e252166b15b42a71" target="_parent">r123::Threefry2x32_R::operator()()</a>
+    <a id="Item3_c11" onkeydown="return searchResults.NavChild(event,3,11)" onkeypress="return searchResults.NavChild(event,3,11)" onkeyup="return searchResults.NavChild(event,3,11)" class="SRScope" href="../structr123_1_1Threefry4x32__R.html#ae0dfbf399015fab602c769ad90256231" target="_parent">r123::Threefry4x32_R::operator()()</a>
+    <a id="Item3_c12" onkeydown="return searchResults.NavChild(event,3,12)" onkeypress="return searchResults.NavChild(event,3,12)" onkeyup="return searchResults.NavChild(event,3,12)" class="SRScope" href="../structr123_1_1Threefry2x64__R.html#ab654a85f2c4ec65548ddfc85dc00f27e" target="_parent">r123::Threefry2x64_R::operator()()</a>
+    <a id="Item3_c13" onkeydown="return searchResults.NavChild(event,3,13)" onkeypress="return searchResults.NavChild(event,3,13)" onkeyup="return searchResults.NavChild(event,3,13)" class="SRScope" href="../structr123_1_1Threefry4x64__R.html#a09e7fb82f9b7bcf6ccb4d849116b6ec1" target="_parent">r123::Threefry4x64_R::operator()()</a>
+    <a id="Item3_c14" onkeydown="return searchResults.NavChild(event,3,14)" onkeypress="return searchResults.NavChild(event,3,14)" onkeyup="return searchResults.NavChild(event,3,14)" class="SRScope" href="../structr123_1_1Engine.html#aca309d0b4f2a8fff1f6f2ab38c6caf93" target="_parent">r123::Engine::operator()()</a>
+    <a id="Item3_c15" onkeydown="return searchResults.NavChild(event,3,15)" onkeypress="return searchResults.NavChild(event,3,15)" onkeyup="return searchResults.NavChild(event,3,15)" class="SRScope" href="../structr123_1_1Engine.html#af396a7d1656af55805e38f3d9c0fbef7" target="_parent">r123::Engine::operator()(const ctr_type &c) const </a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_operator_2b_2b">
+ <div class="SREntry">
+  <a id="Item4" onkeydown="return searchResults.Nav(event,4)" onkeypress="return searchResults.Nav(event,4)" onkeyup="return searchResults.Nav(event,4)" class="SRSymbol" href="../sse_8h.html#a2ffeb79e1a2cbb9cb35b0daf514a06a5" target="_parent">operator++</a>
+  <span class="SRScope">sse.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_operator_2b_3d">
+ <div class="SREntry">
+  <a id="Item5" onkeydown="return searchResults.Nav(event,5)" onkeypress="return searchResults.Nav(event,5)" onkeyup="return searchResults.Nav(event,5)" class="SRSymbol" href="../sse_8h.html#a436d4467bb1389d42bfa67686218fd98" target="_parent">operator+=</a>
+  <span class="SRScope">sse.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_operator_3c">
+ <div class="SREntry">
+  <a id="Item6" onkeydown="return searchResults.Nav(event,6)" onkeypress="return searchResults.Nav(event,6)" onkeyup="return searchResults.Nav(event,6)" class="SRSymbol" href="../sse_8h.html#ac2c263fa443dd074fe4ff96710219eb8" target="_parent">operator<</a>
+  <span class="SRScope">sse.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_operator_3c_3c">
+ <div class="SREntry">
+  <a id="Item7" onkeydown="return searchResults.Nav(event,7)" onkeypress="return searchResults.Nav(event,7)" onkeyup="return searchResults.Nav(event,7)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_operator_3c_3c')">operator<<</a>
+  <div class="SRChildren">
+    <a id="Item7_c0" onkeydown="return searchResults.NavChild(event,7,0)" onkeypress="return searchResults.NavChild(event,7,0)" onkeyup="return searchResults.NavChild(event,7,0)" class="SRScope" href="../array_8h.html#af29a19da89789058ead246fdef153ce0" target="_parent">operator<<(std::ostream &os, const r123array1x32 &a): array.h</a>
+    <a id="Item7_c1" onkeydown="return searchResults.NavChild(event,7,1)" onkeypress="return searchResults.NavChild(event,7,1)" onkeyup="return searchResults.NavChild(event,7,1)" class="SRScope" href="../array_8h.html#a9c1f24a8b73925bc24a5acf09fd4e305" target="_parent">operator<<(std::ostream &os, const r123array2x32 &a): array.h</a>
+    <a id="Item7_c2" onkeydown="return searchResults.NavChild(event,7,2)" onkeypress="return searchResults.NavChild(event,7,2)" onkeyup="return searchResults.NavChild(event,7,2)" class="SRScope" href="../array_8h.html#ab2b41774a3888c0bc9697fd79383eae4" target="_parent">operator<<(std::ostream &os, const r123array4x32 &a): array.h</a>
+    <a id="Item7_c3" onkeydown="return searchResults.NavChild(event,7,3)" onkeypress="return searchResults.NavChild(event,7,3)" onkeyup="return searchResults.NavChild(event,7,3)" class="SRScope" href="../array_8h.html#a8339351efe6ba804aacd3d97632e2bdf" target="_parent">operator<<(std::ostream &os, const r123array8x32 &a): array.h</a>
+    <a id="Item7_c4" onkeydown="return searchResults.NavChild(event,7,4)" onkeypress="return searchResults.NavChild(event,7,4)" onkeyup="return searchResults.NavChild(event,7,4)" class="SRScope" href="../array_8h.html#ae87e390bd8c0cadc74bd08dfffd0101f" target="_parent">operator<<(std::ostream &os, const r123array1x64 &a): array.h</a>
+    <a id="Item7_c5" onkeydown="return searchResults.NavChild(event,7,5)" onkeypress="return searchResults.NavChild(event,7,5)" onkeyup="return searchResults.NavChild(event,7,5)" class="SRScope" href="../array_8h.html#a06634d010d5cde0afe278031c7597cc3" target="_parent">operator<<(std::ostream &os, const r123array2x64 &a): array.h</a>
+    <a id="Item7_c6" onkeydown="return searchResults.NavChild(event,7,6)" onkeypress="return searchResults.NavChild(event,7,6)" onkeyup="return searchResults.NavChild(event,7,6)" class="SRScope" href="../array_8h.html#acff68189292ea886eed0f24b5146566d" target="_parent">operator<<(std::ostream &os, const r123array4x64 &a): array.h</a>
+    <a id="Item7_c7" onkeydown="return searchResults.NavChild(event,7,7)" onkeypress="return searchResults.NavChild(event,7,7)" onkeyup="return searchResults.NavChild(event,7,7)" class="SRScope" href="../array_8h.html#a8b82ce828fcb9bb530870dd2919975e9" target="_parent">operator<<(std::ostream &os, const r123array16x8 &a): array.h</a>
+    <a id="Item7_c8" onkeydown="return searchResults.NavChild(event,7,8)" onkeypress="return searchResults.NavChild(event,7,8)" onkeyup="return searchResults.NavChild(event,7,8)" class="SRScope" href="../array_8h.html#af4437aa49ff7855c60ca4ddacf2e48e5" target="_parent">operator<<(std::ostream &os, const r123array1xm128i &a): array.h</a>
+    <a id="Item7_c9" onkeydown="return searchResults.NavChild(event,7,9)" onkeypress="return searchResults.NavChild(event,7,9)" onkeyup="return searchResults.NavChild(event,7,9)" class="SRScope" href="../sse_8h.html#af965b43e09e7305795c7b5a35d20c75f" target="_parent">operator<<(std::ostream &os, const r123m128i &m): sse.h</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_operator_3c_3d">
+ <div class="SREntry">
+  <a id="Item8" onkeydown="return searchResults.Nav(event,8)" onkeypress="return searchResults.Nav(event,8)" onkeyup="return searchResults.Nav(event,8)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_operator_3c_3d')">operator<=</a>
+  <div class="SRChildren">
+    <a id="Item8_c0" onkeydown="return searchResults.NavChild(event,8,0)" onkeypress="return searchResults.NavChild(event,8,0)" onkeyup="return searchResults.NavChild(event,8,0)" class="SRScope" href="../sse_8h.html#a43e11de33821f27448feb163162ec895" target="_parent">operator<=(uint64_t, const r123m128i &): sse.h</a>
+    <a id="Item8_c1" onkeydown="return searchResults.NavChild(event,8,1)" onkeypress="return searchResults.NavChild(event,8,1)" onkeyup="return searchResults.NavChild(event,8,1)" class="SRScope" href="../sse_8h.html#a9ce245b77f0638255e7138190d0ff4fd" target="_parent">operator<=(const r123m128i &, const r123m128i &): sse.h</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_operator_3d">
+ <div class="SREntry">
+  <a id="Item9" onkeydown="return searchResults.Nav(event,9)" onkeypress="return searchResults.Nav(event,9)" onkeyup="return searchResults.Nav(event,9)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_operator_3d')">operator=</a>
+  <div class="SRChildren">
+    <a id="Item9_c0" onkeydown="return searchResults.NavChild(event,9,0)" onkeypress="return searchResults.NavChild(event,9,0)" onkeyup="return searchResults.NavChild(event,9,0)" class="SRScope" href="../structaesni1xm128i__key__t.html#acb24fef68c539f1a6ea217ee8ada185d" target="_parent">aesni1xm128i_key_t::operator=(const aesni1xm128i_ukey_t &uk)</a>
+    <a id="Item9_c1" onkeydown="return searchResults.NavChild(event,9,1)" onkeypress="return searchResults.NavChild(event,9,1)" onkeyup="return searchResults.NavChild(event,9,1)" class="SRScope" href="../structaesni1xm128i__key__t.html#a0290dac35d6f14706247217fb49bcd60" target="_parent">aesni1xm128i_key_t::operator=(const aesni4x32_ukey_t &uk)</a>
+    <a id="Item9_c2" onkeydown="return searchResults.NavChild(event,9,2)" onkeypress="return searchResults.NavChild(event,9,2)" onkeyup="return searchResults.NavChild(event,9,2)" class="SRScope" href="../structr123m128i.html#a9842fbc85102e0019cc58d97c28e2d02" target="_parent">r123m128i::operator=(const __m128i &rhs)</a>
+    <a id="Item9_c3" onkeydown="return searchResults.NavChild(event,9,3)" onkeypress="return searchResults.NavChild(event,9,3)" onkeyup="return searchResults.NavChild(event,9,3)" class="SRScope" href="../structr123m128i.html#a0da7ae920bce1b75efb91017ab6bc37c" target="_parent">r123m128i::operator=(uint64_t n)</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_operator_3d_3d">
+ <div class="SREntry">
+  <a id="Item10" onkeydown="return searchResults.Nav(event,10)" onkeypress="return searchResults.Nav(event,10)" onkeyup="return searchResults.Nav(event,10)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_operator_3d_3d')">operator==</a>
+  <div class="SRChildren">
+    <a id="Item10_c0" onkeydown="return searchResults.NavChild(event,10,0)" onkeypress="return searchResults.NavChild(event,10,0)" onkeyup="return searchResults.NavChild(event,10,0)" class="SRScope" href="../structr123array1x32.html#a61140a0fb8983a3018a2b98903d14047" target="_parent">r123array1x32::operator==()</a>
+    <a id="Item10_c1" onkeydown="return searchResults.NavChild(event,10,1)" onkeypress="return searchResults.NavChild(event,10,1)" onkeyup="return searchResults.NavChild(event,10,1)" class="SRScope" href="../structr123array2x32.html#aa8723e5786c66137e82405a532459b2d" target="_parent">r123array2x32::operator==()</a>
+    <a id="Item10_c2" onkeydown="return searchResults.NavChild(event,10,2)" onkeypress="return searchResults.NavChild(event,10,2)" onkeyup="return searchResults.NavChild(event,10,2)" class="SRScope" href="../structr123array4x32.html#a14123fe9160e559a83e61ab6c2901759" target="_parent">r123array4x32::operator==()</a>
+    <a id="Item10_c3" onkeydown="return searchResults.NavChild(event,10,3)" onkeypress="return searchResults.NavChild(event,10,3)" onkeyup="return searchResults.NavChild(event,10,3)" class="SRScope" href="../structr123array8x32.html#ae9ffa98997557c87b0a08b6ed2835155" target="_parent">r123array8x32::operator==()</a>
+    <a id="Item10_c4" onkeydown="return searchResults.NavChild(event,10,4)" onkeypress="return searchResults.NavChild(event,10,4)" onkeyup="return searchResults.NavChild(event,10,4)" class="SRScope" href="../structr123array1x64.html#a65018edc8a8596e8bdb7500926544a4a" target="_parent">r123array1x64::operator==()</a>
+    <a id="Item10_c5" onkeydown="return searchResults.NavChild(event,10,5)" onkeypress="return searchResults.NavChild(event,10,5)" onkeyup="return searchResults.NavChild(event,10,5)" class="SRScope" href="../structr123array2x64.html#aa690f425f846ff9908a734eb720df573" target="_parent">r123array2x64::operator==()</a>
+    <a id="Item10_c6" onkeydown="return searchResults.NavChild(event,10,6)" onkeypress="return searchResults.NavChild(event,10,6)" onkeyup="return searchResults.NavChild(event,10,6)" class="SRScope" href="../structr123array4x64.html#afada659cc4a54a1416dca2522885cef1" target="_parent">r123array4x64::operator==()</a>
+    <a id="Item10_c7" onkeydown="return searchResults.NavChild(event,10,7)" onkeypress="return searchResults.NavChild(event,10,7)" onkeyup="return searchResults.NavChild(event,10,7)" class="SRScope" href="../structr123array16x8.html#a4d3ed48f2b716382ea874a968a2b7174" target="_parent">r123array16x8::operator==()</a>
+    <a id="Item10_c8" onkeydown="return searchResults.NavChild(event,10,8)" onkeypress="return searchResults.NavChild(event,10,8)" onkeyup="return searchResults.NavChild(event,10,8)" class="SRScope" href="../structr123array1xm128i.html#aa459abf9fe8d15019860de5b3b0cddf8" target="_parent">r123array1xm128i::operator==()</a>
+    <a id="Item10_c9" onkeydown="return searchResults.NavChild(event,10,9)" onkeypress="return searchResults.NavChild(event,10,9)" onkeyup="return searchResults.NavChild(event,10,9)" class="SRScope" href="../sse_8h.html#ab1389a6d8b14bc380c6d6a6d4de8853e" target="_parent">operator==(const r123m128i &lhs, const r123m128i &rhs): sse.h</a>
+    <a id="Item10_c10" onkeydown="return searchResults.NavChild(event,10,10)" onkeypress="return searchResults.NavChild(event,10,10)" onkeyup="return searchResults.NavChild(event,10,10)" class="SRScope" href="../sse_8h.html#a01fbbba16839c5938b3fa29668870db2" target="_parent">operator==(uint64_t lhs, const r123m128i &rhs): sse.h</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_operator_3e">
+ <div class="SREntry">
+  <a id="Item11" onkeydown="return searchResults.Nav(event,11)" onkeypress="return searchResults.Nav(event,11)" onkeyup="return searchResults.Nav(event,11)" class="SRSymbol" href="../sse_8h.html#ad07b59f8110eac57511ee8c2fa697f93" target="_parent">operator></a>
+  <span class="SRScope">sse.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_operator_3e_3d">
+ <div class="SREntry">
+  <a id="Item12" onkeydown="return searchResults.Nav(event,12)" onkeypress="return searchResults.Nav(event,12)" onkeyup="return searchResults.Nav(event,12)" class="SRSymbol" href="../sse_8h.html#aa7bb0ad8bfceb39a1b71262b9476e151" target="_parent">operator>=</a>
+  <span class="SRScope">sse.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_operator_3e_3e">
+ <div class="SREntry">
+  <a id="Item13" onkeydown="return searchResults.Nav(event,13)" onkeypress="return searchResults.Nav(event,13)" onkeyup="return searchResults.Nav(event,13)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_operator_3e_3e')">operator>></a>
+  <div class="SRChildren">
+    <a id="Item13_c0" onkeydown="return searchResults.NavChild(event,13,0)" onkeypress="return searchResults.NavChild(event,13,0)" onkeyup="return searchResults.NavChild(event,13,0)" class="SRScope" href="../array_8h.html#ace3112deae6709884feac904b1c260a1" target="_parent">operator>>(std::istream &is, r123array1x32 &a): array.h</a>
+    <a id="Item13_c1" onkeydown="return searchResults.NavChild(event,13,1)" onkeypress="return searchResults.NavChild(event,13,1)" onkeyup="return searchResults.NavChild(event,13,1)" class="SRScope" href="../array_8h.html#a41bb2d7e99cf51ca5927a074d1424a03" target="_parent">operator>>(std::istream &is, r123array2x32 &a): array.h</a>
+    <a id="Item13_c2" onkeydown="return searchResults.NavChild(event,13,2)" onkeypress="return searchResults.NavChild(event,13,2)" onkeyup="return searchResults.NavChild(event,13,2)" class="SRScope" href="../array_8h.html#a2782402f8b3941e104e01c317fd4b099" target="_parent">operator>>(std::istream &is, r123array4x32 &a): array.h</a>
+    <a id="Item13_c3" onkeydown="return searchResults.NavChild(event,13,3)" onkeypress="return searchResults.NavChild(event,13,3)" onkeyup="return searchResults.NavChild(event,13,3)" class="SRScope" href="../array_8h.html#ae63a28cc2f1e69f63a4402c8b83663b4" target="_parent">operator>>(std::istream &is, r123array8x32 &a): array.h</a>
+    <a id="Item13_c4" onkeydown="return searchResults.NavChild(event,13,4)" onkeypress="return searchResults.NavChild(event,13,4)" onkeyup="return searchResults.NavChild(event,13,4)" class="SRScope" href="../array_8h.html#a3cdf7b897463996d6eda01443dd669c5" target="_parent">operator>>(std::istream &is, r123array1x64 &a): array.h</a>
+    <a id="Item13_c5" onkeydown="return searchResults.NavChild(event,13,5)" onkeypress="return searchResults.NavChild(event,13,5)" onkeyup="return searchResults.NavChild(event,13,5)" class="SRScope" href="../array_8h.html#a7b32dd7601d0a11b72583a841abc8fca" target="_parent">operator>>(std::istream &is, r123array2x64 &a): array.h</a>
+    <a id="Item13_c6" onkeydown="return searchResults.NavChild(event,13,6)" onkeypress="return searchResults.NavChild(event,13,6)" onkeyup="return searchResults.NavChild(event,13,6)" class="SRScope" href="../array_8h.html#a60aa3cdbb34ced56c0c7c82371f2b30c" target="_parent">operator>>(std::istream &is, r123array4x64 &a): array.h</a>
+    <a id="Item13_c7" onkeydown="return searchResults.NavChild(event,13,7)" onkeypress="return searchResults.NavChild(event,13,7)" onkeyup="return searchResults.NavChild(event,13,7)" class="SRScope" href="../array_8h.html#abb64305331045d211dfa35be0d0cc6a9" target="_parent">operator>>(std::istream &is, r123array16x8 &a): array.h</a>
+    <a id="Item13_c8" onkeydown="return searchResults.NavChild(event,13,8)" onkeypress="return searchResults.NavChild(event,13,8)" onkeyup="return searchResults.NavChild(event,13,8)" class="SRScope" href="../array_8h.html#af831caf1f33e800dad6a659523525a78" target="_parent">operator>>(std::istream &is, r123array1xm128i &a): array.h</a>
+    <a id="Item13_c9" onkeydown="return searchResults.NavChild(event,13,9)" onkeypress="return searchResults.NavChild(event,13,9)" onkeyup="return searchResults.NavChild(event,13,9)" class="SRScope" href="../sse_8h.html#a202aef4bea97c2203a82676cb6abba40" target="_parent">operator>>(std::istream &is, r123m128i &m): sse.h</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_operator_5b_5d">
+ <div class="SREntry">
+  <a id="Item14" onkeydown="return searchResults.Nav(event,14)" onkeypress="return searchResults.Nav(event,14)" onkeyup="return searchResults.Nav(event,14)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_operator_5b_5d')">operator[]</a>
+  <div class="SRChildren">
+    <a id="Item14_c0" onkeydown="return searchResults.NavChild(event,14,0)" onkeypress="return searchResults.NavChild(event,14,0)" onkeyup="return searchResults.NavChild(event,14,0)" class="SRScope" href="../structr123array1x32.html#aa47bb157c60858c1b0ef69df79646a3b" target="_parent">r123array1x32::operator[](size_type i)</a>
+    <a id="Item14_c1" onkeydown="return searchResults.NavChild(event,14,1)" onkeypress="return searchResults.NavChild(event,14,1)" onkeyup="return searchResults.NavChild(event,14,1)" class="SRScope" href="../structr123array1x32.html#a05cf21fa6a647c73763da02d4b7e2f2a" target="_parent">r123array1x32::operator[](size_type i) const </a>
+    <a id="Item14_c2" onkeydown="return searchResults.NavChild(event,14,2)" onkeypress="return searchResults.NavChild(event,14,2)" onkeyup="return searchResults.NavChild(event,14,2)" class="SRScope" href="../structr123array2x32.html#a9926f6938472682c5d31a742378f17de" target="_parent">r123array2x32::operator[](size_type i)</a>
+    <a id="Item14_c3" onkeydown="return searchResults.NavChild(event,14,3)" onkeypress="return searchResults.NavChild(event,14,3)" onkeyup="return searchResults.NavChild(event,14,3)" class="SRScope" href="../structr123array2x32.html#a0ae33a5edf89f9f12edec38209b02464" target="_parent">r123array2x32::operator[](size_type i) const </a>
+    <a id="Item14_c4" onkeydown="return searchResults.NavChild(event,14,4)" onkeypress="return searchResults.NavChild(event,14,4)" onkeyup="return searchResults.NavChild(event,14,4)" class="SRScope" href="../structr123array4x32.html#aa1fef4a0eb551a70d1ec5d766efcffb5" target="_parent">r123array4x32::operator[](size_type i)</a>
+    <a id="Item14_c5" onkeydown="return searchResults.NavChild(event,14,5)" onkeypress="return searchResults.NavChild(event,14,5)" onkeyup="return searchResults.NavChild(event,14,5)" class="SRScope" href="../structr123array4x32.html#a3161a139a59a1196398d5d4b81d740df" target="_parent">r123array4x32::operator[](size_type i) const </a>
+    <a id="Item14_c6" onkeydown="return searchResults.NavChild(event,14,6)" onkeypress="return searchResults.NavChild(event,14,6)" onkeyup="return searchResults.NavChild(event,14,6)" class="SRScope" href="../structr123array8x32.html#a2b0d17077d419e9f296318161fcc0470" target="_parent">r123array8x32::operator[](size_type i)</a>
+    <a id="Item14_c7" onkeydown="return searchResults.NavChild(event,14,7)" onkeypress="return searchResults.NavChild(event,14,7)" onkeyup="return searchResults.NavChild(event,14,7)" class="SRScope" href="../structr123array8x32.html#ace7ad1b4aca1ad419c373d9cff872805" target="_parent">r123array8x32::operator[](size_type i) const </a>
+    <a id="Item14_c8" onkeydown="return searchResults.NavChild(event,14,8)" onkeypress="return searchResults.NavChild(event,14,8)" onkeyup="return searchResults.NavChild(event,14,8)" class="SRScope" href="../structr123array1x64.html#a10fbaabd5223f286d6e396e15227569c" target="_parent">r123array1x64::operator[](size_type i)</a>
+    <a id="Item14_c9" onkeydown="return searchResults.NavChild(event,14,9)" onkeypress="return searchResults.NavChild(event,14,9)" onkeyup="return searchResults.NavChild(event,14,9)" class="SRScope" href="../structr123array1x64.html#aa13b237c78d719ecfb5a59cdd557c889" target="_parent">r123array1x64::operator[](size_type i) const </a>
+    <a id="Item14_c10" onkeydown="return searchResults.NavChild(event,14,10)" onkeypress="return searchResults.NavChild(event,14,10)" onkeyup="return searchResults.NavChild(event,14,10)" class="SRScope" href="../structr123array2x64.html#a7352cdb2c025b0373ece5c84409a1b1d" target="_parent">r123array2x64::operator[](size_type i)</a>
+    <a id="Item14_c11" onkeydown="return searchResults.NavChild(event,14,11)" onkeypress="return searchResults.NavChild(event,14,11)" onkeyup="return searchResults.NavChild(event,14,11)" class="SRScope" href="../structr123array2x64.html#ae534a7e32afae58303ccc8379408551b" target="_parent">r123array2x64::operator[](size_type i) const </a>
+    <a id="Item14_c12" onkeydown="return searchResults.NavChild(event,14,12)" onkeypress="return searchResults.NavChild(event,14,12)" onkeyup="return searchResults.NavChild(event,14,12)" class="SRScope" href="../structr123array4x64.html#adf867ee2ffc437a3f358431d3729a33d" target="_parent">r123array4x64::operator[](size_type i)</a>
+    <a id="Item14_c13" onkeydown="return searchResults.NavChild(event,14,13)" onkeypress="return searchResults.NavChild(event,14,13)" onkeyup="return searchResults.NavChild(event,14,13)" class="SRScope" href="../structr123array4x64.html#a27c2001bf5af042aa450f17637646bd3" target="_parent">r123array4x64::operator[](size_type i) const </a>
+    <a id="Item14_c14" onkeydown="return searchResults.NavChild(event,14,14)" onkeypress="return searchResults.NavChild(event,14,14)" onkeyup="return searchResults.NavChild(event,14,14)" class="SRScope" href="../structr123array16x8.html#abe9f2b18e2e3b89e00725f6fa69b8236" target="_parent">r123array16x8::operator[](size_type i)</a>
+    <a id="Item14_c15" onkeydown="return searchResults.NavChild(event,14,15)" onkeypress="return searchResults.NavChild(event,14,15)" onkeyup="return searchResults.NavChild(event,14,15)" class="SRScope" href="../structr123array16x8.html#a013713c00f6e8a5adb7be77388c22d8f" target="_parent">r123array16x8::operator[](size_type i) const </a>
+    <a id="Item14_c16" onkeydown="return searchResults.NavChild(event,14,16)" onkeypress="return searchResults.NavChild(event,14,16)" onkeyup="return searchResults.NavChild(event,14,16)" class="SRScope" href="../structr123array1xm128i.html#aba0d6532c59c3c879bcfbad16cab5748" target="_parent">r123array1xm128i::operator[](size_type i)</a>
+    <a id="Item14_c17" onkeydown="return searchResults.NavChild(event,14,17)" onkeypress="return searchResults.NavChild(event,14,17)" onkeyup="return searchResults.NavChild(event,14,17)" class="SRScope" href="../structr123array1xm128i.html#aaa3ccbe6c0838b5bdafcd0dfa3c2c074" target="_parent">r123array1xm128i::operator[](size_type i) const </a>
+  </div>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/functions_70.html b/docs/html/search/functions_70.html
new file mode 100644
index 0000000..2d6da9c
--- /dev/null
+++ b/docs/html/search/functions_70.html
@@ -0,0 +1,68 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_philox2x32_5fr">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../philox_8h.html#acf0a4b82a9fd3f4695c04210df0cbefe" target="_parent">philox2x32_R</a>
+  <span class="SRScope">philox.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_philox2x32keyinit">
+ <div class="SREntry">
+  <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../philox_8h.html#ae5dd55c0697c37598c1fbce66457e124" target="_parent">philox2x32keyinit</a>
+  <span class="SRScope">philox.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_philox2x64_5fr">
+ <div class="SREntry">
+  <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../philox_8h.html#a03c068219ecebcc870afa14a330c0735" target="_parent">philox2x64_R</a>
+  <span class="SRScope">philox.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_philox2x64keyinit">
+ <div class="SREntry">
+  <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="../philox_8h.html#a36b9225fcb73f91d116b424f721275f1" target="_parent">philox2x64keyinit</a>
+  <span class="SRScope">philox.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_philox4x32_5fr">
+ <div class="SREntry">
+  <a id="Item4" onkeydown="return searchResults.Nav(event,4)" onkeypress="return searchResults.Nav(event,4)" onkeyup="return searchResults.Nav(event,4)" class="SRSymbol" href="../philox_8h.html#a205fdd66786445b3e1c4157bd96d0967" target="_parent">philox4x32_R</a>
+  <span class="SRScope">philox.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_philox4x32keyinit">
+ <div class="SREntry">
+  <a id="Item5" onkeydown="return searchResults.Nav(event,5)" onkeypress="return searchResults.Nav(event,5)" onkeyup="return searchResults.Nav(event,5)" class="SRSymbol" href="../philox_8h.html#a5a012bb440c039eda46802b447c31851" target="_parent">philox4x32keyinit</a>
+  <span class="SRScope">philox.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_philox4x64_5fr">
+ <div class="SREntry">
+  <a id="Item6" onkeydown="return searchResults.Nav(event,6)" onkeypress="return searchResults.Nav(event,6)" onkeyup="return searchResults.Nav(event,6)" class="SRSymbol" href="../philox_8h.html#ac72571943d83caf2f79b7bd309a2ae92" target="_parent">philox4x64_R</a>
+  <span class="SRScope">philox.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_philox4x64keyinit">
+ <div class="SREntry">
+  <a id="Item7" onkeydown="return searchResults.Nav(event,7)" onkeypress="return searchResults.Nav(event,7)" onkeyup="return searchResults.Nav(event,7)" class="SRSymbol" href="../philox_8h.html#a101674ffc206e3bd600f9544de0c3c4a" target="_parent">philox4x64keyinit</a>
+  <span class="SRScope">philox.h</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/functions_72.html b/docs/html/search/functions_72.html
new file mode 100644
index 0000000..6dbb56b
--- /dev/null
+++ b/docs/html/search/functions_72.html
@@ -0,0 +1,87 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_r123_5fno_5fmacro_5fsubst">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_r123_5fno_5fmacro_5fsubst')">R123_NO_MACRO_SUBST</a>
+  <div class="SRChildren">
+    <a id="Item0_c0" onkeydown="return searchResults.NavChild(event,0,0)" onkeypress="return searchResults.NavChild(event,0,0)" onkeyup="return searchResults.NavChild(event,0,0)" class="SRScope" href="../classr123_1_1MicroURNG.html#aa05c857c01053cf9185406d69757b101" target="_parent">r123::MicroURNG::R123_NO_MACRO_SUBST()</a>
+    <a id="Item0_c1" onkeydown="return searchResults.NavChild(event,0,1)" onkeypress="return searchResults.NavChild(event,0,1)" onkeyup="return searchResults.NavChild(event,0,1)" class="SRScope" href="../classr123_1_1MicroURNG.html#a3af623b6366d6e848d67d72e4b0f363c" target="_parent">r123::MicroURNG::R123_NO_MACRO_SUBST()</a>
+    <a id="Item0_c2" onkeydown="return searchResults.NavChild(event,0,2)" onkeypress="return searchResults.NavChild(event,0,2)" onkeyup="return searchResults.NavChild(event,0,2)" class="SRScope" href="../structr123_1_1Engine.html#af5441fc62932c3d099f8b16150d2aa81" target="_parent">r123::Engine::R123_NO_MACRO_SUBST()</a>
+    <a id="Item0_c3" onkeydown="return searchResults.NavChild(event,0,3)" onkeypress="return searchResults.NavChild(event,0,3)" onkeyup="return searchResults.NavChild(event,0,3)" class="SRScope" href="../structr123_1_1Engine.html#a112318f7d0015ecf4c3c6a8a5c76371b" target="_parent">r123::Engine::R123_NO_MACRO_SUBST()</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_rbegin">
+ <div class="SREntry">
+  <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_rbegin')">rbegin</a>
+  <div class="SRChildren">
+    <a id="Item1_c0" onkeydown="return searchResults.NavChild(event,1,0)" onkeypress="return searchResults.NavChild(event,1,0)" onkeyup="return searchResults.NavChild(event,1,0)" class="SRScope" href="../structr123array1x32.html#a0c91373623da349c09b952f616b7f5e9" target="_parent">r123array1x32::rbegin()</a>
+    <a id="Item1_c1" onkeydown="return searchResults.NavChild(event,1,1)" onkeypress="return searchResults.NavChild(event,1,1)" onkeyup="return searchResults.NavChild(event,1,1)" class="SRScope" href="../structr123array1x32.html#aacb0604c956b8e50b057a6034c78069c" target="_parent">r123array1x32::rbegin() const </a>
+    <a id="Item1_c2" onkeydown="return searchResults.NavChild(event,1,2)" onkeypress="return searchResults.NavChild(event,1,2)" onkeyup="return searchResults.NavChild(event,1,2)" class="SRScope" href="../structr123array2x32.html#a54e96198e6cd511dc147348f274b0784" target="_parent">r123array2x32::rbegin()</a>
+    <a id="Item1_c3" onkeydown="return searchResults.NavChild(event,1,3)" onkeypress="return searchResults.NavChild(event,1,3)" onkeyup="return searchResults.NavChild(event,1,3)" class="SRScope" href="../structr123array2x32.html#a00afca78e25bbb9e0b00e6ab95ecb162" target="_parent">r123array2x32::rbegin() const </a>
+    <a id="Item1_c4" onkeydown="return searchResults.NavChild(event,1,4)" onkeypress="return searchResults.NavChild(event,1,4)" onkeyup="return searchResults.NavChild(event,1,4)" class="SRScope" href="../structr123array4x32.html#aea9aae067d8347aa53a12a4c9948ae9a" target="_parent">r123array4x32::rbegin()</a>
+    <a id="Item1_c5" onkeydown="return searchResults.NavChild(event,1,5)" onkeypress="return searchResults.NavChild(event,1,5)" onkeyup="return searchResults.NavChild(event,1,5)" class="SRScope" href="../structr123array4x32.html#aadb177f7f316ae47deeea20a686e7909" target="_parent">r123array4x32::rbegin() const </a>
+    <a id="Item1_c6" onkeydown="return searchResults.NavChild(event,1,6)" onkeypress="return searchResults.NavChild(event,1,6)" onkeyup="return searchResults.NavChild(event,1,6)" class="SRScope" href="../structr123array8x32.html#a0a143a573df3282ba5b9cb2190047cca" target="_parent">r123array8x32::rbegin()</a>
+    <a id="Item1_c7" onkeydown="return searchResults.NavChild(event,1,7)" onkeypress="return searchResults.NavChild(event,1,7)" onkeyup="return searchResults.NavChild(event,1,7)" class="SRScope" href="../structr123array8x32.html#a959345559456fbc9e7e72d03a72a032c" target="_parent">r123array8x32::rbegin() const </a>
+    <a id="Item1_c8" onkeydown="return searchResults.NavChild(event,1,8)" onkeypress="return searchResults.NavChild(event,1,8)" onkeyup="return searchResults.NavChild(event,1,8)" class="SRScope" href="../structr123array1x64.html#a56196452051f26a10a4bb3c3d7b75fd0" target="_parent">r123array1x64::rbegin()</a>
+    <a id="Item1_c9" onkeydown="return searchResults.NavChild(event,1,9)" onkeypress="return searchResults.NavChild(event,1,9)" onkeyup="return searchResults.NavChild(event,1,9)" class="SRScope" href="../structr123array1x64.html#a5b080aafd94d77efda03730b6f853334" target="_parent">r123array1x64::rbegin() const </a>
+    <a id="Item1_c10" onkeydown="return searchResults.NavChild(event,1,10)" onkeypress="return searchResults.NavChild(event,1,10)" onkeyup="return searchResults.NavChild(event,1,10)" class="SRScope" href="../structr123array2x64.html#a6888b98627db6056afe3f4ee3396a9a6" target="_parent">r123array2x64::rbegin()</a>
+    <a id="Item1_c11" onkeydown="return searchResults.NavChild(event,1,11)" onkeypress="return searchResults.NavChild(event,1,11)" onkeyup="return searchResults.NavChild(event,1,11)" class="SRScope" href="../structr123array2x64.html#ad6720531d85d0c284ce32cde3b82a9da" target="_parent">r123array2x64::rbegin() const </a>
+    <a id="Item1_c12" onkeydown="return searchResults.NavChild(event,1,12)" onkeypress="return searchResults.NavChild(event,1,12)" onkeyup="return searchResults.NavChild(event,1,12)" class="SRScope" href="../structr123array4x64.html#a102f75427ce01bea725da02b975834b5" target="_parent">r123array4x64::rbegin()</a>
+    <a id="Item1_c13" onkeydown="return searchResults.NavChild(event,1,13)" onkeypress="return searchResults.NavChild(event,1,13)" onkeyup="return searchResults.NavChild(event,1,13)" class="SRScope" href="../structr123array4x64.html#a7ccc255ba0e1803080b117703dc3dc70" target="_parent">r123array4x64::rbegin() const </a>
+    <a id="Item1_c14" onkeydown="return searchResults.NavChild(event,1,14)" onkeypress="return searchResults.NavChild(event,1,14)" onkeyup="return searchResults.NavChild(event,1,14)" class="SRScope" href="../structr123array16x8.html#a5023769f3e418e15a707501aaaac5487" target="_parent">r123array16x8::rbegin()</a>
+    <a id="Item1_c15" onkeydown="return searchResults.NavChild(event,1,15)" onkeypress="return searchResults.NavChild(event,1,15)" onkeyup="return searchResults.NavChild(event,1,15)" class="SRScope" href="../structr123array16x8.html#a5da4b6af6ebaf8cc8204713a993a860c" target="_parent">r123array16x8::rbegin() const </a>
+    <a id="Item1_c16" onkeydown="return searchResults.NavChild(event,1,16)" onkeypress="return searchResults.NavChild(event,1,16)" onkeyup="return searchResults.NavChild(event,1,16)" class="SRScope" href="../structr123array1xm128i.html#a78034de911e765ed64162c894fe2ce05" target="_parent">r123array1xm128i::rbegin()</a>
+    <a id="Item1_c17" onkeydown="return searchResults.NavChild(event,1,17)" onkeypress="return searchResults.NavChild(event,1,17)" onkeyup="return searchResults.NavChild(event,1,17)" class="SRScope" href="../structr123array1xm128i.html#acd4e73f214be1dfaae5d2e20559083eb" target="_parent">r123array1xm128i::rbegin() const </a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_rend">
+ <div class="SREntry">
+  <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_rend')">rend</a>
+  <div class="SRChildren">
+    <a id="Item2_c0" onkeydown="return searchResults.NavChild(event,2,0)" onkeypress="return searchResults.NavChild(event,2,0)" onkeyup="return searchResults.NavChild(event,2,0)" class="SRScope" href="../structr123array1x32.html#a7a55225361d3e9e6f037daa13d340fc4" target="_parent">r123array1x32::rend()</a>
+    <a id="Item2_c1" onkeydown="return searchResults.NavChild(event,2,1)" onkeypress="return searchResults.NavChild(event,2,1)" onkeyup="return searchResults.NavChild(event,2,1)" class="SRScope" href="../structr123array1x32.html#aad87615e3d9d32467d2f139be5be08ce" target="_parent">r123array1x32::rend() const </a>
+    <a id="Item2_c2" onkeydown="return searchResults.NavChild(event,2,2)" onkeypress="return searchResults.NavChild(event,2,2)" onkeyup="return searchResults.NavChild(event,2,2)" class="SRScope" href="../structr123array2x32.html#a383edbf33737eb3e5098d6da4ed326f8" target="_parent">r123array2x32::rend()</a>
+    <a id="Item2_c3" onkeydown="return searchResults.NavChild(event,2,3)" onkeypress="return searchResults.NavChild(event,2,3)" onkeyup="return searchResults.NavChild(event,2,3)" class="SRScope" href="../structr123array2x32.html#ab3f0841dcd9cea6255406b7bc6363621" target="_parent">r123array2x32::rend() const </a>
+    <a id="Item2_c4" onkeydown="return searchResults.NavChild(event,2,4)" onkeypress="return searchResults.NavChild(event,2,4)" onkeyup="return searchResults.NavChild(event,2,4)" class="SRScope" href="../structr123array4x32.html#a368f69bdd03a9af1c6254daf98496dbd" target="_parent">r123array4x32::rend()</a>
+    <a id="Item2_c5" onkeydown="return searchResults.NavChild(event,2,5)" onkeypress="return searchResults.NavChild(event,2,5)" onkeyup="return searchResults.NavChild(event,2,5)" class="SRScope" href="../structr123array4x32.html#a7b2af2db2af5f90c8a3f5f7014193d72" target="_parent">r123array4x32::rend() const </a>
+    <a id="Item2_c6" onkeydown="return searchResults.NavChild(event,2,6)" onkeypress="return searchResults.NavChild(event,2,6)" onkeyup="return searchResults.NavChild(event,2,6)" class="SRScope" href="../structr123array8x32.html#aa84fc75185aedca379d23c0220b5c64a" target="_parent">r123array8x32::rend()</a>
+    <a id="Item2_c7" onkeydown="return searchResults.NavChild(event,2,7)" onkeypress="return searchResults.NavChild(event,2,7)" onkeyup="return searchResults.NavChild(event,2,7)" class="SRScope" href="../structr123array8x32.html#afcf1ea68c3cd0ce7ff6de11d3030eb93" target="_parent">r123array8x32::rend() const </a>
+    <a id="Item2_c8" onkeydown="return searchResults.NavChild(event,2,8)" onkeypress="return searchResults.NavChild(event,2,8)" onkeyup="return searchResults.NavChild(event,2,8)" class="SRScope" href="../structr123array1x64.html#aa0f756e941d0e417355d940fd0ed3a33" target="_parent">r123array1x64::rend()</a>
+    <a id="Item2_c9" onkeydown="return searchResults.NavChild(event,2,9)" onkeypress="return searchResults.NavChild(event,2,9)" onkeyup="return searchResults.NavChild(event,2,9)" class="SRScope" href="../structr123array1x64.html#a19f9d7dd7371c20fc5001d864da453ff" target="_parent">r123array1x64::rend() const </a>
+    <a id="Item2_c10" onkeydown="return searchResults.NavChild(event,2,10)" onkeypress="return searchResults.NavChild(event,2,10)" onkeyup="return searchResults.NavChild(event,2,10)" class="SRScope" href="../structr123array2x64.html#ad1e373b457921fc672ed8892180431eb" target="_parent">r123array2x64::rend()</a>
+    <a id="Item2_c11" onkeydown="return searchResults.NavChild(event,2,11)" onkeypress="return searchResults.NavChild(event,2,11)" onkeyup="return searchResults.NavChild(event,2,11)" class="SRScope" href="../structr123array2x64.html#ad96f87786a8a277bf553d0c5584c20c1" target="_parent">r123array2x64::rend() const </a>
+    <a id="Item2_c12" onkeydown="return searchResults.NavChild(event,2,12)" onkeypress="return searchResults.NavChild(event,2,12)" onkeyup="return searchResults.NavChild(event,2,12)" class="SRScope" href="../structr123array4x64.html#a71f59163070cb4cfd7ddda6f4f8576a1" target="_parent">r123array4x64::rend()</a>
+    <a id="Item2_c13" onkeydown="return searchResults.NavChild(event,2,13)" onkeypress="return searchResults.NavChild(event,2,13)" onkeyup="return searchResults.NavChild(event,2,13)" class="SRScope" href="../structr123array4x64.html#a25538a452f6e709bacfc9f49b7216280" target="_parent">r123array4x64::rend() const </a>
+    <a id="Item2_c14" onkeydown="return searchResults.NavChild(event,2,14)" onkeypress="return searchResults.NavChild(event,2,14)" onkeyup="return searchResults.NavChild(event,2,14)" class="SRScope" href="../structr123array16x8.html#a252b937d65e7b04e5bc507d43643441f" target="_parent">r123array16x8::rend()</a>
+    <a id="Item2_c15" onkeydown="return searchResults.NavChild(event,2,15)" onkeypress="return searchResults.NavChild(event,2,15)" onkeyup="return searchResults.NavChild(event,2,15)" class="SRScope" href="../structr123array16x8.html#a286fef704fcf11e9f00d73703b7ab36b" target="_parent">r123array16x8::rend() const </a>
+    <a id="Item2_c16" onkeydown="return searchResults.NavChild(event,2,16)" onkeypress="return searchResults.NavChild(event,2,16)" onkeyup="return searchResults.NavChild(event,2,16)" class="SRScope" href="../structr123array1xm128i.html#aeb47d483223e3e29f6ad156e5c356a20" target="_parent">r123array1xm128i::rend()</a>
+    <a id="Item2_c17" onkeydown="return searchResults.NavChild(event,2,17)" onkeypress="return searchResults.NavChild(event,2,17)" onkeyup="return searchResults.NavChild(event,2,17)" class="SRScope" href="../structr123array1xm128i.html#a1599d2154e1f407bef2d556c985b0c21" target="_parent">r123array1xm128i::rend() const </a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_reset">
+ <div class="SREntry">
+  <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="../classr123_1_1MicroURNG.html#add2f214254ddc2291e3b2c8b5dbe791a" target="_parent">reset</a>
+  <span class="SRScope">r123::MicroURNG</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/functions_73.html b/docs/html/search/functions_73.html
new file mode 100644
index 0000000..6776037
--- /dev/null
+++ b/docs/html/search/functions_73.html
@@ -0,0 +1,79 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_seed">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_seed')">seed</a>
+  <div class="SRChildren">
+    <a id="Item0_c0" onkeydown="return searchResults.NavChild(event,0,0)" onkeypress="return searchResults.NavChild(event,0,0)" onkeyup="return searchResults.NavChild(event,0,0)" class="SRScope" href="../structr123array1x32.html#adf914fa4384acfcfa1750fd47b758f42" target="_parent">r123array1x32::seed()</a>
+    <a id="Item0_c1" onkeydown="return searchResults.NavChild(event,0,1)" onkeypress="return searchResults.NavChild(event,0,1)" onkeyup="return searchResults.NavChild(event,0,1)" class="SRScope" href="../structr123array2x32.html#a31cf9b80bbcc3c976681b878b7afa046" target="_parent">r123array2x32::seed()</a>
+    <a id="Item0_c2" onkeydown="return searchResults.NavChild(event,0,2)" onkeypress="return searchResults.NavChild(event,0,2)" onkeyup="return searchResults.NavChild(event,0,2)" class="SRScope" href="../structr123array4x32.html#acdaad089dc0e44da5818ebda8404bd16" target="_parent">r123array4x32::seed()</a>
+    <a id="Item0_c3" onkeydown="return searchResults.NavChild(event,0,3)" onkeypress="return searchResults.NavChild(event,0,3)" onkeyup="return searchResults.NavChild(event,0,3)" class="SRScope" href="../structr123array8x32.html#a93139b379ce88e16f75eb9edcf40b357" target="_parent">r123array8x32::seed()</a>
+    <a id="Item0_c4" onkeydown="return searchResults.NavChild(event,0,4)" onkeypress="return searchResults.NavChild(event,0,4)" onkeyup="return searchResults.NavChild(event,0,4)" class="SRScope" href="../structr123array1x64.html#a69be3aa9c2588ce86b5ebb72649ce684" target="_parent">r123array1x64::seed()</a>
+    <a id="Item0_c5" onkeydown="return searchResults.NavChild(event,0,5)" onkeypress="return searchResults.NavChild(event,0,5)" onkeyup="return searchResults.NavChild(event,0,5)" class="SRScope" href="../structr123array2x64.html#a3e5afc5e4c6886611630cec365d8397b" target="_parent">r123array2x64::seed()</a>
+    <a id="Item0_c6" onkeydown="return searchResults.NavChild(event,0,6)" onkeypress="return searchResults.NavChild(event,0,6)" onkeyup="return searchResults.NavChild(event,0,6)" class="SRScope" href="../structr123array4x64.html#a6f0133930367a2260ed5a132bf737131" target="_parent">r123array4x64::seed()</a>
+    <a id="Item0_c7" onkeydown="return searchResults.NavChild(event,0,7)" onkeypress="return searchResults.NavChild(event,0,7)" onkeyup="return searchResults.NavChild(event,0,7)" class="SRScope" href="../structr123array16x8.html#aef0741829d359c31ad913a6770661895" target="_parent">r123array16x8::seed()</a>
+    <a id="Item0_c8" onkeydown="return searchResults.NavChild(event,0,8)" onkeypress="return searchResults.NavChild(event,0,8)" onkeyup="return searchResults.NavChild(event,0,8)" class="SRScope" href="../structr123array1xm128i.html#a6645aeddeb992559150089c49ac335c8" target="_parent">r123array1xm128i::seed()</a>
+    <a id="Item0_c9" onkeydown="return searchResults.NavChild(event,0,9)" onkeypress="return searchResults.NavChild(event,0,9)" onkeyup="return searchResults.NavChild(event,0,9)" class="SRScope" href="../structr123_1_1Engine.html#a93429593bdb12b202b4b8ed38fe08bc4" target="_parent">r123::Engine::seed(result_type r)</a>
+    <a id="Item0_c10" onkeydown="return searchResults.NavChild(event,0,10)" onkeypress="return searchResults.NavChild(event,0,10)" onkeyup="return searchResults.NavChild(event,0,10)" class="SRScope" href="../structr123_1_1Engine.html#ac4d05ee820a1eb70e76cabb14645dad4" target="_parent">r123::Engine::seed(SeedSeq &s)</a>
+    <a id="Item0_c11" onkeydown="return searchResults.NavChild(event,0,11)" onkeypress="return searchResults.NavChild(event,0,11)" onkeyup="return searchResults.NavChild(event,0,11)" class="SRScope" href="../structr123_1_1Engine.html#aff36bc97d11bc66f6c0edb75d8dc88e5" target="_parent">r123::Engine::seed()</a>
+    <a id="Item0_c12" onkeydown="return searchResults.NavChild(event,0,12)" onkeypress="return searchResults.NavChild(event,0,12)" onkeyup="return searchResults.NavChild(event,0,12)" class="SRScope" href="../structr123_1_1Engine.html#a5c4d68dbbccfc71f467f3c902f5b93da" target="_parent">r123::Engine::seed(const ukey_type &uk)</a>
+    <a id="Item0_c13" onkeydown="return searchResults.NavChild(event,0,13)" onkeypress="return searchResults.NavChild(event,0,13)" onkeyup="return searchResults.NavChild(event,0,13)" class="SRScope" href="../structr123_1_1Engine.html#a7bd6d3417cefb904c879f41d2c29e15e" target="_parent">r123::Engine::seed(ukey_type &uk)</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_setcounter">
+ <div class="SREntry">
+  <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../structr123_1_1Engine.html#a6104bf5ee89450403379d5680bfae172" target="_parent">setcounter</a>
+  <span class="SRScope">r123::Engine</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_size">
+ <div class="SREntry">
+  <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_size')">size</a>
+  <div class="SRChildren">
+    <a id="Item2_c0" onkeydown="return searchResults.NavChild(event,2,0)" onkeypress="return searchResults.NavChild(event,2,0)" onkeyup="return searchResults.NavChild(event,2,0)" class="SRScope" href="../structr123array1x32.html#a4cbaf3feeaad0bb7227d065294240561" target="_parent">r123array1x32::size()</a>
+    <a id="Item2_c1" onkeydown="return searchResults.NavChild(event,2,1)" onkeypress="return searchResults.NavChild(event,2,1)" onkeyup="return searchResults.NavChild(event,2,1)" class="SRScope" href="../structr123array2x32.html#ad3d7310bd3ced1bfb05cbe4f3e753490" target="_parent">r123array2x32::size()</a>
+    <a id="Item2_c2" onkeydown="return searchResults.NavChild(event,2,2)" onkeypress="return searchResults.NavChild(event,2,2)" onkeyup="return searchResults.NavChild(event,2,2)" class="SRScope" href="../structr123array4x32.html#a1da4bfacdcd4a520a227bc5c2cff6a4b" target="_parent">r123array4x32::size()</a>
+    <a id="Item2_c3" onkeydown="return searchResults.NavChild(event,2,3)" onkeypress="return searchResults.NavChild(event,2,3)" onkeyup="return searchResults.NavChild(event,2,3)" class="SRScope" href="../structr123array8x32.html#aa4025fb7c1ef2c3376bdc9ae88b91553" target="_parent">r123array8x32::size()</a>
+    <a id="Item2_c4" onkeydown="return searchResults.NavChild(event,2,4)" onkeypress="return searchResults.NavChild(event,2,4)" onkeyup="return searchResults.NavChild(event,2,4)" class="SRScope" href="../structr123array1x64.html#a81dba857004f49f48cb0712edaa39e76" target="_parent">r123array1x64::size()</a>
+    <a id="Item2_c5" onkeydown="return searchResults.NavChild(event,2,5)" onkeypress="return searchResults.NavChild(event,2,5)" onkeyup="return searchResults.NavChild(event,2,5)" class="SRScope" href="../structr123array2x64.html#a10e19c13a970156c4fc18fa070dc9756" target="_parent">r123array2x64::size()</a>
+    <a id="Item2_c6" onkeydown="return searchResults.NavChild(event,2,6)" onkeypress="return searchResults.NavChild(event,2,6)" onkeyup="return searchResults.NavChild(event,2,6)" class="SRScope" href="../structr123array4x64.html#a303c3feaf0783e99292c3220613ea903" target="_parent">r123array4x64::size()</a>
+    <a id="Item2_c7" onkeydown="return searchResults.NavChild(event,2,7)" onkeypress="return searchResults.NavChild(event,2,7)" onkeyup="return searchResults.NavChild(event,2,7)" class="SRScope" href="../structr123array16x8.html#a9a31da5cdf154eba3e44af4e51002a15" target="_parent">r123array16x8::size()</a>
+    <a id="Item2_c8" onkeydown="return searchResults.NavChild(event,2,8)" onkeypress="return searchResults.NavChild(event,2,8)" onkeyup="return searchResults.NavChild(event,2,8)" class="SRScope" href="../structr123array1xm128i.html#a3f272a3884d1d5ca7a207fb31a270617" target="_parent">r123array1xm128i::size()</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_swap">
+ <div class="SREntry">
+  <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_swap')">swap</a>
+  <div class="SRChildren">
+    <a id="Item3_c0" onkeydown="return searchResults.NavChild(event,3,0)" onkeypress="return searchResults.NavChild(event,3,0)" onkeyup="return searchResults.NavChild(event,3,0)" class="SRScope" href="../structr123array1x32.html#afdd8df41333430593d31350bd12db11a" target="_parent">r123array1x32::swap()</a>
+    <a id="Item3_c1" onkeydown="return searchResults.NavChild(event,3,1)" onkeypress="return searchResults.NavChild(event,3,1)" onkeyup="return searchResults.NavChild(event,3,1)" class="SRScope" href="../structr123array2x32.html#a1eac99d2198007201b9c0040a18b258c" target="_parent">r123array2x32::swap()</a>
+    <a id="Item3_c2" onkeydown="return searchResults.NavChild(event,3,2)" onkeypress="return searchResults.NavChild(event,3,2)" onkeyup="return searchResults.NavChild(event,3,2)" class="SRScope" href="../structr123array4x32.html#a3e6f9b7de70de3386bcd2ba44ad68fb5" target="_parent">r123array4x32::swap()</a>
+    <a id="Item3_c3" onkeydown="return searchResults.NavChild(event,3,3)" onkeypress="return searchResults.NavChild(event,3,3)" onkeyup="return searchResults.NavChild(event,3,3)" class="SRScope" href="../structr123array8x32.html#a04c88fca3a8cc3b579e9fc480629888e" target="_parent">r123array8x32::swap()</a>
+    <a id="Item3_c4" onkeydown="return searchResults.NavChild(event,3,4)" onkeypress="return searchResults.NavChild(event,3,4)" onkeyup="return searchResults.NavChild(event,3,4)" class="SRScope" href="../structr123array1x64.html#a6f929a34461c49c9571eedc1df65fd20" target="_parent">r123array1x64::swap()</a>
+    <a id="Item3_c5" onkeydown="return searchResults.NavChild(event,3,5)" onkeypress="return searchResults.NavChild(event,3,5)" onkeyup="return searchResults.NavChild(event,3,5)" class="SRScope" href="../structr123array2x64.html#a78ea0dba10b77c9f228108df9ab09c9d" target="_parent">r123array2x64::swap()</a>
+    <a id="Item3_c6" onkeydown="return searchResults.NavChild(event,3,6)" onkeypress="return searchResults.NavChild(event,3,6)" onkeyup="return searchResults.NavChild(event,3,6)" class="SRScope" href="../structr123array4x64.html#a9845020f8799cbf04156e3114a4c9314" target="_parent">r123array4x64::swap()</a>
+    <a id="Item3_c7" onkeydown="return searchResults.NavChild(event,3,7)" onkeypress="return searchResults.NavChild(event,3,7)" onkeyup="return searchResults.NavChild(event,3,7)" class="SRScope" href="../structr123array16x8.html#a2de9273e9c4b4c47315cb20885e9c6ed" target="_parent">r123array16x8::swap()</a>
+    <a id="Item3_c8" onkeydown="return searchResults.NavChild(event,3,8)" onkeypress="return searchResults.NavChild(event,3,8)" onkeyup="return searchResults.NavChild(event,3,8)" class="SRScope" href="../structr123array1xm128i.html#a05f536079732d192e572bcf395ab6b4e" target="_parent">r123array1xm128i::swap()</a>
+  </div>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/functions_74.html b/docs/html/search/functions_74.html
new file mode 100644
index 0000000..ce2d928
--- /dev/null
+++ b/docs/html/search/functions_74.html
@@ -0,0 +1,92 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_threefry2x32">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../threefry_8h.html#af98f648fb8e458ff0c6825cb903734f2" target="_parent">threefry2x32</a>
+  <span class="SRScope">threefry.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_threefry2x32_5fr">
+ <div class="SREntry">
+  <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../threefry_8h.html#ae8eee0d74a087c6cbc112af11b884501" target="_parent">threefry2x32_R</a>
+  <span class="SRScope">threefry.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_threefry2x32keyinit">
+ <div class="SREntry">
+  <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../threefry_8h.html#a5dbdf6e314925cd676da9f97013aefe4" target="_parent">threefry2x32keyinit</a>
+  <span class="SRScope">threefry.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_threefry2x64">
+ <div class="SREntry">
+  <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="../threefry_8h.html#aea6a4bd5c80354a4f575c9bec2702172" target="_parent">threefry2x64</a>
+  <span class="SRScope">threefry.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_threefry2x64_5fr">
+ <div class="SREntry">
+  <a id="Item4" onkeydown="return searchResults.Nav(event,4)" onkeypress="return searchResults.Nav(event,4)" onkeyup="return searchResults.Nav(event,4)" class="SRSymbol" href="../threefry_8h.html#abe5e028454aef3f2bc459e5db05e0e04" target="_parent">threefry2x64_R</a>
+  <span class="SRScope">threefry.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_threefry2x64keyinit">
+ <div class="SREntry">
+  <a id="Item5" onkeydown="return searchResults.Nav(event,5)" onkeypress="return searchResults.Nav(event,5)" onkeyup="return searchResults.Nav(event,5)" class="SRSymbol" href="../threefry_8h.html#ac14fcf731b175a1cec85a80606ed5f04" target="_parent">threefry2x64keyinit</a>
+  <span class="SRScope">threefry.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_threefry4x32">
+ <div class="SREntry">
+  <a id="Item6" onkeydown="return searchResults.Nav(event,6)" onkeypress="return searchResults.Nav(event,6)" onkeyup="return searchResults.Nav(event,6)" class="SRSymbol" href="../threefry_8h.html#a1636cce9de54f919e8952a42b7f397fd" target="_parent">threefry4x32</a>
+  <span class="SRScope">threefry.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_threefry4x32_5fr">
+ <div class="SREntry">
+  <a id="Item7" onkeydown="return searchResults.Nav(event,7)" onkeypress="return searchResults.Nav(event,7)" onkeyup="return searchResults.Nav(event,7)" class="SRSymbol" href="../threefry_8h.html#a79eb6922e7404e224893f7f723fc240c" target="_parent">threefry4x32_R</a>
+  <span class="SRScope">threefry.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_threefry4x32keyinit">
+ <div class="SREntry">
+  <a id="Item8" onkeydown="return searchResults.Nav(event,8)" onkeypress="return searchResults.Nav(event,8)" onkeyup="return searchResults.Nav(event,8)" class="SRSymbol" href="../threefry_8h.html#a458f442301e620096d73efd479ab8591" target="_parent">threefry4x32keyinit</a>
+  <span class="SRScope">threefry.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_threefry4x64">
+ <div class="SREntry">
+  <a id="Item9" onkeydown="return searchResults.Nav(event,9)" onkeypress="return searchResults.Nav(event,9)" onkeyup="return searchResults.Nav(event,9)" class="SRSymbol" href="../threefry_8h.html#a382d18a49002d2a5e2b2f06d58669d70" target="_parent">threefry4x64</a>
+  <span class="SRScope">threefry.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_threefry4x64_5fr">
+ <div class="SREntry">
+  <a id="Item10" onkeydown="return searchResults.Nav(event,10)" onkeypress="return searchResults.Nav(event,10)" onkeyup="return searchResults.Nav(event,10)" class="SRSymbol" href="../threefry_8h.html#a2e04c3f1ae28c4833444bfafcf22c47f" target="_parent">threefry4x64_R</a>
+  <span class="SRScope">threefry.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_threefry4x64keyinit">
+ <div class="SREntry">
+  <a id="Item11" onkeydown="return searchResults.Nav(event,11)" onkeypress="return searchResults.Nav(event,11)" onkeyup="return searchResults.Nav(event,11)" class="SRSymbol" href="../threefry_8h.html#aeed27be75e75bfffb0bf8c6333f71b10" target="_parent">threefry4x64keyinit</a>
+  <span class="SRScope">threefry.h</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/mag_sel.png b/docs/html/search/mag_sel.png
new file mode 100644
index 0000000..81f6040
Binary files /dev/null and b/docs/html/search/mag_sel.png differ
diff --git a/docs/html/search/namespaces_72.html b/docs/html/search/namespaces_72.html
new file mode 100644
index 0000000..16bc0ca
--- /dev/null
+++ b/docs/html/search/namespaces_72.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_r123">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../namespacer123.html" target="_parent">r123</a>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/nomatches.html b/docs/html/search/nomatches.html
new file mode 100644
index 0000000..b1ded27
--- /dev/null
+++ b/docs/html/search/nomatches.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/related_6f.html b/docs/html/search/related_6f.html
new file mode 100644
index 0000000..c944584
--- /dev/null
+++ b/docs/html/search/related_6f.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_operator_21_3d">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structr123_1_1Engine.html#af0947cdcfc03aef7ec30c9fafa660445" target="_parent">operator!=</a>
+  <span class="SRScope">r123::Engine</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_operator_3c_3c">
+ <div class="SREntry">
+  <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../structr123_1_1Engine.html#ae0321571f689fca00c608d11ecad7d8d" target="_parent">operator<<</a>
+  <span class="SRScope">r123::Engine</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_operator_3d_3d">
+ <div class="SREntry">
+  <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../structr123_1_1Engine.html#a606e3ba824542e52f12df1345126e721" target="_parent">operator==</a>
+  <span class="SRScope">r123::Engine</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_operator_3e_3e">
+ <div class="SREntry">
+  <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="../structr123_1_1Engine.html#ae708b771ab5ac17700d34bad875a16d9" target="_parent">operator>></a>
+  <span class="SRScope">r123::Engine</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/search.css b/docs/html/search/search.css
new file mode 100644
index 0000000..50249e5
--- /dev/null
+++ b/docs/html/search/search.css
@@ -0,0 +1,240 @@
+/*---------------- Search Box */
+
+#FSearchBox {
+    float: left;
+}
+
+#searchli {
+    float: right;
+    display: block;
+    width: 170px;
+    height: 36px;
+}
+
+#MSearchBox {
+    white-space : nowrap;
+    position: absolute;
+    float: none;
+    display: inline;
+    margin-top: 8px;
+    right: 0px;
+    width: 170px;
+    z-index: 102;
+}
+
+#MSearchBox .left
+{
+    display:block;
+    position:absolute;
+    left:10px;
+    width:20px;
+    height:19px;
+    background:url('search_l.png') no-repeat;
+    background-position:right;
+}
+
+#MSearchSelect {
+    display:block;
+    position:absolute;
+    width:20px;
+    height:19px;
+}
+
+.left #MSearchSelect {
+    left:4px;
+}
+
+.right #MSearchSelect {
+    right:5px;
+}
+
+#MSearchField {
+    display:block;
+    position:absolute;
+    height:19px;
+    background:url('search_m.png') repeat-x;
+    border:none;
+    width:116px;
+    margin-left:20px;
+    padding-left:4px;
+    color: #909090;
+    outline: none;
+    font: 9pt Arial, Verdana, sans-serif;
+}
+
+#FSearchBox #MSearchField {
+    margin-left:15px;
+}
+
+#MSearchBox .right {
+    display:block;
+    position:absolute;
+    right:10px;
+    top:0px;
+    width:20px;
+    height:19px;
+    background:url('search_r.png') no-repeat;
+    background-position:left;
+}
+
+#MSearchClose {
+    display: none;
+    position: absolute;
+    top: 4px;
+    background : none;
+    border: none;
+    margin: 0px 4px 0px 0px;
+    padding: 0px 0px;
+    outline: none;
+}
+
+.left #MSearchClose {
+    left: 6px;
+}
+
+.right #MSearchClose {
+    right: 2px;
+}
+
+.MSearchBoxActive #MSearchField {
+    color: #000000;
+}
+
+/*---------------- Search filter selection */
+
+#MSearchSelectWindow {
+    display: none;
+    position: absolute;
+    left: 0; top: 0;
+    border: 1px solid #90A5CE;
+    background-color: #F9FAFC;
+    z-index: 1;
+    padding-top: 4px;
+    padding-bottom: 4px;
+    -moz-border-radius: 4px;
+    -webkit-border-top-left-radius: 4px;
+    -webkit-border-top-right-radius: 4px;
+    -webkit-border-bottom-left-radius: 4px;
+    -webkit-border-bottom-right-radius: 4px;
+    -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+}
+
+.SelectItem {
+    font: 8pt Arial, Verdana, sans-serif;
+    padding-left:  2px;
+    padding-right: 12px;
+    border: 0px;
+}
+
+span.SelectionMark {
+    margin-right: 4px;
+    font-family: monospace;
+    outline-style: none;
+    text-decoration: none;
+}
+
+a.SelectItem {
+    display: block;
+    outline-style: none;
+    color: #000000; 
+    text-decoration: none;
+    padding-left:   6px;
+    padding-right: 12px;
+}
+
+a.SelectItem:focus,
+a.SelectItem:active {
+    color: #000000; 
+    outline-style: none;
+    text-decoration: none;
+}
+
+a.SelectItem:hover {
+    color: #FFFFFF;
+    background-color: #3D578C;
+    outline-style: none;
+    text-decoration: none;
+    cursor: pointer;
+    display: block;
+}
+
+/*---------------- Search results window */
+
+iframe#MSearchResults {
+    width: 60ex;
+    height: 15em;
+}
+
+#MSearchResultsWindow {
+    display: none;
+    position: absolute;
+    left: 0; top: 0;
+    border: 1px solid #000;
+    background-color: #EEF1F7;
+}
+
+/* ----------------------------------- */
+
+
+#SRIndex {
+    clear:both; 
+    padding-bottom: 15px;
+}
+
+.SREntry {
+    font-size: 10pt;
+    padding-left: 1ex;
+}
+
+.SRPage .SREntry {
+    font-size: 8pt;
+    padding: 1px 5px;
+}
+
+body.SRPage {
+    margin: 5px 2px;
+}
+
+.SRChildren {
+    padding-left: 3ex; padding-bottom: .5em 
+}
+
+.SRPage .SRChildren {
+    display: none;
+}
+
+.SRSymbol {
+    font-weight: bold; 
+    color: #425E97;
+    font-family: Arial, Verdana, sans-serif;
+    text-decoration: none;
+    outline: none;
+}
+
+a.SRScope {
+    display: block;
+    color: #425E97; 
+    font-family: Arial, Verdana, sans-serif;
+    text-decoration: none;
+    outline: none;
+}
+
+a.SRSymbol:focus, a.SRSymbol:active,
+a.SRScope:focus, a.SRScope:active {
+    text-decoration: underline;
+}
+
+.SRPage .SRStatus {
+    padding: 2px 5px;
+    font-size: 8pt;
+    font-style: italic;
+}
+
+.SRResult {
+    display: none;
+}
+
+DIV.searchresults {
+    margin-left: 10px;
+    margin-right: 10px;
+}
diff --git a/docs/html/search/search.js b/docs/html/search/search.js
new file mode 100644
index 0000000..97b5bd3
--- /dev/null
+++ b/docs/html/search/search.js
@@ -0,0 +1,746 @@
+// Search script generated by doxygen
+// Copyright (C) 2009 by Dimitri van Heesch.
+
+// The code in this file is loosly based on main.js, part of Natural Docs,
+// which is Copyright (C) 2003-2008 Greg Valure
+// Natural Docs is licensed under the GPL.
+
+var indexSectionsWithContent =
+{
+  0: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010111111111011101101111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+  1: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100010000000100101010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+  2: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+  3: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101010100001100101110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+  4: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010111111111000101101110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+  5: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010011010000010100001001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+  6: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111110001010000101111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+  7: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+  8: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000100110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+  9: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+  10: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000100000000101010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+};
+
+var indexSectionNames =
+{
+  0: "all",
+  1: "classes",
+  2: "namespaces",
+  3: "files",
+  4: "functions",
+  5: "variables",
+  6: "typedefs",
+  7: "enums",
+  8: "enumvalues",
+  9: "related",
+  10: "defines"
+};
+
+function convertToId(search)
+{
+  var result = '';
+  for (i=0;i<search.length;i++)
+  {
+    var c = search.charAt(i);
+    var cn = c.charCodeAt(0);
+    if (c.match(/[a-z0-9]/))
+    {
+      result+=c;
+    }
+    else if (cn<16) 
+    {
+      result+="_0"+cn.toString(16);
+    }
+    else 
+    {
+      result+="_"+cn.toString(16);
+    }
+  }
+  return result;
+}
+
+function getXPos(item)
+{
+  var x = 0;
+  if (item.offsetWidth)
+  {
+    while (item && item!=document.body)
+    {
+      x   += item.offsetLeft;
+      item = item.offsetParent;
+    }
+  }
+  return x;
+}
+
+function getYPos(item)
+{
+  var y = 0;
+  if (item.offsetWidth)
+  {
+     while (item && item!=document.body)
+     {
+       y   += item.offsetTop;
+       item = item.offsetParent;
+     }
+  }
+  return y;
+}
+
+/* A class handling everything associated with the search panel.
+
+   Parameters:
+   name - The name of the global variable that will be 
+          storing this instance.  Is needed to be able to set timeouts.
+   resultPath - path to use for external files
+*/
+function SearchBox(name, resultsPath, inFrame, label)
+{
+  if (!name || !resultsPath) {  alert("Missing parameters to SearchBox."); }
+   
+  // ---------- Instance variables
+  this.name                  = name;
+  this.resultsPath           = resultsPath;
+  this.keyTimeout            = 0;
+  this.keyTimeoutLength      = 500;
+  this.closeSelectionTimeout = 300;
+  this.lastSearchValue       = "";
+  this.lastResultsPage       = "";
+  this.hideTimeout           = 0;
+  this.searchIndex           = 0;
+  this.searchActive          = false;
+  this.insideFrame           = inFrame;
+  this.searchLabel           = label;
+
+  // ----------- DOM Elements
+
+  this.DOMSearchField = function()
+  {  return document.getElementById("MSearchField");  }
+
+  this.DOMSearchSelect = function()
+  {  return document.getElementById("MSearchSelect");  }
+
+  this.DOMSearchSelectWindow = function()
+  {  return document.getElementById("MSearchSelectWindow");  }
+
+  this.DOMPopupSearchResults = function()
+  {  return document.getElementById("MSearchResults");  }
+
+  this.DOMPopupSearchResultsWindow = function()
+  {  return document.getElementById("MSearchResultsWindow");  }
+
+  this.DOMSearchClose = function()
+  {  return document.getElementById("MSearchClose"); }
+
+  this.DOMSearchBox = function()
+  {  return document.getElementById("MSearchBox");  }
+
+  // ------------ Event Handlers
+
+  // Called when focus is added or removed from the search field.
+  this.OnSearchFieldFocus = function(isActive)
+  {
+    this.Activate(isActive);
+  }
+
+  this.OnSearchSelectShow = function()
+  {
+    var searchSelectWindow = this.DOMSearchSelectWindow();
+    var searchField        = this.DOMSearchSelect();
+
+    if (this.insideFrame)
+    {
+      var left = getXPos(searchField);
+      var top  = getYPos(searchField);
+      left += searchField.offsetWidth + 6;
+      top += searchField.offsetHeight;
+
+      // show search selection popup
+      searchSelectWindow.style.display='block';
+      left -= searchSelectWindow.offsetWidth;
+      searchSelectWindow.style.left =  left + 'px';
+      searchSelectWindow.style.top  =  top  + 'px';
+    }
+    else
+    {
+      var left = getXPos(searchField);
+      var top  = getYPos(searchField);
+      top += searchField.offsetHeight;
+
+      // show search selection popup
+      searchSelectWindow.style.display='block';
+      searchSelectWindow.style.left =  left + 'px';
+      searchSelectWindow.style.top  =  top  + 'px';
+    }
+
+    // stop selection hide timer
+    if (this.hideTimeout) 
+    {
+      clearTimeout(this.hideTimeout);
+      this.hideTimeout=0;
+    }
+    return false; // to avoid "image drag" default event
+  }
+
+  this.OnSearchSelectHide = function()
+  {
+    this.hideTimeout = setTimeout(this.name +".CloseSelectionWindow()",
+                                  this.closeSelectionTimeout);
+  }
+
+  // Called when the content of the search field is changed.
+  this.OnSearchFieldChange = function(evt)
+  {
+    if (this.keyTimeout) // kill running timer
+    {
+      clearTimeout(this.keyTimeout);
+      this.keyTimeout = 0;
+    }
+
+    var e  = (evt) ? evt : window.event; // for IE
+    if (e.keyCode==40 || e.keyCode==13)
+    {
+      if (e.shiftKey==1)
+      {
+        this.OnSearchSelectShow();
+        var win=this.DOMSearchSelectWindow(); 
+        for (i=0;i<win.childNodes.length;i++)
+        {
+          var child = win.childNodes[i]; // get span within a
+          if (child.className=='SelectItem')
+          {
+            child.focus();
+            return;
+          }
+        }
+        return;
+      }
+      else if (window.frames.MSearchResults.searchResults)
+      {
+        var elem = window.frames.MSearchResults.searchResults.NavNext(0);
+        if (elem) elem.focus();
+      }
+    }
+    else if (e.keyCode==27) // Escape out of the search field
+    {
+      this.DOMSearchField().blur();
+      this.DOMPopupSearchResultsWindow().style.display = 'none';
+      this.DOMSearchClose().style.display = 'none';
+      this.lastSearchValue = '';
+      this.Activate(false);
+      return;
+    }
+
+    // strip whitespaces
+    var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
+
+    if (searchValue != this.lastSearchValue) // search value has changed
+    {
+      if (searchValue != "") // non-empty search
+      {
+        // set timer for search update
+        this.keyTimeout = setTimeout(this.name + '.Search()',
+                                     this.keyTimeoutLength);
+      }
+      else // empty search field
+      {
+        this.DOMPopupSearchResultsWindow().style.display = 'none';
+        this.DOMSearchClose().style.display = 'none';
+        this.lastSearchValue = '';
+      }
+    }
+  }
+
+  this.SelectItemCount = function(id)
+  {
+    var count=0;
+    var win=this.DOMSearchSelectWindow(); 
+    for (i=0;i<win.childNodes.length;i++)
+    {
+      var child = win.childNodes[i]; // get span within a
+      if (child.className=='SelectItem')
+      {
+        count++;
+      }
+    }
+    return count;
+  }
+
+  this.SelectItemSet = function(id)
+  {
+    var i,j=0;
+    var win=this.DOMSearchSelectWindow(); 
+    for (i=0;i<win.childNodes.length;i++)
+    {
+      var child = win.childNodes[i]; // get span within a
+      if (child.className=='SelectItem')
+      {
+        var node = child.firstChild;
+        if (j==id)
+        {
+          node.innerHTML='•';
+        }
+        else
+        {
+          node.innerHTML=' ';
+        }
+        j++;
+      }
+    }
+  }
+
+  // Called when an search filter selection is made.
+  // set item with index id as the active item
+  this.OnSelectItem = function(id)
+  {
+    this.searchIndex = id;
+    this.SelectItemSet(id);
+    var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
+    if (searchValue!="" && this.searchActive) // something was found -> do a search
+    {
+      this.Search();
+    }
+  }
+
+  this.OnSearchSelectKey = function(evt)
+  {
+    var e = (evt) ? evt : window.event; // for IE
+    if (e.keyCode==40 && this.searchIndex<this.SelectItemCount()) // Down
+    {
+      this.searchIndex++;
+      this.OnSelectItem(this.searchIndex);
+    }
+    else if (e.keyCode==38 && this.searchIndex>0) // Up
+    {
+      this.searchIndex--;
+      this.OnSelectItem(this.searchIndex);
+    }
+    else if (e.keyCode==13 || e.keyCode==27)
+    {
+      this.OnSelectItem(this.searchIndex);
+      this.CloseSelectionWindow();
+      this.DOMSearchField().focus();
+    }
+    return false;
+  }
+
+  // --------- Actions
+
+  // Closes the results window.
+  this.CloseResultsWindow = function()
+  {
+    this.DOMPopupSearchResultsWindow().style.display = 'none';
+    this.DOMSearchClose().style.display = 'none';
+    this.Activate(false);
+  }
+
+  this.CloseSelectionWindow = function()
+  {
+    this.DOMSearchSelectWindow().style.display = 'none';
+  }
+
+  // Performs a search.
+  this.Search = function()
+  {
+    this.keyTimeout = 0;
+
+    // strip leading whitespace
+    var searchValue = this.DOMSearchField().value.replace(/^ +/, "");
+
+    var code = searchValue.toLowerCase().charCodeAt(0);
+    var hexCode;
+    if (code<16) 
+    {
+      hexCode="0"+code.toString(16);
+    }
+    else 
+    {
+      hexCode=code.toString(16);
+    }
+
+    var resultsPage;
+    var resultsPageWithSearch;
+    var hasResultsPage;
+
+    if (indexSectionsWithContent[this.searchIndex].charAt(code) == '1')
+    {
+       resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + '.html';
+       resultsPageWithSearch = resultsPage+'?'+escape(searchValue);
+       hasResultsPage = true;
+    }
+    else // nothing available for this search term
+    {
+       resultsPage = this.resultsPath + '/nomatches.html';
+       resultsPageWithSearch = resultsPage;
+       hasResultsPage = false;
+    }
+
+    window.frames.MSearchResults.location.href = resultsPageWithSearch;  
+    var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow();
+
+    if (domPopupSearchResultsWindow.style.display!='block')
+    {
+       var domSearchBox = this.DOMSearchBox();
+       this.DOMSearchClose().style.display = 'inline';
+       if (this.insideFrame)
+       {
+         var domPopupSearchResults = this.DOMPopupSearchResults();
+         domPopupSearchResultsWindow.style.position = 'relative';
+         domPopupSearchResultsWindow.style.display  = 'block';
+         var width = document.body.clientWidth - 8; // the -8 is for IE :-(
+         domPopupSearchResultsWindow.style.width    = width + 'px';
+         domPopupSearchResults.style.width          = width + 'px';
+       }
+       else
+       {
+         var domPopupSearchResults = this.DOMPopupSearchResults();
+         var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth;
+         var top  = getYPos(domSearchBox) + 20;  // domSearchBox.offsetHeight + 1;
+         domPopupSearchResultsWindow.style.display = 'block';
+         left -= domPopupSearchResults.offsetWidth;
+         domPopupSearchResultsWindow.style.top     = top  + 'px';
+         domPopupSearchResultsWindow.style.left    = left + 'px';
+       }
+    }
+
+    this.lastSearchValue = searchValue;
+    this.lastResultsPage = resultsPage;
+  }
+
+  // -------- Activation Functions
+
+  // Activates or deactivates the search panel, resetting things to 
+  // their default values if necessary. 
+  this.Activate = function(isActive)
+  {
+    if (isActive || // open it
+        this.DOMPopupSearchResultsWindow().style.display == 'block' 
+       )
+    {
+      this.DOMSearchBox().className = 'MSearchBoxActive';
+
+      var searchField = this.DOMSearchField();
+
+      if (searchField.value == this.searchLabel) // clear "Search" term upon entry
+      {  
+        searchField.value = '';  
+        this.searchActive = true;
+      }
+    }
+    else if (!isActive) // directly remove the panel
+    {
+      this.DOMSearchBox().className = 'MSearchBoxInactive';
+      this.DOMSearchField().value   = this.searchLabel;
+      this.searchActive             = false;
+      this.lastSearchValue          = ''
+      this.lastResultsPage          = '';
+    }
+  }
+}
+
+// -----------------------------------------------------------------------
+
+// The class that handles everything on the search results page.
+function SearchResults(name)
+{
+    // The number of matches from the last run of <Search()>.
+    this.lastMatchCount = 0;
+    this.lastKey = 0;
+    this.repeatOn = false;
+
+    // Toggles the visibility of the passed element ID.
+    this.FindChildElement = function(id)
+    {
+      var parentElement = document.getElementById(id);
+      var element = parentElement.firstChild;
+
+      while (element && element!=parentElement)
+      {
+        if (element.nodeName == 'DIV' && element.className == 'SRChildren')
+        {
+          return element;
+        }
+
+        if (element.nodeName == 'DIV' && element.hasChildNodes())
+        {  
+           element = element.firstChild;  
+        }
+        else if (element.nextSibling)
+        {  
+           element = element.nextSibling;  
+        }
+        else
+        {
+          do
+          {
+            element = element.parentNode;
+          }
+          while (element && element!=parentElement && !element.nextSibling);
+
+          if (element && element!=parentElement)
+          {  
+            element = element.nextSibling;  
+          }
+        }
+      }
+    }
+
+    this.Toggle = function(id)
+    {
+      var element = this.FindChildElement(id);
+      if (element)
+      {
+        if (element.style.display == 'block')
+        {
+          element.style.display = 'none';
+        }
+        else
+        {
+          element.style.display = 'block';
+        }
+      }
+    }
+
+    // Searches for the passed string.  If there is no parameter,
+    // it takes it from the URL query.
+    //
+    // Always returns true, since other documents may try to call it
+    // and that may or may not be possible.
+    this.Search = function(search)
+    {
+      if (!search) // get search word from URL
+      {
+        search = window.location.search;
+        search = search.substring(1);  // Remove the leading '?'
+        search = unescape(search);
+      }
+
+      search = search.replace(/^ +/, ""); // strip leading spaces
+      search = search.replace(/ +$/, ""); // strip trailing spaces
+      search = search.toLowerCase();
+      search = convertToId(search);
+
+      var resultRows = document.getElementsByTagName("div");
+      var matches = 0;
+
+      var i = 0;
+      while (i < resultRows.length)
+      {
+        var row = resultRows.item(i);
+        if (row.className == "SRResult")
+        {
+          var rowMatchName = row.id.toLowerCase();
+          rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_'
+
+          if (search.length<=rowMatchName.length && 
+             rowMatchName.substr(0, search.length)==search)
+          {
+            row.style.display = 'block';
+            matches++;
+          }
+          else
+          {
+            row.style.display = 'none';
+          }
+        }
+        i++;
+      }
+      document.getElementById("Searching").style.display='none';
+      if (matches == 0) // no results
+      {
+        document.getElementById("NoMatches").style.display='block';
+      }
+      else // at least one result
+      {
+        document.getElementById("NoMatches").style.display='none';
+      }
+      this.lastMatchCount = matches;
+      return true;
+    }
+
+    // return the first item with index index or higher that is visible
+    this.NavNext = function(index)
+    {
+      var focusItem;
+      while (1)
+      {
+        var focusName = 'Item'+index;
+        focusItem = document.getElementById(focusName);
+        if (focusItem && focusItem.parentNode.parentNode.style.display=='block')
+        {
+          break;
+        }
+        else if (!focusItem) // last element
+        {
+          break;
+        }
+        focusItem=null;
+        index++;
+      }
+      return focusItem;
+    }
+
+    this.NavPrev = function(index)
+    {
+      var focusItem;
+      while (1)
+      {
+        var focusName = 'Item'+index;
+        focusItem = document.getElementById(focusName);
+        if (focusItem && focusItem.parentNode.parentNode.style.display=='block')
+        {
+          break;
+        }
+        else if (!focusItem) // last element
+        {
+          break;
+        }
+        focusItem=null;
+        index--;
+      }
+      return focusItem;
+    }
+
+    this.ProcessKeys = function(e)
+    {
+      if (e.type == "keydown") 
+      {
+        this.repeatOn = false;
+        this.lastKey = e.keyCode;
+      }
+      else if (e.type == "keypress")
+      {
+        if (!this.repeatOn)
+        {
+          if (this.lastKey) this.repeatOn = true;
+          return false; // ignore first keypress after keydown
+        }
+      }
+      else if (e.type == "keyup")
+      {
+        this.lastKey = 0;
+        this.repeatOn = false;
+      }
+      return this.lastKey!=0;
+    }
+
+    this.Nav = function(evt,itemIndex) 
+    {
+      var e  = (evt) ? evt : window.event; // for IE
+      if (e.keyCode==13) return true;
+      if (!this.ProcessKeys(e)) return false;
+
+      if (this.lastKey==38) // Up
+      {
+        var newIndex = itemIndex-1;
+        var focusItem = this.NavPrev(newIndex);
+        if (focusItem)
+        {
+          var child = this.FindChildElement(focusItem.parentNode.parentNode.id);
+          if (child && child.style.display == 'block') // children visible
+          { 
+            var n=0;
+            var tmpElem;
+            while (1) // search for last child
+            {
+              tmpElem = document.getElementById('Item'+newIndex+'_c'+n);
+              if (tmpElem)
+              {
+                focusItem = tmpElem;
+              }
+              else // found it!
+              {
+                break;
+              }
+              n++;
+            }
+          }
+        }
+        if (focusItem)
+        {
+          focusItem.focus();
+        }
+        else // return focus to search field
+        {
+           parent.document.getElementById("MSearchField").focus();
+        }
+      }
+      else if (this.lastKey==40) // Down
+      {
+        var newIndex = itemIndex+1;
+        var focusItem;
+        var item = document.getElementById('Item'+itemIndex);
+        var elem = this.FindChildElement(item.parentNode.parentNode.id);
+        if (elem && elem.style.display == 'block') // children visible
+        {
+          focusItem = document.getElementById('Item'+itemIndex+'_c0');
+        }
+        if (!focusItem) focusItem = this.NavNext(newIndex);
+        if (focusItem)  focusItem.focus();
+      }
+      else if (this.lastKey==39) // Right
+      {
+        var item = document.getElementById('Item'+itemIndex);
+        var elem = this.FindChildElement(item.parentNode.parentNode.id);
+        if (elem) elem.style.display = 'block';
+      }
+      else if (this.lastKey==37) // Left
+      {
+        var item = document.getElementById('Item'+itemIndex);
+        var elem = this.FindChildElement(item.parentNode.parentNode.id);
+        if (elem) elem.style.display = 'none';
+      }
+      else if (this.lastKey==27) // Escape
+      {
+        parent.searchBox.CloseResultsWindow();
+        parent.document.getElementById("MSearchField").focus();
+      }
+      else if (this.lastKey==13) // Enter
+      {
+        return true;
+      }
+      return false;
+    }
+
+    this.NavChild = function(evt,itemIndex,childIndex)
+    {
+      var e  = (evt) ? evt : window.event; // for IE
+      if (e.keyCode==13) return true;
+      if (!this.ProcessKeys(e)) return false;
+
+      if (this.lastKey==38) // Up
+      {
+        if (childIndex>0)
+        {
+          var newIndex = childIndex-1;
+          document.getElementById('Item'+itemIndex+'_c'+newIndex).focus();
+        }
+        else // already at first child, jump to parent
+        {
+          document.getElementById('Item'+itemIndex).focus();
+        }
+      }
+      else if (this.lastKey==40) // Down
+      {
+        var newIndex = childIndex+1;
+        var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex);
+        if (!elem) // last child, jump to parent next parent
+        {
+          elem = this.NavNext(itemIndex+1);
+        }
+        if (elem)
+        {
+          elem.focus();
+        } 
+      }
+      else if (this.lastKey==27) // Escape
+      {
+        parent.searchBox.CloseResultsWindow();
+        parent.document.getElementById("MSearchField").focus();
+      }
+      else if (this.lastKey==13) // Enter
+      {
+        return true;
+      }
+      return false;
+    }
+}
diff --git a/docs/html/search/search_l.png b/docs/html/search/search_l.png
new file mode 100644
index 0000000..c872f4d
Binary files /dev/null and b/docs/html/search/search_l.png differ
diff --git a/docs/html/search/search_m.png b/docs/html/search/search_m.png
new file mode 100644
index 0000000..b429a16
Binary files /dev/null and b/docs/html/search/search_m.png differ
diff --git a/docs/html/search/search_r.png b/docs/html/search/search_r.png
new file mode 100644
index 0000000..97ee8b4
Binary files /dev/null and b/docs/html/search/search_r.png differ
diff --git a/docs/html/search/typedefs_61.html b/docs/html/search/typedefs_61.html
new file mode 100644
index 0000000..2577ee9
--- /dev/null
+++ b/docs/html/search/typedefs_61.html
@@ -0,0 +1,152 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_aesni1xm128i_5fctr_5ft">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../group__AESNI.html#gaab0f809a22e01e6cb6135f6af73bb532" target="_parent">aesni1xm128i_ctr_t</a>
+  <span class="SRScope">aes.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_aesni1xm128i_5fukey_5ft">
+ <div class="SREntry">
+  <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../group__AESNI.html#gaf4fa221e6387d0454e2e6399245bdead" target="_parent">aesni1xm128i_ukey_t</a>
+  <span class="SRScope">aes.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_aesni4x32_5fctr_5ft">
+ <div class="SREntry">
+  <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../group__AESNI.html#gae7459b3f4ee0e424cb4f13b4d5efc1fe" target="_parent">aesni4x32_ctr_t</a>
+  <span class="SRScope">aes.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_aesni4x32_5fkey_5ft">
+ <div class="SREntry">
+  <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="../group__AESNI.html#ga6d88accdcfa339b48e14021a572e269b" target="_parent">aesni4x32_key_t</a>
+  <span class="SRScope">aes.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_aesni4x32_5fukey_5ft">
+ <div class="SREntry">
+  <a id="Item4" onkeydown="return searchResults.Nav(event,4)" onkeypress="return searchResults.Nav(event,4)" onkeyup="return searchResults.Nav(event,4)" class="SRSymbol" href="../group__AESNI.html#gac2c3248ec3b03591d442cf634fb51af5" target="_parent">aesni4x32_ukey_t</a>
+  <span class="SRScope">aes.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_array16x8">
+ <div class="SREntry">
+  <a id="Item5" onkeydown="return searchResults.Nav(event,5)" onkeypress="return searchResults.Nav(event,5)" onkeyup="return searchResults.Nav(event,5)" class="SRSymbol" href="../namespacer123.html#ac3148aed79e81051d40e9b29a8914cf4" target="_parent">Array16x8</a>
+  <span class="SRScope">r123</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_array1x32">
+ <div class="SREntry">
+  <a id="Item6" onkeydown="return searchResults.Nav(event,6)" onkeypress="return searchResults.Nav(event,6)" onkeyup="return searchResults.Nav(event,6)" class="SRSymbol" href="../namespacer123.html#acc1b0ed919ef806de26f5ff5b934b313" target="_parent">Array1x32</a>
+  <span class="SRScope">r123</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_array1x64">
+ <div class="SREntry">
+  <a id="Item7" onkeydown="return searchResults.Nav(event,7)" onkeypress="return searchResults.Nav(event,7)" onkeyup="return searchResults.Nav(event,7)" class="SRSymbol" href="../namespacer123.html#aeb81c4265759fad9993e09fda21ff4fa" target="_parent">Array1x64</a>
+  <span class="SRScope">r123</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_array1xm128i">
+ <div class="SREntry">
+  <a id="Item8" onkeydown="return searchResults.Nav(event,8)" onkeypress="return searchResults.Nav(event,8)" onkeyup="return searchResults.Nav(event,8)" class="SRSymbol" href="../namespacer123.html#adbb729a97ee41e7cb075058b55a58c5d" target="_parent">Array1xm128i</a>
+  <span class="SRScope">r123</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_array2x32">
+ <div class="SREntry">
+  <a id="Item9" onkeydown="return searchResults.Nav(event,9)" onkeypress="return searchResults.Nav(event,9)" onkeyup="return searchResults.Nav(event,9)" class="SRSymbol" href="../namespacer123.html#ab853ac55f8188e4a09d12ab23f2d8dea" target="_parent">Array2x32</a>
+  <span class="SRScope">r123</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_array2x64">
+ <div class="SREntry">
+  <a id="Item10" onkeydown="return searchResults.Nav(event,10)" onkeypress="return searchResults.Nav(event,10)" onkeyup="return searchResults.Nav(event,10)" class="SRSymbol" href="../namespacer123.html#ad3b670563762f605a6fce61b5bab8412" target="_parent">Array2x64</a>
+  <span class="SRScope">r123</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_array4x32">
+ <div class="SREntry">
+  <a id="Item11" onkeydown="return searchResults.Nav(event,11)" onkeypress="return searchResults.Nav(event,11)" onkeyup="return searchResults.Nav(event,11)" class="SRSymbol" href="../namespacer123.html#a0c352c3ea265e7fd182559e557113195" target="_parent">Array4x32</a>
+  <span class="SRScope">r123</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_array4x64">
+ <div class="SREntry">
+  <a id="Item12" onkeydown="return searchResults.Nav(event,12)" onkeypress="return searchResults.Nav(event,12)" onkeyup="return searchResults.Nav(event,12)" class="SRSymbol" href="../namespacer123.html#a54c1a72670974c11acff37279eb23147" target="_parent">Array4x64</a>
+  <span class="SRScope">r123</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_array8x32">
+ <div class="SREntry">
+  <a id="Item13" onkeydown="return searchResults.Nav(event,13)" onkeypress="return searchResults.Nav(event,13)" onkeyup="return searchResults.Nav(event,13)" class="SRSymbol" href="../namespacer123.html#aea31cf23efbfcc11808b7e394922f4d2" target="_parent">Array8x32</a>
+  <span class="SRScope">r123</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_ars1xm128i">
+ <div class="SREntry">
+  <a id="Item14" onkeydown="return searchResults.Nav(event,14)" onkeypress="return searchResults.Nav(event,14)" onkeyup="return searchResults.Nav(event,14)" class="SRSymbol" href="../namespacer123.html#a964aa9123913d1f8cf535e0caaa4155f" target="_parent">ARS1xm128i</a>
+  <span class="SRScope">r123</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_ars1xm128i_5fctr_5ft">
+ <div class="SREntry">
+  <a id="Item15" onkeydown="return searchResults.Nav(event,15)" onkeypress="return searchResults.Nav(event,15)" onkeyup="return searchResults.Nav(event,15)" class="SRSymbol" href="../group__AESNI.html#ga23ddf8109ce08f2bc14401c5f269d2a9" target="_parent">ars1xm128i_ctr_t</a>
+  <span class="SRScope">ars.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_ars1xm128i_5fkey_5ft">
+ <div class="SREntry">
+  <a id="Item16" onkeydown="return searchResults.Nav(event,16)" onkeypress="return searchResults.Nav(event,16)" onkeyup="return searchResults.Nav(event,16)" class="SRSymbol" href="../group__AESNI.html#ga2c5b351a47bb39f4d1769506c98c06e2" target="_parent">ars1xm128i_key_t</a>
+  <span class="SRScope">ars.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_ars1xm128i_5fukey_5ft">
+ <div class="SREntry">
+  <a id="Item17" onkeydown="return searchResults.Nav(event,17)" onkeypress="return searchResults.Nav(event,17)" onkeyup="return searchResults.Nav(event,17)" class="SRSymbol" href="../group__AESNI.html#gaeaa234225e7dcec2ffcdb32a0faad4f0" target="_parent">ars1xm128i_ukey_t</a>
+  <span class="SRScope">ars.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_ars4x32">
+ <div class="SREntry">
+  <a id="Item18" onkeydown="return searchResults.Nav(event,18)" onkeypress="return searchResults.Nav(event,18)" onkeyup="return searchResults.Nav(event,18)" class="SRSymbol" href="../namespacer123.html#afd2070dc979024a14317bd57c3a4c352" target="_parent">ARS4x32</a>
+  <span class="SRScope">r123</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_ars4x32_5fctr_5ft">
+ <div class="SREntry">
+  <a id="Item19" onkeydown="return searchResults.Nav(event,19)" onkeypress="return searchResults.Nav(event,19)" onkeyup="return searchResults.Nav(event,19)" class="SRSymbol" href="../group__AESNI.html#ga61721da91a455cb587ce6bc4a0f56117" target="_parent">ars4x32_ctr_t</a>
+  <span class="SRScope">ars.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_ars4x32_5fkey_5ft">
+ <div class="SREntry">
+  <a id="Item20" onkeydown="return searchResults.Nav(event,20)" onkeypress="return searchResults.Nav(event,20)" onkeyup="return searchResults.Nav(event,20)" class="SRSymbol" href="../group__AESNI.html#ga3a1426aa6aaa06330d48ec8173cd3e7b" target="_parent">ars4x32_key_t</a>
+  <span class="SRScope">ars.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_ars4x32_5fukey_5ft">
+ <div class="SREntry">
+  <a id="Item21" onkeydown="return searchResults.Nav(event,21)" onkeypress="return searchResults.Nav(event,21)" onkeyup="return searchResults.Nav(event,21)" class="SRSymbol" href="../group__AESNI.html#ga54cb318ff6bd4df405897b2b9a4b109f" target="_parent">ars4x32_ukey_t</a>
+  <span class="SRScope">ars.h</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/typedefs_62.html b/docs/html/search/typedefs_62.html
new file mode 100644
index 0000000..2cf1348
--- /dev/null
+++ b/docs/html/search/typedefs_62.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_bctype">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structr123_1_1ReinterpretCtr.html#ae0accaee618b5eb28a24acd516b3a4c6" target="_parent">bctype</a>
+  <span class="SRScope">r123::ReinterpretCtr</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/typedefs_63.html b/docs/html/search/typedefs_63.html
new file mode 100644
index 0000000..59f0f2e
--- /dev/null
+++ b/docs/html/search/typedefs_63.html
@@ -0,0 +1,115 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_cbrng_5ftype">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_cbrng_5ftype')">cbrng_type</a>
+  <div class="SRChildren">
+    <a id="Item0_c0" onkeydown="return searchResults.NavChild(event,0,0)" onkeypress="return searchResults.NavChild(event,0,0)" onkeyup="return searchResults.NavChild(event,0,0)" class="SRScope" href="../classr123_1_1MicroURNG.html#ab0b3a77c9408dbcb2f9d6b5c67e9c3f7" target="_parent">r123::MicroURNG::cbrng_type()</a>
+    <a id="Item0_c1" onkeydown="return searchResults.NavChild(event,0,1)" onkeypress="return searchResults.NavChild(event,0,1)" onkeyup="return searchResults.NavChild(event,0,1)" class="SRScope" href="../structr123_1_1Engine.html#a45ee0086cf8cd6d10febb76dc88f8b22" target="_parent">r123::Engine::cbrng_type()</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_const_5fiterator">
+ <div class="SREntry">
+  <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_const_5fiterator')">const_iterator</a>
+  <div class="SRChildren">
+    <a id="Item1_c0" onkeydown="return searchResults.NavChild(event,1,0)" onkeypress="return searchResults.NavChild(event,1,0)" onkeyup="return searchResults.NavChild(event,1,0)" class="SRScope" href="../structr123array1x32.html#ac7f82e8848759ec5b0026dce8830274e" target="_parent">r123array1x32::const_iterator()</a>
+    <a id="Item1_c1" onkeydown="return searchResults.NavChild(event,1,1)" onkeypress="return searchResults.NavChild(event,1,1)" onkeyup="return searchResults.NavChild(event,1,1)" class="SRScope" href="../structr123array2x32.html#a7963141a4af4c4aa74708909312a8644" target="_parent">r123array2x32::const_iterator()</a>
+    <a id="Item1_c2" onkeydown="return searchResults.NavChild(event,1,2)" onkeypress="return searchResults.NavChild(event,1,2)" onkeyup="return searchResults.NavChild(event,1,2)" class="SRScope" href="../structr123array4x32.html#a1078ba2cd13bb2a4f83e1b089c816ba7" target="_parent">r123array4x32::const_iterator()</a>
+    <a id="Item1_c3" onkeydown="return searchResults.NavChild(event,1,3)" onkeypress="return searchResults.NavChild(event,1,3)" onkeyup="return searchResults.NavChild(event,1,3)" class="SRScope" href="../structr123array8x32.html#aa026dfdf1e2741c96db4343ceffd3c9f" target="_parent">r123array8x32::const_iterator()</a>
+    <a id="Item1_c4" onkeydown="return searchResults.NavChild(event,1,4)" onkeypress="return searchResults.NavChild(event,1,4)" onkeyup="return searchResults.NavChild(event,1,4)" class="SRScope" href="../structr123array1x64.html#a28ff01c0fefda1d81112ec9812156164" target="_parent">r123array1x64::const_iterator()</a>
+    <a id="Item1_c5" onkeydown="return searchResults.NavChild(event,1,5)" onkeypress="return searchResults.NavChild(event,1,5)" onkeyup="return searchResults.NavChild(event,1,5)" class="SRScope" href="../structr123array2x64.html#ae4f249e82506274b19e6077c3d3f03af" target="_parent">r123array2x64::const_iterator()</a>
+    <a id="Item1_c6" onkeydown="return searchResults.NavChild(event,1,6)" onkeypress="return searchResults.NavChild(event,1,6)" onkeyup="return searchResults.NavChild(event,1,6)" class="SRScope" href="../structr123array4x64.html#a2aa5637bebf5c9c753edbce62e889d77" target="_parent">r123array4x64::const_iterator()</a>
+    <a id="Item1_c7" onkeydown="return searchResults.NavChild(event,1,7)" onkeypress="return searchResults.NavChild(event,1,7)" onkeyup="return searchResults.NavChild(event,1,7)" class="SRScope" href="../structr123array16x8.html#adda842a447360852f2ffa28fb97eb40c" target="_parent">r123array16x8::const_iterator()</a>
+    <a id="Item1_c8" onkeydown="return searchResults.NavChild(event,1,8)" onkeypress="return searchResults.NavChild(event,1,8)" onkeyup="return searchResults.NavChild(event,1,8)" class="SRScope" href="../structr123array1xm128i.html#af6be8b009459737fa25d9d2ac7c4e6aa" target="_parent">r123array1xm128i::const_iterator()</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_const_5fpointer">
+ <div class="SREntry">
+  <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_const_5fpointer')">const_pointer</a>
+  <div class="SRChildren">
+    <a id="Item2_c0" onkeydown="return searchResults.NavChild(event,2,0)" onkeypress="return searchResults.NavChild(event,2,0)" onkeyup="return searchResults.NavChild(event,2,0)" class="SRScope" href="../structr123array1x32.html#ab4a82a1e5300814272528a05587d555b" target="_parent">r123array1x32::const_pointer()</a>
+    <a id="Item2_c1" onkeydown="return searchResults.NavChild(event,2,1)" onkeypress="return searchResults.NavChild(event,2,1)" onkeyup="return searchResults.NavChild(event,2,1)" class="SRScope" href="../structr123array2x32.html#accf098ed49f9d84cfa3831a9fe183885" target="_parent">r123array2x32::const_pointer()</a>
+    <a id="Item2_c2" onkeydown="return searchResults.NavChild(event,2,2)" onkeypress="return searchResults.NavChild(event,2,2)" onkeyup="return searchResults.NavChild(event,2,2)" class="SRScope" href="../structr123array4x32.html#a28d13183d1bfcc05854dc39bebbcdf51" target="_parent">r123array4x32::const_pointer()</a>
+    <a id="Item2_c3" onkeydown="return searchResults.NavChild(event,2,3)" onkeypress="return searchResults.NavChild(event,2,3)" onkeyup="return searchResults.NavChild(event,2,3)" class="SRScope" href="../structr123array8x32.html#a621f6293254c6300b1d1b9835b7f30ba" target="_parent">r123array8x32::const_pointer()</a>
+    <a id="Item2_c4" onkeydown="return searchResults.NavChild(event,2,4)" onkeypress="return searchResults.NavChild(event,2,4)" onkeyup="return searchResults.NavChild(event,2,4)" class="SRScope" href="../structr123array1x64.html#a2b23f2aa3edf21084ece97a03367bff5" target="_parent">r123array1x64::const_pointer()</a>
+    <a id="Item2_c5" onkeydown="return searchResults.NavChild(event,2,5)" onkeypress="return searchResults.NavChild(event,2,5)" onkeyup="return searchResults.NavChild(event,2,5)" class="SRScope" href="../structr123array2x64.html#a3a13a452ca15f62f8ddcd8b7de9efa08" target="_parent">r123array2x64::const_pointer()</a>
+    <a id="Item2_c6" onkeydown="return searchResults.NavChild(event,2,6)" onkeypress="return searchResults.NavChild(event,2,6)" onkeyup="return searchResults.NavChild(event,2,6)" class="SRScope" href="../structr123array4x64.html#aa268882d3b4fb43ec9d82baf22d58cc5" target="_parent">r123array4x64::const_pointer()</a>
+    <a id="Item2_c7" onkeydown="return searchResults.NavChild(event,2,7)" onkeypress="return searchResults.NavChild(event,2,7)" onkeyup="return searchResults.NavChild(event,2,7)" class="SRScope" href="../structr123array16x8.html#adbe5a6feb583ce6a682496e14cec9cca" target="_parent">r123array16x8::const_pointer()</a>
+    <a id="Item2_c8" onkeydown="return searchResults.NavChild(event,2,8)" onkeypress="return searchResults.NavChild(event,2,8)" onkeyup="return searchResults.NavChild(event,2,8)" class="SRScope" href="../structr123array1xm128i.html#acc3f6ecf7e6a6bc98c3681c80120ed61" target="_parent">r123array1xm128i::const_pointer()</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_const_5freference">
+ <div class="SREntry">
+  <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_const_5freference')">const_reference</a>
+  <div class="SRChildren">
+    <a id="Item3_c0" onkeydown="return searchResults.NavChild(event,3,0)" onkeypress="return searchResults.NavChild(event,3,0)" onkeyup="return searchResults.NavChild(event,3,0)" class="SRScope" href="../structr123array1x32.html#adfa6614a8b20cd30c192458c8c2874da" target="_parent">r123array1x32::const_reference()</a>
+    <a id="Item3_c1" onkeydown="return searchResults.NavChild(event,3,1)" onkeypress="return searchResults.NavChild(event,3,1)" onkeyup="return searchResults.NavChild(event,3,1)" class="SRScope" href="../structr123array2x32.html#a9d71cce3d7ccea7f48da94cf023e1486" target="_parent">r123array2x32::const_reference()</a>
+    <a id="Item3_c2" onkeydown="return searchResults.NavChild(event,3,2)" onkeypress="return searchResults.NavChild(event,3,2)" onkeyup="return searchResults.NavChild(event,3,2)" class="SRScope" href="../structr123array4x32.html#a09d7e0d7b1572fc5fe2be119870a39bc" target="_parent">r123array4x32::const_reference()</a>
+    <a id="Item3_c3" onkeydown="return searchResults.NavChild(event,3,3)" onkeypress="return searchResults.NavChild(event,3,3)" onkeyup="return searchResults.NavChild(event,3,3)" class="SRScope" href="../structr123array8x32.html#a2e7eda7e8940b37e17aef9b0efec3685" target="_parent">r123array8x32::const_reference()</a>
+    <a id="Item3_c4" onkeydown="return searchResults.NavChild(event,3,4)" onkeypress="return searchResults.NavChild(event,3,4)" onkeyup="return searchResults.NavChild(event,3,4)" class="SRScope" href="../structr123array1x64.html#af75ba9dbfe38e0a6c143f446b7e4b995" target="_parent">r123array1x64::const_reference()</a>
+    <a id="Item3_c5" onkeydown="return searchResults.NavChild(event,3,5)" onkeypress="return searchResults.NavChild(event,3,5)" onkeyup="return searchResults.NavChild(event,3,5)" class="SRScope" href="../structr123array2x64.html#a5d80c6b28d869a5422d99541ee1fb93f" target="_parent">r123array2x64::const_reference()</a>
+    <a id="Item3_c6" onkeydown="return searchResults.NavChild(event,3,6)" onkeypress="return searchResults.NavChild(event,3,6)" onkeyup="return searchResults.NavChild(event,3,6)" class="SRScope" href="../structr123array4x64.html#ac2f21a458bf9008b831c553c5ae77508" target="_parent">r123array4x64::const_reference()</a>
+    <a id="Item3_c7" onkeydown="return searchResults.NavChild(event,3,7)" onkeypress="return searchResults.NavChild(event,3,7)" onkeyup="return searchResults.NavChild(event,3,7)" class="SRScope" href="../structr123array16x8.html#a7252c320f8b0fb4d66a17acd9e94b4ad" target="_parent">r123array16x8::const_reference()</a>
+    <a id="Item3_c8" onkeydown="return searchResults.NavChild(event,3,8)" onkeypress="return searchResults.NavChild(event,3,8)" onkeyup="return searchResults.NavChild(event,3,8)" class="SRScope" href="../structr123array1xm128i.html#a84d0123f4376cb6ab77cf817a0cea9cb" target="_parent">r123array1xm128i::const_reference()</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_const_5freverse_5fiterator">
+ <div class="SREntry">
+  <a id="Item4" onkeydown="return searchResults.Nav(event,4)" onkeypress="return searchResults.Nav(event,4)" onkeyup="return searchResults.Nav(event,4)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_const_5freverse_5fiterator')">const_reverse_iterator</a>
+  <div class="SRChildren">
+    <a id="Item4_c0" onkeydown="return searchResults.NavChild(event,4,0)" onkeypress="return searchResults.NavChild(event,4,0)" onkeyup="return searchResults.NavChild(event,4,0)" class="SRScope" href="../structr123array1x32.html#a2642ed91a9c6c91ace3b91add2a4feae" target="_parent">r123array1x32::const_reverse_iterator()</a>
+    <a id="Item4_c1" onkeydown="return searchResults.NavChild(event,4,1)" onkeypress="return searchResults.NavChild(event,4,1)" onkeyup="return searchResults.NavChild(event,4,1)" class="SRScope" href="../structr123array2x32.html#af298f85ad6bda860232465c5abc33618" target="_parent">r123array2x32::const_reverse_iterator()</a>
+    <a id="Item4_c2" onkeydown="return searchResults.NavChild(event,4,2)" onkeypress="return searchResults.NavChild(event,4,2)" onkeyup="return searchResults.NavChild(event,4,2)" class="SRScope" href="../structr123array4x32.html#a2926ff865e9dcbc3c20e6639aa8d0b1b" target="_parent">r123array4x32::const_reverse_iterator()</a>
+    <a id="Item4_c3" onkeydown="return searchResults.NavChild(event,4,3)" onkeypress="return searchResults.NavChild(event,4,3)" onkeyup="return searchResults.NavChild(event,4,3)" class="SRScope" href="../structr123array8x32.html#a207923147148d154b1659e257db44033" target="_parent">r123array8x32::const_reverse_iterator()</a>
+    <a id="Item4_c4" onkeydown="return searchResults.NavChild(event,4,4)" onkeypress="return searchResults.NavChild(event,4,4)" onkeyup="return searchResults.NavChild(event,4,4)" class="SRScope" href="../structr123array1x64.html#a61535adf62580285c3182a713ea0f3b1" target="_parent">r123array1x64::const_reverse_iterator()</a>
+    <a id="Item4_c5" onkeydown="return searchResults.NavChild(event,4,5)" onkeypress="return searchResults.NavChild(event,4,5)" onkeyup="return searchResults.NavChild(event,4,5)" class="SRScope" href="../structr123array2x64.html#aa37f04aef8a808c76715b3b2d49c3c30" target="_parent">r123array2x64::const_reverse_iterator()</a>
+    <a id="Item4_c6" onkeydown="return searchResults.NavChild(event,4,6)" onkeypress="return searchResults.NavChild(event,4,6)" onkeyup="return searchResults.NavChild(event,4,6)" class="SRScope" href="../structr123array4x64.html#a8405a219a9c81f8f298298cffbfd46ac" target="_parent">r123array4x64::const_reverse_iterator()</a>
+    <a id="Item4_c7" onkeydown="return searchResults.NavChild(event,4,7)" onkeypress="return searchResults.NavChild(event,4,7)" onkeyup="return searchResults.NavChild(event,4,7)" class="SRScope" href="../structr123array16x8.html#a7a774fcb52f452f832e11e13dbde6dea" target="_parent">r123array16x8::const_reverse_iterator()</a>
+    <a id="Item4_c8" onkeydown="return searchResults.NavChild(event,4,8)" onkeypress="return searchResults.NavChild(event,4,8)" onkeyup="return searchResults.NavChild(event,4,8)" class="SRScope" href="../structr123array1xm128i.html#a6bf98ce6373b157b87c6fd4a7006ed68" target="_parent">r123array1xm128i::const_reverse_iterator()</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_ctr_5ftype">
+ <div class="SREntry">
+  <a id="Item5" onkeydown="return searchResults.Nav(event,5)" onkeypress="return searchResults.Nav(event,5)" onkeyup="return searchResults.Nav(event,5)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_ctr_5ftype')">ctr_type</a>
+  <div class="SRChildren">
+    <a id="Item5_c0" onkeydown="return searchResults.NavChild(event,5,0)" onkeypress="return searchResults.NavChild(event,5,0)" onkeyup="return searchResults.NavChild(event,5,0)" class="SRScope" href="../structr123_1_1AESNI1xm128i.html#aaa136c21db9806859fa7cd4e2dbaaaa6" target="_parent">r123::AESNI1xm128i::ctr_type()</a>
+    <a id="Item5_c1" onkeydown="return searchResults.NavChild(event,5,1)" onkeypress="return searchResults.NavChild(event,5,1)" onkeyup="return searchResults.NavChild(event,5,1)" class="SRScope" href="../structr123_1_1AESNI4x32.html#ab8a1f8a822eecfc9e587bad76792df32" target="_parent">r123::AESNI4x32::ctr_type()</a>
+    <a id="Item5_c2" onkeydown="return searchResults.NavChild(event,5,2)" onkeypress="return searchResults.NavChild(event,5,2)" onkeyup="return searchResults.NavChild(event,5,2)" class="SRScope" href="../structr123_1_1ARS1xm128i__R.html#a13a62c94f63054828c6960979f42a268" target="_parent">r123::ARS1xm128i_R::ctr_type()</a>
+    <a id="Item5_c3" onkeydown="return searchResults.NavChild(event,5,3)" onkeypress="return searchResults.NavChild(event,5,3)" onkeyup="return searchResults.NavChild(event,5,3)" class="SRScope" href="../structr123_1_1ARS4x32__R.html#a9951dbcb50de849ded7177109b344045" target="_parent">r123::ARS4x32_R::ctr_type()</a>
+    <a id="Item5_c4" onkeydown="return searchResults.NavChild(event,5,4)" onkeypress="return searchResults.NavChild(event,5,4)" onkeyup="return searchResults.NavChild(event,5,4)" class="SRScope" href="../classr123_1_1MicroURNG.html#a5aba882fd21e4d8f1a445f546e1e4476" target="_parent">r123::MicroURNG::ctr_type()</a>
+    <a id="Item5_c5" onkeydown="return searchResults.NavChild(event,5,5)" onkeypress="return searchResults.NavChild(event,5,5)" onkeyup="return searchResults.NavChild(event,5,5)" class="SRScope" href="../structr123_1_1Philox2x32__R.html#af00c84c482900fbeca6bd2043395e599" target="_parent">r123::Philox2x32_R::ctr_type()</a>
+    <a id="Item5_c6" onkeydown="return searchResults.NavChild(event,5,6)" onkeypress="return searchResults.NavChild(event,5,6)" onkeyup="return searchResults.NavChild(event,5,6)" class="SRScope" href="../structr123_1_1Philox4x32__R.html#a23adf0320faed0fe4d12ebececdba50a" target="_parent">r123::Philox4x32_R::ctr_type()</a>
+    <a id="Item5_c7" onkeydown="return searchResults.NavChild(event,5,7)" onkeypress="return searchResults.NavChild(event,5,7)" onkeyup="return searchResults.NavChild(event,5,7)" class="SRScope" href="../structr123_1_1Philox2x64__R.html#a8e615e3f4680b9e1b986ea071fd173fc" target="_parent">r123::Philox2x64_R::ctr_type()</a>
+    <a id="Item5_c8" onkeydown="return searchResults.NavChild(event,5,8)" onkeypress="return searchResults.NavChild(event,5,8)" onkeyup="return searchResults.NavChild(event,5,8)" class="SRScope" href="../structr123_1_1Philox4x64__R.html#afd5f78b34ae7c478ebe16eb601f7b202" target="_parent">r123::Philox4x64_R::ctr_type()</a>
+    <a id="Item5_c9" onkeydown="return searchResults.NavChild(event,5,9)" onkeypress="return searchResults.NavChild(event,5,9)" onkeyup="return searchResults.NavChild(event,5,9)" class="SRScope" href="../structr123_1_1ReinterpretCtr.html#a26cf9e933b35411c37070c948085ba02" target="_parent">r123::ReinterpretCtr::ctr_type()</a>
+    <a id="Item5_c10" onkeydown="return searchResults.NavChild(event,5,10)" onkeypress="return searchResults.NavChild(event,5,10)" onkeyup="return searchResults.NavChild(event,5,10)" class="SRScope" href="../structr123_1_1Threefry2x32__R.html#a60b1b58aeaa05d467607dc570aed1357" target="_parent">r123::Threefry2x32_R::ctr_type()</a>
+    <a id="Item5_c11" onkeydown="return searchResults.NavChild(event,5,11)" onkeypress="return searchResults.NavChild(event,5,11)" onkeyup="return searchResults.NavChild(event,5,11)" class="SRScope" href="../structr123_1_1Threefry4x32__R.html#ae89dabc0060c62e0d9e5c4ac34a8550f" target="_parent">r123::Threefry4x32_R::ctr_type()</a>
+    <a id="Item5_c12" onkeydown="return searchResults.NavChild(event,5,12)" onkeypress="return searchResults.NavChild(event,5,12)" onkeyup="return searchResults.NavChild(event,5,12)" class="SRScope" href="../structr123_1_1Threefry2x64__R.html#a6b151f30bc5544671596b9df91e896d8" target="_parent">r123::Threefry2x64_R::ctr_type()</a>
+    <a id="Item5_c13" onkeydown="return searchResults.NavChild(event,5,13)" onkeypress="return searchResults.NavChild(event,5,13)" onkeyup="return searchResults.NavChild(event,5,13)" class="SRScope" href="../structr123_1_1Threefry4x64__R.html#a6c93334cb8a8b53ef01cc79b5296af0d" target="_parent">r123::Threefry4x64_R::ctr_type()</a>
+    <a id="Item5_c14" onkeydown="return searchResults.NavChild(event,5,14)" onkeypress="return searchResults.NavChild(event,5,14)" onkeyup="return searchResults.NavChild(event,5,14)" class="SRScope" href="../structr123_1_1Engine.html#a96e0f5f039d5efd6aae77b63bafaad90" target="_parent">r123::Engine::ctr_type()</a>
+  </div>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/typedefs_64.html b/docs/html/search/typedefs_64.html
new file mode 100644
index 0000000..b9054eb
--- /dev/null
+++ b/docs/html/search/typedefs_64.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_difference_5ftype">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_difference_5ftype')">difference_type</a>
+  <div class="SRChildren">
+    <a id="Item0_c0" onkeydown="return searchResults.NavChild(event,0,0)" onkeypress="return searchResults.NavChild(event,0,0)" onkeyup="return searchResults.NavChild(event,0,0)" class="SRScope" href="../structr123array1x32.html#a1084c78861e725e58c14c67af242952f" target="_parent">r123array1x32::difference_type()</a>
+    <a id="Item0_c1" onkeydown="return searchResults.NavChild(event,0,1)" onkeypress="return searchResults.NavChild(event,0,1)" onkeyup="return searchResults.NavChild(event,0,1)" class="SRScope" href="../structr123array2x32.html#aa3dfe31d2483fb629a9e3ac304b24d07" target="_parent">r123array2x32::difference_type()</a>
+    <a id="Item0_c2" onkeydown="return searchResults.NavChild(event,0,2)" onkeypress="return searchResults.NavChild(event,0,2)" onkeyup="return searchResults.NavChild(event,0,2)" class="SRScope" href="../structr123array4x32.html#a3c690c039797cafe4718c03377937fb7" target="_parent">r123array4x32::difference_type()</a>
+    <a id="Item0_c3" onkeydown="return searchResults.NavChild(event,0,3)" onkeypress="return searchResults.NavChild(event,0,3)" onkeyup="return searchResults.NavChild(event,0,3)" class="SRScope" href="../structr123array8x32.html#af8029821cb8a7b5a3500adb30d4f2326" target="_parent">r123array8x32::difference_type()</a>
+    <a id="Item0_c4" onkeydown="return searchResults.NavChild(event,0,4)" onkeypress="return searchResults.NavChild(event,0,4)" onkeyup="return searchResults.NavChild(event,0,4)" class="SRScope" href="../structr123array1x64.html#a2abaa7dd6823b724ec6038b504c77011" target="_parent">r123array1x64::difference_type()</a>
+    <a id="Item0_c5" onkeydown="return searchResults.NavChild(event,0,5)" onkeypress="return searchResults.NavChild(event,0,5)" onkeyup="return searchResults.NavChild(event,0,5)" class="SRScope" href="../structr123array2x64.html#a4227cd6be973fdb0d72398d0b5604da8" target="_parent">r123array2x64::difference_type()</a>
+    <a id="Item0_c6" onkeydown="return searchResults.NavChild(event,0,6)" onkeypress="return searchResults.NavChild(event,0,6)" onkeyup="return searchResults.NavChild(event,0,6)" class="SRScope" href="../structr123array4x64.html#a3b1c7395f17992d8760fe93d3930db12" target="_parent">r123array4x64::difference_type()</a>
+    <a id="Item0_c7" onkeydown="return searchResults.NavChild(event,0,7)" onkeypress="return searchResults.NavChild(event,0,7)" onkeyup="return searchResults.NavChild(event,0,7)" class="SRScope" href="../structr123array16x8.html#aaae0b6c18de6ce92ea55bf1b9bdbdf69" target="_parent">r123array16x8::difference_type()</a>
+    <a id="Item0_c8" onkeydown="return searchResults.NavChild(event,0,8)" onkeypress="return searchResults.NavChild(event,0,8)" onkeyup="return searchResults.NavChild(event,0,8)" class="SRScope" href="../structr123array1xm128i.html#a319811ed6105c3050135d8ec3ba36f7a" target="_parent">r123array1xm128i::difference_type()</a>
+  </div>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/typedefs_65.html b/docs/html/search/typedefs_65.html
new file mode 100644
index 0000000..df445a1
--- /dev/null
+++ b/docs/html/search/typedefs_65.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_elem_5ftype">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structr123_1_1Engine.html#a8fb9eb1ab76ad9b5374a47cf84ecd306" target="_parent">elem_type</a>
+  <span class="SRScope">r123::Engine</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/typedefs_69.html b/docs/html/search/typedefs_69.html
new file mode 100644
index 0000000..6864b68
--- /dev/null
+++ b/docs/html/search/typedefs_69.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_iterator">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_iterator')">iterator</a>
+  <div class="SRChildren">
+    <a id="Item0_c0" onkeydown="return searchResults.NavChild(event,0,0)" onkeypress="return searchResults.NavChild(event,0,0)" onkeyup="return searchResults.NavChild(event,0,0)" class="SRScope" href="../structr123array1x32.html#ad17f00c1dbff151f91d381f7c0b99dc8" target="_parent">r123array1x32::iterator()</a>
+    <a id="Item0_c1" onkeydown="return searchResults.NavChild(event,0,1)" onkeypress="return searchResults.NavChild(event,0,1)" onkeyup="return searchResults.NavChild(event,0,1)" class="SRScope" href="../structr123array2x32.html#a4b447adc28d536d9b7ad7e33d5081a8e" target="_parent">r123array2x32::iterator()</a>
+    <a id="Item0_c2" onkeydown="return searchResults.NavChild(event,0,2)" onkeypress="return searchResults.NavChild(event,0,2)" onkeyup="return searchResults.NavChild(event,0,2)" class="SRScope" href="../structr123array4x32.html#a73a2a55a200af374d7299d2de13aa5cc" target="_parent">r123array4x32::iterator()</a>
+    <a id="Item0_c3" onkeydown="return searchResults.NavChild(event,0,3)" onkeypress="return searchResults.NavChild(event,0,3)" onkeyup="return searchResults.NavChild(event,0,3)" class="SRScope" href="../structr123array8x32.html#aad8ff34e784d954a05f3f058facfb2be" target="_parent">r123array8x32::iterator()</a>
+    <a id="Item0_c4" onkeydown="return searchResults.NavChild(event,0,4)" onkeypress="return searchResults.NavChild(event,0,4)" onkeyup="return searchResults.NavChild(event,0,4)" class="SRScope" href="../structr123array1x64.html#a486a75094513f75c268901b3bb6666ad" target="_parent">r123array1x64::iterator()</a>
+    <a id="Item0_c5" onkeydown="return searchResults.NavChild(event,0,5)" onkeypress="return searchResults.NavChild(event,0,5)" onkeyup="return searchResults.NavChild(event,0,5)" class="SRScope" href="../structr123array2x64.html#ac0fc5019e017f50e29d26df233085e56" target="_parent">r123array2x64::iterator()</a>
+    <a id="Item0_c6" onkeydown="return searchResults.NavChild(event,0,6)" onkeypress="return searchResults.NavChild(event,0,6)" onkeyup="return searchResults.NavChild(event,0,6)" class="SRScope" href="../structr123array4x64.html#adfc9f1209d12f855b9330ecccc8b6dd2" target="_parent">r123array4x64::iterator()</a>
+    <a id="Item0_c7" onkeydown="return searchResults.NavChild(event,0,7)" onkeypress="return searchResults.NavChild(event,0,7)" onkeyup="return searchResults.NavChild(event,0,7)" class="SRScope" href="../structr123array16x8.html#a36bdba5b2d96c8dfe9b7e59b203d5047" target="_parent">r123array16x8::iterator()</a>
+    <a id="Item0_c8" onkeydown="return searchResults.NavChild(event,0,8)" onkeypress="return searchResults.NavChild(event,0,8)" onkeyup="return searchResults.NavChild(event,0,8)" class="SRScope" href="../structr123array1xm128i.html#af9db87a7c1ae4c7ba1e355af89b4d22d" target="_parent">r123array1xm128i::iterator()</a>
+  </div>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/typedefs_6b.html b/docs/html/search/typedefs_6b.html
new file mode 100644
index 0000000..98b0c20
--- /dev/null
+++ b/docs/html/search/typedefs_6b.html
@@ -0,0 +1,42 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_key_5ftype">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_key_5ftype')">key_type</a>
+  <div class="SRChildren">
+    <a id="Item0_c0" onkeydown="return searchResults.NavChild(event,0,0)" onkeypress="return searchResults.NavChild(event,0,0)" onkeyup="return searchResults.NavChild(event,0,0)" class="SRScope" href="../structr123_1_1AESNI1xm128i.html#a7dc33fd5abf509d9d16b571b23867a6b" target="_parent">r123::AESNI1xm128i::key_type()</a>
+    <a id="Item0_c1" onkeydown="return searchResults.NavChild(event,0,1)" onkeypress="return searchResults.NavChild(event,0,1)" onkeyup="return searchResults.NavChild(event,0,1)" class="SRScope" href="../structr123_1_1AESNI4x32.html#a3f47cb319d03ede5fd557800b618d28a" target="_parent">r123::AESNI4x32::key_type()</a>
+    <a id="Item0_c2" onkeydown="return searchResults.NavChild(event,0,2)" onkeypress="return searchResults.NavChild(event,0,2)" onkeyup="return searchResults.NavChild(event,0,2)" class="SRScope" href="../structr123_1_1ARS1xm128i__R.html#a8454d6de92379d9a6551d11828fbebc3" target="_parent">r123::ARS1xm128i_R::key_type()</a>
+    <a id="Item0_c3" onkeydown="return searchResults.NavChild(event,0,3)" onkeypress="return searchResults.NavChild(event,0,3)" onkeyup="return searchResults.NavChild(event,0,3)" class="SRScope" href="../structr123_1_1ARS4x32__R.html#a7a651b6747b9e7c038bc6d11ffa2863e" target="_parent">r123::ARS4x32_R::key_type()</a>
+    <a id="Item0_c4" onkeydown="return searchResults.NavChild(event,0,4)" onkeypress="return searchResults.NavChild(event,0,4)" onkeyup="return searchResults.NavChild(event,0,4)" class="SRScope" href="../classr123_1_1MicroURNG.html#aef90e6157f360434342ad0df4ce5f364" target="_parent">r123::MicroURNG::key_type()</a>
+    <a id="Item0_c5" onkeydown="return searchResults.NavChild(event,0,5)" onkeypress="return searchResults.NavChild(event,0,5)" onkeyup="return searchResults.NavChild(event,0,5)" class="SRScope" href="../structr123_1_1Philox2x32__R.html#a37dac768d36ef39e0228369e91b9f0ab" target="_parent">r123::Philox2x32_R::key_type()</a>
+    <a id="Item0_c6" onkeydown="return searchResults.NavChild(event,0,6)" onkeypress="return searchResults.NavChild(event,0,6)" onkeyup="return searchResults.NavChild(event,0,6)" class="SRScope" href="../structr123_1_1Philox4x32__R.html#afa2e99f3e0b635f17ba9e16c186af63b" target="_parent">r123::Philox4x32_R::key_type()</a>
+    <a id="Item0_c7" onkeydown="return searchResults.NavChild(event,0,7)" onkeypress="return searchResults.NavChild(event,0,7)" onkeyup="return searchResults.NavChild(event,0,7)" class="SRScope" href="../structr123_1_1Philox2x64__R.html#adb8a638d3d96ef0ab594b0320bae329f" target="_parent">r123::Philox2x64_R::key_type()</a>
+    <a id="Item0_c8" onkeydown="return searchResults.NavChild(event,0,8)" onkeypress="return searchResults.NavChild(event,0,8)" onkeyup="return searchResults.NavChild(event,0,8)" class="SRScope" href="../structr123_1_1Philox4x64__R.html#a9947ce12e3d03f9a60396d79bb56ba1c" target="_parent">r123::Philox4x64_R::key_type()</a>
+    <a id="Item0_c9" onkeydown="return searchResults.NavChild(event,0,9)" onkeypress="return searchResults.NavChild(event,0,9)" onkeyup="return searchResults.NavChild(event,0,9)" class="SRScope" href="../structr123_1_1ReinterpretCtr.html#a470b21676ed709aa9d9ad524a67410f1" target="_parent">r123::ReinterpretCtr::key_type()</a>
+    <a id="Item0_c10" onkeydown="return searchResults.NavChild(event,0,10)" onkeypress="return searchResults.NavChild(event,0,10)" onkeyup="return searchResults.NavChild(event,0,10)" class="SRScope" href="../structr123_1_1Threefry2x32__R.html#abfaaff871ef5e2e2cf397884ddab4cdc" target="_parent">r123::Threefry2x32_R::key_type()</a>
+    <a id="Item0_c11" onkeydown="return searchResults.NavChild(event,0,11)" onkeypress="return searchResults.NavChild(event,0,11)" onkeyup="return searchResults.NavChild(event,0,11)" class="SRScope" href="../structr123_1_1Threefry4x32__R.html#a140f5cf20bde7784d778b82f0ebf8778" target="_parent">r123::Threefry4x32_R::key_type()</a>
+    <a id="Item0_c12" onkeydown="return searchResults.NavChild(event,0,12)" onkeypress="return searchResults.NavChild(event,0,12)" onkeyup="return searchResults.NavChild(event,0,12)" class="SRScope" href="../structr123_1_1Threefry2x64__R.html#ae652f0e9ca6ec234fd2f4fc9afb1007c" target="_parent">r123::Threefry2x64_R::key_type()</a>
+    <a id="Item0_c13" onkeydown="return searchResults.NavChild(event,0,13)" onkeypress="return searchResults.NavChild(event,0,13)" onkeyup="return searchResults.NavChild(event,0,13)" class="SRScope" href="../structr123_1_1Threefry4x64__R.html#adb406d1af0e757bd8058582ee39f21dc" target="_parent">r123::Threefry4x64_R::key_type()</a>
+    <a id="Item0_c14" onkeydown="return searchResults.NavChild(event,0,14)" onkeypress="return searchResults.NavChild(event,0,14)" onkeyup="return searchResults.NavChild(event,0,14)" class="SRScope" href="../structr123_1_1Engine.html#a18132a79d2327990c4809b37300eddc3" target="_parent">r123::Engine::key_type()</a>
+  </div>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/typedefs_70.html b/docs/html/search/typedefs_70.html
new file mode 100644
index 0000000..164582a
--- /dev/null
+++ b/docs/html/search/typedefs_70.html
@@ -0,0 +1,132 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_philox2x32">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../group__PhiloxNxW.html#ga81659a3ee5a1ca9e2e85c5d725a1ea4f" target="_parent">Philox2x32</a>
+  <span class="SRScope">r123</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_philox2x32_5fctr_5ft">
+ <div class="SREntry">
+  <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../philox_8h.html#a5fad831cdbd677bc6e53d37c0191f5e3" target="_parent">philox2x32_ctr_t</a>
+  <span class="SRScope">philox.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_philox2x32_5fkey_5ft">
+ <div class="SREntry">
+  <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../philox_8h.html#a55c0e4adeab3387915f966a0e40dc036" target="_parent">philox2x32_key_t</a>
+  <span class="SRScope">philox.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_philox2x32_5fukey_5ft">
+ <div class="SREntry">
+  <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="../philox_8h.html#abf96b0e95504989c58e6d3436b013a6b" target="_parent">philox2x32_ukey_t</a>
+  <span class="SRScope">philox.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_philox2x64">
+ <div class="SREntry">
+  <a id="Item4" onkeydown="return searchResults.Nav(event,4)" onkeypress="return searchResults.Nav(event,4)" onkeyup="return searchResults.Nav(event,4)" class="SRSymbol" href="../group__PhiloxNxW.html#ga616a669079ac25119353416c14d46426" target="_parent">Philox2x64</a>
+  <span class="SRScope">r123</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_philox2x64_5fctr_5ft">
+ <div class="SREntry">
+  <a id="Item5" onkeydown="return searchResults.Nav(event,5)" onkeypress="return searchResults.Nav(event,5)" onkeyup="return searchResults.Nav(event,5)" class="SRSymbol" href="../philox_8h.html#a33fa626a4198f38d87713ae9504e53f2" target="_parent">philox2x64_ctr_t</a>
+  <span class="SRScope">philox.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_philox2x64_5fkey_5ft">
+ <div class="SREntry">
+  <a id="Item6" onkeydown="return searchResults.Nav(event,6)" onkeypress="return searchResults.Nav(event,6)" onkeyup="return searchResults.Nav(event,6)" class="SRSymbol" href="../philox_8h.html#a190087c2584155a936ec7d7b9e8d7f34" target="_parent">philox2x64_key_t</a>
+  <span class="SRScope">philox.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_philox2x64_5fukey_5ft">
+ <div class="SREntry">
+  <a id="Item7" onkeydown="return searchResults.Nav(event,7)" onkeypress="return searchResults.Nav(event,7)" onkeyup="return searchResults.Nav(event,7)" class="SRSymbol" href="../philox_8h.html#a419cc7ebdeeaa1fc8249c638eac3d00b" target="_parent">philox2x64_ukey_t</a>
+  <span class="SRScope">philox.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_philox4x32">
+ <div class="SREntry">
+  <a id="Item8" onkeydown="return searchResults.Nav(event,8)" onkeypress="return searchResults.Nav(event,8)" onkeyup="return searchResults.Nav(event,8)" class="SRSymbol" href="../group__PhiloxNxW.html#gaafd54060af05012db410034e3c0ecdc4" target="_parent">Philox4x32</a>
+  <span class="SRScope">r123</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_philox4x32_5fctr_5ft">
+ <div class="SREntry">
+  <a id="Item9" onkeydown="return searchResults.Nav(event,9)" onkeypress="return searchResults.Nav(event,9)" onkeyup="return searchResults.Nav(event,9)" class="SRSymbol" href="../philox_8h.html#a96f2a94ebcd7aba28aaeb0aba6543d2d" target="_parent">philox4x32_ctr_t</a>
+  <span class="SRScope">philox.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_philox4x32_5fkey_5ft">
+ <div class="SREntry">
+  <a id="Item10" onkeydown="return searchResults.Nav(event,10)" onkeypress="return searchResults.Nav(event,10)" onkeyup="return searchResults.Nav(event,10)" class="SRSymbol" href="../philox_8h.html#ab1e74b78fcee751b43739b2b4415c592" target="_parent">philox4x32_key_t</a>
+  <span class="SRScope">philox.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_philox4x32_5fukey_5ft">
+ <div class="SREntry">
+  <a id="Item11" onkeydown="return searchResults.Nav(event,11)" onkeypress="return searchResults.Nav(event,11)" onkeyup="return searchResults.Nav(event,11)" class="SRSymbol" href="../philox_8h.html#a82e1d60f98bfbb600bde2bd939de4573" target="_parent">philox4x32_ukey_t</a>
+  <span class="SRScope">philox.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_philox4x64">
+ <div class="SREntry">
+  <a id="Item12" onkeydown="return searchResults.Nav(event,12)" onkeypress="return searchResults.Nav(event,12)" onkeyup="return searchResults.Nav(event,12)" class="SRSymbol" href="../group__PhiloxNxW.html#ga7776f4d481b7c0ac00db70272a1c77f0" target="_parent">Philox4x64</a>
+  <span class="SRScope">r123</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_philox4x64_5fctr_5ft">
+ <div class="SREntry">
+  <a id="Item13" onkeydown="return searchResults.Nav(event,13)" onkeypress="return searchResults.Nav(event,13)" onkeyup="return searchResults.Nav(event,13)" class="SRSymbol" href="../philox_8h.html#a4d2063cc89bf13153ddeff0d94371986" target="_parent">philox4x64_ctr_t</a>
+  <span class="SRScope">philox.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_philox4x64_5fkey_5ft">
+ <div class="SREntry">
+  <a id="Item14" onkeydown="return searchResults.Nav(event,14)" onkeypress="return searchResults.Nav(event,14)" onkeyup="return searchResults.Nav(event,14)" class="SRSymbol" href="../philox_8h.html#a0c8c9410e9d88d4c94e8093007e39b0c" target="_parent">philox4x64_key_t</a>
+  <span class="SRScope">philox.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_philox4x64_5fukey_5ft">
+ <div class="SREntry">
+  <a id="Item15" onkeydown="return searchResults.Nav(event,15)" onkeypress="return searchResults.Nav(event,15)" onkeyup="return searchResults.Nav(event,15)" class="SRSymbol" href="../philox_8h.html#a689ed8276d25fe0c983c4eb5b9a32fd4" target="_parent">philox4x64_ukey_t</a>
+  <span class="SRScope">philox.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_pointer">
+ <div class="SREntry">
+  <a id="Item16" onkeydown="return searchResults.Nav(event,16)" onkeypress="return searchResults.Nav(event,16)" onkeyup="return searchResults.Nav(event,16)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_pointer')">pointer</a>
+  <div class="SRChildren">
+    <a id="Item16_c0" onkeydown="return searchResults.NavChild(event,16,0)" onkeypress="return searchResults.NavChild(event,16,0)" onkeyup="return searchResults.NavChild(event,16,0)" class="SRScope" href="../structr123array1x32.html#a85ce46c2e10ab3d9c4f60aebe6268898" target="_parent">r123array1x32::pointer()</a>
+    <a id="Item16_c1" onkeydown="return searchResults.NavChild(event,16,1)" onkeypress="return searchResults.NavChild(event,16,1)" onkeyup="return searchResults.NavChild(event,16,1)" class="SRScope" href="../structr123array2x32.html#ac884bcbd1063811354bfac66262a0b42" target="_parent">r123array2x32::pointer()</a>
+    <a id="Item16_c2" onkeydown="return searchResults.NavChild(event,16,2)" onkeypress="return searchResults.NavChild(event,16,2)" onkeyup="return searchResults.NavChild(event,16,2)" class="SRScope" href="../structr123array4x32.html#adcef39f1e3989578b4c0a92524a15df2" target="_parent">r123array4x32::pointer()</a>
+    <a id="Item16_c3" onkeydown="return searchResults.NavChild(event,16,3)" onkeypress="return searchResults.NavChild(event,16,3)" onkeyup="return searchResults.NavChild(event,16,3)" class="SRScope" href="../structr123array8x32.html#aeaf3b46bbc571a21d61ad6ee6e760291" target="_parent">r123array8x32::pointer()</a>
+    <a id="Item16_c4" onkeydown="return searchResults.NavChild(event,16,4)" onkeypress="return searchResults.NavChild(event,16,4)" onkeyup="return searchResults.NavChild(event,16,4)" class="SRScope" href="../structr123array1x64.html#a1c104fabb72d6c72c51348ac72bd419f" target="_parent">r123array1x64::pointer()</a>
+    <a id="Item16_c5" onkeydown="return searchResults.NavChild(event,16,5)" onkeypress="return searchResults.NavChild(event,16,5)" onkeyup="return searchResults.NavChild(event,16,5)" class="SRScope" href="../structr123array2x64.html#a3b0b967b9ae134da266448c190f59c3a" target="_parent">r123array2x64::pointer()</a>
+    <a id="Item16_c6" onkeydown="return searchResults.NavChild(event,16,6)" onkeypress="return searchResults.NavChild(event,16,6)" onkeyup="return searchResults.NavChild(event,16,6)" class="SRScope" href="../structr123array4x64.html#a08c39c2f70f4198a82cba99c0162e67c" target="_parent">r123array4x64::pointer()</a>
+    <a id="Item16_c7" onkeydown="return searchResults.NavChild(event,16,7)" onkeypress="return searchResults.NavChild(event,16,7)" onkeyup="return searchResults.NavChild(event,16,7)" class="SRScope" href="../structr123array16x8.html#aa6ae2e4843b3bb1b66425afa7da9e281" target="_parent">r123array16x8::pointer()</a>
+    <a id="Item16_c8" onkeydown="return searchResults.NavChild(event,16,8)" onkeypress="return searchResults.NavChild(event,16,8)" onkeyup="return searchResults.NavChild(event,16,8)" class="SRScope" href="../structr123array1xm128i.html#a4f78260ba2ec595bdc56fc21fd45e45a" target="_parent">r123array1xm128i::pointer()</a>
+  </div>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/typedefs_72.html b/docs/html/search/typedefs_72.html
new file mode 100644
index 0000000..8e35203
--- /dev/null
+++ b/docs/html/search/typedefs_72.html
@@ -0,0 +1,61 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_reference">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_reference')">reference</a>
+  <div class="SRChildren">
+    <a id="Item0_c0" onkeydown="return searchResults.NavChild(event,0,0)" onkeypress="return searchResults.NavChild(event,0,0)" onkeyup="return searchResults.NavChild(event,0,0)" class="SRScope" href="../structr123array1x32.html#ae5aa4e3a65528495ea71371529ade7d7" target="_parent">r123array1x32::reference()</a>
+    <a id="Item0_c1" onkeydown="return searchResults.NavChild(event,0,1)" onkeypress="return searchResults.NavChild(event,0,1)" onkeyup="return searchResults.NavChild(event,0,1)" class="SRScope" href="../structr123array2x32.html#aacd028d9f97ec8a2f484f0eff815abd5" target="_parent">r123array2x32::reference()</a>
+    <a id="Item0_c2" onkeydown="return searchResults.NavChild(event,0,2)" onkeypress="return searchResults.NavChild(event,0,2)" onkeyup="return searchResults.NavChild(event,0,2)" class="SRScope" href="../structr123array4x32.html#a620f00f67215ab7fd344ec551c596712" target="_parent">r123array4x32::reference()</a>
+    <a id="Item0_c3" onkeydown="return searchResults.NavChild(event,0,3)" onkeypress="return searchResults.NavChild(event,0,3)" onkeyup="return searchResults.NavChild(event,0,3)" class="SRScope" href="../structr123array8x32.html#a4027cd913ec90428d5d0dcad23a5dc2b" target="_parent">r123array8x32::reference()</a>
+    <a id="Item0_c4" onkeydown="return searchResults.NavChild(event,0,4)" onkeypress="return searchResults.NavChild(event,0,4)" onkeyup="return searchResults.NavChild(event,0,4)" class="SRScope" href="../structr123array1x64.html#a6b196cbfb84a28a57f24cd976c6fd6e6" target="_parent">r123array1x64::reference()</a>
+    <a id="Item0_c5" onkeydown="return searchResults.NavChild(event,0,5)" onkeypress="return searchResults.NavChild(event,0,5)" onkeyup="return searchResults.NavChild(event,0,5)" class="SRScope" href="../structr123array2x64.html#a7150b3ad865d00ca1f753accd8165336" target="_parent">r123array2x64::reference()</a>
+    <a id="Item0_c6" onkeydown="return searchResults.NavChild(event,0,6)" onkeypress="return searchResults.NavChild(event,0,6)" onkeyup="return searchResults.NavChild(event,0,6)" class="SRScope" href="../structr123array4x64.html#a14ea48b972d46d9424c317db9698224f" target="_parent">r123array4x64::reference()</a>
+    <a id="Item0_c7" onkeydown="return searchResults.NavChild(event,0,7)" onkeypress="return searchResults.NavChild(event,0,7)" onkeyup="return searchResults.NavChild(event,0,7)" class="SRScope" href="../structr123array16x8.html#adf010ea54bc2f9dceb8568d59c6dde8a" target="_parent">r123array16x8::reference()</a>
+    <a id="Item0_c8" onkeydown="return searchResults.NavChild(event,0,8)" onkeypress="return searchResults.NavChild(event,0,8)" onkeyup="return searchResults.NavChild(event,0,8)" class="SRScope" href="../structr123array1xm128i.html#a34f0cbdac5eb89118ecf2ab5939fbf83" target="_parent">r123array1xm128i::reference()</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_result_5ftype">
+ <div class="SREntry">
+  <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_result_5ftype')">result_type</a>
+  <div class="SRChildren">
+    <a id="Item1_c0" onkeydown="return searchResults.NavChild(event,1,0)" onkeypress="return searchResults.NavChild(event,1,0)" onkeyup="return searchResults.NavChild(event,1,0)" class="SRScope" href="../classr123_1_1MicroURNG.html#a512957c3e7b3d22741ef0a436b973c2b" target="_parent">r123::MicroURNG::result_type()</a>
+    <a id="Item1_c1" onkeydown="return searchResults.NavChild(event,1,1)" onkeypress="return searchResults.NavChild(event,1,1)" onkeyup="return searchResults.NavChild(event,1,1)" class="SRScope" href="../structr123_1_1Engine.html#a3d7cb66d43f99f5e227990af985ecb45" target="_parent">r123::Engine::result_type()</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_reverse_5fiterator">
+ <div class="SREntry">
+  <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_reverse_5fiterator')">reverse_iterator</a>
+  <div class="SRChildren">
+    <a id="Item2_c0" onkeydown="return searchResults.NavChild(event,2,0)" onkeypress="return searchResults.NavChild(event,2,0)" onkeyup="return searchResults.NavChild(event,2,0)" class="SRScope" href="../structr123array1x32.html#a21cb520afa483ae177c469f3940e7ed2" target="_parent">r123array1x32::reverse_iterator()</a>
+    <a id="Item2_c1" onkeydown="return searchResults.NavChild(event,2,1)" onkeypress="return searchResults.NavChild(event,2,1)" onkeyup="return searchResults.NavChild(event,2,1)" class="SRScope" href="../structr123array2x32.html#ad0b05bbfee2d432dfef71342f14b8430" target="_parent">r123array2x32::reverse_iterator()</a>
+    <a id="Item2_c2" onkeydown="return searchResults.NavChild(event,2,2)" onkeypress="return searchResults.NavChild(event,2,2)" onkeyup="return searchResults.NavChild(event,2,2)" class="SRScope" href="../structr123array4x32.html#aaabdf758fb4a56eaf4cf256654f41314" target="_parent">r123array4x32::reverse_iterator()</a>
+    <a id="Item2_c3" onkeydown="return searchResults.NavChild(event,2,3)" onkeypress="return searchResults.NavChild(event,2,3)" onkeyup="return searchResults.NavChild(event,2,3)" class="SRScope" href="../structr123array8x32.html#acab5de900b99bad5f69009f48fa72235" target="_parent">r123array8x32::reverse_iterator()</a>
+    <a id="Item2_c4" onkeydown="return searchResults.NavChild(event,2,4)" onkeypress="return searchResults.NavChild(event,2,4)" onkeyup="return searchResults.NavChild(event,2,4)" class="SRScope" href="../structr123array1x64.html#ac9c44218c6761d9e6f422435e49acb17" target="_parent">r123array1x64::reverse_iterator()</a>
+    <a id="Item2_c5" onkeydown="return searchResults.NavChild(event,2,5)" onkeypress="return searchResults.NavChild(event,2,5)" onkeyup="return searchResults.NavChild(event,2,5)" class="SRScope" href="../structr123array2x64.html#abcbf25662447a5241ed4d19c202f647a" target="_parent">r123array2x64::reverse_iterator()</a>
+    <a id="Item2_c6" onkeydown="return searchResults.NavChild(event,2,6)" onkeypress="return searchResults.NavChild(event,2,6)" onkeyup="return searchResults.NavChild(event,2,6)" class="SRScope" href="../structr123array4x64.html#acc93aa79ca040ce8fd0957ac86caa2f9" target="_parent">r123array4x64::reverse_iterator()</a>
+    <a id="Item2_c7" onkeydown="return searchResults.NavChild(event,2,7)" onkeypress="return searchResults.NavChild(event,2,7)" onkeyup="return searchResults.NavChild(event,2,7)" class="SRScope" href="../structr123array16x8.html#aeeb5d6d55c07a515e4c7d01cb5c5351b" target="_parent">r123array16x8::reverse_iterator()</a>
+    <a id="Item2_c8" onkeydown="return searchResults.NavChild(event,2,8)" onkeypress="return searchResults.NavChild(event,2,8)" onkeyup="return searchResults.NavChild(event,2,8)" class="SRScope" href="../structr123array1xm128i.html#a6a507944eb872540e73e7a839cbc8e30" target="_parent">r123array1xm128i::reverse_iterator()</a>
+  </div>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/typedefs_73.html b/docs/html/search/typedefs_73.html
new file mode 100644
index 0000000..006a314
--- /dev/null
+++ b/docs/html/search/typedefs_73.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_size_5ftype">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_size_5ftype')">size_type</a>
+  <div class="SRChildren">
+    <a id="Item0_c0" onkeydown="return searchResults.NavChild(event,0,0)" onkeypress="return searchResults.NavChild(event,0,0)" onkeyup="return searchResults.NavChild(event,0,0)" class="SRScope" href="../structr123array1x32.html#a30405dcf03997aaf3f981c05d1fa1e53" target="_parent">r123array1x32::size_type()</a>
+    <a id="Item0_c1" onkeydown="return searchResults.NavChild(event,0,1)" onkeypress="return searchResults.NavChild(event,0,1)" onkeyup="return searchResults.NavChild(event,0,1)" class="SRScope" href="../structr123array2x32.html#ac168a0f0c7eddf1842c9882643b31e91" target="_parent">r123array2x32::size_type()</a>
+    <a id="Item0_c2" onkeydown="return searchResults.NavChild(event,0,2)" onkeypress="return searchResults.NavChild(event,0,2)" onkeyup="return searchResults.NavChild(event,0,2)" class="SRScope" href="../structr123array4x32.html#af4ee6cd95de0f8b7932d7a6a061663af" target="_parent">r123array4x32::size_type()</a>
+    <a id="Item0_c3" onkeydown="return searchResults.NavChild(event,0,3)" onkeypress="return searchResults.NavChild(event,0,3)" onkeyup="return searchResults.NavChild(event,0,3)" class="SRScope" href="../structr123array8x32.html#aa262b29c3d3fa22b07447b02c8c4be17" target="_parent">r123array8x32::size_type()</a>
+    <a id="Item0_c4" onkeydown="return searchResults.NavChild(event,0,4)" onkeypress="return searchResults.NavChild(event,0,4)" onkeyup="return searchResults.NavChild(event,0,4)" class="SRScope" href="../structr123array1x64.html#aa37d85a97cfe1f3f63b1ef1c33497cb7" target="_parent">r123array1x64::size_type()</a>
+    <a id="Item0_c5" onkeydown="return searchResults.NavChild(event,0,5)" onkeypress="return searchResults.NavChild(event,0,5)" onkeyup="return searchResults.NavChild(event,0,5)" class="SRScope" href="../structr123array2x64.html#aacb6269c183cc408285dca02e3b55526" target="_parent">r123array2x64::size_type()</a>
+    <a id="Item0_c6" onkeydown="return searchResults.NavChild(event,0,6)" onkeypress="return searchResults.NavChild(event,0,6)" onkeyup="return searchResults.NavChild(event,0,6)" class="SRScope" href="../structr123array4x64.html#adbe34157dc62e7d2c988f12b06b273af" target="_parent">r123array4x64::size_type()</a>
+    <a id="Item0_c7" onkeydown="return searchResults.NavChild(event,0,7)" onkeypress="return searchResults.NavChild(event,0,7)" onkeyup="return searchResults.NavChild(event,0,7)" class="SRScope" href="../structr123array16x8.html#ae892bee1409b006ec01597c0e1f22952" target="_parent">r123array16x8::size_type()</a>
+    <a id="Item0_c8" onkeydown="return searchResults.NavChild(event,0,8)" onkeypress="return searchResults.NavChild(event,0,8)" onkeyup="return searchResults.NavChild(event,0,8)" class="SRScope" href="../structr123array1xm128i.html#a702efcd8e34016d657ed6141bc767e6c" target="_parent">r123array1xm128i::size_type()</a>
+  </div>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/typedefs_74.html b/docs/html/search/typedefs_74.html
new file mode 100644
index 0000000..ab87843
--- /dev/null
+++ b/docs/html/search/typedefs_74.html
@@ -0,0 +1,116 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_threefry2x32">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../group__ThreefryNxW.html#ga1c32939b65f84966c93677f4382ea36d" target="_parent">Threefry2x32</a>
+  <span class="SRScope">r123</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_threefry2x32_5fctr_5ft">
+ <div class="SREntry">
+  <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../threefry_8h.html#ac0724455e1e9218f982501247d384833" target="_parent">threefry2x32_ctr_t</a>
+  <span class="SRScope">threefry.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_threefry2x32_5fkey_5ft">
+ <div class="SREntry">
+  <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../threefry_8h.html#a9ebab1ff37a7c983a4d5af114fb8f1c7" target="_parent">threefry2x32_key_t</a>
+  <span class="SRScope">threefry.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_threefry2x32_5fukey_5ft">
+ <div class="SREntry">
+  <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="../threefry_8h.html#a642ffe8cacdd9e8f6b376bdffff36d24" target="_parent">threefry2x32_ukey_t</a>
+  <span class="SRScope">threefry.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_threefry2x64">
+ <div class="SREntry">
+  <a id="Item4" onkeydown="return searchResults.Nav(event,4)" onkeypress="return searchResults.Nav(event,4)" onkeyup="return searchResults.Nav(event,4)" class="SRSymbol" href="../group__ThreefryNxW.html#ga2b54dd1b0d20f09239be5f8757f1f3db" target="_parent">Threefry2x64</a>
+  <span class="SRScope">r123</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_threefry2x64_5fctr_5ft">
+ <div class="SREntry">
+  <a id="Item5" onkeydown="return searchResults.Nav(event,5)" onkeypress="return searchResults.Nav(event,5)" onkeyup="return searchResults.Nav(event,5)" class="SRSymbol" href="../threefry_8h.html#a13c6df8879e7c13605fc1dc67cb2173b" target="_parent">threefry2x64_ctr_t</a>
+  <span class="SRScope">threefry.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_threefry2x64_5fkey_5ft">
+ <div class="SREntry">
+  <a id="Item6" onkeydown="return searchResults.Nav(event,6)" onkeypress="return searchResults.Nav(event,6)" onkeyup="return searchResults.Nav(event,6)" class="SRSymbol" href="../threefry_8h.html#a31a08f696af23b0e339126bc64a78812" target="_parent">threefry2x64_key_t</a>
+  <span class="SRScope">threefry.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_threefry2x64_5fukey_5ft">
+ <div class="SREntry">
+  <a id="Item7" onkeydown="return searchResults.Nav(event,7)" onkeypress="return searchResults.Nav(event,7)" onkeyup="return searchResults.Nav(event,7)" class="SRSymbol" href="../threefry_8h.html#abb918225d16fcdf0b2659e2096d182b9" target="_parent">threefry2x64_ukey_t</a>
+  <span class="SRScope">threefry.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_threefry4x32">
+ <div class="SREntry">
+  <a id="Item8" onkeydown="return searchResults.Nav(event,8)" onkeypress="return searchResults.Nav(event,8)" onkeyup="return searchResults.Nav(event,8)" class="SRSymbol" href="../group__ThreefryNxW.html#gacb09a2dcfb7389769f0c58f45f132aaa" target="_parent">Threefry4x32</a>
+  <span class="SRScope">r123</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_threefry4x32_5fctr_5ft">
+ <div class="SREntry">
+  <a id="Item9" onkeydown="return searchResults.Nav(event,9)" onkeypress="return searchResults.Nav(event,9)" onkeyup="return searchResults.Nav(event,9)" class="SRSymbol" href="../threefry_8h.html#aa72e480598b54b5bbc640a101f9cbe6e" target="_parent">threefry4x32_ctr_t</a>
+  <span class="SRScope">threefry.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_threefry4x32_5fkey_5ft">
+ <div class="SREntry">
+  <a id="Item10" onkeydown="return searchResults.Nav(event,10)" onkeypress="return searchResults.Nav(event,10)" onkeyup="return searchResults.Nav(event,10)" class="SRSymbol" href="../threefry_8h.html#af332bdaec196cee5378cab4fd049ecde" target="_parent">threefry4x32_key_t</a>
+  <span class="SRScope">threefry.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_threefry4x32_5fukey_5ft">
+ <div class="SREntry">
+  <a id="Item11" onkeydown="return searchResults.Nav(event,11)" onkeypress="return searchResults.Nav(event,11)" onkeyup="return searchResults.Nav(event,11)" class="SRSymbol" href="../threefry_8h.html#ad65418f4e2c8d8df38059aabc2cc98b6" target="_parent">threefry4x32_ukey_t</a>
+  <span class="SRScope">threefry.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_threefry4x64">
+ <div class="SREntry">
+  <a id="Item12" onkeydown="return searchResults.Nav(event,12)" onkeypress="return searchResults.Nav(event,12)" onkeyup="return searchResults.Nav(event,12)" class="SRSymbol" href="../group__ThreefryNxW.html#gae17c98bddf067365508ed0717f865e8b" target="_parent">Threefry4x64</a>
+  <span class="SRScope">r123</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_threefry4x64_5fctr_5ft">
+ <div class="SREntry">
+  <a id="Item13" onkeydown="return searchResults.Nav(event,13)" onkeypress="return searchResults.Nav(event,13)" onkeyup="return searchResults.Nav(event,13)" class="SRSymbol" href="../threefry_8h.html#a3296098832bc3a243f40078c1b93592e" target="_parent">threefry4x64_ctr_t</a>
+  <span class="SRScope">threefry.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_threefry4x64_5fkey_5ft">
+ <div class="SREntry">
+  <a id="Item14" onkeydown="return searchResults.Nav(event,14)" onkeypress="return searchResults.Nav(event,14)" onkeyup="return searchResults.Nav(event,14)" class="SRSymbol" href="../threefry_8h.html#ad51f07c7dc47238532cbc05e89f5cef9" target="_parent">threefry4x64_key_t</a>
+  <span class="SRScope">threefry.h</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_threefry4x64_5fukey_5ft">
+ <div class="SREntry">
+  <a id="Item15" onkeydown="return searchResults.Nav(event,15)" onkeypress="return searchResults.Nav(event,15)" onkeyup="return searchResults.Nav(event,15)" class="SRSymbol" href="../threefry_8h.html#a6b4db94d5185220d4fcec72f92a391ad" target="_parent">threefry4x64_ukey_t</a>
+  <span class="SRScope">threefry.h</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/typedefs_75.html b/docs/html/search/typedefs_75.html
new file mode 100644
index 0000000..69a6f3c
--- /dev/null
+++ b/docs/html/search/typedefs_75.html
@@ -0,0 +1,42 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_ukey_5ftype">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_ukey_5ftype')">ukey_type</a>
+  <div class="SRChildren">
+    <a id="Item0_c0" onkeydown="return searchResults.NavChild(event,0,0)" onkeypress="return searchResults.NavChild(event,0,0)" onkeyup="return searchResults.NavChild(event,0,0)" class="SRScope" href="../structr123_1_1AESNI1xm128i.html#a1f405533da84d98b938030190a63cec5" target="_parent">r123::AESNI1xm128i::ukey_type()</a>
+    <a id="Item0_c1" onkeydown="return searchResults.NavChild(event,0,1)" onkeypress="return searchResults.NavChild(event,0,1)" onkeyup="return searchResults.NavChild(event,0,1)" class="SRScope" href="../structr123_1_1AESNI4x32.html#a3fbb6113e70575dce3b6047a22a751f4" target="_parent">r123::AESNI4x32::ukey_type()</a>
+    <a id="Item0_c2" onkeydown="return searchResults.NavChild(event,0,2)" onkeypress="return searchResults.NavChild(event,0,2)" onkeyup="return searchResults.NavChild(event,0,2)" class="SRScope" href="../structr123_1_1ARS1xm128i__R.html#ab26c7029e347e6b1e17dad795e462aeb" target="_parent">r123::ARS1xm128i_R::ukey_type()</a>
+    <a id="Item0_c3" onkeydown="return searchResults.NavChild(event,0,3)" onkeypress="return searchResults.NavChild(event,0,3)" onkeyup="return searchResults.NavChild(event,0,3)" class="SRScope" href="../structr123_1_1ARS4x32__R.html#aa4bd7be98acb8b0299fb0ffce3db69ee" target="_parent">r123::ARS4x32_R::ukey_type()</a>
+    <a id="Item0_c4" onkeydown="return searchResults.NavChild(event,0,4)" onkeypress="return searchResults.NavChild(event,0,4)" onkeyup="return searchResults.NavChild(event,0,4)" class="SRScope" href="../classr123_1_1MicroURNG.html#a7e6fd93fec2fe138ee36b401ff376cfc" target="_parent">r123::MicroURNG::ukey_type()</a>
+    <a id="Item0_c5" onkeydown="return searchResults.NavChild(event,0,5)" onkeypress="return searchResults.NavChild(event,0,5)" onkeyup="return searchResults.NavChild(event,0,5)" class="SRScope" href="../structr123_1_1Philox2x32__R.html#a8982960eb5a3b5afc26c8e8d6639275e" target="_parent">r123::Philox2x32_R::ukey_type()</a>
+    <a id="Item0_c6" onkeydown="return searchResults.NavChild(event,0,6)" onkeypress="return searchResults.NavChild(event,0,6)" onkeyup="return searchResults.NavChild(event,0,6)" class="SRScope" href="../structr123_1_1Philox4x32__R.html#a804c8700155da93039c339ac83df99dd" target="_parent">r123::Philox4x32_R::ukey_type()</a>
+    <a id="Item0_c7" onkeydown="return searchResults.NavChild(event,0,7)" onkeypress="return searchResults.NavChild(event,0,7)" onkeyup="return searchResults.NavChild(event,0,7)" class="SRScope" href="../structr123_1_1Philox2x64__R.html#a0c4cfeb8c3f00d1755ee047790c9da1c" target="_parent">r123::Philox2x64_R::ukey_type()</a>
+    <a id="Item0_c8" onkeydown="return searchResults.NavChild(event,0,8)" onkeypress="return searchResults.NavChild(event,0,8)" onkeyup="return searchResults.NavChild(event,0,8)" class="SRScope" href="../structr123_1_1Philox4x64__R.html#a4715e37129fb4ca9d7671cb9df4fa8c5" target="_parent">r123::Philox4x64_R::ukey_type()</a>
+    <a id="Item0_c9" onkeydown="return searchResults.NavChild(event,0,9)" onkeypress="return searchResults.NavChild(event,0,9)" onkeyup="return searchResults.NavChild(event,0,9)" class="SRScope" href="../structr123_1_1ReinterpretCtr.html#a4b0b69c1aa58d62bb22e51e16c586bee" target="_parent">r123::ReinterpretCtr::ukey_type()</a>
+    <a id="Item0_c10" onkeydown="return searchResults.NavChild(event,0,10)" onkeypress="return searchResults.NavChild(event,0,10)" onkeyup="return searchResults.NavChild(event,0,10)" class="SRScope" href="../structr123_1_1Threefry2x32__R.html#a3ab3969f7445f9fe935566fdc017c5ca" target="_parent">r123::Threefry2x32_R::ukey_type()</a>
+    <a id="Item0_c11" onkeydown="return searchResults.NavChild(event,0,11)" onkeypress="return searchResults.NavChild(event,0,11)" onkeyup="return searchResults.NavChild(event,0,11)" class="SRScope" href="../structr123_1_1Threefry4x32__R.html#aab22e360de3f5e13f018ccf3a6754a8f" target="_parent">r123::Threefry4x32_R::ukey_type()</a>
+    <a id="Item0_c12" onkeydown="return searchResults.NavChild(event,0,12)" onkeypress="return searchResults.NavChild(event,0,12)" onkeyup="return searchResults.NavChild(event,0,12)" class="SRScope" href="../structr123_1_1Threefry2x64__R.html#a57db271865ab1889c8f569fb053ee66d" target="_parent">r123::Threefry2x64_R::ukey_type()</a>
+    <a id="Item0_c13" onkeydown="return searchResults.NavChild(event,0,13)" onkeypress="return searchResults.NavChild(event,0,13)" onkeyup="return searchResults.NavChild(event,0,13)" class="SRScope" href="../structr123_1_1Threefry4x64__R.html#a087ff88f84d115a6a726e008c6dcc325" target="_parent">r123::Threefry4x64_R::ukey_type()</a>
+    <a id="Item0_c14" onkeydown="return searchResults.NavChild(event,0,14)" onkeypress="return searchResults.NavChild(event,0,14)" onkeyup="return searchResults.NavChild(event,0,14)" class="SRScope" href="../structr123_1_1Engine.html#a32973bdda8697bcbb4dde11c0366a5e3" target="_parent">r123::Engine::ukey_type()</a>
+  </div>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/typedefs_76.html b/docs/html/search/typedefs_76.html
new file mode 100644
index 0000000..e9b9a32
--- /dev/null
+++ b/docs/html/search/typedefs_76.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_value_5ftype">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_value_5ftype')">value_type</a>
+  <div class="SRChildren">
+    <a id="Item0_c0" onkeydown="return searchResults.NavChild(event,0,0)" onkeypress="return searchResults.NavChild(event,0,0)" onkeyup="return searchResults.NavChild(event,0,0)" class="SRScope" href="../structr123array1x32.html#a9c8e0d672be32b52eef639f1a3b2b98a" target="_parent">r123array1x32::value_type()</a>
+    <a id="Item0_c1" onkeydown="return searchResults.NavChild(event,0,1)" onkeypress="return searchResults.NavChild(event,0,1)" onkeyup="return searchResults.NavChild(event,0,1)" class="SRScope" href="../structr123array2x32.html#ab669df8d33d32ee3571210eb090c6cb2" target="_parent">r123array2x32::value_type()</a>
+    <a id="Item0_c2" onkeydown="return searchResults.NavChild(event,0,2)" onkeypress="return searchResults.NavChild(event,0,2)" onkeyup="return searchResults.NavChild(event,0,2)" class="SRScope" href="../structr123array4x32.html#a5ba59b507edcf793ba186a9a4e8c56d5" target="_parent">r123array4x32::value_type()</a>
+    <a id="Item0_c3" onkeydown="return searchResults.NavChild(event,0,3)" onkeypress="return searchResults.NavChild(event,0,3)" onkeyup="return searchResults.NavChild(event,0,3)" class="SRScope" href="../structr123array8x32.html#af47fd0d348b68dd7a2853c68eb32d8b7" target="_parent">r123array8x32::value_type()</a>
+    <a id="Item0_c4" onkeydown="return searchResults.NavChild(event,0,4)" onkeypress="return searchResults.NavChild(event,0,4)" onkeyup="return searchResults.NavChild(event,0,4)" class="SRScope" href="../structr123array1x64.html#a4d8280ccd7087d5c3faba27641e8fbe7" target="_parent">r123array1x64::value_type()</a>
+    <a id="Item0_c5" onkeydown="return searchResults.NavChild(event,0,5)" onkeypress="return searchResults.NavChild(event,0,5)" onkeyup="return searchResults.NavChild(event,0,5)" class="SRScope" href="../structr123array2x64.html#acefd9fb46661254e17877844c545e15f" target="_parent">r123array2x64::value_type()</a>
+    <a id="Item0_c6" onkeydown="return searchResults.NavChild(event,0,6)" onkeypress="return searchResults.NavChild(event,0,6)" onkeyup="return searchResults.NavChild(event,0,6)" class="SRScope" href="../structr123array4x64.html#ae4a79be3ab80944a8bb6bc7ec7907061" target="_parent">r123array4x64::value_type()</a>
+    <a id="Item0_c7" onkeydown="return searchResults.NavChild(event,0,7)" onkeypress="return searchResults.NavChild(event,0,7)" onkeyup="return searchResults.NavChild(event,0,7)" class="SRScope" href="../structr123array16x8.html#ad1d7184f51cafaff4714a2dcf60c9ae2" target="_parent">r123array16x8::value_type()</a>
+    <a id="Item0_c8" onkeydown="return searchResults.NavChild(event,0,8)" onkeypress="return searchResults.NavChild(event,0,8)" onkeyup="return searchResults.NavChild(event,0,8)" class="SRScope" href="../structr123array1xm128i.html#a70ab4e530c7cce9481e07aa0b21dd96b" target="_parent">r123array1xm128i::value_type()</a>
+  </div>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/variables_5f.html b/docs/html/search/variables_5f.html
new file mode 100644
index 0000000..2269714
--- /dev/null
+++ b/docs/html/search/variables_5f.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR__5fmax">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="javascript:searchResults.Toggle('SR__5fmax')">_Max</a>
+  <div class="SRChildren">
+    <a id="Item0_c0" onkeydown="return searchResults.NavChild(event,0,0)" onkeypress="return searchResults.NavChild(event,0,0)" onkeyup="return searchResults.NavChild(event,0,0)" class="SRScope" href="../classr123_1_1MicroURNG.html#a4faecd7ab54c7678ee66c413bb984bf0" target="_parent">r123::MicroURNG::_Max()</a>
+    <a id="Item0_c1" onkeydown="return searchResults.NavChild(event,0,1)" onkeypress="return searchResults.NavChild(event,0,1)" onkeyup="return searchResults.NavChild(event,0,1)" class="SRScope" href="../structr123_1_1Engine.html#ae549f81e966b0414bcaf0f24b566ebd8" target="_parent">r123::Engine::_Max()</a>
+  </div>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fmin">
+ <div class="SREntry">
+  <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="javascript:searchResults.Toggle('SR__5fmin')">_Min</a>
+  <div class="SRChildren">
+    <a id="Item1_c0" onkeydown="return searchResults.NavChild(event,1,0)" onkeypress="return searchResults.NavChild(event,1,0)" onkeyup="return searchResults.NavChild(event,1,0)" class="SRScope" href="../classr123_1_1MicroURNG.html#a1f2787f136a8a807d14eab8cb1ca8c14" target="_parent">r123::MicroURNG::_Min()</a>
+    <a id="Item1_c1" onkeydown="return searchResults.NavChild(event,1,1)" onkeypress="return searchResults.NavChild(event,1,1)" onkeyup="return searchResults.NavChild(event,1,1)" class="SRScope" href="../structr123_1_1Engine.html#aa73e4d27847915f1438fd37b30777111" target="_parent">r123::Engine::_Min()</a>
+  </div>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/variables_62.html b/docs/html/search/variables_62.html
new file mode 100644
index 0000000..7444e62
--- /dev/null
+++ b/docs/html/search/variables_62.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_b">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structr123_1_1Engine.html#a5e430e850badcc4fd0f74de4a49a673b" target="_parent">b</a>
+  <span class="SRScope">r123::Engine</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_bits">
+ <div class="SREntry">
+  <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../classr123_1_1MicroURNG.html#ac55cddda8fe0808f922f39beee587b27" target="_parent">BITS</a>
+  <span class="SRScope">r123::MicroURNG</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/variables_63.html b/docs/html/search/variables_63.html
new file mode 100644
index 0000000..01b7a19
--- /dev/null
+++ b/docs/html/search/variables_63.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_c">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structr123_1_1Engine.html#afb056ed93053f4175aabc9f4e5dd7b8d" target="_parent">c</a>
+  <span class="SRScope">r123::Engine</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/variables_65.html b/docs/html/search/variables_65.html
new file mode 100644
index 0000000..5908bba
--- /dev/null
+++ b/docs/html/search/variables_65.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_elem">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structr123_1_1Engine.html#a7b40128e9dc7427cd13d27477647b319" target="_parent">elem</a>
+  <span class="SRScope">r123::Engine</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/variables_6b.html b/docs/html/search/variables_6b.html
new file mode 100644
index 0000000..df8c0d4
--- /dev/null
+++ b/docs/html/search/variables_6b.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_k">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structaesni1xm128i__key__t.html#a60cefca96e55b73732f570e844efbe54" target="_parent">k</a>
+  <span class="SRScope">aesni1xm128i_key_t</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_key">
+ <div class="SREntry">
+  <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../structr123_1_1Engine.html#adb9e1841a81f213a115e9f092f5c4654" target="_parent">key</a>
+  <span class="SRScope">r123::Engine</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/variables_6d.html b/docs/html/search/variables_6d.html
new file mode 100644
index 0000000..5206dad
--- /dev/null
+++ b/docs/html/search/variables_6d.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_m">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structr123m128i.html#a9b9908268281aace8028a3f34980634d" target="_parent">m</a>
+  <span class="SRScope">r123m128i</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/variables_72.html b/docs/html/search/variables_72.html
new file mode 100644
index 0000000..0d0963b
--- /dev/null
+++ b/docs/html/search/variables_72.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_rounds">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_rounds')">rounds</a>
+  <div class="SRChildren">
+    <a id="Item0_c0" onkeydown="return searchResults.NavChild(event,0,0)" onkeypress="return searchResults.NavChild(event,0,0)" onkeyup="return searchResults.NavChild(event,0,0)" class="SRScope" href="../structr123_1_1AESNI1xm128i.html#a1b5a44afde814ba844d8f5442e2a3a5f" target="_parent">r123::AESNI1xm128i::rounds()</a>
+    <a id="Item0_c1" onkeydown="return searchResults.NavChild(event,0,1)" onkeypress="return searchResults.NavChild(event,0,1)" onkeyup="return searchResults.NavChild(event,0,1)" class="SRScope" href="../structr123_1_1AESNI4x32.html#a725aad79b8d496d97bed24390f624be6" target="_parent">r123::AESNI4x32::rounds()</a>
+    <a id="Item0_c2" onkeydown="return searchResults.NavChild(event,0,2)" onkeypress="return searchResults.NavChild(event,0,2)" onkeyup="return searchResults.NavChild(event,0,2)" class="SRScope" href="../structr123_1_1ARS1xm128i__R.html#abe167a93280140e424d722c1ac47a8e9" target="_parent">r123::ARS1xm128i_R::rounds()</a>
+    <a id="Item0_c3" onkeydown="return searchResults.NavChild(event,0,3)" onkeypress="return searchResults.NavChild(event,0,3)" onkeyup="return searchResults.NavChild(event,0,3)" class="SRScope" href="../structr123_1_1ARS4x32__R.html#a710e59a54794b4cd5e55689dd906b9ba" target="_parent">r123::ARS4x32_R::rounds()</a>
+    <a id="Item0_c4" onkeydown="return searchResults.NavChild(event,0,4)" onkeypress="return searchResults.NavChild(event,0,4)" onkeyup="return searchResults.NavChild(event,0,4)" class="SRScope" href="../structr123_1_1Philox2x32__R.html#a52ee7b34688fc2e5315152a10d7df5f0" target="_parent">r123::Philox2x32_R::rounds()</a>
+    <a id="Item0_c5" onkeydown="return searchResults.NavChild(event,0,5)" onkeypress="return searchResults.NavChild(event,0,5)" onkeyup="return searchResults.NavChild(event,0,5)" class="SRScope" href="../structr123_1_1Philox4x32__R.html#a90d6a86bff4dc6e5e24209423f125140" target="_parent">r123::Philox4x32_R::rounds()</a>
+    <a id="Item0_c6" onkeydown="return searchResults.NavChild(event,0,6)" onkeypress="return searchResults.NavChild(event,0,6)" onkeyup="return searchResults.NavChild(event,0,6)" class="SRScope" href="../structr123_1_1Philox2x64__R.html#ac0764d78e07bf6d311b47d0f3ce92450" target="_parent">r123::Philox2x64_R::rounds()</a>
+    <a id="Item0_c7" onkeydown="return searchResults.NavChild(event,0,7)" onkeypress="return searchResults.NavChild(event,0,7)" onkeyup="return searchResults.NavChild(event,0,7)" class="SRScope" href="../structr123_1_1Philox4x64__R.html#ac51193ab00b118b75784f86cf3470876" target="_parent">r123::Philox4x64_R::rounds()</a>
+    <a id="Item0_c8" onkeydown="return searchResults.NavChild(event,0,8)" onkeypress="return searchResults.NavChild(event,0,8)" onkeyup="return searchResults.NavChild(event,0,8)" class="SRScope" href="../structr123_1_1Threefry2x32__R.html#af5be46f8426cfcd86e75327e4b3750b0" target="_parent">r123::Threefry2x32_R::rounds()</a>
+    <a id="Item0_c9" onkeydown="return searchResults.NavChild(event,0,9)" onkeypress="return searchResults.NavChild(event,0,9)" onkeyup="return searchResults.NavChild(event,0,9)" class="SRScope" href="../structr123_1_1Threefry4x32__R.html#af63fd38ba9acf04ee56d75e96b413291" target="_parent">r123::Threefry4x32_R::rounds()</a>
+    <a id="Item0_c10" onkeydown="return searchResults.NavChild(event,0,10)" onkeypress="return searchResults.NavChild(event,0,10)" onkeyup="return searchResults.NavChild(event,0,10)" class="SRScope" href="../structr123_1_1Threefry2x64__R.html#aa994d756504284e6a59cc8d3c57f16c6" target="_parent">r123::Threefry2x64_R::rounds()</a>
+    <a id="Item0_c11" onkeydown="return searchResults.NavChild(event,0,11)" onkeypress="return searchResults.NavChild(event,0,11)" onkeyup="return searchResults.NavChild(event,0,11)" class="SRScope" href="../structr123_1_1Threefry4x64__R.html#ab8807960eec8fc2198055ec2a971e116" target="_parent">r123::Threefry4x64_R::rounds()</a>
+  </div>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/variables_75.html b/docs/html/search/variables_75.html
new file mode 100644
index 0000000..694f9de
--- /dev/null
+++ b/docs/html/search/variables_75.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_ukey">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structr123_1_1Engine.html#a11a79253c3a7b07e697f7bf4c7edb52f" target="_parent">ukey</a>
+  <span class="SRScope">r123::Engine</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/variables_76.html b/docs/html/search/variables_76.html
new file mode 100644
index 0000000..9487bd6
--- /dev/null
+++ b/docs/html/search/variables_76.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_v">
+ <div class="SREntry">
+  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_v')">v</a>
+  <div class="SRChildren">
+    <a id="Item0_c0" onkeydown="return searchResults.NavChild(event,0,0)" onkeypress="return searchResults.NavChild(event,0,0)" onkeyup="return searchResults.NavChild(event,0,0)" class="SRScope" href="../structr123array1x32.html#a1123ac44ecadd52dae06d2c8df86764a" target="_parent">r123array1x32::v()</a>
+    <a id="Item0_c1" onkeydown="return searchResults.NavChild(event,0,1)" onkeypress="return searchResults.NavChild(event,0,1)" onkeyup="return searchResults.NavChild(event,0,1)" class="SRScope" href="../structr123array2x32.html#a65524bf06568073021117ef196d6b45f" target="_parent">r123array2x32::v()</a>
+    <a id="Item0_c2" onkeydown="return searchResults.NavChild(event,0,2)" onkeypress="return searchResults.NavChild(event,0,2)" onkeyup="return searchResults.NavChild(event,0,2)" class="SRScope" href="../structr123array4x32.html#ac8e6785120a3031b211fc8aa7d03d83f" target="_parent">r123array4x32::v()</a>
+    <a id="Item0_c3" onkeydown="return searchResults.NavChild(event,0,3)" onkeypress="return searchResults.NavChild(event,0,3)" onkeyup="return searchResults.NavChild(event,0,3)" class="SRScope" href="../structr123array8x32.html#a7a84d2a924a271cc7b5f748023517d10" target="_parent">r123array8x32::v()</a>
+    <a id="Item0_c4" onkeydown="return searchResults.NavChild(event,0,4)" onkeypress="return searchResults.NavChild(event,0,4)" onkeyup="return searchResults.NavChild(event,0,4)" class="SRScope" href="../structr123array1x64.html#a951c4b651e15e5ad4f66d81027c8e1b5" target="_parent">r123array1x64::v()</a>
+    <a id="Item0_c5" onkeydown="return searchResults.NavChild(event,0,5)" onkeypress="return searchResults.NavChild(event,0,5)" onkeyup="return searchResults.NavChild(event,0,5)" class="SRScope" href="../structr123array2x64.html#a547e4a51e531cf36eef885fbf20a7048" target="_parent">r123array2x64::v()</a>
+    <a id="Item0_c6" onkeydown="return searchResults.NavChild(event,0,6)" onkeypress="return searchResults.NavChild(event,0,6)" onkeyup="return searchResults.NavChild(event,0,6)" class="SRScope" href="../structr123array4x64.html#aae3a18410877c49f1058bc4d78a62f48" target="_parent">r123array4x64::v()</a>
+    <a id="Item0_c7" onkeydown="return searchResults.NavChild(event,0,7)" onkeypress="return searchResults.NavChild(event,0,7)" onkeyup="return searchResults.NavChild(event,0,7)" class="SRScope" href="../structr123array16x8.html#a703776a5f85fb222e16b739309489783" target="_parent">r123array16x8::v()</a>
+    <a id="Item0_c8" onkeydown="return searchResults.NavChild(event,0,8)" onkeypress="return searchResults.NavChild(event,0,8)" onkeyup="return searchResults.NavChild(event,0,8)" class="SRScope" href="../structr123array1xm128i.html#ab6d5e4b23c04e12c1aad7aaf38ff2bd5" target="_parent">r123array1xm128i::v()</a>
+    <a id="Item0_c9" onkeydown="return searchResults.NavChild(event,0,9)" onkeypress="return searchResults.NavChild(event,0,9)" onkeyup="return searchResults.NavChild(event,0,9)" class="SRScope" href="../structr123_1_1Engine.html#a6169d4fbce1fd7725fabda4c693bf250" target="_parent">r123::Engine::v()</a>
+  </div>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/sse_8h.html b/docs/html/sse_8h.html
new file mode 100644
index 0000000..4482be2
--- /dev/null
+++ b/docs/html/sse_8h.html
@@ -0,0 +1,527 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Random123/features/sse.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Classes</a> |
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<h1>Random123/features/sse.h File Reference</h1>  </div>
+</div>
+<div class="contents">
+<code>#include <iostream></code><br/>
+<code>#include <limits></code><br/>
+<code>#include <stdexcept></code><br/>
+
+<p><a href="sse_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123m128i.html">r123m128i</a></td></tr>
+<tr><td colspan="2"><h2><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="sse_8h.html#a0b35a046e85316295476d7d552411044">haveAESNI</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static uint64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="sse_8h.html#adac6aaf79c4428abcd30bf583eeb5450">_mm_extract_lo64</a> (__m128i si)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structr123m128i.html">r123m128i</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="sse_8h.html#a2ffeb79e1a2cbb9cb35b0daf514a06a5">operator++</a> (<a class="el" href="structr123m128i.html">r123m128i</a> &v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structr123m128i.html">r123m128i</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="sse_8h.html#a436d4467bb1389d42bfa67686218fd98">operator+=</a> (<a class="el" href="structr123m128i.html">r123m128i</a> &lhs, uint64_t n)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static bool </td><td class="memItemRight" valign="bottom"><a class="el" href="sse_8h.html#a43e11de33821f27448feb163162ec895">operator<=</a> (uint64_t, const <a class="el" href="structr123m128i.html">r123m128i</a> &)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static bool </td><td class="memItemRight" valign="bottom"><a class="el" href="sse_8h.html#ac2c263fa443dd074fe4ff96710219eb8">operator<</a> (const <a class="el" href="structr123m128i.html">r123m128i</a> &, const <a class="el" href="structr123m128i.html">r123m128i</a> &)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static bool </td><td class="memItemRight" valign="bottom"><a class="el" href="sse_8h.html#a9ce245b77f0638255e7138190d0ff4fd">operator<=</a> (const <a class="el" href="structr123m128i.html">r123m128i</a> &, const <a class="el" href="structr123m128i.html">r123m128i</a> &)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static bool </td><td class="memItemRight" valign="bottom"><a class="el" href="sse_8h.html#ad07b59f8110eac57511ee8c2fa697f93">operator></a> (const <a class="el" href="structr123m128i.html">r123m128i</a> &, const <a class="el" href="structr123m128i.html">r123m128i</a> &)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static bool </td><td class="memItemRight" valign="bottom"><a class="el" href="sse_8h.html#aa7bb0ad8bfceb39a1b71262b9476e151">operator>=</a> (const <a class="el" href="structr123m128i.html">r123m128i</a> &, const <a class="el" href="structr123m128i.html">r123m128i</a> &)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static bool </td><td class="memItemRight" valign="bottom"><a class="el" href="sse_8h.html#ab1389a6d8b14bc380c6d6a6d4de8853e">operator==</a> (const <a class="el" href="structr123m128i.html">r123m128i</a> &lhs, const <a class="el" href="structr123m128i.html">r123m128i</a> &rhs)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static bool </td><td class="memItemRight" valign="bottom"><a class="el" href="sse_8h.html#a9fc5dd462afc043229ab800abb8f7d64">operator!=</a> (const <a class="el" href="structr123m128i.html">r123m128i</a> &lhs, const <a class="el" href="structr123m128i.html">r123m128i</a> &rhs)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static bool </td><td class="memItemRight" valign="bottom"><a class="el" href="sse_8h.html#a01fbbba16839c5938b3fa29668870db2">operator==</a> (uint64_t lhs, const <a class="el" href="structr123m128i.html">r123m128i</a> &rhs)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static bool </td><td class="memItemRight" valign="bottom"><a class="el" href="sse_8h.html#a76ef724b020add862a911a699a21451b">operator!=</a> (uint64_t lhs, const <a class="el" href="structr123m128i.html">r123m128i</a> &rhs)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static std::ostream & </td><td class="memItemRight" valign="bottom"><a class="el" href="sse_8h.html#af965b43e09e7305795c7b5a35d20c75f">operator<<</a> (std::ostream &os, const <a class="el" href="structr123m128i.html">r123m128i</a> &m)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static std::istream & </td><td class="memItemRight" valign="bottom"><a class="el" href="sse_8h.html#a202aef4bea97c2203a82676cb6abba40">operator>></a> (std::istream &is, <a class="el" href="structr123m128i.html">r123m128i</a> &m)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="sse_8h.html#a99c42d1da8da3a4a273556a7817b5c1f">assemble_from_u32</a> (uint32_t *p32)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template<> </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structr123m128i.html">r123m128i</a> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="sse_8h.html#a0cd6ca87c67023d7afda38319ab40e43">assemble_from_u32< r123m128i ></a> (uint32_t *p32)</td></tr>
+</table>
+<hr/><h2>Function Documentation</h2>
+<a class="anchor" id="adac6aaf79c4428abcd30bf583eeb5450"></a><!-- doxytag: member="sse.h::_mm_extract_lo64" ref="adac6aaf79c4428abcd30bf583eeb5450" args="(__m128i si)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static uint64_t _mm_extract_lo64 </td>
+          <td>(</td>
+          <td class="paramtype">__m128i </td>
+          <td class="paramname"> <em>si</em></td>
+          <td> ) </td>
+          <td><code> [inline, static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a99c42d1da8da3a4a273556a7817b5c1f"></a><!-- doxytag: member="sse.h::assemble_from_u32" ref="a99c42d1da8da3a4a273556a7817b5c1f" args="(uint32_t *p32)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename T > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">T assemble_from_u32 </td>
+          <td>(</td>
+          <td class="paramtype">uint32_t * </td>
+          <td class="paramname"> <em>p32</em></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a0cd6ca87c67023d7afda38319ab40e43"></a><!-- doxytag: member="sse.h::assemble_from_u32< r123m128i >" ref="a0cd6ca87c67023d7afda38319ab40e43" args="(uint32_t *p32)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<> </div>
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123m128i.html">r123m128i</a> assemble_from_u32< <a class="el" href="structr123m128i.html">r123m128i</a> > </td>
+          <td>(</td>
+          <td class="paramtype">uint32_t * </td>
+          <td class="paramname"> <em>p32</em></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a0b35a046e85316295476d7d552411044"></a><!-- doxytag: member="sse.h::haveAESNI" ref="a0b35a046e85316295476d7d552411044" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static int haveAESNI </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline, static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a9fc5dd462afc043229ab800abb8f7d64"></a><!-- doxytag: member="sse.h::operator!=" ref="a9fc5dd462afc043229ab800abb8f7d64" args="(const r123m128i &lhs, const r123m128i &rhs)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static bool operator!= </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structr123m128i.html">r123m128i</a> & </td>
+          <td class="paramname"> <em>lhs</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structr123m128i.html">r123m128i</a> & </td>
+          <td class="paramname"> <em>rhs</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [inline, static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a76ef724b020add862a911a699a21451b"></a><!-- doxytag: member="sse.h::operator!=" ref="a76ef724b020add862a911a699a21451b" args="(uint64_t lhs, const r123m128i &rhs)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static bool operator!= </td>
+          <td>(</td>
+          <td class="paramtype">uint64_t </td>
+          <td class="paramname"> <em>lhs</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structr123m128i.html">r123m128i</a> & </td>
+          <td class="paramname"> <em>rhs</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [inline, static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a2ffeb79e1a2cbb9cb35b0daf514a06a5"></a><!-- doxytag: member="sse.h::operator++" ref="a2ffeb79e1a2cbb9cb35b0daf514a06a5" args="(r123m128i &v)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structr123m128i.html">r123m128i</a>& operator++ </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123m128i.html">r123m128i</a> & </td>
+          <td class="paramname"> <em>v</em></td>
+          <td> ) </td>
+          <td><code> [inline, static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a436d4467bb1389d42bfa67686218fd98"></a><!-- doxytag: member="sse.h::operator+=" ref="a436d4467bb1389d42bfa67686218fd98" args="(r123m128i &lhs, uint64_t n)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structr123m128i.html">r123m128i</a>& operator+= </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123m128i.html">r123m128i</a> & </td>
+          <td class="paramname"> <em>lhs</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint64_t </td>
+          <td class="paramname"> <em>n</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [inline, static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ac2c263fa443dd074fe4ff96710219eb8"></a><!-- doxytag: member="sse.h::operator<" ref="ac2c263fa443dd074fe4ff96710219eb8" args="(const r123m128i &, const r123m128i &)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static bool operator< </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structr123m128i.html">r123m128i</a> & </td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structr123m128i.html">r123m128i</a> & </td>
+          <td class="paramname"></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [inline, static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="af965b43e09e7305795c7b5a35d20c75f"></a><!-- doxytag: member="sse.h::operator<<" ref="af965b43e09e7305795c7b5a35d20c75f" args="(std::ostream &os, const r123m128i &m)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static std::ostream& operator<< </td>
+          <td>(</td>
+          <td class="paramtype">std::ostream & </td>
+          <td class="paramname"> <em>os</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structr123m128i.html">r123m128i</a> & </td>
+          <td class="paramname"> <em>m</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [inline, static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a9ce245b77f0638255e7138190d0ff4fd"></a><!-- doxytag: member="sse.h::operator<=" ref="a9ce245b77f0638255e7138190d0ff4fd" args="(const r123m128i &, const r123m128i &)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static bool operator<= </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structr123m128i.html">r123m128i</a> & </td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structr123m128i.html">r123m128i</a> & </td>
+          <td class="paramname"></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [inline, static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a43e11de33821f27448feb163162ec895"></a><!-- doxytag: member="sse.h::operator<=" ref="a43e11de33821f27448feb163162ec895" args="(uint64_t, const r123m128i &)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static bool operator<= </td>
+          <td>(</td>
+          <td class="paramtype">uint64_t </td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structr123m128i.html">r123m128i</a> & </td>
+          <td class="paramname"></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [inline, static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ab1389a6d8b14bc380c6d6a6d4de8853e"></a><!-- doxytag: member="sse.h::operator==" ref="ab1389a6d8b14bc380c6d6a6d4de8853e" args="(const r123m128i &lhs, const r123m128i &rhs)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static bool operator== </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structr123m128i.html">r123m128i</a> & </td>
+          <td class="paramname"> <em>lhs</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structr123m128i.html">r123m128i</a> & </td>
+          <td class="paramname"> <em>rhs</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [inline, static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a01fbbba16839c5938b3fa29668870db2"></a><!-- doxytag: member="sse.h::operator==" ref="a01fbbba16839c5938b3fa29668870db2" args="(uint64_t lhs, const r123m128i &rhs)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static bool operator== </td>
+          <td>(</td>
+          <td class="paramtype">uint64_t </td>
+          <td class="paramname"> <em>lhs</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structr123m128i.html">r123m128i</a> & </td>
+          <td class="paramname"> <em>rhs</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [inline, static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ad07b59f8110eac57511ee8c2fa697f93"></a><!-- doxytag: member="sse.h::operator>" ref="ad07b59f8110eac57511ee8c2fa697f93" args="(const r123m128i &, const r123m128i &)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static bool operator> </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structr123m128i.html">r123m128i</a> & </td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structr123m128i.html">r123m128i</a> & </td>
+          <td class="paramname"></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [inline, static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa7bb0ad8bfceb39a1b71262b9476e151"></a><!-- doxytag: member="sse.h::operator>=" ref="aa7bb0ad8bfceb39a1b71262b9476e151" args="(const r123m128i &, const r123m128i &)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static bool operator>= </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structr123m128i.html">r123m128i</a> & </td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structr123m128i.html">r123m128i</a> & </td>
+          <td class="paramname"></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [inline, static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a202aef4bea97c2203a82676cb6abba40"></a><!-- doxytag: member="sse.h::operator>>" ref="a202aef4bea97c2203a82676cb6abba40" args="(std::istream &is, r123m128i &m)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static std::istream& operator>> </td>
+          <td>(</td>
+          <td class="paramtype">std::istream & </td>
+          <td class="paramname"> <em>is</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structr123m128i.html">r123m128i</a> & </td>
+          <td class="paramname"> <em>m</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [inline, static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/sse_8h_source.html b/docs/html/sse_8h_source.html
new file mode 100644
index 0000000..87fb23f
--- /dev/null
+++ b/docs/html/sse_8h_source.html
@@ -0,0 +1,355 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Random123/features/sse.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+<div class="header">
+  <div class="headertitle">
+<h1>Random123/features/sse.h</h1>  </div>
+</div>
+<div class="contents">
+<a href="sse_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
+<a name="l00002"></a>00002 <span class="comment">Copyright 2010-2011, D. E. Shaw Research.</span>
+<a name="l00003"></a>00003 <span class="comment">All rights reserved.</span>
+<a name="l00004"></a>00004 <span class="comment"></span>
+<a name="l00005"></a>00005 <span class="comment">Redistribution and use in source and binary forms, with or without</span>
+<a name="l00006"></a>00006 <span class="comment">modification, are permitted provided that the following conditions are</span>
+<a name="l00007"></a>00007 <span class="comment">met:</span>
+<a name="l00008"></a>00008 <span class="comment"></span>
+<a name="l00009"></a>00009 <span class="comment">* Redistributions of source code must retain the above copyright</span>
+<a name="l00010"></a>00010 <span class="comment">  notice, this list of conditions, and the following disclaimer.</span>
+<a name="l00011"></a>00011 <span class="comment"></span>
+<a name="l00012"></a>00012 <span class="comment">* Redistributions in binary form must reproduce the above copyright</span>
+<a name="l00013"></a>00013 <span class="comment">  notice, this list of conditions, and the following disclaimer in the</span>
+<a name="l00014"></a>00014 <span class="comment">  documentation and/or other materials provided with the distribution.</span>
+<a name="l00015"></a>00015 <span class="comment"></span>
+<a name="l00016"></a>00016 <span class="comment">* Neither the name of D. E. Shaw Research nor the names of its</span>
+<a name="l00017"></a>00017 <span class="comment">  contributors may be used to endorse or promote products derived from</span>
+<a name="l00018"></a>00018 <span class="comment">  this software without specific prior written permission.</span>
+<a name="l00019"></a>00019 <span class="comment"></span>
+<a name="l00020"></a>00020 <span class="comment">THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS</span>
+<a name="l00021"></a>00021 <span class="comment">"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT</span>
+<a name="l00022"></a>00022 <span class="comment">LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR</span>
+<a name="l00023"></a>00023 <span class="comment">A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT</span>
+<a name="l00024"></a>00024 <span class="comment">OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,</span>
+<a name="l00025"></a>00025 <span class="comment">SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT</span>
+<a name="l00026"></a>00026 <span class="comment">LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,</span>
+<a name="l00027"></a>00027 <span class="comment">DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY</span>
+<a name="l00028"></a>00028 <span class="comment">THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT</span>
+<a name="l00029"></a>00029 <span class="comment">(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE</span>
+<a name="l00030"></a>00030 <span class="comment">OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span>
+<a name="l00031"></a>00031 <span class="comment">*/</span>
+<a name="l00032"></a>00032 <span class="preprocessor">#ifndef _Random123_sse_dot_h__</span>
+<a name="l00033"></a>00033 <span class="preprocessor"></span><span class="preprocessor">#define _Random123_sse_dot_h__</span>
+<a name="l00034"></a>00034 <span class="preprocessor"></span>
+<a name="l00035"></a>00035 <span class="preprocessor">#if R123_USE_SSE</span>
+<a name="l00036"></a>00036 <span class="preprocessor"></span>
+<a name="l00037"></a>00037 <span class="preprocessor">#if R123_USE_X86INTRIN_H</span>
+<a name="l00038"></a>00038 <span class="preprocessor"></span><span class="preprocessor">#include <x86intrin.h></span>
+<a name="l00039"></a>00039 <span class="preprocessor">#endif</span>
+<a name="l00040"></a>00040 <span class="preprocessor"></span><span class="preprocessor">#if R123_USE_IA32INTRIN_H</span>
+<a name="l00041"></a>00041 <span class="preprocessor"></span><span class="preprocessor">#include <ia32intrin.h></span>
+<a name="l00042"></a>00042 <span class="preprocessor">#endif</span>
+<a name="l00043"></a>00043 <span class="preprocessor"></span><span class="preprocessor">#if R123_USE_XMMINTRIN_H</span>
+<a name="l00044"></a>00044 <span class="preprocessor"></span><span class="preprocessor">#include <xmmintrin.h></span>
+<a name="l00045"></a>00045 <span class="preprocessor">#endif</span>
+<a name="l00046"></a>00046 <span class="preprocessor"></span><span class="preprocessor">#if R123_USE_EMMINTRIN_H</span>
+<a name="l00047"></a>00047 <span class="preprocessor"></span><span class="preprocessor">#include <emmintrin.h></span>
+<a name="l00048"></a>00048 <span class="preprocessor">#endif</span>
+<a name="l00049"></a>00049 <span class="preprocessor"></span><span class="preprocessor">#if R123_USE_SMMINTRIN_H</span>
+<a name="l00050"></a>00050 <span class="preprocessor"></span><span class="preprocessor">#include <smmintrin.h></span>
+<a name="l00051"></a>00051 <span class="preprocessor">#endif</span>
+<a name="l00052"></a>00052 <span class="preprocessor"></span><span class="preprocessor">#if R123_USE_WMMINTRIN_H</span>
+<a name="l00053"></a>00053 <span class="preprocessor"></span><span class="preprocessor">#include <wmmintrin.h></span>
+<a name="l00054"></a>00054 <span class="preprocessor">#endif</span>
+<a name="l00055"></a>00055 <span class="preprocessor"></span><span class="preprocessor">#if R123_USE_INTRIN_H</span>
+<a name="l00056"></a>00056 <span class="preprocessor"></span><span class="preprocessor">#include <intrin.h></span>
+<a name="l00057"></a>00057 <span class="preprocessor">#endif</span>
+<a name="l00058"></a>00058 <span class="preprocessor"></span><span class="preprocessor">#ifdef __cplusplus</span>
+<a name="l00059"></a>00059 <span class="preprocessor"></span><span class="preprocessor">#include <iostream></span>
+<a name="l00060"></a>00060 <span class="preprocessor">#include <limits></span>
+<a name="l00061"></a>00061 <span class="preprocessor">#include <stdexcept></span>
+<a name="l00062"></a>00062 <span class="preprocessor">#endif</span>
+<a name="l00063"></a>00063 <span class="preprocessor"></span>
+<a name="l00064"></a>00064 <span class="preprocessor">#if R123_USE_ASM_GNU</span>
+<a name="l00065"></a>00065 <span class="preprocessor"></span>
+<a name="l00066"></a>00066 <span class="comment">/* bit25 of CX tells us whether AES is enabled. */</span>
+<a name="l00067"></a>00067 R123_STATIC_INLINE <span class="keywordtype">int</span> <a class="code" href="sse_8h.html#a0b35a046e85316295476d7d552411044">haveAESNI</a>(){
+<a name="l00068"></a>00068     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> eax, ebx, ecx, edx;
+<a name="l00069"></a>00069     __asm__ __volatile__ (<span class="stringliteral">"cpuid"</span>: <span class="stringliteral">"=a"</span> (eax), <span class="stringliteral">"=b"</span> (ebx), <span class="stringliteral">"=c"</span> (ecx), <span class="stringliteral">"=d"</span> (edx) :
+<a name="l00070"></a>00070                       <span class="stringliteral">"a"</span> (1));
+<a name="l00071"></a>00071     <span class="keywordflow">return</span> (ecx>>25) & 1;
+<a name="l00072"></a>00072 }
+<a name="l00073"></a>00073 <span class="preprocessor">#elif R123_USE_CPUID_MSVC</span>
+<a name="l00074"></a>00074 <span class="preprocessor"></span>R123_STATIC_INLINE <span class="keywordtype">int</span> <a class="code" href="sse_8h.html#a0b35a046e85316295476d7d552411044">haveAESNI</a>(){
+<a name="l00075"></a>00075     <span class="keywordtype">int</span> CPUInfo[4];
+<a name="l00076"></a>00076     __cpuid(CPUInfo, 1);
+<a name="l00077"></a>00077     <span class="keywordflow">return</span> (CPUInfo[2]>>25)&1;
+<a name="l00078"></a>00078 }
+<a name="l00079"></a>00079 <span class="preprocessor">#else </span><span class="comment">/* R123_USE_CPUID_??? */</span>
+<a name="l00080"></a>00080 <span class="preprocessor">#warning "No R123_USE_CPUID_XXX method chosen.  haveAESNI will always return false"</span>
+<a name="l00081"></a><a class="code" href="sse_8h.html#a0b35a046e85316295476d7d552411044">00081</a> <span class="preprocessor"></span>R123_STATIC_INLINE <span class="keywordtype">int</span> <a class="code" href="sse_8h.html#a0b35a046e85316295476d7d552411044">haveAESNI</a>(){
+<a name="l00082"></a>00082     <span class="keywordflow">return</span> 0;
+<a name="l00083"></a>00083 }
+<a name="l00084"></a>00084 <span class="preprocessor">#endif </span><span class="comment">/* R123_USE_ASM_GNU || R123_USE_CPUID_MSVC */</span>
+<a name="l00085"></a>00085 
+<a name="l00086"></a>00086 <span class="comment">// There is a lot of annoying and inexplicable variation in the</span>
+<a name="l00087"></a>00087 <span class="comment">// SSE intrinsics available in different compilation environments.</span>
+<a name="l00088"></a>00088 <span class="comment">// The details seem to depend on the compiler, the version and</span>
+<a name="l00089"></a>00089 <span class="comment">// the target architecture.  Rather than insisting on</span>
+<a name="l00090"></a>00090 <span class="comment">// R123_USE_feature tests for each of these in each of the</span>
+<a name="l00091"></a>00091 <span class="comment">// compilerfeatures.h files we just keep the complexity localized</span>
+<a name="l00092"></a>00092 <span class="comment">// to here...</span>
+<a name="l00093"></a>00093 <span class="preprocessor">#if (defined(__ICC) && __ICC<1210) || (defined(_MSC_VER) && !defined(_WIN64))</span>
+<a name="l00094"></a>00094 <span class="preprocessor"></span><span class="comment">/* Is there an intrinsic to assemble an __m128i from two 64-bit words? </span>
+<a name="l00095"></a>00095 <span class="comment">   If not, use the 4x32-bit intrisic instead.  N.B.  It looks like Intel</span>
+<a name="l00096"></a>00096 <span class="comment">   added _mm_set_epi64x to icc version 12.1 in Jan 2012.</span>
+<a name="l00097"></a>00097 <span class="comment">*/</span>
+<a name="l00098"></a>00098 R123_STATIC_INLINE __m128i _mm_set_epi64x(uint64_t v1, uint64_t v0){
+<a name="l00099"></a>00099     <span class="keyword">union</span>{
+<a name="l00100"></a>00100         uint64_t u64;
+<a name="l00101"></a>00101         uint32_t u32[2];
+<a name="l00102"></a>00102     } u1, u0;
+<a name="l00103"></a>00103     u1.u64 = v1;
+<a name="l00104"></a>00104     u0.u64 = v0;
+<a name="l00105"></a>00105     <span class="keywordflow">return</span> _mm_set_epi32(u1.u32[1], u1.u32[0], u0.u32[1], u0.u32[0]);
+<a name="l00106"></a>00106 }
+<a name="l00107"></a>00107 <span class="preprocessor">#endif</span>
+<a name="l00108"></a>00108 <span class="preprocessor"></span><span class="comment">/* _mm_extract_lo64 abstracts the task of extracting the low 64-bit</span>
+<a name="l00109"></a>00109 <span class="comment">   word from an __m128i.  The _mm_cvtsi128_si64 intrinsic does the job</span>
+<a name="l00110"></a>00110 <span class="comment">   on 64-bit platforms.  Unfortunately, both MSVC and Open64 fail</span>
+<a name="l00111"></a>00111 <span class="comment">   assertions in ut_M128.cpp and ut_carray.cpp when we use the</span>
+<a name="l00112"></a>00112 <span class="comment">   _mm_cvtsi128_si64 intrinsic.  (See</span>
+<a name="l00113"></a>00113 <span class="comment">   https://bugs.open64.net/show_bug.cgi?id=873 for the Open64 bug).</span>
+<a name="l00114"></a>00114 <span class="comment">   On 32-bit platforms, there's no MOVQ, so there's no intrinsic.</span>
+<a name="l00115"></a>00115 <span class="comment">   Finally, even if the intrinsic exists, it may be spelled with or</span>
+<a name="l00116"></a>00116 <span class="comment">   without the 'x'.</span>
+<a name="l00117"></a>00117 <span class="comment">*/</span>
+<a name="l00118"></a>00118 <span class="preprocessor">#if !defined(__x86_64__) || defined(_MSC_VER) || defined(__OPEN64__)</span>
+<a name="l00119"></a><a class="code" href="sse_8h.html#adac6aaf79c4428abcd30bf583eeb5450">00119</a> <span class="preprocessor"></span>R123_STATIC_INLINE uint64_t <a class="code" href="sse_8h.html#adac6aaf79c4428abcd30bf583eeb5450">_mm_extract_lo64</a>(__m128i si){
+<a name="l00120"></a>00120     <span class="keyword">union</span>{
+<a name="l00121"></a>00121         uint64_t u64[2];
+<a name="l00122"></a>00122         __m128i m;
+<a name="l00123"></a>00123     }u;
+<a name="l00124"></a>00124     _mm_store_si128(&u.m, si);
+<a name="l00125"></a>00125     <span class="keywordflow">return</span> u.u64[0];
+<a name="l00126"></a>00126 }
+<a name="l00127"></a>00127 <span class="preprocessor">#elif defined(__llvm__) || defined(__ICC)</span>
+<a name="l00128"></a>00128 <span class="preprocessor"></span>R123_STATIC_INLINE uint64_t <a class="code" href="sse_8h.html#adac6aaf79c4428abcd30bf583eeb5450">_mm_extract_lo64</a>(__m128i si){
+<a name="l00129"></a>00129     <span class="keywordflow">return</span> (uint64_t)_mm_cvtsi128_si64(si);
+<a name="l00130"></a>00130 }
+<a name="l00131"></a>00131 <span class="preprocessor">#else </span><span class="comment">/* GNUC, others */</span>
+<a name="l00132"></a>00132 <span class="comment">/* FWIW, gcc's emmintrin.h has had the 'x' spelling</span>
+<a name="l00133"></a>00133 <span class="comment">   since at least gcc-3.4.4.  The no-'x' spelling showed up</span>
+<a name="l00134"></a>00134 <span class="comment">   around 4.2. */</span>
+<a name="l00135"></a>00135 R123_STATIC_INLINE uint64_t <a class="code" href="sse_8h.html#adac6aaf79c4428abcd30bf583eeb5450">_mm_extract_lo64</a>(__m128i si){
+<a name="l00136"></a>00136     <span class="keywordflow">return</span> (uint64_t)_mm_cvtsi128_si64x(si);
+<a name="l00137"></a>00137 }
+<a name="l00138"></a>00138 <span class="preprocessor">#endif</span>
+<a name="l00139"></a>00139 <span class="preprocessor"></span><span class="preprocessor">#if defined(__GNUC__) && __GNUC__ < 4</span>
+<a name="l00140"></a>00140 <span class="preprocessor"></span><span class="comment">/* the cast builtins showed up in gcc4. */</span>
+<a name="l00141"></a>00141 R123_STATIC_INLINE __m128 _mm_castsi128_ps(__m128i si){
+<a name="l00142"></a>00142     <span class="keywordflow">return</span> (__m128)si;
+<a name="l00143"></a>00143 }
+<a name="l00144"></a>00144 <span class="preprocessor">#endif</span>
+<a name="l00145"></a>00145 <span class="preprocessor"></span>
+<a name="l00146"></a>00146 <span class="preprocessor">#ifdef __cplusplus</span>
+<a name="l00147"></a>00147 <span class="preprocessor"></span>
+<a name="l00148"></a><a class="code" href="structr123m128i.html">00148</a> <span class="keyword">struct </span><a class="code" href="structr123m128i.html">r123m128i</a>{
+<a name="l00149"></a><a class="code" href="structr123m128i.html#a9b9908268281aace8028a3f34980634d">00149</a>     __m128i <a class="code" href="structr123m128i.html#a9b9908268281aace8028a3f34980634d">m</a>;
+<a name="l00150"></a>00150 <span class="preprocessor">#if R123_USE_CXX11_UNRESTRICTED_UNIONS</span>
+<a name="l00151"></a>00151 <span class="preprocessor"></span>    <span class="comment">// C++98 forbids a union member from having *any* constructors.</span>
+<a name="l00152"></a>00152     <span class="comment">// C++11 relaxes this, and allows union members to have constructors</span>
+<a name="l00153"></a>00153     <span class="comment">// as long as there is a "trivial" default construtor.  So in C++11</span>
+<a name="l00154"></a>00154     <span class="comment">// we can provide a r123m128i constructor with an __m128i argument, and still</span>
+<a name="l00155"></a>00155     <span class="comment">// have the default (and hence trivial) default constructor.</span>
+<a name="l00156"></a>00156     <a class="code" href="structr123m128i.html">r123m128i</a>() = <span class="keywordflow">default</span>;
+<a name="l00157"></a>00157     <a class="code" href="structr123m128i.html">r123m128i</a>(__m128i _m): <a class="code" href="structr123m128i.html#a9b9908268281aace8028a3f34980634d">m</a>(_m){}
+<a name="l00158"></a>00158 <span class="preprocessor">#endif</span>
+<a name="l00159"></a><a class="code" href="structr123m128i.html#a9842fbc85102e0019cc58d97c28e2d02">00159</a> <span class="preprocessor"></span>    <a class="code" href="structr123m128i.html">r123m128i</a>& <a class="code" href="structr123m128i.html#a9842fbc85102e0019cc58d97c28e2d02">operator=</a>(<span class="keyword">const</span> __m128i& rhs){ <a class="code" href="structr123m128i.html#a9b9908268281aace8028a3f34980634d">m</a>=rhs; <span class="keywordflow">return</span> *<span  [...]
+<a name="l00160"></a><a class="code" href="structr123m128i.html#a0da7ae920bce1b75efb91017ab6bc37c">00160</a>     <a class="code" href="structr123m128i.html">r123m128i</a>& <a class="code" href="structr123m128i.html#a0da7ae920bce1b75efb91017ab6bc37c">operator=</a>(R123_ULONG_LONG n){ <a class="code" href="structr123m128i.html#a9b9908268281aace8028a3f34980634d">m</a> = _mm_set_epi64x(0, n); <span class="keywordflow">return</span> *<span class="keyword">this</span>;}
+<a name="l00161"></a>00161 <span class="preprocessor">#if R123_USE_CXX11_EXPLICIT_CONVERSIONS</span>
+<a name="l00162"></a>00162 <span class="preprocessor"></span>    <span class="comment">// With C++0x we can attach explicit to the bool conversion operator</span>
+<a name="l00163"></a>00163     <span class="comment">// to disambiguate undesired promotions.  For g++, this works</span>
+<a name="l00164"></a>00164     <span class="comment">// only in 4.5 and above.</span>
+<a name="l00165"></a>00165     <span class="keyword">explicit</span> operator bool()<span class="keyword"> const </span>{<span class="keywordflow">return</span> _bool();}
+<a name="l00166"></a>00166 <span class="preprocessor">#else</span>
+<a name="l00167"></a>00167 <span class="preprocessor"></span>    <span class="comment">// Pre-C++0x, we have to do something else.  Google for the "safe bool"</span>
+<a name="l00168"></a>00168     <span class="comment">// idiom for other ideas...</span>
+<a name="l00169"></a><a class="code" href="structr123m128i.html#ae5788785c2ce7f7ca6ff8dd4377771f3">00169</a>     <a class="code" href="structr123m128i.html#ae5788785c2ce7f7ca6ff8dd4377771f3">operator const void*</a>()<span class="keyword"> const</span>{<span class="keywordflow">return</span> _bool()?<span class="keyword">this</span>:0;}
+<a name="l00170"></a>00170 <span class="preprocessor">#endif</span>
+<a name="l00171"></a><a class="code" href="structr123m128i.html#a80a5c24f76fec61b3ab0ed0e0353cfb7">00171</a> <span class="preprocessor"></span>    <a class="code" href="structr123m128i.html#a80a5c24f76fec61b3ab0ed0e0353cfb7">operator __m128i</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="structr123m128i.html#a9b9908268281aace8028a3f34980634d">m</a>;}
+<a name="l00172"></a>00172 
+<a name="l00173"></a>00173 <span class="keyword">private</span>:
+<a name="l00174"></a>00174 <span class="preprocessor">#if R123_USE_SSE4_1</span>
+<a name="l00175"></a>00175 <span class="preprocessor"></span>    <span class="keywordtype">bool</span> _bool()<span class="keyword"> const</span>{ <span class="keywordflow">return</span> !_mm_testz_si128(<a class="code" href="structr123m128i.html#a9b9908268281aace8028a3f34980634d">m</a>,<a class="code" href="structr123m128i.html#a9b9908268281aace8028a3f34980634d">m</a>); }
+<a name="l00176"></a>00176 <span class="preprocessor">#else</span>
+<a name="l00177"></a>00177 <span class="preprocessor"></span>    <span class="keywordtype">bool</span> _bool()<span class="keyword"> const</span>{ <span class="keywordflow">return</span> 0xf != _mm_movemask_ps(_mm_castsi128_ps(_mm_cmpeq_epi32(<a class="code" href="structr123m128i.html#a9b9908268281aace8028a3f34980634d">m</a>, _mm_setzero_si128()))); }
+<a name="l00178"></a>00178 <span class="preprocessor">#endif</span>
+<a name="l00179"></a>00179 <span class="preprocessor"></span>};
+<a name="l00180"></a>00180 
+<a name="l00181"></a><a class="code" href="sse_8h.html#a2ffeb79e1a2cbb9cb35b0daf514a06a5">00181</a> R123_STATIC_INLINE <a class="code" href="structr123m128i.html">r123m128i</a>& <a class="code" href="sse_8h.html#a2ffeb79e1a2cbb9cb35b0daf514a06a5">operator++</a>(<a class="code" href="structr123m128i.html">r123m128i</a>& v){
+<a name="l00182"></a>00182     __m128i& c = v.<a class="code" href="structr123m128i.html#a9b9908268281aace8028a3f34980634d">m</a>;
+<a name="l00183"></a>00183     __m128i zeroone = _mm_set_epi64x(R123_64BIT(0), R123_64BIT(1));
+<a name="l00184"></a>00184     c = _mm_add_epi64(c, zeroone);
+<a name="l00185"></a>00185     <span class="comment">//return c;</span>
+<a name="l00186"></a>00186 <span class="preprocessor">#if R123_USE_SSE4_1</span>
+<a name="l00187"></a>00187 <span class="preprocessor"></span>    __m128i zerofff = _mm_set_epi64x(0, ~(R123_64BIT(0)));
+<a name="l00188"></a>00188     <span class="keywordflow">if</span>( R123_BUILTIN_EXPECT(_mm_testz_si128(c,zerofff), 0) ){
+<a name="l00189"></a>00189         __m128i onezero = _mm_set_epi64x(R123_64BIT(1), R123_64BIT(0));
+<a name="l00190"></a>00190         c = _mm_add_epi64(c, onezero);
+<a name="l00191"></a>00191     }
+<a name="l00192"></a>00192 <span class="preprocessor">#else</span>
+<a name="l00193"></a>00193 <span class="preprocessor"></span>    <span class="keywordtype">unsigned</span> mask  = _mm_movemask_ps( _mm_castsi128_ps(_mm_cmpeq_epi32(c, _mm_setzero_si128())));
+<a name="l00194"></a>00194     <span class="comment">// The low two bits of mask are 11 iff the low 64 bits of</span>
+<a name="l00195"></a>00195     <span class="comment">// c are zero.</span>
+<a name="l00196"></a>00196     <span class="keywordflow">if</span>( R123_BUILTIN_EXPECT((mask&0x3) == 0x3, 0) ){
+<a name="l00197"></a>00197         __m128i onezero = _mm_set_epi64x(1,0);
+<a name="l00198"></a>00198         c = _mm_add_epi64(c, onezero);
+<a name="l00199"></a>00199     }
+<a name="l00200"></a>00200 <span class="preprocessor">#endif</span>
+<a name="l00201"></a>00201 <span class="preprocessor"></span>    <span class="keywordflow">return</span> v;
+<a name="l00202"></a>00202 }
+<a name="l00203"></a>00203 
+<a name="l00204"></a><a class="code" href="sse_8h.html#a436d4467bb1389d42bfa67686218fd98">00204</a> R123_STATIC_INLINE <a class="code" href="structr123m128i.html">r123m128i</a>& <a class="code" href="sse_8h.html#a436d4467bb1389d42bfa67686218fd98">operator+=</a>(<a class="code" href="structr123m128i.html">r123m128i</a>& lhs, R123_ULONG_LONG n){ 
+<a name="l00205"></a>00205     __m128i c = lhs.<a class="code" href="structr123m128i.html#a9b9908268281aace8028a3f34980634d">m</a>;
+<a name="l00206"></a>00206     __m128i incr128 = _mm_set_epi64x(0, n);
+<a name="l00207"></a>00207     c = _mm_add_epi64(c, incr128);
+<a name="l00208"></a>00208     <span class="comment">// return c;     // NO CARRY!  </span>
+<a name="l00209"></a>00209 
+<a name="l00210"></a>00210     int64_t lo64 = <a class="code" href="sse_8h.html#adac6aaf79c4428abcd30bf583eeb5450">_mm_extract_lo64</a>(c);
+<a name="l00211"></a>00211     <span class="keywordflow">if</span>((uint64_t)lo64 < n)
+<a name="l00212"></a>00212         c = _mm_add_epi64(c, _mm_set_epi64x(1,0));
+<a name="l00213"></a>00213     lhs.<a class="code" href="structr123m128i.html#a9b9908268281aace8028a3f34980634d">m</a> = c;
+<a name="l00214"></a>00214     <span class="keywordflow">return</span> lhs; 
+<a name="l00215"></a>00215 }
+<a name="l00216"></a>00216 
+<a name="l00217"></a>00217 <span class="comment">// We need this one because it's present, but never used in r123array1xm128i::incr</span>
+<a name="l00218"></a><a class="code" href="sse_8h.html#a43e11de33821f27448feb163162ec895">00218</a> R123_STATIC_INLINE <span class="keywordtype">bool</span> <a class="code" href="sse_8h.html#a43e11de33821f27448feb163162ec895">operator<=</a>(R123_ULONG_LONG, <span class="keyword">const</span> <a class="code" href="structr123m128i.html">r123m128i</a> &){
+<a name="l00219"></a>00219     <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">"operator<=(unsigned long long, r123m128i) is unimplemented."</span>);}
+<a name="l00220"></a>00220 
+<a name="l00221"></a>00221 <span class="comment">// The comparisons aren't implemented, but if we leave them out, and </span>
+<a name="l00222"></a>00222 <span class="comment">// somebody writes, e.g., M1 < M2, the compiler will do an implicit</span>
+<a name="l00223"></a>00223 <span class="comment">// conversion through void*.  Sigh...</span>
+<a name="l00224"></a><a class="code" href="sse_8h.html#ac2c263fa443dd074fe4ff96710219eb8">00224</a> R123_STATIC_INLINE <span class="keywordtype">bool</span> <a class="code" href="sse_8h.html#ac2c263fa443dd074fe4ff96710219eb8">operator<</a>(<span class="keyword">const</span> <a class="code" href="structr123m128i.html">r123m128i</a>&, <span class="keyword">const</span> <a class="code" href="structr123m128i.html">r123m128i</a>&){
+<a name="l00225"></a>00225     <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">"operator<(r123m128i, r123m128i) is unimplemented."</span>);}
+<a name="l00226"></a><a class="code" href="sse_8h.html#a9ce245b77f0638255e7138190d0ff4fd">00226</a> R123_STATIC_INLINE <span class="keywordtype">bool</span> <a class="code" href="sse_8h.html#a43e11de33821f27448feb163162ec895">operator<=</a>(<span class="keyword">const</span> <a class="code" href="structr123m128i.html">r123m128i</a>&, <span class="keyword">const</span> <a class="code" href="structr123m128i.html">r123m128i</a>&){
+<a name="l00227"></a>00227     <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">"operator<=(r123m128i, r123m128i) is unimplemented."</span>);}
+<a name="l00228"></a><a class="code" href="sse_8h.html#ad07b59f8110eac57511ee8c2fa697f93">00228</a> R123_STATIC_INLINE <span class="keywordtype">bool</span> <a class="code" href="sse_8h.html#ad07b59f8110eac57511ee8c2fa697f93">operator></a>(<span class="keyword">const</span> <a class="code" href="structr123m128i.html">r123m128i</a>&, <span class="keyword">const</span> <a class="code" href="structr123m128i.html">r123m128i</a>&){
+<a name="l00229"></a>00229     <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">"operator>(r123m128i, r123m128i) is unimplemented."</span>);}
+<a name="l00230"></a><a class="code" href="sse_8h.html#aa7bb0ad8bfceb39a1b71262b9476e151">00230</a> R123_STATIC_INLINE <span class="keywordtype">bool</span> <a class="code" href="sse_8h.html#aa7bb0ad8bfceb39a1b71262b9476e151">operator>=</a>(<span class="keyword">const</span> <a class="code" href="structr123m128i.html">r123m128i</a>&, <span class="keyword">const</span> <a class="code" href="structr123m128i.html">r123m128i</a>&){
+<a name="l00231"></a>00231     <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">"operator>=(r123m128i, r123m128i) is unimplemented."</span>);}
+<a name="l00232"></a>00232 
+<a name="l00233"></a><a class="code" href="sse_8h.html#ab1389a6d8b14bc380c6d6a6d4de8853e">00233</a> R123_STATIC_INLINE <span class="keywordtype">bool</span> <a class="code" href="sse_8h.html#ab1389a6d8b14bc380c6d6a6d4de8853e">operator==</a>(<span class="keyword">const</span> <a class="code" href="structr123m128i.html">r123m128i</a> &lhs, <span class="keyword">const</span> <a class="code" href="structr123m128i.html">r123m128i</a> &rhs){ 
+<a name="l00234"></a>00234     <span class="keywordflow">return</span> 0xf==_mm_movemask_ps(_mm_castsi128_ps(_mm_cmpeq_epi32(lhs, rhs))); }
+<a name="l00235"></a><a class="code" href="sse_8h.html#a9fc5dd462afc043229ab800abb8f7d64">00235</a> R123_STATIC_INLINE <span class="keywordtype">bool</span> <a class="code" href="sse_8h.html#a9fc5dd462afc043229ab800abb8f7d64">operator!=</a>(<span class="keyword">const</span> <a class="code" href="structr123m128i.html">r123m128i</a> &lhs, <span class="keyword">const</span> <a class="code" href="structr123m128i.html">r123m128i</a> &rhs){ 
+<a name="l00236"></a>00236     <span class="keywordflow">return</span> !(lhs==rhs);}
+<a name="l00237"></a><a class="code" href="sse_8h.html#a01fbbba16839c5938b3fa29668870db2">00237</a> R123_STATIC_INLINE <span class="keywordtype">bool</span> <a class="code" href="sse_8h.html#ab1389a6d8b14bc380c6d6a6d4de8853e">operator==</a>(R123_ULONG_LONG lhs, <span class="keyword">const</span> <a class="code" href="structr123m128i.html">r123m128i</a> &rhs){
+<a name="l00238"></a>00238     <a class="code" href="structr123m128i.html">r123m128i</a> LHS; LHS.<a class="code" href="structr123m128i.html#a9b9908268281aace8028a3f34980634d">m</a>=_mm_set_epi64x(0, lhs); <span class="keywordflow">return</span> LHS == rhs; }
+<a name="l00239"></a><a class="code" href="sse_8h.html#a76ef724b020add862a911a699a21451b">00239</a> R123_STATIC_INLINE <span class="keywordtype">bool</span> <a class="code" href="sse_8h.html#a9fc5dd462afc043229ab800abb8f7d64">operator!=</a>(R123_ULONG_LONG lhs, <span class="keyword">const</span> <a class="code" href="structr123m128i.html">r123m128i</a> &rhs){
+<a name="l00240"></a>00240     <span class="keywordflow">return</span> !(lhs==rhs);}
+<a name="l00241"></a><a class="code" href="sse_8h.html#af965b43e09e7305795c7b5a35d20c75f">00241</a> R123_STATIC_INLINE std::ostream& <a class="code" href="array_8h.html#af29a19da89789058ead246fdef153ce0">operator<<</a>(std::ostream& os, <span class="keyword">const</span> <a class="code" href="structr123m128i.html">r123m128i</a>& m){
+<a name="l00242"></a>00242     <span class="keyword">union</span>{
+<a name="l00243"></a>00243         uint64_t u64[2];
+<a name="l00244"></a>00244         __m128i m;
+<a name="l00245"></a>00245     }u;
+<a name="l00246"></a>00246     _mm_storeu_si128(&u.m, m.<a class="code" href="structr123m128i.html#a9b9908268281aace8028a3f34980634d">m</a>);
+<a name="l00247"></a>00247     <span class="keywordflow">return</span> os << u.u64[0] << <span class="stringliteral">" "</span> << u.u64[1];
+<a name="l00248"></a>00248 }
+<a name="l00249"></a>00249 
+<a name="l00250"></a><a class="code" href="sse_8h.html#a202aef4bea97c2203a82676cb6abba40">00250</a> R123_STATIC_INLINE std::istream& <a class="code" href="array_8h.html#ace3112deae6709884feac904b1c260a1">operator>></a>(std::istream& is, <a class="code" href="structr123m128i.html">r123m128i</a>& m){
+<a name="l00251"></a>00251     uint64_t u64[2];
+<a name="l00252"></a>00252     is >> u64[0] >> u64[1];
+<a name="l00253"></a>00253     m.<a class="code" href="structr123m128i.html#a9b9908268281aace8028a3f34980634d">m</a> = _mm_set_epi64x(u64[1], u64[0]);
+<a name="l00254"></a>00254     <span class="keywordflow">return</span> is;
+<a name="l00255"></a>00255 }
+<a name="l00256"></a>00256 
+<a name="l00257"></a>00257 <span class="keyword">template</span><<span class="keyword">typename</span> T> <span class="keyword">inline</span> T <a class="code" href="sse_8h.html#a99c42d1da8da3a4a273556a7817b5c1f">assemble_from_u32</a>(uint32_t *p32); <span class="comment">// forward declaration</span>
+<a name="l00258"></a>00258 
+<a name="l00259"></a>00259 <span class="keyword">template</span> <>
+<a name="l00260"></a>00260 <span class="keyword">inline</span> <a class="code" href="structr123m128i.html">r123m128i</a> <a class="code" href="sse_8h.html#a0cd6ca87c67023d7afda38319ab40e43">assemble_from_u32<r123m128i></a>(uint32_t *p32){
+<a name="l00261"></a>00261     <a class="code" href="structr123m128i.html">r123m128i</a> ret;
+<a name="l00262"></a>00262     ret.<a class="code" href="structr123m128i.html#a9b9908268281aace8028a3f34980634d">m</a> = _mm_set_epi32(p32[3], p32[2], p32[1], p32[0]);
+<a name="l00263"></a>00263     <span class="keywordflow">return</span> ret;
+<a name="l00264"></a>00264 }
+<a name="l00265"></a>00265 
+<a name="l00266"></a>00266 <span class="preprocessor">#else</span>
+<a name="l00267"></a>00267 <span class="preprocessor"></span>
+<a name="l00268"></a>00268 <span class="keyword">typedef</span> <span class="keyword">struct </span>{
+<a name="l00269"></a>00269     __m128i m;
+<a name="l00270"></a>00270 } <a class="code" href="structr123m128i.html">r123m128i</a>;
+<a name="l00271"></a>00271 
+<a name="l00272"></a>00272 <span class="preprocessor">#endif </span><span class="comment">/* __cplusplus */</span>
+<a name="l00273"></a>00273 
+<a name="l00274"></a>00274 <span class="preprocessor">#else </span><span class="comment">/* !R123_USE_SSE */</span>
+<a name="l00275"></a>00275 R123_STATIC_INLINE <span class="keywordtype">int</span> <a class="code" href="sse_8h.html#a0b35a046e85316295476d7d552411044">haveAESNI</a>(){
+<a name="l00276"></a>00276     <span class="keywordflow">return</span> 0;
+<a name="l00277"></a>00277 }
+<a name="l00278"></a>00278 <span class="preprocessor">#endif </span><span class="comment">/* R123_USE_SSE */</span>
+<a name="l00279"></a>00279 
+<a name="l00280"></a>00280 <span class="preprocessor">#endif </span><span class="comment">/* _Random123_sse_dot_h__ */</span>
+</pre></div></div>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/structaesni1xm128i__key__t-members.html b/docs/html/structaesni1xm128i__key__t-members.html
new file mode 100644
index 0000000..d81b1d8
--- /dev/null
+++ b/docs/html/structaesni1xm128i__key__t-members.html
@@ -0,0 +1,84 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<h1>aesni1xm128i_key_t Member List</h1>  </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="structaesni1xm128i__key__t.html">aesni1xm128i_key_t</a>, including all inherited members.<table>
+  <tr class="memlist"><td><a class="el" href="structaesni1xm128i__key__t.html#af1002e5b771616db8f12c793fc994c41">aesni1xm128i_key_t</a>()</td><td><a class="el" href="structaesni1xm128i__key__t.html">aesni1xm128i_key_t</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structaesni1xm128i__key__t.html#a2076072522f671a8596a831cc93dc616">aesni1xm128i_key_t</a>(const aesni1xm128i_ukey_t &uk)</td><td><a class="el" href="structaesni1xm128i__key__t.html">aesni1xm128i_key_t</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structaesni1xm128i__key__t.html#a43d53407125d4cec0d6a14586c0357e3">aesni1xm128i_key_t</a>(const aesni4x32_ukey_t &uk)</td><td><a class="el" href="structaesni1xm128i__key__t.html">aesni1xm128i_key_t</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structaesni1xm128i__key__t.html#a60cefca96e55b73732f570e844efbe54">k</a></td><td><a class="el" href="structaesni1xm128i__key__t.html">aesni1xm128i_key_t</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structaesni1xm128i__key__t.html#acb24fef68c539f1a6ea217ee8ada185d">operator=</a>(const aesni1xm128i_ukey_t &uk)</td><td><a class="el" href="structaesni1xm128i__key__t.html">aesni1xm128i_key_t</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structaesni1xm128i__key__t.html#a0290dac35d6f14706247217fb49bcd60">operator=</a>(const aesni4x32_ukey_t &uk)</td><td><a class="el" href="structaesni1xm128i__key__t.html">aesni1xm128i_key_t</a></td><td><code> [inline]</code></td></tr>
+</table></div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/structaesni1xm128i__key__t.html b/docs/html/structaesni1xm128i__key__t.html
new file mode 100644
index 0000000..a6c37da
--- /dev/null
+++ b/docs/html/structaesni1xm128i__key__t.html
@@ -0,0 +1,208 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: aesni1xm128i_key_t Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> |
+<a href="#pub-attribs">Public Attributes</a>  </div>
+  <div class="headertitle">
+<h1>aesni1xm128i_key_t Struct Reference<br/>
+<small>
+[<a class="el" href="group__AESNI.html">ARS and AESNI Classes and Typedefs</a>]</small>
+</h1>  </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="aesni1xm128i_key_t" -->
+<p><code>#include <<a class="el" href="aes_8h_source.html">Random123/aes.h</a>></code></p>
+
+<p><a href="structaesni1xm128i__key__t-members.html">List of all members.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="structaesni1xm128i__key__t.html#af1002e5b771616db8f12c793fc994c41">aesni1xm128i_key_t</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="structaesni1xm128i__key__t.html#a2076072522f671a8596a831cc93dc616">aesni1xm128i_key_t</a> (const <a class="el" href="structr123array1xm128i.html">aesni1xm128i_ukey_t</a> &uk)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="structaesni1xm128i__key__t.html#a43d53407125d4cec0d6a14586c0357e3">aesni1xm128i_key_t</a> (const <a class="el" href="structr123array4x32.html">aesni4x32_ukey_t</a> &uk)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structaesni1xm128i__key__t.html">aesni1xm128i_key_t</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="structaesni1xm128i__key__t.html#acb24fef68c539f1a6ea217ee8ada185d">operator=</a> (const <a class="el" href="structr123array1xm128i.html">aesni1xm128i_ukey_t</a> &uk)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structaesni1xm128i__key__t.html">aesni1xm128i_key_t</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="structaesni1xm128i__key__t.html#a0290dac35d6f14706247217fb49bcd60">operator=</a> (const <a class="el" href="structr123array4x32.html">aesni4x32_ukey_t</a> &uk)</td></tr>
+<tr><td colspan="2"><h2><a name="pub-attribs"></a>
+Public Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">__m128i </td><td class="memItemRight" valign="bottom"><a class="el" href="structaesni1xm128i__key__t.html#a60cefca96e55b73732f570e844efbe54">k</a> [11]</td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<hr/><h2>Constructor & Destructor Documentation</h2>
+<a class="anchor" id="af1002e5b771616db8f12c793fc994c41"></a><!-- doxytag: member="aesni1xm128i_key_t::aesni1xm128i_key_t" ref="af1002e5b771616db8f12c793fc994c41" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">aesni1xm128i_key_t::aesni1xm128i_key_t </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a2076072522f671a8596a831cc93dc616"></a><!-- doxytag: member="aesni1xm128i_key_t::aesni1xm128i_key_t" ref="a2076072522f671a8596a831cc93dc616" args="(const aesni1xm128i_ukey_t &uk)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">aesni1xm128i_key_t::aesni1xm128i_key_t </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structr123array1xm128i.html">aesni1xm128i_ukey_t</a> & </td>
+          <td class="paramname"> <em>uk</em></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a43d53407125d4cec0d6a14586c0357e3"></a><!-- doxytag: member="aesni1xm128i_key_t::aesni1xm128i_key_t" ref="a43d53407125d4cec0d6a14586c0357e3" args="(const aesni4x32_ukey_t &uk)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">aesni1xm128i_key_t::aesni1xm128i_key_t </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structr123array4x32.html">aesni4x32_ukey_t</a> & </td>
+          <td class="paramname"> <em>uk</em></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="acb24fef68c539f1a6ea217ee8ada185d"></a><!-- doxytag: member="aesni1xm128i_key_t::operator=" ref="acb24fef68c539f1a6ea217ee8ada185d" args="(const aesni1xm128i_ukey_t &uk)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structaesni1xm128i__key__t.html">aesni1xm128i_key_t</a>& aesni1xm128i_key_t::operator= </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structr123array1xm128i.html">aesni1xm128i_ukey_t</a> & </td>
+          <td class="paramname"> <em>uk</em></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a0290dac35d6f14706247217fb49bcd60"></a><!-- doxytag: member="aesni1xm128i_key_t::operator=" ref="a0290dac35d6f14706247217fb49bcd60" args="(const aesni4x32_ukey_t &uk)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structaesni1xm128i__key__t.html">aesni1xm128i_key_t</a>& aesni1xm128i_key_t::operator= </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structr123array4x32.html">aesni4x32_ukey_t</a> & </td>
+          <td class="paramname"> <em>uk</em></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/><h2>Member Data Documentation</h2>
+<a class="anchor" id="a60cefca96e55b73732f570e844efbe54"></a><!-- doxytag: member="aesni1xm128i_key_t::k" ref="a60cefca96e55b73732f570e844efbe54" args="[11]" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">__m128i <a class="el" href="structaesni1xm128i__key__t.html#a60cefca96e55b73732f570e844efbe54">aesni1xm128i_key_t::k</a>[11]</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li>Random123/<a class="el" href="aes_8h_source.html">aes.h</a></li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/structr123_1_1AESNI1xm128i.html b/docs/html/structr123_1_1AESNI1xm128i.html
new file mode 100644
index 0000000..04326d6
--- /dev/null
+++ b/docs/html/structr123_1_1AESNI1xm128i.html
@@ -0,0 +1,207 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: r123::AESNI1xm128i Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+  <div class="navpath">
+    <ul>
+      <li><a class="el" href="namespacer123.html">r123</a>      </li>
+      <li><a class="el" href="structr123_1_1AESNI1xm128i.html">r123::AESNI1xm128i</a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="summary">
+<a href="#pub-types">Public Types</a> |
+<a href="#pub-methods">Public Member Functions</a> |
+<a href="#pub-static-attribs">Static Public Attributes</a>  </div>
+  <div class="headertitle">
+<h1>r123::AESNI1xm128i Class Reference<br/>
+<small>
+[<a class="el" href="group__AESNI.html">ARS and AESNI Classes and Typedefs</a>]</small>
+</h1>  </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="r123::AESNI1xm128i" -->
+<p><code>#include <<a class="el" href="aes_8h_source.html">Random123/aes.h</a>></code></p>
+<div class="dynheader">
+Inheritance diagram for r123::AESNI1xm128i:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="structr123_1_1AESNI1xm128i.png" usemap="#r123::AESNI1xm128i_map" alt=""/>
+  <map id="r123::AESNI1xm128i_map" name="r123::AESNI1xm128i_map">
+<area href="structr123_1_1AESNI1xm128i__R.html" alt="r123::AESNI1xm128i_R< ROUNDS >" shape="rect" coords="0,56,218,80"/>
+</map>
+</div>
+
+<p><a href="classr123_1_1AESNI1xm128i-members.html">List of all members.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-types"></a>
+Public Types</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123array1xm128i.html">aesni1xm128i_ctr_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1AESNI1xm128i.html#aaa136c21db9806859fa7cd4e2dbaaaa6">ctr_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123array1xm128i.html">aesni1xm128i_ukey_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1AESNI1xm128i.html#a1f405533da84d98b938030190a63cec5">ukey_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structaesni1xm128i__key__t.html">aesni1xm128i_key_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1AESNI1xm128i.html#a7dc33fd5abf509d9d16b571b23867a6b">key_type</a></td></tr>
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array1xm128i.html">ctr_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1AESNI1xm128i.html#a9bff0ac8478400c1006136e9bde91dc3">operator()</a> (<a class="el" href="structr123array1xm128i.html">ctr_type</a> ctr, <a class="el" href="structaesni1xm128i__key__t.html">key_type</a> key) const </td></tr>
+<tr><td colspan="2"><h2><a name="pub-static-attribs"></a>
+Static Public Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static const unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1AESNI1xm128i.html#a1b5a44afde814ba844d8f5442e2a3a5f">rounds</a> = 10</td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>AESNI exports the member functions, typedefs and operator overloads required by a <a class="el" href="CBRNG.html">Counter Based RNGs (CBRNGs).</a> class.</p>
+<p><a class="el" href="structr123_1_1AESNI1xm128i.html">AESNI1xm128i</a> uses the crypotgraphic AES round function, including the cryptographic key schedule.</p>
+<p>In contrast to the other CBRNGs in the Random123 library, the <a class="el" href="structr123_1_1AESNI1xm128i.html#a7dc33fd5abf509d9d16b571b23867a6b">AESNI1xm128i_R::key_type</a> is opaque and is <b>not</b> identical to the <a class="el" href="structr123_1_1AESNI1xm128i.html#a1f405533da84d98b938030190a63cec5">AESNI1xm128i_R::ukey_type</a>. Creating a key_type, using either the constructor or assignment operator, is significantly more time-consuming than running the bijection (hundreds  [...]
+<p><a class="el" href="structr123_1_1AESNI1xm128i.html">AESNI1xm128i</a> is only available when the feature-test macro R123_USE_AES_NI is true, which should occur only when the compiler is configured to generate AES-NI instructions (or when defaults are overridden by compile-time, compiler-command-line options).</p>
+<p>As of September 2011, the authors know of no statistical flaws with <a class="el" href="structr123_1_1AESNI1xm128i.html">AESNI1xm128i</a>. It would be an event of major cryptographic note if any such flaws were ever found. </p>
+<hr/><h2>Member Typedef Documentation</h2>
+<a class="anchor" id="aaa136c21db9806859fa7cd4e2dbaaaa6"></a><!-- doxytag: member="r123::AESNI1xm128i::ctr_type" ref="aaa136c21db9806859fa7cd4e2dbaaaa6" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="structr123array1xm128i.html">aesni1xm128i_ctr_t</a> <a class="el" href="structr123array1xm128i.html">r123::AESNI1xm128i::ctr_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a7dc33fd5abf509d9d16b571b23867a6b"></a><!-- doxytag: member="r123::AESNI1xm128i::key_type" ref="a7dc33fd5abf509d9d16b571b23867a6b" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="structaesni1xm128i__key__t.html">aesni1xm128i_key_t</a> <a class="el" href="structaesni1xm128i__key__t.html">r123::AESNI1xm128i::key_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a1f405533da84d98b938030190a63cec5"></a><!-- doxytag: member="r123::AESNI1xm128i::ukey_type" ref="a1f405533da84d98b938030190a63cec5" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="structr123array1xm128i.html">aesni1xm128i_ukey_t</a> <a class="el" href="structr123array1xm128i.html">r123::AESNI1xm128i::ukey_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="a9bff0ac8478400c1006136e9bde91dc3"></a><!-- doxytag: member="r123::AESNI1xm128i::operator()" ref="a9bff0ac8478400c1006136e9bde91dc3" args="(ctr_type ctr, key_type key) const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array1xm128i.html">ctr_type</a> r123::AESNI1xm128i::operator() </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array1xm128i.html">ctr_type</a> </td>
+          <td class="paramname"> <em>ctr</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structaesni1xm128i__key__t.html">key_type</a> </td>
+          <td class="paramname"> <em>key</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/><h2>Member Data Documentation</h2>
+<a class="anchor" id="a1b5a44afde814ba844d8f5442e2a3a5f"></a><!-- doxytag: member="r123::AESNI1xm128i::rounds" ref="a1b5a44afde814ba844d8f5442e2a3a5f" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const unsigned int <a class="el" href="structr123_1_1AESNI1xm128i.html#a1b5a44afde814ba844d8f5442e2a3a5f">r123::AESNI1xm128i::rounds</a> = 10<code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>Random123/<a class="el" href="aes_8h_source.html">aes.h</a></li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/structr123_1_1AESNI1xm128i.png b/docs/html/structr123_1_1AESNI1xm128i.png
new file mode 100644
index 0000000..7e038ce
Binary files /dev/null and b/docs/html/structr123_1_1AESNI1xm128i.png differ
diff --git a/docs/html/structr123_1_1AESNI1xm128i__R.html b/docs/html/structr123_1_1AESNI1xm128i__R.html
new file mode 100644
index 0000000..7ea9a2c
--- /dev/null
+++ b/docs/html/structr123_1_1AESNI1xm128i__R.html
@@ -0,0 +1,109 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: r123::AESNI1xm128i_R< ROUNDS > Class Template Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+  <div class="navpath">
+    <ul>
+      <li><a class="el" href="namespacer123.html">r123</a>      </li>
+      <li><a class="el" href="structr123_1_1AESNI1xm128i__R.html">r123::AESNI1xm128i_R< ROUNDS ></a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<h1>r123::AESNI1xm128i_R< ROUNDS > Class Template Reference<br/>
+<small>
+[<a class="el" href="group__AESNI.html">ARS and AESNI Classes and Typedefs</a>]</small>
+</h1>  </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="r123::AESNI1xm128i_R" --><!-- doxytag: inherits="r123::AESNI1xm128i" -->
+<p><code>#include <<a class="el" href="aes_8h_source.html">Random123/aes.h</a>></code></p>
+<div class="dynheader">
+Inheritance diagram for r123::AESNI1xm128i_R< ROUNDS >:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="structr123_1_1AESNI1xm128i__R.png" usemap="#r123::AESNI1xm128i_R< ROUNDS >_map" alt=""/>
+  <map id="r123::AESNI1xm128i_R< ROUNDS >_map" name="r123::AESNI1xm128i_R< ROUNDS >_map">
+<area href="structr123_1_1AESNI1xm128i.html" alt="r123::AESNI1xm128i" shape="rect" coords="0,0,218,24"/>
+</map>
+</div>
+
+<p><a href="classr123_1_1AESNI1xm128i__R-members.html">List of all members.</a></p>
+<table class="memberdecls">
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<h3>template<unsigned ROUNDS = 10><br/>
+ class r123::AESNI1xm128i_R< ROUNDS ></h3>
+
+<p><a class="el" href="structr123_1_1AESNI1xm128i__R.html">AESNI1xm128i_R</a> is provided for completeness, but is only instantiable with ROUNDS=10, in which case it is identical to <a class="el" href="structr123_1_1AESNI1xm128i.html">AESNI1xm128i</a> </p>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>Random123/<a class="el" href="aes_8h_source.html">aes.h</a></li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/structr123_1_1AESNI1xm128i__R.png b/docs/html/structr123_1_1AESNI1xm128i__R.png
new file mode 100644
index 0000000..ce0390c
Binary files /dev/null and b/docs/html/structr123_1_1AESNI1xm128i__R.png differ
diff --git a/docs/html/structr123_1_1AESNI4x32-members.html b/docs/html/structr123_1_1AESNI4x32-members.html
new file mode 100644
index 0000000..d7a84d6
--- /dev/null
+++ b/docs/html/structr123_1_1AESNI4x32-members.html
@@ -0,0 +1,83 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<h1>r123::AESNI4x32 Member List</h1>  </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="structr123_1_1AESNI4x32.html">r123::AESNI4x32</a>, including all inherited members.<table>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1AESNI4x32.html#ab8a1f8a822eecfc9e587bad76792df32">ctr_type</a> typedef</td><td><a class="el" href="structr123_1_1AESNI4x32.html">r123::AESNI4x32</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1AESNI4x32.html#a3f47cb319d03ede5fd557800b618d28a">key_type</a> typedef</td><td><a class="el" href="structr123_1_1AESNI4x32.html">r123::AESNI4x32</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1AESNI4x32.html#a981102e5bc0a7df916a95a40af8fd4c0">operator()</a>(ctr_type ctr, key_type key) const </td><td><a class="el" href="structr123_1_1AESNI4x32.html">r123::AESNI4x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1AESNI4x32.html#a725aad79b8d496d97bed24390f624be6">rounds</a></td><td><a class="el" href="structr123_1_1AESNI4x32.html">r123::AESNI4x32</a></td><td><code> [static]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1AESNI4x32.html#a3fbb6113e70575dce3b6047a22a751f4">ukey_type</a> typedef</td><td><a class="el" href="structr123_1_1AESNI4x32.html">r123::AESNI4x32</a></td><td></td></tr>
+</table></div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/structr123_1_1AESNI4x32.html b/docs/html/structr123_1_1AESNI4x32.html
new file mode 100644
index 0000000..ceae274
--- /dev/null
+++ b/docs/html/structr123_1_1AESNI4x32.html
@@ -0,0 +1,198 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: r123::AESNI4x32 Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+  <div class="navpath">
+    <ul>
+      <li><a class="el" href="namespacer123.html">r123</a>      </li>
+      <li><a class="el" href="structr123_1_1AESNI4x32.html">r123::AESNI4x32</a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="summary">
+<a href="#pub-types">Public Types</a> |
+<a href="#pub-methods">Public Member Functions</a> |
+<a href="#pub-static-attribs">Static Public Attributes</a>  </div>
+  <div class="headertitle">
+<h1>r123::AESNI4x32 Struct Reference</h1>  </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="r123::AESNI4x32" -->
+<p><code>#include <<a class="el" href="aes_8h_source.html">Random123/aes.h</a>></code></p>
+<div class="dynheader">
+Inheritance diagram for r123::AESNI4x32:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="structr123_1_1AESNI4x32.png" usemap="#r123::AESNI4x32_map" alt=""/>
+  <map id="r123::AESNI4x32_map" name="r123::AESNI4x32_map">
+<area href="structr123_1_1AESNI4x32__R.html" alt="r123::AESNI4x32_R< ROUNDS >" shape="rect" coords="0,56,199,80"/>
+</map>
+</div>
+
+<p><a href="structr123_1_1AESNI4x32-members.html">List of all members.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-types"></a>
+Public Types</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123array4x32.html">aesni4x32_ctr_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1AESNI4x32.html#ab8a1f8a822eecfc9e587bad76792df32">ctr_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123array4x32.html">aesni4x32_ukey_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1AESNI4x32.html#a3fbb6113e70575dce3b6047a22a751f4">ukey_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structaesni1xm128i__key__t.html">aesni4x32_key_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1AESNI4x32.html#a3f47cb319d03ede5fd557800b618d28a">key_type</a></td></tr>
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array4x32.html">ctr_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1AESNI4x32.html#a981102e5bc0a7df916a95a40af8fd4c0">operator()</a> (<a class="el" href="structr123array4x32.html">ctr_type</a> ctr, <a class="el" href="structaesni1xm128i__key__t.html">key_type</a> key) const </td></tr>
+<tr><td colspan="2"><h2><a name="pub-static-attribs"></a>
+Static Public Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static const unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1AESNI4x32.html#a725aad79b8d496d97bed24390f624be6">rounds</a> = 10</td></tr>
+</table>
+<hr/><h2>Member Typedef Documentation</h2>
+<a class="anchor" id="ab8a1f8a822eecfc9e587bad76792df32"></a><!-- doxytag: member="r123::AESNI4x32::ctr_type" ref="ab8a1f8a822eecfc9e587bad76792df32" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="structr123array4x32.html">aesni4x32_ctr_t</a> <a class="el" href="structr123array4x32.html">r123::AESNI4x32::ctr_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a3f47cb319d03ede5fd557800b618d28a"></a><!-- doxytag: member="r123::AESNI4x32::key_type" ref="a3f47cb319d03ede5fd557800b618d28a" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="structaesni1xm128i__key__t.html">aesni4x32_key_t</a> <a class="el" href="structaesni1xm128i__key__t.html">r123::AESNI4x32::key_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a3fbb6113e70575dce3b6047a22a751f4"></a><!-- doxytag: member="r123::AESNI4x32::ukey_type" ref="a3fbb6113e70575dce3b6047a22a751f4" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="structr123array4x32.html">aesni4x32_ukey_t</a> <a class="el" href="structr123array4x32.html">r123::AESNI4x32::ukey_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="a981102e5bc0a7df916a95a40af8fd4c0"></a><!-- doxytag: member="r123::AESNI4x32::operator()" ref="a981102e5bc0a7df916a95a40af8fd4c0" args="(ctr_type ctr, key_type key) const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array4x32.html">ctr_type</a> r123::AESNI4x32::operator() </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array4x32.html">ctr_type</a> </td>
+          <td class="paramname"> <em>ctr</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structaesni1xm128i__key__t.html">key_type</a> </td>
+          <td class="paramname"> <em>key</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/><h2>Member Data Documentation</h2>
+<a class="anchor" id="a725aad79b8d496d97bed24390f624be6"></a><!-- doxytag: member="r123::AESNI4x32::rounds" ref="a725aad79b8d496d97bed24390f624be6" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const unsigned int <a class="el" href="structr123_1_1AESNI4x32.html#a725aad79b8d496d97bed24390f624be6">r123::AESNI4x32::rounds</a> = 10<code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li>Random123/<a class="el" href="aes_8h_source.html">aes.h</a></li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/structr123_1_1AESNI4x32.png b/docs/html/structr123_1_1AESNI4x32.png
new file mode 100644
index 0000000..135b61e
Binary files /dev/null and b/docs/html/structr123_1_1AESNI4x32.png differ
diff --git a/docs/html/structr123_1_1AESNI4x32__R.html b/docs/html/structr123_1_1AESNI4x32__R.html
new file mode 100644
index 0000000..e0d5081
--- /dev/null
+++ b/docs/html/structr123_1_1AESNI4x32__R.html
@@ -0,0 +1,104 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: r123::AESNI4x32_R< ROUNDS > Class Template Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+  <div class="navpath">
+    <ul>
+      <li><a class="el" href="namespacer123.html">r123</a>      </li>
+      <li><a class="el" href="structr123_1_1AESNI4x32__R.html">r123::AESNI4x32_R< ROUNDS ></a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<h1>r123::AESNI4x32_R< ROUNDS > Class Template Reference</h1>  </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="r123::AESNI4x32_R" --><!-- doxytag: inherits="r123::AESNI4x32" -->
+<p><code>#include <<a class="el" href="aes_8h_source.html">Random123/aes.h</a>></code></p>
+<div class="dynheader">
+Inheritance diagram for r123::AESNI4x32_R< ROUNDS >:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="structr123_1_1AESNI4x32__R.png" usemap="#r123::AESNI4x32_R< ROUNDS >_map" alt=""/>
+  <map id="r123::AESNI4x32_R< ROUNDS >_map" name="r123::AESNI4x32_R< ROUNDS >_map">
+<area href="structr123_1_1AESNI4x32.html" alt="r123::AESNI4x32" shape="rect" coords="0,0,199,24"/>
+</map>
+</div>
+
+<p><a href="classr123_1_1AESNI4x32__R-members.html">List of all members.</a></p>
+<table class="memberdecls">
+</table>
+<h3>template<unsigned ROUNDS = 10><br/>
+ class r123::AESNI4x32_R< ROUNDS ></h3>
+
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>Random123/<a class="el" href="aes_8h_source.html">aes.h</a></li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/structr123_1_1AESNI4x32__R.png b/docs/html/structr123_1_1AESNI4x32__R.png
new file mode 100644
index 0000000..543d0ac
Binary files /dev/null and b/docs/html/structr123_1_1AESNI4x32__R.png differ
diff --git a/docs/html/structr123_1_1ARS1xm128i__R.html b/docs/html/structr123_1_1ARS1xm128i__R.html
new file mode 100644
index 0000000..0bb4641
--- /dev/null
+++ b/docs/html/structr123_1_1ARS1xm128i__R.html
@@ -0,0 +1,212 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: r123::ARS1xm128i_R< ROUNDS > Class Template Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+  <div class="navpath">
+    <ul>
+      <li><a class="el" href="namespacer123.html">r123</a>      </li>
+      <li><a class="el" href="structr123_1_1ARS1xm128i__R.html">r123::ARS1xm128i_R< ROUNDS ></a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="summary">
+<a href="#pub-types">Public Types</a> |
+<a href="#pub-methods">Public Member Functions</a> |
+<a href="#pub-static-attribs">Static Public Attributes</a>  </div>
+  <div class="headertitle">
+<h1>r123::ARS1xm128i_R< ROUNDS > Class Template Reference<br/>
+<small>
+[<a class="el" href="group__AESNI.html">ARS and AESNI Classes and Typedefs</a>]</small>
+</h1>  </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="r123::ARS1xm128i_R" -->
+<p><code>#include <<a class="el" href="ars_8h_source.html">Random123/ars.h</a>></code></p>
+
+<p><a href="classr123_1_1ARS1xm128i__R-members.html">List of all members.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-types"></a>
+Public Types</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123array1xm128i.html">ars1xm128i_ctr_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1ARS1xm128i__R.html#a13a62c94f63054828c6960979f42a268">ctr_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123array1xm128i.html">ars1xm128i_key_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1ARS1xm128i__R.html#a8454d6de92379d9a6551d11828fbebc3">key_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123array1xm128i.html">ars1xm128i_key_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1ARS1xm128i__R.html#ab26c7029e347e6b1e17dad795e462aeb">ukey_type</a></td></tr>
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array1xm128i.html">ctr_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1ARS1xm128i__R.html#a89c0fc4e1c90ee684fc88dde05d8d82c">operator()</a> (<a class="el" href="structr123array1xm128i.html">ctr_type</a> ctr, <a class="el" href="structr123array1xm128i.html">key_type</a> key) const </td></tr>
+<tr><td colspan="2"><h2><a name="pub-static-attribs"></a>
+Static Public Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static const unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1ARS1xm128i__R.html#abe167a93280140e424d722c1ac47a8e9">rounds</a> = ROUNDS</td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<h3>template<unsigned int ROUNDS><br/>
+ class r123::ARS1xm128i_R< ROUNDS ></h3>
+
+<p><a class="el" href="structr123_1_1ARS1xm128i__R.html">ARS1xm128i_R</a> exports the member functions, typedefs and operator overloads required by a <a class="el" href="CBRNG.html">Counter Based RNGs (CBRNGs).</a> class.</p>
+<p>ARS1xm128i uses the crypotgraphic AES round function, but a <b>non-cryptographc</b> key schedule to save time and space.</p>
+<p>ARS1xm128i is only available when the feature-test macro R123_USE_AES_NI is true, which should occur only when the compiler is configured to generate AES-NI instructions (or when defaults are overridden by compile-time, compiler-command-line options).</p>
+<p>The template argument, ROUNDS, is the number of times the ARS round functions will be applied.</p>
+<p>As of September 2011, the authors know of no statistical flaws with ROUNDS=5 or more.</p>
+<p>ARS1xm128i is equivalent to ARS1xm128i_R<7>. With 7 rounds, the ARS1xm128i CBRNG has a considerable safety margin over the minimum number of rounds with no known statistical flaws, but still has excellent performance. </p>
+<hr/><h2>Member Typedef Documentation</h2>
+<a class="anchor" id="a13a62c94f63054828c6960979f42a268"></a><!-- doxytag: member="r123::ARS1xm128i_R::ctr_type" ref="a13a62c94f63054828c6960979f42a268" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<unsigned int ROUNDS> </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="structr123array1xm128i.html">ars1xm128i_ctr_t</a> <a class="el" href="structr123_1_1ARS1xm128i__R.html">r123::ARS1xm128i_R</a>< ROUNDS >::<a class="el" href="structr123array1xm128i.html">ctr_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a8454d6de92379d9a6551d11828fbebc3"></a><!-- doxytag: member="r123::ARS1xm128i_R::key_type" ref="a8454d6de92379d9a6551d11828fbebc3" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<unsigned int ROUNDS> </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="structr123array1xm128i.html">ars1xm128i_key_t</a> <a class="el" href="structr123_1_1ARS1xm128i__R.html">r123::ARS1xm128i_R</a>< ROUNDS >::<a class="el" href="structr123array1xm128i.html">key_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ab26c7029e347e6b1e17dad795e462aeb"></a><!-- doxytag: member="r123::ARS1xm128i_R::ukey_type" ref="ab26c7029e347e6b1e17dad795e462aeb" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<unsigned int ROUNDS> </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="structr123array1xm128i.html">ars1xm128i_key_t</a> <a class="el" href="structr123_1_1ARS1xm128i__R.html">r123::ARS1xm128i_R</a>< ROUNDS >::<a class="el" href="structr123array1xm128i.html">ukey_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="a89c0fc4e1c90ee684fc88dde05d8d82c"></a><!-- doxytag: member="r123::ARS1xm128i_R::operator()" ref="a89c0fc4e1c90ee684fc88dde05d8d82c" args="(ctr_type ctr, key_type key) const " -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<unsigned int ROUNDS> </div>
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array1xm128i.html">ctr_type</a> <a class="el" href="structr123_1_1ARS1xm128i__R.html">r123::ARS1xm128i_R</a>< ROUNDS >::operator() </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array1xm128i.html">ctr_type</a> </td>
+          <td class="paramname"> <em>ctr</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structr123array1xm128i.html">key_type</a> </td>
+          <td class="paramname"> <em>key</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/><h2>Member Data Documentation</h2>
+<a class="anchor" id="abe167a93280140e424d722c1ac47a8e9"></a><!-- doxytag: member="r123::ARS1xm128i_R::rounds" ref="abe167a93280140e424d722c1ac47a8e9" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<unsigned int ROUNDS> </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">const unsigned int <a class="el" href="structr123_1_1ARS1xm128i__R.html">r123::ARS1xm128i_R</a>< ROUNDS >::<a class="el" href="structr123_1_1ARS1xm128i__R.html#abe167a93280140e424d722c1ac47a8e9">rounds</a> = ROUNDS<code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>Random123/<a class="el" href="ars_8h_source.html">ars.h</a></li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/structr123_1_1ARS4x32__R.html b/docs/html/structr123_1_1ARS4x32__R.html
new file mode 100644
index 0000000..9a13016
--- /dev/null
+++ b/docs/html/structr123_1_1ARS4x32__R.html
@@ -0,0 +1,205 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: r123::ARS4x32_R< ROUNDS > Class Template Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+  <div class="navpath">
+    <ul>
+      <li><a class="el" href="namespacer123.html">r123</a>      </li>
+      <li><a class="el" href="structr123_1_1ARS4x32__R.html">r123::ARS4x32_R< ROUNDS ></a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="summary">
+<a href="#pub-types">Public Types</a> |
+<a href="#pub-methods">Public Member Functions</a> |
+<a href="#pub-static-attribs">Static Public Attributes</a>  </div>
+  <div class="headertitle">
+<h1>r123::ARS4x32_R< ROUNDS > Class Template Reference<br/>
+<small>
+[<a class="el" href="group__AESNI.html">ARS and AESNI Classes and Typedefs</a>]</small>
+</h1>  </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="r123::ARS4x32_R" -->
+<p><code>#include <<a class="el" href="ars_8h_source.html">Random123/ars.h</a>></code></p>
+
+<p><a href="classr123_1_1ARS4x32__R-members.html">List of all members.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-types"></a>
+Public Types</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123array4x32.html">ars4x32_ctr_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1ARS4x32__R.html#a9951dbcb50de849ded7177109b344045">ctr_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123array4x32.html">ars4x32_key_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1ARS4x32__R.html#a7a651b6747b9e7c038bc6d11ffa2863e">key_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123array4x32.html">ars4x32_key_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1ARS4x32__R.html#aa4bd7be98acb8b0299fb0ffce3db69ee">ukey_type</a></td></tr>
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array4x32.html">ctr_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1ARS4x32__R.html#afcd326e150925e30de22166e727567df">operator()</a> (<a class="el" href="structr123array4x32.html">ctr_type</a> ctr, <a class="el" href="structr123array4x32.html">key_type</a> key) const </td></tr>
+<tr><td colspan="2"><h2><a name="pub-static-attribs"></a>
+Static Public Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static const unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1ARS4x32__R.html#a710e59a54794b4cd5e55689dd906b9ba">rounds</a> = ROUNDS</td></tr>
+</table>
+<h3>template<unsigned int ROUNDS><br/>
+ class r123::ARS4x32_R< ROUNDS ></h3>
+
+<hr/><h2>Member Typedef Documentation</h2>
+<a class="anchor" id="a9951dbcb50de849ded7177109b344045"></a><!-- doxytag: member="r123::ARS4x32_R::ctr_type" ref="a9951dbcb50de849ded7177109b344045" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<unsigned int ROUNDS> </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="structr123array4x32.html">ars4x32_ctr_t</a> <a class="el" href="structr123_1_1ARS4x32__R.html">r123::ARS4x32_R</a>< ROUNDS >::<a class="el" href="structr123array4x32.html">ctr_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a7a651b6747b9e7c038bc6d11ffa2863e"></a><!-- doxytag: member="r123::ARS4x32_R::key_type" ref="a7a651b6747b9e7c038bc6d11ffa2863e" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<unsigned int ROUNDS> </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="structr123array4x32.html">ars4x32_key_t</a> <a class="el" href="structr123_1_1ARS4x32__R.html">r123::ARS4x32_R</a>< ROUNDS >::<a class="el" href="structr123array4x32.html">key_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa4bd7be98acb8b0299fb0ffce3db69ee"></a><!-- doxytag: member="r123::ARS4x32_R::ukey_type" ref="aa4bd7be98acb8b0299fb0ffce3db69ee" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<unsigned int ROUNDS> </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="structr123array4x32.html">ars4x32_key_t</a> <a class="el" href="structr123_1_1ARS4x32__R.html">r123::ARS4x32_R</a>< ROUNDS >::<a class="el" href="structr123array4x32.html">ukey_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="afcd326e150925e30de22166e727567df"></a><!-- doxytag: member="r123::ARS4x32_R::operator()" ref="afcd326e150925e30de22166e727567df" args="(ctr_type ctr, key_type key) const " -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<unsigned int ROUNDS> </div>
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array4x32.html">ctr_type</a> <a class="el" href="structr123_1_1ARS4x32__R.html">r123::ARS4x32_R</a>< ROUNDS >::operator() </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array4x32.html">ctr_type</a> </td>
+          <td class="paramname"> <em>ctr</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structr123array4x32.html">key_type</a> </td>
+          <td class="paramname"> <em>key</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/><h2>Member Data Documentation</h2>
+<a class="anchor" id="a710e59a54794b4cd5e55689dd906b9ba"></a><!-- doxytag: member="r123::ARS4x32_R::rounds" ref="a710e59a54794b4cd5e55689dd906b9ba" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<unsigned int ROUNDS> </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">const unsigned int <a class="el" href="structr123_1_1ARS4x32__R.html">r123::ARS4x32_R</a>< ROUNDS >::<a class="el" href="structr123_1_1ARS4x32__R.html#a710e59a54794b4cd5e55689dd906b9ba">rounds</a> = ROUNDS<code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>Random123/<a class="el" href="ars_8h_source.html">ars.h</a></li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/structr123_1_1Engine-members.html b/docs/html/structr123_1_1Engine-members.html
new file mode 100644
index 0000000..3d5a8f9
--- /dev/null
+++ b/docs/html/structr123_1_1Engine-members.html
@@ -0,0 +1,117 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<h1>r123::Engine< CBRNG > Member List</h1>  </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="structr123_1_1Engine.html">r123::Engine< CBRNG ></a>, including all inherited members.<table>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Engine.html#ae549f81e966b0414bcaf0f24b566ebd8">_Max</a></td><td><a class="el" href="structr123_1_1Engine.html">r123::Engine< CBRNG ></a></td><td><code> [static]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Engine.html#aa73e4d27847915f1438fd37b30777111">_Min</a></td><td><a class="el" href="structr123_1_1Engine.html">r123::Engine< CBRNG ></a></td><td><code> [static]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Engine.html#a5e430e850badcc4fd0f74de4a49a673b">b</a></td><td><a class="el" href="structr123_1_1Engine.html">r123::Engine< CBRNG ></a></td><td><code> [protected]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Engine.html#afb056ed93053f4175aabc9f4e5dd7b8d">c</a></td><td><a class="el" href="structr123_1_1Engine.html">r123::Engine< CBRNG ></a></td><td><code> [protected]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Engine.html#a45ee0086cf8cd6d10febb76dc88f8b22">cbrng_type</a> typedef</td><td><a class="el" href="structr123_1_1Engine.html">r123::Engine< CBRNG ></a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Engine.html#a96e0f5f039d5efd6aae77b63bafaad90">ctr_type</a> typedef</td><td><a class="el" href="structr123_1_1Engine.html">r123::Engine< CBRNG ></a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Engine.html#a82a56c2c02b146dceb68ef3fd0a969fb">discard</a>(uint64_t skip)</td><td><a class="el" href="structr123_1_1Engine.html">r123::Engine< CBRNG ></a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Engine.html#a7b40128e9dc7427cd13d27477647b319">elem</a></td><td><a class="el" href="structr123_1_1Engine.html">r123::Engine< CBRNG ></a></td><td><code> [protected]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Engine.html#a8fb9eb1ab76ad9b5374a47cf84ecd306">elem_type</a> typedef</td><td><a class="el" href="structr123_1_1Engine.html">r123::Engine< CBRNG ></a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Engine.html#ac5676bbe189b0cdc1bef0dd812262ccd">Engine</a>()</td><td><a class="el" href="structr123_1_1Engine.html">r123::Engine< CBRNG ></a></td><td><code> [inline, explicit]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Engine.html#ae1a249af828cfdac77db6c16e3f8f8eb">Engine</a>(result_type r)</td><td><a class="el" href="structr123_1_1Engine.html">r123::Engine< CBRNG ></a></td><td><code> [inline, explicit]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Engine.html#a37dd55cee849b59d678f74780f785672">Engine</a>(Engine &e)</td><td><a class="el" href="structr123_1_1Engine.html">r123::Engine< CBRNG ></a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Engine.html#a478b486b166316597a51ffdd7b5b2d0c">Engine</a>(const Engine &e)</td><td><a class="el" href="structr123_1_1Engine.html">r123::Engine< CBRNG ></a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Engine.html#a52b968cfefe413441d668b3013de023a">Engine</a>(SeedSeq &s)</td><td><a class="el" href="structr123_1_1Engine.html">r123::Engine< CBRNG ></a></td><td><code> [inline, explicit]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Engine.html#ab5f45b4eb97995cc45350abee3ec8388">Engine</a>(const ukey_type &uk)</td><td><a class="el" href="structr123_1_1Engine.html">r123::Engine< CBRNG ></a></td><td><code> [inline, explicit]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Engine.html#aeb178b9305cbf1fb7e11e8e33a631ba7">Engine</a>(ukey_type &uk)</td><td><a class="el" href="structr123_1_1Engine.html">r123::Engine< CBRNG ></a></td><td><code> [inline, explicit]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Engine.html#aa7ad87d7238a0f820ee37640071dee7d">fix_invariant</a>()</td><td><a class="el" href="structr123_1_1Engine.html">r123::Engine< CBRNG ></a></td><td><code> [inline, protected]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Engine.html#a621df886f2a21ffb22e63d9094389173">getcounter</a>() const </td><td><a class="el" href="structr123_1_1Engine.html">r123::Engine< CBRNG ></a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Engine.html#aa7812a494fdb677c2e325db0acfe924a">getseed</a>() const </td><td><a class="el" href="structr123_1_1Engine.html">r123::Engine< CBRNG ></a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Engine.html#adb9e1841a81f213a115e9f092f5c4654">key</a></td><td><a class="el" href="structr123_1_1Engine.html">r123::Engine< CBRNG ></a></td><td><code> [protected]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Engine.html#a18132a79d2327990c4809b37300eddc3">key_type</a> typedef</td><td><a class="el" href="structr123_1_1Engine.html">r123::Engine< CBRNG ></a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Engine.html#af0947cdcfc03aef7ec30c9fafa660445">operator!=</a>(const Engine &lhs, const Engine &rhs)</td><td><a class="el" href="structr123_1_1Engine.html">r123::Engine< CBRNG ></a></td><td><code> [friend]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Engine.html#aca309d0b4f2a8fff1f6f2ab38c6caf93">operator()</a>()</td><td><a class="el" href="structr123_1_1Engine.html">r123::Engine< CBRNG ></a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Engine.html#af396a7d1656af55805e38f3d9c0fbef7">operator()</a>(const ctr_type &c) const </td><td><a class="el" href="structr123_1_1Engine.html">r123::Engine< CBRNG ></a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Engine.html#ae0321571f689fca00c608d11ecad7d8d">operator<<</a>(std::ostream &os, const Engine &be)</td><td><a class="el" href="structr123_1_1Engine.html">r123::Engine< CBRNG ></a></td><td><code> [friend]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Engine.html#a606e3ba824542e52f12df1345126e721">operator==</a>(const Engine &lhs, const Engine &rhs)</td><td><a class="el" href="structr123_1_1Engine.html">r123::Engine< CBRNG ></a></td><td><code> [friend]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Engine.html#ae708b771ab5ac17700d34bad875a16d9">operator>></a>(std::istream &is, Engine &be)</td><td><a class="el" href="structr123_1_1Engine.html">r123::Engine< CBRNG ></a></td><td><code> [friend]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Engine.html#af5441fc62932c3d099f8b16150d2aa81">R123_NO_MACRO_SUBST</a>()</td><td><a class="el" href="structr123_1_1Engine.html">r123::Engine< CBRNG ></a></td><td><code> [inline, static]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Engine.html#a112318f7d0015ecf4c3c6a8a5c76371b">R123_NO_MACRO_SUBST</a>()</td><td><a class="el" href="structr123_1_1Engine.html">r123::Engine< CBRNG ></a></td><td><code> [inline, static]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Engine.html#a3d7cb66d43f99f5e227990af985ecb45">result_type</a> typedef</td><td><a class="el" href="structr123_1_1Engine.html">r123::Engine< CBRNG ></a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Engine.html#a93429593bdb12b202b4b8ed38fe08bc4">seed</a>(result_type r)</td><td><a class="el" href="structr123_1_1Engine.html">r123::Engine< CBRNG ></a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Engine.html#ac4d05ee820a1eb70e76cabb14645dad4">seed</a>(SeedSeq &s)</td><td><a class="el" href="structr123_1_1Engine.html">r123::Engine< CBRNG ></a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Engine.html#aff36bc97d11bc66f6c0edb75d8dc88e5">seed</a>()</td><td><a class="el" href="structr123_1_1Engine.html">r123::Engine< CBRNG ></a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Engine.html#a5c4d68dbbccfc71f467f3c902f5b93da">seed</a>(const ukey_type &uk)</td><td><a class="el" href="structr123_1_1Engine.html">r123::Engine< CBRNG ></a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Engine.html#a7bd6d3417cefb904c879f41d2c29e15e">seed</a>(ukey_type &uk)</td><td><a class="el" href="structr123_1_1Engine.html">r123::Engine< CBRNG ></a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Engine.html#a6104bf5ee89450403379d5680bfae172">setcounter</a>(const ctr_type &_c, elem_type _elem)</td><td><a class="el" href="structr123_1_1Engine.html">r123::Engine< CBRNG ></a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Engine.html#a11a79253c3a7b07e697f7bf4c7edb52f">ukey</a></td><td><a class="el" href="structr123_1_1Engine.html">r123::Engine< CBRNG ></a></td><td><code> [protected]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Engine.html#a32973bdda8697bcbb4dde11c0366a5e3">ukey_type</a> typedef</td><td><a class="el" href="structr123_1_1Engine.html">r123::Engine< CBRNG ></a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1Engine.html#a6169d4fbce1fd7725fabda4c693bf250">v</a></td><td><a class="el" href="structr123_1_1Engine.html">r123::Engine< CBRNG ></a></td><td><code> [protected]</code></td></tr>
+</table></div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/structr123_1_1Engine.html b/docs/html/structr123_1_1Engine.html
new file mode 100644
index 0000000..ca9d543
--- /dev/null
+++ b/docs/html/structr123_1_1Engine.html
@@ -0,0 +1,922 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: r123::Engine< CBRNG > Struct Template Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+  <div class="navpath">
+    <ul>
+      <li><a class="el" href="namespacer123.html">r123</a>      </li>
+      <li><a class="el" href="structr123_1_1Engine.html">r123::Engine< CBRNG ></a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="summary">
+<a href="#pub-types">Public Types</a> |
+<a href="#pub-methods">Public Member Functions</a> |
+<a href="#pub-static-methods">Static Public Member Functions</a> |
+<a href="#pub-static-attribs">Static Public Attributes</a> |
+<a href="#pro-methods">Protected Member Functions</a> |
+<a href="#pro-attribs">Protected Attributes</a> |
+<a href="#friends">Friends</a>  </div>
+  <div class="headertitle">
+<h1>r123::Engine< CBRNG > Struct Template Reference</h1>  </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="r123::Engine" -->
+<p><code>#include <<a class="el" href="Engine_8hpp_source.html">Random123/conventional/Engine.hpp</a>></code></p>
+
+<p><a href="structr123_1_1Engine-members.html">List of all members.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-types"></a>
+Public Types</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef CBRNG </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Engine.html#a45ee0086cf8cd6d10febb76dc88f8b22">cbrng_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef CBRNG::ctr_type </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Engine.html#a96e0f5f039d5efd6aae77b63bafaad90">ctr_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef CBRNG::key_type </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Engine.html#a18132a79d2327990c4809b37300eddc3">key_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef CBRNG::ukey_type </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Engine.html#a32973bdda8697bcbb4dde11c0366a5e3">ukey_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef ctr_type::value_type </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Engine.html#a3d7cb66d43f99f5e227990af985ecb45">result_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Engine.html#a8fb9eb1ab76ad9b5374a47cf84ecd306">elem_type</a></td></tr>
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Engine.html#ac5676bbe189b0cdc1bef0dd812262ccd">Engine</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Engine.html#ae1a249af828cfdac77db6c16e3f8f8eb">Engine</a> (<a class="el" href="structr123_1_1Engine.html#a3d7cb66d43f99f5e227990af985ecb45">result_type</a> r)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Engine.html#a37dd55cee849b59d678f74780f785672">Engine</a> (<a class="el" href="structr123_1_1Engine.html">Engine</a> &e)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Engine.html#a478b486b166316597a51ffdd7b5b2d0c">Engine</a> (const <a class="el" href="structr123_1_1Engine.html">Engine</a> &e)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template<typename SeedSeq > </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top"> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="structr123_1_1Engine.html#a52b968cfefe413441d668b3013de023a">Engine</a> (SeedSeq &s)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Engine.html#a93429593bdb12b202b4b8ed38fe08bc4">seed</a> (<a class="el" href="structr123_1_1Engine.html#a3d7cb66d43f99f5e227990af985ecb45">result_type</a> r)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template<typename SeedSeq > </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="structr123_1_1Engine.html#ac4d05ee820a1eb70e76cabb14645dad4">seed</a> (SeedSeq &s)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Engine.html#aff36bc97d11bc66f6c0edb75d8dc88e5">seed</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123_1_1Engine.html#a3d7cb66d43f99f5e227990af985ecb45">result_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Engine.html#aca309d0b4f2a8fff1f6f2ab38c6caf93">operator()</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Engine.html#a82a56c2c02b146dceb68ef3fd0a969fb">discard</a> (uint64_t skip)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Engine.html#ab5f45b4eb97995cc45350abee3ec8388">Engine</a> (const <a class="el" href="structr123_1_1Engine.html#a32973bdda8697bcbb4dde11c0366a5e3">ukey_type</a> &uk)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Engine.html#aeb178b9305cbf1fb7e11e8e33a631ba7">Engine</a> (<a class="el" href="structr123_1_1Engine.html#a32973bdda8697bcbb4dde11c0366a5e3">ukey_type</a> &uk)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Engine.html#a5c4d68dbbccfc71f467f3c902f5b93da">seed</a> (const <a class="el" href="structr123_1_1Engine.html#a32973bdda8697bcbb4dde11c0366a5e3">ukey_type</a> &uk)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Engine.html#a7bd6d3417cefb904c879f41d2c29e15e">seed</a> (<a class="el" href="structr123_1_1Engine.html#a32973bdda8697bcbb4dde11c0366a5e3">ukey_type</a> &uk)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123_1_1Engine.html#a96e0f5f039d5efd6aae77b63bafaad90">ctr_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Engine.html#af396a7d1656af55805e38f3d9c0fbef7">operator()</a> (const <a class="el" href="structr123_1_1Engine.html#a96e0f5f039d5efd6aae77b63bafaad90">ctr_type</a> &<a class="el" href="structr123_1_1Engine.html#afb056ed93053f4175aabc9f4e5dd7b8d">c</a>) co [...]
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123_1_1Engine.html#a32973bdda8697bcbb4dde11c0366a5e3">ukey_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Engine.html#aa7812a494fdb677c2e325db0acfe924a">getseed</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::pair< <a class="el" href="structr123_1_1Engine.html#a96e0f5f039d5efd6aae77b63bafaad90">ctr_type</a>, <a class="el" href="structr123_1_1Engine.html#a8fb9eb1ab76ad9b5374a47cf84ecd306">elem_type</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Engine.html#a621df886f2a21ffb22e63d9094389173">getcounter</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Engine.html#a6104bf5ee89450403379d5680bfae172">setcounter</a> (const <a class="el" href="structr123_1_1Engine.html#a96e0f5f039d5efd6aae77b63bafaad90">ctr_type</a> &_c, <a class="el" href="structr123_1_1Engine.html#a8fb9eb1ab76ad9b5374a47cf84ecd306">elem_type</a> _elem)</td></tr>
+<tr><td colspan="2"><h2><a name="pub-static-methods"></a>
+Static Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static R123_CONSTEXPR <br class="typebreak"/>
+<a class="el" href="structr123_1_1Engine.html#a3d7cb66d43f99f5e227990af985ecb45">result_type</a> min </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Engine.html#af5441fc62932c3d099f8b16150d2aa81">R123_NO_MACRO_SUBST</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static R123_CONSTEXPR <br class="typebreak"/>
+<a class="el" href="structr123_1_1Engine.html#a3d7cb66d43f99f5e227990af985ecb45">result_type</a> max </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Engine.html#a112318f7d0015ecf4c3c6a8a5c76371b">R123_NO_MACRO_SUBST</a> ()</td></tr>
+<tr><td colspan="2"><h2><a name="pub-static-attribs"></a>
+Static Public Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="structr123_1_1Engine.html#a3d7cb66d43f99f5e227990af985ecb45">result_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Engine.html#aa73e4d27847915f1438fd37b30777111">_Min</a> = 0</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="structr123_1_1Engine.html#a3d7cb66d43f99f5e227990af985ecb45">result_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Engine.html#ae549f81e966b0414bcaf0f24b566ebd8">_Max</a> = ~((<a class="el" href="structr123_1_1Engine.html#a3d7cb66d43f99f5e227990af985ecb45">result_type</a>)0)</td></tr>
+<tr><td colspan="2"><h2><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Engine.html#aa7ad87d7238a0f820ee37640071dee7d">fix_invariant</a> ()</td></tr>
+<tr><td colspan="2"><h2><a name="pro-attribs"></a>
+Protected Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123_1_1Engine.html#a45ee0086cf8cd6d10febb76dc88f8b22">cbrng_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Engine.html#a5e430e850badcc4fd0f74de4a49a673b">b</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123_1_1Engine.html#a18132a79d2327990c4809b37300eddc3">key_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Engine.html#adb9e1841a81f213a115e9f092f5c4654">key</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123_1_1Engine.html#a32973bdda8697bcbb4dde11c0366a5e3">ukey_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Engine.html#a11a79253c3a7b07e697f7bf4c7edb52f">ukey</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123_1_1Engine.html#a96e0f5f039d5efd6aae77b63bafaad90">ctr_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Engine.html#afb056ed93053f4175aabc9f4e5dd7b8d">c</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123_1_1Engine.html#a8fb9eb1ab76ad9b5374a47cf84ecd306">elem_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Engine.html#a7b40128e9dc7427cd13d27477647b319">elem</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123_1_1Engine.html#a96e0f5f039d5efd6aae77b63bafaad90">ctr_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Engine.html#a6169d4fbce1fd7725fabda4c693bf250">v</a></td></tr>
+<tr><td colspan="2"><h2><a name="friends"></a>
+Friends</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Engine.html#a606e3ba824542e52f12df1345126e721">operator==</a> (const <a class="el" href="structr123_1_1Engine.html">Engine</a> &lhs, const <a class="el" href="structr123_1_1Engine.html">Engine</a> &rhs)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Engine.html#af0947cdcfc03aef7ec30c9fafa660445">operator!=</a> (const <a class="el" href="structr123_1_1Engine.html">Engine</a> &lhs, const <a class="el" href="structr123_1_1Engine.html">Engine</a> &rhs)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::ostream & </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Engine.html#ae0321571f689fca00c608d11ecad7d8d">operator<<</a> (std::ostream &os, const <a class="el" href="structr123_1_1Engine.html">Engine</a> &be)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::istream & </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Engine.html#ae708b771ab5ac17700d34bad875a16d9">operator>></a> (std::istream &is, <a class="el" href="structr123_1_1Engine.html">Engine</a> &be)</td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<h3>template<typename CBRNG><br/>
+ struct r123::Engine< CBRNG ></h3>
+
+<p>If G satisfies the requirements of a CBRNG, and has a ctr_type whose value_type is an unsigned integral type, then Engine<G> satisfies the requirements of a C++0x "Uniform Random Number Engine" and can be used in any context where such an object is expected.</p>
+<p>Note that wrapping a counter based RNG with a traditional API in this way obscures much of the power of counter based PRNGs. Nevertheless, it may be of value in applications that are already coded to work with the C++0x random number engines.</p>
+<p>The <a class="el" href="classr123_1_1MicroURNG.html">MicroURNG</a> template in <a class="el" href="MicroURNG_8hpp.html">MicroURNG.hpp</a> provides the more limited functionality of a C++0x "Uniform
+  Random Number Generator", but leaves the application in control of counters and keys and hence may be preferable to the <a class="el" href="structr123_1_1Engine.html">Engine</a> template. For example, a <a class="el" href="classr123_1_1MicroURNG.html">MicroURNG</a> allows one to use C++0x "Random Number
+  Distributions" without giving up control over the counters and keys. </p>
+<hr/><h2>Member Typedef Documentation</h2>
+<a class="anchor" id="a45ee0086cf8cd6d10febb76dc88f8b22"></a><!-- doxytag: member="r123::Engine::cbrng_type" ref="a45ee0086cf8cd6d10febb76dc88f8b22" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename CBRNG > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef CBRNG <a class="el" href="structr123_1_1Engine.html">r123::Engine</a>< CBRNG >::<a class="el" href="structr123_1_1Engine.html#a45ee0086cf8cd6d10febb76dc88f8b22">cbrng_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a96e0f5f039d5efd6aae77b63bafaad90"></a><!-- doxytag: member="r123::Engine::ctr_type" ref="a96e0f5f039d5efd6aae77b63bafaad90" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename CBRNG > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef CBRNG::ctr_type <a class="el" href="structr123_1_1Engine.html">r123::Engine</a>< CBRNG >::<a class="el" href="structr123_1_1Engine.html#a96e0f5f039d5efd6aae77b63bafaad90">ctr_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a8fb9eb1ab76ad9b5374a47cf84ecd306"></a><!-- doxytag: member="r123::Engine::elem_type" ref="a8fb9eb1ab76ad9b5374a47cf84ecd306" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename CBRNG > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef size_t <a class="el" href="structr123_1_1Engine.html">r123::Engine</a>< CBRNG >::<a class="el" href="structr123_1_1Engine.html#a8fb9eb1ab76ad9b5374a47cf84ecd306">elem_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a18132a79d2327990c4809b37300eddc3"></a><!-- doxytag: member="r123::Engine::key_type" ref="a18132a79d2327990c4809b37300eddc3" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename CBRNG > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef CBRNG::key_type <a class="el" href="structr123_1_1Engine.html">r123::Engine</a>< CBRNG >::<a class="el" href="structr123_1_1Engine.html#a18132a79d2327990c4809b37300eddc3">key_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a3d7cb66d43f99f5e227990af985ecb45"></a><!-- doxytag: member="r123::Engine::result_type" ref="a3d7cb66d43f99f5e227990af985ecb45" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename CBRNG > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef ctr_type::value_type <a class="el" href="structr123_1_1Engine.html">r123::Engine</a>< CBRNG >::<a class="el" href="structr123_1_1Engine.html#a3d7cb66d43f99f5e227990af985ecb45">result_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a32973bdda8697bcbb4dde11c0366a5e3"></a><!-- doxytag: member="r123::Engine::ukey_type" ref="a32973bdda8697bcbb4dde11c0366a5e3" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename CBRNG > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef CBRNG::ukey_type <a class="el" href="structr123_1_1Engine.html">r123::Engine</a>< CBRNG >::<a class="el" href="structr123_1_1Engine.html#a32973bdda8697bcbb4dde11c0366a5e3">ukey_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/><h2>Constructor & Destructor Documentation</h2>
+<a class="anchor" id="ac5676bbe189b0cdc1bef0dd812262ccd"></a><!-- doxytag: member="r123::Engine::Engine" ref="ac5676bbe189b0cdc1bef0dd812262ccd" args="()" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename CBRNG > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123_1_1Engine.html">r123::Engine</a>< CBRNG >::<a class="el" href="structr123_1_1Engine.html">Engine</a> </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline, explicit]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae1a249af828cfdac77db6c16e3f8f8eb"></a><!-- doxytag: member="r123::Engine::Engine" ref="ae1a249af828cfdac77db6c16e3f8f8eb" args="(result_type r)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename CBRNG > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123_1_1Engine.html">r123::Engine</a>< CBRNG >::<a class="el" href="structr123_1_1Engine.html">Engine</a> </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123_1_1Engine.html#a3d7cb66d43f99f5e227990af985ecb45">result_type</a> </td>
+          <td class="paramname"> <em>r</em></td>
+          <td> ) </td>
+          <td><code> [inline, explicit]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a37dd55cee849b59d678f74780f785672"></a><!-- doxytag: member="r123::Engine::Engine" ref="a37dd55cee849b59d678f74780f785672" args="(Engine &e)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename CBRNG > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123_1_1Engine.html">r123::Engine</a>< CBRNG >::<a class="el" href="structr123_1_1Engine.html">Engine</a> </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123_1_1Engine.html">Engine</a>< CBRNG > & </td>
+          <td class="paramname"> <em>e</em></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a478b486b166316597a51ffdd7b5b2d0c"></a><!-- doxytag: member="r123::Engine::Engine" ref="a478b486b166316597a51ffdd7b5b2d0c" args="(const Engine &e)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename CBRNG > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123_1_1Engine.html">r123::Engine</a>< CBRNG >::<a class="el" href="structr123_1_1Engine.html">Engine</a> </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structr123_1_1Engine.html">Engine</a>< CBRNG > & </td>
+          <td class="paramname"> <em>e</em></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a52b968cfefe413441d668b3013de023a"></a><!-- doxytag: member="r123::Engine::Engine" ref="a52b968cfefe413441d668b3013de023a" args="(SeedSeq &s)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename CBRNG > </div>
+<div class="memtemplate">
+template<typename SeedSeq > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123_1_1Engine.html">r123::Engine</a>< CBRNG >::<a class="el" href="structr123_1_1Engine.html">Engine</a> </td>
+          <td>(</td>
+          <td class="paramtype">SeedSeq & </td>
+          <td class="paramname"> <em>s</em></td>
+          <td> ) </td>
+          <td><code> [inline, explicit]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ab5f45b4eb97995cc45350abee3ec8388"></a><!-- doxytag: member="r123::Engine::Engine" ref="ab5f45b4eb97995cc45350abee3ec8388" args="(const ukey_type &uk)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename CBRNG > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123_1_1Engine.html">r123::Engine</a>< CBRNG >::<a class="el" href="structr123_1_1Engine.html">Engine</a> </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structr123_1_1Engine.html#a32973bdda8697bcbb4dde11c0366a5e3">ukey_type</a> & </td>
+          <td class="paramname"> <em>uk</em></td>
+          <td> ) </td>
+          <td><code> [inline, explicit]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aeb178b9305cbf1fb7e11e8e33a631ba7"></a><!-- doxytag: member="r123::Engine::Engine" ref="aeb178b9305cbf1fb7e11e8e33a631ba7" args="(ukey_type &uk)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename CBRNG > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123_1_1Engine.html">r123::Engine</a>< CBRNG >::<a class="el" href="structr123_1_1Engine.html">Engine</a> </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123_1_1Engine.html#a32973bdda8697bcbb4dde11c0366a5e3">ukey_type</a> & </td>
+          <td class="paramname"> <em>uk</em></td>
+          <td> ) </td>
+          <td><code> [inline, explicit]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="a82a56c2c02b146dceb68ef3fd0a969fb"></a><!-- doxytag: member="r123::Engine::discard" ref="a82a56c2c02b146dceb68ef3fd0a969fb" args="(uint64_t skip)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename CBRNG > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">void <a class="el" href="structr123_1_1Engine.html">r123::Engine</a>< CBRNG >::discard </td>
+          <td>(</td>
+          <td class="paramtype">uint64_t </td>
+          <td class="paramname"> <em>skip</em></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa7ad87d7238a0f820ee37640071dee7d"></a><!-- doxytag: member="r123::Engine::fix_invariant" ref="aa7ad87d7238a0f820ee37640071dee7d" args="()" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename CBRNG > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">void <a class="el" href="structr123_1_1Engine.html">r123::Engine</a>< CBRNG >::fix_invariant </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline, protected]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a621df886f2a21ffb22e63d9094389173"></a><!-- doxytag: member="r123::Engine::getcounter" ref="a621df886f2a21ffb22e63d9094389173" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename CBRNG > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">std::pair<<a class="el" href="structr123_1_1Engine.html#a96e0f5f039d5efd6aae77b63bafaad90">ctr_type</a>, <a class="el" href="structr123_1_1Engine.html#a8fb9eb1ab76ad9b5374a47cf84ecd306">elem_type</a>> <a class="el" href="structr123_1_1Engine.html">r123::Engine</a>< CBRNG >::getcounter </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa7812a494fdb677c2e325db0acfe924a"></a><!-- doxytag: member="r123::Engine::getseed" ref="aa7812a494fdb677c2e325db0acfe924a" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename CBRNG > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123_1_1Engine.html#a32973bdda8697bcbb4dde11c0366a5e3">ukey_type</a> <a class="el" href="structr123_1_1Engine.html">r123::Engine</a>< CBRNG >::getseed </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="af396a7d1656af55805e38f3d9c0fbef7"></a><!-- doxytag: member="r123::Engine::operator()" ref="af396a7d1656af55805e38f3d9c0fbef7" args="(const ctr_type &c) const " -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename CBRNG > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123_1_1Engine.html#a96e0f5f039d5efd6aae77b63bafaad90">ctr_type</a> <a class="el" href="structr123_1_1Engine.html">r123::Engine</a>< CBRNG >::operator() </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structr123_1_1Engine.html#a96e0f5f039d5efd6aae77b63bafaad90">ctr_type</a> & </td>
+          <td class="paramname"> <em>c</em></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aca309d0b4f2a8fff1f6f2ab38c6caf93"></a><!-- doxytag: member="r123::Engine::operator()" ref="aca309d0b4f2a8fff1f6f2ab38c6caf93" args="()" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename CBRNG > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123_1_1Engine.html#a3d7cb66d43f99f5e227990af985ecb45">result_type</a> <a class="el" href="structr123_1_1Engine.html">r123::Engine</a>< CBRNG >::operator() </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="af5441fc62932c3d099f8b16150d2aa81"></a><!-- doxytag: member="r123::Engine::R123_NO_MACRO_SUBST" ref="af5441fc62932c3d099f8b16150d2aa81" args="()" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename CBRNG > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">static R123_CONSTEXPR <a class="el" href="structr123_1_1Engine.html#a3d7cb66d43f99f5e227990af985ecb45">result_type</a> min <a class="el" href="structr123_1_1Engine.html">r123::Engine</a>< CBRNG >::R123_NO_MACRO_SUBST </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline, static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a112318f7d0015ecf4c3c6a8a5c76371b"></a><!-- doxytag: member="r123::Engine::R123_NO_MACRO_SUBST" ref="a112318f7d0015ecf4c3c6a8a5c76371b" args="()" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename CBRNG > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">static R123_CONSTEXPR <a class="el" href="structr123_1_1Engine.html#a3d7cb66d43f99f5e227990af985ecb45">result_type</a> max <a class="el" href="structr123_1_1Engine.html">r123::Engine</a>< CBRNG >::R123_NO_MACRO_SUBST </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline, static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a5c4d68dbbccfc71f467f3c902f5b93da"></a><!-- doxytag: member="r123::Engine::seed" ref="a5c4d68dbbccfc71f467f3c902f5b93da" args="(const ukey_type &uk)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename CBRNG > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">void <a class="el" href="structr123_1_1Engine.html">r123::Engine</a>< CBRNG >::seed </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structr123_1_1Engine.html#a32973bdda8697bcbb4dde11c0366a5e3">ukey_type</a> & </td>
+          <td class="paramname"> <em>uk</em></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ac4d05ee820a1eb70e76cabb14645dad4"></a><!-- doxytag: member="r123::Engine::seed" ref="ac4d05ee820a1eb70e76cabb14645dad4" args="(SeedSeq &s)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename CBRNG > </div>
+<div class="memtemplate">
+template<typename SeedSeq > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">void <a class="el" href="structr123_1_1Engine.html">r123::Engine</a>< CBRNG >::seed </td>
+          <td>(</td>
+          <td class="paramtype">SeedSeq & </td>
+          <td class="paramname"> <em>s</em></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a7bd6d3417cefb904c879f41d2c29e15e"></a><!-- doxytag: member="r123::Engine::seed" ref="a7bd6d3417cefb904c879f41d2c29e15e" args="(ukey_type &uk)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename CBRNG > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">void <a class="el" href="structr123_1_1Engine.html">r123::Engine</a>< CBRNG >::seed </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123_1_1Engine.html#a32973bdda8697bcbb4dde11c0366a5e3">ukey_type</a> & </td>
+          <td class="paramname"> <em>uk</em></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a93429593bdb12b202b4b8ed38fe08bc4"></a><!-- doxytag: member="r123::Engine::seed" ref="a93429593bdb12b202b4b8ed38fe08bc4" args="(result_type r)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename CBRNG > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">void <a class="el" href="structr123_1_1Engine.html">r123::Engine</a>< CBRNG >::seed </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123_1_1Engine.html#a3d7cb66d43f99f5e227990af985ecb45">result_type</a> </td>
+          <td class="paramname"> <em>r</em></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aff36bc97d11bc66f6c0edb75d8dc88e5"></a><!-- doxytag: member="r123::Engine::seed" ref="aff36bc97d11bc66f6c0edb75d8dc88e5" args="()" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename CBRNG > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">void <a class="el" href="structr123_1_1Engine.html">r123::Engine</a>< CBRNG >::seed </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a6104bf5ee89450403379d5680bfae172"></a><!-- doxytag: member="r123::Engine::setcounter" ref="a6104bf5ee89450403379d5680bfae172" args="(const ctr_type &_c, elem_type _elem)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename CBRNG > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">void <a class="el" href="structr123_1_1Engine.html">r123::Engine</a>< CBRNG >::setcounter </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structr123_1_1Engine.html#a96e0f5f039d5efd6aae77b63bafaad90">ctr_type</a> & </td>
+          <td class="paramname"> <em>_c</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structr123_1_1Engine.html#a8fb9eb1ab76ad9b5374a47cf84ecd306">elem_type</a> </td>
+          <td class="paramname"> <em>_elem</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/><h2>Friends And Related Function Documentation</h2>
+<a class="anchor" id="af0947cdcfc03aef7ec30c9fafa660445"></a><!-- doxytag: member="r123::Engine::operator!=" ref="af0947cdcfc03aef7ec30c9fafa660445" args="(const Engine &lhs, const Engine &rhs)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename CBRNG > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">bool operator!= </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structr123_1_1Engine.html">Engine</a>< CBRNG > & </td>
+          <td class="paramname"> <em>lhs</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structr123_1_1Engine.html">Engine</a>< CBRNG > & </td>
+          <td class="paramname"> <em>rhs</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [friend]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae0321571f689fca00c608d11ecad7d8d"></a><!-- doxytag: member="r123::Engine::operator<<" ref="ae0321571f689fca00c608d11ecad7d8d" args="(std::ostream &os, const Engine &be)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename CBRNG > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">std::ostream& operator<< </td>
+          <td>(</td>
+          <td class="paramtype">std::ostream & </td>
+          <td class="paramname"> <em>os</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structr123_1_1Engine.html">Engine</a>< CBRNG > & </td>
+          <td class="paramname"> <em>be</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [friend]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a606e3ba824542e52f12df1345126e721"></a><!-- doxytag: member="r123::Engine::operator==" ref="a606e3ba824542e52f12df1345126e721" args="(const Engine &lhs, const Engine &rhs)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename CBRNG > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">bool operator== </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structr123_1_1Engine.html">Engine</a>< CBRNG > & </td>
+          <td class="paramname"> <em>lhs</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structr123_1_1Engine.html">Engine</a>< CBRNG > & </td>
+          <td class="paramname"> <em>rhs</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [friend]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae708b771ab5ac17700d34bad875a16d9"></a><!-- doxytag: member="r123::Engine::operator>>" ref="ae708b771ab5ac17700d34bad875a16d9" args="(std::istream &is, Engine &be)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename CBRNG > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">std::istream& operator>> </td>
+          <td>(</td>
+          <td class="paramtype">std::istream & </td>
+          <td class="paramname"> <em>is</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structr123_1_1Engine.html">Engine</a>< CBRNG > & </td>
+          <td class="paramname"> <em>be</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [friend]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/><h2>Member Data Documentation</h2>
+<a class="anchor" id="ae549f81e966b0414bcaf0f24b566ebd8"></a><!-- doxytag: member="r123::Engine::_Max" ref="ae549f81e966b0414bcaf0f24b566ebd8" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename CBRNG > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">const <a class="el" href="structr123_1_1Engine.html#a3d7cb66d43f99f5e227990af985ecb45">result_type</a> <a class="el" href="structr123_1_1Engine.html">r123::Engine</a>< CBRNG >::<a class="el" href="structr123_1_1Engine.html#ae549f81e966b0414bcaf0f24b566ebd8">_Max</a> = ~((<a class="el" href="structr123_1_1Engine.html#a3d7cb66d43f99f5e227990af985ecb45">result_type</a>)0)<code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa73e4d27847915f1438fd37b30777111"></a><!-- doxytag: member="r123::Engine::_Min" ref="aa73e4d27847915f1438fd37b30777111" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename CBRNG > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">const <a class="el" href="structr123_1_1Engine.html#a3d7cb66d43f99f5e227990af985ecb45">result_type</a> <a class="el" href="structr123_1_1Engine.html">r123::Engine</a>< CBRNG >::<a class="el" href="structr123_1_1Engine.html#aa73e4d27847915f1438fd37b30777111">_Min</a> = 0<code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a5e430e850badcc4fd0f74de4a49a673b"></a><!-- doxytag: member="r123::Engine::b" ref="a5e430e850badcc4fd0f74de4a49a673b" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename CBRNG > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123_1_1Engine.html#a45ee0086cf8cd6d10febb76dc88f8b22">cbrng_type</a> <a class="el" href="structr123_1_1Engine.html">r123::Engine</a>< CBRNG >::<a class="el" href="structr123_1_1Engine.html#a5e430e850badcc4fd0f74de4a49a673b">b</a><code> [protected]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="afb056ed93053f4175aabc9f4e5dd7b8d"></a><!-- doxytag: member="r123::Engine::c" ref="afb056ed93053f4175aabc9f4e5dd7b8d" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename CBRNG > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123_1_1Engine.html#a96e0f5f039d5efd6aae77b63bafaad90">ctr_type</a> <a class="el" href="structr123_1_1Engine.html">r123::Engine</a>< CBRNG >::<a class="el" href="structr123_1_1Engine.html#afb056ed93053f4175aabc9f4e5dd7b8d">c</a><code> [protected]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a7b40128e9dc7427cd13d27477647b319"></a><!-- doxytag: member="r123::Engine::elem" ref="a7b40128e9dc7427cd13d27477647b319" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename CBRNG > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123_1_1Engine.html#a8fb9eb1ab76ad9b5374a47cf84ecd306">elem_type</a> <a class="el" href="structr123_1_1Engine.html">r123::Engine</a>< CBRNG >::<a class="el" href="structr123_1_1Engine.html#a7b40128e9dc7427cd13d27477647b319">elem</a><code> [protected]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="adb9e1841a81f213a115e9f092f5c4654"></a><!-- doxytag: member="r123::Engine::key" ref="adb9e1841a81f213a115e9f092f5c4654" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename CBRNG > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123_1_1Engine.html#a18132a79d2327990c4809b37300eddc3">key_type</a> <a class="el" href="structr123_1_1Engine.html">r123::Engine</a>< CBRNG >::<a class="el" href="structr123_1_1Engine.html#adb9e1841a81f213a115e9f092f5c4654">key</a><code> [protected]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a11a79253c3a7b07e697f7bf4c7edb52f"></a><!-- doxytag: member="r123::Engine::ukey" ref="a11a79253c3a7b07e697f7bf4c7edb52f" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename CBRNG > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123_1_1Engine.html#a32973bdda8697bcbb4dde11c0366a5e3">ukey_type</a> <a class="el" href="structr123_1_1Engine.html">r123::Engine</a>< CBRNG >::<a class="el" href="structr123_1_1Engine.html#a11a79253c3a7b07e697f7bf4c7edb52f">ukey</a><code> [protected]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a6169d4fbce1fd7725fabda4c693bf250"></a><!-- doxytag: member="r123::Engine::v" ref="a6169d4fbce1fd7725fabda4c693bf250" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename CBRNG > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123_1_1Engine.html#a96e0f5f039d5efd6aae77b63bafaad90">ctr_type</a> <a class="el" href="structr123_1_1Engine.html">r123::Engine</a>< CBRNG >::<a class="el" href="structr123_1_1Engine.html#a6169d4fbce1fd7725fabda4c693bf250">v</a><code> [protected]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li>Random123/conventional/<a class="el" href="Engine_8hpp_source.html">Engine.hpp</a></li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/structr123_1_1Philox2x32__R.html b/docs/html/structr123_1_1Philox2x32__R.html
new file mode 100644
index 0000000..0b49c04
--- /dev/null
+++ b/docs/html/structr123_1_1Philox2x32__R.html
@@ -0,0 +1,209 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: r123::Philox2x32_R< ROUNDS > Class Template Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+  <div class="navpath">
+    <ul>
+      <li><a class="el" href="namespacer123.html">r123</a>      </li>
+      <li><a class="el" href="structr123_1_1Philox2x32__R.html">r123::Philox2x32_R< ROUNDS ></a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="summary">
+<a href="#pub-types">Public Types</a> |
+<a href="#pub-methods">Public Member Functions</a> |
+<a href="#pub-static-attribs">Static Public Attributes</a>  </div>
+  <div class="headertitle">
+<h1>r123::Philox2x32_R< ROUNDS > Class Template Reference<br/>
+<small>
+[<a class="el" href="group__PhiloxNxW.html">Philox Classes and Typedefs</a>]</small>
+</h1>  </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="r123::Philox2x32_R" -->
+<p><code>#include <<a class="el" href="philox_8h_source.html">Random123/philox.h</a>></code></p>
+
+<p><a href="classr123_1_1Philox2x32__R-members.html">List of all members.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-types"></a>
+Public Types</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123array2x32.html">r123array2x32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Philox2x32__R.html#af00c84c482900fbeca6bd2043395e599">ctr_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123array1x32.html">r123array1x32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Philox2x32__R.html#a37dac768d36ef39e0228369e91b9f0ab">key_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123array1x32.html">r123array1x32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Philox2x32__R.html#a8982960eb5a3b5afc26c8e8d6639275e">ukey_type</a></td></tr>
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array2x32.html">ctr_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Philox2x32__R.html#ab610a200c9fa62d090f31466b655c780">operator()</a> (<a class="el" href="structr123array2x32.html">ctr_type</a> ctr, <a class="el" href="structr123array1x32.html">key_type</a> key) const </td></tr>
+<tr><td colspan="2"><h2><a name="pub-static-attribs"></a>
+Static Public Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static const unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Philox2x32__R.html#a52ee7b34688fc2e5315152a10d7df5f0">rounds</a> = ROUNDS</td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<h3>template<unsigned int ROUNDS><br/>
+ class r123::Philox2x32_R< ROUNDS ></h3>
+
+<p>exports the member functions, typedefs and operator overloads required by a <a class="el" href="CBRNG.html">CBRNG</a> class.</p>
+<p>The template argument, ROUNDS, is the number of times the Philox round function will be applied.</p>
+<p>As of November 2011, the authors know of no statistical flaws with ROUNDS=6 or more for Philox2x32. </p>
+<hr/><h2>Member Typedef Documentation</h2>
+<a class="anchor" id="af00c84c482900fbeca6bd2043395e599"></a><!-- doxytag: member="r123::Philox2x32_R::ctr_type" ref="af00c84c482900fbeca6bd2043395e599" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<unsigned int ROUNDS> </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="structr123array2x32.html">r123array2x32</a> <a class="el" href="structr123_1_1Philox2x32__R.html">r123::Philox2x32_R</a>< ROUNDS >::<a class="el" href="structr123array2x32.html">ctr_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a37dac768d36ef39e0228369e91b9f0ab"></a><!-- doxytag: member="r123::Philox2x32_R::key_type" ref="a37dac768d36ef39e0228369e91b9f0ab" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<unsigned int ROUNDS> </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="structr123array1x32.html">r123array1x32</a> <a class="el" href="structr123_1_1Philox2x32__R.html">r123::Philox2x32_R</a>< ROUNDS >::<a class="el" href="structr123array1x32.html">key_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a8982960eb5a3b5afc26c8e8d6639275e"></a><!-- doxytag: member="r123::Philox2x32_R::ukey_type" ref="a8982960eb5a3b5afc26c8e8d6639275e" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<unsigned int ROUNDS> </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="structr123array1x32.html">r123array1x32</a> <a class="el" href="structr123_1_1Philox2x32__R.html">r123::Philox2x32_R</a>< ROUNDS >::<a class="el" href="structr123array1x32.html">ukey_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="ab610a200c9fa62d090f31466b655c780"></a><!-- doxytag: member="r123::Philox2x32_R::operator()" ref="ab610a200c9fa62d090f31466b655c780" args="(ctr_type ctr, key_type key) const " -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<unsigned int ROUNDS> </div>
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array2x32.html">ctr_type</a> <a class="el" href="structr123_1_1Philox2x32__R.html">r123::Philox2x32_R</a>< ROUNDS >::operator() </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array2x32.html">ctr_type</a> </td>
+          <td class="paramname"> <em>ctr</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structr123array1x32.html">key_type</a> </td>
+          <td class="paramname"> <em>key</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/><h2>Member Data Documentation</h2>
+<a class="anchor" id="a52ee7b34688fc2e5315152a10d7df5f0"></a><!-- doxytag: member="r123::Philox2x32_R::rounds" ref="a52ee7b34688fc2e5315152a10d7df5f0" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<unsigned int ROUNDS> </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">const unsigned int <a class="el" href="structr123_1_1Philox2x32__R.html">r123::Philox2x32_R</a>< ROUNDS >::<a class="el" href="structr123_1_1Philox2x32__R.html#a52ee7b34688fc2e5315152a10d7df5f0">rounds</a> = ROUNDS<code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>Random123/<a class="el" href="philox_8h_source.html">philox.h</a></li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/structr123_1_1Philox2x64__R.html b/docs/html/structr123_1_1Philox2x64__R.html
new file mode 100644
index 0000000..3cd50ed
--- /dev/null
+++ b/docs/html/structr123_1_1Philox2x64__R.html
@@ -0,0 +1,209 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: r123::Philox2x64_R< ROUNDS > Class Template Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+  <div class="navpath">
+    <ul>
+      <li><a class="el" href="namespacer123.html">r123</a>      </li>
+      <li><a class="el" href="structr123_1_1Philox2x64__R.html">r123::Philox2x64_R< ROUNDS ></a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="summary">
+<a href="#pub-types">Public Types</a> |
+<a href="#pub-methods">Public Member Functions</a> |
+<a href="#pub-static-attribs">Static Public Attributes</a>  </div>
+  <div class="headertitle">
+<h1>r123::Philox2x64_R< ROUNDS > Class Template Reference<br/>
+<small>
+[<a class="el" href="group__PhiloxNxW.html">Philox Classes and Typedefs</a>]</small>
+</h1>  </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="r123::Philox2x64_R" -->
+<p><code>#include <<a class="el" href="philox_8h_source.html">Random123/philox.h</a>></code></p>
+
+<p><a href="classr123_1_1Philox2x64__R-members.html">List of all members.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-types"></a>
+Public Types</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123array2x64.html">r123array2x64</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Philox2x64__R.html#a8e615e3f4680b9e1b986ea071fd173fc">ctr_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123array1x64.html">r123array1x64</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Philox2x64__R.html#adb8a638d3d96ef0ab594b0320bae329f">key_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123array1x64.html">r123array1x64</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Philox2x64__R.html#a0c4cfeb8c3f00d1755ee047790c9da1c">ukey_type</a></td></tr>
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array2x64.html">ctr_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Philox2x64__R.html#a04f6039e87a958593ac011d9304d7ec9">operator()</a> (<a class="el" href="structr123array2x64.html">ctr_type</a> ctr, <a class="el" href="structr123array1x64.html">key_type</a> key) const </td></tr>
+<tr><td colspan="2"><h2><a name="pub-static-attribs"></a>
+Static Public Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static const unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Philox2x64__R.html#ac0764d78e07bf6d311b47d0f3ce92450">rounds</a> = ROUNDS</td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<h3>template<unsigned int ROUNDS><br/>
+ class r123::Philox2x64_R< ROUNDS ></h3>
+
+<p>exports the member functions, typedefs and operator overloads required by a <a class="el" href="CBRNG.html">CBRNG</a> class.</p>
+<p>The template argument, ROUNDS, is the number of times the Philox round function will be applied.</p>
+<p>As of September 2011, the authors know of no statistical flaws with ROUNDS=6 or more for Philox2x64. </p>
+<hr/><h2>Member Typedef Documentation</h2>
+<a class="anchor" id="a8e615e3f4680b9e1b986ea071fd173fc"></a><!-- doxytag: member="r123::Philox2x64_R::ctr_type" ref="a8e615e3f4680b9e1b986ea071fd173fc" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<unsigned int ROUNDS> </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="structr123array2x64.html">r123array2x64</a> <a class="el" href="structr123_1_1Philox2x64__R.html">r123::Philox2x64_R</a>< ROUNDS >::<a class="el" href="structr123array2x64.html">ctr_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="adb8a638d3d96ef0ab594b0320bae329f"></a><!-- doxytag: member="r123::Philox2x64_R::key_type" ref="adb8a638d3d96ef0ab594b0320bae329f" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<unsigned int ROUNDS> </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="structr123array1x64.html">r123array1x64</a> <a class="el" href="structr123_1_1Philox2x64__R.html">r123::Philox2x64_R</a>< ROUNDS >::<a class="el" href="structr123array1x64.html">key_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a0c4cfeb8c3f00d1755ee047790c9da1c"></a><!-- doxytag: member="r123::Philox2x64_R::ukey_type" ref="a0c4cfeb8c3f00d1755ee047790c9da1c" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<unsigned int ROUNDS> </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="structr123array1x64.html">r123array1x64</a> <a class="el" href="structr123_1_1Philox2x64__R.html">r123::Philox2x64_R</a>< ROUNDS >::<a class="el" href="structr123array1x64.html">ukey_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="a04f6039e87a958593ac011d9304d7ec9"></a><!-- doxytag: member="r123::Philox2x64_R::operator()" ref="a04f6039e87a958593ac011d9304d7ec9" args="(ctr_type ctr, key_type key) const " -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<unsigned int ROUNDS> </div>
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array2x64.html">ctr_type</a> <a class="el" href="structr123_1_1Philox2x64__R.html">r123::Philox2x64_R</a>< ROUNDS >::operator() </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array2x64.html">ctr_type</a> </td>
+          <td class="paramname"> <em>ctr</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structr123array1x64.html">key_type</a> </td>
+          <td class="paramname"> <em>key</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/><h2>Member Data Documentation</h2>
+<a class="anchor" id="ac0764d78e07bf6d311b47d0f3ce92450"></a><!-- doxytag: member="r123::Philox2x64_R::rounds" ref="ac0764d78e07bf6d311b47d0f3ce92450" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<unsigned int ROUNDS> </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">const unsigned int <a class="el" href="structr123_1_1Philox2x64__R.html">r123::Philox2x64_R</a>< ROUNDS >::<a class="el" href="structr123_1_1Philox2x64__R.html#ac0764d78e07bf6d311b47d0f3ce92450">rounds</a> = ROUNDS<code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>Random123/<a class="el" href="philox_8h_source.html">philox.h</a></li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/structr123_1_1Philox4x32__R.html b/docs/html/structr123_1_1Philox4x32__R.html
new file mode 100644
index 0000000..4b9fa51
--- /dev/null
+++ b/docs/html/structr123_1_1Philox4x32__R.html
@@ -0,0 +1,209 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: r123::Philox4x32_R< ROUNDS > Class Template Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+  <div class="navpath">
+    <ul>
+      <li><a class="el" href="namespacer123.html">r123</a>      </li>
+      <li><a class="el" href="structr123_1_1Philox4x32__R.html">r123::Philox4x32_R< ROUNDS ></a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="summary">
+<a href="#pub-types">Public Types</a> |
+<a href="#pub-methods">Public Member Functions</a> |
+<a href="#pub-static-attribs">Static Public Attributes</a>  </div>
+  <div class="headertitle">
+<h1>r123::Philox4x32_R< ROUNDS > Class Template Reference<br/>
+<small>
+[<a class="el" href="group__PhiloxNxW.html">Philox Classes and Typedefs</a>]</small>
+</h1>  </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="r123::Philox4x32_R" -->
+<p><code>#include <<a class="el" href="philox_8h_source.html">Random123/philox.h</a>></code></p>
+
+<p><a href="classr123_1_1Philox4x32__R-members.html">List of all members.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-types"></a>
+Public Types</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123array4x32.html">r123array4x32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Philox4x32__R.html#a23adf0320faed0fe4d12ebececdba50a">ctr_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123array2x32.html">r123array2x32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Philox4x32__R.html#afa2e99f3e0b635f17ba9e16c186af63b">key_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123array2x32.html">r123array2x32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Philox4x32__R.html#a804c8700155da93039c339ac83df99dd">ukey_type</a></td></tr>
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array4x32.html">ctr_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Philox4x32__R.html#adf05bdc0c856c9541db656711fd8c7d1">operator()</a> (<a class="el" href="structr123array4x32.html">ctr_type</a> ctr, <a class="el" href="structr123array2x32.html">key_type</a> key) const </td></tr>
+<tr><td colspan="2"><h2><a name="pub-static-attribs"></a>
+Static Public Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static const unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Philox4x32__R.html#a90d6a86bff4dc6e5e24209423f125140">rounds</a> = ROUNDS</td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<h3>template<unsigned int ROUNDS><br/>
+ class r123::Philox4x32_R< ROUNDS ></h3>
+
+<p>exports the member functions, typedefs and operator overloads required by a <a class="el" href="CBRNG.html">CBRNG</a> class.</p>
+<p>The template argument, ROUNDS, is the number of times the Philox round function will be applied.</p>
+<p>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. </p>
+<hr/><h2>Member Typedef Documentation</h2>
+<a class="anchor" id="a23adf0320faed0fe4d12ebececdba50a"></a><!-- doxytag: member="r123::Philox4x32_R::ctr_type" ref="a23adf0320faed0fe4d12ebececdba50a" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<unsigned int ROUNDS> </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="structr123array4x32.html">r123array4x32</a> <a class="el" href="structr123_1_1Philox4x32__R.html">r123::Philox4x32_R</a>< ROUNDS >::<a class="el" href="structr123array4x32.html">ctr_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="afa2e99f3e0b635f17ba9e16c186af63b"></a><!-- doxytag: member="r123::Philox4x32_R::key_type" ref="afa2e99f3e0b635f17ba9e16c186af63b" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<unsigned int ROUNDS> </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="structr123array2x32.html">r123array2x32</a> <a class="el" href="structr123_1_1Philox4x32__R.html">r123::Philox4x32_R</a>< ROUNDS >::<a class="el" href="structr123array2x32.html">key_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a804c8700155da93039c339ac83df99dd"></a><!-- doxytag: member="r123::Philox4x32_R::ukey_type" ref="a804c8700155da93039c339ac83df99dd" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<unsigned int ROUNDS> </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="structr123array2x32.html">r123array2x32</a> <a class="el" href="structr123_1_1Philox4x32__R.html">r123::Philox4x32_R</a>< ROUNDS >::<a class="el" href="structr123array2x32.html">ukey_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="adf05bdc0c856c9541db656711fd8c7d1"></a><!-- doxytag: member="r123::Philox4x32_R::operator()" ref="adf05bdc0c856c9541db656711fd8c7d1" args="(ctr_type ctr, key_type key) const " -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<unsigned int ROUNDS> </div>
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array4x32.html">ctr_type</a> <a class="el" href="structr123_1_1Philox4x32__R.html">r123::Philox4x32_R</a>< ROUNDS >::operator() </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array4x32.html">ctr_type</a> </td>
+          <td class="paramname"> <em>ctr</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structr123array2x32.html">key_type</a> </td>
+          <td class="paramname"> <em>key</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/><h2>Member Data Documentation</h2>
+<a class="anchor" id="a90d6a86bff4dc6e5e24209423f125140"></a><!-- doxytag: member="r123::Philox4x32_R::rounds" ref="a90d6a86bff4dc6e5e24209423f125140" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<unsigned int ROUNDS> </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">const unsigned int <a class="el" href="structr123_1_1Philox4x32__R.html">r123::Philox4x32_R</a>< ROUNDS >::<a class="el" href="structr123_1_1Philox4x32__R.html#a90d6a86bff4dc6e5e24209423f125140">rounds</a> = ROUNDS<code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>Random123/<a class="el" href="philox_8h_source.html">philox.h</a></li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/structr123_1_1Philox4x64__R.html b/docs/html/structr123_1_1Philox4x64__R.html
new file mode 100644
index 0000000..b2a9e02
--- /dev/null
+++ b/docs/html/structr123_1_1Philox4x64__R.html
@@ -0,0 +1,209 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: r123::Philox4x64_R< ROUNDS > Class Template Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+  <div class="navpath">
+    <ul>
+      <li><a class="el" href="namespacer123.html">r123</a>      </li>
+      <li><a class="el" href="structr123_1_1Philox4x64__R.html">r123::Philox4x64_R< ROUNDS ></a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="summary">
+<a href="#pub-types">Public Types</a> |
+<a href="#pub-methods">Public Member Functions</a> |
+<a href="#pub-static-attribs">Static Public Attributes</a>  </div>
+  <div class="headertitle">
+<h1>r123::Philox4x64_R< ROUNDS > Class Template Reference<br/>
+<small>
+[<a class="el" href="group__PhiloxNxW.html">Philox Classes and Typedefs</a>]</small>
+</h1>  </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="r123::Philox4x64_R" -->
+<p><code>#include <<a class="el" href="philox_8h_source.html">Random123/philox.h</a>></code></p>
+
+<p><a href="classr123_1_1Philox4x64__R-members.html">List of all members.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-types"></a>
+Public Types</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123array4x64.html">r123array4x64</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Philox4x64__R.html#afd5f78b34ae7c478ebe16eb601f7b202">ctr_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123array2x64.html">r123array2x64</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Philox4x64__R.html#a9947ce12e3d03f9a60396d79bb56ba1c">key_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123array2x64.html">r123array2x64</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Philox4x64__R.html#a4715e37129fb4ca9d7671cb9df4fa8c5">ukey_type</a></td></tr>
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array4x64.html">ctr_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Philox4x64__R.html#aa5a0488aa6e16c55b7647c155b18462c">operator()</a> (<a class="el" href="structr123array4x64.html">ctr_type</a> ctr, <a class="el" href="structr123array2x64.html">key_type</a> key) const </td></tr>
+<tr><td colspan="2"><h2><a name="pub-static-attribs"></a>
+Static Public Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static const unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Philox4x64__R.html#ac51193ab00b118b75784f86cf3470876">rounds</a> = ROUNDS</td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<h3>template<unsigned int ROUNDS><br/>
+ class r123::Philox4x64_R< ROUNDS ></h3>
+
+<p>exports the member functions, typedefs and operator overloads required by a <a class="el" href="CBRNG.html">CBRNG</a> class.</p>
+<p>The template argument, ROUNDS, is the number of times the Philox round function will be applied.</p>
+<p>As of September 2011, the authors know of no statistical flaws with ROUNDS=7 or more for Philox4x64. </p>
+<hr/><h2>Member Typedef Documentation</h2>
+<a class="anchor" id="afd5f78b34ae7c478ebe16eb601f7b202"></a><!-- doxytag: member="r123::Philox4x64_R::ctr_type" ref="afd5f78b34ae7c478ebe16eb601f7b202" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<unsigned int ROUNDS> </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="structr123array4x64.html">r123array4x64</a> <a class="el" href="structr123_1_1Philox4x64__R.html">r123::Philox4x64_R</a>< ROUNDS >::<a class="el" href="structr123array4x64.html">ctr_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a9947ce12e3d03f9a60396d79bb56ba1c"></a><!-- doxytag: member="r123::Philox4x64_R::key_type" ref="a9947ce12e3d03f9a60396d79bb56ba1c" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<unsigned int ROUNDS> </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="structr123array2x64.html">r123array2x64</a> <a class="el" href="structr123_1_1Philox4x64__R.html">r123::Philox4x64_R</a>< ROUNDS >::<a class="el" href="structr123array2x64.html">key_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a4715e37129fb4ca9d7671cb9df4fa8c5"></a><!-- doxytag: member="r123::Philox4x64_R::ukey_type" ref="a4715e37129fb4ca9d7671cb9df4fa8c5" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<unsigned int ROUNDS> </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="structr123array2x64.html">r123array2x64</a> <a class="el" href="structr123_1_1Philox4x64__R.html">r123::Philox4x64_R</a>< ROUNDS >::<a class="el" href="structr123array2x64.html">ukey_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="aa5a0488aa6e16c55b7647c155b18462c"></a><!-- doxytag: member="r123::Philox4x64_R::operator()" ref="aa5a0488aa6e16c55b7647c155b18462c" args="(ctr_type ctr, key_type key) const " -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<unsigned int ROUNDS> </div>
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array4x64.html">ctr_type</a> <a class="el" href="structr123_1_1Philox4x64__R.html">r123::Philox4x64_R</a>< ROUNDS >::operator() </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array4x64.html">ctr_type</a> </td>
+          <td class="paramname"> <em>ctr</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structr123array2x64.html">key_type</a> </td>
+          <td class="paramname"> <em>key</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/><h2>Member Data Documentation</h2>
+<a class="anchor" id="ac51193ab00b118b75784f86cf3470876"></a><!-- doxytag: member="r123::Philox4x64_R::rounds" ref="ac51193ab00b118b75784f86cf3470876" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<unsigned int ROUNDS> </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">const unsigned int <a class="el" href="structr123_1_1Philox4x64__R.html">r123::Philox4x64_R</a>< ROUNDS >::<a class="el" href="structr123_1_1Philox4x64__R.html#ac51193ab00b118b75784f86cf3470876">rounds</a> = ROUNDS<code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>Random123/<a class="el" href="philox_8h_source.html">philox.h</a></li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/structr123_1_1ReinterpretCtr-members.html b/docs/html/structr123_1_1ReinterpretCtr-members.html
new file mode 100644
index 0000000..aed2e61
--- /dev/null
+++ b/docs/html/structr123_1_1ReinterpretCtr-members.html
@@ -0,0 +1,83 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<h1>r123::ReinterpretCtr< ToType, CBRNG > Member List</h1>  </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="structr123_1_1ReinterpretCtr.html">r123::ReinterpretCtr< ToType, CBRNG ></a>, including all inherited members.<table>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1ReinterpretCtr.html#ae0accaee618b5eb28a24acd516b3a4c6">bctype</a> typedef</td><td><a class="el" href="structr123_1_1ReinterpretCtr.html">r123::ReinterpretCtr< ToType, CBRNG ></a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1ReinterpretCtr.html#a26cf9e933b35411c37070c948085ba02">ctr_type</a> typedef</td><td><a class="el" href="structr123_1_1ReinterpretCtr.html">r123::ReinterpretCtr< ToType, CBRNG ></a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1ReinterpretCtr.html#a470b21676ed709aa9d9ad524a67410f1">key_type</a> typedef</td><td><a class="el" href="structr123_1_1ReinterpretCtr.html">r123::ReinterpretCtr< ToType, CBRNG ></a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1ReinterpretCtr.html#a91edc5103397372cc5509ad17c0fc83a">operator()</a>(ctr_type c, key_type k)</td><td><a class="el" href="structr123_1_1ReinterpretCtr.html">r123::ReinterpretCtr< ToType, CBRNG ></a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123_1_1ReinterpretCtr.html#a4b0b69c1aa58d62bb22e51e16c586bee">ukey_type</a> typedef</td><td><a class="el" href="structr123_1_1ReinterpretCtr.html">r123::ReinterpretCtr< ToType, CBRNG ></a></td><td></td></tr>
+</table></div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/structr123_1_1ReinterpretCtr.html b/docs/html/structr123_1_1ReinterpretCtr.html
new file mode 100644
index 0000000..b62df4d
--- /dev/null
+++ b/docs/html/structr123_1_1ReinterpretCtr.html
@@ -0,0 +1,203 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: r123::ReinterpretCtr< ToType, CBRNG > Struct Template Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+  <div class="navpath">
+    <ul>
+      <li><a class="el" href="namespacer123.html">r123</a>      </li>
+      <li><a class="el" href="structr123_1_1ReinterpretCtr.html">r123::ReinterpretCtr< ToType, CBRNG ></a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="summary">
+<a href="#pub-types">Public Types</a> |
+<a href="#pub-methods">Public Member Functions</a>  </div>
+  <div class="headertitle">
+<h1>r123::ReinterpretCtr< ToType, CBRNG > Struct Template Reference</h1>  </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="r123::ReinterpretCtr" -->
+<p><code>#include <<a class="el" href="ReinterpretCtr_8hpp_source.html">Random123/ReinterpretCtr.hpp</a>></code></p>
+
+<p><a href="structr123_1_1ReinterpretCtr-members.html">List of all members.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-types"></a>
+Public Types</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef ToType </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1ReinterpretCtr.html#a26cf9e933b35411c37070c948085ba02">ctr_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef CBRNG::key_type </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1ReinterpretCtr.html#a470b21676ed709aa9d9ad524a67410f1">key_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef CBRNG::ctr_type </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1ReinterpretCtr.html#ae0accaee618b5eb28a24acd516b3a4c6">bctype</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef CBRNG::ukey_type </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1ReinterpretCtr.html#a4b0b69c1aa58d62bb22e51e16c586bee">ukey_type</a></td></tr>
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123_1_1ReinterpretCtr.html#a26cf9e933b35411c37070c948085ba02">ctr_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1ReinterpretCtr.html#a91edc5103397372cc5509ad17c0fc83a">operator()</a> (<a class="el" href="structr123_1_1ReinterpretCtr.html#a26cf9e933b35411c37070c948085ba02">ctr_type</a> c, <a class="el" href="structr123_1_1ReinterpretCtr.html#a470b21676ed709aa9d9 [...]
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<h3>template<typename ToType, typename CBRNG><br/>
+ struct r123::ReinterpretCtr< ToType, CBRNG ></h3>
+
+<p><a class="el" href="structr123_1_1ReinterpretCtr.html">ReinterpretCtr</a> uses memcpy to map back and forth between a CBRNG's ctr_type and the specified ToType. For example, after:</p>
+<p>typedef ReinterpretCtr<r123array4x32, Philox2x64> G;</p>
+<p>G is a bona fide CBRNG with ctr_type <a class="el" href="structr123array4x32.html">r123array4x32</a>.</p>
+<p>WARNING: <a class="el" href="structr123_1_1ReinterpretCtr.html">ReinterpretCtr</a> is endian dependent. The values returned by G, declared as above, will depend on the endianness of the machine on which it runs. </p>
+<hr/><h2>Member Typedef Documentation</h2>
+<a class="anchor" id="ae0accaee618b5eb28a24acd516b3a4c6"></a><!-- doxytag: member="r123::ReinterpretCtr::bctype" ref="ae0accaee618b5eb28a24acd516b3a4c6" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename ToType , typename CBRNG > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef CBRNG::ctr_type <a class="el" href="structr123_1_1ReinterpretCtr.html">r123::ReinterpretCtr</a>< ToType, CBRNG >::<a class="el" href="structr123_1_1ReinterpretCtr.html#ae0accaee618b5eb28a24acd516b3a4c6">bctype</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a26cf9e933b35411c37070c948085ba02"></a><!-- doxytag: member="r123::ReinterpretCtr::ctr_type" ref="a26cf9e933b35411c37070c948085ba02" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename ToType , typename CBRNG > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef ToType <a class="el" href="structr123_1_1ReinterpretCtr.html">r123::ReinterpretCtr</a>< ToType, CBRNG >::<a class="el" href="structr123_1_1ReinterpretCtr.html#a26cf9e933b35411c37070c948085ba02">ctr_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a470b21676ed709aa9d9ad524a67410f1"></a><!-- doxytag: member="r123::ReinterpretCtr::key_type" ref="a470b21676ed709aa9d9ad524a67410f1" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename ToType , typename CBRNG > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef CBRNG::key_type <a class="el" href="structr123_1_1ReinterpretCtr.html">r123::ReinterpretCtr</a>< ToType, CBRNG >::<a class="el" href="structr123_1_1ReinterpretCtr.html#a470b21676ed709aa9d9ad524a67410f1">key_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a4b0b69c1aa58d62bb22e51e16c586bee"></a><!-- doxytag: member="r123::ReinterpretCtr::ukey_type" ref="a4b0b69c1aa58d62bb22e51e16c586bee" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename ToType , typename CBRNG > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef CBRNG::ukey_type <a class="el" href="structr123_1_1ReinterpretCtr.html">r123::ReinterpretCtr</a>< ToType, CBRNG >::<a class="el" href="structr123_1_1ReinterpretCtr.html#a4b0b69c1aa58d62bb22e51e16c586bee">ukey_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="a91edc5103397372cc5509ad17c0fc83a"></a><!-- doxytag: member="r123::ReinterpretCtr::operator()" ref="a91edc5103397372cc5509ad17c0fc83a" args="(ctr_type c, key_type k)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename ToType , typename CBRNG > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123_1_1ReinterpretCtr.html#a26cf9e933b35411c37070c948085ba02">ctr_type</a> <a class="el" href="structr123_1_1ReinterpretCtr.html">r123::ReinterpretCtr</a>< ToType, CBRNG >::operator() </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123_1_1ReinterpretCtr.html#a26cf9e933b35411c37070c948085ba02">ctr_type</a> </td>
+          <td class="paramname"> <em>c</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structr123_1_1ReinterpretCtr.html#a470b21676ed709aa9d9ad524a67410f1">key_type</a> </td>
+          <td class="paramname"> <em>k</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li>Random123/<a class="el" href="ReinterpretCtr_8hpp_source.html">ReinterpretCtr.hpp</a></li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/structr123_1_1Threefry2x32__R.html b/docs/html/structr123_1_1Threefry2x32__R.html
new file mode 100644
index 0000000..45b1427
--- /dev/null
+++ b/docs/html/structr123_1_1Threefry2x32__R.html
@@ -0,0 +1,209 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: r123::Threefry2x32_R< R > Class Template Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+  <div class="navpath">
+    <ul>
+      <li><a class="el" href="namespacer123.html">r123</a>      </li>
+      <li><a class="el" href="structr123_1_1Threefry2x32__R.html">r123::Threefry2x32_R< R ></a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="summary">
+<a href="#pub-types">Public Types</a> |
+<a href="#pub-methods">Public Member Functions</a> |
+<a href="#pub-static-attribs">Static Public Attributes</a>  </div>
+  <div class="headertitle">
+<h1>r123::Threefry2x32_R< R > Class Template Reference<br/>
+<small>
+[<a class="el" href="group__ThreefryNxW.html">Threefry Classes and Typedefs</a>]</small>
+</h1>  </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="r123::Threefry2x32_R" -->
+<p><code>#include <<a class="el" href="threefry_8h_source.html">Random123/threefry.h</a>></code></p>
+
+<p><a href="classr123_1_1Threefry2x32__R-members.html">List of all members.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-types"></a>
+Public Types</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123array2x32.html">threefry2x32_ctr_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Threefry2x32__R.html#a60b1b58aeaa05d467607dc570aed1357">ctr_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123array2x32.html">threefry2x32_key_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Threefry2x32__R.html#abfaaff871ef5e2e2cf397884ddab4cdc">key_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123array2x32.html">threefry2x32_key_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Threefry2x32__R.html#a3ab3969f7445f9fe935566fdc017c5ca">ukey_type</a></td></tr>
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array2x32.html">ctr_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Threefry2x32__R.html#a64b8018e82f3e7a0e252166b15b42a71">operator()</a> (<a class="el" href="structr123array2x32.html">ctr_type</a> ctr, <a class="el" href="structr123array2x32.html">key_type</a> key)</td></tr>
+<tr><td colspan="2"><h2><a name="pub-static-attribs"></a>
+Static Public Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static const unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Threefry2x32__R.html#af5be46f8426cfcd86e75327e4b3750b0">rounds</a> = R</td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<h3>template<unsigned int R><br/>
+ class r123::Threefry2x32_R< R ></h3>
+
+<p>exports the member functions, typedefs and operator overloads required by a <a class="el" href="CBRNG.html">CBRNG</a> class.</p>
+<p>The template argument, ROUNDS, is the number of times the Threefry round function will be applied.</p>
+<p>As of September 2011, the authors know of no statistical flaws with ROUNDS=13 or more for Threefry2x32. </p>
+<hr/><h2>Member Typedef Documentation</h2>
+<a class="anchor" id="a60b1b58aeaa05d467607dc570aed1357"></a><!-- doxytag: member="r123::Threefry2x32_R::ctr_type" ref="a60b1b58aeaa05d467607dc570aed1357" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<unsigned int R> </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="structr123array2x32.html">threefry2x32_ctr_t</a> <a class="el" href="structr123_1_1Threefry2x32__R.html">r123::Threefry2x32_R</a>< R >::<a class="el" href="structr123array2x32.html">ctr_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="abfaaff871ef5e2e2cf397884ddab4cdc"></a><!-- doxytag: member="r123::Threefry2x32_R::key_type" ref="abfaaff871ef5e2e2cf397884ddab4cdc" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<unsigned int R> </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="structr123array2x32.html">threefry2x32_key_t</a> <a class="el" href="structr123_1_1Threefry2x32__R.html">r123::Threefry2x32_R</a>< R >::<a class="el" href="structr123array2x32.html">key_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a3ab3969f7445f9fe935566fdc017c5ca"></a><!-- doxytag: member="r123::Threefry2x32_R::ukey_type" ref="a3ab3969f7445f9fe935566fdc017c5ca" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<unsigned int R> </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="structr123array2x32.html">threefry2x32_key_t</a> <a class="el" href="structr123_1_1Threefry2x32__R.html">r123::Threefry2x32_R</a>< R >::<a class="el" href="structr123array2x32.html">ukey_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="a64b8018e82f3e7a0e252166b15b42a71"></a><!-- doxytag: member="r123::Threefry2x32_R::operator()" ref="a64b8018e82f3e7a0e252166b15b42a71" args="(ctr_type ctr, key_type key)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<unsigned int R> </div>
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array2x32.html">ctr_type</a> <a class="el" href="structr123_1_1Threefry2x32__R.html">r123::Threefry2x32_R</a>< R >::operator() </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array2x32.html">ctr_type</a> </td>
+          <td class="paramname"> <em>ctr</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structr123array2x32.html">key_type</a> </td>
+          <td class="paramname"> <em>key</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/><h2>Member Data Documentation</h2>
+<a class="anchor" id="af5be46f8426cfcd86e75327e4b3750b0"></a><!-- doxytag: member="r123::Threefry2x32_R::rounds" ref="af5be46f8426cfcd86e75327e4b3750b0" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<unsigned int R> </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">const unsigned int <a class="el" href="structr123_1_1Threefry2x32__R.html">r123::Threefry2x32_R</a>< R >::<a class="el" href="structr123_1_1Threefry2x32__R.html#af5be46f8426cfcd86e75327e4b3750b0">rounds</a> = R<code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>Random123/<a class="el" href="threefry_8h_source.html">threefry.h</a></li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/structr123_1_1Threefry2x64__R.html b/docs/html/structr123_1_1Threefry2x64__R.html
new file mode 100644
index 0000000..3d0cc36
--- /dev/null
+++ b/docs/html/structr123_1_1Threefry2x64__R.html
@@ -0,0 +1,209 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: r123::Threefry2x64_R< R > Class Template Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+  <div class="navpath">
+    <ul>
+      <li><a class="el" href="namespacer123.html">r123</a>      </li>
+      <li><a class="el" href="structr123_1_1Threefry2x64__R.html">r123::Threefry2x64_R< R ></a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="summary">
+<a href="#pub-types">Public Types</a> |
+<a href="#pub-methods">Public Member Functions</a> |
+<a href="#pub-static-attribs">Static Public Attributes</a>  </div>
+  <div class="headertitle">
+<h1>r123::Threefry2x64_R< R > Class Template Reference<br/>
+<small>
+[<a class="el" href="group__ThreefryNxW.html">Threefry Classes and Typedefs</a>]</small>
+</h1>  </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="r123::Threefry2x64_R" -->
+<p><code>#include <<a class="el" href="threefry_8h_source.html">Random123/threefry.h</a>></code></p>
+
+<p><a href="classr123_1_1Threefry2x64__R-members.html">List of all members.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-types"></a>
+Public Types</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123array2x64.html">threefry2x64_ctr_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Threefry2x64__R.html#a6b151f30bc5544671596b9df91e896d8">ctr_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123array2x64.html">threefry2x64_key_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Threefry2x64__R.html#ae652f0e9ca6ec234fd2f4fc9afb1007c">key_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123array2x64.html">threefry2x64_key_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Threefry2x64__R.html#a57db271865ab1889c8f569fb053ee66d">ukey_type</a></td></tr>
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array2x64.html">ctr_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Threefry2x64__R.html#ab654a85f2c4ec65548ddfc85dc00f27e">operator()</a> (<a class="el" href="structr123array2x64.html">ctr_type</a> ctr, <a class="el" href="structr123array2x64.html">key_type</a> key)</td></tr>
+<tr><td colspan="2"><h2><a name="pub-static-attribs"></a>
+Static Public Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static const unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Threefry2x64__R.html#aa994d756504284e6a59cc8d3c57f16c6">rounds</a> = R</td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<h3>template<unsigned int R><br/>
+ class r123::Threefry2x64_R< R ></h3>
+
+<p>exports the member functions, typedefs and operator overloads required by a <a class="el" href="CBRNG.html">CBRNG</a> class.</p>
+<p>The template argument, ROUNDS, is the number of times the Threefry round function will be applied.</p>
+<p>In November 2011, the authors discovered that 13 rounds of Threefry2x64 sequenced by strided, interleaved key and counter increments failed a very long (longer than the default BigCrush length) WeightDistrub test. At the same time, it was confirmed that 14 rounds passes much longer tests (up to 5x10^12 samples) of a similar nature. The authors know of no statistical flaws with ROUNDS=14 or more for Threefry2x64. </p>
+<hr/><h2>Member Typedef Documentation</h2>
+<a class="anchor" id="a6b151f30bc5544671596b9df91e896d8"></a><!-- doxytag: member="r123::Threefry2x64_R::ctr_type" ref="a6b151f30bc5544671596b9df91e896d8" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<unsigned int R> </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="structr123array2x64.html">threefry2x64_ctr_t</a> <a class="el" href="structr123_1_1Threefry2x64__R.html">r123::Threefry2x64_R</a>< R >::<a class="el" href="structr123array2x64.html">ctr_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae652f0e9ca6ec234fd2f4fc9afb1007c"></a><!-- doxytag: member="r123::Threefry2x64_R::key_type" ref="ae652f0e9ca6ec234fd2f4fc9afb1007c" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<unsigned int R> </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="structr123array2x64.html">threefry2x64_key_t</a> <a class="el" href="structr123_1_1Threefry2x64__R.html">r123::Threefry2x64_R</a>< R >::<a class="el" href="structr123array2x64.html">key_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a57db271865ab1889c8f569fb053ee66d"></a><!-- doxytag: member="r123::Threefry2x64_R::ukey_type" ref="a57db271865ab1889c8f569fb053ee66d" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<unsigned int R> </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="structr123array2x64.html">threefry2x64_key_t</a> <a class="el" href="structr123_1_1Threefry2x64__R.html">r123::Threefry2x64_R</a>< R >::<a class="el" href="structr123array2x64.html">ukey_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="ab654a85f2c4ec65548ddfc85dc00f27e"></a><!-- doxytag: member="r123::Threefry2x64_R::operator()" ref="ab654a85f2c4ec65548ddfc85dc00f27e" args="(ctr_type ctr, key_type key)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<unsigned int R> </div>
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array2x64.html">ctr_type</a> <a class="el" href="structr123_1_1Threefry2x64__R.html">r123::Threefry2x64_R</a>< R >::operator() </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array2x64.html">ctr_type</a> </td>
+          <td class="paramname"> <em>ctr</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structr123array2x64.html">key_type</a> </td>
+          <td class="paramname"> <em>key</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/><h2>Member Data Documentation</h2>
+<a class="anchor" id="aa994d756504284e6a59cc8d3c57f16c6"></a><!-- doxytag: member="r123::Threefry2x64_R::rounds" ref="aa994d756504284e6a59cc8d3c57f16c6" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<unsigned int R> </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">const unsigned int <a class="el" href="structr123_1_1Threefry2x64__R.html">r123::Threefry2x64_R</a>< R >::<a class="el" href="structr123_1_1Threefry2x64__R.html#aa994d756504284e6a59cc8d3c57f16c6">rounds</a> = R<code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>Random123/<a class="el" href="threefry_8h_source.html">threefry.h</a></li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/structr123_1_1Threefry4x32__R.html b/docs/html/structr123_1_1Threefry4x32__R.html
new file mode 100644
index 0000000..ff16ab2
--- /dev/null
+++ b/docs/html/structr123_1_1Threefry4x32__R.html
@@ -0,0 +1,209 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: r123::Threefry4x32_R< R > Class Template Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+  <div class="navpath">
+    <ul>
+      <li><a class="el" href="namespacer123.html">r123</a>      </li>
+      <li><a class="el" href="structr123_1_1Threefry4x32__R.html">r123::Threefry4x32_R< R ></a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="summary">
+<a href="#pub-types">Public Types</a> |
+<a href="#pub-methods">Public Member Functions</a> |
+<a href="#pub-static-attribs">Static Public Attributes</a>  </div>
+  <div class="headertitle">
+<h1>r123::Threefry4x32_R< R > Class Template Reference<br/>
+<small>
+[<a class="el" href="group__ThreefryNxW.html">Threefry Classes and Typedefs</a>]</small>
+</h1>  </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="r123::Threefry4x32_R" -->
+<p><code>#include <<a class="el" href="threefry_8h_source.html">Random123/threefry.h</a>></code></p>
+
+<p><a href="classr123_1_1Threefry4x32__R-members.html">List of all members.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-types"></a>
+Public Types</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123array4x32.html">threefry4x32_ctr_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Threefry4x32__R.html#ae89dabc0060c62e0d9e5c4ac34a8550f">ctr_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123array4x32.html">threefry4x32_key_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Threefry4x32__R.html#a140f5cf20bde7784d778b82f0ebf8778">key_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123array4x32.html">threefry4x32_key_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Threefry4x32__R.html#aab22e360de3f5e13f018ccf3a6754a8f">ukey_type</a></td></tr>
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array4x32.html">ctr_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Threefry4x32__R.html#ae0dfbf399015fab602c769ad90256231">operator()</a> (<a class="el" href="structr123array4x32.html">ctr_type</a> ctr, <a class="el" href="structr123array4x32.html">key_type</a> key)</td></tr>
+<tr><td colspan="2"><h2><a name="pub-static-attribs"></a>
+Static Public Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static const unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Threefry4x32__R.html#af63fd38ba9acf04ee56d75e96b413291">rounds</a> = R</td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<h3>template<unsigned int R><br/>
+ class r123::Threefry4x32_R< R ></h3>
+
+<p>exports the member functions, typedefs and operator overloads required by a <a class="el" href="CBRNG.html">CBRNG</a> class.</p>
+<p>The template argument, ROUNDS, is the number of times the Threefry round function will be applied.</p>
+<p>As of September 2011, the authors know of no statistical flaws with ROUNDS=12 or more for Threefry4x32. </p>
+<hr/><h2>Member Typedef Documentation</h2>
+<a class="anchor" id="ae89dabc0060c62e0d9e5c4ac34a8550f"></a><!-- doxytag: member="r123::Threefry4x32_R::ctr_type" ref="ae89dabc0060c62e0d9e5c4ac34a8550f" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<unsigned int R> </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="structr123array4x32.html">threefry4x32_ctr_t</a> <a class="el" href="structr123_1_1Threefry4x32__R.html">r123::Threefry4x32_R</a>< R >::<a class="el" href="structr123array4x32.html">ctr_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a140f5cf20bde7784d778b82f0ebf8778"></a><!-- doxytag: member="r123::Threefry4x32_R::key_type" ref="a140f5cf20bde7784d778b82f0ebf8778" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<unsigned int R> </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="structr123array4x32.html">threefry4x32_key_t</a> <a class="el" href="structr123_1_1Threefry4x32__R.html">r123::Threefry4x32_R</a>< R >::<a class="el" href="structr123array4x32.html">key_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aab22e360de3f5e13f018ccf3a6754a8f"></a><!-- doxytag: member="r123::Threefry4x32_R::ukey_type" ref="aab22e360de3f5e13f018ccf3a6754a8f" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<unsigned int R> </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="structr123array4x32.html">threefry4x32_key_t</a> <a class="el" href="structr123_1_1Threefry4x32__R.html">r123::Threefry4x32_R</a>< R >::<a class="el" href="structr123array4x32.html">ukey_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="ae0dfbf399015fab602c769ad90256231"></a><!-- doxytag: member="r123::Threefry4x32_R::operator()" ref="ae0dfbf399015fab602c769ad90256231" args="(ctr_type ctr, key_type key)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<unsigned int R> </div>
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array4x32.html">ctr_type</a> <a class="el" href="structr123_1_1Threefry4x32__R.html">r123::Threefry4x32_R</a>< R >::operator() </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array4x32.html">ctr_type</a> </td>
+          <td class="paramname"> <em>ctr</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structr123array4x32.html">key_type</a> </td>
+          <td class="paramname"> <em>key</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/><h2>Member Data Documentation</h2>
+<a class="anchor" id="af63fd38ba9acf04ee56d75e96b413291"></a><!-- doxytag: member="r123::Threefry4x32_R::rounds" ref="af63fd38ba9acf04ee56d75e96b413291" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<unsigned int R> </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">const unsigned int <a class="el" href="structr123_1_1Threefry4x32__R.html">r123::Threefry4x32_R</a>< R >::<a class="el" href="structr123_1_1Threefry4x32__R.html#af63fd38ba9acf04ee56d75e96b413291">rounds</a> = R<code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>Random123/<a class="el" href="threefry_8h_source.html">threefry.h</a></li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/structr123_1_1Threefry4x64__R.html b/docs/html/structr123_1_1Threefry4x64__R.html
new file mode 100644
index 0000000..f323938
--- /dev/null
+++ b/docs/html/structr123_1_1Threefry4x64__R.html
@@ -0,0 +1,209 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: r123::Threefry4x64_R< R > Class Template Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+  <div class="navpath">
+    <ul>
+      <li><a class="el" href="namespacer123.html">r123</a>      </li>
+      <li><a class="el" href="structr123_1_1Threefry4x64__R.html">r123::Threefry4x64_R< R ></a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="summary">
+<a href="#pub-types">Public Types</a> |
+<a href="#pub-methods">Public Member Functions</a> |
+<a href="#pub-static-attribs">Static Public Attributes</a>  </div>
+  <div class="headertitle">
+<h1>r123::Threefry4x64_R< R > Class Template Reference<br/>
+<small>
+[<a class="el" href="group__ThreefryNxW.html">Threefry Classes and Typedefs</a>]</small>
+</h1>  </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="r123::Threefry4x64_R" -->
+<p><code>#include <<a class="el" href="threefry_8h_source.html">Random123/threefry.h</a>></code></p>
+
+<p><a href="classr123_1_1Threefry4x64__R-members.html">List of all members.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-types"></a>
+Public Types</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123array4x64.html">threefry4x64_ctr_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Threefry4x64__R.html#a6c93334cb8a8b53ef01cc79b5296af0d">ctr_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123array4x64.html">threefry4x64_key_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Threefry4x64__R.html#adb406d1af0e757bd8058582ee39f21dc">key_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123array4x64.html">threefry4x64_key_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Threefry4x64__R.html#a087ff88f84d115a6a726e008c6dcc325">ukey_type</a></td></tr>
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array4x64.html">ctr_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Threefry4x64__R.html#a09e7fb82f9b7bcf6ccb4d849116b6ec1">operator()</a> (<a class="el" href="structr123array4x64.html">ctr_type</a> ctr, <a class="el" href="structr123array4x64.html">key_type</a> key)</td></tr>
+<tr><td colspan="2"><h2><a name="pub-static-attribs"></a>
+Static Public Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static const unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Threefry4x64__R.html#ab8807960eec8fc2198055ec2a971e116">rounds</a> = R</td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<h3>template<unsigned int R><br/>
+ class r123::Threefry4x64_R< R ></h3>
+
+<p>exports the member functions, typedefs and operator overloads required by a <a class="el" href="CBRNG.html">CBRNG</a> class.</p>
+<p>The template argument, ROUNDS, is the number of times the Threefry round function will be applied.</p>
+<p>As of September 2011, the authors know of no statistical flaws with ROUNDS=12 or more for Threefry4x64. </p>
+<hr/><h2>Member Typedef Documentation</h2>
+<a class="anchor" id="a6c93334cb8a8b53ef01cc79b5296af0d"></a><!-- doxytag: member="r123::Threefry4x64_R::ctr_type" ref="a6c93334cb8a8b53ef01cc79b5296af0d" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<unsigned int R> </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="structr123array4x64.html">threefry4x64_ctr_t</a> <a class="el" href="structr123_1_1Threefry4x64__R.html">r123::Threefry4x64_R</a>< R >::<a class="el" href="structr123array4x64.html">ctr_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="adb406d1af0e757bd8058582ee39f21dc"></a><!-- doxytag: member="r123::Threefry4x64_R::key_type" ref="adb406d1af0e757bd8058582ee39f21dc" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<unsigned int R> </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="structr123array4x64.html">threefry4x64_key_t</a> <a class="el" href="structr123_1_1Threefry4x64__R.html">r123::Threefry4x64_R</a>< R >::<a class="el" href="structr123array4x64.html">key_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a087ff88f84d115a6a726e008c6dcc325"></a><!-- doxytag: member="r123::Threefry4x64_R::ukey_type" ref="a087ff88f84d115a6a726e008c6dcc325" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<unsigned int R> </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="structr123array4x64.html">threefry4x64_key_t</a> <a class="el" href="structr123_1_1Threefry4x64__R.html">r123::Threefry4x64_R</a>< R >::<a class="el" href="structr123array4x64.html">ukey_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="a09e7fb82f9b7bcf6ccb4d849116b6ec1"></a><!-- doxytag: member="r123::Threefry4x64_R::operator()" ref="a09e7fb82f9b7bcf6ccb4d849116b6ec1" args="(ctr_type ctr, key_type key)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<unsigned int R> </div>
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array4x64.html">ctr_type</a> <a class="el" href="structr123_1_1Threefry4x64__R.html">r123::Threefry4x64_R</a>< R >::operator() </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array4x64.html">ctr_type</a> </td>
+          <td class="paramname"> <em>ctr</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structr123array4x64.html">key_type</a> </td>
+          <td class="paramname"> <em>key</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/><h2>Member Data Documentation</h2>
+<a class="anchor" id="ab8807960eec8fc2198055ec2a971e116"></a><!-- doxytag: member="r123::Threefry4x64_R::rounds" ref="ab8807960eec8fc2198055ec2a971e116" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<unsigned int R> </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">const unsigned int <a class="el" href="structr123_1_1Threefry4x64__R.html">r123::Threefry4x64_R</a>< R >::<a class="el" href="structr123_1_1Threefry4x64__R.html#ab8807960eec8fc2198055ec2a971e116">rounds</a> = R<code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>Random123/<a class="el" href="threefry_8h_source.html">threefry.h</a></li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/structr123array16x8-members.html b/docs/html/structr123array16x8-members.html
new file mode 100644
index 0000000..be89393
--- /dev/null
+++ b/docs/html/structr123array16x8-members.html
@@ -0,0 +1,123 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<h1>r123array16x8 Member List</h1>  </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="structr123array16x8.html">r123array16x8</a>, including all inherited members.<table>
+  <tr class="memlist"><td><a class="el" href="structr123array16x8.html#a7742edac513767b0f3ca6abe1a3eabb7">at</a>(size_type i)</td><td><a class="el" href="structr123array16x8.html">r123array16x8</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array16x8.html#a088dbabe23cf873de370af292052905e">at</a>(size_type i) const </td><td><a class="el" href="structr123array16x8.html">r123array16x8</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array16x8.html#ae607d3b3d068aec88672241fc97948cb">back</a>()</td><td><a class="el" href="structr123array16x8.html">r123array16x8</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array16x8.html#a6e5e98c20ae0e6bf4f8a897c08b0700e">back</a>() const </td><td><a class="el" href="structr123array16x8.html">r123array16x8</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array16x8.html#a43182e95cb41660de5511bb5a3968cb8">begin</a>()</td><td><a class="el" href="structr123array16x8.html">r123array16x8</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array16x8.html#acef590bcf52e4a167c2388f4d1e0b20e">begin</a>() const </td><td><a class="el" href="structr123array16x8.html">r123array16x8</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array16x8.html#a80520b3d7040a8d6ec7068c8a143ba6f">cbegin</a>() const </td><td><a class="el" href="structr123array16x8.html">r123array16x8</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array16x8.html#ad7919a7f772fda7d3fe3b476ac1e058f">cend</a>() const </td><td><a class="el" href="structr123array16x8.html">r123array16x8</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array16x8.html#adda842a447360852f2ffa28fb97eb40c">const_iterator</a> typedef</td><td><a class="el" href="structr123array16x8.html">r123array16x8</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array16x8.html#adbe5a6feb583ce6a682496e14cec9cca">const_pointer</a> typedef</td><td><a class="el" href="structr123array16x8.html">r123array16x8</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array16x8.html#a7252c320f8b0fb4d66a17acd9e94b4ad">const_reference</a> typedef</td><td><a class="el" href="structr123array16x8.html">r123array16x8</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array16x8.html#a7a774fcb52f452f832e11e13dbde6dea">const_reverse_iterator</a> typedef</td><td><a class="el" href="structr123array16x8.html">r123array16x8</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array16x8.html#a2ecc3c23f3ae3939a386b334f0556d73">crbegin</a>() const </td><td><a class="el" href="structr123array16x8.html">r123array16x8</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array16x8.html#a2a98e77e851e130a98d44a14ce673ffd">crend</a>() const </td><td><a class="el" href="structr123array16x8.html">r123array16x8</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array16x8.html#aac0eda610fbd60cdaae5d1e2aa4eb03f">data</a>()</td><td><a class="el" href="structr123array16x8.html">r123array16x8</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array16x8.html#aced4f7455fcc853a4e947b9bf892c45e">data</a>() const </td><td><a class="el" href="structr123array16x8.html">r123array16x8</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array16x8.html#aaae0b6c18de6ce92ea55bf1b9bdbdf69">difference_type</a> typedef</td><td><a class="el" href="structr123array16x8.html">r123array16x8</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array16x8.html#a5f07441771ec90cd05a2c26fb64e575e">empty</a>() const </td><td><a class="el" href="structr123array16x8.html">r123array16x8</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array16x8.html#aa0d2b0c70133dde0535b0a5e12283626">end</a>()</td><td><a class="el" href="structr123array16x8.html">r123array16x8</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array16x8.html#aee42dddf2a59858114a31d760f2c1227">end</a>() const </td><td><a class="el" href="structr123array16x8.html">r123array16x8</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array16x8.html#a883d42092ab4bae2eac132706ed06103">fill</a>(const value_type &val)</td><td><a class="el" href="structr123array16x8.html">r123array16x8</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array16x8.html#ad293e6494e131ff96941e963d9208586">front</a>()</td><td><a class="el" href="structr123array16x8.html">r123array16x8</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array16x8.html#a85528130b6941b3f7b57265c201345c2">front</a>() const </td><td><a class="el" href="structr123array16x8.html">r123array16x8</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array16x8.html#aaf2d677b347b7c7bf362a2b318f46e3c">incr</a>(uint64_t n=1)</td><td><a class="el" href="structr123array16x8.html">r123array16x8</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array16x8.html#abbc6c2d9cdc2187cdfdea759951498a0">incr_carefully</a>(uint64_t n)</td><td><a class="el" href="structr123array16x8.html">r123array16x8</a></td><td><code> [inline, protected]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array16x8.html#a36bdba5b2d96c8dfe9b7e59b203d5047">iterator</a> typedef</td><td><a class="el" href="structr123array16x8.html">r123array16x8</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array16x8.html#a3f59fb2b338aa8e33879e8d2d22840ed">max_size</a>() const </td><td><a class="el" href="structr123array16x8.html">r123array16x8</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array16x8.html#af48be55844748a0f6406b2ae437398b5">operator!=</a>(const r123array16x8 &rhs) const </td><td><a class="el" href="structr123array16x8.html">r123array16x8</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array16x8.html#a4d3ed48f2b716382ea874a968a2b7174">operator==</a>(const r123array16x8 &rhs) const </td><td><a class="el" href="structr123array16x8.html">r123array16x8</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array16x8.html#abe9f2b18e2e3b89e00725f6fa69b8236">operator[]</a>(size_type i)</td><td><a class="el" href="structr123array16x8.html">r123array16x8</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array16x8.html#a013713c00f6e8a5adb7be77388c22d8f">operator[]</a>(size_type i) const </td><td><a class="el" href="structr123array16x8.html">r123array16x8</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array16x8.html#aa6ae2e4843b3bb1b66425afa7da9e281">pointer</a> typedef</td><td><a class="el" href="structr123array16x8.html">r123array16x8</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array16x8.html#a5023769f3e418e15a707501aaaac5487">rbegin</a>()</td><td><a class="el" href="structr123array16x8.html">r123array16x8</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array16x8.html#a5da4b6af6ebaf8cc8204713a993a860c">rbegin</a>() const </td><td><a class="el" href="structr123array16x8.html">r123array16x8</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array16x8.html#adf010ea54bc2f9dceb8568d59c6dde8a">reference</a> typedef</td><td><a class="el" href="structr123array16x8.html">r123array16x8</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array16x8.html#a252b937d65e7b04e5bc507d43643441f">rend</a>()</td><td><a class="el" href="structr123array16x8.html">r123array16x8</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array16x8.html#a286fef704fcf11e9f00d73703b7ab36b">rend</a>() const </td><td><a class="el" href="structr123array16x8.html">r123array16x8</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array16x8.html#aeeb5d6d55c07a515e4c7d01cb5c5351b">reverse_iterator</a> typedef</td><td><a class="el" href="structr123array16x8.html">r123array16x8</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array16x8.html#aef0741829d359c31ad913a6770661895">seed</a>(SeedSeq &ss)</td><td><a class="el" href="structr123array16x8.html">r123array16x8</a></td><td><code> [inline, static]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array16x8.html#a9a31da5cdf154eba3e44af4e51002a15">size</a>() const </td><td><a class="el" href="structr123array16x8.html">r123array16x8</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array16x8.html#ae892bee1409b006ec01597c0e1f22952">size_type</a> typedef</td><td><a class="el" href="structr123array16x8.html">r123array16x8</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array16x8.html#a7b2912a12e57bc62644a8ce57e2301b2af0ee079d4b47a988dcd2b8b8457f266f">static_size</a> enum value</td><td><a class="el" href="structr123array16x8.html">r123array16x8</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array16x8.html#a2de9273e9c4b4c47315cb20885e9c6ed">swap</a>(r123array16x8 &rhs)</td><td><a class="el" href="structr123array16x8.html">r123array16x8</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array16x8.html#a703776a5f85fb222e16b739309489783">v</a></td><td><a class="el" href="structr123array16x8.html">r123array16x8</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array16x8.html#ad1d7184f51cafaff4714a2dcf60c9ae2">value_type</a> typedef</td><td><a class="el" href="structr123array16x8.html">r123array16x8</a></td><td></td></tr>
+</table></div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/structr123array16x8.html b/docs/html/structr123array16x8.html
new file mode 100644
index 0000000..41dabb8
--- /dev/null
+++ b/docs/html/structr123array16x8.html
@@ -0,0 +1,892 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: r123array16x8 Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="summary">
+<a href="#pub-types">Public Types</a> |
+<a href="#pub-methods">Public Member Functions</a> |
+<a href="#pub-static-methods">Static Public Member Functions</a> |
+<a href="#pub-attribs">Public Attributes</a> |
+<a href="#pro-methods">Protected Member Functions</a>  </div>
+  <div class="headertitle">
+<h1>r123array16x8 Struct Reference<br/>
+<small>
+[<a class="el" href="group__arrayNxW.html">The r123arrayNxW classes</a>]</small>
+</h1>  </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="r123array16x8" -->
+<p><code>#include <<a class="el" href="array_8h_source.html">Random123/array.h</a>></code></p>
+
+<p><a href="structr123array16x8-members.html">List of all members.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-types"></a>
+Public Types</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom">{ <a class="el" href="structr123array16x8.html#a7b2912a12e57bc62644a8ce57e2301b2af0ee079d4b47a988dcd2b8b8457f266f">static_size</a> =  16
+ }</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array16x8.html#ad1d7184f51cafaff4714a2dcf60c9ae2">value_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef uint8_t * </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array16x8.html#a36bdba5b2d96c8dfe9b7e59b203d5047">iterator</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef const uint8_t * </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array16x8.html#adda842a447360852f2ffa28fb97eb40c">const_iterator</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123array16x8.html#ad1d7184f51cafaff4714a2dcf60c9ae2">value_type</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array16x8.html#adf010ea54bc2f9dceb8568d59c6dde8a">reference</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef const <a class="el" href="structr123array16x8.html#ad1d7184f51cafaff4714a2dcf60c9ae2">value_type</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array16x8.html#a7252c320f8b0fb4d66a17acd9e94b4ad">const_reference</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array16x8.html#ae892bee1409b006ec01597c0e1f22952">size_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef ptrdiff_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array16x8.html#aaae0b6c18de6ce92ea55bf1b9bdbdf69">difference_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef uint8_t * </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array16x8.html#aa6ae2e4843b3bb1b66425afa7da9e281">pointer</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef const uint8_t * </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array16x8.html#adbe5a6feb583ce6a682496e14cec9cca">const_pointer</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef std::reverse_iterator<br class="typebreak"/>
+< <a class="el" href="structr123array16x8.html#a36bdba5b2d96c8dfe9b7e59b203d5047">iterator</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array16x8.html#aeeb5d6d55c07a515e4c7d01cb5c5351b">reverse_iterator</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef std::reverse_iterator<br class="typebreak"/>
+< <a class="el" href="structr123array16x8.html#adda842a447360852f2ffa28fb97eb40c">const_iterator</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array16x8.html#a7a774fcb52f452f832e11e13dbde6dea">const_reverse_iterator</a></td></tr>
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array16x8.html#adf010ea54bc2f9dceb8568d59c6dde8a">reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array16x8.html#abe9f2b18e2e3b89e00725f6fa69b8236">operator[]</a> (<a class="el" href="structr123array16x8.html#ae892bee1409b006ec01597c0e1f22952">size_type</a> i)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array16x8.html#a7252c320f8b0fb4d66a17acd9e94b4ad">const_reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array16x8.html#a013713c00f6e8a5adb7be77388c22d8f">operator[]</a> (<a class="el" href="structr123array16x8.html#ae892bee1409b006ec01597c0e1f22952">size_type</a> i) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array16x8.html#adf010ea54bc2f9dceb8568d59c6dde8a">reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array16x8.html#a7742edac513767b0f3ca6abe1a3eabb7">at</a> (<a class="el" href="structr123array16x8.html#ae892bee1409b006ec01597c0e1f22952">size_type</a> i)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array16x8.html#a7252c320f8b0fb4d66a17acd9e94b4ad">const_reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array16x8.html#a088dbabe23cf873de370af292052905e">at</a> (<a class="el" href="structr123array16x8.html#ae892bee1409b006ec01597c0e1f22952">size_type</a> i) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array16x8.html#ae892bee1409b006ec01597c0e1f22952">size_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array16x8.html#a9a31da5cdf154eba3e44af4e51002a15">size</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array16x8.html#ae892bee1409b006ec01597c0e1f22952">size_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array16x8.html#a3f59fb2b338aa8e33879e8d2d22840ed">max_size</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array16x8.html#a5f07441771ec90cd05a2c26fb64e575e">empty</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array16x8.html#a36bdba5b2d96c8dfe9b7e59b203d5047">iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array16x8.html#a43182e95cb41660de5511bb5a3968cb8">begin</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array16x8.html#a36bdba5b2d96c8dfe9b7e59b203d5047">iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array16x8.html#aa0d2b0c70133dde0535b0a5e12283626">end</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array16x8.html#adda842a447360852f2ffa28fb97eb40c">const_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array16x8.html#acef590bcf52e4a167c2388f4d1e0b20e">begin</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array16x8.html#adda842a447360852f2ffa28fb97eb40c">const_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array16x8.html#aee42dddf2a59858114a31d760f2c1227">end</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array16x8.html#adda842a447360852f2ffa28fb97eb40c">const_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array16x8.html#a80520b3d7040a8d6ec7068c8a143ba6f">cbegin</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array16x8.html#adda842a447360852f2ffa28fb97eb40c">const_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array16x8.html#ad7919a7f772fda7d3fe3b476ac1e058f">cend</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array16x8.html#aeeb5d6d55c07a515e4c7d01cb5c5351b">reverse_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array16x8.html#a5023769f3e418e15a707501aaaac5487">rbegin</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array16x8.html#a7a774fcb52f452f832e11e13dbde6dea">const_reverse_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array16x8.html#a5da4b6af6ebaf8cc8204713a993a860c">rbegin</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array16x8.html#aeeb5d6d55c07a515e4c7d01cb5c5351b">reverse_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array16x8.html#a252b937d65e7b04e5bc507d43643441f">rend</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array16x8.html#a7a774fcb52f452f832e11e13dbde6dea">const_reverse_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array16x8.html#a286fef704fcf11e9f00d73703b7ab36b">rend</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array16x8.html#a7a774fcb52f452f832e11e13dbde6dea">const_reverse_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array16x8.html#a2ecc3c23f3ae3939a386b334f0556d73">crbegin</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array16x8.html#a7a774fcb52f452f832e11e13dbde6dea">const_reverse_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array16x8.html#a2a98e77e851e130a98d44a14ce673ffd">crend</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array16x8.html#aa6ae2e4843b3bb1b66425afa7da9e281">pointer</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array16x8.html#aac0eda610fbd60cdaae5d1e2aa4eb03f">data</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array16x8.html#adbe5a6feb583ce6a682496e14cec9cca">const_pointer</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array16x8.html#aced4f7455fcc853a4e947b9bf892c45e">data</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array16x8.html#adf010ea54bc2f9dceb8568d59c6dde8a">reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array16x8.html#ad293e6494e131ff96941e963d9208586">front</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array16x8.html#a7252c320f8b0fb4d66a17acd9e94b4ad">const_reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array16x8.html#a85528130b6941b3f7b57265c201345c2">front</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array16x8.html#adf010ea54bc2f9dceb8568d59c6dde8a">reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array16x8.html#ae607d3b3d068aec88672241fc97948cb">back</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array16x8.html#a7252c320f8b0fb4d66a17acd9e94b4ad">const_reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array16x8.html#a6e5e98c20ae0e6bf4f8a897c08b0700e">back</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array16x8.html#a4d3ed48f2b716382ea874a968a2b7174">operator==</a> (const <a class="el" href="structr123array16x8.html">r123array16x8</a> &rhs) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array16x8.html#af48be55844748a0f6406b2ae437398b5">operator!=</a> (const <a class="el" href="structr123array16x8.html">r123array16x8</a> &rhs) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array16x8.html#a883d42092ab4bae2eac132706ed06103">fill</a> (const <a class="el" href="structr123array16x8.html#ad1d7184f51cafaff4714a2dcf60c9ae2">value_type</a> &val)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array16x8.html#a2de9273e9c4b4c47315cb20885e9c6ed">swap</a> (<a class="el" href="structr123array16x8.html">r123array16x8</a> &rhs)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array16x8.html">r123array16x8</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array16x8.html#aaf2d677b347b7c7bf362a2b318f46e3c">incr</a> (uint64_t n=1)</td></tr>
+<tr><td colspan="2"><h2><a name="pub-static-methods"></a>
+Static Public Member Functions</h2></td></tr>
+<tr><td class="memTemplParams" colspan="2">template<typename SeedSeq > </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">static <a class="el" href="structr123array16x8.html">r123array16x8</a> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="structr123array16x8.html#aef0741829d359c31ad913a6770661895">seed</a> (SeedSeq &ss)</td></tr>
+<tr><td colspan="2"><h2><a name="pub-attribs"></a>
+Public Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array16x8.html#a703776a5f85fb222e16b739309489783">v</a> [16]</td></tr>
+<tr><td colspan="2"><h2><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array16x8.html">r123array16x8</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array16x8.html#abbc6c2d9cdc2187cdfdea759951498a0">incr_carefully</a> (uint64_t n)</td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__arrayNxW.html">The r123arrayNxW classes</a> </dd></dl>
+<hr/><h2>Member Typedef Documentation</h2>
+<a class="anchor" id="adda842a447360852f2ffa28fb97eb40c"></a><!-- doxytag: member="r123array16x8::const_iterator" ref="adda842a447360852f2ffa28fb97eb40c" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef const uint8_t* <a class="el" href="structr123array16x8.html#adda842a447360852f2ffa28fb97eb40c">r123array16x8::const_iterator</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="adbe5a6feb583ce6a682496e14cec9cca"></a><!-- doxytag: member="r123array16x8::const_pointer" ref="adbe5a6feb583ce6a682496e14cec9cca" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef const uint8_t* <a class="el" href="structr123array16x8.html#adbe5a6feb583ce6a682496e14cec9cca">r123array16x8::const_pointer</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a7252c320f8b0fb4d66a17acd9e94b4ad"></a><!-- doxytag: member="r123array16x8::const_reference" ref="a7252c320f8b0fb4d66a17acd9e94b4ad" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef const <a class="el" href="structr123array16x8.html#ad1d7184f51cafaff4714a2dcf60c9ae2">value_type</a>& <a class="el" href="structr123array16x8.html#a7252c320f8b0fb4d66a17acd9e94b4ad">r123array16x8::const_reference</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a7a774fcb52f452f832e11e13dbde6dea"></a><!-- doxytag: member="r123array16x8::const_reverse_iterator" ref="a7a774fcb52f452f832e11e13dbde6dea" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef std::reverse_iterator<<a class="el" href="structr123array16x8.html#adda842a447360852f2ffa28fb97eb40c">const_iterator</a>> <a class="el" href="structr123array16x8.html#a7a774fcb52f452f832e11e13dbde6dea">r123array16x8::const_reverse_iterator</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aaae0b6c18de6ce92ea55bf1b9bdbdf69"></a><!-- doxytag: member="r123array16x8::difference_type" ref="aaae0b6c18de6ce92ea55bf1b9bdbdf69" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef ptrdiff_t <a class="el" href="structr123array16x8.html#aaae0b6c18de6ce92ea55bf1b9bdbdf69">r123array16x8::difference_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a36bdba5b2d96c8dfe9b7e59b203d5047"></a><!-- doxytag: member="r123array16x8::iterator" ref="a36bdba5b2d96c8dfe9b7e59b203d5047" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef uint8_t* <a class="el" href="structr123array16x8.html#a36bdba5b2d96c8dfe9b7e59b203d5047">r123array16x8::iterator</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa6ae2e4843b3bb1b66425afa7da9e281"></a><!-- doxytag: member="r123array16x8::pointer" ref="aa6ae2e4843b3bb1b66425afa7da9e281" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef uint8_t* <a class="el" href="structr123array16x8.html#aa6ae2e4843b3bb1b66425afa7da9e281">r123array16x8::pointer</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="adf010ea54bc2f9dceb8568d59c6dde8a"></a><!-- doxytag: member="r123array16x8::reference" ref="adf010ea54bc2f9dceb8568d59c6dde8a" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="structr123array16x8.html#ad1d7184f51cafaff4714a2dcf60c9ae2">value_type</a>& <a class="el" href="structr123array16x8.html#adf010ea54bc2f9dceb8568d59c6dde8a">r123array16x8::reference</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aeeb5d6d55c07a515e4c7d01cb5c5351b"></a><!-- doxytag: member="r123array16x8::reverse_iterator" ref="aeeb5d6d55c07a515e4c7d01cb5c5351b" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef std::reverse_iterator<<a class="el" href="structr123array16x8.html#a36bdba5b2d96c8dfe9b7e59b203d5047">iterator</a>> <a class="el" href="structr123array16x8.html#aeeb5d6d55c07a515e4c7d01cb5c5351b">r123array16x8::reverse_iterator</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae892bee1409b006ec01597c0e1f22952"></a><!-- doxytag: member="r123array16x8::size_type" ref="ae892bee1409b006ec01597c0e1f22952" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef size_t <a class="el" href="structr123array16x8.html#ae892bee1409b006ec01597c0e1f22952">r123array16x8::size_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ad1d7184f51cafaff4714a2dcf60c9ae2"></a><!-- doxytag: member="r123array16x8::value_type" ref="ad1d7184f51cafaff4714a2dcf60c9ae2" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef uint8_t <a class="el" href="structr123array16x8.html#ad1d7184f51cafaff4714a2dcf60c9ae2">r123array16x8::value_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/><h2>Member Enumeration Documentation</h2>
+<a class="anchor" id="a7b2912a12e57bc62644a8ce57e2301b2"></a><!-- doxytag: member="r123array16x8::@7" ref="a7b2912a12e57bc62644a8ce57e2301b2" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">anonymous enum</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="a7b2912a12e57bc62644a8ce57e2301b2af0ee079d4b47a988dcd2b8b8457f266f"></a><!-- doxytag: member="static_size" ref="a7b2912a12e57bc62644a8ce57e2301b2af0ee079d4b47a988dcd2b8b8457f266f" args="" -->static_size</em> </td><td>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="a7742edac513767b0f3ca6abe1a3eabb7"></a><!-- doxytag: member="r123array16x8::at" ref="a7742edac513767b0f3ca6abe1a3eabb7" args="(size_type i)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array16x8.html#adf010ea54bc2f9dceb8568d59c6dde8a">reference</a> r123array16x8::at </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array16x8.html#ae892bee1409b006ec01597c0e1f22952">size_type</a> </td>
+          <td class="paramname"> <em>i</em></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a088dbabe23cf873de370af292052905e"></a><!-- doxytag: member="r123array16x8::at" ref="a088dbabe23cf873de370af292052905e" args="(size_type i) const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array16x8.html#a7252c320f8b0fb4d66a17acd9e94b4ad">const_reference</a> r123array16x8::at </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array16x8.html#ae892bee1409b006ec01597c0e1f22952">size_type</a> </td>
+          <td class="paramname"> <em>i</em></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae607d3b3d068aec88672241fc97948cb"></a><!-- doxytag: member="r123array16x8::back" ref="ae607d3b3d068aec88672241fc97948cb" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array16x8.html#adf010ea54bc2f9dceb8568d59c6dde8a">reference</a> r123array16x8::back </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a6e5e98c20ae0e6bf4f8a897c08b0700e"></a><!-- doxytag: member="r123array16x8::back" ref="a6e5e98c20ae0e6bf4f8a897c08b0700e" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array16x8.html#a7252c320f8b0fb4d66a17acd9e94b4ad">const_reference</a> r123array16x8::back </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a43182e95cb41660de5511bb5a3968cb8"></a><!-- doxytag: member="r123array16x8::begin" ref="a43182e95cb41660de5511bb5a3968cb8" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array16x8.html#a36bdba5b2d96c8dfe9b7e59b203d5047">iterator</a> r123array16x8::begin </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="acef590bcf52e4a167c2388f4d1e0b20e"></a><!-- doxytag: member="r123array16x8::begin" ref="acef590bcf52e4a167c2388f4d1e0b20e" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array16x8.html#adda842a447360852f2ffa28fb97eb40c">const_iterator</a> r123array16x8::begin </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a80520b3d7040a8d6ec7068c8a143ba6f"></a><!-- doxytag: member="r123array16x8::cbegin" ref="a80520b3d7040a8d6ec7068c8a143ba6f" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array16x8.html#adda842a447360852f2ffa28fb97eb40c">const_iterator</a> r123array16x8::cbegin </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ad7919a7f772fda7d3fe3b476ac1e058f"></a><!-- doxytag: member="r123array16x8::cend" ref="ad7919a7f772fda7d3fe3b476ac1e058f" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array16x8.html#adda842a447360852f2ffa28fb97eb40c">const_iterator</a> r123array16x8::cend </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a2ecc3c23f3ae3939a386b334f0556d73"></a><!-- doxytag: member="r123array16x8::crbegin" ref="a2ecc3c23f3ae3939a386b334f0556d73" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array16x8.html#a7a774fcb52f452f832e11e13dbde6dea">const_reverse_iterator</a> r123array16x8::crbegin </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a2a98e77e851e130a98d44a14ce673ffd"></a><!-- doxytag: member="r123array16x8::crend" ref="a2a98e77e851e130a98d44a14ce673ffd" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array16x8.html#a7a774fcb52f452f832e11e13dbde6dea">const_reverse_iterator</a> r123array16x8::crend </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aac0eda610fbd60cdaae5d1e2aa4eb03f"></a><!-- doxytag: member="r123array16x8::data" ref="aac0eda610fbd60cdaae5d1e2aa4eb03f" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array16x8.html#aa6ae2e4843b3bb1b66425afa7da9e281">pointer</a> r123array16x8::data </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aced4f7455fcc853a4e947b9bf892c45e"></a><!-- doxytag: member="r123array16x8::data" ref="aced4f7455fcc853a4e947b9bf892c45e" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array16x8.html#adbe5a6feb583ce6a682496e14cec9cca">const_pointer</a> r123array16x8::data </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a5f07441771ec90cd05a2c26fb64e575e"></a><!-- doxytag: member="r123array16x8::empty" ref="a5f07441771ec90cd05a2c26fb64e575e" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool r123array16x8::empty </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa0d2b0c70133dde0535b0a5e12283626"></a><!-- doxytag: member="r123array16x8::end" ref="aa0d2b0c70133dde0535b0a5e12283626" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array16x8.html#a36bdba5b2d96c8dfe9b7e59b203d5047">iterator</a> r123array16x8::end </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aee42dddf2a59858114a31d760f2c1227"></a><!-- doxytag: member="r123array16x8::end" ref="aee42dddf2a59858114a31d760f2c1227" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array16x8.html#adda842a447360852f2ffa28fb97eb40c">const_iterator</a> r123array16x8::end </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a883d42092ab4bae2eac132706ed06103"></a><!-- doxytag: member="r123array16x8::fill" ref="a883d42092ab4bae2eac132706ed06103" args="(const value_type &val)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void r123array16x8::fill </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structr123array16x8.html#ad1d7184f51cafaff4714a2dcf60c9ae2">value_type</a> & </td>
+          <td class="paramname"> <em>val</em></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ad293e6494e131ff96941e963d9208586"></a><!-- doxytag: member="r123array16x8::front" ref="ad293e6494e131ff96941e963d9208586" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array16x8.html#adf010ea54bc2f9dceb8568d59c6dde8a">reference</a> r123array16x8::front </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a85528130b6941b3f7b57265c201345c2"></a><!-- doxytag: member="r123array16x8::front" ref="a85528130b6941b3f7b57265c201345c2" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array16x8.html#a7252c320f8b0fb4d66a17acd9e94b4ad">const_reference</a> r123array16x8::front </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aaf2d677b347b7c7bf362a2b318f46e3c"></a><!-- doxytag: member="r123array16x8::incr" ref="aaf2d677b347b7c7bf362a2b318f46e3c" args="(uint64_t n=1)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array16x8.html">r123array16x8</a>& r123array16x8::incr </td>
+          <td>(</td>
+          <td class="paramtype">uint64_t </td>
+          <td class="paramname"> <em>n</em> = <code>1</code></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="abbc6c2d9cdc2187cdfdea759951498a0"></a><!-- doxytag: member="r123array16x8::incr_carefully" ref="abbc6c2d9cdc2187cdfdea759951498a0" args="(uint64_t n)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array16x8.html">r123array16x8</a>& r123array16x8::incr_carefully </td>
+          <td>(</td>
+          <td class="paramtype">uint64_t </td>
+          <td class="paramname"> <em>n</em></td>
+          <td> ) </td>
+          <td><code> [inline, protected]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a3f59fb2b338aa8e33879e8d2d22840ed"></a><!-- doxytag: member="r123array16x8::max_size" ref="a3f59fb2b338aa8e33879e8d2d22840ed" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array16x8.html#ae892bee1409b006ec01597c0e1f22952">size_type</a> r123array16x8::max_size </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="af48be55844748a0f6406b2ae437398b5"></a><!-- doxytag: member="r123array16x8::operator!=" ref="af48be55844748a0f6406b2ae437398b5" args="(const r123array16x8 &rhs) const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool r123array16x8::operator!= </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structr123array16x8.html">r123array16x8</a> & </td>
+          <td class="paramname"> <em>rhs</em></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a4d3ed48f2b716382ea874a968a2b7174"></a><!-- doxytag: member="r123array16x8::operator==" ref="a4d3ed48f2b716382ea874a968a2b7174" args="(const r123array16x8 &rhs) const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool r123array16x8::operator== </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structr123array16x8.html">r123array16x8</a> & </td>
+          <td class="paramname"> <em>rhs</em></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a013713c00f6e8a5adb7be77388c22d8f"></a><!-- doxytag: member="r123array16x8::operator[]" ref="a013713c00f6e8a5adb7be77388c22d8f" args="(size_type i) const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array16x8.html#a7252c320f8b0fb4d66a17acd9e94b4ad">const_reference</a> r123array16x8::operator[] </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array16x8.html#ae892bee1409b006ec01597c0e1f22952">size_type</a> </td>
+          <td class="paramname"> <em>i</em></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="abe9f2b18e2e3b89e00725f6fa69b8236"></a><!-- doxytag: member="r123array16x8::operator[]" ref="abe9f2b18e2e3b89e00725f6fa69b8236" args="(size_type i)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array16x8.html#adf010ea54bc2f9dceb8568d59c6dde8a">reference</a> r123array16x8::operator[] </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array16x8.html#ae892bee1409b006ec01597c0e1f22952">size_type</a> </td>
+          <td class="paramname"> <em>i</em></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a5023769f3e418e15a707501aaaac5487"></a><!-- doxytag: member="r123array16x8::rbegin" ref="a5023769f3e418e15a707501aaaac5487" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array16x8.html#aeeb5d6d55c07a515e4c7d01cb5c5351b">reverse_iterator</a> r123array16x8::rbegin </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a5da4b6af6ebaf8cc8204713a993a860c"></a><!-- doxytag: member="r123array16x8::rbegin" ref="a5da4b6af6ebaf8cc8204713a993a860c" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array16x8.html#a7a774fcb52f452f832e11e13dbde6dea">const_reverse_iterator</a> r123array16x8::rbegin </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a286fef704fcf11e9f00d73703b7ab36b"></a><!-- doxytag: member="r123array16x8::rend" ref="a286fef704fcf11e9f00d73703b7ab36b" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array16x8.html#a7a774fcb52f452f832e11e13dbde6dea">const_reverse_iterator</a> r123array16x8::rend </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a252b937d65e7b04e5bc507d43643441f"></a><!-- doxytag: member="r123array16x8::rend" ref="a252b937d65e7b04e5bc507d43643441f" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array16x8.html#aeeb5d6d55c07a515e4c7d01cb5c5351b">reverse_iterator</a> r123array16x8::rend </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aef0741829d359c31ad913a6770661895"></a><!-- doxytag: member="r123array16x8::seed" ref="aef0741829d359c31ad913a6770661895" args="(SeedSeq &ss)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename SeedSeq > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structr123array16x8.html">r123array16x8</a> r123array16x8::seed </td>
+          <td>(</td>
+          <td class="paramtype">SeedSeq & </td>
+          <td class="paramname"> <em>ss</em></td>
+          <td> ) </td>
+          <td><code> [inline, static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a9a31da5cdf154eba3e44af4e51002a15"></a><!-- doxytag: member="r123array16x8::size" ref="a9a31da5cdf154eba3e44af4e51002a15" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array16x8.html#ae892bee1409b006ec01597c0e1f22952">size_type</a> r123array16x8::size </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a2de9273e9c4b4c47315cb20885e9c6ed"></a><!-- doxytag: member="r123array16x8::swap" ref="a2de9273e9c4b4c47315cb20885e9c6ed" args="(r123array16x8 &rhs)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void r123array16x8::swap </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array16x8.html">r123array16x8</a> & </td>
+          <td class="paramname"> <em>rhs</em></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/><h2>Member Data Documentation</h2>
+<a class="anchor" id="a703776a5f85fb222e16b739309489783"></a><!-- doxytag: member="r123array16x8::v" ref="a703776a5f85fb222e16b739309489783" args="[16]" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">uint8_t <a class="el" href="structr123array16x8.html#a703776a5f85fb222e16b739309489783">r123array16x8::v</a>[16]</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li>Random123/<a class="el" href="array_8h_source.html">array.h</a></li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/structr123array1x32-members.html b/docs/html/structr123array1x32-members.html
new file mode 100644
index 0000000..2956b42
--- /dev/null
+++ b/docs/html/structr123array1x32-members.html
@@ -0,0 +1,123 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<h1>r123array1x32 Member List</h1>  </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="structr123array1x32.html">r123array1x32</a>, including all inherited members.<table>
+  <tr class="memlist"><td><a class="el" href="structr123array1x32.html#a300f163f4293879003e6831b1180350d">at</a>(size_type i)</td><td><a class="el" href="structr123array1x32.html">r123array1x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x32.html#a1d57048b43ee45e2a94ef372b4707783">at</a>(size_type i) const </td><td><a class="el" href="structr123array1x32.html">r123array1x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x32.html#a3738a65a648899db793e81b53c252785">back</a>()</td><td><a class="el" href="structr123array1x32.html">r123array1x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x32.html#a32b89fb1c75e3cc26ff3b5acdd40af99">back</a>() const </td><td><a class="el" href="structr123array1x32.html">r123array1x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x32.html#a86b7d754ff8dd69e0565edfdbd060cb4">begin</a>()</td><td><a class="el" href="structr123array1x32.html">r123array1x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x32.html#a19089b8de6c637803408512407a4da91">begin</a>() const </td><td><a class="el" href="structr123array1x32.html">r123array1x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x32.html#a4b0a02537590babd835dd16405775efe">cbegin</a>() const </td><td><a class="el" href="structr123array1x32.html">r123array1x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x32.html#aa0f83d3e29c452d23c3660c98e3bd0e9">cend</a>() const </td><td><a class="el" href="structr123array1x32.html">r123array1x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x32.html#ac7f82e8848759ec5b0026dce8830274e">const_iterator</a> typedef</td><td><a class="el" href="structr123array1x32.html">r123array1x32</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x32.html#ab4a82a1e5300814272528a05587d555b">const_pointer</a> typedef</td><td><a class="el" href="structr123array1x32.html">r123array1x32</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x32.html#adfa6614a8b20cd30c192458c8c2874da">const_reference</a> typedef</td><td><a class="el" href="structr123array1x32.html">r123array1x32</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x32.html#a2642ed91a9c6c91ace3b91add2a4feae">const_reverse_iterator</a> typedef</td><td><a class="el" href="structr123array1x32.html">r123array1x32</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x32.html#abe59890575233ef259a69d38bea4b5d9">crbegin</a>() const </td><td><a class="el" href="structr123array1x32.html">r123array1x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x32.html#a7f0211b995c536c540c6b175d9433c74">crend</a>() const </td><td><a class="el" href="structr123array1x32.html">r123array1x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x32.html#a71529eccd6d52d7c396d58fd71214d0b">data</a>()</td><td><a class="el" href="structr123array1x32.html">r123array1x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x32.html#a8ca295876693f207df52a7cce6f96241">data</a>() const </td><td><a class="el" href="structr123array1x32.html">r123array1x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x32.html#a1084c78861e725e58c14c67af242952f">difference_type</a> typedef</td><td><a class="el" href="structr123array1x32.html">r123array1x32</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x32.html#ae791cf5ce80a35610c3b4d52ea533651">empty</a>() const </td><td><a class="el" href="structr123array1x32.html">r123array1x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x32.html#ac2b5032395c448c4598321f5a37ec29c">end</a>()</td><td><a class="el" href="structr123array1x32.html">r123array1x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x32.html#a5bda32a4f4e8e783744ed7f183dde0b2">end</a>() const </td><td><a class="el" href="structr123array1x32.html">r123array1x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x32.html#a973dbecc59b1d5f5a95bda92d25e5e73">fill</a>(const value_type &val)</td><td><a class="el" href="structr123array1x32.html">r123array1x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x32.html#a69727e5b1c14fcc2f7c9b6af4410cc16">front</a>()</td><td><a class="el" href="structr123array1x32.html">r123array1x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x32.html#af94d0df621b1de0b6a3ed904c276eb84">front</a>() const </td><td><a class="el" href="structr123array1x32.html">r123array1x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x32.html#aae5fbc153a37b06ea466f2283551622f">incr</a>(uint64_t n=1)</td><td><a class="el" href="structr123array1x32.html">r123array1x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x32.html#a9c919289274ced376086f1110c8b6384">incr_carefully</a>(uint64_t n)</td><td><a class="el" href="structr123array1x32.html">r123array1x32</a></td><td><code> [inline, protected]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x32.html#ad17f00c1dbff151f91d381f7c0b99dc8">iterator</a> typedef</td><td><a class="el" href="structr123array1x32.html">r123array1x32</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x32.html#a707c532168670ad508723d057f712928">max_size</a>() const </td><td><a class="el" href="structr123array1x32.html">r123array1x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x32.html#af293f370d083051f6cf24408e07feff1">operator!=</a>(const r123array1x32 &rhs) const </td><td><a class="el" href="structr123array1x32.html">r123array1x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x32.html#a61140a0fb8983a3018a2b98903d14047">operator==</a>(const r123array1x32 &rhs) const </td><td><a class="el" href="structr123array1x32.html">r123array1x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x32.html#aa47bb157c60858c1b0ef69df79646a3b">operator[]</a>(size_type i)</td><td><a class="el" href="structr123array1x32.html">r123array1x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x32.html#a05cf21fa6a647c73763da02d4b7e2f2a">operator[]</a>(size_type i) const </td><td><a class="el" href="structr123array1x32.html">r123array1x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x32.html#a85ce46c2e10ab3d9c4f60aebe6268898">pointer</a> typedef</td><td><a class="el" href="structr123array1x32.html">r123array1x32</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x32.html#a0c91373623da349c09b952f616b7f5e9">rbegin</a>()</td><td><a class="el" href="structr123array1x32.html">r123array1x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x32.html#aacb0604c956b8e50b057a6034c78069c">rbegin</a>() const </td><td><a class="el" href="structr123array1x32.html">r123array1x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x32.html#ae5aa4e3a65528495ea71371529ade7d7">reference</a> typedef</td><td><a class="el" href="structr123array1x32.html">r123array1x32</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x32.html#a7a55225361d3e9e6f037daa13d340fc4">rend</a>()</td><td><a class="el" href="structr123array1x32.html">r123array1x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x32.html#aad87615e3d9d32467d2f139be5be08ce">rend</a>() const </td><td><a class="el" href="structr123array1x32.html">r123array1x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x32.html#a21cb520afa483ae177c469f3940e7ed2">reverse_iterator</a> typedef</td><td><a class="el" href="structr123array1x32.html">r123array1x32</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x32.html#adf914fa4384acfcfa1750fd47b758f42">seed</a>(SeedSeq &ss)</td><td><a class="el" href="structr123array1x32.html">r123array1x32</a></td><td><code> [inline, static]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x32.html#a4cbaf3feeaad0bb7227d065294240561">size</a>() const </td><td><a class="el" href="structr123array1x32.html">r123array1x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x32.html#a30405dcf03997aaf3f981c05d1fa1e53">size_type</a> typedef</td><td><a class="el" href="structr123array1x32.html">r123array1x32</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x32.html#a2cdb0e09b7e8ba20de255ddcb54ea9baae9556d9b93643fe1f7e56e973200177a">static_size</a> enum value</td><td><a class="el" href="structr123array1x32.html">r123array1x32</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x32.html#afdd8df41333430593d31350bd12db11a">swap</a>(r123array1x32 &rhs)</td><td><a class="el" href="structr123array1x32.html">r123array1x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x32.html#a1123ac44ecadd52dae06d2c8df86764a">v</a></td><td><a class="el" href="structr123array1x32.html">r123array1x32</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x32.html#a9c8e0d672be32b52eef639f1a3b2b98a">value_type</a> typedef</td><td><a class="el" href="structr123array1x32.html">r123array1x32</a></td><td></td></tr>
+</table></div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/structr123array1x32.html b/docs/html/structr123array1x32.html
new file mode 100644
index 0000000..2a3ba0c
--- /dev/null
+++ b/docs/html/structr123array1x32.html
@@ -0,0 +1,892 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: r123array1x32 Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="summary">
+<a href="#pub-types">Public Types</a> |
+<a href="#pub-methods">Public Member Functions</a> |
+<a href="#pub-static-methods">Static Public Member Functions</a> |
+<a href="#pub-attribs">Public Attributes</a> |
+<a href="#pro-methods">Protected Member Functions</a>  </div>
+  <div class="headertitle">
+<h1>r123array1x32 Struct Reference<br/>
+<small>
+[<a class="el" href="group__arrayNxW.html">The r123arrayNxW classes</a>]</small>
+</h1>  </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="r123array1x32" -->
+<p><code>#include <<a class="el" href="array_8h_source.html">Random123/array.h</a>></code></p>
+
+<p><a href="structr123array1x32-members.html">List of all members.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-types"></a>
+Public Types</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom">{ <a class="el" href="structr123array1x32.html#a2cdb0e09b7e8ba20de255ddcb54ea9baae9556d9b93643fe1f7e56e973200177a">static_size</a> =  1
+ }</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x32.html#a9c8e0d672be32b52eef639f1a3b2b98a">value_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef uint32_t * </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x32.html#ad17f00c1dbff151f91d381f7c0b99dc8">iterator</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef const uint32_t * </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x32.html#ac7f82e8848759ec5b0026dce8830274e">const_iterator</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123array1x32.html#a9c8e0d672be32b52eef639f1a3b2b98a">value_type</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x32.html#ae5aa4e3a65528495ea71371529ade7d7">reference</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef const <a class="el" href="structr123array1x32.html#a9c8e0d672be32b52eef639f1a3b2b98a">value_type</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x32.html#adfa6614a8b20cd30c192458c8c2874da">const_reference</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x32.html#a30405dcf03997aaf3f981c05d1fa1e53">size_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef ptrdiff_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x32.html#a1084c78861e725e58c14c67af242952f">difference_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef uint32_t * </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x32.html#a85ce46c2e10ab3d9c4f60aebe6268898">pointer</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef const uint32_t * </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x32.html#ab4a82a1e5300814272528a05587d555b">const_pointer</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef std::reverse_iterator<br class="typebreak"/>
+< <a class="el" href="structr123array1x32.html#ad17f00c1dbff151f91d381f7c0b99dc8">iterator</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x32.html#a21cb520afa483ae177c469f3940e7ed2">reverse_iterator</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef std::reverse_iterator<br class="typebreak"/>
+< <a class="el" href="structr123array1x32.html#ac7f82e8848759ec5b0026dce8830274e">const_iterator</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x32.html#a2642ed91a9c6c91ace3b91add2a4feae">const_reverse_iterator</a></td></tr>
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array1x32.html#ae5aa4e3a65528495ea71371529ade7d7">reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x32.html#aa47bb157c60858c1b0ef69df79646a3b">operator[]</a> (<a class="el" href="structr123array1x32.html#a30405dcf03997aaf3f981c05d1fa1e53">size_type</a> i)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array1x32.html#adfa6614a8b20cd30c192458c8c2874da">const_reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x32.html#a05cf21fa6a647c73763da02d4b7e2f2a">operator[]</a> (<a class="el" href="structr123array1x32.html#a30405dcf03997aaf3f981c05d1fa1e53">size_type</a> i) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array1x32.html#ae5aa4e3a65528495ea71371529ade7d7">reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x32.html#a300f163f4293879003e6831b1180350d">at</a> (<a class="el" href="structr123array1x32.html#a30405dcf03997aaf3f981c05d1fa1e53">size_type</a> i)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array1x32.html#adfa6614a8b20cd30c192458c8c2874da">const_reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x32.html#a1d57048b43ee45e2a94ef372b4707783">at</a> (<a class="el" href="structr123array1x32.html#a30405dcf03997aaf3f981c05d1fa1e53">size_type</a> i) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array1x32.html#a30405dcf03997aaf3f981c05d1fa1e53">size_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x32.html#a4cbaf3feeaad0bb7227d065294240561">size</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array1x32.html#a30405dcf03997aaf3f981c05d1fa1e53">size_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x32.html#a707c532168670ad508723d057f712928">max_size</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x32.html#ae791cf5ce80a35610c3b4d52ea533651">empty</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array1x32.html#ad17f00c1dbff151f91d381f7c0b99dc8">iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x32.html#a86b7d754ff8dd69e0565edfdbd060cb4">begin</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array1x32.html#ad17f00c1dbff151f91d381f7c0b99dc8">iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x32.html#ac2b5032395c448c4598321f5a37ec29c">end</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array1x32.html#ac7f82e8848759ec5b0026dce8830274e">const_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x32.html#a19089b8de6c637803408512407a4da91">begin</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array1x32.html#ac7f82e8848759ec5b0026dce8830274e">const_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x32.html#a5bda32a4f4e8e783744ed7f183dde0b2">end</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array1x32.html#ac7f82e8848759ec5b0026dce8830274e">const_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x32.html#a4b0a02537590babd835dd16405775efe">cbegin</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array1x32.html#ac7f82e8848759ec5b0026dce8830274e">const_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x32.html#aa0f83d3e29c452d23c3660c98e3bd0e9">cend</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array1x32.html#a21cb520afa483ae177c469f3940e7ed2">reverse_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x32.html#a0c91373623da349c09b952f616b7f5e9">rbegin</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array1x32.html#a2642ed91a9c6c91ace3b91add2a4feae">const_reverse_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x32.html#aacb0604c956b8e50b057a6034c78069c">rbegin</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array1x32.html#a21cb520afa483ae177c469f3940e7ed2">reverse_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x32.html#a7a55225361d3e9e6f037daa13d340fc4">rend</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array1x32.html#a2642ed91a9c6c91ace3b91add2a4feae">const_reverse_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x32.html#aad87615e3d9d32467d2f139be5be08ce">rend</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array1x32.html#a2642ed91a9c6c91ace3b91add2a4feae">const_reverse_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x32.html#abe59890575233ef259a69d38bea4b5d9">crbegin</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array1x32.html#a2642ed91a9c6c91ace3b91add2a4feae">const_reverse_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x32.html#a7f0211b995c536c540c6b175d9433c74">crend</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array1x32.html#a85ce46c2e10ab3d9c4f60aebe6268898">pointer</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x32.html#a71529eccd6d52d7c396d58fd71214d0b">data</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array1x32.html#ab4a82a1e5300814272528a05587d555b">const_pointer</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x32.html#a8ca295876693f207df52a7cce6f96241">data</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array1x32.html#ae5aa4e3a65528495ea71371529ade7d7">reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x32.html#a69727e5b1c14fcc2f7c9b6af4410cc16">front</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array1x32.html#adfa6614a8b20cd30c192458c8c2874da">const_reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x32.html#af94d0df621b1de0b6a3ed904c276eb84">front</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array1x32.html#ae5aa4e3a65528495ea71371529ade7d7">reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x32.html#a3738a65a648899db793e81b53c252785">back</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array1x32.html#adfa6614a8b20cd30c192458c8c2874da">const_reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x32.html#a32b89fb1c75e3cc26ff3b5acdd40af99">back</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x32.html#a61140a0fb8983a3018a2b98903d14047">operator==</a> (const <a class="el" href="structr123array1x32.html">r123array1x32</a> &rhs) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x32.html#af293f370d083051f6cf24408e07feff1">operator!=</a> (const <a class="el" href="structr123array1x32.html">r123array1x32</a> &rhs) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x32.html#a973dbecc59b1d5f5a95bda92d25e5e73">fill</a> (const <a class="el" href="structr123array1x32.html#a9c8e0d672be32b52eef639f1a3b2b98a">value_type</a> &val)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x32.html#afdd8df41333430593d31350bd12db11a">swap</a> (<a class="el" href="structr123array1x32.html">r123array1x32</a> &rhs)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array1x32.html">r123array1x32</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x32.html#aae5fbc153a37b06ea466f2283551622f">incr</a> (uint64_t n=1)</td></tr>
+<tr><td colspan="2"><h2><a name="pub-static-methods"></a>
+Static Public Member Functions</h2></td></tr>
+<tr><td class="memTemplParams" colspan="2">template<typename SeedSeq > </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">static <a class="el" href="structr123array1x32.html">r123array1x32</a> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="structr123array1x32.html#adf914fa4384acfcfa1750fd47b758f42">seed</a> (SeedSeq &ss)</td></tr>
+<tr><td colspan="2"><h2><a name="pub-attribs"></a>
+Public Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x32.html#a1123ac44ecadd52dae06d2c8df86764a">v</a> [1]</td></tr>
+<tr><td colspan="2"><h2><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array1x32.html">r123array1x32</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x32.html#a9c919289274ced376086f1110c8b6384">incr_carefully</a> (uint64_t n)</td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__arrayNxW.html">The r123arrayNxW classes</a> </dd></dl>
+<hr/><h2>Member Typedef Documentation</h2>
+<a class="anchor" id="ac7f82e8848759ec5b0026dce8830274e"></a><!-- doxytag: member="r123array1x32::const_iterator" ref="ac7f82e8848759ec5b0026dce8830274e" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef const uint32_t* <a class="el" href="structr123array1x32.html#ac7f82e8848759ec5b0026dce8830274e">r123array1x32::const_iterator</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ab4a82a1e5300814272528a05587d555b"></a><!-- doxytag: member="r123array1x32::const_pointer" ref="ab4a82a1e5300814272528a05587d555b" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef const uint32_t* <a class="el" href="structr123array1x32.html#ab4a82a1e5300814272528a05587d555b">r123array1x32::const_pointer</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="adfa6614a8b20cd30c192458c8c2874da"></a><!-- doxytag: member="r123array1x32::const_reference" ref="adfa6614a8b20cd30c192458c8c2874da" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef const <a class="el" href="structr123array1x32.html#a9c8e0d672be32b52eef639f1a3b2b98a">value_type</a>& <a class="el" href="structr123array1x32.html#adfa6614a8b20cd30c192458c8c2874da">r123array1x32::const_reference</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a2642ed91a9c6c91ace3b91add2a4feae"></a><!-- doxytag: member="r123array1x32::const_reverse_iterator" ref="a2642ed91a9c6c91ace3b91add2a4feae" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef std::reverse_iterator<<a class="el" href="structr123array1x32.html#ac7f82e8848759ec5b0026dce8830274e">const_iterator</a>> <a class="el" href="structr123array1x32.html#a2642ed91a9c6c91ace3b91add2a4feae">r123array1x32::const_reverse_iterator</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a1084c78861e725e58c14c67af242952f"></a><!-- doxytag: member="r123array1x32::difference_type" ref="a1084c78861e725e58c14c67af242952f" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef ptrdiff_t <a class="el" href="structr123array1x32.html#a1084c78861e725e58c14c67af242952f">r123array1x32::difference_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ad17f00c1dbff151f91d381f7c0b99dc8"></a><!-- doxytag: member="r123array1x32::iterator" ref="ad17f00c1dbff151f91d381f7c0b99dc8" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef uint32_t* <a class="el" href="structr123array1x32.html#ad17f00c1dbff151f91d381f7c0b99dc8">r123array1x32::iterator</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a85ce46c2e10ab3d9c4f60aebe6268898"></a><!-- doxytag: member="r123array1x32::pointer" ref="a85ce46c2e10ab3d9c4f60aebe6268898" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef uint32_t* <a class="el" href="structr123array1x32.html#a85ce46c2e10ab3d9c4f60aebe6268898">r123array1x32::pointer</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae5aa4e3a65528495ea71371529ade7d7"></a><!-- doxytag: member="r123array1x32::reference" ref="ae5aa4e3a65528495ea71371529ade7d7" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="structr123array1x32.html#a9c8e0d672be32b52eef639f1a3b2b98a">value_type</a>& <a class="el" href="structr123array1x32.html#ae5aa4e3a65528495ea71371529ade7d7">r123array1x32::reference</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a21cb520afa483ae177c469f3940e7ed2"></a><!-- doxytag: member="r123array1x32::reverse_iterator" ref="a21cb520afa483ae177c469f3940e7ed2" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef std::reverse_iterator<<a class="el" href="structr123array1x32.html#ad17f00c1dbff151f91d381f7c0b99dc8">iterator</a>> <a class="el" href="structr123array1x32.html#a21cb520afa483ae177c469f3940e7ed2">r123array1x32::reverse_iterator</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a30405dcf03997aaf3f981c05d1fa1e53"></a><!-- doxytag: member="r123array1x32::size_type" ref="a30405dcf03997aaf3f981c05d1fa1e53" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef size_t <a class="el" href="structr123array1x32.html#a30405dcf03997aaf3f981c05d1fa1e53">r123array1x32::size_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a9c8e0d672be32b52eef639f1a3b2b98a"></a><!-- doxytag: member="r123array1x32::value_type" ref="a9c8e0d672be32b52eef639f1a3b2b98a" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef uint32_t <a class="el" href="structr123array1x32.html#a9c8e0d672be32b52eef639f1a3b2b98a">r123array1x32::value_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/><h2>Member Enumeration Documentation</h2>
+<a class="anchor" id="a2cdb0e09b7e8ba20de255ddcb54ea9ba"></a><!-- doxytag: member="r123array1x32::@0" ref="a2cdb0e09b7e8ba20de255ddcb54ea9ba" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">anonymous enum</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="a2cdb0e09b7e8ba20de255ddcb54ea9baae9556d9b93643fe1f7e56e973200177a"></a><!-- doxytag: member="static_size" ref="a2cdb0e09b7e8ba20de255ddcb54ea9baae9556d9b93643fe1f7e56e973200177a" args="" -->static_size</em> </td><td>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="a300f163f4293879003e6831b1180350d"></a><!-- doxytag: member="r123array1x32::at" ref="a300f163f4293879003e6831b1180350d" args="(size_type i)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array1x32.html#ae5aa4e3a65528495ea71371529ade7d7">reference</a> r123array1x32::at </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array1x32.html#a30405dcf03997aaf3f981c05d1fa1e53">size_type</a> </td>
+          <td class="paramname"> <em>i</em></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a1d57048b43ee45e2a94ef372b4707783"></a><!-- doxytag: member="r123array1x32::at" ref="a1d57048b43ee45e2a94ef372b4707783" args="(size_type i) const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array1x32.html#adfa6614a8b20cd30c192458c8c2874da">const_reference</a> r123array1x32::at </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array1x32.html#a30405dcf03997aaf3f981c05d1fa1e53">size_type</a> </td>
+          <td class="paramname"> <em>i</em></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a3738a65a648899db793e81b53c252785"></a><!-- doxytag: member="r123array1x32::back" ref="a3738a65a648899db793e81b53c252785" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array1x32.html#ae5aa4e3a65528495ea71371529ade7d7">reference</a> r123array1x32::back </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a32b89fb1c75e3cc26ff3b5acdd40af99"></a><!-- doxytag: member="r123array1x32::back" ref="a32b89fb1c75e3cc26ff3b5acdd40af99" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array1x32.html#adfa6614a8b20cd30c192458c8c2874da">const_reference</a> r123array1x32::back </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a86b7d754ff8dd69e0565edfdbd060cb4"></a><!-- doxytag: member="r123array1x32::begin" ref="a86b7d754ff8dd69e0565edfdbd060cb4" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array1x32.html#ad17f00c1dbff151f91d381f7c0b99dc8">iterator</a> r123array1x32::begin </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a19089b8de6c637803408512407a4da91"></a><!-- doxytag: member="r123array1x32::begin" ref="a19089b8de6c637803408512407a4da91" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array1x32.html#ac7f82e8848759ec5b0026dce8830274e">const_iterator</a> r123array1x32::begin </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a4b0a02537590babd835dd16405775efe"></a><!-- doxytag: member="r123array1x32::cbegin" ref="a4b0a02537590babd835dd16405775efe" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array1x32.html#ac7f82e8848759ec5b0026dce8830274e">const_iterator</a> r123array1x32::cbegin </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa0f83d3e29c452d23c3660c98e3bd0e9"></a><!-- doxytag: member="r123array1x32::cend" ref="aa0f83d3e29c452d23c3660c98e3bd0e9" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array1x32.html#ac7f82e8848759ec5b0026dce8830274e">const_iterator</a> r123array1x32::cend </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="abe59890575233ef259a69d38bea4b5d9"></a><!-- doxytag: member="r123array1x32::crbegin" ref="abe59890575233ef259a69d38bea4b5d9" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array1x32.html#a2642ed91a9c6c91ace3b91add2a4feae">const_reverse_iterator</a> r123array1x32::crbegin </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a7f0211b995c536c540c6b175d9433c74"></a><!-- doxytag: member="r123array1x32::crend" ref="a7f0211b995c536c540c6b175d9433c74" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array1x32.html#a2642ed91a9c6c91ace3b91add2a4feae">const_reverse_iterator</a> r123array1x32::crend </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a71529eccd6d52d7c396d58fd71214d0b"></a><!-- doxytag: member="r123array1x32::data" ref="a71529eccd6d52d7c396d58fd71214d0b" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array1x32.html#a85ce46c2e10ab3d9c4f60aebe6268898">pointer</a> r123array1x32::data </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a8ca295876693f207df52a7cce6f96241"></a><!-- doxytag: member="r123array1x32::data" ref="a8ca295876693f207df52a7cce6f96241" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array1x32.html#ab4a82a1e5300814272528a05587d555b">const_pointer</a> r123array1x32::data </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae791cf5ce80a35610c3b4d52ea533651"></a><!-- doxytag: member="r123array1x32::empty" ref="ae791cf5ce80a35610c3b4d52ea533651" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool r123array1x32::empty </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ac2b5032395c448c4598321f5a37ec29c"></a><!-- doxytag: member="r123array1x32::end" ref="ac2b5032395c448c4598321f5a37ec29c" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array1x32.html#ad17f00c1dbff151f91d381f7c0b99dc8">iterator</a> r123array1x32::end </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a5bda32a4f4e8e783744ed7f183dde0b2"></a><!-- doxytag: member="r123array1x32::end" ref="a5bda32a4f4e8e783744ed7f183dde0b2" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array1x32.html#ac7f82e8848759ec5b0026dce8830274e">const_iterator</a> r123array1x32::end </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a973dbecc59b1d5f5a95bda92d25e5e73"></a><!-- doxytag: member="r123array1x32::fill" ref="a973dbecc59b1d5f5a95bda92d25e5e73" args="(const value_type &val)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void r123array1x32::fill </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structr123array1x32.html#a9c8e0d672be32b52eef639f1a3b2b98a">value_type</a> & </td>
+          <td class="paramname"> <em>val</em></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a69727e5b1c14fcc2f7c9b6af4410cc16"></a><!-- doxytag: member="r123array1x32::front" ref="a69727e5b1c14fcc2f7c9b6af4410cc16" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array1x32.html#ae5aa4e3a65528495ea71371529ade7d7">reference</a> r123array1x32::front </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="af94d0df621b1de0b6a3ed904c276eb84"></a><!-- doxytag: member="r123array1x32::front" ref="af94d0df621b1de0b6a3ed904c276eb84" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array1x32.html#adfa6614a8b20cd30c192458c8c2874da">const_reference</a> r123array1x32::front </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aae5fbc153a37b06ea466f2283551622f"></a><!-- doxytag: member="r123array1x32::incr" ref="aae5fbc153a37b06ea466f2283551622f" args="(uint64_t n=1)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array1x32.html">r123array1x32</a>& r123array1x32::incr </td>
+          <td>(</td>
+          <td class="paramtype">uint64_t </td>
+          <td class="paramname"> <em>n</em> = <code>1</code></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a9c919289274ced376086f1110c8b6384"></a><!-- doxytag: member="r123array1x32::incr_carefully" ref="a9c919289274ced376086f1110c8b6384" args="(uint64_t n)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array1x32.html">r123array1x32</a>& r123array1x32::incr_carefully </td>
+          <td>(</td>
+          <td class="paramtype">uint64_t </td>
+          <td class="paramname"> <em>n</em></td>
+          <td> ) </td>
+          <td><code> [inline, protected]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a707c532168670ad508723d057f712928"></a><!-- doxytag: member="r123array1x32::max_size" ref="a707c532168670ad508723d057f712928" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array1x32.html#a30405dcf03997aaf3f981c05d1fa1e53">size_type</a> r123array1x32::max_size </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="af293f370d083051f6cf24408e07feff1"></a><!-- doxytag: member="r123array1x32::operator!=" ref="af293f370d083051f6cf24408e07feff1" args="(const r123array1x32 &rhs) const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool r123array1x32::operator!= </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structr123array1x32.html">r123array1x32</a> & </td>
+          <td class="paramname"> <em>rhs</em></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a61140a0fb8983a3018a2b98903d14047"></a><!-- doxytag: member="r123array1x32::operator==" ref="a61140a0fb8983a3018a2b98903d14047" args="(const r123array1x32 &rhs) const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool r123array1x32::operator== </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structr123array1x32.html">r123array1x32</a> & </td>
+          <td class="paramname"> <em>rhs</em></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a05cf21fa6a647c73763da02d4b7e2f2a"></a><!-- doxytag: member="r123array1x32::operator[]" ref="a05cf21fa6a647c73763da02d4b7e2f2a" args="(size_type i) const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array1x32.html#adfa6614a8b20cd30c192458c8c2874da">const_reference</a> r123array1x32::operator[] </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array1x32.html#a30405dcf03997aaf3f981c05d1fa1e53">size_type</a> </td>
+          <td class="paramname"> <em>i</em></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa47bb157c60858c1b0ef69df79646a3b"></a><!-- doxytag: member="r123array1x32::operator[]" ref="aa47bb157c60858c1b0ef69df79646a3b" args="(size_type i)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array1x32.html#ae5aa4e3a65528495ea71371529ade7d7">reference</a> r123array1x32::operator[] </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array1x32.html#a30405dcf03997aaf3f981c05d1fa1e53">size_type</a> </td>
+          <td class="paramname"> <em>i</em></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a0c91373623da349c09b952f616b7f5e9"></a><!-- doxytag: member="r123array1x32::rbegin" ref="a0c91373623da349c09b952f616b7f5e9" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array1x32.html#a21cb520afa483ae177c469f3940e7ed2">reverse_iterator</a> r123array1x32::rbegin </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aacb0604c956b8e50b057a6034c78069c"></a><!-- doxytag: member="r123array1x32::rbegin" ref="aacb0604c956b8e50b057a6034c78069c" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array1x32.html#a2642ed91a9c6c91ace3b91add2a4feae">const_reverse_iterator</a> r123array1x32::rbegin </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aad87615e3d9d32467d2f139be5be08ce"></a><!-- doxytag: member="r123array1x32::rend" ref="aad87615e3d9d32467d2f139be5be08ce" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array1x32.html#a2642ed91a9c6c91ace3b91add2a4feae">const_reverse_iterator</a> r123array1x32::rend </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a7a55225361d3e9e6f037daa13d340fc4"></a><!-- doxytag: member="r123array1x32::rend" ref="a7a55225361d3e9e6f037daa13d340fc4" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array1x32.html#a21cb520afa483ae177c469f3940e7ed2">reverse_iterator</a> r123array1x32::rend </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="adf914fa4384acfcfa1750fd47b758f42"></a><!-- doxytag: member="r123array1x32::seed" ref="adf914fa4384acfcfa1750fd47b758f42" args="(SeedSeq &ss)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename SeedSeq > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structr123array1x32.html">r123array1x32</a> r123array1x32::seed </td>
+          <td>(</td>
+          <td class="paramtype">SeedSeq & </td>
+          <td class="paramname"> <em>ss</em></td>
+          <td> ) </td>
+          <td><code> [inline, static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a4cbaf3feeaad0bb7227d065294240561"></a><!-- doxytag: member="r123array1x32::size" ref="a4cbaf3feeaad0bb7227d065294240561" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array1x32.html#a30405dcf03997aaf3f981c05d1fa1e53">size_type</a> r123array1x32::size </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="afdd8df41333430593d31350bd12db11a"></a><!-- doxytag: member="r123array1x32::swap" ref="afdd8df41333430593d31350bd12db11a" args="(r123array1x32 &rhs)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void r123array1x32::swap </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array1x32.html">r123array1x32</a> & </td>
+          <td class="paramname"> <em>rhs</em></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/><h2>Member Data Documentation</h2>
+<a class="anchor" id="a1123ac44ecadd52dae06d2c8df86764a"></a><!-- doxytag: member="r123array1x32::v" ref="a1123ac44ecadd52dae06d2c8df86764a" args="[1]" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">uint32_t <a class="el" href="structr123array1x32.html#a1123ac44ecadd52dae06d2c8df86764a">r123array1x32::v</a>[1]</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li>Random123/<a class="el" href="array_8h_source.html">array.h</a></li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/structr123array1x64-members.html b/docs/html/structr123array1x64-members.html
new file mode 100644
index 0000000..0062fe7
--- /dev/null
+++ b/docs/html/structr123array1x64-members.html
@@ -0,0 +1,123 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<h1>r123array1x64 Member List</h1>  </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="structr123array1x64.html">r123array1x64</a>, including all inherited members.<table>
+  <tr class="memlist"><td><a class="el" href="structr123array1x64.html#a6575299135436acf90fcb8da262d623c">at</a>(size_type i)</td><td><a class="el" href="structr123array1x64.html">r123array1x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x64.html#af6cf7706792eb1e44902dd94df388726">at</a>(size_type i) const </td><td><a class="el" href="structr123array1x64.html">r123array1x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x64.html#ab85790fdee269501a80fe31179efc9f8">back</a>()</td><td><a class="el" href="structr123array1x64.html">r123array1x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x64.html#a2cd091b3015befa2b954ddab91271e39">back</a>() const </td><td><a class="el" href="structr123array1x64.html">r123array1x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x64.html#af9150347761c6df32673bbd2411e67d0">begin</a>()</td><td><a class="el" href="structr123array1x64.html">r123array1x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x64.html#a0fddc6603fe2eb4547aeb57498ffe3c2">begin</a>() const </td><td><a class="el" href="structr123array1x64.html">r123array1x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x64.html#a33d1c19a63dec48f63f7c30c758fca0c">cbegin</a>() const </td><td><a class="el" href="structr123array1x64.html">r123array1x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x64.html#aa959a7054efa0d53f83f2d712d8d9049">cend</a>() const </td><td><a class="el" href="structr123array1x64.html">r123array1x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x64.html#a28ff01c0fefda1d81112ec9812156164">const_iterator</a> typedef</td><td><a class="el" href="structr123array1x64.html">r123array1x64</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x64.html#a2b23f2aa3edf21084ece97a03367bff5">const_pointer</a> typedef</td><td><a class="el" href="structr123array1x64.html">r123array1x64</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x64.html#af75ba9dbfe38e0a6c143f446b7e4b995">const_reference</a> typedef</td><td><a class="el" href="structr123array1x64.html">r123array1x64</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x64.html#a61535adf62580285c3182a713ea0f3b1">const_reverse_iterator</a> typedef</td><td><a class="el" href="structr123array1x64.html">r123array1x64</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x64.html#adac6c38fef501a997b39229f54a6459c">crbegin</a>() const </td><td><a class="el" href="structr123array1x64.html">r123array1x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x64.html#a250e375c11846dc2635c7690f283cc20">crend</a>() const </td><td><a class="el" href="structr123array1x64.html">r123array1x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x64.html#a2ecd5718a0fd863dd7a3eb724e07a540">data</a>()</td><td><a class="el" href="structr123array1x64.html">r123array1x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x64.html#a02cd843e927803bd09f00b1a5541c72c">data</a>() const </td><td><a class="el" href="structr123array1x64.html">r123array1x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x64.html#a2abaa7dd6823b724ec6038b504c77011">difference_type</a> typedef</td><td><a class="el" href="structr123array1x64.html">r123array1x64</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x64.html#af8636ea61389dcf15e94a5da70bd6bc0">empty</a>() const </td><td><a class="el" href="structr123array1x64.html">r123array1x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x64.html#a18a5fa64dbe73dc4f9fd0b6c45fe283f">end</a>()</td><td><a class="el" href="structr123array1x64.html">r123array1x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x64.html#a595e77ff43ac41c4937e91f6d109a46a">end</a>() const </td><td><a class="el" href="structr123array1x64.html">r123array1x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x64.html#ac9a372e0980632a4db29bb243b672039">fill</a>(const value_type &val)</td><td><a class="el" href="structr123array1x64.html">r123array1x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x64.html#a7d205216932e36303f62b38d233247d5">front</a>()</td><td><a class="el" href="structr123array1x64.html">r123array1x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x64.html#a7c0a3159492b3405a8019ce52cdf2c69">front</a>() const </td><td><a class="el" href="structr123array1x64.html">r123array1x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x64.html#ad44244e95f8937e0874dec9083071a85">incr</a>(uint64_t n=1)</td><td><a class="el" href="structr123array1x64.html">r123array1x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x64.html#ad848dc3e868f8195ee3eb5029698c976">incr_carefully</a>(uint64_t n)</td><td><a class="el" href="structr123array1x64.html">r123array1x64</a></td><td><code> [inline, protected]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x64.html#a486a75094513f75c268901b3bb6666ad">iterator</a> typedef</td><td><a class="el" href="structr123array1x64.html">r123array1x64</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x64.html#a1b02d097ca118866b7f696b7c1c5681f">max_size</a>() const </td><td><a class="el" href="structr123array1x64.html">r123array1x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x64.html#a0969493a7aac290e5ab2a5135380bc3d">operator!=</a>(const r123array1x64 &rhs) const </td><td><a class="el" href="structr123array1x64.html">r123array1x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x64.html#a65018edc8a8596e8bdb7500926544a4a">operator==</a>(const r123array1x64 &rhs) const </td><td><a class="el" href="structr123array1x64.html">r123array1x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x64.html#a10fbaabd5223f286d6e396e15227569c">operator[]</a>(size_type i)</td><td><a class="el" href="structr123array1x64.html">r123array1x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x64.html#aa13b237c78d719ecfb5a59cdd557c889">operator[]</a>(size_type i) const </td><td><a class="el" href="structr123array1x64.html">r123array1x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x64.html#a1c104fabb72d6c72c51348ac72bd419f">pointer</a> typedef</td><td><a class="el" href="structr123array1x64.html">r123array1x64</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x64.html#a56196452051f26a10a4bb3c3d7b75fd0">rbegin</a>()</td><td><a class="el" href="structr123array1x64.html">r123array1x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x64.html#a5b080aafd94d77efda03730b6f853334">rbegin</a>() const </td><td><a class="el" href="structr123array1x64.html">r123array1x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x64.html#a6b196cbfb84a28a57f24cd976c6fd6e6">reference</a> typedef</td><td><a class="el" href="structr123array1x64.html">r123array1x64</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x64.html#aa0f756e941d0e417355d940fd0ed3a33">rend</a>()</td><td><a class="el" href="structr123array1x64.html">r123array1x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x64.html#a19f9d7dd7371c20fc5001d864da453ff">rend</a>() const </td><td><a class="el" href="structr123array1x64.html">r123array1x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x64.html#ac9c44218c6761d9e6f422435e49acb17">reverse_iterator</a> typedef</td><td><a class="el" href="structr123array1x64.html">r123array1x64</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x64.html#a69be3aa9c2588ce86b5ebb72649ce684">seed</a>(SeedSeq &ss)</td><td><a class="el" href="structr123array1x64.html">r123array1x64</a></td><td><code> [inline, static]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x64.html#a81dba857004f49f48cb0712edaa39e76">size</a>() const </td><td><a class="el" href="structr123array1x64.html">r123array1x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x64.html#aa37d85a97cfe1f3f63b1ef1c33497cb7">size_type</a> typedef</td><td><a class="el" href="structr123array1x64.html">r123array1x64</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x64.html#ab7fb5f41ed3716bce19489deb1dd4149a0c25e6a56a2c69eb7641adb24765e6af">static_size</a> enum value</td><td><a class="el" href="structr123array1x64.html">r123array1x64</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x64.html#a6f929a34461c49c9571eedc1df65fd20">swap</a>(r123array1x64 &rhs)</td><td><a class="el" href="structr123array1x64.html">r123array1x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x64.html#a951c4b651e15e5ad4f66d81027c8e1b5">v</a></td><td><a class="el" href="structr123array1x64.html">r123array1x64</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1x64.html#a4d8280ccd7087d5c3faba27641e8fbe7">value_type</a> typedef</td><td><a class="el" href="structr123array1x64.html">r123array1x64</a></td><td></td></tr>
+</table></div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/structr123array1x64.html b/docs/html/structr123array1x64.html
new file mode 100644
index 0000000..d648799
--- /dev/null
+++ b/docs/html/structr123array1x64.html
@@ -0,0 +1,892 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: r123array1x64 Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="summary">
+<a href="#pub-types">Public Types</a> |
+<a href="#pub-methods">Public Member Functions</a> |
+<a href="#pub-static-methods">Static Public Member Functions</a> |
+<a href="#pub-attribs">Public Attributes</a> |
+<a href="#pro-methods">Protected Member Functions</a>  </div>
+  <div class="headertitle">
+<h1>r123array1x64 Struct Reference<br/>
+<small>
+[<a class="el" href="group__arrayNxW.html">The r123arrayNxW classes</a>]</small>
+</h1>  </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="r123array1x64" -->
+<p><code>#include <<a class="el" href="array_8h_source.html">Random123/array.h</a>></code></p>
+
+<p><a href="structr123array1x64-members.html">List of all members.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-types"></a>
+Public Types</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom">{ <a class="el" href="structr123array1x64.html#ab7fb5f41ed3716bce19489deb1dd4149a0c25e6a56a2c69eb7641adb24765e6af">static_size</a> =  1
+ }</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef uint64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x64.html#a4d8280ccd7087d5c3faba27641e8fbe7">value_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef uint64_t * </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x64.html#a486a75094513f75c268901b3bb6666ad">iterator</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef const uint64_t * </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x64.html#a28ff01c0fefda1d81112ec9812156164">const_iterator</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123array1x64.html#a4d8280ccd7087d5c3faba27641e8fbe7">value_type</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x64.html#a6b196cbfb84a28a57f24cd976c6fd6e6">reference</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef const <a class="el" href="structr123array1x64.html#a4d8280ccd7087d5c3faba27641e8fbe7">value_type</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x64.html#af75ba9dbfe38e0a6c143f446b7e4b995">const_reference</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x64.html#aa37d85a97cfe1f3f63b1ef1c33497cb7">size_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef ptrdiff_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x64.html#a2abaa7dd6823b724ec6038b504c77011">difference_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef uint64_t * </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x64.html#a1c104fabb72d6c72c51348ac72bd419f">pointer</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef const uint64_t * </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x64.html#a2b23f2aa3edf21084ece97a03367bff5">const_pointer</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef std::reverse_iterator<br class="typebreak"/>
+< <a class="el" href="structr123array1x64.html#a486a75094513f75c268901b3bb6666ad">iterator</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x64.html#ac9c44218c6761d9e6f422435e49acb17">reverse_iterator</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef std::reverse_iterator<br class="typebreak"/>
+< <a class="el" href="structr123array1x64.html#a28ff01c0fefda1d81112ec9812156164">const_iterator</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x64.html#a61535adf62580285c3182a713ea0f3b1">const_reverse_iterator</a></td></tr>
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array1x64.html#a6b196cbfb84a28a57f24cd976c6fd6e6">reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x64.html#a10fbaabd5223f286d6e396e15227569c">operator[]</a> (<a class="el" href="structr123array1x64.html#aa37d85a97cfe1f3f63b1ef1c33497cb7">size_type</a> i)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array1x64.html#af75ba9dbfe38e0a6c143f446b7e4b995">const_reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x64.html#aa13b237c78d719ecfb5a59cdd557c889">operator[]</a> (<a class="el" href="structr123array1x64.html#aa37d85a97cfe1f3f63b1ef1c33497cb7">size_type</a> i) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array1x64.html#a6b196cbfb84a28a57f24cd976c6fd6e6">reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x64.html#a6575299135436acf90fcb8da262d623c">at</a> (<a class="el" href="structr123array1x64.html#aa37d85a97cfe1f3f63b1ef1c33497cb7">size_type</a> i)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array1x64.html#af75ba9dbfe38e0a6c143f446b7e4b995">const_reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x64.html#af6cf7706792eb1e44902dd94df388726">at</a> (<a class="el" href="structr123array1x64.html#aa37d85a97cfe1f3f63b1ef1c33497cb7">size_type</a> i) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array1x64.html#aa37d85a97cfe1f3f63b1ef1c33497cb7">size_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x64.html#a81dba857004f49f48cb0712edaa39e76">size</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array1x64.html#aa37d85a97cfe1f3f63b1ef1c33497cb7">size_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x64.html#a1b02d097ca118866b7f696b7c1c5681f">max_size</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x64.html#af8636ea61389dcf15e94a5da70bd6bc0">empty</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array1x64.html#a486a75094513f75c268901b3bb6666ad">iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x64.html#af9150347761c6df32673bbd2411e67d0">begin</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array1x64.html#a486a75094513f75c268901b3bb6666ad">iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x64.html#a18a5fa64dbe73dc4f9fd0b6c45fe283f">end</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array1x64.html#a28ff01c0fefda1d81112ec9812156164">const_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x64.html#a0fddc6603fe2eb4547aeb57498ffe3c2">begin</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array1x64.html#a28ff01c0fefda1d81112ec9812156164">const_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x64.html#a595e77ff43ac41c4937e91f6d109a46a">end</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array1x64.html#a28ff01c0fefda1d81112ec9812156164">const_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x64.html#a33d1c19a63dec48f63f7c30c758fca0c">cbegin</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array1x64.html#a28ff01c0fefda1d81112ec9812156164">const_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x64.html#aa959a7054efa0d53f83f2d712d8d9049">cend</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array1x64.html#ac9c44218c6761d9e6f422435e49acb17">reverse_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x64.html#a56196452051f26a10a4bb3c3d7b75fd0">rbegin</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array1x64.html#a61535adf62580285c3182a713ea0f3b1">const_reverse_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x64.html#a5b080aafd94d77efda03730b6f853334">rbegin</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array1x64.html#ac9c44218c6761d9e6f422435e49acb17">reverse_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x64.html#aa0f756e941d0e417355d940fd0ed3a33">rend</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array1x64.html#a61535adf62580285c3182a713ea0f3b1">const_reverse_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x64.html#a19f9d7dd7371c20fc5001d864da453ff">rend</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array1x64.html#a61535adf62580285c3182a713ea0f3b1">const_reverse_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x64.html#adac6c38fef501a997b39229f54a6459c">crbegin</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array1x64.html#a61535adf62580285c3182a713ea0f3b1">const_reverse_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x64.html#a250e375c11846dc2635c7690f283cc20">crend</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array1x64.html#a1c104fabb72d6c72c51348ac72bd419f">pointer</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x64.html#a2ecd5718a0fd863dd7a3eb724e07a540">data</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array1x64.html#a2b23f2aa3edf21084ece97a03367bff5">const_pointer</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x64.html#a02cd843e927803bd09f00b1a5541c72c">data</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array1x64.html#a6b196cbfb84a28a57f24cd976c6fd6e6">reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x64.html#a7d205216932e36303f62b38d233247d5">front</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array1x64.html#af75ba9dbfe38e0a6c143f446b7e4b995">const_reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x64.html#a7c0a3159492b3405a8019ce52cdf2c69">front</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array1x64.html#a6b196cbfb84a28a57f24cd976c6fd6e6">reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x64.html#ab85790fdee269501a80fe31179efc9f8">back</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array1x64.html#af75ba9dbfe38e0a6c143f446b7e4b995">const_reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x64.html#a2cd091b3015befa2b954ddab91271e39">back</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x64.html#a65018edc8a8596e8bdb7500926544a4a">operator==</a> (const <a class="el" href="structr123array1x64.html">r123array1x64</a> &rhs) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x64.html#a0969493a7aac290e5ab2a5135380bc3d">operator!=</a> (const <a class="el" href="structr123array1x64.html">r123array1x64</a> &rhs) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x64.html#ac9a372e0980632a4db29bb243b672039">fill</a> (const <a class="el" href="structr123array1x64.html#a4d8280ccd7087d5c3faba27641e8fbe7">value_type</a> &val)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x64.html#a6f929a34461c49c9571eedc1df65fd20">swap</a> (<a class="el" href="structr123array1x64.html">r123array1x64</a> &rhs)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array1x64.html">r123array1x64</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x64.html#ad44244e95f8937e0874dec9083071a85">incr</a> (uint64_t n=1)</td></tr>
+<tr><td colspan="2"><h2><a name="pub-static-methods"></a>
+Static Public Member Functions</h2></td></tr>
+<tr><td class="memTemplParams" colspan="2">template<typename SeedSeq > </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">static <a class="el" href="structr123array1x64.html">r123array1x64</a> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="structr123array1x64.html#a69be3aa9c2588ce86b5ebb72649ce684">seed</a> (SeedSeq &ss)</td></tr>
+<tr><td colspan="2"><h2><a name="pub-attribs"></a>
+Public Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">uint64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x64.html#a951c4b651e15e5ad4f66d81027c8e1b5">v</a> [1]</td></tr>
+<tr><td colspan="2"><h2><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array1x64.html">r123array1x64</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1x64.html#ad848dc3e868f8195ee3eb5029698c976">incr_carefully</a> (uint64_t n)</td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__arrayNxW.html">The r123arrayNxW classes</a> </dd></dl>
+<hr/><h2>Member Typedef Documentation</h2>
+<a class="anchor" id="a28ff01c0fefda1d81112ec9812156164"></a><!-- doxytag: member="r123array1x64::const_iterator" ref="a28ff01c0fefda1d81112ec9812156164" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef const uint64_t* <a class="el" href="structr123array1x64.html#a28ff01c0fefda1d81112ec9812156164">r123array1x64::const_iterator</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a2b23f2aa3edf21084ece97a03367bff5"></a><!-- doxytag: member="r123array1x64::const_pointer" ref="a2b23f2aa3edf21084ece97a03367bff5" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef const uint64_t* <a class="el" href="structr123array1x64.html#a2b23f2aa3edf21084ece97a03367bff5">r123array1x64::const_pointer</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="af75ba9dbfe38e0a6c143f446b7e4b995"></a><!-- doxytag: member="r123array1x64::const_reference" ref="af75ba9dbfe38e0a6c143f446b7e4b995" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef const <a class="el" href="structr123array1x64.html#a4d8280ccd7087d5c3faba27641e8fbe7">value_type</a>& <a class="el" href="structr123array1x64.html#af75ba9dbfe38e0a6c143f446b7e4b995">r123array1x64::const_reference</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a61535adf62580285c3182a713ea0f3b1"></a><!-- doxytag: member="r123array1x64::const_reverse_iterator" ref="a61535adf62580285c3182a713ea0f3b1" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef std::reverse_iterator<<a class="el" href="structr123array1x64.html#a28ff01c0fefda1d81112ec9812156164">const_iterator</a>> <a class="el" href="structr123array1x64.html#a61535adf62580285c3182a713ea0f3b1">r123array1x64::const_reverse_iterator</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a2abaa7dd6823b724ec6038b504c77011"></a><!-- doxytag: member="r123array1x64::difference_type" ref="a2abaa7dd6823b724ec6038b504c77011" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef ptrdiff_t <a class="el" href="structr123array1x64.html#a2abaa7dd6823b724ec6038b504c77011">r123array1x64::difference_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a486a75094513f75c268901b3bb6666ad"></a><!-- doxytag: member="r123array1x64::iterator" ref="a486a75094513f75c268901b3bb6666ad" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef uint64_t* <a class="el" href="structr123array1x64.html#a486a75094513f75c268901b3bb6666ad">r123array1x64::iterator</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a1c104fabb72d6c72c51348ac72bd419f"></a><!-- doxytag: member="r123array1x64::pointer" ref="a1c104fabb72d6c72c51348ac72bd419f" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef uint64_t* <a class="el" href="structr123array1x64.html#a1c104fabb72d6c72c51348ac72bd419f">r123array1x64::pointer</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a6b196cbfb84a28a57f24cd976c6fd6e6"></a><!-- doxytag: member="r123array1x64::reference" ref="a6b196cbfb84a28a57f24cd976c6fd6e6" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="structr123array1x64.html#a4d8280ccd7087d5c3faba27641e8fbe7">value_type</a>& <a class="el" href="structr123array1x64.html#a6b196cbfb84a28a57f24cd976c6fd6e6">r123array1x64::reference</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ac9c44218c6761d9e6f422435e49acb17"></a><!-- doxytag: member="r123array1x64::reverse_iterator" ref="ac9c44218c6761d9e6f422435e49acb17" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef std::reverse_iterator<<a class="el" href="structr123array1x64.html#a486a75094513f75c268901b3bb6666ad">iterator</a>> <a class="el" href="structr123array1x64.html#ac9c44218c6761d9e6f422435e49acb17">r123array1x64::reverse_iterator</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa37d85a97cfe1f3f63b1ef1c33497cb7"></a><!-- doxytag: member="r123array1x64::size_type" ref="aa37d85a97cfe1f3f63b1ef1c33497cb7" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef size_t <a class="el" href="structr123array1x64.html#aa37d85a97cfe1f3f63b1ef1c33497cb7">r123array1x64::size_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a4d8280ccd7087d5c3faba27641e8fbe7"></a><!-- doxytag: member="r123array1x64::value_type" ref="a4d8280ccd7087d5c3faba27641e8fbe7" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef uint64_t <a class="el" href="structr123array1x64.html#a4d8280ccd7087d5c3faba27641e8fbe7">r123array1x64::value_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/><h2>Member Enumeration Documentation</h2>
+<a class="anchor" id="ab7fb5f41ed3716bce19489deb1dd4149"></a><!-- doxytag: member="r123array1x64::@4" ref="ab7fb5f41ed3716bce19489deb1dd4149" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">anonymous enum</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="ab7fb5f41ed3716bce19489deb1dd4149a0c25e6a56a2c69eb7641adb24765e6af"></a><!-- doxytag: member="static_size" ref="ab7fb5f41ed3716bce19489deb1dd4149a0c25e6a56a2c69eb7641adb24765e6af" args="" -->static_size</em> </td><td>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="a6575299135436acf90fcb8da262d623c"></a><!-- doxytag: member="r123array1x64::at" ref="a6575299135436acf90fcb8da262d623c" args="(size_type i)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array1x64.html#a6b196cbfb84a28a57f24cd976c6fd6e6">reference</a> r123array1x64::at </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array1x64.html#aa37d85a97cfe1f3f63b1ef1c33497cb7">size_type</a> </td>
+          <td class="paramname"> <em>i</em></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="af6cf7706792eb1e44902dd94df388726"></a><!-- doxytag: member="r123array1x64::at" ref="af6cf7706792eb1e44902dd94df388726" args="(size_type i) const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array1x64.html#af75ba9dbfe38e0a6c143f446b7e4b995">const_reference</a> r123array1x64::at </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array1x64.html#aa37d85a97cfe1f3f63b1ef1c33497cb7">size_type</a> </td>
+          <td class="paramname"> <em>i</em></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ab85790fdee269501a80fe31179efc9f8"></a><!-- doxytag: member="r123array1x64::back" ref="ab85790fdee269501a80fe31179efc9f8" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array1x64.html#a6b196cbfb84a28a57f24cd976c6fd6e6">reference</a> r123array1x64::back </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a2cd091b3015befa2b954ddab91271e39"></a><!-- doxytag: member="r123array1x64::back" ref="a2cd091b3015befa2b954ddab91271e39" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array1x64.html#af75ba9dbfe38e0a6c143f446b7e4b995">const_reference</a> r123array1x64::back </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="af9150347761c6df32673bbd2411e67d0"></a><!-- doxytag: member="r123array1x64::begin" ref="af9150347761c6df32673bbd2411e67d0" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array1x64.html#a486a75094513f75c268901b3bb6666ad">iterator</a> r123array1x64::begin </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a0fddc6603fe2eb4547aeb57498ffe3c2"></a><!-- doxytag: member="r123array1x64::begin" ref="a0fddc6603fe2eb4547aeb57498ffe3c2" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array1x64.html#a28ff01c0fefda1d81112ec9812156164">const_iterator</a> r123array1x64::begin </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a33d1c19a63dec48f63f7c30c758fca0c"></a><!-- doxytag: member="r123array1x64::cbegin" ref="a33d1c19a63dec48f63f7c30c758fca0c" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array1x64.html#a28ff01c0fefda1d81112ec9812156164">const_iterator</a> r123array1x64::cbegin </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa959a7054efa0d53f83f2d712d8d9049"></a><!-- doxytag: member="r123array1x64::cend" ref="aa959a7054efa0d53f83f2d712d8d9049" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array1x64.html#a28ff01c0fefda1d81112ec9812156164">const_iterator</a> r123array1x64::cend </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="adac6c38fef501a997b39229f54a6459c"></a><!-- doxytag: member="r123array1x64::crbegin" ref="adac6c38fef501a997b39229f54a6459c" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array1x64.html#a61535adf62580285c3182a713ea0f3b1">const_reverse_iterator</a> r123array1x64::crbegin </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a250e375c11846dc2635c7690f283cc20"></a><!-- doxytag: member="r123array1x64::crend" ref="a250e375c11846dc2635c7690f283cc20" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array1x64.html#a61535adf62580285c3182a713ea0f3b1">const_reverse_iterator</a> r123array1x64::crend </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a2ecd5718a0fd863dd7a3eb724e07a540"></a><!-- doxytag: member="r123array1x64::data" ref="a2ecd5718a0fd863dd7a3eb724e07a540" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array1x64.html#a1c104fabb72d6c72c51348ac72bd419f">pointer</a> r123array1x64::data </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a02cd843e927803bd09f00b1a5541c72c"></a><!-- doxytag: member="r123array1x64::data" ref="a02cd843e927803bd09f00b1a5541c72c" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array1x64.html#a2b23f2aa3edf21084ece97a03367bff5">const_pointer</a> r123array1x64::data </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="af8636ea61389dcf15e94a5da70bd6bc0"></a><!-- doxytag: member="r123array1x64::empty" ref="af8636ea61389dcf15e94a5da70bd6bc0" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool r123array1x64::empty </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a18a5fa64dbe73dc4f9fd0b6c45fe283f"></a><!-- doxytag: member="r123array1x64::end" ref="a18a5fa64dbe73dc4f9fd0b6c45fe283f" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array1x64.html#a486a75094513f75c268901b3bb6666ad">iterator</a> r123array1x64::end </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a595e77ff43ac41c4937e91f6d109a46a"></a><!-- doxytag: member="r123array1x64::end" ref="a595e77ff43ac41c4937e91f6d109a46a" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array1x64.html#a28ff01c0fefda1d81112ec9812156164">const_iterator</a> r123array1x64::end </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ac9a372e0980632a4db29bb243b672039"></a><!-- doxytag: member="r123array1x64::fill" ref="ac9a372e0980632a4db29bb243b672039" args="(const value_type &val)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void r123array1x64::fill </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structr123array1x64.html#a4d8280ccd7087d5c3faba27641e8fbe7">value_type</a> & </td>
+          <td class="paramname"> <em>val</em></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a7d205216932e36303f62b38d233247d5"></a><!-- doxytag: member="r123array1x64::front" ref="a7d205216932e36303f62b38d233247d5" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array1x64.html#a6b196cbfb84a28a57f24cd976c6fd6e6">reference</a> r123array1x64::front </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a7c0a3159492b3405a8019ce52cdf2c69"></a><!-- doxytag: member="r123array1x64::front" ref="a7c0a3159492b3405a8019ce52cdf2c69" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array1x64.html#af75ba9dbfe38e0a6c143f446b7e4b995">const_reference</a> r123array1x64::front </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ad44244e95f8937e0874dec9083071a85"></a><!-- doxytag: member="r123array1x64::incr" ref="ad44244e95f8937e0874dec9083071a85" args="(uint64_t n=1)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array1x64.html">r123array1x64</a>& r123array1x64::incr </td>
+          <td>(</td>
+          <td class="paramtype">uint64_t </td>
+          <td class="paramname"> <em>n</em> = <code>1</code></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ad848dc3e868f8195ee3eb5029698c976"></a><!-- doxytag: member="r123array1x64::incr_carefully" ref="ad848dc3e868f8195ee3eb5029698c976" args="(uint64_t n)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array1x64.html">r123array1x64</a>& r123array1x64::incr_carefully </td>
+          <td>(</td>
+          <td class="paramtype">uint64_t </td>
+          <td class="paramname"> <em>n</em></td>
+          <td> ) </td>
+          <td><code> [inline, protected]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a1b02d097ca118866b7f696b7c1c5681f"></a><!-- doxytag: member="r123array1x64::max_size" ref="a1b02d097ca118866b7f696b7c1c5681f" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array1x64.html#aa37d85a97cfe1f3f63b1ef1c33497cb7">size_type</a> r123array1x64::max_size </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a0969493a7aac290e5ab2a5135380bc3d"></a><!-- doxytag: member="r123array1x64::operator!=" ref="a0969493a7aac290e5ab2a5135380bc3d" args="(const r123array1x64 &rhs) const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool r123array1x64::operator!= </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structr123array1x64.html">r123array1x64</a> & </td>
+          <td class="paramname"> <em>rhs</em></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a65018edc8a8596e8bdb7500926544a4a"></a><!-- doxytag: member="r123array1x64::operator==" ref="a65018edc8a8596e8bdb7500926544a4a" args="(const r123array1x64 &rhs) const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool r123array1x64::operator== </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structr123array1x64.html">r123array1x64</a> & </td>
+          <td class="paramname"> <em>rhs</em></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa13b237c78d719ecfb5a59cdd557c889"></a><!-- doxytag: member="r123array1x64::operator[]" ref="aa13b237c78d719ecfb5a59cdd557c889" args="(size_type i) const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array1x64.html#af75ba9dbfe38e0a6c143f446b7e4b995">const_reference</a> r123array1x64::operator[] </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array1x64.html#aa37d85a97cfe1f3f63b1ef1c33497cb7">size_type</a> </td>
+          <td class="paramname"> <em>i</em></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a10fbaabd5223f286d6e396e15227569c"></a><!-- doxytag: member="r123array1x64::operator[]" ref="a10fbaabd5223f286d6e396e15227569c" args="(size_type i)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array1x64.html#a6b196cbfb84a28a57f24cd976c6fd6e6">reference</a> r123array1x64::operator[] </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array1x64.html#aa37d85a97cfe1f3f63b1ef1c33497cb7">size_type</a> </td>
+          <td class="paramname"> <em>i</em></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a56196452051f26a10a4bb3c3d7b75fd0"></a><!-- doxytag: member="r123array1x64::rbegin" ref="a56196452051f26a10a4bb3c3d7b75fd0" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array1x64.html#ac9c44218c6761d9e6f422435e49acb17">reverse_iterator</a> r123array1x64::rbegin </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a5b080aafd94d77efda03730b6f853334"></a><!-- doxytag: member="r123array1x64::rbegin" ref="a5b080aafd94d77efda03730b6f853334" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array1x64.html#a61535adf62580285c3182a713ea0f3b1">const_reverse_iterator</a> r123array1x64::rbegin </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a19f9d7dd7371c20fc5001d864da453ff"></a><!-- doxytag: member="r123array1x64::rend" ref="a19f9d7dd7371c20fc5001d864da453ff" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array1x64.html#a61535adf62580285c3182a713ea0f3b1">const_reverse_iterator</a> r123array1x64::rend </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa0f756e941d0e417355d940fd0ed3a33"></a><!-- doxytag: member="r123array1x64::rend" ref="aa0f756e941d0e417355d940fd0ed3a33" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array1x64.html#ac9c44218c6761d9e6f422435e49acb17">reverse_iterator</a> r123array1x64::rend </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a69be3aa9c2588ce86b5ebb72649ce684"></a><!-- doxytag: member="r123array1x64::seed" ref="a69be3aa9c2588ce86b5ebb72649ce684" args="(SeedSeq &ss)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename SeedSeq > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structr123array1x64.html">r123array1x64</a> r123array1x64::seed </td>
+          <td>(</td>
+          <td class="paramtype">SeedSeq & </td>
+          <td class="paramname"> <em>ss</em></td>
+          <td> ) </td>
+          <td><code> [inline, static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a81dba857004f49f48cb0712edaa39e76"></a><!-- doxytag: member="r123array1x64::size" ref="a81dba857004f49f48cb0712edaa39e76" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array1x64.html#aa37d85a97cfe1f3f63b1ef1c33497cb7">size_type</a> r123array1x64::size </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a6f929a34461c49c9571eedc1df65fd20"></a><!-- doxytag: member="r123array1x64::swap" ref="a6f929a34461c49c9571eedc1df65fd20" args="(r123array1x64 &rhs)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void r123array1x64::swap </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array1x64.html">r123array1x64</a> & </td>
+          <td class="paramname"> <em>rhs</em></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/><h2>Member Data Documentation</h2>
+<a class="anchor" id="a951c4b651e15e5ad4f66d81027c8e1b5"></a><!-- doxytag: member="r123array1x64::v" ref="a951c4b651e15e5ad4f66d81027c8e1b5" args="[1]" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">uint64_t <a class="el" href="structr123array1x64.html#a951c4b651e15e5ad4f66d81027c8e1b5">r123array1x64::v</a>[1]</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li>Random123/<a class="el" href="array_8h_source.html">array.h</a></li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/structr123array1xm128i-members.html b/docs/html/structr123array1xm128i-members.html
new file mode 100644
index 0000000..83d0e38
--- /dev/null
+++ b/docs/html/structr123array1xm128i-members.html
@@ -0,0 +1,123 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<h1>r123array1xm128i Member List</h1>  </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="structr123array1xm128i.html">r123array1xm128i</a>, including all inherited members.<table>
+  <tr class="memlist"><td><a class="el" href="structr123array1xm128i.html#a5e8a81ee3f7c3b022554c0023a686700">at</a>(size_type i)</td><td><a class="el" href="structr123array1xm128i.html">r123array1xm128i</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1xm128i.html#a53ad470978c3105c97f502959d31ffa0">at</a>(size_type i) const </td><td><a class="el" href="structr123array1xm128i.html">r123array1xm128i</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1xm128i.html#a082b7b75374d69149ee03d1d228e2508">back</a>()</td><td><a class="el" href="structr123array1xm128i.html">r123array1xm128i</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1xm128i.html#a458be25b18c6e59d5c72e2c4d4ea6354">back</a>() const </td><td><a class="el" href="structr123array1xm128i.html">r123array1xm128i</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1xm128i.html#a275c9837db101efb234c36cff3e7562f">begin</a>()</td><td><a class="el" href="structr123array1xm128i.html">r123array1xm128i</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1xm128i.html#ae9102a4387a7b2013f5098c6c7c14e74">begin</a>() const </td><td><a class="el" href="structr123array1xm128i.html">r123array1xm128i</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1xm128i.html#a335bab18a8bc904e34de0b3d9d1ce596">cbegin</a>() const </td><td><a class="el" href="structr123array1xm128i.html">r123array1xm128i</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1xm128i.html#aa05003cae74984b777610702d27d66d2">cend</a>() const </td><td><a class="el" href="structr123array1xm128i.html">r123array1xm128i</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1xm128i.html#af6be8b009459737fa25d9d2ac7c4e6aa">const_iterator</a> typedef</td><td><a class="el" href="structr123array1xm128i.html">r123array1xm128i</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1xm128i.html#acc3f6ecf7e6a6bc98c3681c80120ed61">const_pointer</a> typedef</td><td><a class="el" href="structr123array1xm128i.html">r123array1xm128i</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1xm128i.html#a84d0123f4376cb6ab77cf817a0cea9cb">const_reference</a> typedef</td><td><a class="el" href="structr123array1xm128i.html">r123array1xm128i</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1xm128i.html#a6bf98ce6373b157b87c6fd4a7006ed68">const_reverse_iterator</a> typedef</td><td><a class="el" href="structr123array1xm128i.html">r123array1xm128i</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1xm128i.html#a673c6cd3131269febe9a985dc76a2e08">crbegin</a>() const </td><td><a class="el" href="structr123array1xm128i.html">r123array1xm128i</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1xm128i.html#aad72d00c81c8f6b9e8fb6b6be98056c6">crend</a>() const </td><td><a class="el" href="structr123array1xm128i.html">r123array1xm128i</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1xm128i.html#acb25bc645e95f975ca6cbcb692add4b4">data</a>()</td><td><a class="el" href="structr123array1xm128i.html">r123array1xm128i</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1xm128i.html#ac66f2efebe9e32433b25f96ea3cf34fe">data</a>() const </td><td><a class="el" href="structr123array1xm128i.html">r123array1xm128i</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1xm128i.html#a319811ed6105c3050135d8ec3ba36f7a">difference_type</a> typedef</td><td><a class="el" href="structr123array1xm128i.html">r123array1xm128i</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1xm128i.html#aa3e59f1626f2cadab5bc66e415ff0c72">empty</a>() const </td><td><a class="el" href="structr123array1xm128i.html">r123array1xm128i</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1xm128i.html#a7383241079a4eae9fee0e184261174fd">end</a>()</td><td><a class="el" href="structr123array1xm128i.html">r123array1xm128i</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1xm128i.html#ae8ddb01064f8cdfbb7314d2f1fbd0dfd">end</a>() const </td><td><a class="el" href="structr123array1xm128i.html">r123array1xm128i</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1xm128i.html#a7eba15dc035724245f70b4a3a98c6a52">fill</a>(const value_type &val)</td><td><a class="el" href="structr123array1xm128i.html">r123array1xm128i</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1xm128i.html#a7efd9b7ccf35c3730fbdafb147e11660">front</a>()</td><td><a class="el" href="structr123array1xm128i.html">r123array1xm128i</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1xm128i.html#a0b5a33169ae87744ab353bfa7dc8f710">front</a>() const </td><td><a class="el" href="structr123array1xm128i.html">r123array1xm128i</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1xm128i.html#a62ee236dafcbfb81ef43d7aa82a66b47">incr</a>(uint64_t n=1)</td><td><a class="el" href="structr123array1xm128i.html">r123array1xm128i</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1xm128i.html#ab35cfd8e9221c294ab7546855373a38c">incr_carefully</a>(uint64_t n)</td><td><a class="el" href="structr123array1xm128i.html">r123array1xm128i</a></td><td><code> [inline, protected]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1xm128i.html#af9db87a7c1ae4c7ba1e355af89b4d22d">iterator</a> typedef</td><td><a class="el" href="structr123array1xm128i.html">r123array1xm128i</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1xm128i.html#a04e2b8952459b7aeabc011532fe3f8fa">max_size</a>() const </td><td><a class="el" href="structr123array1xm128i.html">r123array1xm128i</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1xm128i.html#a60cf5b0e8283c20c386a7935f9ae0a60">operator!=</a>(const r123array1xm128i &rhs) const </td><td><a class="el" href="structr123array1xm128i.html">r123array1xm128i</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1xm128i.html#aa459abf9fe8d15019860de5b3b0cddf8">operator==</a>(const r123array1xm128i &rhs) const </td><td><a class="el" href="structr123array1xm128i.html">r123array1xm128i</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1xm128i.html#aba0d6532c59c3c879bcfbad16cab5748">operator[]</a>(size_type i)</td><td><a class="el" href="structr123array1xm128i.html">r123array1xm128i</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1xm128i.html#aaa3ccbe6c0838b5bdafcd0dfa3c2c074">operator[]</a>(size_type i) const </td><td><a class="el" href="structr123array1xm128i.html">r123array1xm128i</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1xm128i.html#a4f78260ba2ec595bdc56fc21fd45e45a">pointer</a> typedef</td><td><a class="el" href="structr123array1xm128i.html">r123array1xm128i</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1xm128i.html#a78034de911e765ed64162c894fe2ce05">rbegin</a>()</td><td><a class="el" href="structr123array1xm128i.html">r123array1xm128i</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1xm128i.html#acd4e73f214be1dfaae5d2e20559083eb">rbegin</a>() const </td><td><a class="el" href="structr123array1xm128i.html">r123array1xm128i</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1xm128i.html#a34f0cbdac5eb89118ecf2ab5939fbf83">reference</a> typedef</td><td><a class="el" href="structr123array1xm128i.html">r123array1xm128i</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1xm128i.html#aeb47d483223e3e29f6ad156e5c356a20">rend</a>()</td><td><a class="el" href="structr123array1xm128i.html">r123array1xm128i</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1xm128i.html#a1599d2154e1f407bef2d556c985b0c21">rend</a>() const </td><td><a class="el" href="structr123array1xm128i.html">r123array1xm128i</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1xm128i.html#a6a507944eb872540e73e7a839cbc8e30">reverse_iterator</a> typedef</td><td><a class="el" href="structr123array1xm128i.html">r123array1xm128i</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1xm128i.html#a6645aeddeb992559150089c49ac335c8">seed</a>(SeedSeq &ss)</td><td><a class="el" href="structr123array1xm128i.html">r123array1xm128i</a></td><td><code> [inline, static]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1xm128i.html#a3f272a3884d1d5ca7a207fb31a270617">size</a>() const </td><td><a class="el" href="structr123array1xm128i.html">r123array1xm128i</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1xm128i.html#a702efcd8e34016d657ed6141bc767e6c">size_type</a> typedef</td><td><a class="el" href="structr123array1xm128i.html">r123array1xm128i</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1xm128i.html#a130e9722020433db562761a8e51bed2ca32ec6b84a0fa2dd836b04e0ffa69b2bc">static_size</a> enum value</td><td><a class="el" href="structr123array1xm128i.html">r123array1xm128i</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1xm128i.html#a05f536079732d192e572bcf395ab6b4e">swap</a>(r123array1xm128i &rhs)</td><td><a class="el" href="structr123array1xm128i.html">r123array1xm128i</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1xm128i.html#ab6d5e4b23c04e12c1aad7aaf38ff2bd5">v</a></td><td><a class="el" href="structr123array1xm128i.html">r123array1xm128i</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array1xm128i.html#a70ab4e530c7cce9481e07aa0b21dd96b">value_type</a> typedef</td><td><a class="el" href="structr123array1xm128i.html">r123array1xm128i</a></td><td></td></tr>
+</table></div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/structr123array1xm128i.html b/docs/html/structr123array1xm128i.html
new file mode 100644
index 0000000..b311152
--- /dev/null
+++ b/docs/html/structr123array1xm128i.html
@@ -0,0 +1,892 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: r123array1xm128i Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="summary">
+<a href="#pub-types">Public Types</a> |
+<a href="#pub-methods">Public Member Functions</a> |
+<a href="#pub-static-methods">Static Public Member Functions</a> |
+<a href="#pub-attribs">Public Attributes</a> |
+<a href="#pro-methods">Protected Member Functions</a>  </div>
+  <div class="headertitle">
+<h1>r123array1xm128i Struct Reference<br/>
+<small>
+[<a class="el" href="group__arrayNxW.html">The r123arrayNxW classes</a>]</small>
+</h1>  </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="r123array1xm128i" -->
+<p><code>#include <<a class="el" href="array_8h_source.html">Random123/array.h</a>></code></p>
+
+<p><a href="structr123array1xm128i-members.html">List of all members.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-types"></a>
+Public Types</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom">{ <a class="el" href="structr123array1xm128i.html#a130e9722020433db562761a8e51bed2ca32ec6b84a0fa2dd836b04e0ffa69b2bc">static_size</a> =  1
+ }</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123m128i.html">r123m128i</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1xm128i.html#a70ab4e530c7cce9481e07aa0b21dd96b">value_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123m128i.html">r123m128i</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1xm128i.html#af9db87a7c1ae4c7ba1e355af89b4d22d">iterator</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef const <a class="el" href="structr123m128i.html">r123m128i</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1xm128i.html#af6be8b009459737fa25d9d2ac7c4e6aa">const_iterator</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123m128i.html">value_type</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1xm128i.html#a34f0cbdac5eb89118ecf2ab5939fbf83">reference</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef const <a class="el" href="structr123m128i.html">value_type</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1xm128i.html#a84d0123f4376cb6ab77cf817a0cea9cb">const_reference</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1xm128i.html#a702efcd8e34016d657ed6141bc767e6c">size_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef ptrdiff_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1xm128i.html#a319811ed6105c3050135d8ec3ba36f7a">difference_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123m128i.html">r123m128i</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1xm128i.html#a4f78260ba2ec595bdc56fc21fd45e45a">pointer</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef const <a class="el" href="structr123m128i.html">r123m128i</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1xm128i.html#acc3f6ecf7e6a6bc98c3681c80120ed61">const_pointer</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef std::reverse_iterator<br class="typebreak"/>
+< <a class="el" href="structr123m128i.html">iterator</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1xm128i.html#a6a507944eb872540e73e7a839cbc8e30">reverse_iterator</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef std::reverse_iterator<br class="typebreak"/>
+< <a class="el" href="structr123m128i.html">const_iterator</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1xm128i.html#a6bf98ce6373b157b87c6fd4a7006ed68">const_reverse_iterator</a></td></tr>
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123m128i.html">reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1xm128i.html#aba0d6532c59c3c879bcfbad16cab5748">operator[]</a> (<a class="el" href="structr123array1xm128i.html#a702efcd8e34016d657ed6141bc767e6c">size_type</a> i)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123m128i.html">const_reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1xm128i.html#aaa3ccbe6c0838b5bdafcd0dfa3c2c074">operator[]</a> (<a class="el" href="structr123array1xm128i.html#a702efcd8e34016d657ed6141bc767e6c">size_type</a> i) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123m128i.html">reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1xm128i.html#a5e8a81ee3f7c3b022554c0023a686700">at</a> (<a class="el" href="structr123array1xm128i.html#a702efcd8e34016d657ed6141bc767e6c">size_type</a> i)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123m128i.html">const_reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1xm128i.html#a53ad470978c3105c97f502959d31ffa0">at</a> (<a class="el" href="structr123array1xm128i.html#a702efcd8e34016d657ed6141bc767e6c">size_type</a> i) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array1xm128i.html#a702efcd8e34016d657ed6141bc767e6c">size_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1xm128i.html#a3f272a3884d1d5ca7a207fb31a270617">size</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array1xm128i.html#a702efcd8e34016d657ed6141bc767e6c">size_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1xm128i.html#a04e2b8952459b7aeabc011532fe3f8fa">max_size</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1xm128i.html#aa3e59f1626f2cadab5bc66e415ff0c72">empty</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123m128i.html">iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1xm128i.html#a275c9837db101efb234c36cff3e7562f">begin</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123m128i.html">iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1xm128i.html#a7383241079a4eae9fee0e184261174fd">end</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123m128i.html">const_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1xm128i.html#ae9102a4387a7b2013f5098c6c7c14e74">begin</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123m128i.html">const_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1xm128i.html#ae8ddb01064f8cdfbb7314d2f1fbd0dfd">end</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123m128i.html">const_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1xm128i.html#a335bab18a8bc904e34de0b3d9d1ce596">cbegin</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123m128i.html">const_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1xm128i.html#aa05003cae74984b777610702d27d66d2">cend</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array1xm128i.html#a6a507944eb872540e73e7a839cbc8e30">reverse_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1xm128i.html#a78034de911e765ed64162c894fe2ce05">rbegin</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array1xm128i.html#a6bf98ce6373b157b87c6fd4a7006ed68">const_reverse_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1xm128i.html#acd4e73f214be1dfaae5d2e20559083eb">rbegin</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array1xm128i.html#a6a507944eb872540e73e7a839cbc8e30">reverse_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1xm128i.html#aeb47d483223e3e29f6ad156e5c356a20">rend</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array1xm128i.html#a6bf98ce6373b157b87c6fd4a7006ed68">const_reverse_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1xm128i.html#a1599d2154e1f407bef2d556c985b0c21">rend</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array1xm128i.html#a6bf98ce6373b157b87c6fd4a7006ed68">const_reverse_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1xm128i.html#a673c6cd3131269febe9a985dc76a2e08">crbegin</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array1xm128i.html#a6bf98ce6373b157b87c6fd4a7006ed68">const_reverse_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1xm128i.html#aad72d00c81c8f6b9e8fb6b6be98056c6">crend</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123m128i.html">pointer</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1xm128i.html#acb25bc645e95f975ca6cbcb692add4b4">data</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123m128i.html">const_pointer</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1xm128i.html#ac66f2efebe9e32433b25f96ea3cf34fe">data</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123m128i.html">reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1xm128i.html#a7efd9b7ccf35c3730fbdafb147e11660">front</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123m128i.html">const_reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1xm128i.html#a0b5a33169ae87744ab353bfa7dc8f710">front</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123m128i.html">reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1xm128i.html#a082b7b75374d69149ee03d1d228e2508">back</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123m128i.html">const_reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1xm128i.html#a458be25b18c6e59d5c72e2c4d4ea6354">back</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1xm128i.html#aa459abf9fe8d15019860de5b3b0cddf8">operator==</a> (const <a class="el" href="structr123array1xm128i.html">r123array1xm128i</a> &rhs) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1xm128i.html#a60cf5b0e8283c20c386a7935f9ae0a60">operator!=</a> (const <a class="el" href="structr123array1xm128i.html">r123array1xm128i</a> &rhs) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1xm128i.html#a7eba15dc035724245f70b4a3a98c6a52">fill</a> (const <a class="el" href="structr123m128i.html">value_type</a> &val)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1xm128i.html#a05f536079732d192e572bcf395ab6b4e">swap</a> (<a class="el" href="structr123array1xm128i.html">r123array1xm128i</a> &rhs)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array1xm128i.html">r123array1xm128i</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1xm128i.html#a62ee236dafcbfb81ef43d7aa82a66b47">incr</a> (uint64_t n=1)</td></tr>
+<tr><td colspan="2"><h2><a name="pub-static-methods"></a>
+Static Public Member Functions</h2></td></tr>
+<tr><td class="memTemplParams" colspan="2">template<typename SeedSeq > </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">static <a class="el" href="structr123array1xm128i.html">r123array1xm128i</a> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="structr123array1xm128i.html#a6645aeddeb992559150089c49ac335c8">seed</a> (SeedSeq &ss)</td></tr>
+<tr><td colspan="2"><h2><a name="pub-attribs"></a>
+Public Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123m128i.html">r123m128i</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1xm128i.html#ab6d5e4b23c04e12c1aad7aaf38ff2bd5">v</a> [1]</td></tr>
+<tr><td colspan="2"><h2><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array1xm128i.html">r123array1xm128i</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array1xm128i.html#ab35cfd8e9221c294ab7546855373a38c">incr_carefully</a> (uint64_t n)</td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__arrayNxW.html">The r123arrayNxW classes</a> </dd></dl>
+<hr/><h2>Member Typedef Documentation</h2>
+<a class="anchor" id="af6be8b009459737fa25d9d2ac7c4e6aa"></a><!-- doxytag: member="r123array1xm128i::const_iterator" ref="af6be8b009459737fa25d9d2ac7c4e6aa" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef const <a class="el" href="structr123m128i.html">r123m128i</a>* <a class="el" href="structr123m128i.html">r123array1xm128i::const_iterator</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="acc3f6ecf7e6a6bc98c3681c80120ed61"></a><!-- doxytag: member="r123array1xm128i::const_pointer" ref="acc3f6ecf7e6a6bc98c3681c80120ed61" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef const <a class="el" href="structr123m128i.html">r123m128i</a>* <a class="el" href="structr123m128i.html">r123array1xm128i::const_pointer</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a84d0123f4376cb6ab77cf817a0cea9cb"></a><!-- doxytag: member="r123array1xm128i::const_reference" ref="a84d0123f4376cb6ab77cf817a0cea9cb" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef const <a class="el" href="structr123m128i.html">value_type</a>& <a class="el" href="structr123m128i.html">r123array1xm128i::const_reference</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a6bf98ce6373b157b87c6fd4a7006ed68"></a><!-- doxytag: member="r123array1xm128i::const_reverse_iterator" ref="a6bf98ce6373b157b87c6fd4a7006ed68" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef std::reverse_iterator<<a class="el" href="structr123m128i.html">const_iterator</a>> <a class="el" href="structr123array1xm128i.html#a6bf98ce6373b157b87c6fd4a7006ed68">r123array1xm128i::const_reverse_iterator</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a319811ed6105c3050135d8ec3ba36f7a"></a><!-- doxytag: member="r123array1xm128i::difference_type" ref="a319811ed6105c3050135d8ec3ba36f7a" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef ptrdiff_t <a class="el" href="structr123array1xm128i.html#a319811ed6105c3050135d8ec3ba36f7a">r123array1xm128i::difference_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="af9db87a7c1ae4c7ba1e355af89b4d22d"></a><!-- doxytag: member="r123array1xm128i::iterator" ref="af9db87a7c1ae4c7ba1e355af89b4d22d" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="structr123m128i.html">r123m128i</a>* <a class="el" href="structr123m128i.html">r123array1xm128i::iterator</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a4f78260ba2ec595bdc56fc21fd45e45a"></a><!-- doxytag: member="r123array1xm128i::pointer" ref="a4f78260ba2ec595bdc56fc21fd45e45a" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="structr123m128i.html">r123m128i</a>* <a class="el" href="structr123m128i.html">r123array1xm128i::pointer</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a34f0cbdac5eb89118ecf2ab5939fbf83"></a><!-- doxytag: member="r123array1xm128i::reference" ref="a34f0cbdac5eb89118ecf2ab5939fbf83" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="structr123m128i.html">value_type</a>& <a class="el" href="structr123m128i.html">r123array1xm128i::reference</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a6a507944eb872540e73e7a839cbc8e30"></a><!-- doxytag: member="r123array1xm128i::reverse_iterator" ref="a6a507944eb872540e73e7a839cbc8e30" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef std::reverse_iterator<<a class="el" href="structr123m128i.html">iterator</a>> <a class="el" href="structr123array1xm128i.html#a6a507944eb872540e73e7a839cbc8e30">r123array1xm128i::reverse_iterator</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a702efcd8e34016d657ed6141bc767e6c"></a><!-- doxytag: member="r123array1xm128i::size_type" ref="a702efcd8e34016d657ed6141bc767e6c" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef size_t <a class="el" href="structr123array1xm128i.html#a702efcd8e34016d657ed6141bc767e6c">r123array1xm128i::size_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a70ab4e530c7cce9481e07aa0b21dd96b"></a><!-- doxytag: member="r123array1xm128i::value_type" ref="a70ab4e530c7cce9481e07aa0b21dd96b" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="structr123m128i.html">r123m128i</a> <a class="el" href="structr123m128i.html">r123array1xm128i::value_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/><h2>Member Enumeration Documentation</h2>
+<a class="anchor" id="a130e9722020433db562761a8e51bed2c"></a><!-- doxytag: member="r123array1xm128i::@8" ref="a130e9722020433db562761a8e51bed2c" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">anonymous enum</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="a130e9722020433db562761a8e51bed2ca32ec6b84a0fa2dd836b04e0ffa69b2bc"></a><!-- doxytag: member="static_size" ref="a130e9722020433db562761a8e51bed2ca32ec6b84a0fa2dd836b04e0ffa69b2bc" args="" -->static_size</em> </td><td>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="a5e8a81ee3f7c3b022554c0023a686700"></a><!-- doxytag: member="r123array1xm128i::at" ref="a5e8a81ee3f7c3b022554c0023a686700" args="(size_type i)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123m128i.html">reference</a> r123array1xm128i::at </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array1xm128i.html#a702efcd8e34016d657ed6141bc767e6c">size_type</a> </td>
+          <td class="paramname"> <em>i</em></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a53ad470978c3105c97f502959d31ffa0"></a><!-- doxytag: member="r123array1xm128i::at" ref="a53ad470978c3105c97f502959d31ffa0" args="(size_type i) const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123m128i.html">const_reference</a> r123array1xm128i::at </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array1xm128i.html#a702efcd8e34016d657ed6141bc767e6c">size_type</a> </td>
+          <td class="paramname"> <em>i</em></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a082b7b75374d69149ee03d1d228e2508"></a><!-- doxytag: member="r123array1xm128i::back" ref="a082b7b75374d69149ee03d1d228e2508" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123m128i.html">reference</a> r123array1xm128i::back </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a458be25b18c6e59d5c72e2c4d4ea6354"></a><!-- doxytag: member="r123array1xm128i::back" ref="a458be25b18c6e59d5c72e2c4d4ea6354" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123m128i.html">const_reference</a> r123array1xm128i::back </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a275c9837db101efb234c36cff3e7562f"></a><!-- doxytag: member="r123array1xm128i::begin" ref="a275c9837db101efb234c36cff3e7562f" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123m128i.html">iterator</a> r123array1xm128i::begin </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae9102a4387a7b2013f5098c6c7c14e74"></a><!-- doxytag: member="r123array1xm128i::begin" ref="ae9102a4387a7b2013f5098c6c7c14e74" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123m128i.html">const_iterator</a> r123array1xm128i::begin </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a335bab18a8bc904e34de0b3d9d1ce596"></a><!-- doxytag: member="r123array1xm128i::cbegin" ref="a335bab18a8bc904e34de0b3d9d1ce596" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123m128i.html">const_iterator</a> r123array1xm128i::cbegin </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa05003cae74984b777610702d27d66d2"></a><!-- doxytag: member="r123array1xm128i::cend" ref="aa05003cae74984b777610702d27d66d2" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123m128i.html">const_iterator</a> r123array1xm128i::cend </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a673c6cd3131269febe9a985dc76a2e08"></a><!-- doxytag: member="r123array1xm128i::crbegin" ref="a673c6cd3131269febe9a985dc76a2e08" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array1xm128i.html#a6bf98ce6373b157b87c6fd4a7006ed68">const_reverse_iterator</a> r123array1xm128i::crbegin </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aad72d00c81c8f6b9e8fb6b6be98056c6"></a><!-- doxytag: member="r123array1xm128i::crend" ref="aad72d00c81c8f6b9e8fb6b6be98056c6" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array1xm128i.html#a6bf98ce6373b157b87c6fd4a7006ed68">const_reverse_iterator</a> r123array1xm128i::crend </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="acb25bc645e95f975ca6cbcb692add4b4"></a><!-- doxytag: member="r123array1xm128i::data" ref="acb25bc645e95f975ca6cbcb692add4b4" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123m128i.html">pointer</a> r123array1xm128i::data </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ac66f2efebe9e32433b25f96ea3cf34fe"></a><!-- doxytag: member="r123array1xm128i::data" ref="ac66f2efebe9e32433b25f96ea3cf34fe" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123m128i.html">const_pointer</a> r123array1xm128i::data </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa3e59f1626f2cadab5bc66e415ff0c72"></a><!-- doxytag: member="r123array1xm128i::empty" ref="aa3e59f1626f2cadab5bc66e415ff0c72" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool r123array1xm128i::empty </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a7383241079a4eae9fee0e184261174fd"></a><!-- doxytag: member="r123array1xm128i::end" ref="a7383241079a4eae9fee0e184261174fd" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123m128i.html">iterator</a> r123array1xm128i::end </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae8ddb01064f8cdfbb7314d2f1fbd0dfd"></a><!-- doxytag: member="r123array1xm128i::end" ref="ae8ddb01064f8cdfbb7314d2f1fbd0dfd" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123m128i.html">const_iterator</a> r123array1xm128i::end </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a7eba15dc035724245f70b4a3a98c6a52"></a><!-- doxytag: member="r123array1xm128i::fill" ref="a7eba15dc035724245f70b4a3a98c6a52" args="(const value_type &val)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void r123array1xm128i::fill </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structr123m128i.html">value_type</a> & </td>
+          <td class="paramname"> <em>val</em></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a7efd9b7ccf35c3730fbdafb147e11660"></a><!-- doxytag: member="r123array1xm128i::front" ref="a7efd9b7ccf35c3730fbdafb147e11660" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123m128i.html">reference</a> r123array1xm128i::front </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a0b5a33169ae87744ab353bfa7dc8f710"></a><!-- doxytag: member="r123array1xm128i::front" ref="a0b5a33169ae87744ab353bfa7dc8f710" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123m128i.html">const_reference</a> r123array1xm128i::front </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a62ee236dafcbfb81ef43d7aa82a66b47"></a><!-- doxytag: member="r123array1xm128i::incr" ref="a62ee236dafcbfb81ef43d7aa82a66b47" args="(uint64_t n=1)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array1xm128i.html">r123array1xm128i</a>& r123array1xm128i::incr </td>
+          <td>(</td>
+          <td class="paramtype">uint64_t </td>
+          <td class="paramname"> <em>n</em> = <code>1</code></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ab35cfd8e9221c294ab7546855373a38c"></a><!-- doxytag: member="r123array1xm128i::incr_carefully" ref="ab35cfd8e9221c294ab7546855373a38c" args="(uint64_t n)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array1xm128i.html">r123array1xm128i</a>& r123array1xm128i::incr_carefully </td>
+          <td>(</td>
+          <td class="paramtype">uint64_t </td>
+          <td class="paramname"> <em>n</em></td>
+          <td> ) </td>
+          <td><code> [inline, protected]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a04e2b8952459b7aeabc011532fe3f8fa"></a><!-- doxytag: member="r123array1xm128i::max_size" ref="a04e2b8952459b7aeabc011532fe3f8fa" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array1xm128i.html#a702efcd8e34016d657ed6141bc767e6c">size_type</a> r123array1xm128i::max_size </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a60cf5b0e8283c20c386a7935f9ae0a60"></a><!-- doxytag: member="r123array1xm128i::operator!=" ref="a60cf5b0e8283c20c386a7935f9ae0a60" args="(const r123array1xm128i &rhs) const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool r123array1xm128i::operator!= </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structr123array1xm128i.html">r123array1xm128i</a> & </td>
+          <td class="paramname"> <em>rhs</em></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa459abf9fe8d15019860de5b3b0cddf8"></a><!-- doxytag: member="r123array1xm128i::operator==" ref="aa459abf9fe8d15019860de5b3b0cddf8" args="(const r123array1xm128i &rhs) const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool r123array1xm128i::operator== </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structr123array1xm128i.html">r123array1xm128i</a> & </td>
+          <td class="paramname"> <em>rhs</em></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aaa3ccbe6c0838b5bdafcd0dfa3c2c074"></a><!-- doxytag: member="r123array1xm128i::operator[]" ref="aaa3ccbe6c0838b5bdafcd0dfa3c2c074" args="(size_type i) const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123m128i.html">const_reference</a> r123array1xm128i::operator[] </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array1xm128i.html#a702efcd8e34016d657ed6141bc767e6c">size_type</a> </td>
+          <td class="paramname"> <em>i</em></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aba0d6532c59c3c879bcfbad16cab5748"></a><!-- doxytag: member="r123array1xm128i::operator[]" ref="aba0d6532c59c3c879bcfbad16cab5748" args="(size_type i)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123m128i.html">reference</a> r123array1xm128i::operator[] </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array1xm128i.html#a702efcd8e34016d657ed6141bc767e6c">size_type</a> </td>
+          <td class="paramname"> <em>i</em></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a78034de911e765ed64162c894fe2ce05"></a><!-- doxytag: member="r123array1xm128i::rbegin" ref="a78034de911e765ed64162c894fe2ce05" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array1xm128i.html#a6a507944eb872540e73e7a839cbc8e30">reverse_iterator</a> r123array1xm128i::rbegin </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="acd4e73f214be1dfaae5d2e20559083eb"></a><!-- doxytag: member="r123array1xm128i::rbegin" ref="acd4e73f214be1dfaae5d2e20559083eb" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array1xm128i.html#a6bf98ce6373b157b87c6fd4a7006ed68">const_reverse_iterator</a> r123array1xm128i::rbegin </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a1599d2154e1f407bef2d556c985b0c21"></a><!-- doxytag: member="r123array1xm128i::rend" ref="a1599d2154e1f407bef2d556c985b0c21" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array1xm128i.html#a6bf98ce6373b157b87c6fd4a7006ed68">const_reverse_iterator</a> r123array1xm128i::rend </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aeb47d483223e3e29f6ad156e5c356a20"></a><!-- doxytag: member="r123array1xm128i::rend" ref="aeb47d483223e3e29f6ad156e5c356a20" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array1xm128i.html#a6a507944eb872540e73e7a839cbc8e30">reverse_iterator</a> r123array1xm128i::rend </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a6645aeddeb992559150089c49ac335c8"></a><!-- doxytag: member="r123array1xm128i::seed" ref="a6645aeddeb992559150089c49ac335c8" args="(SeedSeq &ss)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename SeedSeq > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structr123array1xm128i.html">r123array1xm128i</a> r123array1xm128i::seed </td>
+          <td>(</td>
+          <td class="paramtype">SeedSeq & </td>
+          <td class="paramname"> <em>ss</em></td>
+          <td> ) </td>
+          <td><code> [inline, static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a3f272a3884d1d5ca7a207fb31a270617"></a><!-- doxytag: member="r123array1xm128i::size" ref="a3f272a3884d1d5ca7a207fb31a270617" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array1xm128i.html#a702efcd8e34016d657ed6141bc767e6c">size_type</a> r123array1xm128i::size </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a05f536079732d192e572bcf395ab6b4e"></a><!-- doxytag: member="r123array1xm128i::swap" ref="a05f536079732d192e572bcf395ab6b4e" args="(r123array1xm128i &rhs)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void r123array1xm128i::swap </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array1xm128i.html">r123array1xm128i</a> & </td>
+          <td class="paramname"> <em>rhs</em></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/><h2>Member Data Documentation</h2>
+<a class="anchor" id="ab6d5e4b23c04e12c1aad7aaf38ff2bd5"></a><!-- doxytag: member="r123array1xm128i::v" ref="ab6d5e4b23c04e12c1aad7aaf38ff2bd5" args="[1]" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123m128i.html">r123m128i</a> <a class="el" href="structr123array1xm128i.html#ab6d5e4b23c04e12c1aad7aaf38ff2bd5">r123array1xm128i::v</a>[1]</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li>Random123/<a class="el" href="array_8h_source.html">array.h</a></li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/structr123array2x32-members.html b/docs/html/structr123array2x32-members.html
new file mode 100644
index 0000000..c5bd825
--- /dev/null
+++ b/docs/html/structr123array2x32-members.html
@@ -0,0 +1,123 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<h1>r123array2x32 Member List</h1>  </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="structr123array2x32.html">r123array2x32</a>, including all inherited members.<table>
+  <tr class="memlist"><td><a class="el" href="structr123array2x32.html#aa29e0ae21be47bda2ac83e6c945b5719">at</a>(size_type i)</td><td><a class="el" href="structr123array2x32.html">r123array2x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x32.html#ae985b8811e4e8849d5f28dae76231dca">at</a>(size_type i) const </td><td><a class="el" href="structr123array2x32.html">r123array2x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x32.html#a3da7214b9946a3c8653312dcfa42a288">back</a>()</td><td><a class="el" href="structr123array2x32.html">r123array2x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x32.html#ae176c02299531373a0fff9a5f55226e5">back</a>() const </td><td><a class="el" href="structr123array2x32.html">r123array2x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x32.html#a96730b28149000a3ea4c6b0f05e1777b">begin</a>()</td><td><a class="el" href="structr123array2x32.html">r123array2x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x32.html#aa52b394a0c44b755e5c0d0409dc2c4ea">begin</a>() const </td><td><a class="el" href="structr123array2x32.html">r123array2x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x32.html#a9687a1e6cdb6b6c9a1ffd8f3c7d2ce45">cbegin</a>() const </td><td><a class="el" href="structr123array2x32.html">r123array2x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x32.html#a9bb4382830c6feb49573b82bb9a18efc">cend</a>() const </td><td><a class="el" href="structr123array2x32.html">r123array2x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x32.html#a7963141a4af4c4aa74708909312a8644">const_iterator</a> typedef</td><td><a class="el" href="structr123array2x32.html">r123array2x32</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x32.html#accf098ed49f9d84cfa3831a9fe183885">const_pointer</a> typedef</td><td><a class="el" href="structr123array2x32.html">r123array2x32</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x32.html#a9d71cce3d7ccea7f48da94cf023e1486">const_reference</a> typedef</td><td><a class="el" href="structr123array2x32.html">r123array2x32</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x32.html#af298f85ad6bda860232465c5abc33618">const_reverse_iterator</a> typedef</td><td><a class="el" href="structr123array2x32.html">r123array2x32</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x32.html#a09b34692bd41a710bf75e19af2353afb">crbegin</a>() const </td><td><a class="el" href="structr123array2x32.html">r123array2x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x32.html#a458da2536084746b5f3face73c9f962d">crend</a>() const </td><td><a class="el" href="structr123array2x32.html">r123array2x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x32.html#a76f2b3cd04d0502121b3c7894663e178">data</a>()</td><td><a class="el" href="structr123array2x32.html">r123array2x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x32.html#a15d5bce0ea3596ad5f7b5aa7432a33df">data</a>() const </td><td><a class="el" href="structr123array2x32.html">r123array2x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x32.html#aa3dfe31d2483fb629a9e3ac304b24d07">difference_type</a> typedef</td><td><a class="el" href="structr123array2x32.html">r123array2x32</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x32.html#acc67c9fedcddd77fdb2727c088eaab9d">empty</a>() const </td><td><a class="el" href="structr123array2x32.html">r123array2x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x32.html#a0d98e92b198e8a314d46f9c6fd0771a7">end</a>()</td><td><a class="el" href="structr123array2x32.html">r123array2x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x32.html#ad64dc05d5114c74d104bca45f21992fd">end</a>() const </td><td><a class="el" href="structr123array2x32.html">r123array2x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x32.html#af7ea9ed8a064e9cab59ee97885bb459e">fill</a>(const value_type &val)</td><td><a class="el" href="structr123array2x32.html">r123array2x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x32.html#ad5e3ba16c4d22c3ac0775337bef3cc70">front</a>()</td><td><a class="el" href="structr123array2x32.html">r123array2x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x32.html#a933676c34296b74eeea8a56a3c904a2c">front</a>() const </td><td><a class="el" href="structr123array2x32.html">r123array2x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x32.html#a7b295f3a299c8cf24a75ab7f9edfe46f">incr</a>(uint64_t n=1)</td><td><a class="el" href="structr123array2x32.html">r123array2x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x32.html#adf128cb5c0abaaa4f119d4bcef47ead9">incr_carefully</a>(uint64_t n)</td><td><a class="el" href="structr123array2x32.html">r123array2x32</a></td><td><code> [inline, protected]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x32.html#a4b447adc28d536d9b7ad7e33d5081a8e">iterator</a> typedef</td><td><a class="el" href="structr123array2x32.html">r123array2x32</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x32.html#a07345b400c5a81e6cd55689d1e38122f">max_size</a>() const </td><td><a class="el" href="structr123array2x32.html">r123array2x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x32.html#aa0c7e561ddeb475329ea8d8178fca2a1">operator!=</a>(const r123array2x32 &rhs) const </td><td><a class="el" href="structr123array2x32.html">r123array2x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x32.html#aa8723e5786c66137e82405a532459b2d">operator==</a>(const r123array2x32 &rhs) const </td><td><a class="el" href="structr123array2x32.html">r123array2x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x32.html#a9926f6938472682c5d31a742378f17de">operator[]</a>(size_type i)</td><td><a class="el" href="structr123array2x32.html">r123array2x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x32.html#a0ae33a5edf89f9f12edec38209b02464">operator[]</a>(size_type i) const </td><td><a class="el" href="structr123array2x32.html">r123array2x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x32.html#ac884bcbd1063811354bfac66262a0b42">pointer</a> typedef</td><td><a class="el" href="structr123array2x32.html">r123array2x32</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x32.html#a54e96198e6cd511dc147348f274b0784">rbegin</a>()</td><td><a class="el" href="structr123array2x32.html">r123array2x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x32.html#a00afca78e25bbb9e0b00e6ab95ecb162">rbegin</a>() const </td><td><a class="el" href="structr123array2x32.html">r123array2x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x32.html#aacd028d9f97ec8a2f484f0eff815abd5">reference</a> typedef</td><td><a class="el" href="structr123array2x32.html">r123array2x32</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x32.html#a383edbf33737eb3e5098d6da4ed326f8">rend</a>()</td><td><a class="el" href="structr123array2x32.html">r123array2x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x32.html#ab3f0841dcd9cea6255406b7bc6363621">rend</a>() const </td><td><a class="el" href="structr123array2x32.html">r123array2x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x32.html#ad0b05bbfee2d432dfef71342f14b8430">reverse_iterator</a> typedef</td><td><a class="el" href="structr123array2x32.html">r123array2x32</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x32.html#a31cf9b80bbcc3c976681b878b7afa046">seed</a>(SeedSeq &ss)</td><td><a class="el" href="structr123array2x32.html">r123array2x32</a></td><td><code> [inline, static]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x32.html#ad3d7310bd3ced1bfb05cbe4f3e753490">size</a>() const </td><td><a class="el" href="structr123array2x32.html">r123array2x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x32.html#ac168a0f0c7eddf1842c9882643b31e91">size_type</a> typedef</td><td><a class="el" href="structr123array2x32.html">r123array2x32</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x32.html#ad6e438ec0d5a08bfb0b71a3ff96ea7e8a5ae3e9837bb88660b088443c1a6fb47a">static_size</a> enum value</td><td><a class="el" href="structr123array2x32.html">r123array2x32</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x32.html#a1eac99d2198007201b9c0040a18b258c">swap</a>(r123array2x32 &rhs)</td><td><a class="el" href="structr123array2x32.html">r123array2x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x32.html#a65524bf06568073021117ef196d6b45f">v</a></td><td><a class="el" href="structr123array2x32.html">r123array2x32</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x32.html#ab669df8d33d32ee3571210eb090c6cb2">value_type</a> typedef</td><td><a class="el" href="structr123array2x32.html">r123array2x32</a></td><td></td></tr>
+</table></div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/structr123array2x32.html b/docs/html/structr123array2x32.html
new file mode 100644
index 0000000..b4bea7a
--- /dev/null
+++ b/docs/html/structr123array2x32.html
@@ -0,0 +1,892 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: r123array2x32 Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="summary">
+<a href="#pub-types">Public Types</a> |
+<a href="#pub-methods">Public Member Functions</a> |
+<a href="#pub-static-methods">Static Public Member Functions</a> |
+<a href="#pub-attribs">Public Attributes</a> |
+<a href="#pro-methods">Protected Member Functions</a>  </div>
+  <div class="headertitle">
+<h1>r123array2x32 Struct Reference<br/>
+<small>
+[<a class="el" href="group__arrayNxW.html">The r123arrayNxW classes</a>]</small>
+</h1>  </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="r123array2x32" -->
+<p><code>#include <<a class="el" href="array_8h_source.html">Random123/array.h</a>></code></p>
+
+<p><a href="structr123array2x32-members.html">List of all members.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-types"></a>
+Public Types</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom">{ <a class="el" href="structr123array2x32.html#ad6e438ec0d5a08bfb0b71a3ff96ea7e8a5ae3e9837bb88660b088443c1a6fb47a">static_size</a> =  2
+ }</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x32.html#ab669df8d33d32ee3571210eb090c6cb2">value_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef uint32_t * </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x32.html#a4b447adc28d536d9b7ad7e33d5081a8e">iterator</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef const uint32_t * </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x32.html#a7963141a4af4c4aa74708909312a8644">const_iterator</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123array2x32.html#ab669df8d33d32ee3571210eb090c6cb2">value_type</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x32.html#aacd028d9f97ec8a2f484f0eff815abd5">reference</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef const <a class="el" href="structr123array2x32.html#ab669df8d33d32ee3571210eb090c6cb2">value_type</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x32.html#a9d71cce3d7ccea7f48da94cf023e1486">const_reference</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x32.html#ac168a0f0c7eddf1842c9882643b31e91">size_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef ptrdiff_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x32.html#aa3dfe31d2483fb629a9e3ac304b24d07">difference_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef uint32_t * </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x32.html#ac884bcbd1063811354bfac66262a0b42">pointer</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef const uint32_t * </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x32.html#accf098ed49f9d84cfa3831a9fe183885">const_pointer</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef std::reverse_iterator<br class="typebreak"/>
+< <a class="el" href="structr123array2x32.html#a4b447adc28d536d9b7ad7e33d5081a8e">iterator</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x32.html#ad0b05bbfee2d432dfef71342f14b8430">reverse_iterator</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef std::reverse_iterator<br class="typebreak"/>
+< <a class="el" href="structr123array2x32.html#a7963141a4af4c4aa74708909312a8644">const_iterator</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x32.html#af298f85ad6bda860232465c5abc33618">const_reverse_iterator</a></td></tr>
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array2x32.html#aacd028d9f97ec8a2f484f0eff815abd5">reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x32.html#a9926f6938472682c5d31a742378f17de">operator[]</a> (<a class="el" href="structr123array2x32.html#ac168a0f0c7eddf1842c9882643b31e91">size_type</a> i)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array2x32.html#a9d71cce3d7ccea7f48da94cf023e1486">const_reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x32.html#a0ae33a5edf89f9f12edec38209b02464">operator[]</a> (<a class="el" href="structr123array2x32.html#ac168a0f0c7eddf1842c9882643b31e91">size_type</a> i) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array2x32.html#aacd028d9f97ec8a2f484f0eff815abd5">reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x32.html#aa29e0ae21be47bda2ac83e6c945b5719">at</a> (<a class="el" href="structr123array2x32.html#ac168a0f0c7eddf1842c9882643b31e91">size_type</a> i)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array2x32.html#a9d71cce3d7ccea7f48da94cf023e1486">const_reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x32.html#ae985b8811e4e8849d5f28dae76231dca">at</a> (<a class="el" href="structr123array2x32.html#ac168a0f0c7eddf1842c9882643b31e91">size_type</a> i) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array2x32.html#ac168a0f0c7eddf1842c9882643b31e91">size_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x32.html#ad3d7310bd3ced1bfb05cbe4f3e753490">size</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array2x32.html#ac168a0f0c7eddf1842c9882643b31e91">size_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x32.html#a07345b400c5a81e6cd55689d1e38122f">max_size</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x32.html#acc67c9fedcddd77fdb2727c088eaab9d">empty</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array2x32.html#a4b447adc28d536d9b7ad7e33d5081a8e">iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x32.html#a96730b28149000a3ea4c6b0f05e1777b">begin</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array2x32.html#a4b447adc28d536d9b7ad7e33d5081a8e">iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x32.html#a0d98e92b198e8a314d46f9c6fd0771a7">end</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array2x32.html#a7963141a4af4c4aa74708909312a8644">const_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x32.html#aa52b394a0c44b755e5c0d0409dc2c4ea">begin</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array2x32.html#a7963141a4af4c4aa74708909312a8644">const_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x32.html#ad64dc05d5114c74d104bca45f21992fd">end</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array2x32.html#a7963141a4af4c4aa74708909312a8644">const_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x32.html#a9687a1e6cdb6b6c9a1ffd8f3c7d2ce45">cbegin</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array2x32.html#a7963141a4af4c4aa74708909312a8644">const_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x32.html#a9bb4382830c6feb49573b82bb9a18efc">cend</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array2x32.html#ad0b05bbfee2d432dfef71342f14b8430">reverse_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x32.html#a54e96198e6cd511dc147348f274b0784">rbegin</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array2x32.html#af298f85ad6bda860232465c5abc33618">const_reverse_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x32.html#a00afca78e25bbb9e0b00e6ab95ecb162">rbegin</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array2x32.html#ad0b05bbfee2d432dfef71342f14b8430">reverse_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x32.html#a383edbf33737eb3e5098d6da4ed326f8">rend</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array2x32.html#af298f85ad6bda860232465c5abc33618">const_reverse_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x32.html#ab3f0841dcd9cea6255406b7bc6363621">rend</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array2x32.html#af298f85ad6bda860232465c5abc33618">const_reverse_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x32.html#a09b34692bd41a710bf75e19af2353afb">crbegin</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array2x32.html#af298f85ad6bda860232465c5abc33618">const_reverse_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x32.html#a458da2536084746b5f3face73c9f962d">crend</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array2x32.html#ac884bcbd1063811354bfac66262a0b42">pointer</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x32.html#a76f2b3cd04d0502121b3c7894663e178">data</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array2x32.html#accf098ed49f9d84cfa3831a9fe183885">const_pointer</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x32.html#a15d5bce0ea3596ad5f7b5aa7432a33df">data</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array2x32.html#aacd028d9f97ec8a2f484f0eff815abd5">reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x32.html#ad5e3ba16c4d22c3ac0775337bef3cc70">front</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array2x32.html#a9d71cce3d7ccea7f48da94cf023e1486">const_reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x32.html#a933676c34296b74eeea8a56a3c904a2c">front</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array2x32.html#aacd028d9f97ec8a2f484f0eff815abd5">reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x32.html#a3da7214b9946a3c8653312dcfa42a288">back</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array2x32.html#a9d71cce3d7ccea7f48da94cf023e1486">const_reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x32.html#ae176c02299531373a0fff9a5f55226e5">back</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x32.html#aa8723e5786c66137e82405a532459b2d">operator==</a> (const <a class="el" href="structr123array2x32.html">r123array2x32</a> &rhs) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x32.html#aa0c7e561ddeb475329ea8d8178fca2a1">operator!=</a> (const <a class="el" href="structr123array2x32.html">r123array2x32</a> &rhs) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x32.html#af7ea9ed8a064e9cab59ee97885bb459e">fill</a> (const <a class="el" href="structr123array2x32.html#ab669df8d33d32ee3571210eb090c6cb2">value_type</a> &val)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x32.html#a1eac99d2198007201b9c0040a18b258c">swap</a> (<a class="el" href="structr123array2x32.html">r123array2x32</a> &rhs)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array2x32.html">r123array2x32</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x32.html#a7b295f3a299c8cf24a75ab7f9edfe46f">incr</a> (uint64_t n=1)</td></tr>
+<tr><td colspan="2"><h2><a name="pub-static-methods"></a>
+Static Public Member Functions</h2></td></tr>
+<tr><td class="memTemplParams" colspan="2">template<typename SeedSeq > </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">static <a class="el" href="structr123array2x32.html">r123array2x32</a> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="structr123array2x32.html#a31cf9b80bbcc3c976681b878b7afa046">seed</a> (SeedSeq &ss)</td></tr>
+<tr><td colspan="2"><h2><a name="pub-attribs"></a>
+Public Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x32.html#a65524bf06568073021117ef196d6b45f">v</a> [2]</td></tr>
+<tr><td colspan="2"><h2><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array2x32.html">r123array2x32</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x32.html#adf128cb5c0abaaa4f119d4bcef47ead9">incr_carefully</a> (uint64_t n)</td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__arrayNxW.html">The r123arrayNxW classes</a> </dd></dl>
+<hr/><h2>Member Typedef Documentation</h2>
+<a class="anchor" id="a7963141a4af4c4aa74708909312a8644"></a><!-- doxytag: member="r123array2x32::const_iterator" ref="a7963141a4af4c4aa74708909312a8644" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef const uint32_t* <a class="el" href="structr123array2x32.html#a7963141a4af4c4aa74708909312a8644">r123array2x32::const_iterator</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="accf098ed49f9d84cfa3831a9fe183885"></a><!-- doxytag: member="r123array2x32::const_pointer" ref="accf098ed49f9d84cfa3831a9fe183885" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef const uint32_t* <a class="el" href="structr123array2x32.html#accf098ed49f9d84cfa3831a9fe183885">r123array2x32::const_pointer</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a9d71cce3d7ccea7f48da94cf023e1486"></a><!-- doxytag: member="r123array2x32::const_reference" ref="a9d71cce3d7ccea7f48da94cf023e1486" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef const <a class="el" href="structr123array2x32.html#ab669df8d33d32ee3571210eb090c6cb2">value_type</a>& <a class="el" href="structr123array2x32.html#a9d71cce3d7ccea7f48da94cf023e1486">r123array2x32::const_reference</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="af298f85ad6bda860232465c5abc33618"></a><!-- doxytag: member="r123array2x32::const_reverse_iterator" ref="af298f85ad6bda860232465c5abc33618" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef std::reverse_iterator<<a class="el" href="structr123array2x32.html#a7963141a4af4c4aa74708909312a8644">const_iterator</a>> <a class="el" href="structr123array2x32.html#af298f85ad6bda860232465c5abc33618">r123array2x32::const_reverse_iterator</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa3dfe31d2483fb629a9e3ac304b24d07"></a><!-- doxytag: member="r123array2x32::difference_type" ref="aa3dfe31d2483fb629a9e3ac304b24d07" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef ptrdiff_t <a class="el" href="structr123array2x32.html#aa3dfe31d2483fb629a9e3ac304b24d07">r123array2x32::difference_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a4b447adc28d536d9b7ad7e33d5081a8e"></a><!-- doxytag: member="r123array2x32::iterator" ref="a4b447adc28d536d9b7ad7e33d5081a8e" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef uint32_t* <a class="el" href="structr123array2x32.html#a4b447adc28d536d9b7ad7e33d5081a8e">r123array2x32::iterator</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ac884bcbd1063811354bfac66262a0b42"></a><!-- doxytag: member="r123array2x32::pointer" ref="ac884bcbd1063811354bfac66262a0b42" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef uint32_t* <a class="el" href="structr123array2x32.html#ac884bcbd1063811354bfac66262a0b42">r123array2x32::pointer</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aacd028d9f97ec8a2f484f0eff815abd5"></a><!-- doxytag: member="r123array2x32::reference" ref="aacd028d9f97ec8a2f484f0eff815abd5" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="structr123array2x32.html#ab669df8d33d32ee3571210eb090c6cb2">value_type</a>& <a class="el" href="structr123array2x32.html#aacd028d9f97ec8a2f484f0eff815abd5">r123array2x32::reference</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ad0b05bbfee2d432dfef71342f14b8430"></a><!-- doxytag: member="r123array2x32::reverse_iterator" ref="ad0b05bbfee2d432dfef71342f14b8430" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef std::reverse_iterator<<a class="el" href="structr123array2x32.html#a4b447adc28d536d9b7ad7e33d5081a8e">iterator</a>> <a class="el" href="structr123array2x32.html#ad0b05bbfee2d432dfef71342f14b8430">r123array2x32::reverse_iterator</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ac168a0f0c7eddf1842c9882643b31e91"></a><!-- doxytag: member="r123array2x32::size_type" ref="ac168a0f0c7eddf1842c9882643b31e91" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef size_t <a class="el" href="structr123array2x32.html#ac168a0f0c7eddf1842c9882643b31e91">r123array2x32::size_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ab669df8d33d32ee3571210eb090c6cb2"></a><!-- doxytag: member="r123array2x32::value_type" ref="ab669df8d33d32ee3571210eb090c6cb2" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef uint32_t <a class="el" href="structr123array2x32.html#ab669df8d33d32ee3571210eb090c6cb2">r123array2x32::value_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/><h2>Member Enumeration Documentation</h2>
+<a class="anchor" id="ad6e438ec0d5a08bfb0b71a3ff96ea7e8"></a><!-- doxytag: member="r123array2x32::@1" ref="ad6e438ec0d5a08bfb0b71a3ff96ea7e8" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">anonymous enum</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="ad6e438ec0d5a08bfb0b71a3ff96ea7e8a5ae3e9837bb88660b088443c1a6fb47a"></a><!-- doxytag: member="static_size" ref="ad6e438ec0d5a08bfb0b71a3ff96ea7e8a5ae3e9837bb88660b088443c1a6fb47a" args="" -->static_size</em> </td><td>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="aa29e0ae21be47bda2ac83e6c945b5719"></a><!-- doxytag: member="r123array2x32::at" ref="aa29e0ae21be47bda2ac83e6c945b5719" args="(size_type i)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array2x32.html#aacd028d9f97ec8a2f484f0eff815abd5">reference</a> r123array2x32::at </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array2x32.html#ac168a0f0c7eddf1842c9882643b31e91">size_type</a> </td>
+          <td class="paramname"> <em>i</em></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae985b8811e4e8849d5f28dae76231dca"></a><!-- doxytag: member="r123array2x32::at" ref="ae985b8811e4e8849d5f28dae76231dca" args="(size_type i) const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array2x32.html#a9d71cce3d7ccea7f48da94cf023e1486">const_reference</a> r123array2x32::at </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array2x32.html#ac168a0f0c7eddf1842c9882643b31e91">size_type</a> </td>
+          <td class="paramname"> <em>i</em></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a3da7214b9946a3c8653312dcfa42a288"></a><!-- doxytag: member="r123array2x32::back" ref="a3da7214b9946a3c8653312dcfa42a288" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array2x32.html#aacd028d9f97ec8a2f484f0eff815abd5">reference</a> r123array2x32::back </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae176c02299531373a0fff9a5f55226e5"></a><!-- doxytag: member="r123array2x32::back" ref="ae176c02299531373a0fff9a5f55226e5" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array2x32.html#a9d71cce3d7ccea7f48da94cf023e1486">const_reference</a> r123array2x32::back </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a96730b28149000a3ea4c6b0f05e1777b"></a><!-- doxytag: member="r123array2x32::begin" ref="a96730b28149000a3ea4c6b0f05e1777b" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array2x32.html#a4b447adc28d536d9b7ad7e33d5081a8e">iterator</a> r123array2x32::begin </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa52b394a0c44b755e5c0d0409dc2c4ea"></a><!-- doxytag: member="r123array2x32::begin" ref="aa52b394a0c44b755e5c0d0409dc2c4ea" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array2x32.html#a7963141a4af4c4aa74708909312a8644">const_iterator</a> r123array2x32::begin </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a9687a1e6cdb6b6c9a1ffd8f3c7d2ce45"></a><!-- doxytag: member="r123array2x32::cbegin" ref="a9687a1e6cdb6b6c9a1ffd8f3c7d2ce45" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array2x32.html#a7963141a4af4c4aa74708909312a8644">const_iterator</a> r123array2x32::cbegin </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a9bb4382830c6feb49573b82bb9a18efc"></a><!-- doxytag: member="r123array2x32::cend" ref="a9bb4382830c6feb49573b82bb9a18efc" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array2x32.html#a7963141a4af4c4aa74708909312a8644">const_iterator</a> r123array2x32::cend </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a09b34692bd41a710bf75e19af2353afb"></a><!-- doxytag: member="r123array2x32::crbegin" ref="a09b34692bd41a710bf75e19af2353afb" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array2x32.html#af298f85ad6bda860232465c5abc33618">const_reverse_iterator</a> r123array2x32::crbegin </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a458da2536084746b5f3face73c9f962d"></a><!-- doxytag: member="r123array2x32::crend" ref="a458da2536084746b5f3face73c9f962d" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array2x32.html#af298f85ad6bda860232465c5abc33618">const_reverse_iterator</a> r123array2x32::crend </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a76f2b3cd04d0502121b3c7894663e178"></a><!-- doxytag: member="r123array2x32::data" ref="a76f2b3cd04d0502121b3c7894663e178" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array2x32.html#ac884bcbd1063811354bfac66262a0b42">pointer</a> r123array2x32::data </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a15d5bce0ea3596ad5f7b5aa7432a33df"></a><!-- doxytag: member="r123array2x32::data" ref="a15d5bce0ea3596ad5f7b5aa7432a33df" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array2x32.html#accf098ed49f9d84cfa3831a9fe183885">const_pointer</a> r123array2x32::data </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="acc67c9fedcddd77fdb2727c088eaab9d"></a><!-- doxytag: member="r123array2x32::empty" ref="acc67c9fedcddd77fdb2727c088eaab9d" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool r123array2x32::empty </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a0d98e92b198e8a314d46f9c6fd0771a7"></a><!-- doxytag: member="r123array2x32::end" ref="a0d98e92b198e8a314d46f9c6fd0771a7" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array2x32.html#a4b447adc28d536d9b7ad7e33d5081a8e">iterator</a> r123array2x32::end </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ad64dc05d5114c74d104bca45f21992fd"></a><!-- doxytag: member="r123array2x32::end" ref="ad64dc05d5114c74d104bca45f21992fd" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array2x32.html#a7963141a4af4c4aa74708909312a8644">const_iterator</a> r123array2x32::end </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="af7ea9ed8a064e9cab59ee97885bb459e"></a><!-- doxytag: member="r123array2x32::fill" ref="af7ea9ed8a064e9cab59ee97885bb459e" args="(const value_type &val)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void r123array2x32::fill </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structr123array2x32.html#ab669df8d33d32ee3571210eb090c6cb2">value_type</a> & </td>
+          <td class="paramname"> <em>val</em></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ad5e3ba16c4d22c3ac0775337bef3cc70"></a><!-- doxytag: member="r123array2x32::front" ref="ad5e3ba16c4d22c3ac0775337bef3cc70" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array2x32.html#aacd028d9f97ec8a2f484f0eff815abd5">reference</a> r123array2x32::front </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a933676c34296b74eeea8a56a3c904a2c"></a><!-- doxytag: member="r123array2x32::front" ref="a933676c34296b74eeea8a56a3c904a2c" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array2x32.html#a9d71cce3d7ccea7f48da94cf023e1486">const_reference</a> r123array2x32::front </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a7b295f3a299c8cf24a75ab7f9edfe46f"></a><!-- doxytag: member="r123array2x32::incr" ref="a7b295f3a299c8cf24a75ab7f9edfe46f" args="(uint64_t n=1)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array2x32.html">r123array2x32</a>& r123array2x32::incr </td>
+          <td>(</td>
+          <td class="paramtype">uint64_t </td>
+          <td class="paramname"> <em>n</em> = <code>1</code></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="adf128cb5c0abaaa4f119d4bcef47ead9"></a><!-- doxytag: member="r123array2x32::incr_carefully" ref="adf128cb5c0abaaa4f119d4bcef47ead9" args="(uint64_t n)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array2x32.html">r123array2x32</a>& r123array2x32::incr_carefully </td>
+          <td>(</td>
+          <td class="paramtype">uint64_t </td>
+          <td class="paramname"> <em>n</em></td>
+          <td> ) </td>
+          <td><code> [inline, protected]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a07345b400c5a81e6cd55689d1e38122f"></a><!-- doxytag: member="r123array2x32::max_size" ref="a07345b400c5a81e6cd55689d1e38122f" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array2x32.html#ac168a0f0c7eddf1842c9882643b31e91">size_type</a> r123array2x32::max_size </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa0c7e561ddeb475329ea8d8178fca2a1"></a><!-- doxytag: member="r123array2x32::operator!=" ref="aa0c7e561ddeb475329ea8d8178fca2a1" args="(const r123array2x32 &rhs) const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool r123array2x32::operator!= </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structr123array2x32.html">r123array2x32</a> & </td>
+          <td class="paramname"> <em>rhs</em></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa8723e5786c66137e82405a532459b2d"></a><!-- doxytag: member="r123array2x32::operator==" ref="aa8723e5786c66137e82405a532459b2d" args="(const r123array2x32 &rhs) const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool r123array2x32::operator== </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structr123array2x32.html">r123array2x32</a> & </td>
+          <td class="paramname"> <em>rhs</em></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a0ae33a5edf89f9f12edec38209b02464"></a><!-- doxytag: member="r123array2x32::operator[]" ref="a0ae33a5edf89f9f12edec38209b02464" args="(size_type i) const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array2x32.html#a9d71cce3d7ccea7f48da94cf023e1486">const_reference</a> r123array2x32::operator[] </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array2x32.html#ac168a0f0c7eddf1842c9882643b31e91">size_type</a> </td>
+          <td class="paramname"> <em>i</em></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a9926f6938472682c5d31a742378f17de"></a><!-- doxytag: member="r123array2x32::operator[]" ref="a9926f6938472682c5d31a742378f17de" args="(size_type i)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array2x32.html#aacd028d9f97ec8a2f484f0eff815abd5">reference</a> r123array2x32::operator[] </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array2x32.html#ac168a0f0c7eddf1842c9882643b31e91">size_type</a> </td>
+          <td class="paramname"> <em>i</em></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a54e96198e6cd511dc147348f274b0784"></a><!-- doxytag: member="r123array2x32::rbegin" ref="a54e96198e6cd511dc147348f274b0784" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array2x32.html#ad0b05bbfee2d432dfef71342f14b8430">reverse_iterator</a> r123array2x32::rbegin </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a00afca78e25bbb9e0b00e6ab95ecb162"></a><!-- doxytag: member="r123array2x32::rbegin" ref="a00afca78e25bbb9e0b00e6ab95ecb162" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array2x32.html#af298f85ad6bda860232465c5abc33618">const_reverse_iterator</a> r123array2x32::rbegin </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ab3f0841dcd9cea6255406b7bc6363621"></a><!-- doxytag: member="r123array2x32::rend" ref="ab3f0841dcd9cea6255406b7bc6363621" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array2x32.html#af298f85ad6bda860232465c5abc33618">const_reverse_iterator</a> r123array2x32::rend </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a383edbf33737eb3e5098d6da4ed326f8"></a><!-- doxytag: member="r123array2x32::rend" ref="a383edbf33737eb3e5098d6da4ed326f8" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array2x32.html#ad0b05bbfee2d432dfef71342f14b8430">reverse_iterator</a> r123array2x32::rend </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a31cf9b80bbcc3c976681b878b7afa046"></a><!-- doxytag: member="r123array2x32::seed" ref="a31cf9b80bbcc3c976681b878b7afa046" args="(SeedSeq &ss)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename SeedSeq > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structr123array2x32.html">r123array2x32</a> r123array2x32::seed </td>
+          <td>(</td>
+          <td class="paramtype">SeedSeq & </td>
+          <td class="paramname"> <em>ss</em></td>
+          <td> ) </td>
+          <td><code> [inline, static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ad3d7310bd3ced1bfb05cbe4f3e753490"></a><!-- doxytag: member="r123array2x32::size" ref="ad3d7310bd3ced1bfb05cbe4f3e753490" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array2x32.html#ac168a0f0c7eddf1842c9882643b31e91">size_type</a> r123array2x32::size </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a1eac99d2198007201b9c0040a18b258c"></a><!-- doxytag: member="r123array2x32::swap" ref="a1eac99d2198007201b9c0040a18b258c" args="(r123array2x32 &rhs)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void r123array2x32::swap </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array2x32.html">r123array2x32</a> & </td>
+          <td class="paramname"> <em>rhs</em></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/><h2>Member Data Documentation</h2>
+<a class="anchor" id="a65524bf06568073021117ef196d6b45f"></a><!-- doxytag: member="r123array2x32::v" ref="a65524bf06568073021117ef196d6b45f" args="[2]" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">uint32_t <a class="el" href="structr123array2x32.html#a65524bf06568073021117ef196d6b45f">r123array2x32::v</a>[2]</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li>Random123/<a class="el" href="array_8h_source.html">array.h</a></li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/structr123array2x64-members.html b/docs/html/structr123array2x64-members.html
new file mode 100644
index 0000000..183957c
--- /dev/null
+++ b/docs/html/structr123array2x64-members.html
@@ -0,0 +1,123 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<h1>r123array2x64 Member List</h1>  </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="structr123array2x64.html">r123array2x64</a>, including all inherited members.<table>
+  <tr class="memlist"><td><a class="el" href="structr123array2x64.html#a46789872cf0f3a6310f864b2a35b2ea7">at</a>(size_type i)</td><td><a class="el" href="structr123array2x64.html">r123array2x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x64.html#a971ddfa7c395d161028e16c829179f3c">at</a>(size_type i) const </td><td><a class="el" href="structr123array2x64.html">r123array2x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x64.html#a9beb3e776cb4f3cbee6846518749cb03">back</a>()</td><td><a class="el" href="structr123array2x64.html">r123array2x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x64.html#ac72fd3a39821ca25f94258f97da371c5">back</a>() const </td><td><a class="el" href="structr123array2x64.html">r123array2x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x64.html#a0fcc60a49efd917a3b630cf53c526311">begin</a>()</td><td><a class="el" href="structr123array2x64.html">r123array2x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x64.html#a8cf4fadef6bdc6d438db173bc1d31165">begin</a>() const </td><td><a class="el" href="structr123array2x64.html">r123array2x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x64.html#ad1ccbda4186dbb8c0a673db1ec0957c0">cbegin</a>() const </td><td><a class="el" href="structr123array2x64.html">r123array2x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x64.html#ac80c7ce6fe5bd9ca8baf03db1e67a7e9">cend</a>() const </td><td><a class="el" href="structr123array2x64.html">r123array2x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x64.html#ae4f249e82506274b19e6077c3d3f03af">const_iterator</a> typedef</td><td><a class="el" href="structr123array2x64.html">r123array2x64</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x64.html#a3a13a452ca15f62f8ddcd8b7de9efa08">const_pointer</a> typedef</td><td><a class="el" href="structr123array2x64.html">r123array2x64</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x64.html#a5d80c6b28d869a5422d99541ee1fb93f">const_reference</a> typedef</td><td><a class="el" href="structr123array2x64.html">r123array2x64</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x64.html#aa37f04aef8a808c76715b3b2d49c3c30">const_reverse_iterator</a> typedef</td><td><a class="el" href="structr123array2x64.html">r123array2x64</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x64.html#a198ff47db0778d88db4fabe5f7721564">crbegin</a>() const </td><td><a class="el" href="structr123array2x64.html">r123array2x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x64.html#a5bddb882c7c9a493c382d3ce0d6d6079">crend</a>() const </td><td><a class="el" href="structr123array2x64.html">r123array2x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x64.html#a9a6eb23f15f9ee3a55f39b951798a739">data</a>()</td><td><a class="el" href="structr123array2x64.html">r123array2x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x64.html#a9cdb592780378bdcc8a560e31e11f084">data</a>() const </td><td><a class="el" href="structr123array2x64.html">r123array2x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x64.html#a4227cd6be973fdb0d72398d0b5604da8">difference_type</a> typedef</td><td><a class="el" href="structr123array2x64.html">r123array2x64</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x64.html#a60ed2f5af6357930b50a8de8f294f5c2">empty</a>() const </td><td><a class="el" href="structr123array2x64.html">r123array2x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x64.html#a24679f6a101d9d25b339106a771c4e68">end</a>()</td><td><a class="el" href="structr123array2x64.html">r123array2x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x64.html#af16f99514770cb88a57e36b1b849e80d">end</a>() const </td><td><a class="el" href="structr123array2x64.html">r123array2x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x64.html#a30d20bbf203dbd0b592c6cb58cb6dcdb">fill</a>(const value_type &val)</td><td><a class="el" href="structr123array2x64.html">r123array2x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x64.html#a95b79f70de75c8346dbae7c5f933d076">front</a>()</td><td><a class="el" href="structr123array2x64.html">r123array2x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x64.html#a21cf5457f945f5c00b16ce4a73797c1b">front</a>() const </td><td><a class="el" href="structr123array2x64.html">r123array2x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x64.html#ac33e6336c8aee10e38259510ef76e5cf">incr</a>(uint64_t n=1)</td><td><a class="el" href="structr123array2x64.html">r123array2x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x64.html#a52ddbfa3edbd9fa7f30e1402a9240da1">incr_carefully</a>(uint64_t n)</td><td><a class="el" href="structr123array2x64.html">r123array2x64</a></td><td><code> [inline, protected]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x64.html#ac0fc5019e017f50e29d26df233085e56">iterator</a> typedef</td><td><a class="el" href="structr123array2x64.html">r123array2x64</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x64.html#a03f7c9e37e59210b1d2b9390e415e289">max_size</a>() const </td><td><a class="el" href="structr123array2x64.html">r123array2x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x64.html#a1ddc25ec182ac3b119e420f5e21c3f87">operator!=</a>(const r123array2x64 &rhs) const </td><td><a class="el" href="structr123array2x64.html">r123array2x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x64.html#aa690f425f846ff9908a734eb720df573">operator==</a>(const r123array2x64 &rhs) const </td><td><a class="el" href="structr123array2x64.html">r123array2x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x64.html#a7352cdb2c025b0373ece5c84409a1b1d">operator[]</a>(size_type i)</td><td><a class="el" href="structr123array2x64.html">r123array2x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x64.html#ae534a7e32afae58303ccc8379408551b">operator[]</a>(size_type i) const </td><td><a class="el" href="structr123array2x64.html">r123array2x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x64.html#a3b0b967b9ae134da266448c190f59c3a">pointer</a> typedef</td><td><a class="el" href="structr123array2x64.html">r123array2x64</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x64.html#a6888b98627db6056afe3f4ee3396a9a6">rbegin</a>()</td><td><a class="el" href="structr123array2x64.html">r123array2x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x64.html#ad6720531d85d0c284ce32cde3b82a9da">rbegin</a>() const </td><td><a class="el" href="structr123array2x64.html">r123array2x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x64.html#a7150b3ad865d00ca1f753accd8165336">reference</a> typedef</td><td><a class="el" href="structr123array2x64.html">r123array2x64</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x64.html#ad1e373b457921fc672ed8892180431eb">rend</a>()</td><td><a class="el" href="structr123array2x64.html">r123array2x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x64.html#ad96f87786a8a277bf553d0c5584c20c1">rend</a>() const </td><td><a class="el" href="structr123array2x64.html">r123array2x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x64.html#abcbf25662447a5241ed4d19c202f647a">reverse_iterator</a> typedef</td><td><a class="el" href="structr123array2x64.html">r123array2x64</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x64.html#a3e5afc5e4c6886611630cec365d8397b">seed</a>(SeedSeq &ss)</td><td><a class="el" href="structr123array2x64.html">r123array2x64</a></td><td><code> [inline, static]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x64.html#a10e19c13a970156c4fc18fa070dc9756">size</a>() const </td><td><a class="el" href="structr123array2x64.html">r123array2x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x64.html#aacb6269c183cc408285dca02e3b55526">size_type</a> typedef</td><td><a class="el" href="structr123array2x64.html">r123array2x64</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x64.html#aa8ed42c5bf709f879674643a70e71dbca6219dc89b2a7ffde9b00364177f5b846">static_size</a> enum value</td><td><a class="el" href="structr123array2x64.html">r123array2x64</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x64.html#a78ea0dba10b77c9f228108df9ab09c9d">swap</a>(r123array2x64 &rhs)</td><td><a class="el" href="structr123array2x64.html">r123array2x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x64.html#a547e4a51e531cf36eef885fbf20a7048">v</a></td><td><a class="el" href="structr123array2x64.html">r123array2x64</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array2x64.html#acefd9fb46661254e17877844c545e15f">value_type</a> typedef</td><td><a class="el" href="structr123array2x64.html">r123array2x64</a></td><td></td></tr>
+</table></div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/structr123array2x64.html b/docs/html/structr123array2x64.html
new file mode 100644
index 0000000..0b351f6
--- /dev/null
+++ b/docs/html/structr123array2x64.html
@@ -0,0 +1,892 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: r123array2x64 Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="summary">
+<a href="#pub-types">Public Types</a> |
+<a href="#pub-methods">Public Member Functions</a> |
+<a href="#pub-static-methods">Static Public Member Functions</a> |
+<a href="#pub-attribs">Public Attributes</a> |
+<a href="#pro-methods">Protected Member Functions</a>  </div>
+  <div class="headertitle">
+<h1>r123array2x64 Struct Reference<br/>
+<small>
+[<a class="el" href="group__arrayNxW.html">The r123arrayNxW classes</a>]</small>
+</h1>  </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="r123array2x64" -->
+<p><code>#include <<a class="el" href="array_8h_source.html">Random123/array.h</a>></code></p>
+
+<p><a href="structr123array2x64-members.html">List of all members.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-types"></a>
+Public Types</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom">{ <a class="el" href="structr123array2x64.html#aa8ed42c5bf709f879674643a70e71dbca6219dc89b2a7ffde9b00364177f5b846">static_size</a> =  2
+ }</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef uint64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x64.html#acefd9fb46661254e17877844c545e15f">value_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef uint64_t * </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x64.html#ac0fc5019e017f50e29d26df233085e56">iterator</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef const uint64_t * </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x64.html#ae4f249e82506274b19e6077c3d3f03af">const_iterator</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123array2x64.html#acefd9fb46661254e17877844c545e15f">value_type</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x64.html#a7150b3ad865d00ca1f753accd8165336">reference</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef const <a class="el" href="structr123array2x64.html#acefd9fb46661254e17877844c545e15f">value_type</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x64.html#a5d80c6b28d869a5422d99541ee1fb93f">const_reference</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x64.html#aacb6269c183cc408285dca02e3b55526">size_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef ptrdiff_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x64.html#a4227cd6be973fdb0d72398d0b5604da8">difference_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef uint64_t * </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x64.html#a3b0b967b9ae134da266448c190f59c3a">pointer</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef const uint64_t * </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x64.html#a3a13a452ca15f62f8ddcd8b7de9efa08">const_pointer</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef std::reverse_iterator<br class="typebreak"/>
+< <a class="el" href="structr123array2x64.html#ac0fc5019e017f50e29d26df233085e56">iterator</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x64.html#abcbf25662447a5241ed4d19c202f647a">reverse_iterator</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef std::reverse_iterator<br class="typebreak"/>
+< <a class="el" href="structr123array2x64.html#ae4f249e82506274b19e6077c3d3f03af">const_iterator</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x64.html#aa37f04aef8a808c76715b3b2d49c3c30">const_reverse_iterator</a></td></tr>
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array2x64.html#a7150b3ad865d00ca1f753accd8165336">reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x64.html#a7352cdb2c025b0373ece5c84409a1b1d">operator[]</a> (<a class="el" href="structr123array2x64.html#aacb6269c183cc408285dca02e3b55526">size_type</a> i)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array2x64.html#a5d80c6b28d869a5422d99541ee1fb93f">const_reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x64.html#ae534a7e32afae58303ccc8379408551b">operator[]</a> (<a class="el" href="structr123array2x64.html#aacb6269c183cc408285dca02e3b55526">size_type</a> i) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array2x64.html#a7150b3ad865d00ca1f753accd8165336">reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x64.html#a46789872cf0f3a6310f864b2a35b2ea7">at</a> (<a class="el" href="structr123array2x64.html#aacb6269c183cc408285dca02e3b55526">size_type</a> i)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array2x64.html#a5d80c6b28d869a5422d99541ee1fb93f">const_reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x64.html#a971ddfa7c395d161028e16c829179f3c">at</a> (<a class="el" href="structr123array2x64.html#aacb6269c183cc408285dca02e3b55526">size_type</a> i) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array2x64.html#aacb6269c183cc408285dca02e3b55526">size_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x64.html#a10e19c13a970156c4fc18fa070dc9756">size</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array2x64.html#aacb6269c183cc408285dca02e3b55526">size_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x64.html#a03f7c9e37e59210b1d2b9390e415e289">max_size</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x64.html#a60ed2f5af6357930b50a8de8f294f5c2">empty</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array2x64.html#ac0fc5019e017f50e29d26df233085e56">iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x64.html#a0fcc60a49efd917a3b630cf53c526311">begin</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array2x64.html#ac0fc5019e017f50e29d26df233085e56">iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x64.html#a24679f6a101d9d25b339106a771c4e68">end</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array2x64.html#ae4f249e82506274b19e6077c3d3f03af">const_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x64.html#a8cf4fadef6bdc6d438db173bc1d31165">begin</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array2x64.html#ae4f249e82506274b19e6077c3d3f03af">const_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x64.html#af16f99514770cb88a57e36b1b849e80d">end</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array2x64.html#ae4f249e82506274b19e6077c3d3f03af">const_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x64.html#ad1ccbda4186dbb8c0a673db1ec0957c0">cbegin</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array2x64.html#ae4f249e82506274b19e6077c3d3f03af">const_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x64.html#ac80c7ce6fe5bd9ca8baf03db1e67a7e9">cend</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array2x64.html#abcbf25662447a5241ed4d19c202f647a">reverse_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x64.html#a6888b98627db6056afe3f4ee3396a9a6">rbegin</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array2x64.html#aa37f04aef8a808c76715b3b2d49c3c30">const_reverse_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x64.html#ad6720531d85d0c284ce32cde3b82a9da">rbegin</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array2x64.html#abcbf25662447a5241ed4d19c202f647a">reverse_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x64.html#ad1e373b457921fc672ed8892180431eb">rend</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array2x64.html#aa37f04aef8a808c76715b3b2d49c3c30">const_reverse_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x64.html#ad96f87786a8a277bf553d0c5584c20c1">rend</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array2x64.html#aa37f04aef8a808c76715b3b2d49c3c30">const_reverse_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x64.html#a198ff47db0778d88db4fabe5f7721564">crbegin</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array2x64.html#aa37f04aef8a808c76715b3b2d49c3c30">const_reverse_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x64.html#a5bddb882c7c9a493c382d3ce0d6d6079">crend</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array2x64.html#a3b0b967b9ae134da266448c190f59c3a">pointer</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x64.html#a9a6eb23f15f9ee3a55f39b951798a739">data</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array2x64.html#a3a13a452ca15f62f8ddcd8b7de9efa08">const_pointer</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x64.html#a9cdb592780378bdcc8a560e31e11f084">data</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array2x64.html#a7150b3ad865d00ca1f753accd8165336">reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x64.html#a95b79f70de75c8346dbae7c5f933d076">front</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array2x64.html#a5d80c6b28d869a5422d99541ee1fb93f">const_reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x64.html#a21cf5457f945f5c00b16ce4a73797c1b">front</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array2x64.html#a7150b3ad865d00ca1f753accd8165336">reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x64.html#a9beb3e776cb4f3cbee6846518749cb03">back</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array2x64.html#a5d80c6b28d869a5422d99541ee1fb93f">const_reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x64.html#ac72fd3a39821ca25f94258f97da371c5">back</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x64.html#aa690f425f846ff9908a734eb720df573">operator==</a> (const <a class="el" href="structr123array2x64.html">r123array2x64</a> &rhs) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x64.html#a1ddc25ec182ac3b119e420f5e21c3f87">operator!=</a> (const <a class="el" href="structr123array2x64.html">r123array2x64</a> &rhs) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x64.html#a30d20bbf203dbd0b592c6cb58cb6dcdb">fill</a> (const <a class="el" href="structr123array2x64.html#acefd9fb46661254e17877844c545e15f">value_type</a> &val)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x64.html#a78ea0dba10b77c9f228108df9ab09c9d">swap</a> (<a class="el" href="structr123array2x64.html">r123array2x64</a> &rhs)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array2x64.html">r123array2x64</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x64.html#ac33e6336c8aee10e38259510ef76e5cf">incr</a> (uint64_t n=1)</td></tr>
+<tr><td colspan="2"><h2><a name="pub-static-methods"></a>
+Static Public Member Functions</h2></td></tr>
+<tr><td class="memTemplParams" colspan="2">template<typename SeedSeq > </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">static <a class="el" href="structr123array2x64.html">r123array2x64</a> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="structr123array2x64.html#a3e5afc5e4c6886611630cec365d8397b">seed</a> (SeedSeq &ss)</td></tr>
+<tr><td colspan="2"><h2><a name="pub-attribs"></a>
+Public Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">uint64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x64.html#a547e4a51e531cf36eef885fbf20a7048">v</a> [2]</td></tr>
+<tr><td colspan="2"><h2><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array2x64.html">r123array2x64</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array2x64.html#a52ddbfa3edbd9fa7f30e1402a9240da1">incr_carefully</a> (uint64_t n)</td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__arrayNxW.html">The r123arrayNxW classes</a> </dd></dl>
+<hr/><h2>Member Typedef Documentation</h2>
+<a class="anchor" id="ae4f249e82506274b19e6077c3d3f03af"></a><!-- doxytag: member="r123array2x64::const_iterator" ref="ae4f249e82506274b19e6077c3d3f03af" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef const uint64_t* <a class="el" href="structr123array2x64.html#ae4f249e82506274b19e6077c3d3f03af">r123array2x64::const_iterator</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a3a13a452ca15f62f8ddcd8b7de9efa08"></a><!-- doxytag: member="r123array2x64::const_pointer" ref="a3a13a452ca15f62f8ddcd8b7de9efa08" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef const uint64_t* <a class="el" href="structr123array2x64.html#a3a13a452ca15f62f8ddcd8b7de9efa08">r123array2x64::const_pointer</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a5d80c6b28d869a5422d99541ee1fb93f"></a><!-- doxytag: member="r123array2x64::const_reference" ref="a5d80c6b28d869a5422d99541ee1fb93f" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef const <a class="el" href="structr123array2x64.html#acefd9fb46661254e17877844c545e15f">value_type</a>& <a class="el" href="structr123array2x64.html#a5d80c6b28d869a5422d99541ee1fb93f">r123array2x64::const_reference</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa37f04aef8a808c76715b3b2d49c3c30"></a><!-- doxytag: member="r123array2x64::const_reverse_iterator" ref="aa37f04aef8a808c76715b3b2d49c3c30" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef std::reverse_iterator<<a class="el" href="structr123array2x64.html#ae4f249e82506274b19e6077c3d3f03af">const_iterator</a>> <a class="el" href="structr123array2x64.html#aa37f04aef8a808c76715b3b2d49c3c30">r123array2x64::const_reverse_iterator</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a4227cd6be973fdb0d72398d0b5604da8"></a><!-- doxytag: member="r123array2x64::difference_type" ref="a4227cd6be973fdb0d72398d0b5604da8" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef ptrdiff_t <a class="el" href="structr123array2x64.html#a4227cd6be973fdb0d72398d0b5604da8">r123array2x64::difference_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ac0fc5019e017f50e29d26df233085e56"></a><!-- doxytag: member="r123array2x64::iterator" ref="ac0fc5019e017f50e29d26df233085e56" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef uint64_t* <a class="el" href="structr123array2x64.html#ac0fc5019e017f50e29d26df233085e56">r123array2x64::iterator</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a3b0b967b9ae134da266448c190f59c3a"></a><!-- doxytag: member="r123array2x64::pointer" ref="a3b0b967b9ae134da266448c190f59c3a" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef uint64_t* <a class="el" href="structr123array2x64.html#a3b0b967b9ae134da266448c190f59c3a">r123array2x64::pointer</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a7150b3ad865d00ca1f753accd8165336"></a><!-- doxytag: member="r123array2x64::reference" ref="a7150b3ad865d00ca1f753accd8165336" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="structr123array2x64.html#acefd9fb46661254e17877844c545e15f">value_type</a>& <a class="el" href="structr123array2x64.html#a7150b3ad865d00ca1f753accd8165336">r123array2x64::reference</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="abcbf25662447a5241ed4d19c202f647a"></a><!-- doxytag: member="r123array2x64::reverse_iterator" ref="abcbf25662447a5241ed4d19c202f647a" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef std::reverse_iterator<<a class="el" href="structr123array2x64.html#ac0fc5019e017f50e29d26df233085e56">iterator</a>> <a class="el" href="structr123array2x64.html#abcbf25662447a5241ed4d19c202f647a">r123array2x64::reverse_iterator</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aacb6269c183cc408285dca02e3b55526"></a><!-- doxytag: member="r123array2x64::size_type" ref="aacb6269c183cc408285dca02e3b55526" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef size_t <a class="el" href="structr123array2x64.html#aacb6269c183cc408285dca02e3b55526">r123array2x64::size_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="acefd9fb46661254e17877844c545e15f"></a><!-- doxytag: member="r123array2x64::value_type" ref="acefd9fb46661254e17877844c545e15f" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef uint64_t <a class="el" href="structr123array2x64.html#acefd9fb46661254e17877844c545e15f">r123array2x64::value_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/><h2>Member Enumeration Documentation</h2>
+<a class="anchor" id="aa8ed42c5bf709f879674643a70e71dbc"></a><!-- doxytag: member="r123array2x64::@5" ref="aa8ed42c5bf709f879674643a70e71dbc" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">anonymous enum</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="aa8ed42c5bf709f879674643a70e71dbca6219dc89b2a7ffde9b00364177f5b846"></a><!-- doxytag: member="static_size" ref="aa8ed42c5bf709f879674643a70e71dbca6219dc89b2a7ffde9b00364177f5b846" args="" -->static_size</em> </td><td>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="a46789872cf0f3a6310f864b2a35b2ea7"></a><!-- doxytag: member="r123array2x64::at" ref="a46789872cf0f3a6310f864b2a35b2ea7" args="(size_type i)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array2x64.html#a7150b3ad865d00ca1f753accd8165336">reference</a> r123array2x64::at </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array2x64.html#aacb6269c183cc408285dca02e3b55526">size_type</a> </td>
+          <td class="paramname"> <em>i</em></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a971ddfa7c395d161028e16c829179f3c"></a><!-- doxytag: member="r123array2x64::at" ref="a971ddfa7c395d161028e16c829179f3c" args="(size_type i) const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array2x64.html#a5d80c6b28d869a5422d99541ee1fb93f">const_reference</a> r123array2x64::at </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array2x64.html#aacb6269c183cc408285dca02e3b55526">size_type</a> </td>
+          <td class="paramname"> <em>i</em></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a9beb3e776cb4f3cbee6846518749cb03"></a><!-- doxytag: member="r123array2x64::back" ref="a9beb3e776cb4f3cbee6846518749cb03" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array2x64.html#a7150b3ad865d00ca1f753accd8165336">reference</a> r123array2x64::back </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ac72fd3a39821ca25f94258f97da371c5"></a><!-- doxytag: member="r123array2x64::back" ref="ac72fd3a39821ca25f94258f97da371c5" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array2x64.html#a5d80c6b28d869a5422d99541ee1fb93f">const_reference</a> r123array2x64::back </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a0fcc60a49efd917a3b630cf53c526311"></a><!-- doxytag: member="r123array2x64::begin" ref="a0fcc60a49efd917a3b630cf53c526311" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array2x64.html#ac0fc5019e017f50e29d26df233085e56">iterator</a> r123array2x64::begin </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a8cf4fadef6bdc6d438db173bc1d31165"></a><!-- doxytag: member="r123array2x64::begin" ref="a8cf4fadef6bdc6d438db173bc1d31165" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array2x64.html#ae4f249e82506274b19e6077c3d3f03af">const_iterator</a> r123array2x64::begin </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ad1ccbda4186dbb8c0a673db1ec0957c0"></a><!-- doxytag: member="r123array2x64::cbegin" ref="ad1ccbda4186dbb8c0a673db1ec0957c0" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array2x64.html#ae4f249e82506274b19e6077c3d3f03af">const_iterator</a> r123array2x64::cbegin </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ac80c7ce6fe5bd9ca8baf03db1e67a7e9"></a><!-- doxytag: member="r123array2x64::cend" ref="ac80c7ce6fe5bd9ca8baf03db1e67a7e9" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array2x64.html#ae4f249e82506274b19e6077c3d3f03af">const_iterator</a> r123array2x64::cend </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a198ff47db0778d88db4fabe5f7721564"></a><!-- doxytag: member="r123array2x64::crbegin" ref="a198ff47db0778d88db4fabe5f7721564" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array2x64.html#aa37f04aef8a808c76715b3b2d49c3c30">const_reverse_iterator</a> r123array2x64::crbegin </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a5bddb882c7c9a493c382d3ce0d6d6079"></a><!-- doxytag: member="r123array2x64::crend" ref="a5bddb882c7c9a493c382d3ce0d6d6079" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array2x64.html#aa37f04aef8a808c76715b3b2d49c3c30">const_reverse_iterator</a> r123array2x64::crend </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a9a6eb23f15f9ee3a55f39b951798a739"></a><!-- doxytag: member="r123array2x64::data" ref="a9a6eb23f15f9ee3a55f39b951798a739" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array2x64.html#a3b0b967b9ae134da266448c190f59c3a">pointer</a> r123array2x64::data </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a9cdb592780378bdcc8a560e31e11f084"></a><!-- doxytag: member="r123array2x64::data" ref="a9cdb592780378bdcc8a560e31e11f084" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array2x64.html#a3a13a452ca15f62f8ddcd8b7de9efa08">const_pointer</a> r123array2x64::data </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a60ed2f5af6357930b50a8de8f294f5c2"></a><!-- doxytag: member="r123array2x64::empty" ref="a60ed2f5af6357930b50a8de8f294f5c2" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool r123array2x64::empty </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a24679f6a101d9d25b339106a771c4e68"></a><!-- doxytag: member="r123array2x64::end" ref="a24679f6a101d9d25b339106a771c4e68" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array2x64.html#ac0fc5019e017f50e29d26df233085e56">iterator</a> r123array2x64::end </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="af16f99514770cb88a57e36b1b849e80d"></a><!-- doxytag: member="r123array2x64::end" ref="af16f99514770cb88a57e36b1b849e80d" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array2x64.html#ae4f249e82506274b19e6077c3d3f03af">const_iterator</a> r123array2x64::end </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a30d20bbf203dbd0b592c6cb58cb6dcdb"></a><!-- doxytag: member="r123array2x64::fill" ref="a30d20bbf203dbd0b592c6cb58cb6dcdb" args="(const value_type &val)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void r123array2x64::fill </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structr123array2x64.html#acefd9fb46661254e17877844c545e15f">value_type</a> & </td>
+          <td class="paramname"> <em>val</em></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a95b79f70de75c8346dbae7c5f933d076"></a><!-- doxytag: member="r123array2x64::front" ref="a95b79f70de75c8346dbae7c5f933d076" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array2x64.html#a7150b3ad865d00ca1f753accd8165336">reference</a> r123array2x64::front </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a21cf5457f945f5c00b16ce4a73797c1b"></a><!-- doxytag: member="r123array2x64::front" ref="a21cf5457f945f5c00b16ce4a73797c1b" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array2x64.html#a5d80c6b28d869a5422d99541ee1fb93f">const_reference</a> r123array2x64::front </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ac33e6336c8aee10e38259510ef76e5cf"></a><!-- doxytag: member="r123array2x64::incr" ref="ac33e6336c8aee10e38259510ef76e5cf" args="(uint64_t n=1)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array2x64.html">r123array2x64</a>& r123array2x64::incr </td>
+          <td>(</td>
+          <td class="paramtype">uint64_t </td>
+          <td class="paramname"> <em>n</em> = <code>1</code></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a52ddbfa3edbd9fa7f30e1402a9240da1"></a><!-- doxytag: member="r123array2x64::incr_carefully" ref="a52ddbfa3edbd9fa7f30e1402a9240da1" args="(uint64_t n)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array2x64.html">r123array2x64</a>& r123array2x64::incr_carefully </td>
+          <td>(</td>
+          <td class="paramtype">uint64_t </td>
+          <td class="paramname"> <em>n</em></td>
+          <td> ) </td>
+          <td><code> [inline, protected]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a03f7c9e37e59210b1d2b9390e415e289"></a><!-- doxytag: member="r123array2x64::max_size" ref="a03f7c9e37e59210b1d2b9390e415e289" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array2x64.html#aacb6269c183cc408285dca02e3b55526">size_type</a> r123array2x64::max_size </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a1ddc25ec182ac3b119e420f5e21c3f87"></a><!-- doxytag: member="r123array2x64::operator!=" ref="a1ddc25ec182ac3b119e420f5e21c3f87" args="(const r123array2x64 &rhs) const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool r123array2x64::operator!= </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structr123array2x64.html">r123array2x64</a> & </td>
+          <td class="paramname"> <em>rhs</em></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa690f425f846ff9908a734eb720df573"></a><!-- doxytag: member="r123array2x64::operator==" ref="aa690f425f846ff9908a734eb720df573" args="(const r123array2x64 &rhs) const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool r123array2x64::operator== </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structr123array2x64.html">r123array2x64</a> & </td>
+          <td class="paramname"> <em>rhs</em></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae534a7e32afae58303ccc8379408551b"></a><!-- doxytag: member="r123array2x64::operator[]" ref="ae534a7e32afae58303ccc8379408551b" args="(size_type i) const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array2x64.html#a5d80c6b28d869a5422d99541ee1fb93f">const_reference</a> r123array2x64::operator[] </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array2x64.html#aacb6269c183cc408285dca02e3b55526">size_type</a> </td>
+          <td class="paramname"> <em>i</em></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a7352cdb2c025b0373ece5c84409a1b1d"></a><!-- doxytag: member="r123array2x64::operator[]" ref="a7352cdb2c025b0373ece5c84409a1b1d" args="(size_type i)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array2x64.html#a7150b3ad865d00ca1f753accd8165336">reference</a> r123array2x64::operator[] </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array2x64.html#aacb6269c183cc408285dca02e3b55526">size_type</a> </td>
+          <td class="paramname"> <em>i</em></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a6888b98627db6056afe3f4ee3396a9a6"></a><!-- doxytag: member="r123array2x64::rbegin" ref="a6888b98627db6056afe3f4ee3396a9a6" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array2x64.html#abcbf25662447a5241ed4d19c202f647a">reverse_iterator</a> r123array2x64::rbegin </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ad6720531d85d0c284ce32cde3b82a9da"></a><!-- doxytag: member="r123array2x64::rbegin" ref="ad6720531d85d0c284ce32cde3b82a9da" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array2x64.html#aa37f04aef8a808c76715b3b2d49c3c30">const_reverse_iterator</a> r123array2x64::rbegin </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ad96f87786a8a277bf553d0c5584c20c1"></a><!-- doxytag: member="r123array2x64::rend" ref="ad96f87786a8a277bf553d0c5584c20c1" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array2x64.html#aa37f04aef8a808c76715b3b2d49c3c30">const_reverse_iterator</a> r123array2x64::rend </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ad1e373b457921fc672ed8892180431eb"></a><!-- doxytag: member="r123array2x64::rend" ref="ad1e373b457921fc672ed8892180431eb" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array2x64.html#abcbf25662447a5241ed4d19c202f647a">reverse_iterator</a> r123array2x64::rend </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a3e5afc5e4c6886611630cec365d8397b"></a><!-- doxytag: member="r123array2x64::seed" ref="a3e5afc5e4c6886611630cec365d8397b" args="(SeedSeq &ss)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename SeedSeq > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structr123array2x64.html">r123array2x64</a> r123array2x64::seed </td>
+          <td>(</td>
+          <td class="paramtype">SeedSeq & </td>
+          <td class="paramname"> <em>ss</em></td>
+          <td> ) </td>
+          <td><code> [inline, static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a10e19c13a970156c4fc18fa070dc9756"></a><!-- doxytag: member="r123array2x64::size" ref="a10e19c13a970156c4fc18fa070dc9756" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array2x64.html#aacb6269c183cc408285dca02e3b55526">size_type</a> r123array2x64::size </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a78ea0dba10b77c9f228108df9ab09c9d"></a><!-- doxytag: member="r123array2x64::swap" ref="a78ea0dba10b77c9f228108df9ab09c9d" args="(r123array2x64 &rhs)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void r123array2x64::swap </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array2x64.html">r123array2x64</a> & </td>
+          <td class="paramname"> <em>rhs</em></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/><h2>Member Data Documentation</h2>
+<a class="anchor" id="a547e4a51e531cf36eef885fbf20a7048"></a><!-- doxytag: member="r123array2x64::v" ref="a547e4a51e531cf36eef885fbf20a7048" args="[2]" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">uint64_t <a class="el" href="structr123array2x64.html#a547e4a51e531cf36eef885fbf20a7048">r123array2x64::v</a>[2]</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li>Random123/<a class="el" href="array_8h_source.html">array.h</a></li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/structr123array4x32-members.html b/docs/html/structr123array4x32-members.html
new file mode 100644
index 0000000..f1b56ba
--- /dev/null
+++ b/docs/html/structr123array4x32-members.html
@@ -0,0 +1,123 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<h1>r123array4x32 Member List</h1>  </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="structr123array4x32.html">r123array4x32</a>, including all inherited members.<table>
+  <tr class="memlist"><td><a class="el" href="structr123array4x32.html#ac44f12891effca2d069a3a3a8173dd62">at</a>(size_type i)</td><td><a class="el" href="structr123array4x32.html">r123array4x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x32.html#abdb3253eb03291895f89885298e17169">at</a>(size_type i) const </td><td><a class="el" href="structr123array4x32.html">r123array4x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x32.html#a70fd9b24cb3b126eb15c23049f786653">back</a>()</td><td><a class="el" href="structr123array4x32.html">r123array4x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x32.html#a4e1cba8583b2fac8cc3bf854956191c4">back</a>() const </td><td><a class="el" href="structr123array4x32.html">r123array4x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x32.html#a96a9c7e3ece3d2b128cf7f264af6ea3c">begin</a>()</td><td><a class="el" href="structr123array4x32.html">r123array4x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x32.html#a830254ee0db7bf12facf67f23428d2d9">begin</a>() const </td><td><a class="el" href="structr123array4x32.html">r123array4x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x32.html#a4881e99f7b0ff88e2a3082b9e2464bf5">cbegin</a>() const </td><td><a class="el" href="structr123array4x32.html">r123array4x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x32.html#a0045f9134801ed79d31f65c7d224d72c">cend</a>() const </td><td><a class="el" href="structr123array4x32.html">r123array4x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x32.html#a1078ba2cd13bb2a4f83e1b089c816ba7">const_iterator</a> typedef</td><td><a class="el" href="structr123array4x32.html">r123array4x32</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x32.html#a28d13183d1bfcc05854dc39bebbcdf51">const_pointer</a> typedef</td><td><a class="el" href="structr123array4x32.html">r123array4x32</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x32.html#a09d7e0d7b1572fc5fe2be119870a39bc">const_reference</a> typedef</td><td><a class="el" href="structr123array4x32.html">r123array4x32</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x32.html#a2926ff865e9dcbc3c20e6639aa8d0b1b">const_reverse_iterator</a> typedef</td><td><a class="el" href="structr123array4x32.html">r123array4x32</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x32.html#ad65e3e63740dc2301442718b3b8aa440">crbegin</a>() const </td><td><a class="el" href="structr123array4x32.html">r123array4x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x32.html#a13322be3844d39f9de76d263fa8d1f75">crend</a>() const </td><td><a class="el" href="structr123array4x32.html">r123array4x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x32.html#a72ee678cce1fa539f44480eb269a01f9">data</a>()</td><td><a class="el" href="structr123array4x32.html">r123array4x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x32.html#a20dd9fc18f9db8fe8e8eb08311398d22">data</a>() const </td><td><a class="el" href="structr123array4x32.html">r123array4x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x32.html#a3c690c039797cafe4718c03377937fb7">difference_type</a> typedef</td><td><a class="el" href="structr123array4x32.html">r123array4x32</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x32.html#a4bc944eee354be2b258c0991d3cc61e1">empty</a>() const </td><td><a class="el" href="structr123array4x32.html">r123array4x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x32.html#a83dd3d17e17bb6a93b7cd544b0e9a403">end</a>()</td><td><a class="el" href="structr123array4x32.html">r123array4x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x32.html#ac6e732c58b1a5ad954c3b6f2be8385a1">end</a>() const </td><td><a class="el" href="structr123array4x32.html">r123array4x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x32.html#ae362d7908c2ecc308f6fd4e085ace980">fill</a>(const value_type &val)</td><td><a class="el" href="structr123array4x32.html">r123array4x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x32.html#a82b3fdeacb835bb64765def4bef92751">front</a>()</td><td><a class="el" href="structr123array4x32.html">r123array4x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x32.html#ab3434550aea3d2e04579cb255b0b4e9e">front</a>() const </td><td><a class="el" href="structr123array4x32.html">r123array4x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x32.html#a36515eb50711e36a88f1390bbd4e0e05">incr</a>(uint64_t n=1)</td><td><a class="el" href="structr123array4x32.html">r123array4x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x32.html#acec3775361651e6f8dea517f07d7a8b8">incr_carefully</a>(uint64_t n)</td><td><a class="el" href="structr123array4x32.html">r123array4x32</a></td><td><code> [inline, protected]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x32.html#a73a2a55a200af374d7299d2de13aa5cc">iterator</a> typedef</td><td><a class="el" href="structr123array4x32.html">r123array4x32</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x32.html#afddfc77eea0f5f4c53dc075425f96ab3">max_size</a>() const </td><td><a class="el" href="structr123array4x32.html">r123array4x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x32.html#a1a7aa47c8dd7db5146e54cc54d1d4358">operator!=</a>(const r123array4x32 &rhs) const </td><td><a class="el" href="structr123array4x32.html">r123array4x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x32.html#a14123fe9160e559a83e61ab6c2901759">operator==</a>(const r123array4x32 &rhs) const </td><td><a class="el" href="structr123array4x32.html">r123array4x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x32.html#aa1fef4a0eb551a70d1ec5d766efcffb5">operator[]</a>(size_type i)</td><td><a class="el" href="structr123array4x32.html">r123array4x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x32.html#a3161a139a59a1196398d5d4b81d740df">operator[]</a>(size_type i) const </td><td><a class="el" href="structr123array4x32.html">r123array4x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x32.html#adcef39f1e3989578b4c0a92524a15df2">pointer</a> typedef</td><td><a class="el" href="structr123array4x32.html">r123array4x32</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x32.html#aea9aae067d8347aa53a12a4c9948ae9a">rbegin</a>()</td><td><a class="el" href="structr123array4x32.html">r123array4x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x32.html#aadb177f7f316ae47deeea20a686e7909">rbegin</a>() const </td><td><a class="el" href="structr123array4x32.html">r123array4x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x32.html#a620f00f67215ab7fd344ec551c596712">reference</a> typedef</td><td><a class="el" href="structr123array4x32.html">r123array4x32</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x32.html#a368f69bdd03a9af1c6254daf98496dbd">rend</a>()</td><td><a class="el" href="structr123array4x32.html">r123array4x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x32.html#a7b2af2db2af5f90c8a3f5f7014193d72">rend</a>() const </td><td><a class="el" href="structr123array4x32.html">r123array4x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x32.html#aaabdf758fb4a56eaf4cf256654f41314">reverse_iterator</a> typedef</td><td><a class="el" href="structr123array4x32.html">r123array4x32</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x32.html#acdaad089dc0e44da5818ebda8404bd16">seed</a>(SeedSeq &ss)</td><td><a class="el" href="structr123array4x32.html">r123array4x32</a></td><td><code> [inline, static]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x32.html#a1da4bfacdcd4a520a227bc5c2cff6a4b">size</a>() const </td><td><a class="el" href="structr123array4x32.html">r123array4x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x32.html#af4ee6cd95de0f8b7932d7a6a061663af">size_type</a> typedef</td><td><a class="el" href="structr123array4x32.html">r123array4x32</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x32.html#a3d387fea63ac50668e75faa8ebe4594aa80d43f91cd038fece63f219b9f4a36c6">static_size</a> enum value</td><td><a class="el" href="structr123array4x32.html">r123array4x32</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x32.html#a3e6f9b7de70de3386bcd2ba44ad68fb5">swap</a>(r123array4x32 &rhs)</td><td><a class="el" href="structr123array4x32.html">r123array4x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x32.html#ac8e6785120a3031b211fc8aa7d03d83f">v</a></td><td><a class="el" href="structr123array4x32.html">r123array4x32</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x32.html#a5ba59b507edcf793ba186a9a4e8c56d5">value_type</a> typedef</td><td><a class="el" href="structr123array4x32.html">r123array4x32</a></td><td></td></tr>
+</table></div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/structr123array4x32.html b/docs/html/structr123array4x32.html
new file mode 100644
index 0000000..77f09de
--- /dev/null
+++ b/docs/html/structr123array4x32.html
@@ -0,0 +1,892 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: r123array4x32 Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="summary">
+<a href="#pub-types">Public Types</a> |
+<a href="#pub-methods">Public Member Functions</a> |
+<a href="#pub-static-methods">Static Public Member Functions</a> |
+<a href="#pub-attribs">Public Attributes</a> |
+<a href="#pro-methods">Protected Member Functions</a>  </div>
+  <div class="headertitle">
+<h1>r123array4x32 Struct Reference<br/>
+<small>
+[<a class="el" href="group__arrayNxW.html">The r123arrayNxW classes</a>]</small>
+</h1>  </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="r123array4x32" -->
+<p><code>#include <<a class="el" href="array_8h_source.html">Random123/array.h</a>></code></p>
+
+<p><a href="structr123array4x32-members.html">List of all members.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-types"></a>
+Public Types</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom">{ <a class="el" href="structr123array4x32.html#a3d387fea63ac50668e75faa8ebe4594aa80d43f91cd038fece63f219b9f4a36c6">static_size</a> =  4
+ }</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x32.html#a5ba59b507edcf793ba186a9a4e8c56d5">value_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef uint32_t * </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x32.html#a73a2a55a200af374d7299d2de13aa5cc">iterator</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef const uint32_t * </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x32.html#a1078ba2cd13bb2a4f83e1b089c816ba7">const_iterator</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123array4x32.html#a5ba59b507edcf793ba186a9a4e8c56d5">value_type</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x32.html#a620f00f67215ab7fd344ec551c596712">reference</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef const <a class="el" href="structr123array4x32.html#a5ba59b507edcf793ba186a9a4e8c56d5">value_type</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x32.html#a09d7e0d7b1572fc5fe2be119870a39bc">const_reference</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x32.html#af4ee6cd95de0f8b7932d7a6a061663af">size_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef ptrdiff_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x32.html#a3c690c039797cafe4718c03377937fb7">difference_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef uint32_t * </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x32.html#adcef39f1e3989578b4c0a92524a15df2">pointer</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef const uint32_t * </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x32.html#a28d13183d1bfcc05854dc39bebbcdf51">const_pointer</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef std::reverse_iterator<br class="typebreak"/>
+< <a class="el" href="structr123array4x32.html#a73a2a55a200af374d7299d2de13aa5cc">iterator</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x32.html#aaabdf758fb4a56eaf4cf256654f41314">reverse_iterator</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef std::reverse_iterator<br class="typebreak"/>
+< <a class="el" href="structr123array4x32.html#a1078ba2cd13bb2a4f83e1b089c816ba7">const_iterator</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x32.html#a2926ff865e9dcbc3c20e6639aa8d0b1b">const_reverse_iterator</a></td></tr>
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array4x32.html#a620f00f67215ab7fd344ec551c596712">reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x32.html#aa1fef4a0eb551a70d1ec5d766efcffb5">operator[]</a> (<a class="el" href="structr123array4x32.html#af4ee6cd95de0f8b7932d7a6a061663af">size_type</a> i)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array4x32.html#a09d7e0d7b1572fc5fe2be119870a39bc">const_reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x32.html#a3161a139a59a1196398d5d4b81d740df">operator[]</a> (<a class="el" href="structr123array4x32.html#af4ee6cd95de0f8b7932d7a6a061663af">size_type</a> i) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array4x32.html#a620f00f67215ab7fd344ec551c596712">reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x32.html#ac44f12891effca2d069a3a3a8173dd62">at</a> (<a class="el" href="structr123array4x32.html#af4ee6cd95de0f8b7932d7a6a061663af">size_type</a> i)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array4x32.html#a09d7e0d7b1572fc5fe2be119870a39bc">const_reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x32.html#abdb3253eb03291895f89885298e17169">at</a> (<a class="el" href="structr123array4x32.html#af4ee6cd95de0f8b7932d7a6a061663af">size_type</a> i) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array4x32.html#af4ee6cd95de0f8b7932d7a6a061663af">size_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x32.html#a1da4bfacdcd4a520a227bc5c2cff6a4b">size</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array4x32.html#af4ee6cd95de0f8b7932d7a6a061663af">size_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x32.html#afddfc77eea0f5f4c53dc075425f96ab3">max_size</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x32.html#a4bc944eee354be2b258c0991d3cc61e1">empty</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array4x32.html#a73a2a55a200af374d7299d2de13aa5cc">iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x32.html#a96a9c7e3ece3d2b128cf7f264af6ea3c">begin</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array4x32.html#a73a2a55a200af374d7299d2de13aa5cc">iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x32.html#a83dd3d17e17bb6a93b7cd544b0e9a403">end</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array4x32.html#a1078ba2cd13bb2a4f83e1b089c816ba7">const_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x32.html#a830254ee0db7bf12facf67f23428d2d9">begin</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array4x32.html#a1078ba2cd13bb2a4f83e1b089c816ba7">const_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x32.html#ac6e732c58b1a5ad954c3b6f2be8385a1">end</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array4x32.html#a1078ba2cd13bb2a4f83e1b089c816ba7">const_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x32.html#a4881e99f7b0ff88e2a3082b9e2464bf5">cbegin</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array4x32.html#a1078ba2cd13bb2a4f83e1b089c816ba7">const_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x32.html#a0045f9134801ed79d31f65c7d224d72c">cend</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array4x32.html#aaabdf758fb4a56eaf4cf256654f41314">reverse_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x32.html#aea9aae067d8347aa53a12a4c9948ae9a">rbegin</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array4x32.html#a2926ff865e9dcbc3c20e6639aa8d0b1b">const_reverse_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x32.html#aadb177f7f316ae47deeea20a686e7909">rbegin</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array4x32.html#aaabdf758fb4a56eaf4cf256654f41314">reverse_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x32.html#a368f69bdd03a9af1c6254daf98496dbd">rend</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array4x32.html#a2926ff865e9dcbc3c20e6639aa8d0b1b">const_reverse_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x32.html#a7b2af2db2af5f90c8a3f5f7014193d72">rend</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array4x32.html#a2926ff865e9dcbc3c20e6639aa8d0b1b">const_reverse_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x32.html#ad65e3e63740dc2301442718b3b8aa440">crbegin</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array4x32.html#a2926ff865e9dcbc3c20e6639aa8d0b1b">const_reverse_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x32.html#a13322be3844d39f9de76d263fa8d1f75">crend</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array4x32.html#adcef39f1e3989578b4c0a92524a15df2">pointer</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x32.html#a72ee678cce1fa539f44480eb269a01f9">data</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array4x32.html#a28d13183d1bfcc05854dc39bebbcdf51">const_pointer</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x32.html#a20dd9fc18f9db8fe8e8eb08311398d22">data</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array4x32.html#a620f00f67215ab7fd344ec551c596712">reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x32.html#a82b3fdeacb835bb64765def4bef92751">front</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array4x32.html#a09d7e0d7b1572fc5fe2be119870a39bc">const_reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x32.html#ab3434550aea3d2e04579cb255b0b4e9e">front</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array4x32.html#a620f00f67215ab7fd344ec551c596712">reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x32.html#a70fd9b24cb3b126eb15c23049f786653">back</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array4x32.html#a09d7e0d7b1572fc5fe2be119870a39bc">const_reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x32.html#a4e1cba8583b2fac8cc3bf854956191c4">back</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x32.html#a14123fe9160e559a83e61ab6c2901759">operator==</a> (const <a class="el" href="structr123array4x32.html">r123array4x32</a> &rhs) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x32.html#a1a7aa47c8dd7db5146e54cc54d1d4358">operator!=</a> (const <a class="el" href="structr123array4x32.html">r123array4x32</a> &rhs) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x32.html#ae362d7908c2ecc308f6fd4e085ace980">fill</a> (const <a class="el" href="structr123array4x32.html#a5ba59b507edcf793ba186a9a4e8c56d5">value_type</a> &val)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x32.html#a3e6f9b7de70de3386bcd2ba44ad68fb5">swap</a> (<a class="el" href="structr123array4x32.html">r123array4x32</a> &rhs)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array4x32.html">r123array4x32</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x32.html#a36515eb50711e36a88f1390bbd4e0e05">incr</a> (uint64_t n=1)</td></tr>
+<tr><td colspan="2"><h2><a name="pub-static-methods"></a>
+Static Public Member Functions</h2></td></tr>
+<tr><td class="memTemplParams" colspan="2">template<typename SeedSeq > </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">static <a class="el" href="structr123array4x32.html">r123array4x32</a> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="structr123array4x32.html#acdaad089dc0e44da5818ebda8404bd16">seed</a> (SeedSeq &ss)</td></tr>
+<tr><td colspan="2"><h2><a name="pub-attribs"></a>
+Public Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x32.html#ac8e6785120a3031b211fc8aa7d03d83f">v</a> [4]</td></tr>
+<tr><td colspan="2"><h2><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array4x32.html">r123array4x32</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x32.html#acec3775361651e6f8dea517f07d7a8b8">incr_carefully</a> (uint64_t n)</td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__arrayNxW.html">The r123arrayNxW classes</a> </dd></dl>
+<hr/><h2>Member Typedef Documentation</h2>
+<a class="anchor" id="a1078ba2cd13bb2a4f83e1b089c816ba7"></a><!-- doxytag: member="r123array4x32::const_iterator" ref="a1078ba2cd13bb2a4f83e1b089c816ba7" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef const uint32_t* <a class="el" href="structr123array4x32.html#a1078ba2cd13bb2a4f83e1b089c816ba7">r123array4x32::const_iterator</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a28d13183d1bfcc05854dc39bebbcdf51"></a><!-- doxytag: member="r123array4x32::const_pointer" ref="a28d13183d1bfcc05854dc39bebbcdf51" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef const uint32_t* <a class="el" href="structr123array4x32.html#a28d13183d1bfcc05854dc39bebbcdf51">r123array4x32::const_pointer</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a09d7e0d7b1572fc5fe2be119870a39bc"></a><!-- doxytag: member="r123array4x32::const_reference" ref="a09d7e0d7b1572fc5fe2be119870a39bc" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef const <a class="el" href="structr123array4x32.html#a5ba59b507edcf793ba186a9a4e8c56d5">value_type</a>& <a class="el" href="structr123array4x32.html#a09d7e0d7b1572fc5fe2be119870a39bc">r123array4x32::const_reference</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a2926ff865e9dcbc3c20e6639aa8d0b1b"></a><!-- doxytag: member="r123array4x32::const_reverse_iterator" ref="a2926ff865e9dcbc3c20e6639aa8d0b1b" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef std::reverse_iterator<<a class="el" href="structr123array4x32.html#a1078ba2cd13bb2a4f83e1b089c816ba7">const_iterator</a>> <a class="el" href="structr123array4x32.html#a2926ff865e9dcbc3c20e6639aa8d0b1b">r123array4x32::const_reverse_iterator</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a3c690c039797cafe4718c03377937fb7"></a><!-- doxytag: member="r123array4x32::difference_type" ref="a3c690c039797cafe4718c03377937fb7" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef ptrdiff_t <a class="el" href="structr123array4x32.html#a3c690c039797cafe4718c03377937fb7">r123array4x32::difference_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a73a2a55a200af374d7299d2de13aa5cc"></a><!-- doxytag: member="r123array4x32::iterator" ref="a73a2a55a200af374d7299d2de13aa5cc" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef uint32_t* <a class="el" href="structr123array4x32.html#a73a2a55a200af374d7299d2de13aa5cc">r123array4x32::iterator</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="adcef39f1e3989578b4c0a92524a15df2"></a><!-- doxytag: member="r123array4x32::pointer" ref="adcef39f1e3989578b4c0a92524a15df2" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef uint32_t* <a class="el" href="structr123array4x32.html#adcef39f1e3989578b4c0a92524a15df2">r123array4x32::pointer</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a620f00f67215ab7fd344ec551c596712"></a><!-- doxytag: member="r123array4x32::reference" ref="a620f00f67215ab7fd344ec551c596712" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="structr123array4x32.html#a5ba59b507edcf793ba186a9a4e8c56d5">value_type</a>& <a class="el" href="structr123array4x32.html#a620f00f67215ab7fd344ec551c596712">r123array4x32::reference</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aaabdf758fb4a56eaf4cf256654f41314"></a><!-- doxytag: member="r123array4x32::reverse_iterator" ref="aaabdf758fb4a56eaf4cf256654f41314" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef std::reverse_iterator<<a class="el" href="structr123array4x32.html#a73a2a55a200af374d7299d2de13aa5cc">iterator</a>> <a class="el" href="structr123array4x32.html#aaabdf758fb4a56eaf4cf256654f41314">r123array4x32::reverse_iterator</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="af4ee6cd95de0f8b7932d7a6a061663af"></a><!-- doxytag: member="r123array4x32::size_type" ref="af4ee6cd95de0f8b7932d7a6a061663af" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef size_t <a class="el" href="structr123array4x32.html#af4ee6cd95de0f8b7932d7a6a061663af">r123array4x32::size_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a5ba59b507edcf793ba186a9a4e8c56d5"></a><!-- doxytag: member="r123array4x32::value_type" ref="a5ba59b507edcf793ba186a9a4e8c56d5" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef uint32_t <a class="el" href="structr123array4x32.html#a5ba59b507edcf793ba186a9a4e8c56d5">r123array4x32::value_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/><h2>Member Enumeration Documentation</h2>
+<a class="anchor" id="a3d387fea63ac50668e75faa8ebe4594a"></a><!-- doxytag: member="r123array4x32::@2" ref="a3d387fea63ac50668e75faa8ebe4594a" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">anonymous enum</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="a3d387fea63ac50668e75faa8ebe4594aa80d43f91cd038fece63f219b9f4a36c6"></a><!-- doxytag: member="static_size" ref="a3d387fea63ac50668e75faa8ebe4594aa80d43f91cd038fece63f219b9f4a36c6" args="" -->static_size</em> </td><td>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="ac44f12891effca2d069a3a3a8173dd62"></a><!-- doxytag: member="r123array4x32::at" ref="ac44f12891effca2d069a3a3a8173dd62" args="(size_type i)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array4x32.html#a620f00f67215ab7fd344ec551c596712">reference</a> r123array4x32::at </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array4x32.html#af4ee6cd95de0f8b7932d7a6a061663af">size_type</a> </td>
+          <td class="paramname"> <em>i</em></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="abdb3253eb03291895f89885298e17169"></a><!-- doxytag: member="r123array4x32::at" ref="abdb3253eb03291895f89885298e17169" args="(size_type i) const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array4x32.html#a09d7e0d7b1572fc5fe2be119870a39bc">const_reference</a> r123array4x32::at </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array4x32.html#af4ee6cd95de0f8b7932d7a6a061663af">size_type</a> </td>
+          <td class="paramname"> <em>i</em></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a70fd9b24cb3b126eb15c23049f786653"></a><!-- doxytag: member="r123array4x32::back" ref="a70fd9b24cb3b126eb15c23049f786653" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array4x32.html#a620f00f67215ab7fd344ec551c596712">reference</a> r123array4x32::back </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a4e1cba8583b2fac8cc3bf854956191c4"></a><!-- doxytag: member="r123array4x32::back" ref="a4e1cba8583b2fac8cc3bf854956191c4" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array4x32.html#a09d7e0d7b1572fc5fe2be119870a39bc">const_reference</a> r123array4x32::back </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a96a9c7e3ece3d2b128cf7f264af6ea3c"></a><!-- doxytag: member="r123array4x32::begin" ref="a96a9c7e3ece3d2b128cf7f264af6ea3c" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array4x32.html#a73a2a55a200af374d7299d2de13aa5cc">iterator</a> r123array4x32::begin </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a830254ee0db7bf12facf67f23428d2d9"></a><!-- doxytag: member="r123array4x32::begin" ref="a830254ee0db7bf12facf67f23428d2d9" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array4x32.html#a1078ba2cd13bb2a4f83e1b089c816ba7">const_iterator</a> r123array4x32::begin </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a4881e99f7b0ff88e2a3082b9e2464bf5"></a><!-- doxytag: member="r123array4x32::cbegin" ref="a4881e99f7b0ff88e2a3082b9e2464bf5" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array4x32.html#a1078ba2cd13bb2a4f83e1b089c816ba7">const_iterator</a> r123array4x32::cbegin </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a0045f9134801ed79d31f65c7d224d72c"></a><!-- doxytag: member="r123array4x32::cend" ref="a0045f9134801ed79d31f65c7d224d72c" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array4x32.html#a1078ba2cd13bb2a4f83e1b089c816ba7">const_iterator</a> r123array4x32::cend </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ad65e3e63740dc2301442718b3b8aa440"></a><!-- doxytag: member="r123array4x32::crbegin" ref="ad65e3e63740dc2301442718b3b8aa440" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array4x32.html#a2926ff865e9dcbc3c20e6639aa8d0b1b">const_reverse_iterator</a> r123array4x32::crbegin </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a13322be3844d39f9de76d263fa8d1f75"></a><!-- doxytag: member="r123array4x32::crend" ref="a13322be3844d39f9de76d263fa8d1f75" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array4x32.html#a2926ff865e9dcbc3c20e6639aa8d0b1b">const_reverse_iterator</a> r123array4x32::crend </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a72ee678cce1fa539f44480eb269a01f9"></a><!-- doxytag: member="r123array4x32::data" ref="a72ee678cce1fa539f44480eb269a01f9" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array4x32.html#adcef39f1e3989578b4c0a92524a15df2">pointer</a> r123array4x32::data </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a20dd9fc18f9db8fe8e8eb08311398d22"></a><!-- doxytag: member="r123array4x32::data" ref="a20dd9fc18f9db8fe8e8eb08311398d22" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array4x32.html#a28d13183d1bfcc05854dc39bebbcdf51">const_pointer</a> r123array4x32::data </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a4bc944eee354be2b258c0991d3cc61e1"></a><!-- doxytag: member="r123array4x32::empty" ref="a4bc944eee354be2b258c0991d3cc61e1" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool r123array4x32::empty </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a83dd3d17e17bb6a93b7cd544b0e9a403"></a><!-- doxytag: member="r123array4x32::end" ref="a83dd3d17e17bb6a93b7cd544b0e9a403" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array4x32.html#a73a2a55a200af374d7299d2de13aa5cc">iterator</a> r123array4x32::end </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ac6e732c58b1a5ad954c3b6f2be8385a1"></a><!-- doxytag: member="r123array4x32::end" ref="ac6e732c58b1a5ad954c3b6f2be8385a1" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array4x32.html#a1078ba2cd13bb2a4f83e1b089c816ba7">const_iterator</a> r123array4x32::end </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae362d7908c2ecc308f6fd4e085ace980"></a><!-- doxytag: member="r123array4x32::fill" ref="ae362d7908c2ecc308f6fd4e085ace980" args="(const value_type &val)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void r123array4x32::fill </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structr123array4x32.html#a5ba59b507edcf793ba186a9a4e8c56d5">value_type</a> & </td>
+          <td class="paramname"> <em>val</em></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a82b3fdeacb835bb64765def4bef92751"></a><!-- doxytag: member="r123array4x32::front" ref="a82b3fdeacb835bb64765def4bef92751" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array4x32.html#a620f00f67215ab7fd344ec551c596712">reference</a> r123array4x32::front </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ab3434550aea3d2e04579cb255b0b4e9e"></a><!-- doxytag: member="r123array4x32::front" ref="ab3434550aea3d2e04579cb255b0b4e9e" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array4x32.html#a09d7e0d7b1572fc5fe2be119870a39bc">const_reference</a> r123array4x32::front </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a36515eb50711e36a88f1390bbd4e0e05"></a><!-- doxytag: member="r123array4x32::incr" ref="a36515eb50711e36a88f1390bbd4e0e05" args="(uint64_t n=1)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array4x32.html">r123array4x32</a>& r123array4x32::incr </td>
+          <td>(</td>
+          <td class="paramtype">uint64_t </td>
+          <td class="paramname"> <em>n</em> = <code>1</code></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="acec3775361651e6f8dea517f07d7a8b8"></a><!-- doxytag: member="r123array4x32::incr_carefully" ref="acec3775361651e6f8dea517f07d7a8b8" args="(uint64_t n)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array4x32.html">r123array4x32</a>& r123array4x32::incr_carefully </td>
+          <td>(</td>
+          <td class="paramtype">uint64_t </td>
+          <td class="paramname"> <em>n</em></td>
+          <td> ) </td>
+          <td><code> [inline, protected]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="afddfc77eea0f5f4c53dc075425f96ab3"></a><!-- doxytag: member="r123array4x32::max_size" ref="afddfc77eea0f5f4c53dc075425f96ab3" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array4x32.html#af4ee6cd95de0f8b7932d7a6a061663af">size_type</a> r123array4x32::max_size </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a1a7aa47c8dd7db5146e54cc54d1d4358"></a><!-- doxytag: member="r123array4x32::operator!=" ref="a1a7aa47c8dd7db5146e54cc54d1d4358" args="(const r123array4x32 &rhs) const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool r123array4x32::operator!= </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structr123array4x32.html">r123array4x32</a> & </td>
+          <td class="paramname"> <em>rhs</em></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a14123fe9160e559a83e61ab6c2901759"></a><!-- doxytag: member="r123array4x32::operator==" ref="a14123fe9160e559a83e61ab6c2901759" args="(const r123array4x32 &rhs) const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool r123array4x32::operator== </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structr123array4x32.html">r123array4x32</a> & </td>
+          <td class="paramname"> <em>rhs</em></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a3161a139a59a1196398d5d4b81d740df"></a><!-- doxytag: member="r123array4x32::operator[]" ref="a3161a139a59a1196398d5d4b81d740df" args="(size_type i) const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array4x32.html#a09d7e0d7b1572fc5fe2be119870a39bc">const_reference</a> r123array4x32::operator[] </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array4x32.html#af4ee6cd95de0f8b7932d7a6a061663af">size_type</a> </td>
+          <td class="paramname"> <em>i</em></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa1fef4a0eb551a70d1ec5d766efcffb5"></a><!-- doxytag: member="r123array4x32::operator[]" ref="aa1fef4a0eb551a70d1ec5d766efcffb5" args="(size_type i)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array4x32.html#a620f00f67215ab7fd344ec551c596712">reference</a> r123array4x32::operator[] </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array4x32.html#af4ee6cd95de0f8b7932d7a6a061663af">size_type</a> </td>
+          <td class="paramname"> <em>i</em></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aea9aae067d8347aa53a12a4c9948ae9a"></a><!-- doxytag: member="r123array4x32::rbegin" ref="aea9aae067d8347aa53a12a4c9948ae9a" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array4x32.html#aaabdf758fb4a56eaf4cf256654f41314">reverse_iterator</a> r123array4x32::rbegin </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aadb177f7f316ae47deeea20a686e7909"></a><!-- doxytag: member="r123array4x32::rbegin" ref="aadb177f7f316ae47deeea20a686e7909" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array4x32.html#a2926ff865e9dcbc3c20e6639aa8d0b1b">const_reverse_iterator</a> r123array4x32::rbegin </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a7b2af2db2af5f90c8a3f5f7014193d72"></a><!-- doxytag: member="r123array4x32::rend" ref="a7b2af2db2af5f90c8a3f5f7014193d72" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array4x32.html#a2926ff865e9dcbc3c20e6639aa8d0b1b">const_reverse_iterator</a> r123array4x32::rend </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a368f69bdd03a9af1c6254daf98496dbd"></a><!-- doxytag: member="r123array4x32::rend" ref="a368f69bdd03a9af1c6254daf98496dbd" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array4x32.html#aaabdf758fb4a56eaf4cf256654f41314">reverse_iterator</a> r123array4x32::rend </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="acdaad089dc0e44da5818ebda8404bd16"></a><!-- doxytag: member="r123array4x32::seed" ref="acdaad089dc0e44da5818ebda8404bd16" args="(SeedSeq &ss)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename SeedSeq > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structr123array4x32.html">r123array4x32</a> r123array4x32::seed </td>
+          <td>(</td>
+          <td class="paramtype">SeedSeq & </td>
+          <td class="paramname"> <em>ss</em></td>
+          <td> ) </td>
+          <td><code> [inline, static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a1da4bfacdcd4a520a227bc5c2cff6a4b"></a><!-- doxytag: member="r123array4x32::size" ref="a1da4bfacdcd4a520a227bc5c2cff6a4b" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array4x32.html#af4ee6cd95de0f8b7932d7a6a061663af">size_type</a> r123array4x32::size </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a3e6f9b7de70de3386bcd2ba44ad68fb5"></a><!-- doxytag: member="r123array4x32::swap" ref="a3e6f9b7de70de3386bcd2ba44ad68fb5" args="(r123array4x32 &rhs)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void r123array4x32::swap </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array4x32.html">r123array4x32</a> & </td>
+          <td class="paramname"> <em>rhs</em></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/><h2>Member Data Documentation</h2>
+<a class="anchor" id="ac8e6785120a3031b211fc8aa7d03d83f"></a><!-- doxytag: member="r123array4x32::v" ref="ac8e6785120a3031b211fc8aa7d03d83f" args="[4]" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">uint32_t <a class="el" href="structr123array4x32.html#ac8e6785120a3031b211fc8aa7d03d83f">r123array4x32::v</a>[4]</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li>Random123/<a class="el" href="array_8h_source.html">array.h</a></li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/structr123array4x64-members.html b/docs/html/structr123array4x64-members.html
new file mode 100644
index 0000000..94f9ae8
--- /dev/null
+++ b/docs/html/structr123array4x64-members.html
@@ -0,0 +1,123 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<h1>r123array4x64 Member List</h1>  </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="structr123array4x64.html">r123array4x64</a>, including all inherited members.<table>
+  <tr class="memlist"><td><a class="el" href="structr123array4x64.html#a5b60c8dcd20ce894109e346fdb4cbdb2">at</a>(size_type i)</td><td><a class="el" href="structr123array4x64.html">r123array4x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x64.html#a893d3db3d274fc15ac32bc7cbab0e82a">at</a>(size_type i) const </td><td><a class="el" href="structr123array4x64.html">r123array4x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x64.html#abb40868277e8a943a0b5464985baceb5">back</a>()</td><td><a class="el" href="structr123array4x64.html">r123array4x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x64.html#a9006cfe7882bbc791a81a52f7cc0fd2d">back</a>() const </td><td><a class="el" href="structr123array4x64.html">r123array4x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x64.html#ab78c67c429da6405f9d1ed5054635961">begin</a>()</td><td><a class="el" href="structr123array4x64.html">r123array4x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x64.html#acd133812dbe01892199683e003921b8b">begin</a>() const </td><td><a class="el" href="structr123array4x64.html">r123array4x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x64.html#af716d2b14d1243870e8544ea2a3cece6">cbegin</a>() const </td><td><a class="el" href="structr123array4x64.html">r123array4x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x64.html#af970ab87ce987c91097316bc0a0836ef">cend</a>() const </td><td><a class="el" href="structr123array4x64.html">r123array4x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x64.html#a2aa5637bebf5c9c753edbce62e889d77">const_iterator</a> typedef</td><td><a class="el" href="structr123array4x64.html">r123array4x64</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x64.html#aa268882d3b4fb43ec9d82baf22d58cc5">const_pointer</a> typedef</td><td><a class="el" href="structr123array4x64.html">r123array4x64</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x64.html#ac2f21a458bf9008b831c553c5ae77508">const_reference</a> typedef</td><td><a class="el" href="structr123array4x64.html">r123array4x64</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x64.html#a8405a219a9c81f8f298298cffbfd46ac">const_reverse_iterator</a> typedef</td><td><a class="el" href="structr123array4x64.html">r123array4x64</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x64.html#a7712a006a2b567321a6ac9e84bb267d8">crbegin</a>() const </td><td><a class="el" href="structr123array4x64.html">r123array4x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x64.html#a907eb18b7392479a8ad6b2ddfaaecbd2">crend</a>() const </td><td><a class="el" href="structr123array4x64.html">r123array4x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x64.html#a8567c3d6c4ee6c9cc2d8770d26e7fee9">data</a>()</td><td><a class="el" href="structr123array4x64.html">r123array4x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x64.html#a31591d0bca18339d42c3a182a30457a0">data</a>() const </td><td><a class="el" href="structr123array4x64.html">r123array4x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x64.html#a3b1c7395f17992d8760fe93d3930db12">difference_type</a> typedef</td><td><a class="el" href="structr123array4x64.html">r123array4x64</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x64.html#a51e4ded187a3f1ebadd6b915da039c3f">empty</a>() const </td><td><a class="el" href="structr123array4x64.html">r123array4x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x64.html#a298a04608a19dd91cb30bd7980ad796f">end</a>()</td><td><a class="el" href="structr123array4x64.html">r123array4x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x64.html#a9fed923c39000c81f7f6b608d88953f9">end</a>() const </td><td><a class="el" href="structr123array4x64.html">r123array4x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x64.html#a6580c77b7d68c0a76b5bef33e59ac662">fill</a>(const value_type &val)</td><td><a class="el" href="structr123array4x64.html">r123array4x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x64.html#a975ecaf4c5332fc400dfc8d6d60d9035">front</a>()</td><td><a class="el" href="structr123array4x64.html">r123array4x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x64.html#a256920b96d1d3a4c61489b145da7383e">front</a>() const </td><td><a class="el" href="structr123array4x64.html">r123array4x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x64.html#ac4187b4ae44913183b1c8f9b7654f8a9">incr</a>(uint64_t n=1)</td><td><a class="el" href="structr123array4x64.html">r123array4x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x64.html#af629d14b454f406cae4d128d9e05554d">incr_carefully</a>(uint64_t n)</td><td><a class="el" href="structr123array4x64.html">r123array4x64</a></td><td><code> [inline, protected]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x64.html#adfc9f1209d12f855b9330ecccc8b6dd2">iterator</a> typedef</td><td><a class="el" href="structr123array4x64.html">r123array4x64</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x64.html#aad1329f21e3fdd5d25a29148db564b8a">max_size</a>() const </td><td><a class="el" href="structr123array4x64.html">r123array4x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x64.html#abf2fc58ddb163708c087f72921dfd11d">operator!=</a>(const r123array4x64 &rhs) const </td><td><a class="el" href="structr123array4x64.html">r123array4x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x64.html#afada659cc4a54a1416dca2522885cef1">operator==</a>(const r123array4x64 &rhs) const </td><td><a class="el" href="structr123array4x64.html">r123array4x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x64.html#adf867ee2ffc437a3f358431d3729a33d">operator[]</a>(size_type i)</td><td><a class="el" href="structr123array4x64.html">r123array4x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x64.html#a27c2001bf5af042aa450f17637646bd3">operator[]</a>(size_type i) const </td><td><a class="el" href="structr123array4x64.html">r123array4x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x64.html#a08c39c2f70f4198a82cba99c0162e67c">pointer</a> typedef</td><td><a class="el" href="structr123array4x64.html">r123array4x64</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x64.html#a102f75427ce01bea725da02b975834b5">rbegin</a>()</td><td><a class="el" href="structr123array4x64.html">r123array4x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x64.html#a7ccc255ba0e1803080b117703dc3dc70">rbegin</a>() const </td><td><a class="el" href="structr123array4x64.html">r123array4x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x64.html#a14ea48b972d46d9424c317db9698224f">reference</a> typedef</td><td><a class="el" href="structr123array4x64.html">r123array4x64</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x64.html#a71f59163070cb4cfd7ddda6f4f8576a1">rend</a>()</td><td><a class="el" href="structr123array4x64.html">r123array4x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x64.html#a25538a452f6e709bacfc9f49b7216280">rend</a>() const </td><td><a class="el" href="structr123array4x64.html">r123array4x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x64.html#acc93aa79ca040ce8fd0957ac86caa2f9">reverse_iterator</a> typedef</td><td><a class="el" href="structr123array4x64.html">r123array4x64</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x64.html#a6f0133930367a2260ed5a132bf737131">seed</a>(SeedSeq &ss)</td><td><a class="el" href="structr123array4x64.html">r123array4x64</a></td><td><code> [inline, static]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x64.html#a303c3feaf0783e99292c3220613ea903">size</a>() const </td><td><a class="el" href="structr123array4x64.html">r123array4x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x64.html#adbe34157dc62e7d2c988f12b06b273af">size_type</a> typedef</td><td><a class="el" href="structr123array4x64.html">r123array4x64</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x64.html#a904abc16c5828698aa8af5824b6a69c1aa1363fd51fd3dae2d8989711a11817ff">static_size</a> enum value</td><td><a class="el" href="structr123array4x64.html">r123array4x64</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x64.html#a9845020f8799cbf04156e3114a4c9314">swap</a>(r123array4x64 &rhs)</td><td><a class="el" href="structr123array4x64.html">r123array4x64</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x64.html#aae3a18410877c49f1058bc4d78a62f48">v</a></td><td><a class="el" href="structr123array4x64.html">r123array4x64</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array4x64.html#ae4a79be3ab80944a8bb6bc7ec7907061">value_type</a> typedef</td><td><a class="el" href="structr123array4x64.html">r123array4x64</a></td><td></td></tr>
+</table></div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/structr123array4x64.html b/docs/html/structr123array4x64.html
new file mode 100644
index 0000000..a08c8db
--- /dev/null
+++ b/docs/html/structr123array4x64.html
@@ -0,0 +1,892 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: r123array4x64 Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="summary">
+<a href="#pub-types">Public Types</a> |
+<a href="#pub-methods">Public Member Functions</a> |
+<a href="#pub-static-methods">Static Public Member Functions</a> |
+<a href="#pub-attribs">Public Attributes</a> |
+<a href="#pro-methods">Protected Member Functions</a>  </div>
+  <div class="headertitle">
+<h1>r123array4x64 Struct Reference<br/>
+<small>
+[<a class="el" href="group__arrayNxW.html">The r123arrayNxW classes</a>]</small>
+</h1>  </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="r123array4x64" -->
+<p><code>#include <<a class="el" href="array_8h_source.html">Random123/array.h</a>></code></p>
+
+<p><a href="structr123array4x64-members.html">List of all members.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-types"></a>
+Public Types</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom">{ <a class="el" href="structr123array4x64.html#a904abc16c5828698aa8af5824b6a69c1aa1363fd51fd3dae2d8989711a11817ff">static_size</a> =  4
+ }</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef uint64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x64.html#ae4a79be3ab80944a8bb6bc7ec7907061">value_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef uint64_t * </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x64.html#adfc9f1209d12f855b9330ecccc8b6dd2">iterator</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef const uint64_t * </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x64.html#a2aa5637bebf5c9c753edbce62e889d77">const_iterator</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123array4x64.html#ae4a79be3ab80944a8bb6bc7ec7907061">value_type</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x64.html#a14ea48b972d46d9424c317db9698224f">reference</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef const <a class="el" href="structr123array4x64.html#ae4a79be3ab80944a8bb6bc7ec7907061">value_type</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x64.html#ac2f21a458bf9008b831c553c5ae77508">const_reference</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x64.html#adbe34157dc62e7d2c988f12b06b273af">size_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef ptrdiff_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x64.html#a3b1c7395f17992d8760fe93d3930db12">difference_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef uint64_t * </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x64.html#a08c39c2f70f4198a82cba99c0162e67c">pointer</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef const uint64_t * </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x64.html#aa268882d3b4fb43ec9d82baf22d58cc5">const_pointer</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef std::reverse_iterator<br class="typebreak"/>
+< <a class="el" href="structr123array4x64.html#adfc9f1209d12f855b9330ecccc8b6dd2">iterator</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x64.html#acc93aa79ca040ce8fd0957ac86caa2f9">reverse_iterator</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef std::reverse_iterator<br class="typebreak"/>
+< <a class="el" href="structr123array4x64.html#a2aa5637bebf5c9c753edbce62e889d77">const_iterator</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x64.html#a8405a219a9c81f8f298298cffbfd46ac">const_reverse_iterator</a></td></tr>
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array4x64.html#a14ea48b972d46d9424c317db9698224f">reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x64.html#adf867ee2ffc437a3f358431d3729a33d">operator[]</a> (<a class="el" href="structr123array4x64.html#adbe34157dc62e7d2c988f12b06b273af">size_type</a> i)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array4x64.html#ac2f21a458bf9008b831c553c5ae77508">const_reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x64.html#a27c2001bf5af042aa450f17637646bd3">operator[]</a> (<a class="el" href="structr123array4x64.html#adbe34157dc62e7d2c988f12b06b273af">size_type</a> i) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array4x64.html#a14ea48b972d46d9424c317db9698224f">reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x64.html#a5b60c8dcd20ce894109e346fdb4cbdb2">at</a> (<a class="el" href="structr123array4x64.html#adbe34157dc62e7d2c988f12b06b273af">size_type</a> i)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array4x64.html#ac2f21a458bf9008b831c553c5ae77508">const_reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x64.html#a893d3db3d274fc15ac32bc7cbab0e82a">at</a> (<a class="el" href="structr123array4x64.html#adbe34157dc62e7d2c988f12b06b273af">size_type</a> i) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array4x64.html#adbe34157dc62e7d2c988f12b06b273af">size_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x64.html#a303c3feaf0783e99292c3220613ea903">size</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array4x64.html#adbe34157dc62e7d2c988f12b06b273af">size_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x64.html#aad1329f21e3fdd5d25a29148db564b8a">max_size</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x64.html#a51e4ded187a3f1ebadd6b915da039c3f">empty</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array4x64.html#adfc9f1209d12f855b9330ecccc8b6dd2">iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x64.html#ab78c67c429da6405f9d1ed5054635961">begin</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array4x64.html#adfc9f1209d12f855b9330ecccc8b6dd2">iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x64.html#a298a04608a19dd91cb30bd7980ad796f">end</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array4x64.html#a2aa5637bebf5c9c753edbce62e889d77">const_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x64.html#acd133812dbe01892199683e003921b8b">begin</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array4x64.html#a2aa5637bebf5c9c753edbce62e889d77">const_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x64.html#a9fed923c39000c81f7f6b608d88953f9">end</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array4x64.html#a2aa5637bebf5c9c753edbce62e889d77">const_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x64.html#af716d2b14d1243870e8544ea2a3cece6">cbegin</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array4x64.html#a2aa5637bebf5c9c753edbce62e889d77">const_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x64.html#af970ab87ce987c91097316bc0a0836ef">cend</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array4x64.html#acc93aa79ca040ce8fd0957ac86caa2f9">reverse_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x64.html#a102f75427ce01bea725da02b975834b5">rbegin</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array4x64.html#a8405a219a9c81f8f298298cffbfd46ac">const_reverse_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x64.html#a7ccc255ba0e1803080b117703dc3dc70">rbegin</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array4x64.html#acc93aa79ca040ce8fd0957ac86caa2f9">reverse_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x64.html#a71f59163070cb4cfd7ddda6f4f8576a1">rend</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array4x64.html#a8405a219a9c81f8f298298cffbfd46ac">const_reverse_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x64.html#a25538a452f6e709bacfc9f49b7216280">rend</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array4x64.html#a8405a219a9c81f8f298298cffbfd46ac">const_reverse_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x64.html#a7712a006a2b567321a6ac9e84bb267d8">crbegin</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array4x64.html#a8405a219a9c81f8f298298cffbfd46ac">const_reverse_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x64.html#a907eb18b7392479a8ad6b2ddfaaecbd2">crend</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array4x64.html#a08c39c2f70f4198a82cba99c0162e67c">pointer</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x64.html#a8567c3d6c4ee6c9cc2d8770d26e7fee9">data</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array4x64.html#aa268882d3b4fb43ec9d82baf22d58cc5">const_pointer</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x64.html#a31591d0bca18339d42c3a182a30457a0">data</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array4x64.html#a14ea48b972d46d9424c317db9698224f">reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x64.html#a975ecaf4c5332fc400dfc8d6d60d9035">front</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array4x64.html#ac2f21a458bf9008b831c553c5ae77508">const_reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x64.html#a256920b96d1d3a4c61489b145da7383e">front</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array4x64.html#a14ea48b972d46d9424c317db9698224f">reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x64.html#abb40868277e8a943a0b5464985baceb5">back</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array4x64.html#ac2f21a458bf9008b831c553c5ae77508">const_reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x64.html#a9006cfe7882bbc791a81a52f7cc0fd2d">back</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x64.html#afada659cc4a54a1416dca2522885cef1">operator==</a> (const <a class="el" href="structr123array4x64.html">r123array4x64</a> &rhs) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x64.html#abf2fc58ddb163708c087f72921dfd11d">operator!=</a> (const <a class="el" href="structr123array4x64.html">r123array4x64</a> &rhs) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x64.html#a6580c77b7d68c0a76b5bef33e59ac662">fill</a> (const <a class="el" href="structr123array4x64.html#ae4a79be3ab80944a8bb6bc7ec7907061">value_type</a> &val)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x64.html#a9845020f8799cbf04156e3114a4c9314">swap</a> (<a class="el" href="structr123array4x64.html">r123array4x64</a> &rhs)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array4x64.html">r123array4x64</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x64.html#ac4187b4ae44913183b1c8f9b7654f8a9">incr</a> (uint64_t n=1)</td></tr>
+<tr><td colspan="2"><h2><a name="pub-static-methods"></a>
+Static Public Member Functions</h2></td></tr>
+<tr><td class="memTemplParams" colspan="2">template<typename SeedSeq > </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">static <a class="el" href="structr123array4x64.html">r123array4x64</a> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="structr123array4x64.html#a6f0133930367a2260ed5a132bf737131">seed</a> (SeedSeq &ss)</td></tr>
+<tr><td colspan="2"><h2><a name="pub-attribs"></a>
+Public Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">uint64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x64.html#aae3a18410877c49f1058bc4d78a62f48">v</a> [4]</td></tr>
+<tr><td colspan="2"><h2><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array4x64.html">r123array4x64</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array4x64.html#af629d14b454f406cae4d128d9e05554d">incr_carefully</a> (uint64_t n)</td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__arrayNxW.html">The r123arrayNxW classes</a> </dd></dl>
+<hr/><h2>Member Typedef Documentation</h2>
+<a class="anchor" id="a2aa5637bebf5c9c753edbce62e889d77"></a><!-- doxytag: member="r123array4x64::const_iterator" ref="a2aa5637bebf5c9c753edbce62e889d77" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef const uint64_t* <a class="el" href="structr123array4x64.html#a2aa5637bebf5c9c753edbce62e889d77">r123array4x64::const_iterator</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa268882d3b4fb43ec9d82baf22d58cc5"></a><!-- doxytag: member="r123array4x64::const_pointer" ref="aa268882d3b4fb43ec9d82baf22d58cc5" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef const uint64_t* <a class="el" href="structr123array4x64.html#aa268882d3b4fb43ec9d82baf22d58cc5">r123array4x64::const_pointer</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ac2f21a458bf9008b831c553c5ae77508"></a><!-- doxytag: member="r123array4x64::const_reference" ref="ac2f21a458bf9008b831c553c5ae77508" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef const <a class="el" href="structr123array4x64.html#ae4a79be3ab80944a8bb6bc7ec7907061">value_type</a>& <a class="el" href="structr123array4x64.html#ac2f21a458bf9008b831c553c5ae77508">r123array4x64::const_reference</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a8405a219a9c81f8f298298cffbfd46ac"></a><!-- doxytag: member="r123array4x64::const_reverse_iterator" ref="a8405a219a9c81f8f298298cffbfd46ac" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef std::reverse_iterator<<a class="el" href="structr123array4x64.html#a2aa5637bebf5c9c753edbce62e889d77">const_iterator</a>> <a class="el" href="structr123array4x64.html#a8405a219a9c81f8f298298cffbfd46ac">r123array4x64::const_reverse_iterator</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a3b1c7395f17992d8760fe93d3930db12"></a><!-- doxytag: member="r123array4x64::difference_type" ref="a3b1c7395f17992d8760fe93d3930db12" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef ptrdiff_t <a class="el" href="structr123array4x64.html#a3b1c7395f17992d8760fe93d3930db12">r123array4x64::difference_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="adfc9f1209d12f855b9330ecccc8b6dd2"></a><!-- doxytag: member="r123array4x64::iterator" ref="adfc9f1209d12f855b9330ecccc8b6dd2" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef uint64_t* <a class="el" href="structr123array4x64.html#adfc9f1209d12f855b9330ecccc8b6dd2">r123array4x64::iterator</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a08c39c2f70f4198a82cba99c0162e67c"></a><!-- doxytag: member="r123array4x64::pointer" ref="a08c39c2f70f4198a82cba99c0162e67c" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef uint64_t* <a class="el" href="structr123array4x64.html#a08c39c2f70f4198a82cba99c0162e67c">r123array4x64::pointer</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a14ea48b972d46d9424c317db9698224f"></a><!-- doxytag: member="r123array4x64::reference" ref="a14ea48b972d46d9424c317db9698224f" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="structr123array4x64.html#ae4a79be3ab80944a8bb6bc7ec7907061">value_type</a>& <a class="el" href="structr123array4x64.html#a14ea48b972d46d9424c317db9698224f">r123array4x64::reference</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="acc93aa79ca040ce8fd0957ac86caa2f9"></a><!-- doxytag: member="r123array4x64::reverse_iterator" ref="acc93aa79ca040ce8fd0957ac86caa2f9" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef std::reverse_iterator<<a class="el" href="structr123array4x64.html#adfc9f1209d12f855b9330ecccc8b6dd2">iterator</a>> <a class="el" href="structr123array4x64.html#acc93aa79ca040ce8fd0957ac86caa2f9">r123array4x64::reverse_iterator</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="adbe34157dc62e7d2c988f12b06b273af"></a><!-- doxytag: member="r123array4x64::size_type" ref="adbe34157dc62e7d2c988f12b06b273af" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef size_t <a class="el" href="structr123array4x64.html#adbe34157dc62e7d2c988f12b06b273af">r123array4x64::size_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae4a79be3ab80944a8bb6bc7ec7907061"></a><!-- doxytag: member="r123array4x64::value_type" ref="ae4a79be3ab80944a8bb6bc7ec7907061" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef uint64_t <a class="el" href="structr123array4x64.html#ae4a79be3ab80944a8bb6bc7ec7907061">r123array4x64::value_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/><h2>Member Enumeration Documentation</h2>
+<a class="anchor" id="a904abc16c5828698aa8af5824b6a69c1"></a><!-- doxytag: member="r123array4x64::@6" ref="a904abc16c5828698aa8af5824b6a69c1" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">anonymous enum</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="a904abc16c5828698aa8af5824b6a69c1aa1363fd51fd3dae2d8989711a11817ff"></a><!-- doxytag: member="static_size" ref="a904abc16c5828698aa8af5824b6a69c1aa1363fd51fd3dae2d8989711a11817ff" args="" -->static_size</em> </td><td>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="a5b60c8dcd20ce894109e346fdb4cbdb2"></a><!-- doxytag: member="r123array4x64::at" ref="a5b60c8dcd20ce894109e346fdb4cbdb2" args="(size_type i)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array4x64.html#a14ea48b972d46d9424c317db9698224f">reference</a> r123array4x64::at </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array4x64.html#adbe34157dc62e7d2c988f12b06b273af">size_type</a> </td>
+          <td class="paramname"> <em>i</em></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a893d3db3d274fc15ac32bc7cbab0e82a"></a><!-- doxytag: member="r123array4x64::at" ref="a893d3db3d274fc15ac32bc7cbab0e82a" args="(size_type i) const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array4x64.html#ac2f21a458bf9008b831c553c5ae77508">const_reference</a> r123array4x64::at </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array4x64.html#adbe34157dc62e7d2c988f12b06b273af">size_type</a> </td>
+          <td class="paramname"> <em>i</em></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="abb40868277e8a943a0b5464985baceb5"></a><!-- doxytag: member="r123array4x64::back" ref="abb40868277e8a943a0b5464985baceb5" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array4x64.html#a14ea48b972d46d9424c317db9698224f">reference</a> r123array4x64::back </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a9006cfe7882bbc791a81a52f7cc0fd2d"></a><!-- doxytag: member="r123array4x64::back" ref="a9006cfe7882bbc791a81a52f7cc0fd2d" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array4x64.html#ac2f21a458bf9008b831c553c5ae77508">const_reference</a> r123array4x64::back </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ab78c67c429da6405f9d1ed5054635961"></a><!-- doxytag: member="r123array4x64::begin" ref="ab78c67c429da6405f9d1ed5054635961" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array4x64.html#adfc9f1209d12f855b9330ecccc8b6dd2">iterator</a> r123array4x64::begin </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="acd133812dbe01892199683e003921b8b"></a><!-- doxytag: member="r123array4x64::begin" ref="acd133812dbe01892199683e003921b8b" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array4x64.html#a2aa5637bebf5c9c753edbce62e889d77">const_iterator</a> r123array4x64::begin </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="af716d2b14d1243870e8544ea2a3cece6"></a><!-- doxytag: member="r123array4x64::cbegin" ref="af716d2b14d1243870e8544ea2a3cece6" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array4x64.html#a2aa5637bebf5c9c753edbce62e889d77">const_iterator</a> r123array4x64::cbegin </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="af970ab87ce987c91097316bc0a0836ef"></a><!-- doxytag: member="r123array4x64::cend" ref="af970ab87ce987c91097316bc0a0836ef" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array4x64.html#a2aa5637bebf5c9c753edbce62e889d77">const_iterator</a> r123array4x64::cend </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a7712a006a2b567321a6ac9e84bb267d8"></a><!-- doxytag: member="r123array4x64::crbegin" ref="a7712a006a2b567321a6ac9e84bb267d8" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array4x64.html#a8405a219a9c81f8f298298cffbfd46ac">const_reverse_iterator</a> r123array4x64::crbegin </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a907eb18b7392479a8ad6b2ddfaaecbd2"></a><!-- doxytag: member="r123array4x64::crend" ref="a907eb18b7392479a8ad6b2ddfaaecbd2" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array4x64.html#a8405a219a9c81f8f298298cffbfd46ac">const_reverse_iterator</a> r123array4x64::crend </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a8567c3d6c4ee6c9cc2d8770d26e7fee9"></a><!-- doxytag: member="r123array4x64::data" ref="a8567c3d6c4ee6c9cc2d8770d26e7fee9" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array4x64.html#a08c39c2f70f4198a82cba99c0162e67c">pointer</a> r123array4x64::data </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a31591d0bca18339d42c3a182a30457a0"></a><!-- doxytag: member="r123array4x64::data" ref="a31591d0bca18339d42c3a182a30457a0" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array4x64.html#aa268882d3b4fb43ec9d82baf22d58cc5">const_pointer</a> r123array4x64::data </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a51e4ded187a3f1ebadd6b915da039c3f"></a><!-- doxytag: member="r123array4x64::empty" ref="a51e4ded187a3f1ebadd6b915da039c3f" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool r123array4x64::empty </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a298a04608a19dd91cb30bd7980ad796f"></a><!-- doxytag: member="r123array4x64::end" ref="a298a04608a19dd91cb30bd7980ad796f" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array4x64.html#adfc9f1209d12f855b9330ecccc8b6dd2">iterator</a> r123array4x64::end </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a9fed923c39000c81f7f6b608d88953f9"></a><!-- doxytag: member="r123array4x64::end" ref="a9fed923c39000c81f7f6b608d88953f9" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array4x64.html#a2aa5637bebf5c9c753edbce62e889d77">const_iterator</a> r123array4x64::end </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a6580c77b7d68c0a76b5bef33e59ac662"></a><!-- doxytag: member="r123array4x64::fill" ref="a6580c77b7d68c0a76b5bef33e59ac662" args="(const value_type &val)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void r123array4x64::fill </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structr123array4x64.html#ae4a79be3ab80944a8bb6bc7ec7907061">value_type</a> & </td>
+          <td class="paramname"> <em>val</em></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a975ecaf4c5332fc400dfc8d6d60d9035"></a><!-- doxytag: member="r123array4x64::front" ref="a975ecaf4c5332fc400dfc8d6d60d9035" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array4x64.html#a14ea48b972d46d9424c317db9698224f">reference</a> r123array4x64::front </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a256920b96d1d3a4c61489b145da7383e"></a><!-- doxytag: member="r123array4x64::front" ref="a256920b96d1d3a4c61489b145da7383e" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array4x64.html#ac2f21a458bf9008b831c553c5ae77508">const_reference</a> r123array4x64::front </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ac4187b4ae44913183b1c8f9b7654f8a9"></a><!-- doxytag: member="r123array4x64::incr" ref="ac4187b4ae44913183b1c8f9b7654f8a9" args="(uint64_t n=1)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array4x64.html">r123array4x64</a>& r123array4x64::incr </td>
+          <td>(</td>
+          <td class="paramtype">uint64_t </td>
+          <td class="paramname"> <em>n</em> = <code>1</code></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="af629d14b454f406cae4d128d9e05554d"></a><!-- doxytag: member="r123array4x64::incr_carefully" ref="af629d14b454f406cae4d128d9e05554d" args="(uint64_t n)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array4x64.html">r123array4x64</a>& r123array4x64::incr_carefully </td>
+          <td>(</td>
+          <td class="paramtype">uint64_t </td>
+          <td class="paramname"> <em>n</em></td>
+          <td> ) </td>
+          <td><code> [inline, protected]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aad1329f21e3fdd5d25a29148db564b8a"></a><!-- doxytag: member="r123array4x64::max_size" ref="aad1329f21e3fdd5d25a29148db564b8a" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array4x64.html#adbe34157dc62e7d2c988f12b06b273af">size_type</a> r123array4x64::max_size </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="abf2fc58ddb163708c087f72921dfd11d"></a><!-- doxytag: member="r123array4x64::operator!=" ref="abf2fc58ddb163708c087f72921dfd11d" args="(const r123array4x64 &rhs) const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool r123array4x64::operator!= </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structr123array4x64.html">r123array4x64</a> & </td>
+          <td class="paramname"> <em>rhs</em></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="afada659cc4a54a1416dca2522885cef1"></a><!-- doxytag: member="r123array4x64::operator==" ref="afada659cc4a54a1416dca2522885cef1" args="(const r123array4x64 &rhs) const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool r123array4x64::operator== </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structr123array4x64.html">r123array4x64</a> & </td>
+          <td class="paramname"> <em>rhs</em></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a27c2001bf5af042aa450f17637646bd3"></a><!-- doxytag: member="r123array4x64::operator[]" ref="a27c2001bf5af042aa450f17637646bd3" args="(size_type i) const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array4x64.html#ac2f21a458bf9008b831c553c5ae77508">const_reference</a> r123array4x64::operator[] </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array4x64.html#adbe34157dc62e7d2c988f12b06b273af">size_type</a> </td>
+          <td class="paramname"> <em>i</em></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="adf867ee2ffc437a3f358431d3729a33d"></a><!-- doxytag: member="r123array4x64::operator[]" ref="adf867ee2ffc437a3f358431d3729a33d" args="(size_type i)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array4x64.html#a14ea48b972d46d9424c317db9698224f">reference</a> r123array4x64::operator[] </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array4x64.html#adbe34157dc62e7d2c988f12b06b273af">size_type</a> </td>
+          <td class="paramname"> <em>i</em></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a102f75427ce01bea725da02b975834b5"></a><!-- doxytag: member="r123array4x64::rbegin" ref="a102f75427ce01bea725da02b975834b5" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array4x64.html#acc93aa79ca040ce8fd0957ac86caa2f9">reverse_iterator</a> r123array4x64::rbegin </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a7ccc255ba0e1803080b117703dc3dc70"></a><!-- doxytag: member="r123array4x64::rbegin" ref="a7ccc255ba0e1803080b117703dc3dc70" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array4x64.html#a8405a219a9c81f8f298298cffbfd46ac">const_reverse_iterator</a> r123array4x64::rbegin </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a25538a452f6e709bacfc9f49b7216280"></a><!-- doxytag: member="r123array4x64::rend" ref="a25538a452f6e709bacfc9f49b7216280" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array4x64.html#a8405a219a9c81f8f298298cffbfd46ac">const_reverse_iterator</a> r123array4x64::rend </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a71f59163070cb4cfd7ddda6f4f8576a1"></a><!-- doxytag: member="r123array4x64::rend" ref="a71f59163070cb4cfd7ddda6f4f8576a1" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array4x64.html#acc93aa79ca040ce8fd0957ac86caa2f9">reverse_iterator</a> r123array4x64::rend </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a6f0133930367a2260ed5a132bf737131"></a><!-- doxytag: member="r123array4x64::seed" ref="a6f0133930367a2260ed5a132bf737131" args="(SeedSeq &ss)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename SeedSeq > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structr123array4x64.html">r123array4x64</a> r123array4x64::seed </td>
+          <td>(</td>
+          <td class="paramtype">SeedSeq & </td>
+          <td class="paramname"> <em>ss</em></td>
+          <td> ) </td>
+          <td><code> [inline, static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a303c3feaf0783e99292c3220613ea903"></a><!-- doxytag: member="r123array4x64::size" ref="a303c3feaf0783e99292c3220613ea903" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array4x64.html#adbe34157dc62e7d2c988f12b06b273af">size_type</a> r123array4x64::size </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a9845020f8799cbf04156e3114a4c9314"></a><!-- doxytag: member="r123array4x64::swap" ref="a9845020f8799cbf04156e3114a4c9314" args="(r123array4x64 &rhs)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void r123array4x64::swap </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array4x64.html">r123array4x64</a> & </td>
+          <td class="paramname"> <em>rhs</em></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/><h2>Member Data Documentation</h2>
+<a class="anchor" id="aae3a18410877c49f1058bc4d78a62f48"></a><!-- doxytag: member="r123array4x64::v" ref="aae3a18410877c49f1058bc4d78a62f48" args="[4]" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">uint64_t <a class="el" href="structr123array4x64.html#aae3a18410877c49f1058bc4d78a62f48">r123array4x64::v</a>[4]</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li>Random123/<a class="el" href="array_8h_source.html">array.h</a></li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/structr123array8x32-members.html b/docs/html/structr123array8x32-members.html
new file mode 100644
index 0000000..7af05d4
--- /dev/null
+++ b/docs/html/structr123array8x32-members.html
@@ -0,0 +1,123 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<h1>r123array8x32 Member List</h1>  </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="structr123array8x32.html">r123array8x32</a>, including all inherited members.<table>
+  <tr class="memlist"><td><a class="el" href="structr123array8x32.html#aa6c0788063f7e7b717aae2d9606cf302">at</a>(size_type i)</td><td><a class="el" href="structr123array8x32.html">r123array8x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array8x32.html#a79f982be8c435215a5e812e88e500216">at</a>(size_type i) const </td><td><a class="el" href="structr123array8x32.html">r123array8x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array8x32.html#a1d4176e4ad6d70c98805e0c924d2df37">back</a>()</td><td><a class="el" href="structr123array8x32.html">r123array8x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array8x32.html#a73f5b5012b1e6595f727ef88e60a53ac">back</a>() const </td><td><a class="el" href="structr123array8x32.html">r123array8x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array8x32.html#a7ae561c4d544e31f7bd2f256cb32f878">begin</a>()</td><td><a class="el" href="structr123array8x32.html">r123array8x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array8x32.html#ad924bdaf9facc3271ca2ae727cda23a3">begin</a>() const </td><td><a class="el" href="structr123array8x32.html">r123array8x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array8x32.html#a06c19ba6155e9c98892f5b98fb482c21">cbegin</a>() const </td><td><a class="el" href="structr123array8x32.html">r123array8x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array8x32.html#a0e1dfc305279a3439789dbdda8bfb6ae">cend</a>() const </td><td><a class="el" href="structr123array8x32.html">r123array8x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array8x32.html#aa026dfdf1e2741c96db4343ceffd3c9f">const_iterator</a> typedef</td><td><a class="el" href="structr123array8x32.html">r123array8x32</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array8x32.html#a621f6293254c6300b1d1b9835b7f30ba">const_pointer</a> typedef</td><td><a class="el" href="structr123array8x32.html">r123array8x32</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array8x32.html#a2e7eda7e8940b37e17aef9b0efec3685">const_reference</a> typedef</td><td><a class="el" href="structr123array8x32.html">r123array8x32</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array8x32.html#a207923147148d154b1659e257db44033">const_reverse_iterator</a> typedef</td><td><a class="el" href="structr123array8x32.html">r123array8x32</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array8x32.html#a4ad5f793478a9658c52dc085b6c504ae">crbegin</a>() const </td><td><a class="el" href="structr123array8x32.html">r123array8x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array8x32.html#ace0b6344aa8f0b9812a2610b6949a6b7">crend</a>() const </td><td><a class="el" href="structr123array8x32.html">r123array8x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array8x32.html#a78448bbbef69b3383eec4d78a814b4b2">data</a>()</td><td><a class="el" href="structr123array8x32.html">r123array8x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array8x32.html#a0e2eb8cfaf36664411f19a6828339553">data</a>() const </td><td><a class="el" href="structr123array8x32.html">r123array8x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array8x32.html#af8029821cb8a7b5a3500adb30d4f2326">difference_type</a> typedef</td><td><a class="el" href="structr123array8x32.html">r123array8x32</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array8x32.html#af2276e84924345efab98214be1691c83">empty</a>() const </td><td><a class="el" href="structr123array8x32.html">r123array8x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array8x32.html#a40c40a7a86150ec0e9d29739e0e649c3">end</a>()</td><td><a class="el" href="structr123array8x32.html">r123array8x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array8x32.html#acc1aa99ed89deb63c3ba7f71319ac10c">end</a>() const </td><td><a class="el" href="structr123array8x32.html">r123array8x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array8x32.html#a86481aecfb276687e9389cb6c43e1e8c">fill</a>(const value_type &val)</td><td><a class="el" href="structr123array8x32.html">r123array8x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array8x32.html#aeab7da4db40303e2104b79c2d8f3eced">front</a>()</td><td><a class="el" href="structr123array8x32.html">r123array8x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array8x32.html#aee2127f4a99f86b3fc7a9059e7d84e76">front</a>() const </td><td><a class="el" href="structr123array8x32.html">r123array8x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array8x32.html#a92ded324d4b7e2602766fa0c71fa5985">incr</a>(uint64_t n=1)</td><td><a class="el" href="structr123array8x32.html">r123array8x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array8x32.html#a9e73ed67b7c577ebdb6c5e1f121fdc4f">incr_carefully</a>(uint64_t n)</td><td><a class="el" href="structr123array8x32.html">r123array8x32</a></td><td><code> [inline, protected]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array8x32.html#aad8ff34e784d954a05f3f058facfb2be">iterator</a> typedef</td><td><a class="el" href="structr123array8x32.html">r123array8x32</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array8x32.html#a0ea0af65a3b0a51c090ab6ef11f20c63">max_size</a>() const </td><td><a class="el" href="structr123array8x32.html">r123array8x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array8x32.html#aed510e0472db9b00490c468d88e14bac">operator!=</a>(const r123array8x32 &rhs) const </td><td><a class="el" href="structr123array8x32.html">r123array8x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array8x32.html#ae9ffa98997557c87b0a08b6ed2835155">operator==</a>(const r123array8x32 &rhs) const </td><td><a class="el" href="structr123array8x32.html">r123array8x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array8x32.html#a2b0d17077d419e9f296318161fcc0470">operator[]</a>(size_type i)</td><td><a class="el" href="structr123array8x32.html">r123array8x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array8x32.html#ace7ad1b4aca1ad419c373d9cff872805">operator[]</a>(size_type i) const </td><td><a class="el" href="structr123array8x32.html">r123array8x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array8x32.html#aeaf3b46bbc571a21d61ad6ee6e760291">pointer</a> typedef</td><td><a class="el" href="structr123array8x32.html">r123array8x32</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array8x32.html#a0a143a573df3282ba5b9cb2190047cca">rbegin</a>()</td><td><a class="el" href="structr123array8x32.html">r123array8x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array8x32.html#a959345559456fbc9e7e72d03a72a032c">rbegin</a>() const </td><td><a class="el" href="structr123array8x32.html">r123array8x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array8x32.html#a4027cd913ec90428d5d0dcad23a5dc2b">reference</a> typedef</td><td><a class="el" href="structr123array8x32.html">r123array8x32</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array8x32.html#aa84fc75185aedca379d23c0220b5c64a">rend</a>()</td><td><a class="el" href="structr123array8x32.html">r123array8x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array8x32.html#afcf1ea68c3cd0ce7ff6de11d3030eb93">rend</a>() const </td><td><a class="el" href="structr123array8x32.html">r123array8x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array8x32.html#acab5de900b99bad5f69009f48fa72235">reverse_iterator</a> typedef</td><td><a class="el" href="structr123array8x32.html">r123array8x32</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array8x32.html#a93139b379ce88e16f75eb9edcf40b357">seed</a>(SeedSeq &ss)</td><td><a class="el" href="structr123array8x32.html">r123array8x32</a></td><td><code> [inline, static]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array8x32.html#aa4025fb7c1ef2c3376bdc9ae88b91553">size</a>() const </td><td><a class="el" href="structr123array8x32.html">r123array8x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array8x32.html#aa262b29c3d3fa22b07447b02c8c4be17">size_type</a> typedef</td><td><a class="el" href="structr123array8x32.html">r123array8x32</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array8x32.html#aae848a29e2a9b3229fc7063440885c4fa2270c17b2a56aea106facc9a22b62be6">static_size</a> enum value</td><td><a class="el" href="structr123array8x32.html">r123array8x32</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array8x32.html#a04c88fca3a8cc3b579e9fc480629888e">swap</a>(r123array8x32 &rhs)</td><td><a class="el" href="structr123array8x32.html">r123array8x32</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array8x32.html#a7a84d2a924a271cc7b5f748023517d10">v</a></td><td><a class="el" href="structr123array8x32.html">r123array8x32</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123array8x32.html#af47fd0d348b68dd7a2853c68eb32d8b7">value_type</a> typedef</td><td><a class="el" href="structr123array8x32.html">r123array8x32</a></td><td></td></tr>
+</table></div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/structr123array8x32.html b/docs/html/structr123array8x32.html
new file mode 100644
index 0000000..19670eb
--- /dev/null
+++ b/docs/html/structr123array8x32.html
@@ -0,0 +1,892 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: r123array8x32 Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="summary">
+<a href="#pub-types">Public Types</a> |
+<a href="#pub-methods">Public Member Functions</a> |
+<a href="#pub-static-methods">Static Public Member Functions</a> |
+<a href="#pub-attribs">Public Attributes</a> |
+<a href="#pro-methods">Protected Member Functions</a>  </div>
+  <div class="headertitle">
+<h1>r123array8x32 Struct Reference<br/>
+<small>
+[<a class="el" href="group__arrayNxW.html">The r123arrayNxW classes</a>]</small>
+</h1>  </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="r123array8x32" -->
+<p><code>#include <<a class="el" href="array_8h_source.html">Random123/array.h</a>></code></p>
+
+<p><a href="structr123array8x32-members.html">List of all members.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-types"></a>
+Public Types</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom">{ <a class="el" href="structr123array8x32.html#aae848a29e2a9b3229fc7063440885c4fa2270c17b2a56aea106facc9a22b62be6">static_size</a> =  8
+ }</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array8x32.html#af47fd0d348b68dd7a2853c68eb32d8b7">value_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef uint32_t * </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array8x32.html#aad8ff34e784d954a05f3f058facfb2be">iterator</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef const uint32_t * </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array8x32.html#aa026dfdf1e2741c96db4343ceffd3c9f">const_iterator</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structr123array8x32.html#af47fd0d348b68dd7a2853c68eb32d8b7">value_type</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array8x32.html#a4027cd913ec90428d5d0dcad23a5dc2b">reference</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef const <a class="el" href="structr123array8x32.html#af47fd0d348b68dd7a2853c68eb32d8b7">value_type</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array8x32.html#a2e7eda7e8940b37e17aef9b0efec3685">const_reference</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array8x32.html#aa262b29c3d3fa22b07447b02c8c4be17">size_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef ptrdiff_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array8x32.html#af8029821cb8a7b5a3500adb30d4f2326">difference_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef uint32_t * </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array8x32.html#aeaf3b46bbc571a21d61ad6ee6e760291">pointer</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef const uint32_t * </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array8x32.html#a621f6293254c6300b1d1b9835b7f30ba">const_pointer</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef std::reverse_iterator<br class="typebreak"/>
+< <a class="el" href="structr123array8x32.html#aad8ff34e784d954a05f3f058facfb2be">iterator</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array8x32.html#acab5de900b99bad5f69009f48fa72235">reverse_iterator</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef std::reverse_iterator<br class="typebreak"/>
+< <a class="el" href="structr123array8x32.html#aa026dfdf1e2741c96db4343ceffd3c9f">const_iterator</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array8x32.html#a207923147148d154b1659e257db44033">const_reverse_iterator</a></td></tr>
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array8x32.html#a4027cd913ec90428d5d0dcad23a5dc2b">reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array8x32.html#a2b0d17077d419e9f296318161fcc0470">operator[]</a> (<a class="el" href="structr123array8x32.html#aa262b29c3d3fa22b07447b02c8c4be17">size_type</a> i)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array8x32.html#a2e7eda7e8940b37e17aef9b0efec3685">const_reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array8x32.html#ace7ad1b4aca1ad419c373d9cff872805">operator[]</a> (<a class="el" href="structr123array8x32.html#aa262b29c3d3fa22b07447b02c8c4be17">size_type</a> i) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array8x32.html#a4027cd913ec90428d5d0dcad23a5dc2b">reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array8x32.html#aa6c0788063f7e7b717aae2d9606cf302">at</a> (<a class="el" href="structr123array8x32.html#aa262b29c3d3fa22b07447b02c8c4be17">size_type</a> i)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array8x32.html#a2e7eda7e8940b37e17aef9b0efec3685">const_reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array8x32.html#a79f982be8c435215a5e812e88e500216">at</a> (<a class="el" href="structr123array8x32.html#aa262b29c3d3fa22b07447b02c8c4be17">size_type</a> i) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array8x32.html#aa262b29c3d3fa22b07447b02c8c4be17">size_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array8x32.html#aa4025fb7c1ef2c3376bdc9ae88b91553">size</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array8x32.html#aa262b29c3d3fa22b07447b02c8c4be17">size_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array8x32.html#a0ea0af65a3b0a51c090ab6ef11f20c63">max_size</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array8x32.html#af2276e84924345efab98214be1691c83">empty</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array8x32.html#aad8ff34e784d954a05f3f058facfb2be">iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array8x32.html#a7ae561c4d544e31f7bd2f256cb32f878">begin</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array8x32.html#aad8ff34e784d954a05f3f058facfb2be">iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array8x32.html#a40c40a7a86150ec0e9d29739e0e649c3">end</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array8x32.html#aa026dfdf1e2741c96db4343ceffd3c9f">const_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array8x32.html#ad924bdaf9facc3271ca2ae727cda23a3">begin</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array8x32.html#aa026dfdf1e2741c96db4343ceffd3c9f">const_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array8x32.html#acc1aa99ed89deb63c3ba7f71319ac10c">end</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array8x32.html#aa026dfdf1e2741c96db4343ceffd3c9f">const_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array8x32.html#a06c19ba6155e9c98892f5b98fb482c21">cbegin</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array8x32.html#aa026dfdf1e2741c96db4343ceffd3c9f">const_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array8x32.html#a0e1dfc305279a3439789dbdda8bfb6ae">cend</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array8x32.html#acab5de900b99bad5f69009f48fa72235">reverse_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array8x32.html#a0a143a573df3282ba5b9cb2190047cca">rbegin</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array8x32.html#a207923147148d154b1659e257db44033">const_reverse_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array8x32.html#a959345559456fbc9e7e72d03a72a032c">rbegin</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array8x32.html#acab5de900b99bad5f69009f48fa72235">reverse_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array8x32.html#aa84fc75185aedca379d23c0220b5c64a">rend</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array8x32.html#a207923147148d154b1659e257db44033">const_reverse_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array8x32.html#afcf1ea68c3cd0ce7ff6de11d3030eb93">rend</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array8x32.html#a207923147148d154b1659e257db44033">const_reverse_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array8x32.html#a4ad5f793478a9658c52dc085b6c504ae">crbegin</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array8x32.html#a207923147148d154b1659e257db44033">const_reverse_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array8x32.html#ace0b6344aa8f0b9812a2610b6949a6b7">crend</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array8x32.html#aeaf3b46bbc571a21d61ad6ee6e760291">pointer</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array8x32.html#a78448bbbef69b3383eec4d78a814b4b2">data</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array8x32.html#a621f6293254c6300b1d1b9835b7f30ba">const_pointer</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array8x32.html#a0e2eb8cfaf36664411f19a6828339553">data</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array8x32.html#a4027cd913ec90428d5d0dcad23a5dc2b">reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array8x32.html#aeab7da4db40303e2104b79c2d8f3eced">front</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array8x32.html#a2e7eda7e8940b37e17aef9b0efec3685">const_reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array8x32.html#aee2127f4a99f86b3fc7a9059e7d84e76">front</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array8x32.html#a4027cd913ec90428d5d0dcad23a5dc2b">reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array8x32.html#a1d4176e4ad6d70c98805e0c924d2df37">back</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array8x32.html#a2e7eda7e8940b37e17aef9b0efec3685">const_reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array8x32.html#a73f5b5012b1e6595f727ef88e60a53ac">back</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array8x32.html#ae9ffa98997557c87b0a08b6ed2835155">operator==</a> (const <a class="el" href="structr123array8x32.html">r123array8x32</a> &rhs) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array8x32.html#aed510e0472db9b00490c468d88e14bac">operator!=</a> (const <a class="el" href="structr123array8x32.html">r123array8x32</a> &rhs) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array8x32.html#a86481aecfb276687e9389cb6c43e1e8c">fill</a> (const <a class="el" href="structr123array8x32.html#af47fd0d348b68dd7a2853c68eb32d8b7">value_type</a> &val)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array8x32.html#a04c88fca3a8cc3b579e9fc480629888e">swap</a> (<a class="el" href="structr123array8x32.html">r123array8x32</a> &rhs)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array8x32.html">r123array8x32</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array8x32.html#a92ded324d4b7e2602766fa0c71fa5985">incr</a> (uint64_t n=1)</td></tr>
+<tr><td colspan="2"><h2><a name="pub-static-methods"></a>
+Static Public Member Functions</h2></td></tr>
+<tr><td class="memTemplParams" colspan="2">template<typename SeedSeq > </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">static <a class="el" href="structr123array8x32.html">r123array8x32</a> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="structr123array8x32.html#a93139b379ce88e16f75eb9edcf40b357">seed</a> (SeedSeq &ss)</td></tr>
+<tr><td colspan="2"><h2><a name="pub-attribs"></a>
+Public Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array8x32.html#a7a84d2a924a271cc7b5f748023517d10">v</a> [8]</td></tr>
+<tr><td colspan="2"><h2><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123array8x32.html">r123array8x32</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123array8x32.html#a9e73ed67b7c577ebdb6c5e1f121fdc4f">incr_carefully</a> (uint64_t n)</td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__arrayNxW.html">The r123arrayNxW classes</a> </dd></dl>
+<hr/><h2>Member Typedef Documentation</h2>
+<a class="anchor" id="aa026dfdf1e2741c96db4343ceffd3c9f"></a><!-- doxytag: member="r123array8x32::const_iterator" ref="aa026dfdf1e2741c96db4343ceffd3c9f" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef const uint32_t* <a class="el" href="structr123array8x32.html#aa026dfdf1e2741c96db4343ceffd3c9f">r123array8x32::const_iterator</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a621f6293254c6300b1d1b9835b7f30ba"></a><!-- doxytag: member="r123array8x32::const_pointer" ref="a621f6293254c6300b1d1b9835b7f30ba" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef const uint32_t* <a class="el" href="structr123array8x32.html#a621f6293254c6300b1d1b9835b7f30ba">r123array8x32::const_pointer</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a2e7eda7e8940b37e17aef9b0efec3685"></a><!-- doxytag: member="r123array8x32::const_reference" ref="a2e7eda7e8940b37e17aef9b0efec3685" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef const <a class="el" href="structr123array8x32.html#af47fd0d348b68dd7a2853c68eb32d8b7">value_type</a>& <a class="el" href="structr123array8x32.html#a2e7eda7e8940b37e17aef9b0efec3685">r123array8x32::const_reference</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a207923147148d154b1659e257db44033"></a><!-- doxytag: member="r123array8x32::const_reverse_iterator" ref="a207923147148d154b1659e257db44033" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef std::reverse_iterator<<a class="el" href="structr123array8x32.html#aa026dfdf1e2741c96db4343ceffd3c9f">const_iterator</a>> <a class="el" href="structr123array8x32.html#a207923147148d154b1659e257db44033">r123array8x32::const_reverse_iterator</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="af8029821cb8a7b5a3500adb30d4f2326"></a><!-- doxytag: member="r123array8x32::difference_type" ref="af8029821cb8a7b5a3500adb30d4f2326" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef ptrdiff_t <a class="el" href="structr123array8x32.html#af8029821cb8a7b5a3500adb30d4f2326">r123array8x32::difference_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aad8ff34e784d954a05f3f058facfb2be"></a><!-- doxytag: member="r123array8x32::iterator" ref="aad8ff34e784d954a05f3f058facfb2be" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef uint32_t* <a class="el" href="structr123array8x32.html#aad8ff34e784d954a05f3f058facfb2be">r123array8x32::iterator</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aeaf3b46bbc571a21d61ad6ee6e760291"></a><!-- doxytag: member="r123array8x32::pointer" ref="aeaf3b46bbc571a21d61ad6ee6e760291" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef uint32_t* <a class="el" href="structr123array8x32.html#aeaf3b46bbc571a21d61ad6ee6e760291">r123array8x32::pointer</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a4027cd913ec90428d5d0dcad23a5dc2b"></a><!-- doxytag: member="r123array8x32::reference" ref="a4027cd913ec90428d5d0dcad23a5dc2b" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="structr123array8x32.html#af47fd0d348b68dd7a2853c68eb32d8b7">value_type</a>& <a class="el" href="structr123array8x32.html#a4027cd913ec90428d5d0dcad23a5dc2b">r123array8x32::reference</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="acab5de900b99bad5f69009f48fa72235"></a><!-- doxytag: member="r123array8x32::reverse_iterator" ref="acab5de900b99bad5f69009f48fa72235" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef std::reverse_iterator<<a class="el" href="structr123array8x32.html#aad8ff34e784d954a05f3f058facfb2be">iterator</a>> <a class="el" href="structr123array8x32.html#acab5de900b99bad5f69009f48fa72235">r123array8x32::reverse_iterator</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa262b29c3d3fa22b07447b02c8c4be17"></a><!-- doxytag: member="r123array8x32::size_type" ref="aa262b29c3d3fa22b07447b02c8c4be17" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef size_t <a class="el" href="structr123array8x32.html#aa262b29c3d3fa22b07447b02c8c4be17">r123array8x32::size_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="af47fd0d348b68dd7a2853c68eb32d8b7"></a><!-- doxytag: member="r123array8x32::value_type" ref="af47fd0d348b68dd7a2853c68eb32d8b7" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef uint32_t <a class="el" href="structr123array8x32.html#af47fd0d348b68dd7a2853c68eb32d8b7">r123array8x32::value_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/><h2>Member Enumeration Documentation</h2>
+<a class="anchor" id="aae848a29e2a9b3229fc7063440885c4f"></a><!-- doxytag: member="r123array8x32::@3" ref="aae848a29e2a9b3229fc7063440885c4f" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">anonymous enum</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="aae848a29e2a9b3229fc7063440885c4fa2270c17b2a56aea106facc9a22b62be6"></a><!-- doxytag: member="static_size" ref="aae848a29e2a9b3229fc7063440885c4fa2270c17b2a56aea106facc9a22b62be6" args="" -->static_size</em> </td><td>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="aa6c0788063f7e7b717aae2d9606cf302"></a><!-- doxytag: member="r123array8x32::at" ref="aa6c0788063f7e7b717aae2d9606cf302" args="(size_type i)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array8x32.html#a4027cd913ec90428d5d0dcad23a5dc2b">reference</a> r123array8x32::at </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array8x32.html#aa262b29c3d3fa22b07447b02c8c4be17">size_type</a> </td>
+          <td class="paramname"> <em>i</em></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a79f982be8c435215a5e812e88e500216"></a><!-- doxytag: member="r123array8x32::at" ref="a79f982be8c435215a5e812e88e500216" args="(size_type i) const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array8x32.html#a2e7eda7e8940b37e17aef9b0efec3685">const_reference</a> r123array8x32::at </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array8x32.html#aa262b29c3d3fa22b07447b02c8c4be17">size_type</a> </td>
+          <td class="paramname"> <em>i</em></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a1d4176e4ad6d70c98805e0c924d2df37"></a><!-- doxytag: member="r123array8x32::back" ref="a1d4176e4ad6d70c98805e0c924d2df37" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array8x32.html#a4027cd913ec90428d5d0dcad23a5dc2b">reference</a> r123array8x32::back </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a73f5b5012b1e6595f727ef88e60a53ac"></a><!-- doxytag: member="r123array8x32::back" ref="a73f5b5012b1e6595f727ef88e60a53ac" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array8x32.html#a2e7eda7e8940b37e17aef9b0efec3685">const_reference</a> r123array8x32::back </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a7ae561c4d544e31f7bd2f256cb32f878"></a><!-- doxytag: member="r123array8x32::begin" ref="a7ae561c4d544e31f7bd2f256cb32f878" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array8x32.html#aad8ff34e784d954a05f3f058facfb2be">iterator</a> r123array8x32::begin </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ad924bdaf9facc3271ca2ae727cda23a3"></a><!-- doxytag: member="r123array8x32::begin" ref="ad924bdaf9facc3271ca2ae727cda23a3" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array8x32.html#aa026dfdf1e2741c96db4343ceffd3c9f">const_iterator</a> r123array8x32::begin </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a06c19ba6155e9c98892f5b98fb482c21"></a><!-- doxytag: member="r123array8x32::cbegin" ref="a06c19ba6155e9c98892f5b98fb482c21" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array8x32.html#aa026dfdf1e2741c96db4343ceffd3c9f">const_iterator</a> r123array8x32::cbegin </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a0e1dfc305279a3439789dbdda8bfb6ae"></a><!-- doxytag: member="r123array8x32::cend" ref="a0e1dfc305279a3439789dbdda8bfb6ae" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array8x32.html#aa026dfdf1e2741c96db4343ceffd3c9f">const_iterator</a> r123array8x32::cend </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a4ad5f793478a9658c52dc085b6c504ae"></a><!-- doxytag: member="r123array8x32::crbegin" ref="a4ad5f793478a9658c52dc085b6c504ae" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array8x32.html#a207923147148d154b1659e257db44033">const_reverse_iterator</a> r123array8x32::crbegin </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ace0b6344aa8f0b9812a2610b6949a6b7"></a><!-- doxytag: member="r123array8x32::crend" ref="ace0b6344aa8f0b9812a2610b6949a6b7" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array8x32.html#a207923147148d154b1659e257db44033">const_reverse_iterator</a> r123array8x32::crend </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a78448bbbef69b3383eec4d78a814b4b2"></a><!-- doxytag: member="r123array8x32::data" ref="a78448bbbef69b3383eec4d78a814b4b2" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array8x32.html#aeaf3b46bbc571a21d61ad6ee6e760291">pointer</a> r123array8x32::data </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a0e2eb8cfaf36664411f19a6828339553"></a><!-- doxytag: member="r123array8x32::data" ref="a0e2eb8cfaf36664411f19a6828339553" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array8x32.html#a621f6293254c6300b1d1b9835b7f30ba">const_pointer</a> r123array8x32::data </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="af2276e84924345efab98214be1691c83"></a><!-- doxytag: member="r123array8x32::empty" ref="af2276e84924345efab98214be1691c83" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool r123array8x32::empty </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a40c40a7a86150ec0e9d29739e0e649c3"></a><!-- doxytag: member="r123array8x32::end" ref="a40c40a7a86150ec0e9d29739e0e649c3" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array8x32.html#aad8ff34e784d954a05f3f058facfb2be">iterator</a> r123array8x32::end </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="acc1aa99ed89deb63c3ba7f71319ac10c"></a><!-- doxytag: member="r123array8x32::end" ref="acc1aa99ed89deb63c3ba7f71319ac10c" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array8x32.html#aa026dfdf1e2741c96db4343ceffd3c9f">const_iterator</a> r123array8x32::end </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a86481aecfb276687e9389cb6c43e1e8c"></a><!-- doxytag: member="r123array8x32::fill" ref="a86481aecfb276687e9389cb6c43e1e8c" args="(const value_type &val)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void r123array8x32::fill </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structr123array8x32.html#af47fd0d348b68dd7a2853c68eb32d8b7">value_type</a> & </td>
+          <td class="paramname"> <em>val</em></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aeab7da4db40303e2104b79c2d8f3eced"></a><!-- doxytag: member="r123array8x32::front" ref="aeab7da4db40303e2104b79c2d8f3eced" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array8x32.html#a4027cd913ec90428d5d0dcad23a5dc2b">reference</a> r123array8x32::front </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aee2127f4a99f86b3fc7a9059e7d84e76"></a><!-- doxytag: member="r123array8x32::front" ref="aee2127f4a99f86b3fc7a9059e7d84e76" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array8x32.html#a2e7eda7e8940b37e17aef9b0efec3685">const_reference</a> r123array8x32::front </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a92ded324d4b7e2602766fa0c71fa5985"></a><!-- doxytag: member="r123array8x32::incr" ref="a92ded324d4b7e2602766fa0c71fa5985" args="(uint64_t n=1)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array8x32.html">r123array8x32</a>& r123array8x32::incr </td>
+          <td>(</td>
+          <td class="paramtype">uint64_t </td>
+          <td class="paramname"> <em>n</em> = <code>1</code></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a9e73ed67b7c577ebdb6c5e1f121fdc4f"></a><!-- doxytag: member="r123array8x32::incr_carefully" ref="a9e73ed67b7c577ebdb6c5e1f121fdc4f" args="(uint64_t n)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array8x32.html">r123array8x32</a>& r123array8x32::incr_carefully </td>
+          <td>(</td>
+          <td class="paramtype">uint64_t </td>
+          <td class="paramname"> <em>n</em></td>
+          <td> ) </td>
+          <td><code> [inline, protected]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a0ea0af65a3b0a51c090ab6ef11f20c63"></a><!-- doxytag: member="r123array8x32::max_size" ref="a0ea0af65a3b0a51c090ab6ef11f20c63" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array8x32.html#aa262b29c3d3fa22b07447b02c8c4be17">size_type</a> r123array8x32::max_size </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aed510e0472db9b00490c468d88e14bac"></a><!-- doxytag: member="r123array8x32::operator!=" ref="aed510e0472db9b00490c468d88e14bac" args="(const r123array8x32 &rhs) const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool r123array8x32::operator!= </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structr123array8x32.html">r123array8x32</a> & </td>
+          <td class="paramname"> <em>rhs</em></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae9ffa98997557c87b0a08b6ed2835155"></a><!-- doxytag: member="r123array8x32::operator==" ref="ae9ffa98997557c87b0a08b6ed2835155" args="(const r123array8x32 &rhs) const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool r123array8x32::operator== </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structr123array8x32.html">r123array8x32</a> & </td>
+          <td class="paramname"> <em>rhs</em></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ace7ad1b4aca1ad419c373d9cff872805"></a><!-- doxytag: member="r123array8x32::operator[]" ref="ace7ad1b4aca1ad419c373d9cff872805" args="(size_type i) const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array8x32.html#a2e7eda7e8940b37e17aef9b0efec3685">const_reference</a> r123array8x32::operator[] </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array8x32.html#aa262b29c3d3fa22b07447b02c8c4be17">size_type</a> </td>
+          <td class="paramname"> <em>i</em></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a2b0d17077d419e9f296318161fcc0470"></a><!-- doxytag: member="r123array8x32::operator[]" ref="a2b0d17077d419e9f296318161fcc0470" args="(size_type i)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array8x32.html#a4027cd913ec90428d5d0dcad23a5dc2b">reference</a> r123array8x32::operator[] </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array8x32.html#aa262b29c3d3fa22b07447b02c8c4be17">size_type</a> </td>
+          <td class="paramname"> <em>i</em></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a0a143a573df3282ba5b9cb2190047cca"></a><!-- doxytag: member="r123array8x32::rbegin" ref="a0a143a573df3282ba5b9cb2190047cca" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array8x32.html#acab5de900b99bad5f69009f48fa72235">reverse_iterator</a> r123array8x32::rbegin </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a959345559456fbc9e7e72d03a72a032c"></a><!-- doxytag: member="r123array8x32::rbegin" ref="a959345559456fbc9e7e72d03a72a032c" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array8x32.html#a207923147148d154b1659e257db44033">const_reverse_iterator</a> r123array8x32::rbegin </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="afcf1ea68c3cd0ce7ff6de11d3030eb93"></a><!-- doxytag: member="r123array8x32::rend" ref="afcf1ea68c3cd0ce7ff6de11d3030eb93" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array8x32.html#a207923147148d154b1659e257db44033">const_reverse_iterator</a> r123array8x32::rend </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa84fc75185aedca379d23c0220b5c64a"></a><!-- doxytag: member="r123array8x32::rend" ref="aa84fc75185aedca379d23c0220b5c64a" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array8x32.html#acab5de900b99bad5f69009f48fa72235">reverse_iterator</a> r123array8x32::rend </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a93139b379ce88e16f75eb9edcf40b357"></a><!-- doxytag: member="r123array8x32::seed" ref="a93139b379ce88e16f75eb9edcf40b357" args="(SeedSeq &ss)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename SeedSeq > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structr123array8x32.html">r123array8x32</a> r123array8x32::seed </td>
+          <td>(</td>
+          <td class="paramtype">SeedSeq & </td>
+          <td class="paramname"> <em>ss</em></td>
+          <td> ) </td>
+          <td><code> [inline, static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa4025fb7c1ef2c3376bdc9ae88b91553"></a><!-- doxytag: member="r123array8x32::size" ref="aa4025fb7c1ef2c3376bdc9ae88b91553" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123array8x32.html#aa262b29c3d3fa22b07447b02c8c4be17">size_type</a> r123array8x32::size </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a04c88fca3a8cc3b579e9fc480629888e"></a><!-- doxytag: member="r123array8x32::swap" ref="a04c88fca3a8cc3b579e9fc480629888e" args="(r123array8x32 &rhs)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void r123array8x32::swap </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array8x32.html">r123array8x32</a> & </td>
+          <td class="paramname"> <em>rhs</em></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/><h2>Member Data Documentation</h2>
+<a class="anchor" id="a7a84d2a924a271cc7b5f748023517d10"></a><!-- doxytag: member="r123array8x32::v" ref="a7a84d2a924a271cc7b5f748023517d10" args="[8]" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">uint32_t <a class="el" href="structr123array8x32.html#a7a84d2a924a271cc7b5f748023517d10">r123array8x32::v</a>[8]</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li>Random123/<a class="el" href="array_8h_source.html">array.h</a></li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/structr123m128i-members.html b/docs/html/structr123m128i-members.html
new file mode 100644
index 0000000..423d7b0
--- /dev/null
+++ b/docs/html/structr123m128i-members.html
@@ -0,0 +1,83 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<h1>r123m128i Member List</h1>  </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="structr123m128i.html">r123m128i</a>, including all inherited members.<table>
+  <tr class="memlist"><td><a class="el" href="structr123m128i.html#a9b9908268281aace8028a3f34980634d">m</a></td><td><a class="el" href="structr123m128i.html">r123m128i</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123m128i.html#a80a5c24f76fec61b3ab0ed0e0353cfb7">operator __m128i</a>() const </td><td><a class="el" href="structr123m128i.html">r123m128i</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123m128i.html#ae5788785c2ce7f7ca6ff8dd4377771f3">operator const void *</a>() const </td><td><a class="el" href="structr123m128i.html">r123m128i</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123m128i.html#a9842fbc85102e0019cc58d97c28e2d02">operator=</a>(const __m128i &rhs)</td><td><a class="el" href="structr123m128i.html">r123m128i</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structr123m128i.html#a0da7ae920bce1b75efb91017ab6bc37c">operator=</a>(uint64_t n)</td><td><a class="el" href="structr123m128i.html">r123m128i</a></td><td><code> [inline]</code></td></tr>
+</table></div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/structr123m128i.html b/docs/html/structr123m128i.html
new file mode 100644
index 0000000..26e236e
--- /dev/null
+++ b/docs/html/structr123m128i.html
@@ -0,0 +1,183 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: r123m128i Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class List</span></a></li>
+      <li><a href="classes.html"><span>Class Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> |
+<a href="#pub-attribs">Public Attributes</a>  </div>
+  <div class="headertitle">
+<h1>r123m128i Struct Reference</h1>  </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="r123m128i" -->
+<p><code>#include <<a class="el" href="sse_8h_source.html">Random123/features/sse.h</a>></code></p>
+
+<p><a href="structr123m128i-members.html">List of all members.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123m128i.html">r123m128i</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123m128i.html#a9842fbc85102e0019cc58d97c28e2d02">operator=</a> (const __m128i &rhs)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structr123m128i.html">r123m128i</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123m128i.html#a0da7ae920bce1b75efb91017ab6bc37c">operator=</a> (uint64_t n)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123m128i.html#ae5788785c2ce7f7ca6ff8dd4377771f3">operator const void *</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123m128i.html#a80a5c24f76fec61b3ab0ed0e0353cfb7">operator __m128i</a> () const </td></tr>
+<tr><td colspan="2"><h2><a name="pub-attribs"></a>
+Public Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">__m128i </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123m128i.html#a9b9908268281aace8028a3f34980634d">m</a></td></tr>
+</table>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="a80a5c24f76fec61b3ab0ed0e0353cfb7"></a><!-- doxytag: member="r123m128i::operator __m128i" ref="a80a5c24f76fec61b3ab0ed0e0353cfb7" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">r123m128i::operator __m128i </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae5788785c2ce7f7ca6ff8dd4377771f3"></a><!-- doxytag: member="r123m128i::operator const void *" ref="ae5788785c2ce7f7ca6ff8dd4377771f3" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">r123m128i::operator const void * </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a9842fbc85102e0019cc58d97c28e2d02"></a><!-- doxytag: member="r123m128i::operator=" ref="a9842fbc85102e0019cc58d97c28e2d02" args="(const __m128i &rhs)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123m128i.html">r123m128i</a>& r123m128i::operator= </td>
+          <td>(</td>
+          <td class="paramtype">const __m128i & </td>
+          <td class="paramname"> <em>rhs</em></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a0da7ae920bce1b75efb91017ab6bc37c"></a><!-- doxytag: member="r123m128i::operator=" ref="a0da7ae920bce1b75efb91017ab6bc37c" args="(uint64_t n)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structr123m128i.html">r123m128i</a>& r123m128i::operator= </td>
+          <td>(</td>
+          <td class="paramtype">uint64_t </td>
+          <td class="paramname"> <em>n</em></td>
+          <td> ) </td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/><h2>Member Data Documentation</h2>
+<a class="anchor" id="a9b9908268281aace8028a3f34980634d"></a><!-- doxytag: member="r123m128i::m" ref="a9b9908268281aace8028a3f34980634d" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">__m128i <a class="el" href="structr123m128i.html#a9b9908268281aace8028a3f34980634d">r123m128i::m</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li>Random123/features/<a class="el" href="sse_8h_source.html">sse.h</a></li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/tab_a.png b/docs/html/tab_a.png
new file mode 100644
index 0000000..2d99ef2
Binary files /dev/null and b/docs/html/tab_a.png differ
diff --git a/docs/html/tab_b.png b/docs/html/tab_b.png
new file mode 100644
index 0000000..b2c3d2b
Binary files /dev/null and b/docs/html/tab_b.png differ
diff --git a/docs/html/tab_h.png b/docs/html/tab_h.png
new file mode 100644
index 0000000..c11f48f
Binary files /dev/null and b/docs/html/tab_h.png differ
diff --git a/docs/html/tab_s.png b/docs/html/tab_s.png
new file mode 100644
index 0000000..978943a
Binary files /dev/null and b/docs/html/tab_s.png differ
diff --git a/docs/html/tabs.css b/docs/html/tabs.css
new file mode 100644
index 0000000..2192056
--- /dev/null
+++ b/docs/html/tabs.css
@@ -0,0 +1,59 @@
+.tabs, .tabs2, .tabs3 {
+    background-image: url('tab_b.png');
+    width: 100%;
+    z-index: 101;
+    font-size: 13px;
+}
+
+.tabs2 {
+    font-size: 10px;
+}
+.tabs3 {
+    font-size: 9px;
+}
+
+.tablist {
+    margin: 0;
+    padding: 0;
+    display: table;
+}
+
+.tablist li {
+    float: left;
+    display: table-cell;
+    background-image: url('tab_b.png');
+    line-height: 36px;
+    list-style: none;
+}
+
+.tablist a {
+    display: block;
+    padding: 0 20px;
+    font-weight: bold;
+    background-image:url('tab_s.png');
+    background-repeat:no-repeat;
+    background-position:right;
+    color: #283A5D;
+    text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+    text-decoration: none;
+    outline: none;
+}
+
+.tabs3 .tablist a {
+    padding: 0 10px;
+}
+
+.tablist a:hover {
+    background-image: url('tab_h.png');
+    background-repeat:repeat-x;
+    color: #fff;
+    text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
+    text-decoration: none;
+}
+
+.tablist li.current a {
+    background-image: url('tab_a.png');
+    background-repeat:repeat-x;
+    color: #fff;
+    text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
+}
diff --git a/docs/html/threefry_8h.html b/docs/html/threefry_8h.html
new file mode 100644
index 0000000..8e09288
--- /dev/null
+++ b/docs/html/threefry_8h.html
@@ -0,0 +1,728 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Random123/threefry.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Classes</a> |
+<a href="#namespaces">Namespaces</a> |
+<a href="#define-members">Defines</a> |
+<a href="#typedef-members">Typedefs</a> |
+<a href="#enum-members">Enumerations</a> |
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<h1>Random123/threefry.h File Reference</h1>  </div>
+</div>
+<div class="contents">
+<code>#include "<a class="el" href="compilerfeatures_8h_source.html">features/compilerfeatures.h</a>"</code><br/>
+<code>#include "<a class="el" href="array_8h_source.html">array.h</a>"</code><br/>
+
+<p><a href="threefry_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Threefry2x32__R.html">r123::Threefry2x32_R< R ></a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Threefry4x32__R.html">r123::Threefry4x32_R< R ></a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Threefry2x64__R.html">r123::Threefry2x64_R< R ></a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="structr123_1_1Threefry4x64__R.html">r123::Threefry4x64_R< R ></a></td></tr>
+<tr><td colspan="2"><h2><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacer123.html">r123</a></td></tr>
+<tr><td colspan="2"><h2><a name="define-members"></a>
+Defines</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="threefry_8h.html#a52e1635889bbf08009646f22897e07fc">threefry2x32</a>(c, k)   threefry2x32_R(threefry2x32_rounds, c, k)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="threefry_8h.html#aaaecd189b32b0081c6a3c2cb46577e23">threefry4x32</a>(c, k)   threefry4x32_R(threefry4x32_rounds, c, k)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="threefry_8h.html#acda3cc1cd02719e1e3d6cfdf7ce0c4c8">threefry2x64</a>(c, k)   threefry2x64_R(threefry2x64_rounds, c, k)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="threefry_8h.html#a992029974a22f14e0ef29a862ede2b8d">threefry4x64</a>(c, k)   threefry4x64_R(threefry4x64_rounds, c, k)</td></tr>
+<tr><td colspan="2"><h2><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structr123array2x64.html">r123array2x64</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="threefry_8h.html#a13c6df8879e7c13605fc1dc67cb2173b">threefry2x64_ctr_t</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structr123array2x64.html">r123array2x64</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="threefry_8h.html#a31a08f696af23b0e339126bc64a78812">threefry2x64_key_t</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structr123array2x64.html">r123array2x64</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="threefry_8h.html#abb918225d16fcdf0b2659e2096d182b9">threefry2x64_ukey_t</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structr123array2x32.html">r123array2x32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="threefry_8h.html#ac0724455e1e9218f982501247d384833">threefry2x32_ctr_t</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structr123array2x32.html">r123array2x32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="threefry_8h.html#a9ebab1ff37a7c983a4d5af114fb8f1c7">threefry2x32_key_t</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structr123array2x32.html">r123array2x32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="threefry_8h.html#a642ffe8cacdd9e8f6b376bdffff36d24">threefry2x32_ukey_t</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structr123array4x64.html">r123array4x64</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="threefry_8h.html#a3296098832bc3a243f40078c1b93592e">threefry4x64_ctr_t</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structr123array4x64.html">r123array4x64</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="threefry_8h.html#ad51f07c7dc47238532cbc05e89f5cef9">threefry4x64_key_t</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structr123array4x64.html">r123array4x64</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="threefry_8h.html#a6b4db94d5185220d4fcec72f92a391ad">threefry4x64_ukey_t</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structr123array4x32.html">r123array4x32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="threefry_8h.html#aa72e480598b54b5bbc640a101f9cbe6e">threefry4x32_ctr_t</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structr123array4x32.html">r123array4x32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="threefry_8h.html#af332bdaec196cee5378cab4fd049ecde">threefry4x32_key_t</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structr123array4x32.html">r123array4x32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="threefry_8h.html#ad65418f4e2c8d8df38059aabc2cc98b6">threefry4x32_ukey_t</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef Threefry2x32_R<br class="typebreak"/>
+< threefry2x32_rounds > </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ThreefryNxW.html#ga1c32939b65f84966c93677f4382ea36d">r123::Threefry2x32</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef Threefry4x32_R<br class="typebreak"/>
+< threefry4x32_rounds > </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ThreefryNxW.html#gacb09a2dcfb7389769f0c58f45f132aaa">r123::Threefry4x32</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef Threefry2x64_R<br class="typebreak"/>
+< threefry2x64_rounds > </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ThreefryNxW.html#ga2b54dd1b0d20f09239be5f8757f1f3db">r123::Threefry2x64</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef Threefry4x64_R<br class="typebreak"/>
+< threefry4x64_rounds > </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ThreefryNxW.html#gae17c98bddf067365508ed0717f865e8b">r123::Threefry4x64</a></td></tr>
+<tr><td colspan="2"><h2><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ThreefryNxW.html#gae4df1e52db01acafb28d9c6c25a41071">r123_enum_threefry2x64</a> { <a class="el" href="group__ThreefryNxW.html#ggae4df1e52db01acafb28d9c6c25a41071a61579c86759ab497dbfc895f2fe6ec7c">threefry2x64_rounds</a> =  20
+ }</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ThreefryNxW.html#gae1c47baba4367dd47d68025d23ae4775">r123_enum_threefry2x32</a> { <a class="el" href="group__ThreefryNxW.html#ggae1c47baba4367dd47d68025d23ae4775a5c6f9a5f3ae1c3700938a3fca5f5821b">threefry2x32_rounds</a> =  20
+ }</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ThreefryNxW.html#ga6379a4a73e85bc36235907a326945acc">r123_enum_threefry4x64</a> { <a class="el" href="group__ThreefryNxW.html#gga6379a4a73e85bc36235907a326945acca9cdd4629047775ebe339ac9e9dd0ad65">threefry4x64_rounds</a> =  20
+ }</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ThreefryNxW.html#ga027cd15620ecab867c6af8bb065b189b">r123_enum_threefry4x32</a> { <a class="el" href="group__ThreefryNxW.html#gga027cd15620ecab867c6af8bb065b189ba36063dd986ca2ccd28209c7b4bf711d7">threefry4x32_rounds</a> =  20
+ }</td></tr>
+<tr><td colspan="2"><h2><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structr123array2x64.html">threefry2x64_key_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="threefry_8h.html#ac14fcf731b175a1cec85a80606ed5f04">threefry2x64keyinit</a> (<a class="el" href="structr123array2x64.html">threefry2x64_ukey_t</a> uk)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structr123array2x64.html">threefry2x64_ctr_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="threefry_8h.html#abe5e028454aef3f2bc459e5db05e0e04">threefry2x64_R</a> (unsigned int Nrounds, <a class="el" href="structr123array2x64.html">threefry2x64_ctr_t</a> in, <a class="el" href="structr123array2x64.html">threefry2x64_key_t</a> k)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structr123array2x64.html">threefry2x64_ctr_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="threefry_8h.html#aea6a4bd5c80354a4f575c9bec2702172">threefry2x64</a> (<a class="el" href="structr123array2x64.html">threefry2x64_ctr_t</a> in, <a class="el" href="structr123array2x64.html">threefry2x64_key_t</a> k)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structr123array2x32.html">threefry2x32_key_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="threefry_8h.html#a5dbdf6e314925cd676da9f97013aefe4">threefry2x32keyinit</a> (<a class="el" href="structr123array2x32.html">threefry2x32_ukey_t</a> uk)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structr123array2x32.html">threefry2x32_ctr_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="threefry_8h.html#ae8eee0d74a087c6cbc112af11b884501">threefry2x32_R</a> (unsigned int Nrounds, <a class="el" href="structr123array2x32.html">threefry2x32_ctr_t</a> in, <a class="el" href="structr123array2x32.html">threefry2x32_key_t</a> k)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structr123array2x32.html">threefry2x32_ctr_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="threefry_8h.html#af98f648fb8e458ff0c6825cb903734f2">threefry2x32</a> (<a class="el" href="structr123array2x32.html">threefry2x32_ctr_t</a> in, <a class="el" href="structr123array2x32.html">threefry2x32_key_t</a> k)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structr123array4x64.html">threefry4x64_key_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="threefry_8h.html#aeed27be75e75bfffb0bf8c6333f71b10">threefry4x64keyinit</a> (<a class="el" href="structr123array4x64.html">threefry4x64_ukey_t</a> uk)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structr123array4x64.html">threefry4x64_ctr_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="threefry_8h.html#a2e04c3f1ae28c4833444bfafcf22c47f">threefry4x64_R</a> (unsigned int Nrounds, <a class="el" href="structr123array4x64.html">threefry4x64_ctr_t</a> in, <a class="el" href="structr123array4x64.html">threefry4x64_key_t</a> k)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structr123array4x64.html">threefry4x64_ctr_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="threefry_8h.html#a382d18a49002d2a5e2b2f06d58669d70">threefry4x64</a> (<a class="el" href="structr123array4x64.html">threefry4x64_ctr_t</a> in, <a class="el" href="structr123array4x64.html">threefry4x64_key_t</a> k)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structr123array4x32.html">threefry4x32_key_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="threefry_8h.html#a458f442301e620096d73efd479ab8591">threefry4x32keyinit</a> (<a class="el" href="structr123array4x32.html">threefry4x32_ukey_t</a> uk)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structr123array4x32.html">threefry4x32_ctr_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="threefry_8h.html#a79eb6922e7404e224893f7f723fc240c">threefry4x32_R</a> (unsigned int Nrounds, <a class="el" href="structr123array4x32.html">threefry4x32_ctr_t</a> in, <a class="el" href="structr123array4x32.html">threefry4x32_key_t</a> k)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structr123array4x32.html">threefry4x32_ctr_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="threefry_8h.html#a1636cce9de54f919e8952a42b7f397fd">threefry4x32</a> (<a class="el" href="structr123array4x32.html">threefry4x32_ctr_t</a> in, <a class="el" href="structr123array4x32.html">threefry4x32_key_t</a> k)</td></tr>
+</table>
+<hr/><h2>Define Documentation</h2>
+<a class="anchor" id="a52e1635889bbf08009646f22897e07fc"></a><!-- doxytag: member="threefry.h::threefry2x32" ref="a52e1635889bbf08009646f22897e07fc" args="(c, k)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define threefry2x32</td>
+          <td>(</td>
+          <td class="paramtype"> </td>
+          <td class="paramname">c, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"> </td>
+          <td class="paramname">k</td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td>   threefry2x32_R(threefry2x32_rounds, c, k)</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="acda3cc1cd02719e1e3d6cfdf7ce0c4c8"></a><!-- doxytag: member="threefry.h::threefry2x64" ref="acda3cc1cd02719e1e3d6cfdf7ce0c4c8" args="(c, k)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define threefry2x64</td>
+          <td>(</td>
+          <td class="paramtype"> </td>
+          <td class="paramname">c, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"> </td>
+          <td class="paramname">k</td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td>   threefry2x64_R(threefry2x64_rounds, c, k)</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aaaecd189b32b0081c6a3c2cb46577e23"></a><!-- doxytag: member="threefry.h::threefry4x32" ref="aaaecd189b32b0081c6a3c2cb46577e23" args="(c, k)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define threefry4x32</td>
+          <td>(</td>
+          <td class="paramtype"> </td>
+          <td class="paramname">c, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"> </td>
+          <td class="paramname">k</td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td>   threefry4x32_R(threefry4x32_rounds, c, k)</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a992029974a22f14e0ef29a862ede2b8d"></a><!-- doxytag: member="threefry.h::threefry4x64" ref="a992029974a22f14e0ef29a862ede2b8d" args="(c, k)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define threefry4x64</td>
+          <td>(</td>
+          <td class="paramtype"> </td>
+          <td class="paramname">c, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"> </td>
+          <td class="paramname">k</td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td>   threefry4x64_R(threefry4x64_rounds, c, k)</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/><h2>Typedef Documentation</h2>
+<a class="anchor" id="ac0724455e1e9218f982501247d384833"></a><!-- doxytag: member="threefry.h::threefry2x32_ctr_t" ref="ac0724455e1e9218f982501247d384833" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="structr123array2x32.html">r123array2x32</a> <a class="el" href="structr123array2x32.html">threefry2x32_ctr_t</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a9ebab1ff37a7c983a4d5af114fb8f1c7"></a><!-- doxytag: member="threefry.h::threefry2x32_key_t" ref="a9ebab1ff37a7c983a4d5af114fb8f1c7" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="structr123array2x32.html">r123array2x32</a> <a class="el" href="structr123array2x32.html">threefry2x32_key_t</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a642ffe8cacdd9e8f6b376bdffff36d24"></a><!-- doxytag: member="threefry.h::threefry2x32_ukey_t" ref="a642ffe8cacdd9e8f6b376bdffff36d24" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="structr123array2x32.html">r123array2x32</a> <a class="el" href="structr123array2x32.html">threefry2x32_ukey_t</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a13c6df8879e7c13605fc1dc67cb2173b"></a><!-- doxytag: member="threefry.h::threefry2x64_ctr_t" ref="a13c6df8879e7c13605fc1dc67cb2173b" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="structr123array2x64.html">r123array2x64</a> <a class="el" href="structr123array2x64.html">threefry2x64_ctr_t</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a31a08f696af23b0e339126bc64a78812"></a><!-- doxytag: member="threefry.h::threefry2x64_key_t" ref="a31a08f696af23b0e339126bc64a78812" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="structr123array2x64.html">r123array2x64</a> <a class="el" href="structr123array2x64.html">threefry2x64_key_t</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="abb918225d16fcdf0b2659e2096d182b9"></a><!-- doxytag: member="threefry.h::threefry2x64_ukey_t" ref="abb918225d16fcdf0b2659e2096d182b9" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="structr123array2x64.html">r123array2x64</a> <a class="el" href="structr123array2x64.html">threefry2x64_ukey_t</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa72e480598b54b5bbc640a101f9cbe6e"></a><!-- doxytag: member="threefry.h::threefry4x32_ctr_t" ref="aa72e480598b54b5bbc640a101f9cbe6e" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="structr123array4x32.html">r123array4x32</a> <a class="el" href="structr123array4x32.html">threefry4x32_ctr_t</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="af332bdaec196cee5378cab4fd049ecde"></a><!-- doxytag: member="threefry.h::threefry4x32_key_t" ref="af332bdaec196cee5378cab4fd049ecde" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="structr123array4x32.html">r123array4x32</a> <a class="el" href="structr123array4x32.html">threefry4x32_key_t</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ad65418f4e2c8d8df38059aabc2cc98b6"></a><!-- doxytag: member="threefry.h::threefry4x32_ukey_t" ref="ad65418f4e2c8d8df38059aabc2cc98b6" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="structr123array4x32.html">r123array4x32</a> <a class="el" href="structr123array4x32.html">threefry4x32_ukey_t</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a3296098832bc3a243f40078c1b93592e"></a><!-- doxytag: member="threefry.h::threefry4x64_ctr_t" ref="a3296098832bc3a243f40078c1b93592e" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="structr123array4x64.html">r123array4x64</a> <a class="el" href="structr123array4x64.html">threefry4x64_ctr_t</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ad51f07c7dc47238532cbc05e89f5cef9"></a><!-- doxytag: member="threefry.h::threefry4x64_key_t" ref="ad51f07c7dc47238532cbc05e89f5cef9" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="structr123array4x64.html">r123array4x64</a> <a class="el" href="structr123array4x64.html">threefry4x64_key_t</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a6b4db94d5185220d4fcec72f92a391ad"></a><!-- doxytag: member="threefry.h::threefry4x64_ukey_t" ref="a6b4db94d5185220d4fcec72f92a391ad" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="structr123array4x64.html">r123array4x64</a> <a class="el" href="structr123array4x64.html">threefry4x64_ukey_t</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/><h2>Function Documentation</h2>
+<a class="anchor" id="af98f648fb8e458ff0c6825cb903734f2"></a><!-- doxytag: member="threefry.h::threefry2x32" ref="af98f648fb8e458ff0c6825cb903734f2" args="(threefry2x32_ctr_t in, threefry2x32_key_t k)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structr123array2x32.html">threefry2x32_ctr_t</a> threefry2x32 </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array2x32.html">threefry2x32_ctr_t</a> </td>
+          <td class="paramname"> <em>in</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structr123array2x32.html">threefry2x32_key_t</a> </td>
+          <td class="paramname"> <em>k</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [inline, static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae8eee0d74a087c6cbc112af11b884501"></a><!-- doxytag: member="threefry.h::threefry2x32_R" ref="ae8eee0d74a087c6cbc112af11b884501" args="(unsigned int Nrounds, threefry2x32_ctr_t in, threefry2x32_key_t k)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structr123array2x32.html">threefry2x32_ctr_t</a> threefry2x32_R </td>
+          <td>(</td>
+          <td class="paramtype">unsigned int </td>
+          <td class="paramname"> <em>Nrounds</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structr123array2x32.html">threefry2x32_ctr_t</a> </td>
+          <td class="paramname"> <em>in</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structr123array2x32.html">threefry2x32_key_t</a> </td>
+          <td class="paramname"> <em>k</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [inline, static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a5dbdf6e314925cd676da9f97013aefe4"></a><!-- doxytag: member="threefry.h::threefry2x32keyinit" ref="a5dbdf6e314925cd676da9f97013aefe4" args="(threefry2x32_ukey_t uk)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structr123array2x32.html">threefry2x32_key_t</a> threefry2x32keyinit </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array2x32.html">threefry2x32_ukey_t</a> </td>
+          <td class="paramname"> <em>uk</em></td>
+          <td> ) </td>
+          <td><code> [inline, static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aea6a4bd5c80354a4f575c9bec2702172"></a><!-- doxytag: member="threefry.h::threefry2x64" ref="aea6a4bd5c80354a4f575c9bec2702172" args="(threefry2x64_ctr_t in, threefry2x64_key_t k)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structr123array2x64.html">threefry2x64_ctr_t</a> threefry2x64 </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array2x64.html">threefry2x64_ctr_t</a> </td>
+          <td class="paramname"> <em>in</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structr123array2x64.html">threefry2x64_key_t</a> </td>
+          <td class="paramname"> <em>k</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [inline, static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="abe5e028454aef3f2bc459e5db05e0e04"></a><!-- doxytag: member="threefry.h::threefry2x64_R" ref="abe5e028454aef3f2bc459e5db05e0e04" args="(unsigned int Nrounds, threefry2x64_ctr_t in, threefry2x64_key_t k)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structr123array2x64.html">threefry2x64_ctr_t</a> threefry2x64_R </td>
+          <td>(</td>
+          <td class="paramtype">unsigned int </td>
+          <td class="paramname"> <em>Nrounds</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structr123array2x64.html">threefry2x64_ctr_t</a> </td>
+          <td class="paramname"> <em>in</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structr123array2x64.html">threefry2x64_key_t</a> </td>
+          <td class="paramname"> <em>k</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [inline, static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ac14fcf731b175a1cec85a80606ed5f04"></a><!-- doxytag: member="threefry.h::threefry2x64keyinit" ref="ac14fcf731b175a1cec85a80606ed5f04" args="(threefry2x64_ukey_t uk)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structr123array2x64.html">threefry2x64_key_t</a> threefry2x64keyinit </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array2x64.html">threefry2x64_ukey_t</a> </td>
+          <td class="paramname"> <em>uk</em></td>
+          <td> ) </td>
+          <td><code> [inline, static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a1636cce9de54f919e8952a42b7f397fd"></a><!-- doxytag: member="threefry.h::threefry4x32" ref="a1636cce9de54f919e8952a42b7f397fd" args="(threefry4x32_ctr_t in, threefry4x32_key_t k)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structr123array4x32.html">threefry4x32_ctr_t</a> threefry4x32 </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array4x32.html">threefry4x32_ctr_t</a> </td>
+          <td class="paramname"> <em>in</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structr123array4x32.html">threefry4x32_key_t</a> </td>
+          <td class="paramname"> <em>k</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [inline, static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a79eb6922e7404e224893f7f723fc240c"></a><!-- doxytag: member="threefry.h::threefry4x32_R" ref="a79eb6922e7404e224893f7f723fc240c" args="(unsigned int Nrounds, threefry4x32_ctr_t in, threefry4x32_key_t k)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structr123array4x32.html">threefry4x32_ctr_t</a> threefry4x32_R </td>
+          <td>(</td>
+          <td class="paramtype">unsigned int </td>
+          <td class="paramname"> <em>Nrounds</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structr123array4x32.html">threefry4x32_ctr_t</a> </td>
+          <td class="paramname"> <em>in</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structr123array4x32.html">threefry4x32_key_t</a> </td>
+          <td class="paramname"> <em>k</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [inline, static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a458f442301e620096d73efd479ab8591"></a><!-- doxytag: member="threefry.h::threefry4x32keyinit" ref="a458f442301e620096d73efd479ab8591" args="(threefry4x32_ukey_t uk)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structr123array4x32.html">threefry4x32_key_t</a> threefry4x32keyinit </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array4x32.html">threefry4x32_ukey_t</a> </td>
+          <td class="paramname"> <em>uk</em></td>
+          <td> ) </td>
+          <td><code> [inline, static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a382d18a49002d2a5e2b2f06d58669d70"></a><!-- doxytag: member="threefry.h::threefry4x64" ref="a382d18a49002d2a5e2b2f06d58669d70" args="(threefry4x64_ctr_t in, threefry4x64_key_t k)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structr123array4x64.html">threefry4x64_ctr_t</a> threefry4x64 </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array4x64.html">threefry4x64_ctr_t</a> </td>
+          <td class="paramname"> <em>in</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structr123array4x64.html">threefry4x64_key_t</a> </td>
+          <td class="paramname"> <em>k</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [inline, static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a2e04c3f1ae28c4833444bfafcf22c47f"></a><!-- doxytag: member="threefry.h::threefry4x64_R" ref="a2e04c3f1ae28c4833444bfafcf22c47f" args="(unsigned int Nrounds, threefry4x64_ctr_t in, threefry4x64_key_t k)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structr123array4x64.html">threefry4x64_ctr_t</a> threefry4x64_R </td>
+          <td>(</td>
+          <td class="paramtype">unsigned int </td>
+          <td class="paramname"> <em>Nrounds</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structr123array4x64.html">threefry4x64_ctr_t</a> </td>
+          <td class="paramname"> <em>in</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structr123array4x64.html">threefry4x64_key_t</a> </td>
+          <td class="paramname"> <em>k</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [inline, static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aeed27be75e75bfffb0bf8c6333f71b10"></a><!-- doxytag: member="threefry.h::threefry4x64keyinit" ref="aeed27be75e75bfffb0bf8c6333f71b10" args="(threefry4x64_ukey_t uk)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structr123array4x64.html">threefry4x64_key_t</a> threefry4x64keyinit </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structr123array4x64.html">threefry4x64_ukey_t</a> </td>
+          <td class="paramname"> <em>uk</em></td>
+          <td> ) </td>
+          <td><code> [inline, static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/html/threefry_8h_source.html b/docs/html/threefry_8h_source.html
new file mode 100644
index 0000000..8a955bd
--- /dev/null
+++ b/docs/html/threefry_8h_source.html
@@ -0,0 +1,839 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Random123-1.09: Random123/threefry.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div class="tabs"><ul class="tablist"><li style="padding-left: 1.5em; font-weight: bold">Random123-1.09  Documentation</li></ul></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li id="searchli">
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+<div class="header">
+  <div class="headertitle">
+<h1>Random123/threefry.h</h1>  </div>
+</div>
+<div class="contents">
+<a href="threefry_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
+<a name="l00002"></a>00002 <span class="comment">Copyright 2010-2011, D. E. Shaw Research.</span>
+<a name="l00003"></a>00003 <span class="comment">All rights reserved.</span>
+<a name="l00004"></a>00004 <span class="comment"></span>
+<a name="l00005"></a>00005 <span class="comment">Redistribution and use in source and binary forms, with or without</span>
+<a name="l00006"></a>00006 <span class="comment">modification, are permitted provided that the following conditions are</span>
+<a name="l00007"></a>00007 <span class="comment">met:</span>
+<a name="l00008"></a>00008 <span class="comment"></span>
+<a name="l00009"></a>00009 <span class="comment">* Redistributions of source code must retain the above copyright</span>
+<a name="l00010"></a>00010 <span class="comment">  notice, this list of conditions, and the following disclaimer.</span>
+<a name="l00011"></a>00011 <span class="comment"></span>
+<a name="l00012"></a>00012 <span class="comment">* Redistributions in binary form must reproduce the above copyright</span>
+<a name="l00013"></a>00013 <span class="comment">  notice, this list of conditions, and the following disclaimer in the</span>
+<a name="l00014"></a>00014 <span class="comment">  documentation and/or other materials provided with the distribution.</span>
+<a name="l00015"></a>00015 <span class="comment"></span>
+<a name="l00016"></a>00016 <span class="comment">* Neither the name of D. E. Shaw Research nor the names of its</span>
+<a name="l00017"></a>00017 <span class="comment">  contributors may be used to endorse or promote products derived from</span>
+<a name="l00018"></a>00018 <span class="comment">  this software without specific prior written permission.</span>
+<a name="l00019"></a>00019 <span class="comment"></span>
+<a name="l00020"></a>00020 <span class="comment">THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS</span>
+<a name="l00021"></a>00021 <span class="comment">"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT</span>
+<a name="l00022"></a>00022 <span class="comment">LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR</span>
+<a name="l00023"></a>00023 <span class="comment">A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT</span>
+<a name="l00024"></a>00024 <span class="comment">OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,</span>
+<a name="l00025"></a>00025 <span class="comment">SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT</span>
+<a name="l00026"></a>00026 <span class="comment">LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,</span>
+<a name="l00027"></a>00027 <span class="comment">DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY</span>
+<a name="l00028"></a>00028 <span class="comment">THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT</span>
+<a name="l00029"></a>00029 <span class="comment">(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE</span>
+<a name="l00030"></a>00030 <span class="comment">OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span>
+<a name="l00031"></a>00031 <span class="comment">*/</span>
+<a name="l00032"></a>00032 <span class="preprocessor">#ifndef _threefry_dot_h_</span>
+<a name="l00033"></a>00033 <span class="preprocessor"></span><span class="preprocessor">#define _threefry_dot_h_</span>
+<a name="l00034"></a>00034 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="compilerfeatures_8h.html">features/compilerfeatures.h</a>"</span>
+<a name="l00035"></a>00035 <span class="preprocessor">#include "<a class="code" href="array_8h.html">array.h</a>"</span>
+<a name="l00036"></a>00036 
+<a name="l00038"></a>00038 <span class="comment">/* Significant parts of this file were copied from</span>
+<a name="l00039"></a>00039 <span class="comment">   from:</span>
+<a name="l00040"></a>00040 <span class="comment">      Skein_FinalRnd/ReferenceImplementation/skein.h</span>
+<a name="l00041"></a>00041 <span class="comment">      Skein_FinalRnd/ReferenceImplementation/skein_block.c</span>
+<a name="l00042"></a>00042 <span class="comment"></span>
+<a name="l00043"></a>00043 <span class="comment">   in http://csrc.nist.gov/groups/ST/hash/sha-3/Round3/documents/Skein_FinalRnd.zip</span>
+<a name="l00044"></a>00044 <span class="comment"></span>
+<a name="l00045"></a>00045 <span class="comment">   This file has been modified so that it may no longer perform its originally</span>
+<a name="l00046"></a>00046 <span class="comment">   intended function.  If you're looking for a Skein or Threefish source code,</span>
+<a name="l00047"></a>00047 <span class="comment">   please consult the original file.</span>
+<a name="l00048"></a>00048 <span class="comment"></span>
+<a name="l00049"></a>00049 <span class="comment">   The original file had the following header:</span>
+<a name="l00050"></a>00050 <span class="comment">**************************************************************************</span>
+<a name="l00051"></a>00051 <span class="comment">**</span>
+<a name="l00052"></a>00052 <span class="comment">** Interface declarations and internal definitions for Skein hashing.</span>
+<a name="l00053"></a>00053 <span class="comment">**</span>
+<a name="l00054"></a>00054 <span class="comment">** Source code author: Doug Whiting, 2008.</span>
+<a name="l00055"></a>00055 <span class="comment">**</span>
+<a name="l00056"></a>00056 <span class="comment">** This algorithm and source code is released to the public domain.</span>
+<a name="l00057"></a>00057 <span class="comment">**</span>
+<a name="l00058"></a>00058 <span class="comment">***************************************************************************</span>
+<a name="l00059"></a>00059 <span class="comment"></span>
+<a name="l00060"></a>00060 <span class="comment">*/</span>
+<a name="l00061"></a>00061 
+<a name="l00062"></a>00062 <span class="comment">/* See comment at the top of philox.h for the macro pre-process</span>
+<a name="l00063"></a>00063 <span class="comment">   strategy. */</span>
+<a name="l00064"></a>00064 
+<a name="l00065"></a>00065 <span class="comment">/* Rotation constants: */</span>
+<a name="l00066"></a>00066 <span class="keyword">enum</span> r123_enum_threefry64x4 {
+<a name="l00067"></a>00067     <span class="comment">/* These are the R_256 constants from the Threefish reference sources</span>
+<a name="l00068"></a>00068 <span class="comment">       with names changed to R_64x4... */</span>
+<a name="l00069"></a>00069     R_64x4_0_0=14, R_64x4_0_1=16,
+<a name="l00070"></a>00070     R_64x4_1_0=52, R_64x4_1_1=57,
+<a name="l00071"></a>00071     R_64x4_2_0=23, R_64x4_2_1=40,
+<a name="l00072"></a>00072     R_64x4_3_0= 5, R_64x4_3_1=37,
+<a name="l00073"></a>00073     R_64x4_4_0=25, R_64x4_4_1=33,
+<a name="l00074"></a>00074     R_64x4_5_0=46, R_64x4_5_1=12,
+<a name="l00075"></a>00075     R_64x4_6_0=58, R_64x4_6_1=22,
+<a name="l00076"></a>00076     R_64x4_7_0=32, R_64x4_7_1=32
+<a name="l00077"></a>00077 };
+<a name="l00078"></a>00078 
+<a name="l00079"></a>00079 <span class="keyword">enum</span> r123_enum_threefry64x2 {
+<a name="l00080"></a>00080     <span class="comment">/*</span>
+<a name="l00081"></a>00081 <span class="comment">    // Output from skein_rot_search: (srs64_B64-X1000)</span>
+<a name="l00082"></a>00082 <span class="comment">    // Random seed = 1. BlockSize = 128 bits. sampleCnt =  1024. rounds =  8, minHW_or=57</span>
+<a name="l00083"></a>00083 <span class="comment">    // Start: Tue Mar  1 10:07:48 2011</span>
+<a name="l00084"></a>00084 <span class="comment">    // rMin = 0.136. #0325[*15] [CRC=455A682F. hw_OR=64. cnt=16384. blkSize= 128].format   </span>
+<a name="l00085"></a>00085 <span class="comment">    */</span>
+<a name="l00086"></a>00086     R_64x2_0_0=16,
+<a name="l00087"></a>00087     R_64x2_1_0=42,
+<a name="l00088"></a>00088     R_64x2_2_0=12,
+<a name="l00089"></a>00089     R_64x2_3_0=31,
+<a name="l00090"></a>00090     R_64x2_4_0=16,
+<a name="l00091"></a>00091     R_64x2_5_0=32,
+<a name="l00092"></a>00092     R_64x2_6_0=24,
+<a name="l00093"></a>00093     R_64x2_7_0=21
+<a name="l00094"></a>00094     <span class="comment">/* 4 rounds: minHW =  4  [  4  4  4  4 ]</span>
+<a name="l00095"></a>00095 <span class="comment">    // 5 rounds: minHW =  8  [  8  8  8  8 ]</span>
+<a name="l00096"></a>00096 <span class="comment">    // 6 rounds: minHW = 16  [ 16 16 16 16 ]</span>
+<a name="l00097"></a>00097 <span class="comment">    // 7 rounds: minHW = 32  [ 32 32 32 32 ]</span>
+<a name="l00098"></a>00098 <span class="comment">    // 8 rounds: minHW = 64  [ 64 64 64 64 ]</span>
+<a name="l00099"></a>00099 <span class="comment">    // 9 rounds: minHW = 64  [ 64 64 64 64 ]</span>
+<a name="l00100"></a>00100 <span class="comment">    //10 rounds: minHW = 64  [ 64 64 64 64 ]</span>
+<a name="l00101"></a>00101 <span class="comment">    //11 rounds: minHW = 64  [ 64 64 64 64 ] */</span>
+<a name="l00102"></a>00102 };
+<a name="l00103"></a>00103 
+<a name="l00104"></a>00104 <span class="keyword">enum</span> r123_enum_threefry32x4 {
+<a name="l00105"></a>00105     <span class="comment">/* Output from skein_rot_search: (srs-B128-X5000.out)</span>
+<a name="l00106"></a>00106 <span class="comment">    // Random seed = 1. BlockSize = 64 bits. sampleCnt =  1024. rounds =  8, minHW_or=28</span>
+<a name="l00107"></a>00107 <span class="comment">    // Start: Mon Aug 24 22:41:36 2009</span>
+<a name="l00108"></a>00108 <span class="comment">    // ...</span>
+<a name="l00109"></a>00109 <span class="comment">    // rMin = 0.472. #0A4B[*33] [CRC=DD1ECE0F. hw_OR=31. cnt=16384. blkSize= 128].format    */</span>
+<a name="l00110"></a>00110     R_32x4_0_0=10, R_32x4_0_1=26,
+<a name="l00111"></a>00111     R_32x4_1_0=11, R_32x4_1_1=21,
+<a name="l00112"></a>00112     R_32x4_2_0=13, R_32x4_2_1=27,
+<a name="l00113"></a>00113     R_32x4_3_0=23, R_32x4_3_1= 5,
+<a name="l00114"></a>00114     R_32x4_4_0= 6, R_32x4_4_1=20,
+<a name="l00115"></a>00115     R_32x4_5_0=17, R_32x4_5_1=11,
+<a name="l00116"></a>00116     R_32x4_6_0=25, R_32x4_6_1=10,
+<a name="l00117"></a>00117     R_32x4_7_0=18, R_32x4_7_1=20
+<a name="l00118"></a>00118 
+<a name="l00119"></a>00119     <span class="comment">/* 4 rounds: minHW =  3  [  3  3  3  3 ]</span>
+<a name="l00120"></a>00120 <span class="comment">    // 5 rounds: minHW =  7  [  7  7  7  7 ]</span>
+<a name="l00121"></a>00121 <span class="comment">    // 6 rounds: minHW = 12  [ 13 12 13 12 ]</span>
+<a name="l00122"></a>00122 <span class="comment">    // 7 rounds: minHW = 22  [ 22 23 22 23 ]</span>
+<a name="l00123"></a>00123 <span class="comment">    // 8 rounds: minHW = 31  [ 31 31 31 31 ]</span>
+<a name="l00124"></a>00124 <span class="comment">    // 9 rounds: minHW = 32  [ 32 32 32 32 ]</span>
+<a name="l00125"></a>00125 <span class="comment">    //10 rounds: minHW = 32  [ 32 32 32 32 ]</span>
+<a name="l00126"></a>00126 <span class="comment">    //11 rounds: minHW = 32  [ 32 32 32 32 ] */</span>
+<a name="l00127"></a>00127 
+<a name="l00128"></a>00128 };
+<a name="l00129"></a>00129 
+<a name="l00130"></a>00130 <span class="keyword">enum</span> r123_enum_threefry32x2 {
+<a name="l00131"></a>00131     <span class="comment">/* Output from skein_rot_search (srs32x2-X5000.out)</span>
+<a name="l00132"></a>00132 <span class="comment">    // Random seed = 1. BlockSize = 64 bits. sampleCnt =  1024. rounds =  8, minHW_or=28</span>
+<a name="l00133"></a>00133 <span class="comment">    // Start: Tue Jul 12 11:11:33 2011</span>
+<a name="l00134"></a>00134 <span class="comment">    // rMin = 0.334. #0206[*07] [CRC=1D9765C0. hw_OR=32. cnt=16384. blkSize=  64].format   */</span>
+<a name="l00135"></a>00135     R_32x2_0_0=13,
+<a name="l00136"></a>00136     R_32x2_1_0=15,
+<a name="l00137"></a>00137     R_32x2_2_0=26,
+<a name="l00138"></a>00138     R_32x2_3_0= 6,
+<a name="l00139"></a>00139     R_32x2_4_0=17,
+<a name="l00140"></a>00140     R_32x2_5_0=29,
+<a name="l00141"></a>00141     R_32x2_6_0=16,
+<a name="l00142"></a>00142     R_32x2_7_0=24
+<a name="l00143"></a>00143 
+<a name="l00144"></a>00144     <span class="comment">/* 4 rounds: minHW =  4  [  4  4  4  4 ]</span>
+<a name="l00145"></a>00145 <span class="comment">    // 5 rounds: minHW =  6  [  6  8  6  8 ]</span>
+<a name="l00146"></a>00146 <span class="comment">    // 6 rounds: minHW =  9  [  9 12  9 12 ]</span>
+<a name="l00147"></a>00147 <span class="comment">    // 7 rounds: minHW = 16  [ 16 24 16 24 ]</span>
+<a name="l00148"></a>00148 <span class="comment">    // 8 rounds: minHW = 32  [ 32 32 32 32 ]</span>
+<a name="l00149"></a>00149 <span class="comment">    // 9 rounds: minHW = 32  [ 32 32 32 32 ]</span>
+<a name="l00150"></a>00150 <span class="comment">    //10 rounds: minHW = 32  [ 32 32 32 32 ]</span>
+<a name="l00151"></a>00151 <span class="comment">    //11 rounds: minHW = 32  [ 32 32 32 32 ] */</span>
+<a name="l00152"></a>00152     };
+<a name="l00153"></a>00153 
+<a name="l00154"></a>00154 <span class="keyword">enum</span> r123_enum_threefry_wcnt {
+<a name="l00155"></a>00155     WCNT2=2,
+<a name="l00156"></a>00156     WCNT4=4
+<a name="l00157"></a>00157 };
+<a name="l00158"></a>00158 R123_CUDA_DEVICE R123_STATIC_INLINE R123_FORCE_INLINE(uint64_t RotL_64(uint64_t x, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> N));
+<a name="l00159"></a>00159 R123_CUDA_DEVICE R123_STATIC_INLINE uint64_t RotL_64(uint64_t x, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> N)
+<a name="l00160"></a>00160 {
+<a name="l00161"></a>00161     <span class="keywordflow">return</span> (x << (N & 63)) | (x >> ((64-N) & 63));
+<a name="l00162"></a>00162 }
+<a name="l00163"></a>00163     
+<a name="l00164"></a>00164 R123_CUDA_DEVICE R123_STATIC_INLINE R123_FORCE_INLINE(uint32_t RotL_32(uint32_t x, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> N));
+<a name="l00165"></a>00165 R123_CUDA_DEVICE R123_STATIC_INLINE uint32_t RotL_32(uint32_t x, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> N)
+<a name="l00166"></a>00166 {
+<a name="l00167"></a>00167     <span class="keywordflow">return</span> (x << (N & 31)) | (x >> ((32-N) & 31));
+<a name="l00168"></a>00168 }
+<a name="l00169"></a>00169 
+<a name="l00170"></a>00170 <span class="preprocessor">#define SKEIN_MK_64(hi32,lo32)  ((lo32) + (((uint64_t) (hi32)) << 32))</span>
+<a name="l00171"></a>00171 <span class="preprocessor"></span><span class="preprocessor">#define SKEIN_KS_PARITY64         SKEIN_MK_64(0x1BD11BDA,0xA9FC1A22)</span>
+<a name="l00172"></a>00172 <span class="preprocessor"></span><span class="preprocessor">#define SKEIN_KS_PARITY32         0x1BD11BDA</span>
+<a name="l00173"></a>00173 <span class="preprocessor"></span>
+<a name="l00174"></a>00174 <span class="preprocessor">#ifndef THREEFRY2x32_DEFAULT_ROUNDS</span>
+<a name="l00175"></a>00175 <span class="preprocessor"></span><span class="preprocessor">#define THREEFRY2x32_DEFAULT_ROUNDS 20</span>
+<a name="l00176"></a>00176 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00177"></a>00177 <span class="preprocessor"></span>
+<a name="l00178"></a>00178 <span class="preprocessor">#ifndef THREEFRY2x64_DEFAULT_ROUNDS</span>
+<a name="l00179"></a>00179 <span class="preprocessor"></span><span class="preprocessor">#define THREEFRY2x64_DEFAULT_ROUNDS 20</span>
+<a name="l00180"></a>00180 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00181"></a>00181 <span class="preprocessor"></span>
+<a name="l00182"></a>00182 <span class="preprocessor">#ifndef THREEFRY4x32_DEFAULT_ROUNDS</span>
+<a name="l00183"></a>00183 <span class="preprocessor"></span><span class="preprocessor">#define THREEFRY4x32_DEFAULT_ROUNDS 20</span>
+<a name="l00184"></a>00184 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00185"></a>00185 <span class="preprocessor"></span>
+<a name="l00186"></a>00186 <span class="preprocessor">#ifndef THREEFRY4x64_DEFAULT_ROUNDS</span>
+<a name="l00187"></a>00187 <span class="preprocessor"></span><span class="preprocessor">#define THREEFRY4x64_DEFAULT_ROUNDS 20</span>
+<a name="l00188"></a>00188 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00189"></a>00189 <span class="preprocessor"></span>
+<a name="l00190"></a>00190 <span class="preprocessor">#define _threefry2x_tpl(W)                                              \</span>
+<a name="l00191"></a>00191 <span class="preprocessor">typedef struct r123array2x##W threefry2x##W##_ctr_t;                          \</span>
+<a name="l00192"></a>00192 <span class="preprocessor">typedef struct r123array2x##W threefry2x##W##_key_t;                          \</span>
+<a name="l00193"></a>00193 <span class="preprocessor">typedef struct r123array2x##W threefry2x##W##_ukey_t;                          \</span>
+<a name="l00194"></a>00194 <span class="preprocessor">R123_CUDA_DEVICE R123_STATIC_INLINE threefry2x##W##_key_t threefry2x##W##keyinit(threefry2x##W##_ukey_t uk) { return uk; } \</span>
+<a name="l00195"></a>00195 <span class="preprocessor">R123_CUDA_DEVICE R123_STATIC_INLINE R123_FORCE_INLINE(threefry2x##W##_ctr_t threefry2x##W##_R(unsigned int Nrounds, threefry2x##W##_ctr_t in, threefry2x##W##_key_t k)); \</span>
+<a name="l00196"></a>00196 <span class="preprocessor">R123_CUDA_DEVICE R123_STATIC_INLINE                                          \</span>
+<a name="l00197"></a>00197 <span class="preprocessor">threefry2x##W##_ctr_t threefry2x##W##_R(unsigned int Nrounds, threefry2x##W##_ctr_t in, threefry2x##W##_key_t k){ \</span>
+<a name="l00198"></a>00198 <span class="preprocessor">    threefry2x##W##_ctr_t X;                                              \</span>
+<a name="l00199"></a>00199 <span class="preprocessor">    uint##W##_t ks[2+1];                                          \</span>
+<a name="l00200"></a>00200 <span class="preprocessor">    int  i; </span><span class="comment">/* avoid size_t to avoid need for stddef.h */</span>                   \
+<a name="l00201"></a>00201     R123_ASSERT(Nrounds<=32);                                           \
+<a name="l00202"></a>00202     ks[2] =  SKEIN_KS_PARITY##W;                                   \
+<a name="l00203"></a>00203     for (i=0;i < 2; i++)                                        \
+<a name="l00204"></a>00204         {                                                               \
+<a name="l00205"></a>00205             ks[i] = k.v[i];                                             \
+<a name="l00206"></a>00206             X.v[i]  = in.v[i];                                          \
+<a name="l00207"></a>00207             ks[2] ^= k.v[i];                                    \
+<a name="l00208"></a>00208         }                                                               \
+<a name="l00209"></a>00209                                                                         \
+<a name="l00210"></a>00210     <span class="comment">/* Insert initial key before round 0 */</span>                             \
+<a name="l00211"></a>00211     X.v[0] += ks[0]; X.v[1] += ks[1];                                   \
+<a name="l00212"></a>00212                                                                         \
+<a name="l00213"></a>00213     if(Nrounds>0){  X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x2_0_0); X.v[1] ^= X.v[0]; } \
+<a name="l00214"></a>00214     if(Nrounds>1){  X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x2_1_0); X.v[1] ^= X.v[0]; } \
+<a name="l00215"></a>00215     if(Nrounds>2){  X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x2_2_0); X.v[1] ^= X.v[0]; } \
+<a name="l00216"></a>00216     if(Nrounds>3){  X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x2_3_0); X.v[1] ^= X.v[0]; } \
+<a name="l00217"></a>00217     if(Nrounds>3){                                                      \
+<a name="l00218"></a>00218         <span class="comment">/* InjectKey(r=1) */</span>                                            \
+<a name="l00219"></a>00219         X.v[0] += ks[1]; X.v[1] += ks[2];                               \
+<a name="l00220"></a>00220         X.v[1] += 1;     <span class="comment">/* X.v[2-1] += r  */</span>                   \
+<a name="l00221"></a>00221     }                                                                   \
+<a name="l00222"></a>00222     if(Nrounds>4){  X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x2_4_0); X.v[1] ^= X.v[0]; } \
+<a name="l00223"></a>00223     if(Nrounds>5){  X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x2_5_0); X.v[1] ^= X.v[0]; } \
+<a name="l00224"></a>00224     if(Nrounds>6){  X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x2_6_0); X.v[1] ^= X.v[0]; } \
+<a name="l00225"></a>00225     if(Nrounds>7){  X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x2_7_0); X.v[1] ^= X.v[0]; } \
+<a name="l00226"></a>00226     if(Nrounds>7){                                                      \
+<a name="l00227"></a>00227         <span class="comment">/* InjectKey(r=2) */</span>                                            \
+<a name="l00228"></a>00228         X.v[0] += ks[2]; X.v[1] += ks[0];                               \
+<a name="l00229"></a>00229         X.v[1] += 2;                                                    \
+<a name="l00230"></a>00230     }                                                                   \
+<a name="l00231"></a>00231     if(Nrounds>8){  X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x2_0_0); X.v[1] ^= X.v[0]; } \
+<a name="l00232"></a>00232     if(Nrounds>9){  X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x2_1_0); X.v[1] ^= X.v[0]; } \
+<a name="l00233"></a>00233     if(Nrounds>10){  X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x2_2_0); X.v[1] ^= X.v[0]; } \
+<a name="l00234"></a>00234     if(Nrounds>11){  X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x2_3_0); X.v[1] ^= X.v[0]; } \
+<a name="l00235"></a>00235     if(Nrounds>11){                                                     \
+<a name="l00236"></a>00236         <span class="comment">/* InjectKey(r=3) */</span>                                            \
+<a name="l00237"></a>00237         X.v[0] += ks[0]; X.v[1] += ks[1];                               \
+<a name="l00238"></a>00238         X.v[1] += 3;                                                    \
+<a name="l00239"></a>00239     }                                                                   \
+<a name="l00240"></a>00240     if(Nrounds>12){  X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x2_4_0); X.v[1] ^= X.v[0]; } \
+<a name="l00241"></a>00241     if(Nrounds>13){  X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x2_5_0); X.v[1] ^= X.v[0]; } \
+<a name="l00242"></a>00242     if(Nrounds>14){  X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x2_6_0); X.v[1] ^= X.v[0]; } \
+<a name="l00243"></a>00243     if(Nrounds>15){  X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x2_7_0); X.v[1] ^= X.v[0]; } \
+<a name="l00244"></a>00244     if(Nrounds>15){                                                     \
+<a name="l00245"></a>00245         <span class="comment">/* InjectKey(r=4) */</span>                                            \
+<a name="l00246"></a>00246         X.v[0] += ks[1]; X.v[1] += ks[2];                               \
+<a name="l00247"></a>00247         X.v[1] += 4;                                                    \
+<a name="l00248"></a>00248     }                                                                   \
+<a name="l00249"></a>00249     if(Nrounds>16){  X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x2_0_0); X.v[1] ^= X.v[0]; } \
+<a name="l00250"></a>00250     if(Nrounds>17){  X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x2_1_0); X.v[1] ^= X.v[0]; } \
+<a name="l00251"></a>00251     if(Nrounds>18){  X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x2_2_0); X.v[1] ^= X.v[0]; } \
+<a name="l00252"></a>00252     if(Nrounds>19){  X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x2_3_0); X.v[1] ^= X.v[0]; } \
+<a name="l00253"></a>00253     if(Nrounds>19){                                                     \
+<a name="l00254"></a>00254         <span class="comment">/* InjectKey(r=5) */</span>                                            \
+<a name="l00255"></a>00255         X.v[0] += ks[2]; X.v[1] += ks[0];                               \
+<a name="l00256"></a>00256         X.v[1] += 5;                                                    \
+<a name="l00257"></a>00257     }                                                                   \
+<a name="l00258"></a>00258     if(Nrounds>20){  X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x2_4_0); X.v[1] ^= X.v[0]; } \
+<a name="l00259"></a>00259     if(Nrounds>21){  X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x2_5_0); X.v[1] ^= X.v[0]; } \
+<a name="l00260"></a>00260     if(Nrounds>22){  X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x2_6_0); X.v[1] ^= X.v[0]; } \
+<a name="l00261"></a>00261     if(Nrounds>23){  X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x2_7_0); X.v[1] ^= X.v[0]; } \
+<a name="l00262"></a>00262     if(Nrounds>23){                                                     \
+<a name="l00263"></a>00263         <span class="comment">/* InjectKey(r=6) */</span>                                            \
+<a name="l00264"></a>00264         X.v[0] += ks[0]; X.v[1] += ks[1];                               \
+<a name="l00265"></a>00265         X.v[1] += 6;                                                    \
+<a name="l00266"></a>00266     }                                                                   \
+<a name="l00267"></a>00267     if(Nrounds>24){  X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x2_0_0); X.v[1] ^= X.v[0]; } \
+<a name="l00268"></a>00268     if(Nrounds>25){  X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x2_1_0); X.v[1] ^= X.v[0]; } \
+<a name="l00269"></a>00269     if(Nrounds>26){  X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x2_2_0); X.v[1] ^= X.v[0]; } \
+<a name="l00270"></a>00270     if(Nrounds>27){  X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x2_3_0); X.v[1] ^= X.v[0]; } \
+<a name="l00271"></a>00271     if(Nrounds>27){                                                     \
+<a name="l00272"></a>00272         <span class="comment">/* InjectKey(r=7) */</span>                                            \
+<a name="l00273"></a>00273         X.v[0] += ks[1]; X.v[1] += ks[2];                               \
+<a name="l00274"></a>00274         X.v[1] += 7;                                                    \
+<a name="l00275"></a>00275     }                                                                   \
+<a name="l00276"></a>00276     if(Nrounds>28){  X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x2_4_0); X.v[1] ^= X.v[0]; } \
+<a name="l00277"></a>00277     if(Nrounds>29){  X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x2_5_0); X.v[1] ^= X.v[0]; } \
+<a name="l00278"></a>00278     if(Nrounds>30){  X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x2_6_0); X.v[1] ^= X.v[0]; } \
+<a name="l00279"></a>00279     if(Nrounds>31){  X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x2_7_0); X.v[1] ^= X.v[0]; } \
+<a name="l00280"></a>00280     if(Nrounds>31){                                                     \
+<a name="l00281"></a>00281         <span class="comment">/* InjectKey(r=8) */</span>                                            \
+<a name="l00282"></a>00282         X.v[0] += ks[2]; X.v[1] += ks[0];                               \
+<a name="l00283"></a>00283         X.v[1] += 8;                                                    \
+<a name="l00284"></a>00284     }                                                                   \
+<a name="l00285"></a>00285     return X;                                                           \
+<a name="l00286"></a>00286 }                                                                       \
+<a name="l00287"></a>00287                                             \
+<a name="l00288"></a>00288 enum r123_enum_threefry2x##W { threefry2x##W##_rounds = THREEFRY2x##W##_DEFAULT_ROUNDS };       \
+<a name="l00289"></a>00289 R123_CUDA_DEVICE R123_STATIC_INLINE R123_FORCE_INLINE(threefry2x##W##_ctr_t threefry2x##W(threefry2x##W##_ctr_t in, threefry2x##W##_key_t k)); \
+<a name="l00290"></a>00290 R123_CUDA_DEVICE R123_STATIC_INLINE                                     \
+<a name="l00291"></a>00291 threefry2x##W##_ctr_t threefry2x##W(threefry2x##W##_ctr_t in, threefry2x##W##_key_t k){ \
+<a name="l00292"></a>00292     return threefry2x##W##_R(threefry2x##W##_rounds, in, k);            \
+<a name="l00293"></a>00293 }
+<a name="l00294"></a>00294 
+<a name="l00295"></a>00295 
+<a name="l00296"></a>00296 <span class="preprocessor">#define _threefry4x_tpl(W)                                              \</span>
+<a name="l00297"></a>00297 <span class="preprocessor">typedef struct r123array4x##W threefry4x##W##_ctr_t;                        \</span>
+<a name="l00298"></a>00298 <span class="preprocessor">typedef struct r123array4x##W threefry4x##W##_key_t;                        \</span>
+<a name="l00299"></a>00299 <span class="preprocessor">typedef struct r123array4x##W threefry4x##W##_ukey_t;                        \</span>
+<a name="l00300"></a>00300 <span class="preprocessor">R123_CUDA_DEVICE R123_STATIC_INLINE threefry4x##W##_key_t threefry4x##W##keyinit(threefry4x##W##_ukey_t uk) { return uk; } \</span>
+<a name="l00301"></a>00301 <span class="preprocessor">R123_CUDA_DEVICE R123_STATIC_INLINE R123_FORCE_INLINE(threefry4x##W##_ctr_t threefry4x##W##_R(unsigned int Nrounds, threefry4x##W##_ctr_t in, threefry4x##W##_key_t k)); \</span>
+<a name="l00302"></a>00302 <span class="preprocessor">R123_CUDA_DEVICE R123_STATIC_INLINE                                          \</span>
+<a name="l00303"></a>00303 <span class="preprocessor">threefry4x##W##_ctr_t threefry4x##W##_R(unsigned int Nrounds, threefry4x##W##_ctr_t in, threefry4x##W##_key_t k){ \</span>
+<a name="l00304"></a>00304 <span class="preprocessor">    threefry4x##W##_ctr_t X;                                            \</span>
+<a name="l00305"></a>00305 <span class="preprocessor">    uint##W##_t ks[4+1];                                            \</span>
+<a name="l00306"></a>00306 <span class="preprocessor">    int  i; </span><span class="comment">/* avoid size_t to avoid need for stddef.h */</span>                   \
+<a name="l00307"></a>00307     R123_ASSERT(Nrounds<=72);                                           \
+<a name="l00308"></a>00308     ks[4] =  SKEIN_KS_PARITY##W;                                    \
+<a name="l00309"></a>00309     for (i=0;i < 4; i++)                                            \
+<a name="l00310"></a>00310         {                                                               \
+<a name="l00311"></a>00311             ks[i] = k.v[i];                                             \
+<a name="l00312"></a>00312             X.v[i]  = in.v[i];                                          \
+<a name="l00313"></a>00313             ks[4] ^= k.v[i];                                        \
+<a name="l00314"></a>00314         }                                                               \
+<a name="l00315"></a>00315                                                                         \
+<a name="l00316"></a>00316     <span class="comment">/* Insert initial key before round 0 */</span>                             \
+<a name="l00317"></a>00317     X.v[0] += ks[0]; X.v[1] += ks[1]; X.v[2] += ks[2]; X.v[3] += ks[3]; \
+<a name="l00318"></a>00318                                                                         \
+<a name="l00319"></a>00319     if(Nrounds>0){                                                      \
+<a name="l00320"></a>00320         X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_0_0); X.v[1] ^= X.v[0]; \
+<a name="l00321"></a>00321         X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_0_1); X.v[3] ^= X.v[2]; \
+<a name="l00322"></a>00322     }                                                                   \
+<a name="l00323"></a>00323     if(Nrounds>1){                                                      \
+<a name="l00324"></a>00324         X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_1_0); X.v[3] ^= X.v[0]; \
+<a name="l00325"></a>00325         X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_1_1); X.v[1] ^= X.v[2]; \
+<a name="l00326"></a>00326     }                                                                   \
+<a name="l00327"></a>00327     if(Nrounds>2){                                                      \
+<a name="l00328"></a>00328         X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_2_0); X.v[1] ^= X.v[0]; \
+<a name="l00329"></a>00329         X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_2_1); X.v[3] ^= X.v[2]; \
+<a name="l00330"></a>00330     }                                                                   \
+<a name="l00331"></a>00331     if(Nrounds>3){                                                      \
+<a name="l00332"></a>00332         X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_3_0); X.v[3] ^= X.v[0]; \
+<a name="l00333"></a>00333         X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_3_1); X.v[1] ^= X.v[2]; \
+<a name="l00334"></a>00334     }                                                                   \
+<a name="l00335"></a>00335     if(Nrounds>3){                                                      \
+<a name="l00336"></a>00336         <span class="comment">/* InjectKey(r=1) */</span>                                            \
+<a name="l00337"></a>00337         X.v[0] += ks[1]; X.v[1] += ks[2]; X.v[2] += ks[3]; X.v[3] += ks[4]; \
+<a name="l00338"></a>00338         X.v[4-1] += 1;     <span class="comment">/* X.v[WCNT4-1] += r  */</span>                 \
+<a name="l00339"></a>00339     }                                                                   \
+<a name="l00340"></a>00340                                                                         \
+<a name="l00341"></a>00341     if(Nrounds>4){                                                      \
+<a name="l00342"></a>00342         X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_4_0); X.v[1] ^= X.v[0]; \
+<a name="l00343"></a>00343         X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_4_1); X.v[3] ^= X.v[2]; \
+<a name="l00344"></a>00344     }                                                                   \
+<a name="l00345"></a>00345     if(Nrounds>5){                                                      \
+<a name="l00346"></a>00346         X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_5_0); X.v[3] ^= X.v[0]; \
+<a name="l00347"></a>00347         X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_5_1); X.v[1] ^= X.v[2]; \
+<a name="l00348"></a>00348     }                                                                   \
+<a name="l00349"></a>00349     if(Nrounds>6){                                                      \
+<a name="l00350"></a>00350         X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_6_0); X.v[1] ^= X.v[0]; \
+<a name="l00351"></a>00351         X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_6_1); X.v[3] ^= X.v[2]; \
+<a name="l00352"></a>00352     }                                                                   \
+<a name="l00353"></a>00353     if(Nrounds>7){                                                      \
+<a name="l00354"></a>00354         X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_7_0); X.v[3] ^= X.v[0]; \
+<a name="l00355"></a>00355         X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_7_1); X.v[1] ^= X.v[2]; \
+<a name="l00356"></a>00356     }                                                                   \
+<a name="l00357"></a>00357     if(Nrounds>7){                                                      \
+<a name="l00358"></a>00358         <span class="comment">/* InjectKey(r=2) */</span>                                            \
+<a name="l00359"></a>00359         X.v[0] += ks[2]; X.v[1] += ks[3]; X.v[2] += ks[4]; X.v[3] += ks[0]; \
+<a name="l00360"></a>00360         X.v[4-1] += 2;     <span class="comment">/* X.v[WCNT4-1] += r  */</span>                 \
+<a name="l00361"></a>00361     }                                                                   \
+<a name="l00362"></a>00362                                                                         \
+<a name="l00363"></a>00363     if(Nrounds>8){                                                      \
+<a name="l00364"></a>00364         X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_0_0); X.v[1] ^= X.v[0]; \
+<a name="l00365"></a>00365         X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_0_1); X.v[3] ^= X.v[2]; \
+<a name="l00366"></a>00366     }                                                                   \
+<a name="l00367"></a>00367     if(Nrounds>9){                                                      \
+<a name="l00368"></a>00368         X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_1_0); X.v[3] ^= X.v[0]; \
+<a name="l00369"></a>00369         X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_1_1); X.v[1] ^= X.v[2]; \
+<a name="l00370"></a>00370     }                                                                   \
+<a name="l00371"></a>00371     if(Nrounds>10){                                                     \
+<a name="l00372"></a>00372         X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_2_0); X.v[1] ^= X.v[0]; \
+<a name="l00373"></a>00373         X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_2_1); X.v[3] ^= X.v[2]; \
+<a name="l00374"></a>00374     }                                                                   \
+<a name="l00375"></a>00375     if(Nrounds>11){                                                     \
+<a name="l00376"></a>00376         X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_3_0); X.v[3] ^= X.v[0]; \
+<a name="l00377"></a>00377         X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_3_1); X.v[1] ^= X.v[2]; \
+<a name="l00378"></a>00378     }                                                                   \
+<a name="l00379"></a>00379     if(Nrounds>11){                                                     \
+<a name="l00380"></a>00380         <span class="comment">/* InjectKey(r=3) */</span>                                            \
+<a name="l00381"></a>00381         X.v[0] += ks[3]; X.v[1] += ks[4]; X.v[2] += ks[0]; X.v[3] += ks[1]; \
+<a name="l00382"></a>00382         X.v[4-1] += 3;     <span class="comment">/* X.v[WCNT4-1] += r  */</span>                 \
+<a name="l00383"></a>00383     }                                                                   \
+<a name="l00384"></a>00384                                                                         \
+<a name="l00385"></a>00385     if(Nrounds>12){                                                     \
+<a name="l00386"></a>00386         X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_4_0); X.v[1] ^= X.v[0]; \
+<a name="l00387"></a>00387         X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_4_1); X.v[3] ^= X.v[2]; \
+<a name="l00388"></a>00388     }                                                                   \
+<a name="l00389"></a>00389     if(Nrounds>13){                                                     \
+<a name="l00390"></a>00390         X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_5_0); X.v[3] ^= X.v[0]; \
+<a name="l00391"></a>00391         X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_5_1); X.v[1] ^= X.v[2]; \
+<a name="l00392"></a>00392     }                                                                   \
+<a name="l00393"></a>00393     if(Nrounds>14){                                                     \
+<a name="l00394"></a>00394         X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_6_0); X.v[1] ^= X.v[0]; \
+<a name="l00395"></a>00395         X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_6_1); X.v[3] ^= X.v[2]; \
+<a name="l00396"></a>00396     }                                                                   \
+<a name="l00397"></a>00397     if(Nrounds>15){                                                     \
+<a name="l00398"></a>00398         X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_7_0); X.v[3] ^= X.v[0]; \
+<a name="l00399"></a>00399         X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_7_1); X.v[1] ^= X.v[2]; \
+<a name="l00400"></a>00400     }                                                                   \
+<a name="l00401"></a>00401     if(Nrounds>15){                                                     \
+<a name="l00402"></a>00402         <span class="comment">/* InjectKey(r=1) */</span>                                            \
+<a name="l00403"></a>00403         X.v[0] += ks[4]; X.v[1] += ks[0]; X.v[2] += ks[1]; X.v[3] += ks[2]; \
+<a name="l00404"></a>00404         X.v[4-1] += 4;     <span class="comment">/* X.v[WCNT4-1] += r  */</span>                 \
+<a name="l00405"></a>00405     }                                                                   \
+<a name="l00406"></a>00406                                                                         \
+<a name="l00407"></a>00407     if(Nrounds>16){                                                     \
+<a name="l00408"></a>00408         X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_0_0); X.v[1] ^= X.v[0]; \
+<a name="l00409"></a>00409         X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_0_1); X.v[3] ^= X.v[2]; \
+<a name="l00410"></a>00410     }                                                                   \
+<a name="l00411"></a>00411     if(Nrounds>17){                                                     \
+<a name="l00412"></a>00412         X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_1_0); X.v[3] ^= X.v[0]; \
+<a name="l00413"></a>00413         X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_1_1); X.v[1] ^= X.v[2]; \
+<a name="l00414"></a>00414     }                                                                   \
+<a name="l00415"></a>00415     if(Nrounds>18){                                                     \
+<a name="l00416"></a>00416         X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_2_0); X.v[1] ^= X.v[0]; \
+<a name="l00417"></a>00417         X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_2_1); X.v[3] ^= X.v[2]; \
+<a name="l00418"></a>00418     }                                                                   \
+<a name="l00419"></a>00419     if(Nrounds>19){                                                     \
+<a name="l00420"></a>00420         X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_3_0); X.v[3] ^= X.v[0]; \
+<a name="l00421"></a>00421         X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_3_1); X.v[1] ^= X.v[2]; \
+<a name="l00422"></a>00422     }                                                                   \
+<a name="l00423"></a>00423     if(Nrounds>19){                                                     \
+<a name="l00424"></a>00424         <span class="comment">/* InjectKey(r=1) */</span>                                            \
+<a name="l00425"></a>00425         X.v[0] += ks[0]; X.v[1] += ks[1]; X.v[2] += ks[2]; X.v[3] += ks[3]; \
+<a name="l00426"></a>00426         X.v[4-1] += 5;     <span class="comment">/* X.v[WCNT4-1] += r  */</span>                 \
+<a name="l00427"></a>00427     }                                                                   \
+<a name="l00428"></a>00428                                                                         \
+<a name="l00429"></a>00429     if(Nrounds>20){                                                     \
+<a name="l00430"></a>00430         X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_4_0); X.v[1] ^= X.v[0]; \
+<a name="l00431"></a>00431         X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_4_1); X.v[3] ^= X.v[2]; \
+<a name="l00432"></a>00432     }                                                                   \
+<a name="l00433"></a>00433     if(Nrounds>21){                                                     \
+<a name="l00434"></a>00434         X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_5_0); X.v[3] ^= X.v[0]; \
+<a name="l00435"></a>00435         X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_5_1); X.v[1] ^= X.v[2]; \
+<a name="l00436"></a>00436     }                                                                   \
+<a name="l00437"></a>00437     if(Nrounds>22){                                                     \
+<a name="l00438"></a>00438         X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_6_0); X.v[1] ^= X.v[0]; \
+<a name="l00439"></a>00439         X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_6_1); X.v[3] ^= X.v[2]; \
+<a name="l00440"></a>00440     }                                                                   \
+<a name="l00441"></a>00441     if(Nrounds>23){                                                     \
+<a name="l00442"></a>00442         X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_7_0); X.v[3] ^= X.v[0]; \
+<a name="l00443"></a>00443         X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_7_1); X.v[1] ^= X.v[2]; \
+<a name="l00444"></a>00444     }                                                                   \
+<a name="l00445"></a>00445     if(Nrounds>23){                                                     \
+<a name="l00446"></a>00446         <span class="comment">/* InjectKey(r=1) */</span>                                            \
+<a name="l00447"></a>00447         X.v[0] += ks[1]; X.v[1] += ks[2]; X.v[2] += ks[3]; X.v[3] += ks[4]; \
+<a name="l00448"></a>00448         X.v[4-1] += 6;     <span class="comment">/* X.v[WCNT4-1] += r  */</span>                 \
+<a name="l00449"></a>00449     }                                                                   \
+<a name="l00450"></a>00450                                                                         \
+<a name="l00451"></a>00451     if(Nrounds>24){                                                     \
+<a name="l00452"></a>00452         X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_0_0); X.v[1] ^= X.v[0]; \
+<a name="l00453"></a>00453         X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_0_1); X.v[3] ^= X.v[2]; \
+<a name="l00454"></a>00454     }                                                                   \
+<a name="l00455"></a>00455     if(Nrounds>25){                                                     \
+<a name="l00456"></a>00456         X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_1_0); X.v[3] ^= X.v[0]; \
+<a name="l00457"></a>00457         X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_1_1); X.v[1] ^= X.v[2]; \
+<a name="l00458"></a>00458     }                                                                   \
+<a name="l00459"></a>00459     if(Nrounds>26){                                                     \
+<a name="l00460"></a>00460         X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_2_0); X.v[1] ^= X.v[0]; \
+<a name="l00461"></a>00461         X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_2_1); X.v[3] ^= X.v[2]; \
+<a name="l00462"></a>00462     }                                                                   \
+<a name="l00463"></a>00463     if(Nrounds>27){                                                     \
+<a name="l00464"></a>00464         X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_3_0); X.v[3] ^= X.v[0]; \
+<a name="l00465"></a>00465         X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_3_1); X.v[1] ^= X.v[2]; \
+<a name="l00466"></a>00466     }                                                                   \
+<a name="l00467"></a>00467     if(Nrounds>27){                                                     \
+<a name="l00468"></a>00468         <span class="comment">/* InjectKey(r=1) */</span>                                            \
+<a name="l00469"></a>00469         X.v[0] += ks[2]; X.v[1] += ks[3]; X.v[2] += ks[4]; X.v[3] += ks[0]; \
+<a name="l00470"></a>00470         X.v[4-1] += 7;     <span class="comment">/* X.v[WCNT4-1] += r  */</span>                 \
+<a name="l00471"></a>00471     }                                                                   \
+<a name="l00472"></a>00472                                                                         \
+<a name="l00473"></a>00473     if(Nrounds>28){                                                     \
+<a name="l00474"></a>00474         X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_4_0); X.v[1] ^= X.v[0]; \
+<a name="l00475"></a>00475         X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_4_1); X.v[3] ^= X.v[2]; \
+<a name="l00476"></a>00476     }                                                                   \
+<a name="l00477"></a>00477     if(Nrounds>29){                                                     \
+<a name="l00478"></a>00478         X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_5_0); X.v[3] ^= X.v[0]; \
+<a name="l00479"></a>00479         X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_5_1); X.v[1] ^= X.v[2]; \
+<a name="l00480"></a>00480     }                                                                   \
+<a name="l00481"></a>00481     if(Nrounds>30){                                                     \
+<a name="l00482"></a>00482         X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_6_0); X.v[1] ^= X.v[0]; \
+<a name="l00483"></a>00483         X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_6_1); X.v[3] ^= X.v[2]; \
+<a name="l00484"></a>00484     }                                                                   \
+<a name="l00485"></a>00485     if(Nrounds>31){                                                     \
+<a name="l00486"></a>00486         X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_7_0); X.v[3] ^= X.v[0]; \
+<a name="l00487"></a>00487         X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_7_1); X.v[1] ^= X.v[2]; \
+<a name="l00488"></a>00488     }                                                                   \
+<a name="l00489"></a>00489     if(Nrounds>31){                                                     \
+<a name="l00490"></a>00490         <span class="comment">/* InjectKey(r=1) */</span>                                            \
+<a name="l00491"></a>00491         X.v[0] += ks[3]; X.v[1] += ks[4]; X.v[2] += ks[0]; X.v[3] += ks[1]; \
+<a name="l00492"></a>00492         X.v[4-1] += 8;     <span class="comment">/* X.v[WCNT4-1] += r  */</span>                 \
+<a name="l00493"></a>00493     }                                                                   \
+<a name="l00494"></a>00494                                                                         \
+<a name="l00495"></a>00495     if(Nrounds>32){                                                     \
+<a name="l00496"></a>00496         X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_0_0); X.v[1] ^= X.v[0]; \
+<a name="l00497"></a>00497         X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_0_1); X.v[3] ^= X.v[2]; \
+<a name="l00498"></a>00498     }                                                                   \
+<a name="l00499"></a>00499     if(Nrounds>33){                                                     \
+<a name="l00500"></a>00500         X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_1_0); X.v[3] ^= X.v[0]; \
+<a name="l00501"></a>00501         X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_1_1); X.v[1] ^= X.v[2]; \
+<a name="l00502"></a>00502     }                                                                   \
+<a name="l00503"></a>00503     if(Nrounds>34){                                                     \
+<a name="l00504"></a>00504         X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_2_0); X.v[1] ^= X.v[0]; \
+<a name="l00505"></a>00505         X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_2_1); X.v[3] ^= X.v[2]; \
+<a name="l00506"></a>00506     }                                                                   \
+<a name="l00507"></a>00507     if(Nrounds>35){                                                     \
+<a name="l00508"></a>00508         X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_3_0); X.v[3] ^= X.v[0]; \
+<a name="l00509"></a>00509         X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_3_1); X.v[1] ^= X.v[2]; \
+<a name="l00510"></a>00510     }                                                                   \
+<a name="l00511"></a>00511     if(Nrounds>35){                                                     \
+<a name="l00512"></a>00512         <span class="comment">/* InjectKey(r=1) */</span>                                            \
+<a name="l00513"></a>00513         X.v[0] += ks[4]; X.v[1] += ks[0]; X.v[2] += ks[1]; X.v[3] += ks[2]; \
+<a name="l00514"></a>00514         X.v[4-1] += 9;     <span class="comment">/* X.v[WCNT4-1] += r  */</span>                 \
+<a name="l00515"></a>00515     }                                                                   \
+<a name="l00516"></a>00516                                                                         \
+<a name="l00517"></a>00517     if(Nrounds>36){                                                     \
+<a name="l00518"></a>00518         X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_4_0); X.v[1] ^= X.v[0]; \
+<a name="l00519"></a>00519         X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_4_1); X.v[3] ^= X.v[2]; \
+<a name="l00520"></a>00520     }                                                                   \
+<a name="l00521"></a>00521     if(Nrounds>37){                                                     \
+<a name="l00522"></a>00522         X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_5_0); X.v[3] ^= X.v[0]; \
+<a name="l00523"></a>00523         X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_5_1); X.v[1] ^= X.v[2]; \
+<a name="l00524"></a>00524     }                                                                   \
+<a name="l00525"></a>00525     if(Nrounds>38){                                                     \
+<a name="l00526"></a>00526         X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_6_0); X.v[1] ^= X.v[0]; \
+<a name="l00527"></a>00527         X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_6_1); X.v[3] ^= X.v[2]; \
+<a name="l00528"></a>00528     }                                                                   \
+<a name="l00529"></a>00529     if(Nrounds>39){                                                     \
+<a name="l00530"></a>00530         X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_7_0); X.v[3] ^= X.v[0]; \
+<a name="l00531"></a>00531         X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_7_1); X.v[1] ^= X.v[2]; \
+<a name="l00532"></a>00532     }                                                                   \
+<a name="l00533"></a>00533     if(Nrounds>39){                                                     \
+<a name="l00534"></a>00534         <span class="comment">/* InjectKey(r=1) */</span>                                            \
+<a name="l00535"></a>00535         X.v[0] += ks[0]; X.v[1] += ks[1]; X.v[2] += ks[2]; X.v[3] += ks[3]; \
+<a name="l00536"></a>00536         X.v[4-1] += 10;     <span class="comment">/* X.v[WCNT4-1] += r  */</span>                 \
+<a name="l00537"></a>00537     }                                                                   \
+<a name="l00538"></a>00538                                                                         \
+<a name="l00539"></a>00539     if(Nrounds>40){                                                     \
+<a name="l00540"></a>00540         X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_0_0); X.v[1] ^= X.v[0]; \
+<a name="l00541"></a>00541         X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_0_1); X.v[3] ^= X.v[2]; \
+<a name="l00542"></a>00542     }                                                                   \
+<a name="l00543"></a>00543     if(Nrounds>41){                                                     \
+<a name="l00544"></a>00544         X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_1_0); X.v[3] ^= X.v[0]; \
+<a name="l00545"></a>00545         X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_1_1); X.v[1] ^= X.v[2]; \
+<a name="l00546"></a>00546     }                                                                   \
+<a name="l00547"></a>00547     if(Nrounds>42){                                                     \
+<a name="l00548"></a>00548         X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_2_0); X.v[1] ^= X.v[0]; \
+<a name="l00549"></a>00549         X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_2_1); X.v[3] ^= X.v[2]; \
+<a name="l00550"></a>00550     }                                                                   \
+<a name="l00551"></a>00551     if(Nrounds>43){                                                     \
+<a name="l00552"></a>00552         X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_3_0); X.v[3] ^= X.v[0]; \
+<a name="l00553"></a>00553         X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_3_1); X.v[1] ^= X.v[2]; \
+<a name="l00554"></a>00554     }                                                                   \
+<a name="l00555"></a>00555     if(Nrounds>43){                                                     \
+<a name="l00556"></a>00556         <span class="comment">/* InjectKey(r=1) */</span>                                            \
+<a name="l00557"></a>00557         X.v[0] += ks[1]; X.v[1] += ks[2]; X.v[2] += ks[3]; X.v[3] += ks[4]; \
+<a name="l00558"></a>00558         X.v[4-1] += 11;     <span class="comment">/* X.v[WCNT4-1] += r  */</span>                \
+<a name="l00559"></a>00559     }                                                                   \
+<a name="l00560"></a>00560                                                                         \
+<a name="l00561"></a>00561     if(Nrounds>44){                                                     \
+<a name="l00562"></a>00562         X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_4_0); X.v[1] ^= X.v[0]; \
+<a name="l00563"></a>00563         X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_4_1); X.v[3] ^= X.v[2]; \
+<a name="l00564"></a>00564     }                                                                   \
+<a name="l00565"></a>00565     if(Nrounds>45){                                                     \
+<a name="l00566"></a>00566         X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_5_0); X.v[3] ^= X.v[0]; \
+<a name="l00567"></a>00567         X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_5_1); X.v[1] ^= X.v[2]; \
+<a name="l00568"></a>00568     }                                                                   \
+<a name="l00569"></a>00569     if(Nrounds>46){                                                     \
+<a name="l00570"></a>00570         X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_6_0); X.v[1] ^= X.v[0]; \
+<a name="l00571"></a>00571         X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_6_1); X.v[3] ^= X.v[2]; \
+<a name="l00572"></a>00572     }                                                                   \
+<a name="l00573"></a>00573     if(Nrounds>47){                                                     \
+<a name="l00574"></a>00574         X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_7_0); X.v[3] ^= X.v[0]; \
+<a name="l00575"></a>00575         X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_7_1); X.v[1] ^= X.v[2]; \
+<a name="l00576"></a>00576     }                                                                   \
+<a name="l00577"></a>00577     if(Nrounds>47){                                                     \
+<a name="l00578"></a>00578         <span class="comment">/* InjectKey(r=1) */</span>                                            \
+<a name="l00579"></a>00579         X.v[0] += ks[2]; X.v[1] += ks[3]; X.v[2] += ks[4]; X.v[3] += ks[0]; \
+<a name="l00580"></a>00580         X.v[4-1] += 12;     <span class="comment">/* X.v[WCNT4-1] += r  */</span>                 \
+<a name="l00581"></a>00581     }                                                                   \
+<a name="l00582"></a>00582                                                                         \
+<a name="l00583"></a>00583     if(Nrounds>48){                                                     \
+<a name="l00584"></a>00584         X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_0_0); X.v[1] ^= X.v[0]; \
+<a name="l00585"></a>00585         X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_0_1); X.v[3] ^= X.v[2]; \
+<a name="l00586"></a>00586     }                                                                   \
+<a name="l00587"></a>00587     if(Nrounds>49){                                                     \
+<a name="l00588"></a>00588         X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_1_0); X.v[3] ^= X.v[0]; \
+<a name="l00589"></a>00589         X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_1_1); X.v[1] ^= X.v[2]; \
+<a name="l00590"></a>00590     }                                                                   \
+<a name="l00591"></a>00591     if(Nrounds>50){                                                     \
+<a name="l00592"></a>00592         X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_2_0); X.v[1] ^= X.v[0]; \
+<a name="l00593"></a>00593         X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_2_1); X.v[3] ^= X.v[2]; \
+<a name="l00594"></a>00594     }                                                                   \
+<a name="l00595"></a>00595     if(Nrounds>51){                                                     \
+<a name="l00596"></a>00596         X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_3_0); X.v[3] ^= X.v[0]; \
+<a name="l00597"></a>00597         X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_3_1); X.v[1] ^= X.v[2]; \
+<a name="l00598"></a>00598     }                                                                   \
+<a name="l00599"></a>00599     if(Nrounds>51){                                                     \
+<a name="l00600"></a>00600         <span class="comment">/* InjectKey(r=1) */</span>                                            \
+<a name="l00601"></a>00601         X.v[0] += ks[3]; X.v[1] += ks[4]; X.v[2] += ks[0]; X.v[3] += ks[1]; \
+<a name="l00602"></a>00602         X.v[4-1] += 13;     <span class="comment">/* X.v[WCNT4-1] += r  */</span>                 \
+<a name="l00603"></a>00603     }                                                                   \
+<a name="l00604"></a>00604                                                                         \
+<a name="l00605"></a>00605     if(Nrounds>52){                                                     \
+<a name="l00606"></a>00606         X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_4_0); X.v[1] ^= X.v[0]; \
+<a name="l00607"></a>00607         X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_4_1); X.v[3] ^= X.v[2]; \
+<a name="l00608"></a>00608     }                                                                   \
+<a name="l00609"></a>00609     if(Nrounds>53){                                                     \
+<a name="l00610"></a>00610         X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_5_0); X.v[3] ^= X.v[0]; \
+<a name="l00611"></a>00611         X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_5_1); X.v[1] ^= X.v[2]; \
+<a name="l00612"></a>00612     }                                                                   \
+<a name="l00613"></a>00613     if(Nrounds>54){                                                     \
+<a name="l00614"></a>00614         X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_6_0); X.v[1] ^= X.v[0]; \
+<a name="l00615"></a>00615         X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_6_1); X.v[3] ^= X.v[2]; \
+<a name="l00616"></a>00616     }                                                                   \
+<a name="l00617"></a>00617     if(Nrounds>55){                                                     \
+<a name="l00618"></a>00618         X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_7_0); X.v[3] ^= X.v[0]; \
+<a name="l00619"></a>00619         X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_7_1); X.v[1] ^= X.v[2]; \
+<a name="l00620"></a>00620     }                                                                   \
+<a name="l00621"></a>00621     if(Nrounds>55){                                                     \
+<a name="l00622"></a>00622         <span class="comment">/* InjectKey(r=1) */</span>                                            \
+<a name="l00623"></a>00623         X.v[0] += ks[4]; X.v[1] += ks[0]; X.v[2] += ks[1]; X.v[3] += ks[2]; \
+<a name="l00624"></a>00624         X.v[4-1] += 14;     <span class="comment">/* X.v[WCNT4-1] += r  */</span>                 \
+<a name="l00625"></a>00625     }                                                                   \
+<a name="l00626"></a>00626                                                                         \
+<a name="l00627"></a>00627     if(Nrounds>56){                                                     \
+<a name="l00628"></a>00628         X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_0_0); X.v[1] ^= X.v[0]; \
+<a name="l00629"></a>00629         X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_0_1); X.v[3] ^= X.v[2]; \
+<a name="l00630"></a>00630     }                                                                   \
+<a name="l00631"></a>00631     if(Nrounds>57){                                                     \
+<a name="l00632"></a>00632         X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_1_0); X.v[3] ^= X.v[0]; \
+<a name="l00633"></a>00633         X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_1_1); X.v[1] ^= X.v[2]; \
+<a name="l00634"></a>00634     }                                                                   \
+<a name="l00635"></a>00635     if(Nrounds>58){                                                     \
+<a name="l00636"></a>00636         X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_2_0); X.v[1] ^= X.v[0]; \
+<a name="l00637"></a>00637         X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_2_1); X.v[3] ^= X.v[2]; \
+<a name="l00638"></a>00638     }                                                                   \
+<a name="l00639"></a>00639     if(Nrounds>59){                                                     \
+<a name="l00640"></a>00640         X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_3_0); X.v[3] ^= X.v[0]; \
+<a name="l00641"></a>00641         X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_3_1); X.v[1] ^= X.v[2]; \
+<a name="l00642"></a>00642     }                                                                   \
+<a name="l00643"></a>00643     if(Nrounds>59){                                                     \
+<a name="l00644"></a>00644         <span class="comment">/* InjectKey(r=1) */</span>                                            \
+<a name="l00645"></a>00645         X.v[0] += ks[0]; X.v[1] += ks[1]; X.v[2] += ks[2]; X.v[3] += ks[3]; \
+<a name="l00646"></a>00646         X.v[4-1] += 15;     <span class="comment">/* X.v[WCNT4-1] += r  */</span>                 \
+<a name="l00647"></a>00647     }                                                                   \
+<a name="l00648"></a>00648                                                                         \
+<a name="l00649"></a>00649     if(Nrounds>60){                                                     \
+<a name="l00650"></a>00650         X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_4_0); X.v[1] ^= X.v[0]; \
+<a name="l00651"></a>00651         X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_4_1); X.v[3] ^= X.v[2]; \
+<a name="l00652"></a>00652     }                                                                   \
+<a name="l00653"></a>00653     if(Nrounds>61){                                                     \
+<a name="l00654"></a>00654         X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_5_0); X.v[3] ^= X.v[0]; \
+<a name="l00655"></a>00655         X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_5_1); X.v[1] ^= X.v[2]; \
+<a name="l00656"></a>00656     }                                                                   \
+<a name="l00657"></a>00657     if(Nrounds>62){                                                     \
+<a name="l00658"></a>00658         X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_6_0); X.v[1] ^= X.v[0]; \
+<a name="l00659"></a>00659         X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_6_1); X.v[3] ^= X.v[2]; \
+<a name="l00660"></a>00660     }                                                                   \
+<a name="l00661"></a>00661     if(Nrounds>63){                                                     \
+<a name="l00662"></a>00662         X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_7_0); X.v[3] ^= X.v[0]; \
+<a name="l00663"></a>00663         X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_7_1); X.v[1] ^= X.v[2]; \
+<a name="l00664"></a>00664     }                                                                   \
+<a name="l00665"></a>00665     if(Nrounds>63){                                                     \
+<a name="l00666"></a>00666         <span class="comment">/* InjectKey(r=1) */</span>                                            \
+<a name="l00667"></a>00667         X.v[0] += ks[1]; X.v[1] += ks[2]; X.v[2] += ks[3]; X.v[3] += ks[4]; \
+<a name="l00668"></a>00668         X.v[4-1] += 16;     <span class="comment">/* X.v[WCNT4-1] += r  */</span>                 \
+<a name="l00669"></a>00669     }                                                                   \
+<a name="l00670"></a>00670                                                                         \
+<a name="l00671"></a>00671     if(Nrounds>64){                                                     \
+<a name="l00672"></a>00672         X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_0_0); X.v[1] ^= X.v[0]; \
+<a name="l00673"></a>00673         X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_0_1); X.v[3] ^= X.v[2]; \
+<a name="l00674"></a>00674     }                                                                   \
+<a name="l00675"></a>00675     if(Nrounds>65){                                                     \
+<a name="l00676"></a>00676         X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_1_0); X.v[3] ^= X.v[0]; \
+<a name="l00677"></a>00677         X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_1_1); X.v[1] ^= X.v[2]; \
+<a name="l00678"></a>00678     }                                                                   \
+<a name="l00679"></a>00679     if(Nrounds>66){                                                     \
+<a name="l00680"></a>00680         X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_2_0); X.v[1] ^= X.v[0]; \
+<a name="l00681"></a>00681         X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_2_1); X.v[3] ^= X.v[2]; \
+<a name="l00682"></a>00682     }                                                                   \
+<a name="l00683"></a>00683     if(Nrounds>67){                                                     \
+<a name="l00684"></a>00684         X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_3_0); X.v[3] ^= X.v[0]; \
+<a name="l00685"></a>00685         X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_3_1); X.v[1] ^= X.v[2]; \
+<a name="l00686"></a>00686     }                                                                   \
+<a name="l00687"></a>00687     if(Nrounds>67){                                                     \
+<a name="l00688"></a>00688         <span class="comment">/* InjectKey(r=1) */</span>                                            \
+<a name="l00689"></a>00689         X.v[0] += ks[2]; X.v[1] += ks[3]; X.v[2] += ks[4]; X.v[3] += ks[0]; \
+<a name="l00690"></a>00690         X.v[4-1] += 17;     <span class="comment">/* X.v[WCNT4-1] += r  */</span>                 \
+<a name="l00691"></a>00691     }                                                                   \
+<a name="l00692"></a>00692                                                                         \
+<a name="l00693"></a>00693     if(Nrounds>68){                                                     \
+<a name="l00694"></a>00694         X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_4_0); X.v[1] ^= X.v[0]; \
+<a name="l00695"></a>00695         X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_4_1); X.v[3] ^= X.v[2]; \
+<a name="l00696"></a>00696     }                                                                   \
+<a name="l00697"></a>00697     if(Nrounds>69){                                                     \
+<a name="l00698"></a>00698         X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_5_0); X.v[3] ^= X.v[0]; \
+<a name="l00699"></a>00699         X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_5_1); X.v[1] ^= X.v[2]; \
+<a name="l00700"></a>00700     }                                                                   \
+<a name="l00701"></a>00701     if(Nrounds>70){                                                     \
+<a name="l00702"></a>00702         X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_6_0); X.v[1] ^= X.v[0]; \
+<a name="l00703"></a>00703         X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_6_1); X.v[3] ^= X.v[2]; \
+<a name="l00704"></a>00704     }                                                                   \
+<a name="l00705"></a>00705     if(Nrounds>71){                                                     \
+<a name="l00706"></a>00706         X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_7_0); X.v[3] ^= X.v[0]; \
+<a name="l00707"></a>00707         X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_7_1); X.v[1] ^= X.v[2]; \
+<a name="l00708"></a>00708     }                                                                   \
+<a name="l00709"></a>00709     if(Nrounds>71){                                                     \
+<a name="l00710"></a>00710         <span class="comment">/* InjectKey(r=1) */</span>                                            \
+<a name="l00711"></a>00711         X.v[0] += ks[3]; X.v[1] += ks[4]; X.v[2] += ks[0]; X.v[3] += ks[1]; \
+<a name="l00712"></a>00712         X.v[4-1] += 18;     <span class="comment">/* X.v[WCNT4-1] += r  */</span>                 \
+<a name="l00713"></a>00713     }                                                                   \
+<a name="l00714"></a>00714                                                                         \
+<a name="l00715"></a>00715     return X;                                                           \
+<a name="l00716"></a>00716 }                                                                       \
+<a name="l00717"></a>00717                                             \
+<a name="l00718"></a>00718 enum r123_enum_threefry4x##W { threefry4x##W##_rounds = THREEFRY4x##W##_DEFAULT_ROUNDS };       \
+<a name="l00719"></a>00719 R123_CUDA_DEVICE R123_STATIC_INLINE R123_FORCE_INLINE(threefry4x##W##_ctr_t threefry4x##W(threefry4x##W##_ctr_t in, threefry4x##W##_key_t k)); \
+<a name="l00720"></a>00720 R123_CUDA_DEVICE R123_STATIC_INLINE                                     \
+<a name="l00721"></a>00721 threefry4x##W##_ctr_t threefry4x##W(threefry4x##W##_ctr_t in, threefry4x##W##_key_t k){ \
+<a name="l00722"></a>00722     return threefry4x##W##_R(threefry4x##W##_rounds, in, k);            \
+<a name="l00723"></a>00723 }
+<a name="l00724"></a>00724 
+<a name="l00726"></a><a class="code" href="threefry_8h.html#ac14fcf731b175a1cec85a80606ed5f04">00726</a> _threefry2x_tpl(64)
+<a name="l00727"></a><a class="code" href="threefry_8h.html#a5dbdf6e314925cd676da9f97013aefe4">00727</a> _threefry2x_tpl(32)
+<a name="l00728"></a><a class="code" href="threefry_8h.html#aeed27be75e75bfffb0bf8c6333f71b10">00728</a> _threefry4x_tpl(64)
+<a name="l00729"></a><a class="code" href="threefry_8h.html#a458f442301e620096d73efd479ab8591">00729</a> _threefry4x_tpl(32)
+<a name="l00730"></a>00730 
+<a name="l00731"></a>00731 <span class="comment">/* gcc4.5 and 4.6 seem to optimize a macro-ized threefryNxW better</span>
+<a name="l00732"></a>00732 <span class="comment">   than a static inline function.  Why?  */</span>
+<a name="l00733"></a><a class="code" href="threefry_8h.html#a52e1635889bbf08009646f22897e07fc">00733</a> <span class="preprocessor">#define threefry2x32(c,k) threefry2x32_R(threefry2x32_rounds, c, k)</span>
+<a name="l00734"></a><a class="code" href="threefry_8h.html#aaaecd189b32b0081c6a3c2cb46577e23">00734</a> <span class="preprocessor"></span><span class="preprocessor">#define threefry4x32(c,k) threefry4x32_R(threefry4x32_rounds, c, k)</span>
+<a name="l00735"></a><a class="code" href="threefry_8h.html#acda3cc1cd02719e1e3d6cfdf7ce0c4c8">00735</a> <span class="preprocessor"></span><span class="preprocessor">#define threefry2x64(c,k) threefry2x64_R(threefry2x64_rounds, c, k)</span>
+<a name="l00736"></a><a class="code" href="threefry_8h.html#a992029974a22f14e0ef29a862ede2b8d">00736</a> <span class="preprocessor"></span><span class="preprocessor">#define threefry4x64(c,k) threefry4x64_R(threefry4x64_rounds, c, k)</span>
+<a name="l00737"></a>00737 <span class="preprocessor"></span>
+<a name="l00738"></a>00738 <span class="preprocessor">#ifdef __cplusplus</span>
+<a name="l00739"></a>00739 <span class="preprocessor"></span>
+<a name="l00740"></a>00740 <span class="preprocessor">#define _threefryNxWclass_tpl(NxW)                                      \</span>
+<a name="l00741"></a>00741 <span class="preprocessor">namespace r123{                                                     \</span>
+<a name="l00742"></a>00742 <span class="preprocessor">template<unsigned int R>                                                  \</span>
+<a name="l00743"></a>00743 <span class="preprocessor"> struct Threefry##NxW##_R{                                              \</span>
+<a name="l00744"></a>00744 <span class="preprocessor">    typedef threefry##NxW##_ctr_t ctr_type;                             \</span>
+<a name="l00745"></a>00745 <span class="preprocessor">    typedef threefry##NxW##_key_t key_type;                             \</span>
+<a name="l00746"></a>00746 <span class="preprocessor">    typedef threefry##NxW##_key_t ukey_type;                            \</span>
+<a name="l00747"></a>00747 <span class="preprocessor">    static const unsigned int rounds=R;                                 \</span>
+<a name="l00748"></a>00748 <span class="preprocessor">   inline R123_CUDA_DEVICE R123_FORCE_INLINE(ctr_type operator()(ctr_type ctr, key_type key)){ \</span>
+<a name="l00749"></a>00749 <span class="preprocessor">        R123_STATIC_ASSERT(R<=72, "threefry is only unrolled up to 72 rounds\n"); \</span>
+<a name="l00750"></a>00750 <span class="preprocessor">        return threefry##NxW##_R(R, ctr, key);                              \</span>
+<a name="l00751"></a>00751 <span class="preprocessor">    }                                                                   \</span>
+<a name="l00752"></a>00752 <span class="preprocessor">};                                                                      \</span>
+<a name="l00753"></a>00753 <span class="preprocessor"> typedef Threefry##NxW##_R<threefry##NxW##_rounds> Threefry##NxW;       \</span>
+<a name="l00754"></a>00754 <span class="preprocessor">} // namespace r123</span>
+<a name="l00755"></a>00755 <span class="preprocessor"></span>
+<a name="l00758"></a><a class="code" href="group__ThreefryNxW.html#ga1c32939b65f84966c93677f4382ea36d">00758</a> _threefryNxWclass_tpl(2x32)
+<a name="l00759"></a><a class="code" href="group__ThreefryNxW.html#gacb09a2dcfb7389769f0c58f45f132aaa">00759</a> _threefryNxWclass_tpl(4x32)
+<a name="l00760"></a><a class="code" href="group__ThreefryNxW.html#ga2b54dd1b0d20f09239be5f8757f1f3db">00760</a> _threefryNxWclass_tpl(2x64)
+<a name="l00761"></a><a class="code" href="group__ThreefryNxW.html#gae17c98bddf067365508ed0717f865e8b">00761</a> _threefryNxWclass_tpl(4x64)
+<a name="l00762"></a>00762 
+<a name="l00763"></a>00763 <span class="comment">/* The _tpl macros don't quite work to do string-pasting inside comments.</span>
+<a name="l00764"></a>00764 <span class="comment">   so we just write out the boilerplate documentation four times... */</span>
+<a name="l00765"></a>00765 
+<a name="l00862"></a>00862 <span class="preprocessor">#endif</span>
+<a name="l00863"></a>00863 <span class="preprocessor"></span>
+<a name="l00864"></a>00864 <span class="preprocessor">#endif</span>
+</pre></div></div>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)">< [...]
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 7 2016 18:34:00 for Random123-1.09 by 
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
+</body>
+</html>
diff --git a/docs/main.dox b/docs/main.dox
new file mode 100644
index 0000000..b0111f7
--- /dev/null
+++ b/docs/main.dox
@@ -0,0 +1,357 @@
+/**
+ at mainpage Random123: a Library of Counter-Based Random Number Generators
+
+The Random123 library is a collection of counter-based random
+number generators (@ref CBRNG "CBRNGs") for CPUs (C and C++) and GPUs (CUDA and OpenCL), as described in
+<a href="http://dl.acm.org/citation.cfm?doid=2063405"><i>Parallel Random Numbers:  As Easy
+as 1, 2, 3</i>, Salmon, Moraes, Dror & Shaw, SC11, Seattle, Washington, USA, 2011, ACM </a>.
+They are intended for use in statistical
+applications and Monte Carlo simulation
+and have passed all of the rigorous
+SmallCrush, Crush and BigCrush tests in the 
+<a href="http://www.iro.umontreal.ca/~simardr/testu01/tu01.html">
+extensive TestU01 suite</a> of statistical tests for random number generators.
+They are \b not suitable for use in cryptography or security
+even though they are constructed using principles drawn from cryptography.
+
+CBRNGs are as fast as, or faster than conventional RNGs, much
+easier to parallelize, use minimal memory/cache resources, and
+require very little code.  On modern architectures, the
+Random123 CBRNGs require a few cycles per byte of random data
+returned and return random data in convenient sizes (arrays of
+two or four elements, each element is an unsigned integer of 32
+or 64 bits.  The range of random numbers is the full
+representable range of the 32 or 64 bit unsigned integer) 
+The \c <Random123/u01.h> header contains utility functions
+to convert 32- and 64-bit unsigned integers to open or closed
+ranges of single or double precision floating point numbers.
+
+The Random123 library was written by John Salmon and Mark Moraes.  It is
+available from
+<a href="http://deshawresearch.com/resources_random123.html">
+http://deshawresearch.com/resources_random123.html.</a>  Please see
+the @ref LICENSE "license" for terms and conditions.  Please 
+send
+feedback, including bug reports, suggestions, patches, etc. to
+random123 at deshawresearch.com.
+
+\section overview Overview
+
+Unlike conventional RNGs, counter-based RNGs are 
+<b>stateless</b> functions (or function classes i.e. functors) whose
+arguments are a \e counter, and a \e key
+and returns a result of the same type as the counter.
+
+	result = CBRNGname(counter, key)
+
+The returned result is a deterministic function of the key and counter,
+i.e. a unique (counter, key) tuple will always produce the same
+result.  The result is highly sensitive to small changes in the inputs,
+so that the sequence of values produced by simply
+incrementing the counter (or key) is effectively indistinguishable from a
+sequence of samples of a uniformly distributed random variable.
+
+For all the CBRNGs in the Random123 library, the result and
+counter are the same type, specifically an array of \e N words,
+where words have a width of \e W bits, encapsulated in @ref
+arrayNxW "r123arrayNxW" structs, or equivalently, for C++, in
+the @ref r123::Array1x32 "ArrayNxW" typedefs in the r123
+namespace.   Keys are usually also arrayMxW types, but sometimes M is
+a different size than the counter N (e.g. Philox keys are half the
+number of elements as the counter, Threefry and ARS are the same number,
+AES uses an opaque key type rather than an array)  The N random
+numbers returned in \c result.v[] are unsigned integers of
+width W (32 or 64), and the range of the random numbers is the full
+range of the unsigned integer of that width (i.e. 0 to 2^W-1)
+
+In C++, all public names (classes, structs, typedefs, etc) are in the
+\c r123 namespace.  In C, the public names (functions, enums, structs,
+typedefs) begin either with \c %r123 or with one of the RNG family names, e.g., \c
+threefry, \c philox, \c ars, \c aesni.  The RNG functions themselves have names like
+\c philox4x32.  C++ class names are capitalized, e.g., \c Threefry4x32.
+
+\section families The different families of Random123 generators
+
+Several families of CBRNGs are available in this version of the library:
+<ul>
+<li> @ref ThreefryNxW "Threefry" is a <b>non-cryptographic</b>
+adaptation of the Threefish block cipher from the <a href="http://www.skein-hash.info/"> Skein Hash Function</a>.  
+See @ref r123::Threefry2x32, @ref r123::Threefry4x32, @ref r123::Threefry2x64, @ref r123::Threefry4x64.
+<li> @ref PhiloxNxW "Philox" uses a Feistel network and integer multiplication.
+See @ref r123::Philox2x32, @ref r123::Philox4x32, @ref r123::Philox2x64, @ref r123::Philox4x64.
+The Nx64 forms are only available on hardware
+that supports 64-bit multiplication producing a 128-bit result.
+<li> @ref AESNI "AESNI" uses the Advanced Encryption Standard (AES) New Instruction,
+available on certain modern x86 processors (some models of Intel Westmere and Sandy Bridge,
+and AMD Interlagos, as of 2011).   AESNI CBRNGs can operate on four 32bit words (internally converting
+them to the 128bit SSE type needed by the AES-NI instructions, or on a single m128i "word", 
+which holds the SSE type.
+See @ref r123::AESNI4x32, @ref r123::AESNI1xm128i.
+<li> @ref AESNI "ARS" (Advanced Randomization System) is a \b non-cryptographic simplification of @ref AESNI "AESNI".
+See @ref r123::ARS4x32_R, @ref r123::ARS1xm128i_R.
+</ul>
+
+\section install Installation and Testing
+
+The Random123 library is implemented entirely in header files.  Thus,
+there is nothing to compile before using it and nothing to link after
+you have <c>\#include</c>d it in your source files.  Simply direct your C or
+C++ compiler to find the header files in the \c include/ directory that
+was unpacked from the distribution tar file and use the Random123
+header files, types and functions in your application.  
+
+In addition to the \c include/ files which implement the library the
+distribution also contains an \c examples/ directory.  Users are <b>
+STRONGLY ADVISED </b> to compile and run the tests in examples/ before using
+Random123 in an application (see <c> @ref ExamplesREADME "examples/README"</c>).
+Do not use the library if any tests fail.  (It is not a failure for
+a test to report that it cannot run because of missing
+hardware capabilities like 64bit multiply,
+SSE, AES-NI or compiler capabilities)
+
+\section usage Usage
+
+\subsection CxxAPI C++ API
+
+A typical C++ use case might look like:
+
+ at code
+#include <Random123/philox.h>
+
+typedef r123::Philox4x32 RNG;
+RNG rng;
+RNG::ctr_type c={{}};
+RNG::ukey_type uk={{}};
+uk[0] = ???; // some user_supplied_seed
+RNG::key_type k=uk;
+
+for(...){
+   c[0] = ???; // some loop-dependent application variable 
+   c[1] = ???; // another loop-dependent application variable 
+   RNG::ctr_type r = rng(c, k);
+   // use the random values in r for some operation related to
+   // this iteration on objectid
+}
+ at endcode
+
+On each iteration,\c r contains an array of 4 32-bit random values that
+will not be repeated by any other call to \c rng as long as \c c and \c k
+are not reused.
+
+In the example above, we use the @ref r123::Philox4x32, but any of the
+other @ref CBRNG "CBRNGs" would serve equally well.  Also note that
+for most CBRNGs, the ukey_type and the key_type are identical; the code
+could just as well ignore the ukey_type and directly construct the
+key_type.  However, for the @ref AESNI "AESNI" CBRNGs, the key_type is opaque, and
+must be constructed from a ukey_type, as shown.
+
+\subsection Capi The C API
+
+In C, the example above could be written as:
+ at code
+#include <Random123/philox.h>
+
+philox4x32_ctr_t c={{}};
+philox4x32_ukey_t uk={{}};
+
+uk.v[0] = user_supplied_seed;
+philox4x32_key_t k = philox4x32keyinit(uk);
+
+for(...){
+    c.v[0] = ???; /* some loop-dependent application variable */
+    c.v[1] = ???; /* another loop-dependent application variable */
+    philox4x32_ctr_t r = philox4x32(c, k);
+}
+ at endcode
+
+In C, access to the contents of the counter and key is through
+the fixed-size array member \c v.
+
+\section cuda The CUDA platform
+
+All relevant functions in the C and C++ APIs for Random123 are declared
+as CUDA device functions if they are included in a CUDA kernel source file
+and compiled with a CUDA compiler (nvcc).  They can be used exactly
+as described/documented for regular C or C++ programs.  Note that
+CUDA device functions and host functions share the same namespace, so
+it is not currently possible to use Random123 functions in 
+both the host portion and the device portion of the same .cu source file.
+To work around this, you must compile Random123-using host code in
+a separate .c source file from your .cu device-resident code.
+The Nx32 forms are faster than the Nx64 variants on current (2011)
+32-bit GPU architectures.
+
+It has been reported that Random123 uses 16 bytes of
+static memory per thread.  This is undesirable and not intentional,
+but we do not have a workaround other than to suggest adjusting memory
+allocation accordingly.
+
+The  
+pi_cuda.cu and pi_cudapp.cu examples illustrate the use of CUDA.
+
+\section opencl The OpenCL platform
+
+The functions in the Random123 C API can all be used in
+OpenCL kernels, just as in regular C functions. 
+As with CUDA, the Nx32 forms are faster than the Nx64 variants on current (2011)
+32-bit GPU architectures.
+
+The pi_opencl.c and pi_opencl_kernel.ocl examples illustrate the use
+of OpenCL.
+
+\section cplusplus0x C++0X \<random\> interface
+
+In addition to the stateless ("pure/functional") C++ API above,
+the Random123 package includes two C++ classes
+that leverage the C++0X \<random\> API.
+
+<ul>
+<li>r123::MicroURNG provides an adapter class that provides a
+more conventional interface compatible with the C++0X URNG
+(uniform random number generator) API; the MicroURNG adapter can
+be used with C++0x random number distributions and is
+fast/lightweight enough that a new MicroURNG can be instantiated
+with a unique key,counter tuple and used for each call to a
+distribution, there is little or no overhead to creating
+billions of unique MicroURNGs.  This adapter retains one of the
+key advantages of CBRNGs -- complete application control over
+the RNG state.
+<li>r123::Engine provides the C++0x Random Engine API.  This can
+also be used with any of the C++0X random distributions, but
+sacrifices the application control over RNG state that is a
+defining characteristic of CBRNGs.
+</ul>
+
+\section gsl The GNU Scientific Library (GSL) interface
+
+In addition to the stateless ("pure/functional") C API above,
+the Random123 package includes two C adapter interfaces
+to the <a href="http://www.gnu.org/s/gsl/">GNU Scientific Library (GSL).</a>
+
+<ul>
+<li>The \ref GSL_MICRORNG macro allows the application to
+define a GSL random number generator.  It
+can be used with GSL random distributions but still provides the
+application with complete control over the RNG state (it is
+analogous to the MicroURNG class, in that it uses shorter
+periods, and is intended to be instantiated in large numbers for
+a few calls to the random distribution).
+<li>The \ref GSL_CBRNG macro allows the application to create a GSL
+RNG with a completely conventional interface, sacrificing
+application control over the internal RNG state.
+</ul>
+
+\section u01 Generating uniformly distributed and Gaussian distributed floats and doubles
+
+The Random123 library provides generators for uniformly distributed
+random \b integers.  Often, applications want random \b real values or
+samples from other distributions.  The general problem of generating
+samples from arbitrary distributions is beyond the scope of the Random123
+library.  One can, of course, use GSL or MicroURNG and the
+distributions in the C++11 \<random\> library, but a few simple cases
+are common enough that all that extra machinery seems like overkill.
+We have included code in the examples/ directory which developers may
+find useful.
+
+<ul>
+<li>    examples/uniform.hpp - C++ functions that convert random integers to
+         random, uniformly distributed floating point values.
+<li>    examples/u01fixedpt.h - C functions that convert random integers to
+         random, uniformly distributed, equi-spaced, i.e., fixed point,
+         values.
+<li> examples/ua.hpp - C++11 functions that convert r123arrays of
+     uniformly distributed integers into std::arrays of uniformly
+     distributed floating point types.  The return type is std::array
+     because it is far easier, with template logic, to return a
+     std::array of the correct size than an r123array of the correct
+     size.
+<li>    examples/boxmuller.hpp - C++ functions that take two
+         uniformly distributed integers (32 or 64 bit) and
+         return a pair of Gaussian distributed floats or doubles.
+</ul>
+
+The Box-Muller method of generating Gaussian random variables is
+particularly well suited to Random123 because it deterministically
+consumes exactly two uniform randoms to generate exactly two gaussian
+randoms.  It uses math library functions: sincos, log and sqrt which
+may be slow on some platforms, but which are surprisingly fast on
+others.  Notably, on GPUs, the lack of branching in the Box-Muller
+method and hardware support for math functions overcomes the
+transcendental function overhead, making it the fastest generator of
+Gaussians that we are aware of.
+
+\subsection Examples Tests and Benchmarks
+
+The @ref ExamplesREADME "examples/" directory, contains tests, examples and benchmarks.
+
+<ul>
+<li> Unit tests for individual components and "known-answer-tests", which
+should be run to ensure that these RNGs build correctly on desired platforms.
+These help to provide assurance that the code is being compiled correctly.
+<li> Complete, short programs estimate pi by counting the number of random
+points that fall inside a circle inscribed in a square, demonstrating
+the C, C++, AES, GSL, OpenCL, CUDA and C++0x APIs.
+<li> Header files, including uniform.hpp, ufixed01.h, ua.hpp, and boxmuller.hpp containing code that
+users may find useful but that are outside the scope of the Random123 library itself.
+<li> Some highly abstracted timing harnesses are provided
+which measure performance of a variety of generators in different
+programming environments.
+</ul>
+
+\section portability Portability
+
+Although we have done our best to make Random123 portable and standards conforming,
+it is an unfortunate fact that there is no portable code.  There is only
+code that has been ported.
+We have tested the Random123 library with the following infrastructure
+
+<ul>
+<li>Linux, gcc (multiple versions from 3.4.3 through 5.2), on x86_64.
+<li>Linux, clang-2.9, 3.0, 3.1, 3.3 and 3.6 on x86_64.
+<li>Linux, clang-3.0 and 3.1 with lib++ (2012-04-19 svn checkout) on x86_64.
+<li>Linux, open64-4.2.4 on x86_64.
+<li>Linux, Intel icc and icpc 12.0.2 on x86_64.
+<li>Linux, OpenCL (NVIDIA SDK 4.0.17) on GTX480, M2090, GTX580 and GTX680 GPUs.
+<li>Linux, OpenCL (AMD APP SDK 2.4 or 2.5), on x86_64 CPUs and Radeon HD6970 GPUs.
+<li>Linux, OpenCL (Intel OpenCL 1.5), on x86_64 CPUs.
+<li>Linux, NVIDIA CUDA 4.1.15, 4.2.6, 5.5.22 and 7.5.1.  (NOTE: We recommend against the use of CUDA before 4.1)
+<li>Linux, gcc-4.1.2 and 4.4.1 on x86.
+<li>Solaris, both gcc-3.4.3 and Sun C/C++ 5.8, on x86_64.
+<li>FreeBSD 8.2, gcc-4.2.1, on x86_64.
+<li>MacOS X 5.8, gcc-4.0.1, on x86.
+<li>MacOS X 5.8, llvm-2.9.1 on x86 (problems with catching C++ exceptions).
+<li>Windows 7, Microsoft Visual Studio, version 10.0, Microsoft C/C++ compiler 16.00.
+</ul>
+
+Others have reported success on
+<ul>
+<li>MacOS, OpenCL on x86_64 CPUs
+<li>Linux, gcc-4.7.2 on Powerpc64 (BlueGene/Q)
+<li>Linux, Portland Group Compiler on Powerpc64 (BlueGene/Q)
+<li>Linux, IBM xlc on Powerpc64 (BlueGene/Q)
+</ul>
+
+\section warnings Warnings
+
+With some compilation options, the CUDA nvcc compiler warns about
+unreachable code in array.h.  The compiler doesn't recognize that the
+code that is unreachable for some values of some macro parameters, is
+actually reachable for other values of the parameters.  It is possible
+to disable that particular warning for a specific compilation unit by
+adding -Wcudafe --diag_suppress=111 to the compilation command
+line.
+
+\section contributors Contributors
+
+We welcome feedback to random123 at deshawresearch.com about ports to other environments.
+
+We are grateful for contributions from the following users:
+<ul>
+<li> Geoffrey Irving and Gabriel Rockefeller - BlueGene/Q and powerpc ports
+<li> Yan Zhou - MacOS and clang ports
+<li> David Lawrie - allowing 64-bit philox to compile for both host and device with CUDA
+<li> Bogdan Opanchuk - pointing out the inconsistent rotation constants in the implementation of threefry2xW in version 1.07 and earlier.
+</ul>
+*/
+
+
diff --git a/docs/releasenotes.dox b/docs/releasenotes.dox
new file mode 100644
index 0000000..ba62ca4
--- /dev/null
+++ b/docs/releasenotes.dox
@@ -0,0 +1,134 @@
+/**
+ at page "Release Notes"
+<dl>
+<dt>1.09 - Mar 6, 2016 </dt>
+<dd><ul>
+<li> add #define R123_USE_U01_DOUBLE to u10fixedpt.h
+<li> fix definition of const char *srcstr[] in util_opencl.h
+<li> improve nvccfeatures.h so that 64-bit philox can be used
+both on the host and on the cuda device.
+<li> add _Pragmas so R123_STATIC_ASSERT doesn't warn with clang-3.6.
+<li> boxmuller.hpp doesn't look for sincos when __APPLE__ is true.
+</ul></dd>
+<dt>1.08 - Aug 20, 2013 </dt>
+<dd><ul>
+<li> 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.
+<li> 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).
+<li> Demote u01.h from the include/Random123/ to examples/ufixed01.h, but
+     examples/uniform.hpp is preferred.
+<li> Add kat_vectors for threefry2xW_32 and threefry4xW_72, i.e., the
+largest number of supported rounds in each case.
+<li> Mention ukey on the first page of docs.
+<li> Fix typos in documentation and comments and in gccfeatures.h.
+<li> Don't #include <x86intrin.h> unless (defined(__x86_64__)||defined(__i386__)).
+<li> Use __clang__ rather than __llvm__ in the predicate that decides whether to
+     include clangfeatures.h.
+<li> Add support for Portland Group compilers.
+<li> Add support for gcc and IBM XL compilers on powerpc64, e.g. BlueGene/Q.
+<li> Refuse to build with CUDA before 4.1 to avoid namespace bug.
+</ul></dd>
+
+<dt>1.07 - Nov 7, 2012 </dt>
+<dd><ul>
+<li> Provide const static data members:  _Min and _Max in Engine and MicroURNG, which
+work around a non-standard requirement imposed by the MacOS Xcode 4.5.2 <random> library.
+<li> Fine-grained test macros for specific features of C++11 rather than
+an all-or-none USE_CXX0X macro.  Features tested:
+constexpr, unrestricted unions, explicit conversions, <random> and <type_traits>.
+<li> Declare max() and min() methods with the R123_CONSTEXPR attribute
+in Engine and MicroURNG.
+<li> Improved clang support
+<li> Works with Solaris Sun CC now (requires -library=stlport4)
+<li> NVIDIA GTX6x0 should report correct core count
+<li> ut_features prints the list of features that compile on the build platform
+<li> Compiles cleanly with -Wall -Wextra (implying -Wunused-parameter -Wsign-compare)
+</ul></dd>
+
+<dt>1.06 - Apr 5, 2012 </dt>
+<dd><ul>
+<li> Added a known answer test for the u01 functions (kat_u01).
+<li> Defend headers against possible max and min macros in "system" header files.
+</ul></dd>
+
+<dt>1.05 - Mar 20, 2012 </dt><dd>
+<ul><li>
+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.</li>
+<li>Added <Random123/u01.h> header file with static functions for conversion
+of integers to uniformly distributed floating point values.</li>
+<li>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.</li>
+<li>Recognize that icpc has an _mm_set_epi64x intrinsic as of version 12.1.</li>
+<li>The gsl adapters always return 32-bits of random data, regardless of the
+width of counter type.</li>
+<li>Works around lack of anonymous enums in Intel OpenCL 1.5</li>
+<li>gencl.sh works on MacOS and systems with "classic" BSD indent.</li>
+<li>Tests run on AMD Radeon 7970 (Tahiti).</li>
+</ul>
+
+</dd>
+
+<dt>1.04 - Dec 5, 2011</dt><dd>
+<ul><li>
+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.</li>
+</ul>
+</dd>
+
+<dt>1.03 - Nov 30, 2011</dt><dd>
+<ul>
+<li> overhaul known answer tests (kat)
+   <ul>
+   <li> common source for serial C, C++, cuda and opencl replaces katc and katpp </li>
+   <li> add missing kat_vectors for threefry2x32 </li>
+   </ul></li>
+<li> make keyinit functions device/kernel functions in CUDA/OpenCL </li>
+<li> replace r123array::assemble methods with r123array::seed(SeedSeq) template </li>
+<li> cleanup of signatures of Engine and MicroURNG methods: 
+   <ul>
+      <li> Engine(ukey_type&) and MicroURNG(ctr_type, ukey_type) constructors.</li>
+      <li> Engine(SeedSeq&) takes a reference argument, and, when C++0x <type_traits>
+           are available the SeedSeq templates don't participate in "surprising" overloads. </li>
+   </ul>
+</li>
+</ul>
+</dd>
+
+<dt>1.02 - Nov 21, 2011</dt><dd>
+<ul>
+<li>
+<b> BUG FIXED </b> 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 <i>more</i>
+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". </li>
+<li>worked around problems with argument marshalling in version 2.4 of the AMDAPPSDK OpenCL implementation</li>
+</ul>
+</dd>
+
+<dt>1.01 - Nov 11, 2011</dt><dd>
+<ul>
+<li>allow the user to define __STDC_CONSTANT_MACROS</li>
+<li>allow r123arrayNxW::incr(larger_than_largest_value_type)</li>
+</ul>
+
+<dt>1.00 - Sep 26, 2011</dt><dd>Initial release</dd>
+</dl>
+*/
diff --git a/examples/BUILD.LOG b/examples/BUILD.LOG
new file mode 100644
index 0000000..809b8b4
--- /dev/null
+++ b/examples/BUILD.LOG
@@ -0,0 +1,35 @@
+cc -O -I../include   kat_c.c   -o kat_c
+g++ -O -I../include   kat_cpp.cpp   -o kat_cpp
+nvcc -O -I../include   kat_cuda.cu   -o kat_cuda
+CC="cc" CPPFLAGS="-I../include" ./gencl.sh kat_opencl_kernel.ocl kat_opencl_kernel.i
+cc -O -I. -I../include   kat_opencl.c  -lOpenCL -o kat_opencl
+g++ -O -I../include   pi_aes.cpp   -o pi_aes
+cc -O -I../include   pi_capi.c   -o pi_capi
+g++ -O -I../include   pi_cppapi.cpp   -o pi_cppapi
+nvcc -O -I../include   pi_cuda.cu   -o pi_cuda
+nvcc -O -I../include   pi_cudapp.cu   -o pi_cudapp
+cc -O `gsl-config --cflags` -I../include   pi_gsl.c  `gsl-config --libs` -o pi_gsl
+g++ -O -I../include   pi_microurng.cpp   -o pi_microurng
+CC="cc" CPPFLAGS="-I../include" ./gencl.sh pi_opencl_kernel.ocl pi_opencl_kernel.i
+cc -O -I. -I../include   pi_opencl.c  -lOpenCL -o pi_opencl
+g++ -O -I../include   pi_uniform.cpp   -o pi_uniform
+cc -O -I../include   simple.c   -o simple
+g++ -O -I../include   simplepp.cpp   -o simplepp
+g++ -O -I../include   time_boxmuller.cpp   -o time_boxmuller
+nvcc -O -I../include   time_boxmuller_cuda.cu   -o time_boxmuller_cuda
+nvcc -O -I../include   time_cuda.cu   -o time_cuda
+CC="cc" CPPFLAGS="-I../include" ./gencl.sh time_opencl_kernel.ocl time_opencl_kernel.i
+cc -O -I. -I../include   time_opencl.c  -lOpenCL -o time_opencl
+cc -O -I../include   time_serial.c   -o time_serial
+cc -O -I../include -D_REENTRANT=1 -D_THREAD_SAFE=1   time_thread.c  -lpthread -o time_thread
+g++ -O -I../include   timers.cpp   -o timers
+g++ -O -I../include   ut_Engine.cpp   -o ut_Engine
+g++ -O -I../include   ut_M128.cpp   -o ut_M128
+g++ -O -I../include   ut_ReinterpretCtr.cpp   -o ut_ReinterpretCtr
+g++ -O -I../include   ut_aes.cpp   -o ut_aes
+cc -O -I../include   ut_ars.c   -o ut_ars
+g++ -O -I../include   ut_carray.cpp   -o ut_carray
+g++ -O -I../include   ut_features.cpp   -o ut_features
+cc -O `gsl-config --cflags` -I../include   ut_gsl.c  `gsl-config --libs` -o ut_gsl
+g++ -O -I../include   ut_ua.cpp   -o ut_ua
+g++ -O -I../include   ut_uniform.cpp   -o ut_uniform
diff --git a/examples/BUILDVC.BAT b/examples/BUILDVC.BAT
new file mode 100644
index 0000000..875231a
--- /dev/null
+++ b/examples/BUILDVC.BAT
@@ -0,0 +1,50 @@
+:: Call this with either x86 (for 32bit compile on a 32bit machine),
+:: amd64 (if you want to do a 64bit compile on a 64bit machine),
+:: or x86_amd64 (if you want to compile for amd64 on an x86)
+:: With no argument, will default to amd64 on Win64 and x86 otherwise.
+:: Call this with the argument "run" if you want to only run the 
+:: previously compiled executables.
+ at echo off
+setlocal
+if not "%1"=="run" goto :Default
+set CC=echo
+set CFLAGS=
+goto :Loop
+
+:Default
+if "%~1"=="" goto :Guess
+set NEWBUILDVC=%1
+goto :Next
+
+:Guess
+set RegQry=HKLM\Hardware\Description\System\CentralProcessor\0
+REG.exe Query %RegQry% > hwdesc.o
+FIND /i "x86" < hwdesc.o > hwcheck.o
+if %errorlevel% == 0 (
+set NEWBUILDVC=x86
+) else (
+set NEWBUILDVC=amd64
+)
+
+:Next
+if "%BUILDVC%"=="%NEWBUILDVC%" goto :Continue
+if NOT DEFINED VCBAT set VCBAT="c:\Program Files (x86)\Microsoft Visual Studio 10.0\vc\vcvarsall.bat"
+call %VCBAT% %NEWBUILDVC%
+if errorlevel 1 exit /b 1
+set BUILDVC=%NEWBUILDVC%
+
+:Continue
+:: /Zi for debug.  /favor:INTEL64 is ignored for 32bit compiles.
+if NOT DEFINED CFLAGS set CFLAGS=/DR123_NO_SINCOS=1 /I..\include /W3 /Ox /EHs /nologo /favor:INTEL64
+set CC=cl
+echo Using %VCBAT%
+echo Building for %BUILDVC% with %CC% %CFLAGS%
+
+:Loop
+set BUILDFILES= ( kat_c.c kat_cpp.cpp pi_aes.cpp pi_capi.c pi_cppapi.cpp pi_microurng.cpp simple.c simplepp.cpp time_serial.c time_boxmuller.cpp timers.cpp ut_Engine.cpp ut_M128.cpp ut_ReinterpretCtr.cpp ut_aes.cpp ut_ars.c ut_carray.cpp ut_features.cpp ut_uniform.cpp )
+FOR %%A IN %BUILDFILES% DO (
+	%CC% %CFLAGS% %%A
+	if errorlevel 1 exit /b 1
+	%%~nA 
+	if errorlevel 1 exit /b 1 )
+endlocal
diff --git a/examples/BUILDVC11.BAT b/examples/BUILDVC11.BAT
new file mode 100644
index 0000000..d1e329b
--- /dev/null
+++ b/examples/BUILDVC11.BAT
@@ -0,0 +1,6 @@
+rem /DR123_USE_CXX11=1 will not work because VS2012 is not fully C++11 compliant yet.
+setlocal
+set CFLAGS=/I..\include /W3 /Ox /EHs /nologo /favor:INTEL64
+set VCBAT="c:\Program Files (x86)\Microsoft Visual Studio 11.0\vc\vcvarsall.bat"
+call BUILDVC.bat %1
+endlocal
diff --git a/examples/GNUmakefile b/examples/GNUmakefile
new file mode 100644
index 0000000..9c277ab
--- /dev/null
+++ b/examples/GNUmakefile
@@ -0,0 +1,133 @@
+no_target_specified: runcore
+	@echo
+	@echo The default make rule is equivalent to \'make runcore\' which runs only the most basic tests.
+	@echo The following \'meta-targets\' are available:
+	@echo "      " $(meta_targets)
+	@echo Here is the complete list of individual program targets:
+	@echo "      " $(all_primary_targets)
+	@echo Prepend \'run\' to any of the program targets or metatargets
+	@echo to run the binary and check for a zero exit status.
+	@echo Adding force=1 on the command line causes all targets to be considered out-of-date.
+.PHONY: no_target_specified
+
+# metatargets are variables which get mapped by METATARGET_template
+meta_targets:=kat core aesni timing c cpp gsl thread cuda opencl
+
+# Platform metatargets: each one typically has specific requirements in the build environment.
+# c is C99 (will work in MSVC), cpp is C++98, gsl requires the GNU Scientific Library
+# (specifically, the gsl-config program in the PATH), thread requires POSIX threads,
+# CUDA requires NVIDIA CUDA 3.x or newer, OpenCL requires OpenCL includes & libraries
+# (e.g. AMD APP SDK, NVIDIA SDK)
+c:=kat_c pi_capi simple ut_ars time_serial
+cpp:=kat_cpp pi_uniform pi_cppapi simplepp ut_carray ut_M128 ut_features ut_ReinterpretCtr ut_Engine ut_aes pi_aes timers pi_microurng time_boxmuller ut_ua ut_uniform
+gsl:=pi_gsl ut_gsl
+thread:=time_thread
+cuda:=pi_cuda pi_cudapp time_cuda kat_cuda time_boxmuller_cuda
+opencl:=pi_opencl time_opencl kat_opencl
+
+# Convenience metatargets: these are to help developers test functional subsets across platforms
+kat:=kat_c kat_cpp
+core:=$(c) $(cpp)
+aesni:=pi_aes ut_aes ut_ars
+timing:=timers time_serial time_thread
+
+$(gsl) : override LDLIBS += `gsl-config --libs`
+$(gsl) : override CFLAGS += `gsl-config --cflags`
+
+$(opencl) : % : %_kernel.i
+$(opencl) : override LDLIBS+=-lOpenCL
+$(opencl) : override CFLAGS+=-I.
+# Note, the Intel OpenCL SDK (1.5) has unresolved C++ symbols in its
+# libOpenCL.so Even though 'main' is a C program, you may need to link
+# it with a C++ compiler-driver, e.g., g++.  Since this Makefile does
+# compile-and-link in one step, use something like:
+# $(opencl) : CC=g++ -xc
+# which will invoke the g++ compiler-driver, but will treat the
+# program as C rather than C++.
+
+# N.B. gcc -pthread (without the -l) on linux at compile time also
+# adds -D_REENTRANT.  Unfortunately -pthread is unrecognized by
+# SunPRO.  Posix says that -lpthread is portable (as if anyone cares
+# what Posix says), and it seems to work in all the environments we've
+# tested.  Gcc's features.h says that _THREAD_SAFE is "often used by
+# other systems" as a synonym for _REENTRANT.  Cross your fingers...
+$(thread) : override LDLIBS+=-lpthread
+$(thread) : override CPPFLAGS+=-D_REENTRANT=1 -D_THREAD_SAFE=1
+
+all_primary_targets += $(addsuffix _kernel.i, $(opencl))
+
+################################################
+# Generic boilerplate from here down:
+vpath %.c $(srcdir/)
+vpath %.cpp $(srcdir/)
+vpath %.cu $(srcdir/)
+vpath %.ocl $(srcdir/)
+
+define METATARGET_template
+.PHONY: $(1)
+$(1) : $(filter-out $(SKIP_TARGETS), $($(1)))
+.PHONY: run$(1)
+run$(1) : $(addprefix run, $(filter-out $(SKIP_TARGETS), $($(1))))
+all_primary_targets += $($(1))
+endef
+
+$(foreach T,$(meta_targets), $(eval $(call METATARGET_template,$(T))))
+
+# sort also does 'uniq'
+all_primary_targets:=$(sort $(all_primary_targets))
+
+INC=$(srcdir/)../include
+override CPPFLAGS += -I$(INC)
+
+ifndef NVCC
+NVCC:=nvcc
+endif
+# The rngs are *very* slow without optimization.  In the simplest case,
+# where the user just calls 'make', we don't want them to see terrible
+# performance.  Unfortunately, this might surprise someone
+# who says, e.g., make CPPFLAGS=-O0.  Oh well...
+ifndef CFLAGS
+CFLAGS:=-O
+endif
+ifndef CXXFLAGS
+CXXFLAGS:=-O
+endif
+
+%.i : %.ocl
+	CC="$(CC)" CPPFLAGS="$(CPPFLAGS)" $(srcdir/)./gencl.sh $< $@
+
+% : %.cu
+	$(NVCC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) $(TARGET_ARCH) $< $(LOADLIBES) $(LDLIBS) -o $@
+
+% : %.c
+	$(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) $(TARGET_ARCH) $< $(LOADLIBES) $(LDLIBS) -o $@
+
+% : %.cpp
+	$(CXX) $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS) $(TARGET_ARCH) $< $(LOADLIBES) $(LDLIBS) -o $@
+
+run% : %
+	./$^ $(RUN_ARGS)
+
+# In lieu of autodepends, just say that all the compilation targets depend on all the headers.
+hdrs:=$(wildcard $(srcdir/)*.h $(srcdir/)gsl/*.c $(INC)/Random123/*.h $(INC)/Random123/*.hpp $(INC)/Random123/*/*.h $(INC)/Random123/*/*.hpp)
+misc:=$(wildcard $(srcdir/)*.cu $(srcdir/)*.ocl)
+$(all_primary_targets) : $(hdrs)
+$(misc) : $(hdrs)
+
+# If you put force=y on the command line, then $(all_primary_targets) will be
+# depend on FORCE, and hence will not be up-to-date.
+ifdef force
+$(all_primary_targets) : FORCE
+FORCE:
+endif
+
+.PHONY : echo_primary_targets
+echo_primary_targets:
+	@echo $(all_primary_targets)
+
+.PHONY : clean veryclean
+clean:
+	rm -f $(all_primary_targets)
+
+veryclean:
+	rm -f $(all_primary_targets) *.o \#* *~ *.pdb *.exe *.obj *.ilk *.suo
diff --git a/examples/README b/examples/README
new file mode 100644
index 0000000..254efbc
--- /dev/null
+++ b/examples/README
@@ -0,0 +1,196 @@
+This file is examples/README and is also linked to from the doxygen main page.
+
+/**
+ at page ExamplesREADME Examples, Tests and Benchmarks
+
+The examples/ directory contains tests, examples and timing
+harnesses for the components of the Random123 library.
+
+ at section building Compiling and Running the code
+
+Installing and using Random123 requires only the use
+of the header files, and  has no prerequisites other than
+a reasonable C99 or C++98 compiler.
+
+With a modern GNU make (3.80 or newer), building and running the core tests
+and examples can be as easy as running gmake with no arguments.
+Note, though, that the provided examples/GNUmakefile intentionally avoids setting
+any of the standard make variables:  CC, CXX, CPPFLAGS, CFLAGS,
+CXXFLAGS, TARGET_ARCH, LDFLAGS,  LOADLIBES, LDLIBS.  GNU make
+will inherit settings for these variables from the environment,
+or they may be set on the command line.  If none  are set,
+compilation will proceed using system-wide default flags, generally
+without advanced optimization, architectural tuning, warnings, or other
+common options.  
+
+Before putting the Random123 library to use in an application,
+it is important to test it using the same compiler flags and
+features that the application will use.  In other words,
+the conventional make variables should be set
+the same way when testing the library as they will be set when the
+library is actually compiled into your application.
+Something like:
+ at code
+gmake CFLAGS="-std=c99" CXXFLAGS="-std=c++0x" CPPFLAGS="/alternate/location/include -O3 -Wall -Wstrict-aliasing=2" TARGET_ARCH="-march=native"
+ at endcode
+would confirm that all is well with optimization on, and output targeted at
+an architecture with the same capabilities as the machine running the compilation.
+
+Very old versions of GNU make (pre-2002) or non-GNU
+make will not work with examples/GNUmakefile.. Lacking a suitably modern GNU make,
+our advice is to invoke the
+C or C++ compiler directly on the source files in the examples/ directory.
+The file: examples/BUILD.LOG contains a list of sample build commands.  They
+will almost certainly need to be adapted to the target system.
+For Windows users, BUILDVC.BAT invokes the Microsoft
+Visual Studio compiler.  Edit it as needed for your platform.
+
+ at section tests Tests
+
+It is recommended that Random123 be tested <b> on the target system,
+with the target compiler, intended optimization levels, options,
+target architectures, etc.</b>
+before relying it.  The library
+uses architecture- and compiler-specific intrinsics,
+features and assembly language.  We have seen  cases where
+one compiler (open64 version 4.2.4) masquerades as another compiler (it defines __GNUC__) accepts extensions
+specific to the other compiler (__uint128_t)
+without error or warning, and then silently produces incorrect code.
+The only way to guard against this kind of misbehavior is to
+compile and run the tests with the compiler and options that you intend to use and
+the platform that you intend to run on.
+
+ at subsection kat Known Answer Tests
+
+Testing that your compiled code computes the same "Known Answers" as the
+reference implementation which has been subjected to the Crush batteries of
+statistical tests is critically important.
+
+The file \c examples/kat_vectors contains a few thousand "Known Answer
+Test" vectors, i.e., tuples of (method, counter, key, answer).  The
+source file katc.c is incorporated into kat_c.c (C),
+kat_cpp.cpp (C++), kat_cuda.cu (CUDA) and kat_opencl.c
+(OpenCL), which are compiled into kat_c, kat_cpp, kat_cuda
+and kat_opencl, respectively.  Each of these will read kat_vectors
+and verify that the compiled code obtains the same "known answers".
+
+The kat vectors are not language-specific.  Implementations of CBRNGs in
+other languages could also be validated against \c kat_vectors.  The
+kat vectors are also byte-order independent.  In other
+words, the CBRNGs in the library should produce the same numerical
+results on little-endian and big-endian hardware, but this behavior
+is largely untested.
+
+ at subsection ut Unit Tests
+
+examples/ also contains tests of specific components of the library.  While not
+exhaustive, these tests verify that a variety of invariants are satisfied
+by the public methods (e.g., that incr(N) is the same as incr() N times).  They
+also serve to verify some of the compile-time feature-test logic which, if incorrect can
+lead to mysterious errors (e.g., is it necessary to <c>#include <smmintrin.h></c>).
+Unit tests include:
+
+<ul>
+<li> ut_features - verifies compile-time feature-test logic.
+<li> ut_carray - verifies the capabilities of the @ref arrayNxW "r123arrayNxW" types.
+<li> ut_M128 - verifies the capabilities of the r123m128i type (only when SSE2 is available).
+<li> ut_ReinterpretCtr - verifies the r123::ReinterpretCtr wrapper template.
+<li> ut_Engine - verifies the capabilities of the r123::Engine wrapper template.
+<li> ut_aes - verifies that the @ref AESNI "AESNI" cbrngs match known answers from FIPS-197.
+<li> ut_gsl - tests the @ref GSL_CBRNG adapter <b>Requires the GNU Scientific Library</b>.
+</ul>
+
+ at section examples Examples
+
+ at subsection simple Simple examples in C and C++
+
+There are two extremely short examples that show all the code necessary to
+obtain and print a few random numbers in C and C++:
+<ul>
+<li> simple.c 
+<li> simplepp.cpp
+</ul>
+
+ at subsection generation Generation of uniformly distributed real values.
+
+The uniformly distributed integers that the CBRNGs produce are rarely
+what is required by applications.  Sampling other distributions
+is beyond the scope of Random123.  Many
+distributions can be sampled with GSL (using \<Random123/conventional/gsl_cbrng.h\>
+or with C++11's \<random\> (using \<Random123/MicroURNG.hpp\> or \<Random123/conventional/Engine.hpp\>.
+Nevertheless, some distributions are so simple that the
+machinery of \<random\> or GSL seems like overkill.  We provide
+code to generate uniformly distributed real numbers in
+the range (0, 1) and (-1, 1) in two header files:
+<ul>
+<li> uniform.hpp
+<li> u01fixedpt.h
+</ul>
+We encourage you to copy these header files and use them (or modify them)
+to suit your needs.  They are not as thoroughly tested or as portable
+as the headers in the library itself, but they should be safe to use
+on any platform with IEEE-754 floating point support.  They are
+documented in comments in the files themselves.
+
+ at subsection pi Estimating pi using different APIs
+
+Using random numbers to estimate pi is a classic example.  The idea
+is to choose points at random in a square and to count how many of
+them lie within the inscribed circle.  Since the area of the square
+is 4*r^2 and the area of the circle is pi*r^2, the ratio of the
+number of points in the circle to the total number of points should
+approach pi/4 as the number of points grows.
+
+We give several examples of pi estimation, each of
+which illustrates a slightly different API
+
+<ul>
+<li> pi_capi - using only the basic C API
+<li> pi_cppapi - using only the basic C++ API
+<li> pi_u01 - using the C++ API and uniform.hpp
+<li> pi_gsl - using a Random123 generator, but a gsl distribution to obtain real-valued random numbers.  <b>Requires the GNU Scientific Library</b>
+<li> pi_microurng - using a Random123 generator, but a C++0x \<random\> distribution to obtain real-valued random numbers
+<li> pi_cuda - using the Random123  library with CUDA, runnable on an NVIDIA GPU
+<li> pi_cudapp - using the C++ API with CUDA, runnable on an NVIDIA GPU
+<li> pi_opencl - using the Random123 library with OpenCL, runnable on any OpenCL platform: e.g. NVIDIA or ATI GPUs or Intel or AMD CPUs.  The actual
+compute kernel lives in the \c pi_opencl_kernel.ocl file and is transformed by \c gencl.sh into strings that get included in \c pi_opencl.c, since
+the OpenCL kernels get compiled for the target OpenCL platform at run-time
+<li> pi_aes - uses the AESNI4x32 Random123 generator
+</ul>
+
+ at section timers Measuring performance
+
+We include some timing harnesses that can be used to measure
+the performance of these CBRNGs on various platforms. These
+timing harnesses report a cycles-per-byte (cpB) metric, which
+should be independent of clock-rate or number of cores, but
+depends on compilers and the architecture of
+the processor being run on.  They also report aggregate throughput
+in GB/sec:  a more direct
+measure of performance, but one that depends on clock speed
+and number of cores being used.
+The timing harnesses are obscured by tricks required for
+portability across platforms and CBRNG type.
+As a result,
+they are not
+recommended as examples of the use of library
+and its APIs.
+
+<ul>
+<li> time_serial - uses the C API and reports performance for a
+single core.
+<li> timers - uses the C++ API, and is the only tool that reports
+AESNI1xm128i and ARS1xm128i performance (if your CPU supports the AES-NI instruction
+extensions).
+<li> time_thread - uses the C API and pthreads to report
+multithreaded performance, uses all cores available on the platform.
+<li> time_cuda - uses the C API within NVIDIA CUDA to run on NVIDIA GPUs.
+<li> time_opencl - uses the C API within OpenCL to run on GPUs or CPUs.
+</ul>
+
+time_serial, time_thread, time_cuda, time_opencl all use a common 
+kernel defined in time_random123.h.  They all use various 
+util_* header files for utility functions and platform-related
+boilerplate (also used by the pi_* examples).
+
+*/
diff --git a/examples/boxmuller.hpp b/examples/boxmuller.hpp
new file mode 100644
index 0000000..128c79d
--- /dev/null
+++ b/examples/boxmuller.hpp
@@ -0,0 +1,140 @@
+/*
+Copyright 2010-2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+// This file implements the Box-Muller method for generating gaussian
+// random variables (GRVs).  Box-Muller has the advantage of
+// deterministically requiring exactly two uniform random variables as
+// input and producing exactly two GRVs as output, which makes it
+// especially well-suited to the counter-based generators in
+// Random123.  Other methods (e.g., Ziggurat, polar) require an
+// indeterminate number of inputs for each output and so require a
+// 'MicroURNG' to be used with Random123.  The down side of Box-Muller
+// is that it calls sincos, log and sqrt, which may be slow.  However,
+// on GPUs, these functions are remarkably fast, which makes
+// Box-Muller the fastest GRV generator we know of on GPUs.
+//
+// This file exports two structs and one overloaded function,
+// all in the r123 namespace:
+//   struct r123::float2{ float x,y; }
+//   struct r123::double2{ double x,y; }
+//
+//   r123::float2  r123::boxmuller(uint32_t u0, uint32_t u1);
+//   r123::double2 r123::boxmuller(uint64_t u0, uint64_t u1);
+//  
+// float2 and double2 are identical to their synonymous global-
+// namespace structures in CUDA.
+//
+// This file may not be as portable, and has not been tested as
+// rigorously as the files in the library itself, i.e., those in
+// ../include/Random123.  Nevertheless, we hope it is useful and we
+// encourage developers to copy it and modify it for their own
+// use.  We invite comments and improvements.
+
+
+#ifndef _r123_BOXMULLER_HPP__
+#define _r123_BOXMULLER_HPP__
+
+#include <Random123/features/compilerfeatures.h>
+#include "uniform.hpp"
+#include <math.h>
+
+namespace r123{
+
+#if !defined(__CUDACC__)
+typedef struct { float x, y; } float2;
+typedef struct { double x, y; } double2;
+#else
+typedef ::float2 float2;
+typedef ::double2 double2;
+#endif
+
+#if !defined(R123_NO_SINCOS) && defined(__APPLE__)
+/* MacOS X 10.10.5 (2015) doesn't have sincosf */
+#define R123_NO_SINCOS 1
+#endif
+
+#if R123_NO_SINCOS /* enable this if sincos and sincosf are not in the math library */
+R123_CUDA_DEVICE R123_STATIC_INLINE void sincosf(float x, float *s, float *c) {
+    *s = sinf(x);
+    *c = cosf(x);
+}
+
+R123_CUDA_DEVICE R123_STATIC_INLINE void sincos(double x, double *s, double *c) {
+    *s = sin(x);
+    *c = cos(x);
+}
+#endif /* sincos is not in the math library */
+
+#if !defined(CUDART_VERSION) || CUDART_VERSION < 5000 /* enabled if sincospi and sincospif are not in math lib */
+
+R123_CUDA_DEVICE R123_STATIC_INLINE void sincospif(float x, float *s, float *c){
+    const float PIf = 3.1415926535897932f;
+    sincosf(PIf*x, s, c);
+}
+
+R123_CUDA_DEVICE R123_STATIC_INLINE void sincospi(double x, double *s, double *c) {
+    const double PI = 3.1415926535897932;
+    sincos(PI*x, s, c);
+}
+#endif /* sincospi is not in math lib */
+
+/*
+ * take two 32bit unsigned random values and return a float2 with
+ * two random floats in a normal distribution via a Box-Muller transform
+ */
+R123_CUDA_DEVICE R123_STATIC_INLINE float2 boxmuller(uint32_t u0, uint32_t u1) {
+    float r;
+    float2 f;
+    sincospif(uneg11<float>(u0), &f.x, &f.y);
+    r = sqrtf(-2.f * logf(u01<float>(u1))); // u01 is guaranteed to avoid 0.
+    f.x *= r;
+    f.y *= r;
+    return f;
+}
+
+/*
+ * take two 64bit unsigned random values and return a double2 with
+ * two random doubles in a normal distribution via a Box-Muller transform
+ */
+R123_CUDA_DEVICE R123_STATIC_INLINE double2 boxmuller(uint64_t u0, uint64_t u1) {
+    double r;
+    double2 f;
+
+    sincospi(uneg11<double>(u0), &f.x, &f.y);
+    r = sqrt(-2. * log(u01<double>(u1))); // u01 is guaranteed to avoid 0.
+    f.x *= r;
+    f.y *= r;
+    return f;
+}
+} // namespace r123
+
+#endif /* BOXMULLER_H__ */
diff --git a/examples/gencl.sh b/examples/gencl.sh
new file mode 100755
index 0000000..677527e
--- /dev/null
+++ b/examples/gencl.sh
@@ -0,0 +1,50 @@
+#!/bin/sh
+# Run the C preprocessor on an OpenCL kernel to generate a C string array
+# suitable for clCreateProgramWithSource.  This allows us to create
+# standalone OpenCL programs that do not depend on paths to the source
+# tree (the programs will still run the OpenCL run-time compiler to
+# compile the kernel, but the kernel is a string within the program, with
+# no external include dependencies)
+# Mark Moraes, D. E. Shaw Research
+
+# indenting the cpp output makes errors from the OpenCL runtime compiler
+# much more understandable.  User can override with whatever they want.
+# The classic BSD indent (yes, the one that lived in /usr/ucb/indent once)
+# defaults to -br, but recent GNU indent versions do not.  Both appear to
+# accept -br, fortunately... (BSD indent does not accept -kr or -linux, alas)
+
+PATH=$PATH:/usr/bin
+export PATH
+if type indent > /dev/null 2>&1; then
+	: ${GENCL_INDENT="indent -br"}
+else
+	: ${GENCL_INDENT=cat}
+fi
+
+# We rely on gsub in awk, which exists in everything except classic
+# old V7 awk (Solaris!).  If we can find gawk or nawk, we prefer those.
+# http://www.shelldorado.com/articles/awkcompat.html
+for f in gawk nawk awk; do
+	if type "$f" > /dev/null 2>&1; then
+		: ${GENCL_AWK="$f"}
+		break
+	fi
+done
+case "${GENCL_AWK}" in
+'')	echo "$0: could not find awk!">&2; exit 1;;
+esac
+usage="Usage: $0 inputoclfilename outputfilename"
+case $# in
+2)	;;
+*)	echo "$usage" >&2; exit 1;;
+esac
+case "$1" in
+''|-*)	echo "Invalid or empty inputoclfilename: $1
+$usage" >&2; exit 1;;
+esac
+set -e
+${CC-cc} -xc -E -P -nostdinc -D__OPENCL_VERSION__=1 $CPPFLAGS "$1" | 
+	${GENCL_INDENT} | 
+	${GENCL_AWK} 'BEGIN {print "static const char *opencl_src = \"\\n\\"}
+	{gsub("\\", "\\\\", $0); gsub("\"", "\\\"", $0); print $0 "\\n\\"}
+	END {print "\";"}' > "$2"
diff --git a/examples/kat.h b/examples/kat.h
new file mode 100644
index 0000000..788cf44
--- /dev/null
+++ b/examples/kat.h
@@ -0,0 +1,67 @@
+/*
+Copyright 2010-2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#ifndef __katdoth__
+#define __katdoth__
+
+#include <Random123/philox.h>
+#include <Random123/threefry.h>
+#include <Random123/ars.h>
+#include <Random123/aes.h>
+
+enum method_e{
+#define RNGNxW_TPL(base, N, W) base##N##x##W##_e,
+#include "rngNxW.h"
+#undef RNGNxW_TPL
+    unused // silences warning about dangling comma
+};
+
+#define RNGNxW_TPL(base, N, W)                       \
+    typedef struct {                                 \
+        base##N##x##W##_ctr_t ctr;                   \
+        base##N##x##W##_ukey_t ukey;                 \
+        base##N##x##W##_ctr_t expected;              \
+        base##N##x##W##_ctr_t computed;              \
+    } base##N##x##W##_kat;
+#include "rngNxW.h"
+#undef RNGNxW_TPL
+
+typedef struct{
+    enum method_e method;
+    unsigned nrounds;
+    union{
+#define RNGNxW_TPL(base, N, W) base##N##x##W##_kat base##N##x##W##_data;
+#include "rngNxW.h"
+#undef RNGNxW_TPL
+    }u;
+} kat_instance;
+
+#endif
diff --git a/examples/kat_c.c b/examples/kat_c.c
new file mode 100644
index 0000000..b310594
--- /dev/null
+++ b/examples/kat_c.c
@@ -0,0 +1,41 @@
+/*
+Copyright 2010-2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#include "kat_main.h"
+
+#define KAT_KERNEL
+#define KAT_GLOBAL
+#define KAT_UINT size_t
+#include "kat_dev_execute.h"
+
+void host_execute_tests(kat_instance *tests, size_t ntests){
+    dev_execute_tests(tests, ntests);
+}
diff --git a/examples/kat_cpp.cpp b/examples/kat_cpp.cpp
new file mode 100644
index 0000000..3138dc8
--- /dev/null
+++ b/examples/kat_cpp.cpp
@@ -0,0 +1,209 @@
+/*
+Copyright 2010-2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#include "kat_main.h"
+
+// With C++, it's a little trickier to create the mapping from
+// method-name/round-count to functions
+// because the round-counts are template arguments that have to be
+// specified at compile-time.  Thus, we can't just do #define RNGNxW_TPL
+// and #include "rngNxW.h".  We have to build a static map from:
+//  pair<generator, rounds> to functions that apply the right generator
+// with the right number of rounds.
+
+#ifdef _MSC_FULL_VER
+// Engines have multiple copy constructors, quite legal C++, disable MSVC complaint
+#pragma warning (disable : 4521)
+#endif
+
+#include <map>
+#include <cstring>
+#include <utility>
+#include <stdexcept>
+#include <Random123/MicroURNG.hpp>
+#include <Random123/conventional/Engine.hpp>
+
+using namespace std;
+
+typedef map<pair<method_e, unsigned>, void (*)(kat_instance *)> genmap_t;
+genmap_t genmap;
+
+void dev_execute_tests(kat_instance *tests, unsigned ntests){
+    size_t i;
+    for(i=0; i<ntests; ++i){
+        kat_instance *ti = &tests[i];
+        genmap_t::iterator p = genmap.find(make_pair(ti->method, ti->nrounds));
+        if(p == genmap.end())
+            throw std::runtime_error("pair<generator, nrounds> not in map.  You probably need to add more genmap entries in kat_cpp.cpp");
+
+        p->second(ti);
+        // TODO: check that the corresponding Engine and MicroURNG
+        //  return the same values.  Note that we have ut_Engine and
+        //  ut_MicroURNG, which check basic functionality, but they
+        //  don't have the breadth of the kat_vectors.
+    }
+}
+
+static int murng_reported;
+static int engine_reported;
+
+template <typename GEN>
+void do_test(kat_instance* ti){
+    GEN g;
+    struct gdata{
+        typename GEN::ctr_type ctr;
+        typename GEN::ukey_type ukey;
+        typename GEN::ctr_type expected;
+        typename GEN::ctr_type computed;
+    };
+    gdata data;
+    // use memcpy.  A reinterpret_cast would violate strict aliasing.
+    memcpy(&data, &ti->u, sizeof(data));
+    data.computed = g(data.ctr, data.ukey);
+
+    // Before we return, let's make sure that MicroURNG<GEN,1> and
+    // Engine<GEN> work as expeccted.  This doesn't really "fit" the
+    // execution model of kat.c, which just expects us to fill in
+    // ti->u.computed, so we report the error by failing to write back
+    // the computed data item in the (hopefully unlikely) event that
+    // things don't match up as expected.
+    int errs = 0;
+
+    // MicroURNG:  throws if the top 32 bits of the high word of ctr
+    // are non-zero.
+    typedef typename GEN::ctr_type::value_type value_type;
+    
+    value_type hibits = data.ctr[data.ctr.size()-1]>>( std::numeric_limits<value_type>::digits - 32 );
+    try{
+        r123::MicroURNG<GEN> urng(data.ctr, data.ukey);
+        if(hibits)
+            errs++; // Should have thrown.
+        for (size_t i = 0; i < data.expected.size(); i++) {
+	    size_t j = data.expected.size() - i - 1;
+	    if (data.expected[j] != urng()) {
+                errs++;
+	    }
+	}
+    }catch(std::runtime_error& /*ignored*/){
+        // A runtime_error is expected from the constructor
+        // when hibit is set.
+        if(!hibits)
+            errs++;
+    }
+    if(errs && (murng_reported++ == 0))
+        cerr << "Error in MicroURNG<GEN>, will appear as \"computed\" value of zero in error summary\n";
+
+    // Engine
+    // N.B.  exercising discard() arguably belongs in ut_Engine.cpp
+    typedef r123::Engine<GEN> Etype;
+    typedef typename GEN::ctr_type::value_type value_type;
+    Etype e(data.ukey);
+    typename GEN::ctr_type c = data.ctr;
+    value_type c0 = c[0];
+    c[0] /= 3;
+    e.setcounter(c, c.size());
+    if( c0 > c[0] ){
+        // skip one value by calling  e()
+        (void)e();
+        if (c0 > c[0]+1) {
+	    // skip many values by calling discard()
+	    R123_ULONG_LONG ndiscard = (c0 - c[0] - 1);
+            // Take care not to overflow the long long
+            if( ndiscard >= std::numeric_limits<R123_ULONG_LONG>::max() / c.size() ){
+                for(size_t j=0; j<c.size(); ++j){
+                    e.discard(ndiscard);
+                }
+            }else{
+                ndiscard *= c.size();
+                e.discard(ndiscard);
+            }
+	}
+	// skip a few more by calling e().
+	for (size_t i = 1; i < c.size(); i++) {
+	    (void) e();
+	}
+        // we should be back to where we started...
+    }
+    for (size_t i = 0; i < data.expected.size(); i++) {
+	value_type val = e();
+	size_t j = data.expected.size() - i - 1;
+	if (data.expected[j] != val) {
+            cerr << hex;
+            cerr << "Engine check, j=" << j << " expected: " << data.expected[j] << " val: " << val << "\n";
+	    errs++;
+            if(engine_reported++ == 0)
+                cerr << "Error in Engine<GEN, 1>, will appear as \"computed\" value of zero in error summary\n";
+	}
+    }
+
+    // Signal an error to the caller by *not* copying back
+    // the computed data object into the ti
+    if(errs == 0)
+        memcpy(&ti->u, &data, sizeof(data));
+}
+
+void host_execute_tests(kat_instance *tests, size_t ntests){
+    // In C++1x, this could be staticly declared with an initializer list.
+    genmap[make_pair(threefry2x32_e, 13u)] = do_test<r123::Threefry2x32_R<13> >;
+    genmap[make_pair(threefry2x32_e, 20u)] = do_test<r123::Threefry2x32_R<20> >;
+    genmap[make_pair(threefry2x32_e, 32u)] = do_test<r123::Threefry2x32_R<32> >;
+    genmap[make_pair(threefry2x64_e, 13u)] = do_test<r123::Threefry2x64_R<13> >;
+    genmap[make_pair(threefry2x64_e, 20u)] = do_test<r123::Threefry2x64_R<20> >;
+    genmap[make_pair(threefry2x64_e, 32u)] = do_test<r123::Threefry2x64_R<32> >;
+
+    genmap[make_pair(threefry4x32_e, 13u)] = do_test<r123::Threefry4x32_R<13> >;
+    genmap[make_pair(threefry4x32_e, 20u)] = do_test<r123::Threefry4x32_R<20> >;
+    genmap[make_pair(threefry4x32_e, 72u)] = do_test<r123::Threefry4x32_R<72> >;
+    genmap[make_pair(threefry4x64_e, 13u)] = do_test<r123::Threefry4x64_R<13> >;
+    genmap[make_pair(threefry4x64_e, 20u)] = do_test<r123::Threefry4x64_R<20> >;
+    genmap[make_pair(threefry4x64_e, 72u)] = do_test<r123::Threefry4x64_R<72> >;
+
+    genmap[make_pair(philox2x32_e, 7u)] = do_test<r123::Philox2x32_R<7> >;
+    genmap[make_pair(philox2x32_e, 10u)] = do_test<r123::Philox2x32_R<10> >;
+    genmap[make_pair(philox4x32_e, 7u)] = do_test<r123::Philox4x32_R<7> >;
+    genmap[make_pair(philox4x32_e, 10u)] = do_test<r123::Philox4x32_R<10> >;
+
+#if R123_USE_PHILOX_64BIT
+    genmap[make_pair(philox2x64_e, 7u)] = do_test<r123::Philox2x64_R<7> >;
+    genmap[make_pair(philox2x64_e, 10u)] = do_test<r123::Philox2x64_R<10> >;
+    genmap[make_pair(philox4x64_e, 7u)] = do_test<r123::Philox4x64_R<7> >;
+    genmap[make_pair(philox4x64_e, 10u)] = do_test<r123::Philox4x64_R<10> >;
+#endif
+
+#if R123_USE_AES_NI
+    genmap[make_pair(aesni4x32_e, 10u)] = do_test<r123::AESNI4x32 >;
+    genmap[make_pair(ars4x32_e, 7u)] = do_test<r123::ARS4x32_R<7> >;
+    genmap[make_pair(ars4x32_e, 10u)] = do_test<r123::ARS4x32_R<10> >;
+#endif
+
+    /* XXX ntests cannot be size_t because of OpenCL, seems unlikely it will overflow an unsigned... */
+    dev_execute_tests(tests, (unsigned)ntests);
+}
diff --git a/examples/kat_cuda.cu b/examples/kat_cuda.cu
new file mode 100644
index 0000000..6f9cb6d
--- /dev/null
+++ b/examples/kat_cuda.cu
@@ -0,0 +1,63 @@
+/*
+Copyright 2010-2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#include "util_cuda.h"
+#include "kat_main.h"
+
+#define KAT_KERNEL __global__
+#define KAT_GLOBAL
+#define KAT_UINT size_t
+#include "kat_dev_execute.h"
+
+void host_execute_tests(kat_instance *tests_host, size_t ntests){
+    CUDAInfo *infop;
+    kat_instance *tests_dev;
+    size_t tests_sz;
+
+    infop = cuda_init(NULL);
+
+    tests_sz = ntests * sizeof(tests_host[0]);
+    CHECKCALL(cudaMalloc(&tests_dev, tests_sz));
+    CHECKCALL(cudaMemcpy(tests_dev, tests_host, tests_sz, cudaMemcpyHostToDevice));
+
+    printf("starting %zu tests on 1 blocks with 1 threads/block\n", ntests);
+    fflush(stdout);
+
+    // TO DO:  call this with parallelism, <<<infop->blocks_per_grid, infop->threads_per_block>>>
+    // and then insure that each of the threads got the same result.
+    dev_execute_tests<<<1, 1>>>(tests_dev, ntests);
+
+    CHECKCALL(cudaThreadSynchronize());
+    CHECKCALL(cudaMemcpy(tests_host, tests_dev, tests_sz, cudaMemcpyDeviceToHost));
+    CHECKCALL(cudaFree(tests_dev));
+    cuda_done(infop);
+}
+
diff --git a/examples/kat_dev_execute.h b/examples/kat_dev_execute.h
new file mode 100644
index 0000000..e29cd5e
--- /dev/null
+++ b/examples/kat_dev_execute.h
@@ -0,0 +1,45 @@
+/*
+Copyright 2010-2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#include "kat.h"
+KAT_KERNEL void dev_execute_tests(KAT_GLOBAL kat_instance *tests, KAT_UINT ntests){
+    size_t i;
+    for(i=0; i<ntests; ++i){
+        KAT_GLOBAL kat_instance *ti = &tests[i];
+        switch(tests[i].method){
+            //case philox2x32_e: ti->philox2x32_data.computed = philox2x32_R(ti->rounds, ti->philox2x32_data.ctr, ti->philox2x32_data.key);
+#define RNGNxW_TPL(base, N, W) case base##N##x##W##_e: ti->u.base##N##x##W##_data.computed = base##N##x##W##_R(ti->nrounds, ti->u.base##N##x##W##_data.ctr, base##N##x##W##keyinit(ti->u.base##N##x##W##_data.ukey)); break;
+#include "rngNxW.h"
+#undef RNGNxW_TPL
+        case unused: ; // silence a warning
+        }
+    }
+}
diff --git a/examples/kat_main.h b/examples/kat_main.h
new file mode 100644
index 0000000..48d8c7a
--- /dev/null
+++ b/examples/kat_main.h
@@ -0,0 +1,292 @@
+/*
+Copyright 2010-2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+/* Known Answer Test */
+
+/* We use the same source files to implement the Known Answer Test
+   (KAT) in C, C++, OpenCL and CUDA.  Supporting all four environments
+   with a single source file, and getting it all to work with 'make'
+   is a bit involved:
+
+   There are four "top-level" files:
+     kat_c.c
+     kat_cpp.cpp
+     kat_cuda.c
+     kat_opencl.c
+
+   These correspond to make targets: kat_c, kat_cpp, kat_cuda
+   and kat_opencl.
+
+   Those four files are very simple.  First, they #include this file,
+   which contains all the machinery for reading test vectors,
+   complaining about errors, etc..  Then they implement the function
+   host_execute_tests() in the appropriate environment.  host_execute_tests
+   looks very different in C/C++/CUDA/OpenCL.
+
+   host_execute_tests contrives to call/launch "dev_execute_tests"
+   on the device.  Except for a few environment-specific keywords,
+   (e.g., __global, __kernel), which are #defined in kat_XXX.c,
+   dev_execute_tests is obtained by including a common source file:
+      #include <kat_dev_execute.h>
+
+   One final complication:  in order to fully "bake" the source code
+   into the binary at compile-time, dev_execute_tests for opencl is implemented in
+   kat_opencl_kernel.ocl, which is processed by gencl.sh into
+   kat_opencl_kernel.i, which is thein #include-ed by kat_opencl.c.
+   
+*/
+#include "util.h"
+#include "kat.h"
+
+#define LINESIZE 1024
+
+int have_aesni = 0;
+int verbose = 0;
+int debug = 0;
+size_t nfailed = 0;
+const char *progname;
+
+extern void host_execute_tests(kat_instance *tests, size_t ntests);
+                
+/* A little hack to keep track of the test vectors that we don't know how to deal with: */
+int nunknowns = 0;
+#define MAXUNKNOWNS 20
+const char *unknown_names[MAXUNKNOWNS];
+int unknown_counts[MAXUNKNOWNS];
+
+void register_unknown(const char *name){
+    int i;
+    for(i=0; i<nunknowns; ++i){
+        if( strcmp(name, unknown_names[i]) == 0 ){
+            unknown_counts[i]++;
+            return;
+        }
+    }
+    if( i >= MAXUNKNOWNS ){
+        fprintf(stderr, "Too many unknown rng types.  Bye.\n");
+        exit(1);
+    }
+    nunknowns++;
+    unknown_names[i] = ntcsdup(name);
+    unknown_counts[i] = 1;
+}
+
+void report_unknowns(){
+    int i;
+    for(i=0; i<nunknowns; ++i){
+        printf("%d test vectors of type %s skipped\n", unknown_counts[i], unknown_names[i]);
+    }
+}
+
+/* read_<GEN>NxW */
+#define RNGNxW_TPL(base, N, W) \
+int read_##base##N##x##W(const char *line, kat_instance* tinst){        \
+    size_t i;                                                           \
+    int nchar;                                                          \
+    const char *p = line;                                               \
+    char *newp;                                                         \
+    size_t nkey = sizeof(tinst->u.base##N##x##W##_data.ukey.v)/sizeof(tinst->u.base##N##x##W##_data.ukey.v[0]); \
+    tinst->method = base##N##x##W##_e;                                  \
+    sscanf(p,  "%u%n", &tinst->nrounds, &nchar);                        \
+    p += nchar;                                                         \
+    for(i=0;  i<N; ++i){                                                \
+        tinst->u.base##N##x##W##_data.ctr.v[i] = strtou##W(p, &newp, 16); \
+        p = newp;                                                       \
+    }                                                                   \
+    for(i=0; i<nkey; ++i){                                              \
+        tinst->u.base##N##x##W##_data.ukey.v[i] = strtou##W(p, &newp, 16); \
+        p = newp;                                                       \
+    }                                                                   \
+    for(i=0;  i<N; ++i){                                                \
+        tinst->u.base##N##x##W##_data.expected.v[i] = strtou##W(p, &newp, 16); \
+        p = newp;                                                       \
+    }                                                                   \
+    memset(tinst->u.base##N##x##W##_data.computed.v, 0, sizeof(tinst->u.base##N##x##W##_data.computed.v));                  \
+    return 1;                                                           \
+}
+#include "rngNxW.h"
+#undef RNGNxW_TPL
+
+/* readtest:  dispatch to one of the read_<GEN>NxW functions */
+static int readtest(const char *line, kat_instance* tinst){
+    int nchar;
+    char name[LINESIZE];
+    if( line[0] == '#') return 0;                                       
+    sscanf(line, "%s%n", name, &nchar);
+    if(!have_aesni){
+        /* skip any tests that require AESNI */ 
+        if(strncmp(name, "aes", 3)==0 ||
+           strncmp(name, "ars", 3)==0){
+            register_unknown(name);
+            return 0;
+        }
+    }
+#define RNGNxW_TPL(base, N, W) if(strcmp(name, #base #N "x" #W) == 0) return read_##base##N##x##W(line+nchar, tinst);
+#include "rngNxW.h"
+#undef RNGNxW_TPL
+
+    register_unknown(name);
+    return 0;
+}
+
+#define RNGNxW_TPL(base, N, W) \
+void report_##base##N##x##W##error(const kat_instance *ti){ \
+ size_t i;                                                     \
+ size_t nkey = sizeof(ti->u.base##N##x##W##_data.ukey.v)/sizeof(ti->u.base##N##x##W##_data.ukey.v[0]); \
+ fprintf(stderr, "FAIL:  expected: ");                                \
+ fprintf(stderr, #base #N "x" #W " %d", ti->nrounds);                   \
+ for(i=0; i<N; ++i){                                                    \
+     fprintf(stderr, " "); prtu##W(ti->u.base##N##x##W##_data.ctr.v[i]); \
+ }                                                                      \
+ for(i=0; i<nkey; ++i){                                                 \
+     fprintf(stderr, " "); prtu##W(ti->u.base##N##x##W##_data.ukey.v[i]); \
+ }                                                                      \
+ for(i=0; i<N; ++i){                                                    \
+     fprintf(stderr, " "); prtu##W(ti->u.base##N##x##W##_data.expected.v[i]); \
+ }                                                                      \
+ fprintf(stderr, "\n");                                                 \
+                                                                        \
+ fprintf(stderr, "FAIL:  computed: ");                                \
+ fprintf(stderr, #base #N "x" #W " %d", ti->nrounds);                   \
+ for(i=0; i<N; ++i){                                                    \
+     fprintf(stderr, " "); prtu##W(ti->u.base##N##x##W##_data.ctr.v[i]); \
+ }                                                                      \
+ for(i=0; i<nkey; ++i){                                                 \
+     fprintf(stderr, " "); prtu##W(ti->u.base##N##x##W##_data.ukey.v[i]); \
+ }                                                                      \
+ for(i=0; i<N; ++i){                                                    \
+     fprintf(stderr, " "); prtu##W(ti->u.base##N##x##W##_data.computed.v[i]); \
+ }                                                                      \
+ fprintf(stderr, "\n");                                                 \
+ nfailed++;                                                             \
+}
+#include "rngNxW.h"
+#undef RNGNxW_TPL
+
+// dispatch to one of the report_<GEN>NxW() functions
+void analyze_tests(const kat_instance *tests, size_t ntests){
+    size_t i;
+    for(i=0; i<ntests; ++i){
+        const kat_instance *ti = &tests[i];
+        switch(tests[i].method){
+#define RNGNxW_TPL(base, N, W) case base##N##x##W##_e: \
+            if (memcmp(ti->u.base##N##x##W##_data.computed.v, ti->u.base##N##x##W##_data.expected.v, N*W/8)) report_##base##N##x##W##error(ti); break;
+#include "rngNxW.h"
+#undef RNGNxW_TPL
+        case unused: ; // silence a warning
+        }
+    }
+}
+
+#define NTESTS 1000
+
+int main(int argc, char **argv){
+    kat_instance *tests;
+    size_t t, ntests = NTESTS;
+    char linebuf[LINESIZE];
+    FILE *inpfile;
+    const char *p;
+    const char *inname;
+    char filename[LINESIZE];
+    
+    progname = argv[0];
+
+    /* If there's an argument, open that file.
+       else if getenv("srcdir") is non-empty open getenv("srcdir")/kat_vectors
+       else open "./kat_vectors" */
+    if( argc > 1 )
+        inname = argv[1];
+    else{
+        const char *e = getenv("srcdir");
+        if(!e)
+            e = ".";
+        sprintf(filename, "%s/kat_vectors", e);
+        inname = filename;
+    }
+
+    if (strcmp(inname, "-") == 0) {
+	inpfile = stdin;
+    } else {
+	inpfile = fopen(inname, "r");
+	if (inpfile == NULL) {
+	    fprintf(stderr, "%s: error opening input file %s for reading: %s\n",
+		    progname, inname, strerror(errno));
+	    exit(1);
+	}
+    }
+    if ((p = getenv("KATC_VERBOSE")) != NULL) {
+	verbose = atoi(p);
+    }
+    if ((p = getenv("KATC_DEBUG")) != NULL) {
+	debug = atoi(p);
+    }
+
+#if R123_USE_AES_NI
+    have_aesni = haveAESNI();
+#else
+    have_aesni = 0;
+#endif
+
+    tests = (kat_instance *) malloc(sizeof(tests[0])*ntests);
+    if (tests == NULL) {
+	fprintf(stderr, "Could not allocate %lu bytes for tests\n",
+		(unsigned long) ntests);
+	exit(1);
+    }
+    t = 0;
+    while (fgets(linebuf, sizeof linebuf, inpfile) != NULL) {
+        if( t==ntests ){
+	    ntests *= 2;
+	    tests = (kat_instance *)realloc(tests, sizeof(tests[0])*ntests);
+	    if (tests == NULL) {
+		fprintf(stderr, "Could not grow tests to %lu bytes\n",
+			(unsigned long) ntests);
+		exit(1);
+	    }
+        }
+        if( readtest(linebuf, &tests[t]) )
+            ++t;
+    }
+
+    report_unknowns();
+    printf("Perform %lu tests.\n", (unsigned long)t);
+    host_execute_tests(tests, t);
+
+    analyze_tests(tests, t);
+    free(tests);
+    if(nfailed != 0){
+        printf("FAILED %lu out of %lu\n", (unsigned long)nfailed, (unsigned long)t);
+        return 1;
+    }else{
+        printf("PASSED %lu known answer tests\n", (unsigned long)t);
+        return 0;
+    }
+}
diff --git a/examples/kat_opencl.c b/examples/kat_opencl.c
new file mode 100644
index 0000000..0c8d23d
--- /dev/null
+++ b/examples/kat_opencl.c
@@ -0,0 +1,101 @@
+/*
+Copyright 2010-2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#include "util_opencl.h"
+#include "kat_main.h"
+
+// USE_GENCL:  gencl.sh is a small shell script
+// that pre-processes foo.ocl into foo.i, containing
+// a definition like:
+//  const char opencl_src[] = "preprocessed text of foo.ocl"
+// Thus, with gencl, this file says 
+//    #include <foo.i>
+// and the binary obtained by compiling it
+// is fully "baked".  Runtime behavior doesn't depend
+// on the contents of some file (e.g., foo.ocl or some
+// header that it includes) that might have changed long after this
+// file was compiled.
+//
+// The alternative (USE_GENCL 0) seems to be more along
+// the lines of what OpenCL designers imagine.  It makes the text of the
+// kernel program the string "#include <foo.c>".  This eliminates
+// the need for the extra machinery in gencl.sh, but runtime
+// behavior is susceptable to changes in foo.c, or files included
+// by foo.c long after this file is compiled.  It also requires some
+// hocus pocus to get absolute paths for the -I options needed
+// to compile the code at runtime.  Something like:
+//  override CFLAGS += -DSRCDIR=\"$(dir $(abspath $<)).\"
+#define USE_GENCL 1
+
+#if USE_GENCL
+#include <kat_opencl_kernel.i>
+#else
+#ifndef SRCDIR
+#error -DSRCDIR="/absolute/path/to/examples" should have been put on the command-line by GNUmakefile
+#endif
+#endif
+
+void host_execute_tests(kat_instance *tests, size_t ntests){
+    UCLInfo *infop;
+    cl_kernel kern;
+    size_t nthreads, tests_sz;
+    cl_mem tests_dev;
+    const char *kernelname = "dev_execute_tests";
+    cl_int err;
+    cl_uint cl_ntests = ntests;
+
+#if USE_GENCL
+    infop = opencl_init(NULL, opencl_src, "");
+#else
+    infop = opencl_init(NULL, "#include <kat_dev_execute.h>", 
+                        " -I" SRCDIR 
+                        " -I" SRCDIR "/../include " 
+                        " -DKAT_KERNEL=__kernel "
+                        " -DKAT_GLOBAL=__global "
+                        " -DKAT_UINT=uint" );
+#endif
+    CHECKERR(kern = clCreateKernel(infop->prog, kernelname, &err));
+    if (infop->wgsize > 64) infop->wgsize /= 2;
+    nthreads = infop->cores * infop->wgsize;
+    tests_sz = ntests * sizeof(*tests);
+    CHECKERR(tests_dev = clCreateBuffer(infop->ctx, CL_MEM_READ_WRITE|CL_MEM_USE_HOST_PTR, tests_sz, tests, &err));
+    CHECK(clEnqueueWriteBuffer(infop->cmdq, tests_dev, CL_TRUE, 0, tests_sz, tests, 0, 0, 0));
+    CHECK(clSetKernelArg(kern, 0, sizeof(cl_mem), (void*)&tests_dev));
+    CHECK(clSetKernelArg(kern, 1, sizeof(cl_uint), (void*)&cl_ntests));
+    printf("queuing kernel for %lu threads with %lu work group size, %u tests\n",
+	   (unsigned long)nthreads, (unsigned long)infop->wgsize, cl_ntests);
+    CHECK(clEnqueueNDRangeKernel(infop->cmdq, kern, 1, 0, &nthreads, &infop->wgsize, 0, 0, 0));
+    CHECK(clFinish(infop->cmdq));
+    CHECK(clEnqueueReadBuffer(infop->cmdq, tests_dev, CL_TRUE, 0, tests_sz, tests, 0, 0, 0));
+    CHECK(clReleaseMemObject(tests_dev));
+    CHECK(clReleaseKernel(kern));
+    opencl_done(infop);
+}
diff --git a/examples/kat_opencl_kernel.ocl b/examples/kat_opencl_kernel.ocl
new file mode 100644
index 0000000..867e9af
--- /dev/null
+++ b/examples/kat_opencl_kernel.ocl
@@ -0,0 +1,38 @@
+/*
+Copyright 2010-2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#include "kat.h"
+
+#define KAT_KERNEL __kernel
+#define KAT_GLOBAL __global
+#define KAT_UINT uint
+
+#include "kat_dev_execute.h"
diff --git a/examples/kat_vectors b/examples/kat_vectors
new file mode 100644
index 0000000..cafa286
--- /dev/null
+++ b/examples/kat_vectors
@@ -0,0 +1,83 @@
+# For each generator, we test:  gen(0, 0), gen(fff, fff) and gen(ctr=digits_of_pi, key=more_digits_of_pi).
+# Ignoring endianness, these are the first few hexdigits of pi:
+# 243F6A88 85A308D3 13198A2E 03707344 A4093822 299F31D0 082EFA98 EC4E6C89 452821E6 38D01377 BE5466CF 34E90C6C C0AC29B7 C97C50DD 3F84D5B5 B5470917 9216D5D9 8979FB1BD
+#
+#nameNxW  R  CTR                                 KEY                                   EXPECTED
+# 
+aesni4x32 10 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000   d44be966 3b2c8aef 59fa4c88 2e2b34ca
+aesni4x32 10 ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff 00000000 00000000   0f68399f cc680a67 4cbd230d 816d2e23
+aesni4x32 10 243f6a88 85a308d3 13198a2e 03707344 a4093822 299f31d0 082efa98 ec4e6c89   ca693cbf 134a4f64 965e0cfd 5217a28f
+# also test AESNI with the test vector from FIPS197
+aesni4x32 10 33221100 77665544 bbaa9988 ffeeddcc 03020100 07060504 0b0a0908 0f0e0d0c   d8e0c469 30047b6a 80b7cdd8 5ac5b470
+#
+ars4x32 10 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000   8d73ee19 506401ef 13c2dbe4 0cbe9c0d
+ars4x32 10 243f6a88 85a308d3 13198a2e 03707344 a4093822 299f31d0 082efa98 ec4e6c89   a516e7d6 8357ad74 5b59b3ec 8763fff3
+ars4x32 10 ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff 00000000 00000000   bb3743b1 9f635551 ecbc87fc a19478a9
+#
+philox2x32 7 00000000 00000000 00000000   257a3673 cd26be2a
+philox2x32 7 ffffffff ffffffff ffffffff   ab302c4d 3dc9d239
+philox2x32 7 243f6a88 85a308d3 13198a2e   bedbbe6b e4c770b3
+philox2x32 10 00000000 00000000 00000000   ff1dae59 6cd10df2
+philox2x32 10 ffffffff ffffffff ffffffff   2c3f628b ab4fd7ad
+philox2x32 10 243f6a88 85a308d3 13198a2e   dd7ce038 f62a4c12
+#
+philox4x32 7 00000000 00000000 00000000 00000000 00000000 00000000   5f6fb709 0d893f64 4f121f81 4f730a48
+philox4x32 7 ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff   5207ddc2 45165e59 4d8ee751 8c52f662
+philox4x32 7 243f6a88 85a308d3 13198a2e 03707344 a4093822 299f31d0   4dfccaba 190a87f0 c47362ba b6b5242a
+philox4x32 10 00000000 00000000 00000000 00000000 00000000 00000000   6627e8d5 e169c58d bc57ac4c 9b00dbd8
+philox4x32 10 ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff   408f276d 41c83b0e a20bc7c6 6d5451fd
+philox4x32 10 243f6a88 85a308d3 13198a2e 03707344 a4093822 299f31d0   d16cfe09 94fdcceb 5001e420 24126ea1
+#
+philox2x64 7 0000000000000000 0000000000000000 0000000000000000   b41da69fbfefc666 511e9ce1a5534056
+philox2x64 7 ffffffffffffffff ffffffffffffffff ffffffffffffffff   a4696cc04462015d 724782dae17169e9
+philox2x64 7 243f6a8885a308d3 13198a2e03707344 a4093822299f31d0   98ed1534392bf372 67528b1568882fd5
+philox2x64 10 0000000000000000 0000000000000000 0000000000000000   ca00a0459843d731 66c24222c9a845b5
+philox2x64 10 ffffffffffffffff ffffffffffffffff ffffffffffffffff   65b021d60cd8310f 4d02f3222f86df20
+philox2x64 10 243f6a8885a308d3 13198a2e03707344 a4093822299f31d0   0a5e742c2997341c b0f883d38000de5d
+#
+philox4x64 7 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000   5dc8ee6268ec62cd 139bc570b6c125a0 84d6deb4fb65f49e aff7583376d378c2
+philox4x64 7 ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff   071dd84367903154 48e2bbdc722b37d1 6afa9890bb89f76c 9194c8d8ada56ac7
+philox4x64 7 243f6a8885a308d3 13198a2e03707344 a4093822299f31d0 082efa98ec4e6c89 452821e638d01377 be5466cf34e90c6c   513a366704edf755 f05d9924c07044d3 bef2cb9cbea74c6c 8db948de4caa1f8a
+philox4x64 10 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000   16554d9eca36314c db20fe9d672d0fdc d7e772cee186176b 7e68b68aec7ba23b
+philox4x64 10 ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff   87b092c3013fe90b 438c3c67be8d0224 9cc7d7c69cd777b6 a09caebf594f0ba0
+philox4x64 10 243f6a8885a308d3 13198a2e03707344 a4093822299f31d0 082efa98ec4e6c89 452821e638d01377 be5466cf34e90c6c   a528f45403e61d95 38c72dbd566e9788 a5a1610e72fd18b5 57bd43b5e52b7fe6
+#
+threefry2x32 13 00000000 00000000 00000000 00000000 9d1c5ec6 8bd50731
+threefry2x32 13 ffffffff ffffffff ffffffff ffffffff fd36d048 2d17272c
+threefry2x32 13 243f6a88 85a308d3 13198a2e 03707344 ba3e4725 f27d669e
+threefry2x32 20 00000000 00000000 00000000 00000000   6b200159 99ba4efe
+threefry2x32 20 ffffffff ffffffff ffffffff ffffffff   1cb996fc bb002be7
+threefry2x32 20 243f6a88 85a308d3 13198a2e 03707344   c4923a9c 483df7a0
+threefry2x32 32 00000000 00000000 00000000 00000000 cee3d47e a23dfd5c
+threefry2x32 32 ffffffff ffffffff ffffffff ffffffff 6e2fe0d0 b1b76f82
+threefry2x32 32 243f6a88 85a308d3 13198a2e 03707344 e2827716 c3c05cdf
+#
+threefry4x32 13 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 531c7e4f 39491ee5 2c855a92 3d6abf9a
+threefry4x32 13 ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c4189358 1c9cc83a d5881c67 6a0a89e0
+threefry4x32 13 243f6a88 85a308d3 13198a2e 03707344 a4093822 299f31d0 082efa98 ec4e6c89 4aa71d8f 734738c2 431fc6a8 ae6debf1
+threefry4x32 20 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000   9c6ca96a e17eae66 fc10ecd4 5256a7d8
+threefry4x32 20 ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff   2a881696 57012287 f6c7446e a16a6732
+threefry4x32 20 243f6a88 85a308d3 13198a2e 03707344 a4093822 299f31d0 082efa98 ec4e6c89   59cd1dbb b8879579 86b5d00c ac8b6d84
+threefry4x32 72 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 93171da6 9220326d b392b7b1 ff58a002
+threefry4x32 72 ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff 60743f3d 9961e684 aab21c34 8c65fb7d
+threefry4x32 72 243f6a88 85a308d3 13198a2e 03707344 a4093822 299f31d0 082efa98 ec4e6c89 09930adf 7f27bd55 9ed68ce1 97f803f6
+#
+threefry2x64 13 0000000000000000 0000000000000000 0000000000000000 0000000000000000 f167b032c3b480bd e91f9fee4b7a6fb5
+threefry2x64 13 ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ccdec5c917a874b1 4df53abca26ceb01
+threefry2x64 13 243f6a8885a308d3 13198a2e03707344 a4093822299f31d0 082efa98ec4e6c89 c3aac71561042993 3fe7ae8801aff316
+threefry2x64 20 0000000000000000 0000000000000000 0000000000000000 0000000000000000   c2b6e3a8c2c69865 6f81ed42f350084d
+threefry2x64 20 ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff   e02cb7c4d95d277a d06633d0893b8b68
+threefry2x64 20 243f6a8885a308d3 13198a2e03707344 a4093822299f31d0 082efa98ec4e6c89   263c7d30bb0f0af1 56be8361d3311526
+threefry2x64 32 0000000000000000 0000000000000000 0000000000000000 0000000000000000 38ba854d7f13cfb3 d02fca729d54fadc
+threefry2x64 32 ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff 6b532f4f6e288646 0388f1ec135ee18e
+threefry2x64 32 243f6a8885a308d3 13198a2e03707344 a4093822299f31d0 082efa98ec4e6c89 dad492f32efbd0c4 b6d7d0cd1f193e84
+#
+threefry4x64 13 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 4071fabee1dc8e05 02ed3113695c9c62 397311b5b89f9d49 e21292c3258024bc
+threefry4x64 13 ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff 7eaed935479722b5 90994358c429f31c 496381083e07a75b 627ed0d746821121
+threefry4x64 13 243f6a8885a308d3 13198a2e03707344 a4093822299f31d0 082efa98ec4e6c89 452821e638d01377 be5466cf34e90c6c c0ac29b7c97c50dd 3f84d5b5b5470917 4361288ef9c1900c 8717291521782833 0d19db18c20cf47e a0b41d63ac8581e5
+threefry4x64 20 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000   09218ebde6c85537 55941f5266d86105 4bd25e16282434dc ee29ec846bd2e40b
+ threefry4x64 20 ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff 29c24097942bba1b 0371bbfb0f6f4e11 3c231ffa33f83a1c cd29113fde32d168
+threefry4x64 20 243f6a8885a308d3 13198a2e03707344 a4093822299f31d0 082efa98ec4e6c89 452821e638d01377 be5466cf34e90c6c be5466cf34e90c6c c0ac29b7c97c50dd   a7e8fde591651bd9 baafd0c30138319b 84a5c1a729e685b9 901d406ccebc1ba4
+threefry4x64 72 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 94eeea8b1f2ada84 adf103313eae6670 952419a1f4b16d53 d83f13e63c9f6b11
+threefry4x64 72 ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff 11518c034bc1ff4c 193f10b8bcdcc9f7 d024229cb58f20d8 563ed6e48e05183f
+threefry4x64 72 243f6a8885a308d3 13198a2e03707344 a4093822299f31d0 082efa98ec4e6c89 452821e638d01377 be5466cf34e90c6c be5466cf34e90c6c c0ac29b7c97c50dd acf412ccaa3b2270 c9e99bd53f2e9173 43dad469dc825948 fbb19d06c8a2b4dc
diff --git a/examples/old_kat_vectors b/examples/old_kat_vectors
new file mode 100644
index 0000000..d658726
--- /dev/null
+++ b/examples/old_kat_vectors
@@ -0,0 +1,5339 @@
+#Generated by gentests.py and then running parsefail
+# 
+# Unfortunately, these kat_vectors don't exercise the bits of KEY very well,
+# so we have a new set in ./kat_vectors that is both smaller and
+# (we think) better.
+#
+# We keep these around because the extensive Crush tests reported in
+# the Random123 paper were all done with generators that satisfied
+# *these* kat_vectors.  It is reassuring to be able to verify
+# that future versions of the library satisfy the same kat_vectors.
+#
+#nameNxW    R CTR                 KEY        EXPECTED
+philox2x32  7 00000001 00000000   00000001   dd304d50 12e4d653
+philox2x32  7 00000000 00000001   00000001   2c4a4855 9199e69b
+philox2x32  7 00000000 ffffffff   00000001   6d2698e6 b701a038
+philox2x32  7 00000000 80000000   00000001   800bb214 33f68d84
+philox2x32  7 243f6a88 85a308d3   00000001   5e8c7db7 fe555fa5
+philox2x32  7 13198a2e 03707344   00000001   8c1ec904 8e580829
+philox2x32  7 a4093822 299f31d0   00000001   057c044a 7aafdd03
+philox2x32  7 082efa98 ec4e6c89   00000001   5a522bef 4f71ff9b
+philox2x32  7 452821e6 38d01377   00000001   5dbe9036 c71bfb6f
+philox2x32  7 be5466cf 34e90c6c   00000001   f8ce43da 5d07a3bc
+philox2x32 10 00000001 00000000   00000001   df873210 f52df537
+philox2x32 10 00000000 00000001   00000001   7ed26ce8 86c7f618
+philox2x32 10 00000000 ffffffff   00000001   319f09f6 8e11e823
+philox2x32 10 00000000 80000000   00000001   b004c3a1 5aaa7aab
+philox2x32 10 243f6a88 85a308d3   00000001   249cdc9c 4f745808
+philox2x32 10 13198a2e 03707344   00000001   7fe8940c 5164f5d3
+philox2x32 10 a4093822 299f31d0   00000001   9fa9cccc da4e7ee4
+philox2x32 10 082efa98 ec4e6c89   00000001   749e4ccd 6b4efa58
+philox2x32 10 452821e6 38d01377   00000001   e352771f 210baeaa
+philox2x32 10 be5466cf 34e90c6c   00000001   4d2a7213 d84561e4
+philox2x64  7 0000000000000001 0000000000000000   0000000000000001   6731c5bf26de72d3 adb0404961332fbe
+philox2x64  7 0000000000000000 0000000000000001   0000000000000001   88c0f355559817df 613b0c0682da5d16
+philox2x64  7 0000000000000000 ffffffffffffffff   0000000000000001   ef60e579e0cc8308 d5de9d9bf11b57ce
+philox2x64  7 0000000000000000 8000000000000000   0000000000000001   f05773bd9ddff049 600bdd92470c8940
+philox2x64  7 243f6a8885a308d3 13198a2e03707344   0000000000000001   a96599d377733423 d1c51f3aa6d13b8c
+philox2x64  7 a4093822299f31d0 082efa98ec4e6c89   0000000000000001   81a0e4d3c158a51a 5e20f98aff4f692c
+philox2x64  7 452821e638d01377 be5466cf34e90c6c   0000000000000001   e9fdf171af72db90 1ed074cb2bbc90c1
+philox2x64 10 0000000000000001 0000000000000000   0000000000000001   d9942a5c25dce933 512c1502dbacf1a2
+philox2x64 10 0000000000000000 0000000000000001   0000000000000001   9d42f8da0c592ba8 626786f6b2c510b0
+philox2x64 10 0000000000000000 ffffffffffffffff   0000000000000001   2d7c99d63b91dec2 0e13046ba2a2a7e6
+philox2x64 10 0000000000000000 8000000000000000   0000000000000001   0a1c7400c97c2506 845e4df70479d69f
+philox2x64 10 243f6a8885a308d3 13198a2e03707344   0000000000000001   9da663796aaa8b69 a04cf817aceac82d
+philox2x64 10 a4093822299f31d0 082efa98ec4e6c89   0000000000000001   0bde60d810e6cfcd ed2f63ae6019fd5a
+philox4x32  7 00000001 00000000 00000000 00000000   00000001 00000000   6b3257c3 820c5486 4de08b66 8771d665
+philox4x32  7 00000000 00000001 00000000 00000000   00000001 00000000   03dd87e3 e457f6e9 36c1ef7a 2c08abd7
+philox4x32  7 00000000 00000000 00000001 00000000   00000001 00000000   7b95d061 973a01c3 34a7320a b948ba2b
+philox4x32  7 00000000 00000000 00000000 00000001   00000001 00000000   ec3a83e6 1b8a97b3 d62f2558 2bbefc0b
+philox4x32  7 00000000 ffffffff 00000000 00000000   00000001 00000000   a84bdb23 ad074f5c d009bbed dc77d86c
+philox4x32  7 00000000 80000000 00000000 00000000   00000001 00000000   fee842f9 4ab3aed6 d83a3a74 6166acec
+philox4x32  7 00000000 00000000 ffffffff 00000000   00000001 00000000   9d9941e5 c454b1a9 292e9032 012e7a5b
+philox4x32  7 00000000 00000000 80000000 00000000   00000001 00000000   450f5c67 5e4f567e 3e5ae48e eca744c7
+philox4x32  7 00000000 00000000 00000000 ffffffff   00000001 00000000   700b66cd 833b8af0 e955c344 17781353
+philox4x32  7 00000000 00000000 00000000 80000000   00000001 00000000   f5dec550 d08482a9 09e2e568 c08a2602
+philox4x32  7 243f6a88 85a308d3 13198a2e 03707344   00000001 00000000   64803f9b acd38b4b 5ea00643 770c3921
+philox4x32  7 a4093822 299f31d0 082efa98 ec4e6c89   00000001 00000000   477d1496 cd0263d3 fa87a887 a1a13750
+philox4x32  7 452821e6 38d01377 be5466cf 34e90c6c   00000001 00000000   3c182998 851c52ae 22df9a24 805a4e26
+philox4x32  7 00000001 00000000 00000000 00000000   00000000 00000001   4582d3b2 11884435 1c51f335 56b76cad
+philox4x32  7 00000000 00000001 00000000 00000000   00000000 00000001   824469c3 e2b3aee2 f27d3e79 69e5de86
+philox4x32  7 00000000 00000000 00000001 00000000   00000000 00000001   c8cc99de 36b6acce c7fde4e2 b954b1f0
+philox4x32  7 00000000 00000000 00000000 00000001   00000000 00000001   d02f5ec7 f0673bf6 027bec46 779e7874
+philox4x32  7 00000000 ffffffff 00000000 00000000   00000000 00000001   55a94893 5824e089 0aacd579 d69ce6fb
+philox4x32  7 00000000 80000000 00000000 00000000   00000000 00000001   bed1d713 08c60b2d f16241e5 37b110de
+philox4x32  7 00000000 00000000 ffffffff 00000000   00000000 00000001   a44a8fd2 10e92201 f15f62ac e00f43b6
+philox4x32  7 00000000 00000000 80000000 00000000   00000000 00000001   096862a9 6755b23c 3e211f07 49799dc7
+philox4x32  7 00000000 00000000 00000000 ffffffff   00000000 00000001   189beecf e053c60b bbd309b7 6c7a7794
+philox4x32  7 00000000 00000000 00000000 80000000   00000000 00000001   deb89556 c991d089 09e16ad6 15a24b57
+philox4x32  7 243f6a88 85a308d3 13198a2e 03707344   00000000 00000001   3eb0cda8 1c3550e7 2541d05d 068d381c
+philox4x32  7 a4093822 299f31d0 082efa98 ec4e6c89   00000000 00000001   13818be6 633e77bb 6d135b5b a3b20aa0
+philox4x32  7 452821e6 38d01377 be5466cf 34e90c6c   00000000 00000001   b3735496 aa6cda09 0d72df0b b961e99a
+philox4x32  7 00000001 00000000 00000000 00000000   00000000 ffffffff   b5c9dc53 0f8b9936 5dfd28f4 80f4c67d
+philox4x32  7 00000000 00000001 00000000 00000000   00000000 ffffffff   993b616b d3aba408 076593da a2999568
+philox4x32  7 00000000 00000000 00000001 00000000   00000000 ffffffff   f891827e 3b2f7ecf 41cbeeb4 596c72b8
+philox4x32  7 00000000 00000000 00000000 00000001   00000000 ffffffff   5eddf390 c16f5ad8 5480b946 92b74eb2
+philox4x32  7 00000000 ffffffff 00000000 00000000   00000000 ffffffff   41e41234 eac57ab3 3565428b 0ae4d890
+philox4x32  7 00000000 80000000 00000000 00000000   00000000 ffffffff   9bbbefb2 69155b0d 59124dbf 5fa21593
+philox4x32  7 00000000 00000000 ffffffff 00000000   00000000 ffffffff   bb2d9138 e2aea83c 735542fd 142578c1
+philox4x32  7 00000000 00000000 80000000 00000000   00000000 ffffffff   b9bb52fe d06f257f b5079c8f 0490d30e
+philox4x32  7 00000000 00000000 00000000 ffffffff   00000000 ffffffff   793416be 37270805 fb649c02 68a4e7c2
+philox4x32  7 00000000 00000000 00000000 80000000   00000000 ffffffff   0e6e511e 8e7045fa d56a0e60 f8e94c17
+philox4x32  7 243f6a88 85a308d3 13198a2e 03707344   00000000 ffffffff   80fda6c5 33db1407 042deee8 0dec8a67
+philox4x32  7 a4093822 299f31d0 082efa98 ec4e6c89   00000000 ffffffff   55a400f8 90e13684 1ad7c6c6 fdfdd335
+philox4x32  7 452821e6 38d01377 be5466cf 34e90c6c   00000000 ffffffff   9ea5c780 92dfd935 5f5021d0 891581d8
+philox4x32  7 00000001 00000000 00000000 00000000   00000000 80000000   5a134bed 542bab82 21429fcd 677a1dd3
+philox4x32  7 00000000 00000001 00000000 00000000   00000000 80000000   819bfdaa 2584def1 af9ca218 0a2ef133
+philox4x32  7 00000000 00000000 00000001 00000000   00000000 80000000   d7854663 74abe06e dd8f4d3c b7f52230
+philox4x32  7 00000000 00000000 00000000 00000001   00000000 80000000   0d5576d6 d37a4b50 2d544d55 33f654d6
+philox4x32  7 00000000 ffffffff 00000000 00000000   00000000 80000000   db5de1d1 534479e1 fae88f56 c66f402b
+philox4x32  7 00000000 80000000 00000000 00000000   00000000 80000000   4cd24250 9291c73f 39429688 83707553
+philox4x32  7 00000000 00000000 ffffffff 00000000   00000000 80000000   6b227dcf b5bf2a3a c60d00b8 c0e04288
+philox4x32  7 00000000 00000000 80000000 00000000   00000000 80000000   56ddb529 b18488a9 63f467c6 a689a8ad
+philox4x32  7 00000000 00000000 00000000 ffffffff   00000000 80000000   414ea6b4 083011b4 08bc62cb 76d8fb76
+philox4x32  7 00000000 00000000 00000000 80000000   00000000 80000000   323abc61 28b9f4ce 59d8d353 01a9cf42
+philox4x32  7 243f6a88 85a308d3 13198a2e 03707344   00000000 80000000   2040eb58 f609f646 bbf37f20 5d76b5f9
+philox4x32  7 a4093822 299f31d0 082efa98 ec4e6c89   00000000 80000000   f9440a22 337100bb 1845d9c8 2736ad6d
+philox4x32  7 452821e6 38d01377 be5466cf 34e90c6c   00000000 80000000   b30a1fd9 3149f07f 59ede6aa 95d62ce2
+philox4x32 10 00000001 00000000 00000000 00000000   00000001 00000000   ac08141b dfc5ccbe 79c07a47 a7f66093
+philox4x32 10 00000000 00000001 00000000 00000000   00000001 00000000   833ff8dc 225c963c 232b88b3 0b334b07
+philox4x32 10 00000000 00000000 00000001 00000000   00000001 00000000   07071c12 428264b6 3909104b 6da2bda2
+philox4x32 10 00000000 00000000 00000000 00000001   00000001 00000000   127bee41 1e047488 48842b20 0a393496
+philox4x32 10 00000000 ffffffff 00000000 00000000   00000001 00000000   04e2eae1 463cc999 e7786310 65b3dc49
+philox4x32 10 00000000 80000000 00000000 00000000   00000001 00000000   34a4d61d 340e4017 f6945830 e9f52b96
+philox4x32 10 00000000 00000000 ffffffff 00000000   00000001 00000000   fb0905e2 78378790 ca37926b cdf58cfa
+philox4x32 10 00000000 00000000 80000000 00000000   00000001 00000000   f2e15c7d 3fedcd99 90046f6c 6657f0ca
+philox4x32 10 00000000 00000000 00000000 ffffffff   00000001 00000000   f50c9398 b36cdab2 436bdc89 cc49431b
+philox4x32 10 00000000 00000000 00000000 80000000   00000001 00000000   dde26e4e 17666f3b fc1f5b3a 83ac805d
+philox4x32 10 243f6a88 85a308d3 13198a2e 03707344   00000001 00000000   38527b8f fad9a48c 20e675c0 f2fea26a
+philox4x32 10 a4093822 299f31d0 082efa98 ec4e6c89   00000001 00000000   fb9877f8 482895e2 60b01453 198ea67b
+philox4x32 10 452821e6 38d01377 be5466cf 34e90c6c   00000001 00000000   f7b7fa0a 8d970e2c 205c9c76 83b16ce5
+philox4x32 10 00000001 00000000 00000000 00000000   00000000 00000001   ccf3076a 6306f434 bea71965 d96fe48a
+philox4x32 10 00000000 00000001 00000000 00000000   00000000 00000001   532f1322 36c890fb 6504b937 07bbfef7
+philox4x32 10 00000000 00000000 00000001 00000000   00000000 00000001   7f6c13ff 114b2447 0550eced ea1fc805
+philox4x32 10 00000000 00000000 00000000 00000001   00000000 00000001   96b27e8c 28826d0f 66d958ef 081509dc
+philox4x32 10 00000000 ffffffff 00000000 00000000   00000000 00000001   00e94a67 3524f44e 22995230 bb54df1e
+philox4x32 10 00000000 80000000 00000000 00000000   00000000 00000001   ce1afc4e 4fbf97a1 6110bee9 a559be2f
+philox4x32 10 00000000 00000000 ffffffff 00000000   00000000 00000001   576241af d3b45bee 619bd94d 15dd8793
+philox4x32 10 00000000 00000000 80000000 00000000   00000000 00000001   d9da65af eced57ba c34d2661 91fe931f
+philox4x32 10 00000000 00000000 00000000 ffffffff   00000000 00000001   36241728 4d42c858 fea737d6 49f40347
+philox4x32 10 00000000 00000000 00000000 80000000   00000000 00000001   0436a39b 31be9efa 6abd0c76 e7a68f83
+philox4x32 10 243f6a88 85a308d3 13198a2e 03707344   00000000 00000001   126514c3 d1898b69 da2707b3 6e6fb436
+philox4x32 10 a4093822 299f31d0 082efa98 ec4e6c89   00000000 00000001   1c28fa3f 8c5bf977 bb989783 0c1a3737
+philox4x32 10 452821e6 38d01377 be5466cf 34e90c6c   00000000 00000001   ac87a8c1 f240abdb add6c012 68a32a78
+philox4x32 10 00000001 00000000 00000000 00000000   00000000 ffffffff   473ab778 330bacc0 acd5fc9a 5ede76b3
+philox4x32 10 00000000 00000001 00000000 00000000   00000000 ffffffff   cdfbd51c caae5f2e 10739cfc 79e95162
+philox4x32 10 00000000 00000000 00000001 00000000   00000000 ffffffff   6c4b0e80 357e5a94 3255445d 6f433f0b
+philox4x32 10 00000000 00000000 00000000 00000001   00000000 ffffffff   5c4ecd0c 64c12cf9 8f9fb4c8 40c4a01f
+philox4x32 10 00000000 ffffffff 00000000 00000000   00000000 ffffffff   5f9c47aa 19861d86 ff2be81d 4c7db17e
+philox4x32 10 00000000 80000000 00000000 00000000   00000000 ffffffff   715a87cf f966a7f0 3e6dd95f e884e2fd
+philox4x32 10 00000000 00000000 ffffffff 00000000   00000000 ffffffff   07678411 9e524307 ba634e67 94ee8cb7
+philox4x32 10 00000000 00000000 80000000 00000000   00000000 ffffffff   b6f48e28 f2fa9414 00b64f66 4810cdb4
+philox4x32 10 00000000 00000000 00000000 ffffffff   00000000 ffffffff   9f18bb20 62161056 7ea8c028 4c01fc6e
+philox4x32 10 00000000 00000000 00000000 80000000   00000000 ffffffff   2a460458 0a2709e5 47bc9115 0f96d8af
+philox4x32 10 243f6a88 85a308d3 13198a2e 03707344   00000000 ffffffff   08f7720c 845ee9e0 502ccd3d a9a00e27
+philox4x32 10 a4093822 299f31d0 082efa98 ec4e6c89   00000000 ffffffff   9fcce05d 837d3f3c 5cdf3e61 db2544c0
+philox4x32 10 452821e6 38d01377 be5466cf 34e90c6c   00000000 ffffffff   72ce44b3 b44f9b78 49af0267 726813ac
+philox4x32 10 00000001 00000000 00000000 00000000   00000000 80000000   e29b9f84 2903d316 42a1f56f 1ad02eab
+philox4x32 10 00000000 00000001 00000000 00000000   00000000 80000000   94f419f8 1116c316 99f2fa30 bc048ad6
+philox4x32 10 00000000 00000000 00000001 00000000   00000000 80000000   488b0258 9eea6420 afe7062e 768f5637
+philox4x32 10 00000000 00000000 00000000 00000001   00000000 80000000   dbec6d70 69cea528 f7e22262 2e9f3e8f
+philox4x32 10 00000000 ffffffff 00000000 00000000   00000000 80000000   905ee550 c7520e9a 9af9d0ad 69b97e98
+philox4x32 10 00000000 80000000 00000000 00000000   00000000 80000000   1b89d963 0defe9af 60c9d3fb 3cfae97d
+philox4x32 10 00000000 00000000 ffffffff 00000000   00000000 80000000   601b5460 fe29678b 54510a02 c72ed094
+philox4x32 10 00000000 00000000 80000000 00000000   00000000 80000000   ae56ca02 7609ba67 25abd7df 46ce39a3
+philox4x32 10 00000000 00000000 00000000 ffffffff   00000000 80000000   09812238 47b8470d 3e0d0a26 92d96c9a
+philox4x32 10 00000000 00000000 00000000 80000000   00000000 80000000   f7a0b371 e51dc93d 56ce135d 1d4b5580
+philox4x32 10 243f6a88 85a308d3 13198a2e 03707344   00000000 80000000   63675d2c 422d7c4d 3145d30d 3bce33a4
+philox4x32 10 a4093822 299f31d0 082efa98 ec4e6c89   00000000 80000000   aa74e81c c9ddb97b 2c2cd881 9390c78d
+philox4x32 10 452821e6 38d01377 be5466cf 34e90c6c   00000000 80000000   94ca5566 14924b2f 28214292 59faeaee
+philox4x64  7 0000000000000001 0000000000000000 0000000000000000 0000000000000000   0000000000000001 0000000000000000   a84f99f224f4cfbc 274efe46f0cc52a1 d63e2ec6fdb168a0 075123647506ee27
+philox4x64  7 0000000000000000 0000000000000001 0000000000000000 0000000000000000   0000000000000001 0000000000000000   eb2bf03a13a1a1e3 56e7cbc84c87ec48 fc506dd46338cd70 46a7a39083ba8489
+philox4x64  7 0000000000000000 0000000000000000 0000000000000001 0000000000000000   0000000000000001 0000000000000000   86b74b62e856f3a5 6053b9cb9274a289 4c9b75ec697ea72a a4fa1ef2ff24eae2
+philox4x64  7 0000000000000000 0000000000000000 0000000000000000 0000000000000001   0000000000000001 0000000000000000   1ca5eced2c7cecd3 b1fcae7585130dc7 c0ea46280e16a2db 6d92ea22c9ad7e25
+philox4x64  7 0000000000000000 ffffffffffffffff 0000000000000000 0000000000000000   0000000000000001 0000000000000000   ae055a5045f32faf bde85edbfd887cd4 5f0dce5cb463d2c3 20e5732feedfc102
+philox4x64  7 0000000000000000 8000000000000000 0000000000000000 0000000000000000   0000000000000001 0000000000000000   716bdad82151f110 991e7ed663cda695 b538a61037fa6f7b a33b549af210f319
+philox4x64  7 0000000000000000 0000000000000000 ffffffffffffffff 0000000000000000   0000000000000001 0000000000000000   ef3b00173dbfc105 d4d3378c1dbc8f3a 72bdd51b26d942f9 c6a1f46aa8d6fa9f
+philox4x64  7 0000000000000000 0000000000000000 8000000000000000 0000000000000000   0000000000000001 0000000000000000   dd0b5de968e6c5c0 6b78797808867752 0b5a7aaa79ea06bc dcc26e1185e4d95c
+philox4x64  7 0000000000000000 0000000000000000 0000000000000000 ffffffffffffffff   0000000000000001 0000000000000000   8cf59bc42e37b57e 0b6a6e082f3ea65d 694ad11a471343a5 50da2ec78fbb66e9
+philox4x64  7 0000000000000000 0000000000000000 0000000000000000 8000000000000000   0000000000000001 0000000000000000   2d9ca006eea83ab2 b6d94afceb4e5ebb 5ade5ab35910b0f8 94ead24dc22e07da
+philox4x64  7 243f6a8885a308d3 13198a2e03707344 a4093822299f31d0 082efa98ec4e6c89   0000000000000001 0000000000000000   e08b7a33c86d98e0 33aecd4f91b264b4 b91a88e80a219875 8f2a9dd82780854e
+philox4x64  7 0000000000000001 0000000000000000 0000000000000000 0000000000000000   0000000000000000 0000000000000001   f5e3223b00116da4 134e2e4b93c349cd 05df4d3d10fe52a4 0cd4fc5f2a6d4605
+philox4x64  7 0000000000000000 0000000000000001 0000000000000000 0000000000000000   0000000000000000 0000000000000001   fa4318f3ddcbae0c d3822c687b18fbc9 fd6efa89fdf4def3 8a6e2b28c7000d51
+philox4x64  7 0000000000000000 0000000000000000 0000000000000001 0000000000000000   0000000000000000 0000000000000001   b71736800cb19cc2 465e0b290594a26f 7d6461c312bbb3d2 ab712cce37a08231
+philox4x64  7 0000000000000000 0000000000000000 0000000000000000 0000000000000001   0000000000000000 0000000000000001   e30b487d004a7790 a0b8ddb3235e7b2c ed4d107445bed6b8 0014a98401e1c79a
+philox4x64  7 0000000000000000 ffffffffffffffff 0000000000000000 0000000000000000   0000000000000000 0000000000000001   cffa905456214f44 5d92693cc6a563b6 5c156d9fc4514d26 f681331c9095f9d0
+philox4x64  7 0000000000000000 8000000000000000 0000000000000000 0000000000000000   0000000000000000 0000000000000001   af633db845c5b35a 3c904c74d24a616d e058112dc1e3d77f 2b486a45fc44757c
+philox4x64  7 0000000000000000 0000000000000000 ffffffffffffffff 0000000000000000   0000000000000000 0000000000000001   51ec481f11ca6d9c 5af7aee63bbdef91 fd9219ace01ca886 371274c68c106c72
+philox4x64  7 0000000000000000 0000000000000000 8000000000000000 0000000000000000   0000000000000000 0000000000000001   84368e022df11716 9babf90b2d734275 ac2b18faf4b70450 74df64b2f1d44a4d
+philox4x64  7 0000000000000000 0000000000000000 0000000000000000 ffffffffffffffff   0000000000000000 0000000000000001   a07151c1a2096454 f1a175c7c4d40fa0 cdde1a462fb4d017 3e717c0b191a75e2
+philox4x64  7 0000000000000000 0000000000000000 0000000000000000 8000000000000000   0000000000000000 0000000000000001   9059231222d6b54a c10c9276b5d8b864 3c6d04e46e384088 df9c4a211d0df316
+philox4x64  7 243f6a8885a308d3 13198a2e03707344 a4093822299f31d0 082efa98ec4e6c89   0000000000000000 0000000000000001   0046825443639c50 1c1a53c10fd6a39a 204525814c2bf9ca a2a8a25b1cfe992e
+philox4x64  7 0000000000000001 0000000000000000 0000000000000000 0000000000000000   0000000000000000 ffffffffffffffff   bd030c40201c0f70 8de0448c8d01b695 e0a3f6bb1516887d 3b17f2a2ac08146f
+philox4x64  7 0000000000000000 0000000000000001 0000000000000000 0000000000000000   0000000000000000 ffffffffffffffff   0adde99a7834d3be 381bec931b9ad649 a08229387d02463a dcbe1ac725399cee
+philox4x64  7 0000000000000000 0000000000000000 0000000000000001 0000000000000000   0000000000000000 ffffffffffffffff   f3e86513a4e70e1e 186f958e53095344 3b971ea6c9a81548 dfafa60231e08d3d
+philox4x64  7 0000000000000000 0000000000000000 0000000000000000 0000000000000001   0000000000000000 ffffffffffffffff   e0f90c7455a782a6 c552e4d263923300 22a0948ea7972b4d e387aec33822523c
+philox4x64  7 0000000000000000 ffffffffffffffff 0000000000000000 0000000000000000   0000000000000000 ffffffffffffffff   52a6a2780e51d7b2 3673bb81e995d85d b12dd4b6eb72d6f0 2e1909106a07a8cf
+philox4x64  7 0000000000000000 8000000000000000 0000000000000000 0000000000000000   0000000000000000 ffffffffffffffff   c189106b490bd2fb 4f6d1dd470fdfbcb a7bd83ddeb0a1dab 045aa110f8f52c40
+philox4x64  7 0000000000000000 0000000000000000 ffffffffffffffff 0000000000000000   0000000000000000 ffffffffffffffff   9df8faedb521ef1e f1a120f15e091886 1d4689c5d1779200 829ef45f53092914
+philox4x64  7 0000000000000000 0000000000000000 8000000000000000 0000000000000000   0000000000000000 ffffffffffffffff   767a5736b7d348aa efa73968ff5c0444 ede6adac4e8d4795 c366d2c5357e0bae
+philox4x64  7 0000000000000000 0000000000000000 0000000000000000 ffffffffffffffff   0000000000000000 ffffffffffffffff   cd2b03d43747bf25 b1e1d178f4476f31 2f04f2e652429d2b 3f18ff71fe2b1d96
+philox4x64  7 0000000000000000 0000000000000000 0000000000000000 8000000000000000   0000000000000000 ffffffffffffffff   ae8dd2e4f571e95e cbe84fe3c5c7a22e 41958d43eb183198 be273430e39dbb2d
+philox4x64  7 243f6a8885a308d3 13198a2e03707344 a4093822299f31d0 082efa98ec4e6c89   0000000000000000 ffffffffffffffff   6eaea4468842c579 61c993f6deddb8b7 32da2c8845639fea 1caa39d539440f84
+philox4x64  7 0000000000000001 0000000000000000 0000000000000000 0000000000000000   0000000000000000 8000000000000000   fdb4c38370017081 37f20a8cded028e1 07b6b7e9b441ca64 afcbb7db096a11ba
+philox4x64  7 0000000000000000 0000000000000001 0000000000000000 0000000000000000   0000000000000000 8000000000000000   77f9f02957fe399f e7bcf2e59a9c0014 60c025f137ddfdef 6e2d9e24f28b054f
+philox4x64  7 0000000000000000 0000000000000000 0000000000000001 0000000000000000   0000000000000000 8000000000000000   b1dffa9d26bb2bba a686af9fbc2fccca 7703523657b1f11d d1b1117279f5e560
+philox4x64  7 0000000000000000 0000000000000000 0000000000000000 0000000000000001   0000000000000000 8000000000000000   1ee64cc049af47d4 130f44d0d6cb90b1 8aa65fb519e08c1d 5fd2902cdd9c4b21
+philox4x64  7 0000000000000000 ffffffffffffffff 0000000000000000 0000000000000000   0000000000000000 8000000000000000   5eda50bb0f6bf36b a61c3684ea63eac2 72577567a117738a 4c2f885c923f8a50
+philox4x64  7 0000000000000000 8000000000000000 0000000000000000 0000000000000000   0000000000000000 8000000000000000   62c4b12d2d6f4f43 7ac09a7a5f78a347 eaeceb4a5d707d81 ddc693c1152ca863
+philox4x64  7 0000000000000000 0000000000000000 ffffffffffffffff 0000000000000000   0000000000000000 8000000000000000   19b89a3a0ebfc396 851393a4eb9800e1 60219574c2cfdf14 99835afa209b5a5f
+philox4x64  7 0000000000000000 0000000000000000 8000000000000000 0000000000000000   0000000000000000 8000000000000000   fccd9c83d6bef5c8 495bdfc8980206ec ef6b8861816b556e 6750afa3867363f8
+philox4x64  7 0000000000000000 0000000000000000 0000000000000000 ffffffffffffffff   0000000000000000 8000000000000000   7793fdab901f40e2 0770db0a6546aebc 9414169ccb08ea4f 8e4107ded7e6fe22
+philox4x64  7 0000000000000000 0000000000000000 0000000000000000 8000000000000000   0000000000000000 8000000000000000   2e2e8b89c1ecd349 a7a9e220db717f97 39841e145bee64ec af899729cd317ab5
+philox4x64  7 243f6a8885a308d3 13198a2e03707344 a4093822299f31d0 082efa98ec4e6c89   0000000000000000 8000000000000000   c4b6db2cafd36b63 1c10b197be4bb8f9 6ccf699079df5db9 7426268167ef98ce
+philox4x64 10 0000000000000001 0000000000000000 0000000000000000 0000000000000000   0000000000000001 0000000000000000   4db6a27b756282df d944fa03babe0e2f 27f872e577060d32 07f697696a0482a2
+philox4x64 10 0000000000000000 0000000000000001 0000000000000000 0000000000000000   0000000000000001 0000000000000000   bbf738c62d3516b3 7faed3926853226b c175b4809d5da923 7a77f6c341cec732
+philox4x64 10 0000000000000000 0000000000000000 0000000000000001 0000000000000000   0000000000000001 0000000000000000   05c42b05ff257651 83431181197ac359 57be92230b7ced59 75073635c66ba84b
+philox4x64 10 0000000000000000 0000000000000000 0000000000000000 0000000000000001   0000000000000001 0000000000000000   8047f8778e0c2a18 da91ab55df266829 5a8b0adc29d708de d2ba72e9a5f8ca1f
+philox4x64 10 0000000000000000 ffffffffffffffff 0000000000000000 0000000000000000   0000000000000001 0000000000000000   82a98ead15250c68 dca14805e19e01bc 7bc58279fe853ad2 4366ca54a9015751
+philox4x64 10 0000000000000000 8000000000000000 0000000000000000 0000000000000000   0000000000000001 0000000000000000   5103c647343f9197 a979e24146bddfdb a38a5cea6c70d5ea 69dbc87d145feea6
+philox4x64 10 0000000000000000 0000000000000000 ffffffffffffffff 0000000000000000   0000000000000001 0000000000000000   f5cfc4e5a58df07a 6fcdcdd4c962f858 9924d9474dfddf2f f5da8c63141ebe42
+philox4x64 10 0000000000000000 0000000000000000 8000000000000000 0000000000000000   0000000000000001 0000000000000000   0dd2beab02c79d3b 85868d969fc6d557 da416fa7e6efe9a5 97aa0f5a07837f3c
+philox4x64 10 0000000000000000 0000000000000000 0000000000000000 ffffffffffffffff   0000000000000001 0000000000000000   e3de832dbefa4f20 9d8e387753e80554 3f942711126531ab cbac59ef8a8facfc
+philox4x64 10 0000000000000000 0000000000000000 0000000000000000 8000000000000000   0000000000000001 0000000000000000   4aea7a2d45ef6b56 9d39b7727af2b34d 710b6c665646f6f3 4c266cbd9914407c
+philox4x64 10 243f6a8885a308d3 13198a2e03707344 a4093822299f31d0 082efa98ec4e6c89   0000000000000001 0000000000000000   c306b6f69047b4d3 50a141b88a52f51f c1255f575c5efa40 e9ec1af0c5fd12e7
+philox4x64 10 0000000000000001 0000000000000000 0000000000000000 0000000000000000   0000000000000000 0000000000000001   d037f8c3f9a1d176 c057419b4c210765 abf13115117b0065 7bae035dea6ea5c0
+philox4x64 10 0000000000000000 0000000000000001 0000000000000000 0000000000000000   0000000000000000 0000000000000001   5f173f0fc52df6ee 8e8e9c9688aed89e abdae5020b0cb568 48f2b1309feded50
+philox4x64 10 0000000000000000 0000000000000000 0000000000000001 0000000000000000   0000000000000000 0000000000000001   fc2c9c4d9ddaf082 2897652bb49dcae3 baaf4535a51ae093 97a0e3db84f4deda
+philox4x64 10 0000000000000000 0000000000000000 0000000000000000 0000000000000001   0000000000000000 0000000000000001   c403b0ed4f4a56bc 4c10205602338da5 44026cf45fd8c7b3 c85ab2577611200a
+philox4x64 10 0000000000000000 ffffffffffffffff 0000000000000000 0000000000000000   0000000000000000 0000000000000001   a6b0eb43d4242e83 7eb0571197ef0432 595c5ac87ab02ffd 3065201e77c7719d
+philox4x64 10 0000000000000000 8000000000000000 0000000000000000 0000000000000000   0000000000000000 0000000000000001   06fc1ee830dac525 9dbd142788436b9f 5142f5068c0d523b 3a272b75f6fc8d07
+philox4x64 10 0000000000000000 0000000000000000 ffffffffffffffff 0000000000000000   0000000000000000 0000000000000001   05ea68c26fda314d bfedb09469623669 b5d90ab786f50a8a 91ab55b3322fa08b
+philox4x64 10 0000000000000000 0000000000000000 8000000000000000 0000000000000000   0000000000000000 0000000000000001   fc66f7ed4a80f91a 26321095c87d4593 b7c965253657e98f 9ec415f9832e5a5b
+philox4x64 10 0000000000000000 0000000000000000 0000000000000000 ffffffffffffffff   0000000000000000 0000000000000001   0a3c7e26094a08d3 2adb8f85553814c3 2e4991e78f66b1e3 15eb86339cfe3169
+philox4x64 10 0000000000000000 0000000000000000 0000000000000000 8000000000000000   0000000000000000 0000000000000001   fc1433efdbd33e21 808ce83adf2a77f8 96ee08d151e9bb53 e8f4c80839491335
+philox4x64 10 243f6a8885a308d3 13198a2e03707344 a4093822299f31d0 082efa98ec4e6c89   0000000000000000 0000000000000001   43e89f25ef59b052 d2502d395a99506d d5c391a65ae822ed 5b049af4d110de73
+philox4x64 10 0000000000000001 0000000000000000 0000000000000000 0000000000000000   0000000000000000 ffffffffffffffff   72d6708a2e33f32e cdb7d7084ea573af 7afec3befacf7bfa 973f3514d6cb878e
+philox4x64 10 0000000000000000 0000000000000001 0000000000000000 0000000000000000   0000000000000000 ffffffffffffffff   78f3fb4b2e6c3b4c 8ff0de70dc8d4d15 7ff4df00521f1fa6 562c6ab0f46014a6
+philox4x64 10 0000000000000000 0000000000000000 0000000000000001 0000000000000000   0000000000000000 ffffffffffffffff   2387991c4ec7757a b5386352c0608d17 4e1652d424a4e695 0a51cf9337aa092d
+philox4x64 10 0000000000000000 0000000000000000 0000000000000000 0000000000000001   0000000000000000 ffffffffffffffff   e6ffec0a65d827e2 4eda0ce957436ecb 044226366e687984 c563403773ea4586
+philox4x64 10 0000000000000000 ffffffffffffffff 0000000000000000 0000000000000000   0000000000000000 ffffffffffffffff   610763733452c58c 782a055afc18c1b2 9a6f11fd37bba6b7 7230bfcc8a5f81b8
+philox4x64 10 0000000000000000 8000000000000000 0000000000000000 0000000000000000   0000000000000000 ffffffffffffffff   0227ecdbbe8da04d c78fb8f0b412a18b 2c95e618493dbf20 b3ecdbb8c2ef1600
+philox4x64 10 0000000000000000 0000000000000000 ffffffffffffffff 0000000000000000   0000000000000000 ffffffffffffffff   9dd4b8f423be915e 43cd5fa1ab84838c 9bdd5bc7b21d5372 ae35cb6a3d94c1fe
+philox4x64 10 0000000000000000 0000000000000000 8000000000000000 0000000000000000   0000000000000000 ffffffffffffffff   127083ab716caa91 96939425b7ef4758 da6dbf8bfa9da76b f4a9720c1af9e0e2
+philox4x64 10 0000000000000000 0000000000000000 0000000000000000 ffffffffffffffff   0000000000000000 ffffffffffffffff   3609d7e72c5bf1ea e82604f634f7ad33 8b6c9f114736edf2 83dcba394e12f45a
+philox4x64 10 0000000000000000 0000000000000000 0000000000000000 8000000000000000   0000000000000000 ffffffffffffffff   cc2e3611b341b443 d975353c6baa07e8 4d0e70419e907e10 8a4dceea01380ae1
+philox4x64 10 243f6a8885a308d3 13198a2e03707344 a4093822299f31d0 082efa98ec4e6c89   0000000000000000 ffffffffffffffff   7abbd897f6d97f60 a35c61aae7c5a341 939a3dd4f55b2e11 aca6e644802e2b83
+philox4x64 10 0000000000000001 0000000000000000 0000000000000000 0000000000000000   0000000000000000 8000000000000000   95bf028be28ca5e8 80a06590a6c807a8 1770cb520415bcba fecac07f93e9ed1f
+philox4x64 10 0000000000000000 0000000000000001 0000000000000000 0000000000000000   0000000000000000 8000000000000000   6aa3e3e8852b4cc4 eeed4a014947ee9a b347eb5bb39cbcee f048d1bc0fc2b4f2
+philox4x64 10 0000000000000000 0000000000000000 0000000000000001 0000000000000000   0000000000000000 8000000000000000   86b7bbf896316096 dbf03c3291b0e8e4 f7baf2cce7820704 6901641d0e74863d
+philox4x64 10 0000000000000000 0000000000000000 0000000000000000 0000000000000001   0000000000000000 8000000000000000   a22ba98c8739f11c 75840cee16d70e1a 59211c4195818dbb 26fd6d1dd8b4d938
+philox4x64 10 0000000000000000 ffffffffffffffff 0000000000000000 0000000000000000   0000000000000000 8000000000000000   b7a2f1ee3064f644 5bfed8c7b0e09ec9 d7ef6479063d9862 b94fd6571ec99673
+philox4x64 10 0000000000000000 8000000000000000 0000000000000000 0000000000000000   0000000000000000 8000000000000000   237b3d9bab6c147b 15cd10a376b3ba31 e9fca9f852456a7c 011d03871fbcd351
+philox4x64 10 0000000000000000 0000000000000000 ffffffffffffffff 0000000000000000   0000000000000000 8000000000000000   c2af8ad32fd4de40 210519dc3915cf8d 96d7b5aaac61e656 bf890353d0e4f406
+philox4x64 10 0000000000000000 0000000000000000 8000000000000000 0000000000000000   0000000000000000 8000000000000000   deabe779ac4018bf c244924f18a0bd57 b2c176463cbcdd44 924c5c68f49efe61
+philox4x64 10 0000000000000000 0000000000000000 0000000000000000 ffffffffffffffff   0000000000000000 8000000000000000   65084d38b2079128 26278aadff5dc8a0 12b70968c429186c 3008f3151aec94d0
+philox4x64 10 0000000000000000 0000000000000000 0000000000000000 8000000000000000   0000000000000000 8000000000000000   4e5204874c73745c b416cb6ef85bba05 87819def7e3f93a0 cc38b1dbe3d9d6e9
+philox4x64 10 243f6a8885a308d3 13198a2e03707344 a4093822299f31d0 082efa98ec4e6c89   0000000000000000 8000000000000000   79b0012fa80e5ad7 15b81f9bf706cc38 6586b6802ea9ba1c 1bba4ac847739bca
+threefry2x32 13 00000001 00000000 00000001 00000000 d460839c ee5930d0
+threefry2x32 13 00000000 00000001 00000001 00000000 ea891938 471d995c
+threefry2x32 13 00000000 ffffffff 00000001 00000000 c5e14858 bd7ab190
+threefry2x32 13 00000000 00000000 00000001 00000000 61ec2d44 95654539
+threefry2x32 13 85a308d3 03707344 00000001 00000000 ade2ae91 0d6ab23f
+threefry2x32 13 299f31d0 ec4e6c89 00000001 00000000 c2e3fb83 a2106e59
+threefry2x32 13 38d01377 34e90c6c 00000001 00000000 56362c81 144ef0e3
+threefry2x32 13 00000001 00000000 00000000 00000001 2ecbda41 982f3323
+threefry2x32 13 00000000 00000001 00000000 00000001 8f4c4973 dc866a7b
+threefry2x32 13 00000000 ffffffff 00000000 00000001 83ecfb53 4e25540b
+threefry2x32 13 00000000 00000000 00000000 00000001 7a3f4f18 3aaa1dff
+threefry2x32 13 85a308d3 03707344 00000000 00000001 7fac70ab 49b0b079
+threefry2x32 13 299f31d0 ec4e6c89 00000000 00000001 244c0e5d 55ae15dd
+threefry2x32 13 38d01377 34e90c6c 00000000 00000001 da2d36d7 adebf45a
+threefry2x32 13 00000001 00000000 00000000 ffffffff d858c2ae a698929b
+threefry2x32 13 00000000 00000001 00000000 ffffffff 5da8f6fe 123c29d0
+threefry2x32 13 00000000 ffffffff 00000000 ffffffff 0e22aa9d 848090af
+threefry2x32 13 00000000 00000000 00000000 ffffffff dace553b b8265b65
+threefry2x32 13 85a308d3 03707344 00000000 ffffffff 35aa55c0 223e1b40
+threefry2x32 13 299f31d0 ec4e6c89 00000000 ffffffff 88771755 0a184a3e
+threefry2x32 13 38d01377 34e90c6c 00000000 ffffffff 4b6695da c4532c17
+threefry2x32 13 00000001 00000000 00000000 00000000 fdddad3b cb69c1c2
+threefry2x32 13 00000000 00000001 00000000 00000000 4050e5b0 f6bca927
+threefry2x32 13 00000000 ffffffff 00000000 00000000 09c64211 b4e160b6
+threefry2x32 13 00000000 00000000 00000000 00000000 9d1c5ec6 8bd50731
+threefry2x32 13 85a308d3 03707344 00000000 00000000 a985a4e2 fb491ec4
+threefry2x32 13 299f31d0 ec4e6c89 00000000 00000000 cb484bfb e0dc3459
+threefry2x32 13 38d01377 34e90c6c 00000000 00000000 40f75b24 29b5d523
+threefry2x32 20 00000001 00000000 00000001 00000000 0ec66872 2d84e7b1
+threefry2x32 20 00000000 00000001 00000001 00000000 e8de5dc1 461e61e4
+threefry2x32 20 00000000 ffffffff 00000001 00000000 74100836 8f0cc08e
+threefry2x32 20 00000000 00000000 00000001 00000000 b435a7fa 96eb2785
+threefry2x32 20 85a308d3 03707344 00000001 00000000 6d2173ca 182d2d62
+threefry2x32 20 299f31d0 ec4e6c89 00000001 00000000 053c52c2 a5fd076c
+threefry2x32 20 38d01377 34e90c6c 00000001 00000000 0aff7206 20c6b1ad
+threefry2x32 20 00000001 00000000 00000000 00000001 4233dc34 3df99f6b
+threefry2x32 20 00000000 00000001 00000000 00000001 74298876 fc8d8048
+threefry2x32 20 00000000 ffffffff 00000000 00000001 45ecd01c effc9cbd
+threefry2x32 20 00000000 00000000 00000000 00000001 1e3f1835 6e752082
+threefry2x32 20 85a308d3 03707344 00000000 00000001 985706f1 39ede42b
+threefry2x32 20 299f31d0 ec4e6c89 00000000 00000001 9b255e86 836367b6
+threefry2x32 20 38d01377 34e90c6c 00000000 00000001 eacbd1c2 ddac6576
+threefry2x32 20 00000001 00000000 00000000 ffffffff 0a5c684a 89734cfb
+threefry2x32 20 00000000 00000001 00000000 ffffffff ce53f10b 4253b296
+threefry2x32 20 00000000 ffffffff 00000000 ffffffff dd0a4b72 e61f3a35
+threefry2x32 20 00000000 00000000 00000000 ffffffff b139a81a 35816875
+threefry2x32 20 85a308d3 03707344 00000000 ffffffff 09658c63 5ab84cbb
+threefry2x32 20 299f31d0 ec4e6c89 00000000 ffffffff c2662ee4 dae195a6
+threefry2x32 20 38d01377 34e90c6c 00000000 ffffffff f57c9b26 3333f9c2
+threefry2x32 20 00000001 00000000 00000000 00000000 508efb2c c0de3f32
+threefry2x32 20 00000000 00000001 00000000 00000000 375f238f cddb151d
+threefry2x32 20 00000000 ffffffff 00000000 00000000 2c4e0437 e1e32d13
+threefry2x32 20 00000000 00000000 00000000 00000000 6b200159 99ba4efe
+threefry2x32 20 85a308d3 03707344 00000000 00000000 8a7778e0 ba02812d
+threefry2x32 20 299f31d0 ec4e6c89 00000000 00000000 46367996 5ebc6941
+threefry2x32 20 38d01377 34e90c6c 00000000 00000000 0bfcf941 19b8c9e3
+threefry2x64 13  0000000000000001 0000000000000000  0000000000000001 0000000000000000  969384cc85e4f376 7483ab72c7895c74
+threefry2x64 13  0000000000000000 0000000000000001  0000000000000001 0000000000000000  a834c98cc31101ea e55d6fcaae6c2303
+threefry2x64 13  0000000000000000 ffffffffffffffff  0000000000000001 0000000000000000  ea4631bbb7e357da 76431283a854ad4d
+threefry2x64 13  0000000000000000 8000000000000000  0000000000000001 0000000000000000  aebb048a42880e06 0a82fc96ab46703c
+threefry2x64 13  243f6a8885a308d3 13198a2e03707344  0000000000000001 0000000000000000  f76fab3d0c8c5f58 86a6582b195612d5
+threefry2x64 13  a4093822299f31d0 082efa98ec4e6c89  0000000000000001 0000000000000000  4f56a3dab3651001 cfcdd06f8b5b9839
+threefry2x64 13  452821e638d01377 be5466cf34e90c6c  0000000000000001 0000000000000000  c9fc81ac4243db43 901cfd8fd5f300fd
+threefry2x64 13  0000000000000001 0000000000000000  0000000000000000 0000000000000001  4b4b7208689c3b75 a55414a2d2ee4bb0
+threefry2x64 13  0000000000000000 0000000000000001  0000000000000000 0000000000000001  eebbc15aa98df672 e9a144a8c6cee1fd
+threefry2x64 13  0000000000000000 ffffffffffffffff  0000000000000000 0000000000000001  4205e3c81cc0d747 ff9bee23459767fe
+threefry2x64 13  0000000000000000 8000000000000000  0000000000000000 0000000000000001  3adcde8fdf34b6ea b181e52876711403
+threefry2x64 13  243f6a8885a308d3 13198a2e03707344  0000000000000000 0000000000000001  f32f578de3c86db0 33cba85c3ab32ac2
+threefry2x64 13  a4093822299f31d0 082efa98ec4e6c89  0000000000000000 0000000000000001  8b991da7e77d5ad2 e0f66c743d048332
+threefry2x64 13  452821e638d01377 be5466cf34e90c6c  0000000000000000 0000000000000001  b3839b7842aaabdf 1b09812c3734f7d5
+threefry2x64 13  0000000000000001 0000000000000000  0000000000000000 ffffffffffffffff  d734efd44c40a6b0 c200d10c90840acf
+threefry2x64 13  0000000000000000 0000000000000001  0000000000000000 ffffffffffffffff  0a54d24f2de3fe2d c94935795a374f71
+threefry2x64 13  0000000000000000 ffffffffffffffff  0000000000000000 ffffffffffffffff  b05f97bf8112bd85 1e2febcdf6f2434b
+threefry2x64 13  0000000000000000 8000000000000000  0000000000000000 ffffffffffffffff  706e230984d25125 1a7fb58e33062071
+threefry2x64 13  243f6a8885a308d3 13198a2e03707344  0000000000000000 ffffffffffffffff  e79c1e9a9638a94b 0696219fb2391fdd
+threefry2x64 13  a4093822299f31d0 082efa98ec4e6c89  0000000000000000 ffffffffffffffff  63b3b5d7355ee523 98226c5378d79481
+threefry2x64 13  452821e638d01377 be5466cf34e90c6c  0000000000000000 ffffffffffffffff  a74b06d5dd1e77bc 78ace2fdf2fd1130
+threefry2x64 13  0000000000000001 0000000000000000  0000000000000000 8000000000000000  695a084cd9107249 7c2a145f7a914169
+threefry2x64 13  0000000000000000 0000000000000001  0000000000000000 8000000000000000  426ce9a41d6e3b44 1f406838af84fc50
+threefry2x64 13  0000000000000000 ffffffffffffffff  0000000000000000 8000000000000000  29fb2a250cb2be0e ab5d1d66743cb621
+threefry2x64 13  0000000000000000 8000000000000000  0000000000000000 8000000000000000  8f5f55581e428ef4 6f50999482bb0717
+threefry2x64 13  243f6a8885a308d3 13198a2e03707344  0000000000000000 8000000000000000  8132c0494d3a1024 1310f2c1f743337e
+threefry2x64 13  a4093822299f31d0 082efa98ec4e6c89  0000000000000000 8000000000000000  f0ac482e2f8c554e 0c250a7c2bd56d1f
+threefry2x64 13  452821e638d01377 be5466cf34e90c6c  0000000000000000 8000000000000000  c74c1599c6d82c7f 7d40926bdb8a9b86
+threefry2x64 20 0000000000000001 0000000000000000   0000000000000001 0000000000000000   76f8c465410f1b27 d44c2d67df04a330
+threefry2x64 20 0000000000000000 0000000000000001   0000000000000001 0000000000000000   a8049503dd3079f9 3d5ddeed522c0ede
+threefry2x64 20 0000000000000000 ffffffffffffffff   0000000000000001 0000000000000000   5e53259aa4258a55 0e8f38c365945d25
+threefry2x64 20 0000000000000000 8000000000000000   0000000000000001 0000000000000000   361a8be863ffb732 a4b1a2eeb58e74d0
+threefry2x64 20 243f6a8885a308d3 13198a2e03707344   0000000000000001 0000000000000000   fd6ae8f34dc33d12 038c18af4795d22a
+threefry2x64 20 a4093822299f31d0 082efa98ec4e6c89   0000000000000001 0000000000000000   7ac8bd11c1f70ff1 74639e2ca058255e
+threefry2x64 20 452821e638d01377 be5466cf34e90c6c   0000000000000001 0000000000000000   ed08efd2a170bbd7 0dd10199b9784662
+threefry2x64 20 0000000000000001 0000000000000000   0000000000000000 0000000000000001   ff2b78b5ab41d8da f62ebfe044d2eda8
+threefry2x64 20 0000000000000000 0000000000000001   0000000000000000 0000000000000001   5f3a212f661cd020 986a3ba650b3fe67
+threefry2x64 20 0000000000000000 ffffffffffffffff   0000000000000000 0000000000000001   6a6b93a7418044f4 87b8ba42ce2ff9bf
+threefry2x64 20 0000000000000000 8000000000000000   0000000000000000 0000000000000001   bae5e0296c6a477d 0fbb8a9f8a4ce574
+threefry2x64 20 243f6a8885a308d3 13198a2e03707344   0000000000000000 0000000000000001   99cec910eff5ec80 590c31d2679b536f
+threefry2x64 20 a4093822299f31d0 082efa98ec4e6c89   0000000000000000 0000000000000001   02f8b55a501f2281 d76b4bf86e78c17a
+threefry2x64 20 452821e638d01377 be5466cf34e90c6c   0000000000000000 0000000000000001   85ed5f68252b8dad 94e7c2f00c87c774
+threefry2x64 20 0000000000000001 0000000000000000   0000000000000000 ffffffffffffffff   2315d2c0d1827ca7 6c9edc5ea9168247
+threefry2x64 20 0000000000000000 0000000000000001   0000000000000000 ffffffffffffffff   e673b4093ab96a92 e6b9195814502ad9
+threefry2x64 20 0000000000000000 ffffffffffffffff   0000000000000000 ffffffffffffffff   617e1767c6bab4b3 9defeccc66ef5483
+threefry2x64 20 0000000000000000 8000000000000000   0000000000000000 ffffffffffffffff   64008223d83f51ea 703e62828caafe5c
+threefry2x64 20 243f6a8885a308d3 13198a2e03707344   0000000000000000 ffffffffffffffff   55c5791f5e6a445c 6244e287ceff815b
+threefry2x64 20 a4093822299f31d0 082efa98ec4e6c89   0000000000000000 ffffffffffffffff   69f5517074ffb421 364c6cb5114df09b
+threefry2x64 20 452821e638d01377 be5466cf34e90c6c   0000000000000000 ffffffffffffffff   8abfad0acf126feb 7e4838608dff93a6
+threefry2x64 20 0000000000000001 0000000000000000   0000000000000000 8000000000000000   f3113561b7808541 e1d6850fd01f03c8
+threefry2x64 20 0000000000000000 0000000000000001   0000000000000000 8000000000000000   1f254bdb6686f3f7 2defd1bc9a4e7d58
+threefry2x64 20 0000000000000000 ffffffffffffffff   0000000000000000 8000000000000000   becfaedd81933ce0 91105295132db554
+threefry2x64 20 0000000000000000 8000000000000000   0000000000000000 8000000000000000   08e7eef4615bbae3 16c446fef3ff2fa6
+threefry2x64 20 243f6a8885a308d3 13198a2e03707344   0000000000000000 8000000000000000   58af89abe6d07cab 12e1901ad854ba14
+threefry2x64 20 a4093822299f31d0 082efa98ec4e6c89   0000000000000000 8000000000000000   469ded4657b380b5 4e18d924d1d191f4
+threefry2x64 20 452821e638d01377 be5466cf34e90c6c   0000000000000000 8000000000000000   89983220cc01af30 756813c51f68660f
+threefry4x64 13 0000000000000001 0000000000000000 0000000000000000 0000000000000000   0000000000000001 0000000000000000 0000000000000000 0000000000000000   a6f9957bb320bd6e ef0a1039b8680652 fae787a45de5657b f9642457fdfcb48d
+threefry4x64 13 0000000000000000 0000000000000001 0000000000000000 0000000000000000   0000000000000001 0000000000000000 0000000000000000 0000000000000000   33a54b87b3cd8f2e 9fa6ecdbf563b5a8 931690edd16e1167 73f4cf17f6509ec7
+threefry4x64 13 0000000000000000 0000000000000000 0000000000000001 0000000000000000   0000000000000001 0000000000000000 0000000000000000 0000000000000000   b57fb4d862d825f6 5f5a8b05deb0f388 bdaf7ca748b32db5 dcc8a16110f45860
+threefry4x64 13 0000000000000000 0000000000000000 0000000000000000 0000000000000001   0000000000000001 0000000000000000 0000000000000000 0000000000000000   63afa273fd1e9e0c 97afe3fa44762e3b 2219a168a1c4a650 b5aa9e933220d0b6
+threefry4x64 13 0000000000000000 ffffffffffffffff 0000000000000000 0000000000000000   0000000000000001 0000000000000000 0000000000000000 0000000000000000   18ebd38f634db4d4 fe8a4b02116edcae dd968dbd012bb9b1 015735f374007b55
+threefry4x64 13 0000000000000000 8000000000000000 0000000000000000 0000000000000000   0000000000000001 0000000000000000 0000000000000000 0000000000000000   dc11f8adbd11b24a 791accb12bf2dec9 b3252ca2b3d45867 32583a89606cc095
+threefry4x64 13 0000000000000000 0000000000000000 ffffffffffffffff 0000000000000000   0000000000000001 0000000000000000 0000000000000000 0000000000000000   142fbf027471bec7 d4a21fe298e42da0 e1809cdb47379df7 895c488e4ce2e8e4
+threefry4x64 13 0000000000000000 0000000000000000 8000000000000000 0000000000000000   0000000000000001 0000000000000000 0000000000000000 0000000000000000   56233cf7c5050e03 138e50f0180f9432 77e5abc32171ead2 22156b3a4478058e
+threefry4x64 13 0000000000000000 0000000000000000 0000000000000000 ffffffffffffffff   0000000000000001 0000000000000000 0000000000000000 0000000000000000   b51f94a1964e29f4 73c3547be95bcf52 cd0980b164b47740 cb7a80706dda6cd4
+threefry4x64 13 0000000000000000 0000000000000000 0000000000000000 8000000000000000   0000000000000001 0000000000000000 0000000000000000 0000000000000000   6826fc7451e6c26c 9c945a480118b238 878fdb0ccf5287a2 b721878054b3e170
+threefry4x64 13 243f6a8885a308d3 13198a2e03707344 a4093822299f31d0 082efa98ec4e6c89   0000000000000001 0000000000000000 0000000000000000 0000000000000000   1450ad64afc5f2ed e276f0d9b36896cc 1bf54af66c1ea6e1 b75bf6b012256a2f
+threefry4x64 13 0000000000000001 0000000000000000 0000000000000000 0000000000000000   0000000000000000 0000000000000001 0000000000000000 0000000000000000   c0a579b6df85d3f0 732bf17e102f3503 e9ef8226f861b581 9c6323b1032ee103
+threefry4x64 13 0000000000000000 0000000000000001 0000000000000000 0000000000000000   0000000000000000 0000000000000001 0000000000000000 0000000000000000   419fb75d6279b45e 456c9bc33b2aa89b 6b9f17cbeaafb959 0f4d34c7bc2615dd
+threefry4x64 13 0000000000000000 0000000000000000 0000000000000001 0000000000000000   0000000000000000 0000000000000001 0000000000000000 0000000000000000   35dc176476fd83f7 11c97fffd44c6f08 803723f5c82c0c4c 915629678133f8d0
+threefry4x64 13 0000000000000000 0000000000000000 0000000000000000 0000000000000001   0000000000000000 0000000000000001 0000000000000000 0000000000000000   7b6e1a8f678caef4 db5a7994ef339ef5 b7aff2cabd5a0d5a a1b164b52ef2880c
+threefry4x64 13 0000000000000000 ffffffffffffffff 0000000000000000 0000000000000000   0000000000000000 0000000000000001 0000000000000000 0000000000000000   e335bf28c658f0a2 6dc44599a8dc94ac 17ce032c8be59e34 46bf9933175c2c84
+threefry4x64 13 0000000000000000 8000000000000000 0000000000000000 0000000000000000   0000000000000000 0000000000000001 0000000000000000 0000000000000000   a0ca6ff95e2395e3 f178163a7734c5a4 3fa3d6b89533b005 74ae65ed952f7779
+threefry4x64 13 0000000000000000 0000000000000000 ffffffffffffffff 0000000000000000   0000000000000000 0000000000000001 0000000000000000 0000000000000000   87043dbdc9710b4f 9257db04f6d3e197 385860312b4c2170 ce4cf41003912f85
+threefry4x64 13 0000000000000000 0000000000000000 8000000000000000 0000000000000000   0000000000000000 0000000000000001 0000000000000000 0000000000000000   7040ee2508a3b5f8 641da9784e15d9cb fd6425f2b65abfcd 52a998ee7e05bb87
+threefry4x64 13 0000000000000000 0000000000000000 0000000000000000 ffffffffffffffff   0000000000000000 0000000000000001 0000000000000000 0000000000000000   c435439eadf80e26 3d1d6a0cc0c5a1ff 6e0f4ab6ccc428e6 a01b294b56f911ca
+threefry4x64 13 0000000000000000 0000000000000000 0000000000000000 8000000000000000   0000000000000000 0000000000000001 0000000000000000 0000000000000000   c6a96a811e9e7967 246e0dde25ee2e41 4f2a463cafbc149d eed2f0dd7fb7e015
+threefry4x64 13 243f6a8885a308d3 13198a2e03707344 a4093822299f31d0 082efa98ec4e6c89   0000000000000000 0000000000000001 0000000000000000 0000000000000000   3eb1e2a9f11e2bf6 c4bbbb8f8b92a4f3 a2785db07b5e26e3 dfe2c344e871d170
+threefry4x64 13 0000000000000001 0000000000000000 0000000000000000 0000000000000000   0000000000000000 0000000000000000 0000000000000001 0000000000000000   94daba158dd2da48 f5e6c0b25edfef90 02dc9eadc3f11073 c6bc42a8d86e82e0
+threefry4x64 13 0000000000000000 0000000000000001 0000000000000000 0000000000000000   0000000000000000 0000000000000000 0000000000000001 0000000000000000   2f0dd3a02e097fe7 c478a58d8de77acd 432b1f1a4f0376d1 a8ffef5de8592b22
+threefry4x64 13 0000000000000000 0000000000000000 0000000000000001 0000000000000000   0000000000000000 0000000000000000 0000000000000001 0000000000000000   e145933082f42a2b 281a975a59959231 42e82c1fa3928ee2 ccc5c01c9c173ff6
+threefry4x64 13 0000000000000000 0000000000000000 0000000000000000 0000000000000001   0000000000000000 0000000000000000 0000000000000001 0000000000000000   98968fa4a639959e 31522da140cfa5f4 3925eef1f1df6024 8d364318e053e86b
+threefry4x64 13 0000000000000000 ffffffffffffffff 0000000000000000 0000000000000000   0000000000000000 0000000000000000 0000000000000001 0000000000000000   8b7a6424cd57bd36 0f14e72a776d9eba 5056bbff35bb2d8b 2bf2035a0f74457b
+threefry4x64 13 0000000000000000 8000000000000000 0000000000000000 0000000000000000   0000000000000000 0000000000000000 0000000000000001 0000000000000000   b98486865fe19a16 bbf02df5d0b6f14e 1d1d3db837473cfe 39d36d4ef6027d20
+threefry4x64 13 0000000000000000 0000000000000000 ffffffffffffffff 0000000000000000   0000000000000000 0000000000000000 0000000000000001 0000000000000000   4546fa00ed7ba2e7 b9598f5ffa69d1b5 2a31e21e7479956b 18b430b333a65956
+threefry4x64 13 0000000000000000 0000000000000000 8000000000000000 0000000000000000   0000000000000000 0000000000000000 0000000000000001 0000000000000000   7e3fc60c2ba2b532 42ecfe3256df67fd 12cc29eda1e8e628 476fa98b6c20dc0c
+threefry4x64 13 0000000000000000 0000000000000000 0000000000000000 ffffffffffffffff   0000000000000000 0000000000000000 0000000000000001 0000000000000000   0553dc3e29eb393e 4fcb860d74474ba2 a54bda273d90fa5e b2d09969a3e0781e
+threefry4x64 13 0000000000000000 0000000000000000 0000000000000000 8000000000000000   0000000000000000 0000000000000000 0000000000000001 0000000000000000   1b0d22708753d5a5 fe97c91941b129a0 43fde34d3a6b9581 684ee07a5d059bc6
+threefry4x64 13 243f6a8885a308d3 13198a2e03707344 a4093822299f31d0 082efa98ec4e6c89   0000000000000000 0000000000000000 0000000000000001 0000000000000000   c5ae23b6e14b65a0 1bb8c20cf54ee911 afd0f01436a88dc7 e27b950209d0e8ea
+threefry4x64 13 0000000000000001 0000000000000000 0000000000000000 0000000000000000   0000000000000000 0000000000000000 0000000000000000 0000000000000001   d6e0471854c36f95 024f53084350d59a a746f965db3779ab aec82c5a5a89448a
+threefry4x64 13 0000000000000000 0000000000000001 0000000000000000 0000000000000000   0000000000000000 0000000000000000 0000000000000000 0000000000000001   c5aa1f1c7ae358f3 97a8892135e7c1ef eb25fba1cb9a4c41 7a90abbd43261fa4
+threefry4x64 13 0000000000000000 0000000000000000 0000000000000001 0000000000000000   0000000000000000 0000000000000000 0000000000000000 0000000000000001   fb59e13f8bf1a7b6 3406ec6cdd6e2f1d 28d4622f7d272829 618f7c7e73507e00
+threefry4x64 13 0000000000000000 0000000000000000 0000000000000000 0000000000000001   0000000000000000 0000000000000000 0000000000000000 0000000000000001   641cb9a478c9a5f6 6bf494830fc3c197 836e085ed5dfb374 cbae065146b3e242
+threefry4x64 13 0000000000000000 ffffffffffffffff 0000000000000000 0000000000000000   0000000000000000 0000000000000000 0000000000000000 0000000000000001   31f44b90e71f66c9 2f3ba3de820f4650 9097c77cde234ac5 50340ce26229fabc
+threefry4x64 13 0000000000000000 8000000000000000 0000000000000000 0000000000000000   0000000000000000 0000000000000000 0000000000000000 0000000000000001   4e026822a87dee71 b4ab7f79ed3dfd4a 9429731fdb5c0a64 7706366fb9251512
+threefry4x64 13 0000000000000000 0000000000000000 ffffffffffffffff 0000000000000000   0000000000000000 0000000000000000 0000000000000000 0000000000000001   1949594f1d057a72 cbaea16559f04cb0 4a0ca9e5ad24f4cb db1f95560c87f79f
+threefry4x64 13 0000000000000000 0000000000000000 8000000000000000 0000000000000000   0000000000000000 0000000000000000 0000000000000000 0000000000000001   0f9ca509614863a7 615112fd34af4c67 408fd57c3fadb45b 1f229a09ca130ea9
+threefry4x64 13 0000000000000000 0000000000000000 0000000000000000 ffffffffffffffff   0000000000000000 0000000000000000 0000000000000000 0000000000000001   48b71c1ec5e0e1a7 61005d67d77283bd 7475cf1b42918462 9a47b84099cb8820
+threefry4x64 13 0000000000000000 0000000000000000 0000000000000000 8000000000000000   0000000000000000 0000000000000000 0000000000000000 0000000000000001   f744c0e233f14f37 ec52e887545bed98 75013191d39a68a5 b5107d5fbda31dba
+threefry4x64 13 243f6a8885a308d3 13198a2e03707344 a4093822299f31d0 082efa98ec4e6c89   0000000000000000 0000000000000000 0000000000000000 0000000000000001   07bfa94414046839 c9292f370d05ec10 e5abfd88ea69c29c e5694ea31b40917e
+threefry4x64 13 0000000000000001 0000000000000000 0000000000000000 0000000000000000   0000000000000000 ffffffffffffffff 0000000000000000 0000000000000000   5b1e5890fd4dddda 3bd7fe815d826da7 5cead66cc2d6cf4b 9f2b09ff30f4496e
+threefry4x64 13 0000000000000000 0000000000000001 0000000000000000 0000000000000000   0000000000000000 ffffffffffffffff 0000000000000000 0000000000000000   e6dcd7854a76f333 535299e0765eda14 a649fdda2cf305f4 601265889b4f49b7
+threefry4x64 13 0000000000000000 0000000000000000 0000000000000001 0000000000000000   0000000000000000 ffffffffffffffff 0000000000000000 0000000000000000   31ce59c9547701ce 442e5c98d58dd9e5 a4272c64230571fb 54d00283ad3869b8
+threefry4x64 13 0000000000000000 0000000000000000 0000000000000000 0000000000000001   0000000000000000 ffffffffffffffff 0000000000000000 0000000000000000   78e0555be3caa567 29fd32a8e78dfe2b d12e964c3bb4e95d 508ce2a099d1294a
+threefry4x64 13 0000000000000000 ffffffffffffffff 0000000000000000 0000000000000000   0000000000000000 ffffffffffffffff 0000000000000000 0000000000000000   9bfaa6924981503c 3839252d08d78e82 b5a318c512e81925 2c3df5629446cb3d
+threefry4x64 13 0000000000000000 8000000000000000 0000000000000000 0000000000000000   0000000000000000 ffffffffffffffff 0000000000000000 0000000000000000   39f7c8350c2fd966 a296554641bfa50f 2217077aa07b2a77 f4e41f63a9bbb3c4
+threefry4x64 13 0000000000000000 0000000000000000 ffffffffffffffff 0000000000000000   0000000000000000 ffffffffffffffff 0000000000000000 0000000000000000   8dad2651f0d59fc3 3fb4b008bf0c67ae 7a4958e5704b0e42 049189499fb9d713
+threefry4x64 13 0000000000000000 0000000000000000 8000000000000000 0000000000000000   0000000000000000 ffffffffffffffff 0000000000000000 0000000000000000   47ba2144a6d5593a 70cf55d5a21ced0c 7bae9fe35eedf169 5fa2bef1f0178e53
+threefry4x64 13 0000000000000000 0000000000000000 0000000000000000 ffffffffffffffff   0000000000000000 ffffffffffffffff 0000000000000000 0000000000000000   3481c43775a74a3d 594029c16094b2ac 4242c166d72c5e8a 47132e77e038a80f
+threefry4x64 13 0000000000000000 0000000000000000 0000000000000000 8000000000000000   0000000000000000 ffffffffffffffff 0000000000000000 0000000000000000   2583f96efb951f87 5c05dc0fad2a0640 2276fd3905536384 f52f698ab7c15254
+threefry4x64 13 243f6a8885a308d3 13198a2e03707344 a4093822299f31d0 082efa98ec4e6c89   0000000000000000 ffffffffffffffff 0000000000000000 0000000000000000   860b9848db0836a6 60e2cf66b950ac3a d9d93cc3d01c0bb8 0c39d9fca3179af4
+threefry4x64 13 0000000000000001 0000000000000000 0000000000000000 0000000000000000   0000000000000000 8000000000000000 0000000000000000 0000000000000000   0b97f6aec4194f29 f807cc683239c776 92336bc0d194833e 6af28b14847cbd25
+threefry4x64 13 0000000000000000 0000000000000001 0000000000000000 0000000000000000   0000000000000000 8000000000000000 0000000000000000 0000000000000000   d0bcda618f970ad7 23bf3f0b100b6b8e c0f43c6935f03f96 8567ff6ca9bb298a
+threefry4x64 13 0000000000000000 0000000000000000 0000000000000001 0000000000000000   0000000000000000 8000000000000000 0000000000000000 0000000000000000   952d67de8cc88100 b05aeba45473ada1 a12187872e534939 6bd07569c5c1384c
+threefry4x64 13 0000000000000000 0000000000000000 0000000000000000 0000000000000001   0000000000000000 8000000000000000 0000000000000000 0000000000000000   206a6c9947cd4059 ecb599e01e678611 d76e1a6ec72eed5b 9af53b23d20fdf5d
+threefry4x64 13 0000000000000000 ffffffffffffffff 0000000000000000 0000000000000000   0000000000000000 8000000000000000 0000000000000000 0000000000000000   4686adcda45f8e82 f7c04d3b241269f9 98c2c7452f1de0be 9c45ac8325862db6
+threefry4x64 13 0000000000000000 8000000000000000 0000000000000000 0000000000000000   0000000000000000 8000000000000000 0000000000000000 0000000000000000   1c1af5206f2ece54 f9bac132c72d711c a227149a44bda9d7 828db0a58587130c
+threefry4x64 13 0000000000000000 0000000000000000 ffffffffffffffff 0000000000000000   0000000000000000 8000000000000000 0000000000000000 0000000000000000   c0c6c3989f8a19c4 82ff34015e798fe5 1539e98a9cdce38a c98e62331c6329ff
+threefry4x64 13 0000000000000000 0000000000000000 8000000000000000 0000000000000000   0000000000000000 8000000000000000 0000000000000000 0000000000000000   36d9f5d821c1c83f e2db772b11f2f021 6ba03362c1c10994 8d8a339448474da9
+threefry4x64 13 0000000000000000 0000000000000000 0000000000000000 ffffffffffffffff   0000000000000000 8000000000000000 0000000000000000 0000000000000000   5225a064dbddca63 dec3c80ea3f20208 b04e786c1de1a6b1 86e5434fc1dc51cc
+threefry4x64 13 0000000000000000 0000000000000000 0000000000000000 8000000000000000   0000000000000000 8000000000000000 0000000000000000 0000000000000000   ccb716bd11cb6fe2 3dda97c9ec8c6199 23b4e9fc6557cb92 03ee97e50b557f80
+threefry4x64 13 243f6a8885a308d3 13198a2e03707344 a4093822299f31d0 082efa98ec4e6c89   0000000000000000 8000000000000000 0000000000000000 0000000000000000   cfc902fffa76fa1b 71feded34df89372 84bc39de7545239f a8a7257817796076
+threefry4x64 13 0000000000000001 0000000000000000 0000000000000000 0000000000000000   0000000000000000 0000000000000000 ffffffffffffffff 0000000000000000   43ac62ad40bb0dc8 f19797814ee9d712 bc733e88b4f4fc6f 8d88689a11c0e444
+threefry4x64 13 0000000000000000 0000000000000001 0000000000000000 0000000000000000   0000000000000000 0000000000000000 ffffffffffffffff 0000000000000000   87c9feb08a847950 19601bb00361a1e4 b08ea511608f3a79 e0682be6cff83767
+threefry4x64 13 0000000000000000 0000000000000000 0000000000000001 0000000000000000   0000000000000000 0000000000000000 ffffffffffffffff 0000000000000000   da75d515c7765562 a53632bf88383197 2ac07dd554ee8076 d5b5d9ca8fc4d7ef
+threefry4x64 13 0000000000000000 0000000000000000 0000000000000000 0000000000000001   0000000000000000 0000000000000000 ffffffffffffffff 0000000000000000   acacc47aec597245 5603e39ea0c435be faac042a22a85a33 def0f2feabb108fb
+threefry4x64 13 0000000000000000 ffffffffffffffff 0000000000000000 0000000000000000   0000000000000000 0000000000000000 ffffffffffffffff 0000000000000000   84ceb8a17a4d921d c34ea70e11cd714c cb778d241722ad54 b6f57011c04feafd
+threefry4x64 13 0000000000000000 8000000000000000 0000000000000000 0000000000000000   0000000000000000 0000000000000000 ffffffffffffffff 0000000000000000   17df51edc9093e45 ff21858aa5e3f88c 719738071c63ae9d f78bd7d434990a43
+threefry4x64 13 0000000000000000 0000000000000000 ffffffffffffffff 0000000000000000   0000000000000000 0000000000000000 ffffffffffffffff 0000000000000000   2e68fc7dfa5150a7 13b3e50898941ecf 67a61073ce21b66b 8ae48f8761ddb641
+threefry4x64 13 0000000000000000 0000000000000000 8000000000000000 0000000000000000   0000000000000000 0000000000000000 ffffffffffffffff 0000000000000000   13019c159fd18540 56b47f4ff862d77e f0525397b38f5659 06c701aa0b5f0ce7
+threefry4x64 13 0000000000000000 0000000000000000 0000000000000000 ffffffffffffffff   0000000000000000 0000000000000000 ffffffffffffffff 0000000000000000   120841cc984c8b5d 7ef7e0e47aa11b7f 427eccd66d8ca6a7 8c9c187c5a93f9d8
+threefry4x64 13 0000000000000000 0000000000000000 0000000000000000 8000000000000000   0000000000000000 0000000000000000 ffffffffffffffff 0000000000000000   5cd4de739c3025d4 8b7cba4515780d90 fcb10461e7262355 80cefb8eb218096a
+threefry4x64 13 243f6a8885a308d3 13198a2e03707344 a4093822299f31d0 082efa98ec4e6c89   0000000000000000 0000000000000000 ffffffffffffffff 0000000000000000   3138f3138e47b09b c3957d408434f8f8 f53e02d616b134e7 721029b2628b0497
+threefry4x64 13 0000000000000001 0000000000000000 0000000000000000 0000000000000000   0000000000000000 0000000000000000 8000000000000000 0000000000000000   de825ce58d5c1163 fcc32b1bf6dba058 23ad3d0d2f87e6d2 75e05c241fc71616
+threefry4x64 13 0000000000000000 0000000000000001 0000000000000000 0000000000000000   0000000000000000 0000000000000000 8000000000000000 0000000000000000   da20c7bc4e3d9707 5d92445c4891a513 e82592343e1ad0cd fe01a1f64d1e9a00
+threefry4x64 13 0000000000000000 0000000000000000 0000000000000001 0000000000000000   0000000000000000 0000000000000000 8000000000000000 0000000000000000   154c6525d00f11aa 05559415b1cb8a8c 030bb62025d53788 18030170eda486a4
+threefry4x64 13 0000000000000000 0000000000000000 0000000000000000 0000000000000001   0000000000000000 0000000000000000 8000000000000000 0000000000000000   31e3d5a16fc4baa7 aaeb4bc3b0a7054e 76338ce0989861b0 0c883d1d87da3197
+threefry4x64 13 0000000000000000 ffffffffffffffff 0000000000000000 0000000000000000   0000000000000000 0000000000000000 8000000000000000 0000000000000000   0003485836fb3812 6efa47e66ad4aaa9 dedbe1b07f5e2027 77013bbab7104b3a
+threefry4x64 13 0000000000000000 8000000000000000 0000000000000000 0000000000000000   0000000000000000 0000000000000000 8000000000000000 0000000000000000   1812be595dda0739 4e5a2fdb16c8947b e04cab5c91c3864a 1d1afd092303374a
+threefry4x64 13 0000000000000000 0000000000000000 ffffffffffffffff 0000000000000000   0000000000000000 0000000000000000 8000000000000000 0000000000000000   bfdadb9f36d8e4ea 5b422319060bf905 53ffcae0b8c7ca1c f6562ebd20777d5a
+threefry4x64 13 0000000000000000 0000000000000000 8000000000000000 0000000000000000   0000000000000000 0000000000000000 8000000000000000 0000000000000000   96d112d938bc7771 e3fe46aa2618ac2f 206673e37bda2625 af1ebed61abd839a
+threefry4x64 13 0000000000000000 0000000000000000 0000000000000000 ffffffffffffffff   0000000000000000 0000000000000000 8000000000000000 0000000000000000   c11769ceba44ff3f 1996279e3a7cd8b5 b0ce7ee3ee7555b6 7d932c7e563d7cc5
+threefry4x64 13 0000000000000000 0000000000000000 0000000000000000 8000000000000000   0000000000000000 0000000000000000 8000000000000000 0000000000000000   9eae02df80c59f3b 01dc7640aafa9fd8 9d5b7aa9f801ceb4 79d13e5608aedac7
+threefry4x64 13 243f6a8885a308d3 13198a2e03707344 a4093822299f31d0 082efa98ec4e6c89   0000000000000000 0000000000000000 8000000000000000 0000000000000000   dd81e5071213cb65 f95242bc69694579 ba58df28812f62ac 8fc5dcbc22f589f5
+threefry4x64 13 0000000000000001 0000000000000000 0000000000000000 0000000000000000   0000000000000000 0000000000000000 0000000000000000 ffffffffffffffff   706df8b143a55f67 ddff5e09840fa38c c879c4f524d998ba dc73a56cd4ae98bb
+threefry4x64 13 0000000000000000 0000000000000001 0000000000000000 0000000000000000   0000000000000000 0000000000000000 0000000000000000 ffffffffffffffff   78053349f166715d c14d62de2c740d61 71c3e7d81060b29a 21bc36b618c97a1b
+threefry4x64 13 0000000000000000 0000000000000000 0000000000000001 0000000000000000   0000000000000000 0000000000000000 0000000000000000 ffffffffffffffff   3c51fd1d7a0231a7 1c716c429b12d830 f98749855715755f d4928002384a27fa
+threefry4x64 13 0000000000000000 0000000000000000 0000000000000000 0000000000000001   0000000000000000 0000000000000000 0000000000000000 ffffffffffffffff   3f2322ac3118ab7a 77342b3ce112420b a4e74eaea4b602ef d7a036a48f09bbeb
+threefry4x64 13 0000000000000000 ffffffffffffffff 0000000000000000 0000000000000000   0000000000000000 0000000000000000 0000000000000000 ffffffffffffffff   1f7d2d32b4560572 65dd77ea737af34e 7273b33fcc3a542a f4be4f5efe578555
+threefry4x64 13 0000000000000000 8000000000000000 0000000000000000 0000000000000000   0000000000000000 0000000000000000 0000000000000000 ffffffffffffffff   9c8b4bb1d1234df1 c81acf5747a7e967 8a2816c04ee41e46 5044b310241a3b3e
+threefry4x64 13 0000000000000000 0000000000000000 ffffffffffffffff 0000000000000000   0000000000000000 0000000000000000 0000000000000000 ffffffffffffffff   9669abc61b43311c 43356b81b746111b b6dc48eeb21b8699 dbe907f08d01a64c
+threefry4x64 13 0000000000000000 0000000000000000 8000000000000000 0000000000000000   0000000000000000 0000000000000000 0000000000000000 ffffffffffffffff   8beb2316ebfc349a 43338972ba44efa1 027aa324111ddb2a a0cc5e126b613e9c
+threefry4x64 13 0000000000000000 0000000000000000 0000000000000000 ffffffffffffffff   0000000000000000 0000000000000000 0000000000000000 ffffffffffffffff   9ab42dcf03464387 a1ba2f214f9603a6 75659e356c523763 140c05291e373a99
+threefry4x64 13 0000000000000000 0000000000000000 0000000000000000 8000000000000000   0000000000000000 0000000000000000 0000000000000000 ffffffffffffffff   cc76b2ebda048a1f 74303dd7cbc9fe2b 86bcb8baedce89d7 02e1b32c8116a108
+threefry4x64 13 243f6a8885a308d3 13198a2e03707344 a4093822299f31d0 082efa98ec4e6c89   0000000000000000 0000000000000000 0000000000000000 ffffffffffffffff   cd41da269ca3c8f9 3e1b1b12a9e2aa1b 68742c4dfaa5e2f9 d905f214c4e32adb
+threefry4x64 13 0000000000000001 0000000000000000 0000000000000000 0000000000000000   0000000000000000 0000000000000000 0000000000000000 8000000000000000   a15fe10faae1413d b3ea00728b426ae8 44e0362e37778626 d76da78c8bbdb2f3
+threefry4x64 13 0000000000000000 0000000000000001 0000000000000000 0000000000000000   0000000000000000 0000000000000000 0000000000000000 8000000000000000   c74b6463897871d2 3dee782ceb448d5b 76fb472b4f8dfb3c 579b0fa66a5a7e3c
+threefry4x64 13 0000000000000000 0000000000000000 0000000000000001 0000000000000000   0000000000000000 0000000000000000 0000000000000000 8000000000000000   c596fbc29750200c 5eac3cafb1b65cff 0ebf88e52a4ca31c 56ce58d36711edc8
+threefry4x64 13 0000000000000000 0000000000000000 0000000000000000 0000000000000001   0000000000000000 0000000000000000 0000000000000000 8000000000000000   344ee7b935fc9f4e 86e7bbe859b3288f 4fd5f444ff546852 379d0f15264ce291
+threefry4x64 13 0000000000000000 ffffffffffffffff 0000000000000000 0000000000000000   0000000000000000 0000000000000000 0000000000000000 8000000000000000   a12b7c0ae47df332 b1fb8faf8c7e055c 012f4ce8699912e8 1807370c17fe4806
+threefry4x64 13 0000000000000000 8000000000000000 0000000000000000 0000000000000000   0000000000000000 0000000000000000 0000000000000000 8000000000000000   309cf1978593199d 4803a4c3464b33b1 8de1cf19119e5184 0e98be6e29cc004d
+threefry4x64 13 0000000000000000 0000000000000000 ffffffffffffffff 0000000000000000   0000000000000000 0000000000000000 0000000000000000 8000000000000000   a3f741dfb4b0123e baacbbb9319e1f3c 6e2a766bd9f55e2d f85ca77e46c8ac8d
+threefry4x64 13 0000000000000000 0000000000000000 8000000000000000 0000000000000000   0000000000000000 0000000000000000 0000000000000000 8000000000000000   b1940157b0d12078 5a6d59771301089c 5528ee2ad8191549 062755f87de1a247
+threefry4x64 13 0000000000000000 0000000000000000 0000000000000000 ffffffffffffffff   0000000000000000 0000000000000000 0000000000000000 8000000000000000   921cfbb9ab46b160 bc60a78079a42218 dd7c39b5185d007c 046c126b53105693
+threefry4x64 13 0000000000000000 0000000000000000 0000000000000000 8000000000000000   0000000000000000 0000000000000000 0000000000000000 8000000000000000   25c6067a84995616 d33240726703b517 ca201d11dd57f427 64a6de3f4143ee6e
+threefry4x64 13 243f6a8885a308d3 13198a2e03707344 a4093822299f31d0 082efa98ec4e6c89   0000000000000000 0000000000000000 0000000000000000 8000000000000000   afeee610c4519328 8cbaaca176308e27 dc15a9770306e954 c7ece70c6b146822
+threefry4x64 20 0000000000000001 0000000000000000 0000000000000000 0000000000000000   0000000000000001 0000000000000000 0000000000000000 0000000000000000   f89ed93865056e32 bd896a3dbd85a756 62d8d73be7c894f0 e792657aabcd4d07
+threefry4x64 20 0000000000000000 0000000000000001 0000000000000000 0000000000000000   0000000000000001 0000000000000000 0000000000000000 0000000000000000   982b64d9ed17727f b92ee937b202c51f f4b17d93cfd45600 f9f8aae4c794d15e
+threefry4x64 20 0000000000000000 0000000000000000 0000000000000001 0000000000000000   0000000000000001 0000000000000000 0000000000000000 0000000000000000   b6a7225711cc34b8 53074728c278f4c7 5667235e08827615 132e773e6e7f0eb3
+threefry4x64 20 0000000000000000 0000000000000000 0000000000000000 0000000000000001   0000000000000001 0000000000000000 0000000000000000 0000000000000000   44bbf877aa21ae51 965dfe7a5d2264b4 e9f7ad5df7d8f80b f7b569832716868e
+threefry4x64 20 0000000000000000 ffffffffffffffff 0000000000000000 0000000000000000   0000000000000001 0000000000000000 0000000000000000 0000000000000000   93f2387a206e8f9e 6cb5b48ffdf2d7cd 0e979b44e4dd0e1a d7bff06c4f8e5211
+threefry4x64 20 0000000000000000 8000000000000000 0000000000000000 0000000000000000   0000000000000001 0000000000000000 0000000000000000 0000000000000000   c89facdd90bc86dc 2860da6424e61172 6d062d8f0dc96667 977cd762173d0fe5
+threefry4x64 20 0000000000000000 0000000000000000 ffffffffffffffff 0000000000000000   0000000000000001 0000000000000000 0000000000000000 0000000000000000   c3d42d91a2e77a9d 9618b89ffb6c4c06 72f6505dff514d2c 6dac73802a09ff91
+threefry4x64 20 0000000000000000 0000000000000000 8000000000000000 0000000000000000   0000000000000001 0000000000000000 0000000000000000 0000000000000000   c65d933491370e7f 8bd8c1c43548d88b 677cbc00c0577228 9c5c490ce2485273
+threefry4x64 20 0000000000000000 0000000000000000 0000000000000000 ffffffffffffffff   0000000000000001 0000000000000000 0000000000000000 0000000000000000   fb128418d58c8190 a30cacdbeeaf83a4 7daabc3ee8242ca6 cdc871c48430783c
+threefry4x64 20 0000000000000000 0000000000000000 0000000000000000 8000000000000000   0000000000000001 0000000000000000 0000000000000000 0000000000000000   aa8f96391f668b67 e55eab0e8e2e5836 a1467300f7fb04f6 873ec0bc55573b89
+threefry4x64 20 243f6a8885a308d3 13198a2e03707344 a4093822299f31d0 082efa98ec4e6c89   0000000000000001 0000000000000000 0000000000000000 0000000000000000   7bbbcbf0f617f950 8eda8917ee3a6a15 56bf5df8bfd1060e df7a6d2bf0396704
+threefry4x64 20 0000000000000001 0000000000000000 0000000000000000 0000000000000000   0000000000000000 0000000000000001 0000000000000000 0000000000000000   8ae5e8b70c436fa2 a95dbadf918998a1 0e5908b70abc9526 293f0eb4a5fdafe4
+threefry4x64 20 0000000000000000 0000000000000001 0000000000000000 0000000000000000   0000000000000000 0000000000000001 0000000000000000 0000000000000000   8186defe625c11f3 06657e8ebbc151f1 f3b446f77ff82f6e a8655aab80b83368
+threefry4x64 20 0000000000000000 0000000000000000 0000000000000001 0000000000000000   0000000000000000 0000000000000001 0000000000000000 0000000000000000   bfff7105cf64329d 5da774462017e77f 604b3d42401fcfd6 12c33a3cc0a622f7
+threefry4x64 20 0000000000000000 0000000000000000 0000000000000000 0000000000000001   0000000000000000 0000000000000001 0000000000000000 0000000000000000   543bc7d16d113372 c13b3c63636d7acc c596bf4b944e106c ebad1d5a09f2d8e2
+threefry4x64 20 0000000000000000 ffffffffffffffff 0000000000000000 0000000000000000   0000000000000000 0000000000000001 0000000000000000 0000000000000000   1c72022fd804739a fb70dbc298660c89 ef584d080b442849 647fbc04f2b0ba2f
+threefry4x64 20 0000000000000000 8000000000000000 0000000000000000 0000000000000000   0000000000000000 0000000000000001 0000000000000000 0000000000000000   e53b96331ed89298 87f81c5d8334482b 1ab323554c0c08ef d8a54cad427df583
+threefry4x64 20 0000000000000000 0000000000000000 ffffffffffffffff 0000000000000000   0000000000000000 0000000000000001 0000000000000000 0000000000000000   aa234e6ecafcf2a0 4744cbeaae240876 64c770d4dcc26254 153e3de28b8c62e5
+threefry4x64 20 0000000000000000 0000000000000000 8000000000000000 0000000000000000   0000000000000000 0000000000000001 0000000000000000 0000000000000000   d69224680a4d2e61 cf82a8b14c8282f6 c35caf223d708d26 d20eb877b3b194e6
+threefry4x64 20 0000000000000000 0000000000000000 0000000000000000 ffffffffffffffff   0000000000000000 0000000000000001 0000000000000000 0000000000000000   05b4e3832ac3001f cabd925f6019062a 6e881791ffffcddc 3d07c493dc18ee36
+threefry4x64 20 0000000000000000 0000000000000000 0000000000000000 8000000000000000   0000000000000000 0000000000000001 0000000000000000 0000000000000000   770f680e00670cf7 55b37fe1f230b862 c60feeaa07a9a962 74b7618ae3112c62
+threefry4x64 20 243f6a8885a308d3 13198a2e03707344 a4093822299f31d0 082efa98ec4e6c89   0000000000000000 0000000000000001 0000000000000000 0000000000000000   56292009e38f1873 10629818ed1b807a ecf7a9c2699f4c84 68dee03a7ba18cc0
+threefry4x64 20 0000000000000001 0000000000000000 0000000000000000 0000000000000000   0000000000000000 0000000000000000 0000000000000001 0000000000000000   e976691f1b80d958 be8abbb14c5ed824 f29b8e777ca5c94b 97175c4d56649bd8
+threefry4x64 20 0000000000000000 0000000000000001 0000000000000000 0000000000000000   0000000000000000 0000000000000000 0000000000000001 0000000000000000   99122a867130ba68 29e6fc66a54153d1 6bb286953c60faa3 15f3a11b70692bba
+threefry4x64 20 0000000000000000 0000000000000000 0000000000000001 0000000000000000   0000000000000000 0000000000000000 0000000000000001 0000000000000000   568c091d800376a4 6410b91f1213d435 5a53e48b09b33a5d d3ca8ae91eb3cb52
+threefry4x64 20 0000000000000000 0000000000000000 0000000000000000 0000000000000001   0000000000000000 0000000000000000 0000000000000001 0000000000000000   ebfa25173eba130b 872e5f2c3f858550 34ba124306653c10 75abaf6f3b82a8a5
+threefry4x64 20 0000000000000000 ffffffffffffffff 0000000000000000 0000000000000000   0000000000000000 0000000000000000 0000000000000001 0000000000000000   cb423ba5d281d13b 97355c07bffaaa4b f04be7e7841daec4 3d58b14622d0c064
+threefry4x64 20 0000000000000000 8000000000000000 0000000000000000 0000000000000000   0000000000000000 0000000000000000 0000000000000001 0000000000000000   cd807105b3a2206f 8dfbf66b057ab348 81333ca31ef60ef4 db7e5ee3664aab98
+threefry4x64 20 0000000000000000 0000000000000000 ffffffffffffffff 0000000000000000   0000000000000000 0000000000000000 0000000000000001 0000000000000000   8a7a795de1c22fb1 710a7f0c73e9c6d9 552b80b908fd894a 1b2a91bbce9b4246
+threefry4x64 20 0000000000000000 0000000000000000 8000000000000000 0000000000000000   0000000000000000 0000000000000000 0000000000000001 0000000000000000   c623a20d932ccb7d 03bf8b8446d7128b 72c4a06097e4601d 06742862e6031180
+threefry4x64 20 0000000000000000 0000000000000000 0000000000000000 ffffffffffffffff   0000000000000000 0000000000000000 0000000000000001 0000000000000000   61f394f4b8f77bb2 f73fa064e84c2daf 35c35bfbdfbef4f3 a724fb52592f935f
+threefry4x64 20 0000000000000000 0000000000000000 0000000000000000 8000000000000000   0000000000000000 0000000000000000 0000000000000001 0000000000000000   6db56dd85b84b7d0 f159755eab2ce68f 60b4cd66d0531931 593643f04eabd3df
+threefry4x64 20 243f6a8885a308d3 13198a2e03707344 a4093822299f31d0 082efa98ec4e6c89   0000000000000000 0000000000000000 0000000000000001 0000000000000000   8bae3792b1c7f028 d06b57022556fdb7 c9d485c0d516a5d0 389901e211326996
+threefry4x64 20 0000000000000001 0000000000000000 0000000000000000 0000000000000000   0000000000000000 0000000000000000 0000000000000000 0000000000000001   fda4e34b6bda2e78 1bcde08f72564ebd db1ea7ab9244c332 1809e6e1f0baa36c
+threefry4x64 20 0000000000000000 0000000000000001 0000000000000000 0000000000000000   0000000000000000 0000000000000000 0000000000000000 0000000000000001   1f46785827cf00cc 73efc9633842cd4f 76218d83b83a8156 62bcb826031f519e
+threefry4x64 20 0000000000000000 0000000000000000 0000000000000001 0000000000000000   0000000000000000 0000000000000000 0000000000000000 0000000000000001   e062b28847b0a31d f9931a29afe520d4 2f2d40165188a578 4a3e9e455553a412
+threefry4x64 20 0000000000000000 0000000000000000 0000000000000000 0000000000000001   0000000000000000 0000000000000000 0000000000000000 0000000000000001   cf65681072a11a30 00f9875b6228100c c6631b848fd3f81b d1391138164dffea
+threefry4x64 20 0000000000000000 ffffffffffffffff 0000000000000000 0000000000000000   0000000000000000 0000000000000000 0000000000000000 0000000000000001   3b55def85f780ad3 7c89509a536576db 703c7a54c92adc37 a634e944edfbb1b1
+threefry4x64 20 0000000000000000 8000000000000000 0000000000000000 0000000000000000   0000000000000000 0000000000000000 0000000000000000 0000000000000001   523c9f16575344da 3b8b47c4f2abbbed c086def85eb710d0 ccccfce7151fed41
+threefry4x64 20 0000000000000000 0000000000000000 ffffffffffffffff 0000000000000000   0000000000000000 0000000000000000 0000000000000000 0000000000000001   2989b44b7bc9c589 6f51f1aa8194cd9c 910b471870d34248 3e16e545d6f9d3b4
+threefry4x64 20 0000000000000000 0000000000000000 8000000000000000 0000000000000000   0000000000000000 0000000000000000 0000000000000000 0000000000000001   8e68fea009eee4b2 edb5e4274c6f0a04 eb34879011e8d7b2 d9da39416b62f51c
+threefry4x64 20 0000000000000000 0000000000000000 0000000000000000 ffffffffffffffff   0000000000000000 0000000000000000 0000000000000000 0000000000000001   1c84b638d27d7dd4 4e6dd3b04b1ff092 1adfe69682d3620e 508a1926a26bada8
+threefry4x64 20 0000000000000000 0000000000000000 0000000000000000 8000000000000000   0000000000000000 0000000000000000 0000000000000000 0000000000000001   52ea8499b2a6f121 de7bf09d98328388 a93dee2da6423d6c fccbb0aa5fea8721
+threefry4x64 20 243f6a8885a308d3 13198a2e03707344 a4093822299f31d0 082efa98ec4e6c89   0000000000000000 0000000000000000 0000000000000000 0000000000000001   f83be1563ca6864f f9b2244eb9a0a0bb 77c0dce929577f0d 4312da346a75b901
+threefry4x64 20 0000000000000001 0000000000000000 0000000000000000 0000000000000000   0000000000000000 ffffffffffffffff 0000000000000000 0000000000000000   85874a427171bd52 087203b705096abb 2b4eac4bb197cc47 668384e956bb1b88
+threefry4x64 20 0000000000000000 0000000000000001 0000000000000000 0000000000000000   0000000000000000 ffffffffffffffff 0000000000000000 0000000000000000   558e048a3b205295 73937c2aa93e99de 59141306fb089079 ad2f30432f603af0
+threefry4x64 20 0000000000000000 0000000000000000 0000000000000001 0000000000000000   0000000000000000 ffffffffffffffff 0000000000000000 0000000000000000   ca31a1506188b7f3 e2f687331eb59e6b 2e0c5db2e49d0369 b2504b862d707d07
+threefry4x64 20 0000000000000000 0000000000000000 0000000000000000 0000000000000001   0000000000000000 ffffffffffffffff 0000000000000000 0000000000000000   8e15267d675bb7f5 37e79e8f2c4f4c1a 738fd248c3fb83ce 6c5f250b42b1ead3
+threefry4x64 20 0000000000000000 ffffffffffffffff 0000000000000000 0000000000000000   0000000000000000 ffffffffffffffff 0000000000000000 0000000000000000   7a8abd584135cc95 54ae8923a9790941 36b8855f23b8c0cb d6e30da6960e6d3a
+threefry4x64 20 0000000000000000 8000000000000000 0000000000000000 0000000000000000   0000000000000000 ffffffffffffffff 0000000000000000 0000000000000000   1b3e76a15a3d81bd 47515b766d1526a2 a8ac2e9d8c6fcbba 14842f687111ad6b
+threefry4x64 20 0000000000000000 0000000000000000 ffffffffffffffff 0000000000000000   0000000000000000 ffffffffffffffff 0000000000000000 0000000000000000   801ad32259dca163 ac610dfd986e37ab 92f0626474e43f64 f13aaf2bf6f9db40
+threefry4x64 20 0000000000000000 0000000000000000 8000000000000000 0000000000000000   0000000000000000 ffffffffffffffff 0000000000000000 0000000000000000   4c2f35571e07df4f e6181172f7a4a8c2 852fe5c10b21ec0a 36859f042ba1fbb2
+threefry4x64 20 0000000000000000 0000000000000000 0000000000000000 ffffffffffffffff   0000000000000000 ffffffffffffffff 0000000000000000 0000000000000000   014828936fc30529 30b098f7baabebab bdba756ed22e67e8 dbfeb29883206ff2
+threefry4x64 20 0000000000000000 0000000000000000 0000000000000000 8000000000000000   0000000000000000 ffffffffffffffff 0000000000000000 0000000000000000   603bb6e0f2479da5 e51dcee4b383d277 d961095b84b3418d 2125876df94c0a88
+threefry4x64 20 243f6a8885a308d3 13198a2e03707344 a4093822299f31d0 082efa98ec4e6c89   0000000000000000 ffffffffffffffff 0000000000000000 0000000000000000   5eeed616d1e3b26b d476bb39d85d25ea 2388dc0afe33a091 53fe3702435ff634
+threefry4x64 20 0000000000000001 0000000000000000 0000000000000000 0000000000000000   0000000000000000 8000000000000000 0000000000000000 0000000000000000   a702cfdfe4973280 7c249f1d0758cc0f 98454baaad673214 e3c59f707aabde84
+threefry4x64 20 0000000000000000 0000000000000001 0000000000000000 0000000000000000   0000000000000000 8000000000000000 0000000000000000 0000000000000000   3131a6508d56437b 6cd6b52c18dc1a9a 7150f4cca95bc4b5 49a586b366d35c15
+threefry4x64 20 0000000000000000 0000000000000000 0000000000000001 0000000000000000   0000000000000000 8000000000000000 0000000000000000 0000000000000000   67c05a6a0bb9ed25 de5266bab7cc9295 c343dcc30c002b27 5efb26d17a892573
+threefry4x64 20 0000000000000000 0000000000000000 0000000000000000 0000000000000001   0000000000000000 8000000000000000 0000000000000000 0000000000000000   7805bde324c1af1c 668691f3be21caf7 3d6b424c11f232da aa67d4a504d5e515
+threefry4x64 20 0000000000000000 ffffffffffffffff 0000000000000000 0000000000000000   0000000000000000 8000000000000000 0000000000000000 0000000000000000   36fa107bd920d2a1 3241cb98bde958cb b0dc16d6e08b0631 6e7eee73c179ad07
+threefry4x64 20 0000000000000000 8000000000000000 0000000000000000 0000000000000000   0000000000000000 8000000000000000 0000000000000000 0000000000000000   d919b55afd55c267 722ed883e05662d4 26e2c219316f4af4 952da37749e78786
+threefry4x64 20 0000000000000000 0000000000000000 ffffffffffffffff 0000000000000000   0000000000000000 8000000000000000 0000000000000000 0000000000000000   b1480c8085f9a79c 80fc9858168a8b32 4666dd30592b2e33 823262f5f32e3ad0
+threefry4x64 20 0000000000000000 0000000000000000 8000000000000000 0000000000000000   0000000000000000 8000000000000000 0000000000000000 0000000000000000   a712d08192fb239b e6e4fe0a58a601fd e71ad1813b69e0e2 3219922b43502981
+threefry4x64 20 0000000000000000 0000000000000000 0000000000000000 ffffffffffffffff   0000000000000000 8000000000000000 0000000000000000 0000000000000000   ef86f20d6c3b68c3 917b208c644349cc 73738d7bc08f52ae 4144bc69eed1d435
+threefry4x64 20 0000000000000000 0000000000000000 0000000000000000 8000000000000000   0000000000000000 8000000000000000 0000000000000000 0000000000000000   13a65d5f806490ec 9b7641d917615d41 ff918ea8509cc729 5c120cff123aedd2
+threefry4x64 20 243f6a8885a308d3 13198a2e03707344 a4093822299f31d0 082efa98ec4e6c89   0000000000000000 8000000000000000 0000000000000000 0000000000000000   e6e9d6e5a345a1b1 ab16981d4978321a 9089eaa221460088 ae397a5f5f162e31
+threefry4x64 20 0000000000000001 0000000000000000 0000000000000000 0000000000000000   0000000000000000 0000000000000000 ffffffffffffffff 0000000000000000   31243c5a95e832e1 cf3dc1a984b07f34 e950b7eb25eb26ba b5593c3426a1f0d3
+threefry4x64 20 0000000000000000 0000000000000001 0000000000000000 0000000000000000   0000000000000000 0000000000000000 ffffffffffffffff 0000000000000000   fa7817180e135577 a128dcbcf2a70e97 e4932adcb9b11983 9755f62735e87f34
+threefry4x64 20 0000000000000000 0000000000000000 0000000000000001 0000000000000000   0000000000000000 0000000000000000 ffffffffffffffff 0000000000000000   b834ea24815ea121 cac44aca182f748c b0dde9fec9df32de 44b9a0fc44677efb
+threefry4x64 20 0000000000000000 0000000000000000 0000000000000000 0000000000000001   0000000000000000 0000000000000000 ffffffffffffffff 0000000000000000   5a6173e2accebd38 5b131c1580e7e4f3 efa5bf67388ddf08 f9ac55e63922c0d5
+threefry4x64 20 0000000000000000 ffffffffffffffff 0000000000000000 0000000000000000   0000000000000000 0000000000000000 ffffffffffffffff 0000000000000000   b384790d86c31a9e f1fb8ddfeaa88d4d 066441fc1fd9a778 2f1c77b88b083355
+threefry4x64 20 0000000000000000 8000000000000000 0000000000000000 0000000000000000   0000000000000000 0000000000000000 ffffffffffffffff 0000000000000000   96659fc0678254da 6918643b2bde533f 5715c3b72f70b12f 03fbbca391a5696a
+threefry4x64 20 0000000000000000 0000000000000000 ffffffffffffffff 0000000000000000   0000000000000000 0000000000000000 ffffffffffffffff 0000000000000000   1c4ba033ecb49c93 966d0e8012a5a388 4a24daa292dceaab 03d2f3860af6f4e9
+threefry4x64 20 0000000000000000 0000000000000000 8000000000000000 0000000000000000   0000000000000000 0000000000000000 ffffffffffffffff 0000000000000000   15a613110b4673a0 121b874b4810f620 f64e02eaa1212920 bcffc54556c3fce1
+threefry4x64 20 0000000000000000 0000000000000000 0000000000000000 ffffffffffffffff   0000000000000000 0000000000000000 ffffffffffffffff 0000000000000000   357adb0df3abcc95 db1ab7be4520ea15 6951e8aaaa5af14c fcf212f0979c0363
+threefry4x64 20 0000000000000000 0000000000000000 0000000000000000 8000000000000000   0000000000000000 0000000000000000 ffffffffffffffff 0000000000000000   21f38a82dd49ebdd c9bade4b39894d89 992854bccee76282 cb11ce4b04634f01
+threefry4x64 20 243f6a8885a308d3 13198a2e03707344 a4093822299f31d0 082efa98ec4e6c89   0000000000000000 0000000000000000 ffffffffffffffff 0000000000000000   ac11615cfb8804fb c26d1580d38b7c7d 3e8e683a4d20ea56 8a739c355ae4bbb9
+threefry4x64 20 0000000000000001 0000000000000000 0000000000000000 0000000000000000   0000000000000000 0000000000000000 8000000000000000 0000000000000000   b587771995c1ffe7 cfd116bd3029fc42 4d8207deb6d416c2 af9483f1ce57809f
+threefry4x64 20 0000000000000000 0000000000000001 0000000000000000 0000000000000000   0000000000000000 0000000000000000 8000000000000000 0000000000000000   56a77269eff784de 07482fa109e195cc db90c9c776d70a2a 75d0913c19d22612
+threefry4x64 20 0000000000000000 0000000000000000 0000000000000001 0000000000000000   0000000000000000 0000000000000000 8000000000000000 0000000000000000   9565f1f53359b88f ad98ae294ac770bb ee99e6b7b51226f9 c4e0ab4c9a14125f
+threefry4x64 20 0000000000000000 0000000000000000 0000000000000000 0000000000000001   0000000000000000 0000000000000000 8000000000000000 0000000000000000   111a5de94005c146 2030eded2dd3b8e8 c957d395e7de6463 8d808f6ec9f73b44
+threefry4x64 20 0000000000000000 ffffffffffffffff 0000000000000000 0000000000000000   0000000000000000 0000000000000000 8000000000000000 0000000000000000   40e6bb219ab5c4cd ea85ca56ac874867 bc1540419dac8e01 563ad7643a376e93
+threefry4x64 20 0000000000000000 8000000000000000 0000000000000000 0000000000000000   0000000000000000 0000000000000000 8000000000000000 0000000000000000   164321657c70819d eaaf8de42198a16e 7eae23927bcbfab8 73a04730feb4851e
+threefry4x64 20 0000000000000000 0000000000000000 ffffffffffffffff 0000000000000000   0000000000000000 0000000000000000 8000000000000000 0000000000000000   97f229a61529e38a 8e319418bcfbb12a 6ba27633af0fa6de 57cbb3e68c3527d6
+threefry4x64 20 0000000000000000 0000000000000000 8000000000000000 0000000000000000   0000000000000000 0000000000000000 8000000000000000 0000000000000000   68bbf3170a0997ed 881860e14d5cf2ed 31b899a4921526aa e677a9c70e92af02
+threefry4x64 20 0000000000000000 0000000000000000 0000000000000000 ffffffffffffffff   0000000000000000 0000000000000000 8000000000000000 0000000000000000   e60fa0c35e7b6944 9dff379ef3e2ad34 fabe148a01b71390 73e1d7df2dc9a644
+threefry4x64 20 0000000000000000 0000000000000000 0000000000000000 8000000000000000   0000000000000000 0000000000000000 8000000000000000 0000000000000000   562d75b725acf954 f7f1b0276038ebfc 3c1eacdd68247566 c742c844a8deb5c5
+threefry4x64 20 243f6a8885a308d3 13198a2e03707344 a4093822299f31d0 082efa98ec4e6c89   0000000000000000 0000000000000000 8000000000000000 0000000000000000   4b9990815eeba4e6 2b3ef48aa6419c30 d5b962dd45793f01 c867e6d3d6a9fbce
+threefry4x64 20 0000000000000001 0000000000000000 0000000000000000 0000000000000000   0000000000000000 0000000000000000 0000000000000000 ffffffffffffffff   e38fadf720fccf69 73760232ff7339ae 7096a387f7bfce8b 09cdf4a8033c6461
+threefry4x64 20 0000000000000000 0000000000000001 0000000000000000 0000000000000000   0000000000000000 0000000000000000 0000000000000000 ffffffffffffffff   8fbcb0ccb5a68c09 3c091f05ef3feb5a 880c915948eff90f 6d042824d55cfa79
+threefry4x64 20 0000000000000000 0000000000000000 0000000000000001 0000000000000000   0000000000000000 0000000000000000 0000000000000000 ffffffffffffffff   f4187df19710e7bc 8176d6775bee5998 b2629a879b5983d3 8250daa72833a195
+threefry4x64 20 0000000000000000 0000000000000000 0000000000000000 0000000000000001   0000000000000000 0000000000000000 0000000000000000 ffffffffffffffff   f16d33bd22225c93 257dd8242032f571 eb9c45bd059d0fa1 5a7f9b7c55960b1c
+threefry4x64 20 0000000000000000 ffffffffffffffff 0000000000000000 0000000000000000   0000000000000000 0000000000000000 0000000000000000 ffffffffffffffff   2e8361a4aa930a0e b8cbba78f68d1b63 3c0df7648dc4d4f9 3b533a4d2913ba33
+threefry4x64 20 0000000000000000 8000000000000000 0000000000000000 0000000000000000   0000000000000000 0000000000000000 0000000000000000 ffffffffffffffff   c3b2ee2c35624ffe ff045283a1e08c3d b1b3042bb82d6ede 1bf1550286f383a2
+threefry4x64 20 0000000000000000 0000000000000000 ffffffffffffffff 0000000000000000   0000000000000000 0000000000000000 0000000000000000 ffffffffffffffff   f0326d40804c3153 37c27181a460c9ae c0034d039686abdf 3d55f60596ad5837
+threefry4x64 20 0000000000000000 0000000000000000 8000000000000000 0000000000000000   0000000000000000 0000000000000000 0000000000000000 ffffffffffffffff   0dab0563aa95c953 f38f100b1348d506 c27321a2d99f0a88 94e94b06c6477c62
+threefry4x64 20 0000000000000000 0000000000000000 0000000000000000 ffffffffffffffff   0000000000000000 0000000000000000 0000000000000000 ffffffffffffffff   a87036c367446e12 9f68749a58b47e25 6fc48a19201b0798 952188d35cf69fb0
+threefry4x64 20 0000000000000000 0000000000000000 0000000000000000 8000000000000000   0000000000000000 0000000000000000 0000000000000000 ffffffffffffffff   36c8bd17d63a9a82 8af6f23bf2d3040c 156eee41f13b2798 244e8221835a7618
+threefry4x64 20 243f6a8885a308d3 13198a2e03707344 a4093822299f31d0 082efa98ec4e6c89   0000000000000000 0000000000000000 0000000000000000 ffffffffffffffff   a293802a64ec9166 8039fe9d142bf9dc ab193c3d4835196a a650f43736078795
+threefry4x64 20 0000000000000001 0000000000000000 0000000000000000 0000000000000000   0000000000000000 0000000000000000 0000000000000000 8000000000000000   a6848ded0ad67dd2 361bc11075f5202e 845a8a315b2978f9 d47cf41ceb9da6e9
+threefry4x64 20 0000000000000000 0000000000000001 0000000000000000 0000000000000000   0000000000000000 0000000000000000 0000000000000000 8000000000000000   b0d56aaa267b5d14 778b7e865a84766b 533e6fe15d3fdee3 09d71e0d017df61f
+threefry4x64 20 0000000000000000 0000000000000000 0000000000000001 0000000000000000   0000000000000000 0000000000000000 0000000000000000 8000000000000000   45fa780c18a49ae1 51be9eec7776ffa5 50f9251d8c94279d e6cd7113274158fe
+threefry4x64 20 0000000000000000 0000000000000000 0000000000000000 0000000000000001   0000000000000000 0000000000000000 0000000000000000 8000000000000000   e6e1d3dd2aacbd00 67e52c14f46d11b5 2946912c9908c136 789dc703ca33c595
+threefry4x64 20 0000000000000000 ffffffffffffffff 0000000000000000 0000000000000000   0000000000000000 0000000000000000 0000000000000000 8000000000000000   9e858b947929378d 49298d74f00caa5f baf9196410a6257c 3e63a9a8359411c6
+threefry4x64 20 0000000000000000 8000000000000000 0000000000000000 0000000000000000   0000000000000000 0000000000000000 0000000000000000 8000000000000000   d8ea8f824e58974a 3d23b4c3e1fbee5b c6546469d088fcbd a72cba22c3abf1ec
+threefry4x64 20 0000000000000000 0000000000000000 ffffffffffffffff 0000000000000000   0000000000000000 0000000000000000 0000000000000000 8000000000000000   84e993586057fd3d 5b26f2142a47213b 95bec6cb2ae889ac ea3895b9b7c8a3f8
+threefry4x64 20 0000000000000000 0000000000000000 8000000000000000 0000000000000000   0000000000000000 0000000000000000 0000000000000000 8000000000000000   9a089a5f75db3ff3 3d97d5241f6b069e bb731d24954f2716 91213cc1c1f7e527
+threefry4x64 20 0000000000000000 0000000000000000 0000000000000000 ffffffffffffffff   0000000000000000 0000000000000000 0000000000000000 8000000000000000   cd2eb1d24a7de2c8 a3b1f18a27af4225 5f9a54357f4af40c bb8e26b5a9efb033
+threefry4x64 20 0000000000000000 0000000000000000 0000000000000000 8000000000000000   0000000000000000 0000000000000000 0000000000000000 8000000000000000   616e99086444a4c3 bd6973f3a79afaa1 c98be82cfb397c4e 01fc06bb62fc3f33
+threefry4x64 20 243f6a8885a308d3 13198a2e03707344 a4093822299f31d0 082efa98ec4e6c89   0000000000000000 0000000000000000 0000000000000000 8000000000000000   763ab713c2a06541 ac19a24b93f5678b 95117e99d0a8b3a9 9d41e61fc315bfe9
+threefry4x32 13 00000001 00000000 00000000 00000000   00000001 00000000 00000000 00000000   bb9799a3 99c96b85 147cb42b 41c4d9f0
+threefry4x32 13 00000000 00000001 00000000 00000000   00000001 00000000 00000000 00000000   07d71da4 d1a2b380 4b1c0744 07071fa3
+threefry4x32 13 00000000 00000000 00000001 00000000   00000001 00000000 00000000 00000000   6f325910 eb4baef9 63dc79fd 9fb4289a
+threefry4x32 13 00000000 00000000 00000000 00000001   00000001 00000000 00000000 00000000   c06c8569 41f8c075 0d9ac8fc ca4cb183
+threefry4x32 13 00000000 ffffffff 00000000 00000000   00000001 00000000 00000000 00000000   46dfc573 32ec2cd4 970d926b 4741150b
+threefry4x32 13 00000000 80000000 00000000 00000000   00000001 00000000 00000000 00000000   3cfb67ac 563ebf09 9e64b7fe a17a6edd
+threefry4x32 13 00000000 00000000 ffffffff 00000000   00000001 00000000 00000000 00000000   6fdcaa29 85eb97b0 641658b6 637597f8
+threefry4x32 13 00000000 00000000 80000000 00000000   00000001 00000000 00000000 00000000   6921a1bd edb37289 2a96f041 feee8d3d
+threefry4x32 13 00000000 00000000 00000000 ffffffff   00000001 00000000 00000000 00000000   46996f57 e449bcc1 8eecf7e2 8c9476b6
+threefry4x32 13 00000000 00000000 00000000 80000000   00000001 00000000 00000000 00000000   64c583dd 541b87f2 a1a74ed0 be222e82
+threefry4x32 13 243f6a88 85a308d3 13198a2e 03707344   00000001 00000000 00000000 00000000   2dd111e3 4bcd84f6 a7bedab5 cfaccded
+threefry4x32 13 a4093822 299f31d0 082efa98 ec4e6c89   00000001 00000000 00000000 00000000   91ad0543 8796f2e3 1f7dea71 5954cf16
+threefry4x32 13 452821e6 38d01377 be5466cf 34e90c6c   00000001 00000000 00000000 00000000   8b838910 ec61f53d 9159be96 00a91b1a
+threefry4x32 13 00000001 00000000 00000000 00000000   00000000 00000001 00000000 00000000   db476b8b 64ca080f 8164731a df2ad744
+threefry4x32 13 00000000 00000001 00000000 00000000   00000000 00000001 00000000 00000000   f2ec5347 87e3be56 ed0d2f4f c549203a
+threefry4x32 13 00000000 00000000 00000001 00000000   00000000 00000001 00000000 00000000   a105cb4d 540fca6f 1912780c 021445c5
+threefry4x32 13 00000000 00000000 00000000 00000001   00000000 00000001 00000000 00000000   d1711880 a6fdb528 57b11ea0 8ee9b71a
+threefry4x32 13 00000000 ffffffff 00000000 00000000   00000000 00000001 00000000 00000000   4d25c9d8 35411722 876597d3 a77c6b82
+threefry4x32 13 00000000 80000000 00000000 00000000   00000000 00000001 00000000 00000000   63cd2323 f5e6e7ec 4c97c974 75e7869f
+threefry4x32 13 00000000 00000000 ffffffff 00000000   00000000 00000001 00000000 00000000   eb05fac0 16e56be7 f2de2606 fda2302b
+threefry4x32 13 00000000 00000000 80000000 00000000   00000000 00000001 00000000 00000000   7513c86c ae260696 bcb5037b 83374447
+threefry4x32 13 00000000 00000000 00000000 ffffffff   00000000 00000001 00000000 00000000   a51b3ee6 b7ae14a5 a62dbd0f 1cd66929
+threefry4x32 13 00000000 00000000 00000000 80000000   00000000 00000001 00000000 00000000   24989ca3 581db664 f62bd4c4 4d4bf09f
+threefry4x32 13 243f6a88 85a308d3 13198a2e 03707344   00000000 00000001 00000000 00000000   6fb81745 d27ca3e0 ceb229f5 a9ea334b
+threefry4x32 13 a4093822 299f31d0 082efa98 ec4e6c89   00000000 00000001 00000000 00000000   a869236e 14bd4ece 83fd7d8a d40cf21c
+threefry4x32 13 452821e6 38d01377 be5466cf 34e90c6c   00000000 00000001 00000000 00000000   c34f3a0e 43b2e4d7 934173c0 f3cdf64a
+threefry4x32 13 00000001 00000000 00000000 00000000   00000000 00000000 00000001 00000000   babf5878 38c2494e 3019c043 1e0b2b9b
+threefry4x32 13 00000000 00000001 00000000 00000000   00000000 00000000 00000001 00000000   5d800e70 7ac570e8 97c4694a d8a3180a
+threefry4x32 13 00000000 00000000 00000001 00000000   00000000 00000000 00000001 00000000   e8c65d99 7c5ca426 0a86c445 7d4d3a21
+threefry4x32 13 00000000 00000000 00000000 00000001   00000000 00000000 00000001 00000000   26d36381 19af15e5 a54676bc 4af5d5eb
+threefry4x32 13 00000000 ffffffff 00000000 00000000   00000000 00000000 00000001 00000000   5a87e689 783f1462 3cedd1ae 2ea11e0a
+threefry4x32 13 00000000 80000000 00000000 00000000   00000000 00000000 00000001 00000000   92ceb56e 1d319cd1 a2b34995 e723ef97
+threefry4x32 13 00000000 00000000 ffffffff 00000000   00000000 00000000 00000001 00000000   f0ba66a4 04f0fd34 f5a697dd aa00c84a
+threefry4x32 13 00000000 00000000 80000000 00000000   00000000 00000000 00000001 00000000   93366e54 253cda1e a4e1b57b 70d26242
+threefry4x32 13 00000000 00000000 00000000 ffffffff   00000000 00000000 00000001 00000000   d972babe b256e807 670bdbbd 74ab6ecd
+threefry4x32 13 00000000 00000000 00000000 80000000   00000000 00000000 00000001 00000000   a205f99f b02fddb1 0336fd8e f281b7dc
+threefry4x32 13 243f6a88 85a308d3 13198a2e 03707344   00000000 00000000 00000001 00000000   0527b8fa e9fdb4d9 08177632 a4c34938
+threefry4x32 13 a4093822 299f31d0 082efa98 ec4e6c89   00000000 00000000 00000001 00000000   28006c21 591fad8a 36cb57c4 04820ec7
+threefry4x32 13 452821e6 38d01377 be5466cf 34e90c6c   00000000 00000000 00000001 00000000   a2538b90 2cbe2c7f 1542fe5f 9772775e
+threefry4x32 13 00000001 00000000 00000000 00000000   00000000 00000000 00000000 00000001   6a51ba3a 33fc7dd8 83ec724b 592255be
+threefry4x32 13 00000000 00000001 00000000 00000000   00000000 00000000 00000000 00000001   3b00082e f3111cc6 67f122b1 a4c02cec
+threefry4x32 13 00000000 00000000 00000001 00000000   00000000 00000000 00000000 00000001   eebb5e2e 5d5a0d75 64526042 bfeb2a2b
+threefry4x32 13 00000000 00000000 00000000 00000001   00000000 00000000 00000000 00000001   cc78dfd4 f03f59d7 24eb369b 7f233bc2
+threefry4x32 13 00000000 ffffffff 00000000 00000000   00000000 00000000 00000000 00000001   8a1de487 dbc78315 02bad926 0d62c434
+threefry4x32 13 00000000 80000000 00000000 00000000   00000000 00000000 00000000 00000001   5b7ec382 20dfb637 5e14485f 4365e731
+threefry4x32 13 00000000 00000000 ffffffff 00000000   00000000 00000000 00000000 00000001   48f54a63 040c8fe7 6f5f60e7 a8e2c422
+threefry4x32 13 00000000 00000000 80000000 00000000   00000000 00000000 00000000 00000001   bfa7d1e0 b2a7a93b a4a0780f 1b11e5e2
+threefry4x32 13 00000000 00000000 00000000 ffffffff   00000000 00000000 00000000 00000001   1d7fbcc4 fcc9efd9 4a40437e cb63413c
+threefry4x32 13 00000000 00000000 00000000 80000000   00000000 00000000 00000000 00000001   730a2e93 0cbfda73 72c9f9fe 936a1a42
+threefry4x32 13 243f6a88 85a308d3 13198a2e 03707344   00000000 00000000 00000000 00000001   c325dccd 4d0d46a3 a0bf87fd 765514a9
+threefry4x32 13 a4093822 299f31d0 082efa98 ec4e6c89   00000000 00000000 00000000 00000001   77eab59a 4aeebf17 5f99bf1a 61de049e
+threefry4x32 13 452821e6 38d01377 be5466cf 34e90c6c   00000000 00000000 00000000 00000001   af627ea8 d88088da c07f790d 4ff5b0ac
+threefry4x32 13 00000001 00000000 00000000 00000000   00000000 ffffffff 00000000 00000000   e0cb88ba 17e181a0 2946aa88 9443cccc
+threefry4x32 13 00000000 00000001 00000000 00000000   00000000 ffffffff 00000000 00000000   b0ea449f 66f501e8 8df43f17 52c4ee1d
+threefry4x32 13 00000000 00000000 00000001 00000000   00000000 ffffffff 00000000 00000000   7889161d 5e28d071 d3f5c7a3 95225ab6
+threefry4x32 13 00000000 00000000 00000000 00000001   00000000 ffffffff 00000000 00000000   880f46d0 28610176 362a2ecb f1a6336b
+threefry4x32 13 00000000 ffffffff 00000000 00000000   00000000 ffffffff 00000000 00000000   d2b3535a d354a28a 36d6521d e0ce90a2
+threefry4x32 13 00000000 80000000 00000000 00000000   00000000 ffffffff 00000000 00000000   5f8f5010 72df59a8 f6979560 6abef914
+threefry4x32 13 00000000 00000000 ffffffff 00000000   00000000 ffffffff 00000000 00000000   835394ae 63d0fa88 4f429ab5 e9b5607a
+threefry4x32 13 00000000 00000000 80000000 00000000   00000000 ffffffff 00000000 00000000   d551fb5f 37913678 4ac2778a befd7153
+threefry4x32 13 00000000 00000000 00000000 ffffffff   00000000 ffffffff 00000000 00000000   497e8b34 d89d8baf 1de18810 674236b2
+threefry4x32 13 00000000 00000000 00000000 80000000   00000000 ffffffff 00000000 00000000   7f592187 57aec906 15d8b63e 6702a7f9
+threefry4x32 13 243f6a88 85a308d3 13198a2e 03707344   00000000 ffffffff 00000000 00000000   93492d6c b08d1b13 356c8f17 49014dbb
+threefry4x32 13 a4093822 299f31d0 082efa98 ec4e6c89   00000000 ffffffff 00000000 00000000   2aba9b17 b0f1815b 5f138050 2e88678e
+threefry4x32 13 452821e6 38d01377 be5466cf 34e90c6c   00000000 ffffffff 00000000 00000000   b0afc429 9054cef2 63f61b5b d2607a3e
+threefry4x32 13 00000001 00000000 00000000 00000000   00000000 80000000 00000000 00000000   b5a298c5 98544b8f 0b290c3b 4fc4fdf3
+threefry4x32 13 00000000 00000001 00000000 00000000   00000000 80000000 00000000 00000000   e2041951 46bb6763 5a36b34f 1f66efaf
+threefry4x32 13 00000000 00000000 00000001 00000000   00000000 80000000 00000000 00000000   89aa48a3 c778ebf3 60c3ac82 dedaed40
+threefry4x32 13 00000000 00000000 00000000 00000001   00000000 80000000 00000000 00000000   1eacd90b c3f0b4e6 23e423ce aafd4b43
+threefry4x32 13 00000000 ffffffff 00000000 00000000   00000000 80000000 00000000 00000000   8a638e3b c227769d bae62226 12630b0f
+threefry4x32 13 00000000 80000000 00000000 00000000   00000000 80000000 00000000 00000000   97724835 82597cc0 49882f15 7c12d92f
+threefry4x32 13 00000000 00000000 ffffffff 00000000   00000000 80000000 00000000 00000000   591bf94a 59fa8964 5dc10c15 dea6b756
+threefry4x32 13 00000000 00000000 80000000 00000000   00000000 80000000 00000000 00000000   541b74ab 1aa9ef7a 59220844 15fa0d90
+threefry4x32 13 00000000 00000000 00000000 ffffffff   00000000 80000000 00000000 00000000   385c7d29 c23b3a6c 0fca8dd0 3f4f3e91
+threefry4x32 13 00000000 00000000 00000000 80000000   00000000 80000000 00000000 00000000   e538346b 44592384 21c220bd 940f1fbb
+threefry4x32 13 243f6a88 85a308d3 13198a2e 03707344   00000000 80000000 00000000 00000000   6a8dccf0 e3103390 ec3122e0 1b0dc865
+threefry4x32 13 a4093822 299f31d0 082efa98 ec4e6c89   00000000 80000000 00000000 00000000   10259fc5 4a51eb0e ed50befc 8c10418c
+threefry4x32 13 452821e6 38d01377 be5466cf 34e90c6c   00000000 80000000 00000000 00000000   4f20b506 d03e080e 5dd8990c e3fafd81
+threefry4x32 13 00000001 00000000 00000000 00000000   00000000 00000000 ffffffff 00000000   20c66986 ce82602a b34b9348 de9cc423
+threefry4x32 13 00000000 00000001 00000000 00000000   00000000 00000000 ffffffff 00000000   0a8f0c1d 82fce677 27c1ac16 57988493
+threefry4x32 13 00000000 00000000 00000001 00000000   00000000 00000000 ffffffff 00000000   7bfcc4a1 45a65bf9 f5aeacd1 a2947299
+threefry4x32 13 00000000 00000000 00000000 00000001   00000000 00000000 ffffffff 00000000   90875e0b 82506f17 b531b1b2 7d2d028c
+threefry4x32 13 00000000 ffffffff 00000000 00000000   00000000 00000000 ffffffff 00000000   18545949 69305ed4 4b3da352 0f8dd522
+threefry4x32 13 00000000 80000000 00000000 00000000   00000000 00000000 ffffffff 00000000   b4d7bb50 ac6f5eba 5d97c45e de2d6956
+threefry4x32 13 00000000 00000000 ffffffff 00000000   00000000 00000000 ffffffff 00000000   617273a9 211ecb6a f327e136 bdd5dacb
+threefry4x32 13 00000000 00000000 80000000 00000000   00000000 00000000 ffffffff 00000000   7a3467b0 f8a27a09 b120bc81 8a9557f5
+threefry4x32 13 00000000 00000000 00000000 ffffffff   00000000 00000000 ffffffff 00000000   6de0b215 7d98a8f1 58cb248f 4f666c7e
+threefry4x32 13 00000000 00000000 00000000 80000000   00000000 00000000 ffffffff 00000000   244e2551 7ab76c56 0cb96ec5 fcabd419
+threefry4x32 13 243f6a88 85a308d3 13198a2e 03707344   00000000 00000000 ffffffff 00000000   934afaf9 56a7c139 6962f013 84ec70a1
+threefry4x32 13 a4093822 299f31d0 082efa98 ec4e6c89   00000000 00000000 ffffffff 00000000   c6a6cd92 d83ee260 8b666f81 94a02e20
+threefry4x32 13 452821e6 38d01377 be5466cf 34e90c6c   00000000 00000000 ffffffff 00000000   638f713e e708f8e2 fff2eb86 31ec2455
+threefry4x32 13 00000001 00000000 00000000 00000000   00000000 00000000 80000000 00000000   c0163b54 8f252db7 c28d798a 6613f48f
+threefry4x32 13 00000000 00000001 00000000 00000000   00000000 00000000 80000000 00000000   ce187c27 a948119f 07227a1b 0c6ead40
+threefry4x32 13 00000000 00000000 00000001 00000000   00000000 00000000 80000000 00000000   5d64e652 a3f06629 387cb0a2 431cbfee
+threefry4x32 13 00000000 00000000 00000000 00000001   00000000 00000000 80000000 00000000   32ec886e fe5884e3 a4a72770 4e126562
+threefry4x32 13 00000000 ffffffff 00000000 00000000   00000000 00000000 80000000 00000000   a4ae85df c1d2f99a 5fe4d68c 9e3f0931
+threefry4x32 13 00000000 80000000 00000000 00000000   00000000 00000000 80000000 00000000   3f93aa6d bfaec1b9 456c1592 d2fb4742
+threefry4x32 13 00000000 00000000 ffffffff 00000000   00000000 00000000 80000000 00000000   6a664c79 50161d2e 4b55d3fa 9137506d
+threefry4x32 13 00000000 00000000 80000000 00000000   00000000 00000000 80000000 00000000   f2192d18 d6e93dc7 f0faded8 1413e98a
+threefry4x32 13 00000000 00000000 00000000 ffffffff   00000000 00000000 80000000 00000000   a4efc3b8 ddfc1a8b 47fa89d3 e28a2d7c
+threefry4x32 13 00000000 00000000 00000000 80000000   00000000 00000000 80000000 00000000   a6307085 fd39c3dd 440c18b7 7338e5a3
+threefry4x32 13 243f6a88 85a308d3 13198a2e 03707344   00000000 00000000 80000000 00000000   50bccbed 79ddec0d 53d7163d 584f8670
+threefry4x32 13 a4093822 299f31d0 082efa98 ec4e6c89   00000000 00000000 80000000 00000000   d3b55c83 6e7b6f42 fb6a086e f8d484c3
+threefry4x32 13 452821e6 38d01377 be5466cf 34e90c6c   00000000 00000000 80000000 00000000   ea8172a9 0f986a3b b392993f 370b8468
+threefry4x32 13 00000001 00000000 00000000 00000000   00000000 00000000 00000000 ffffffff   859aa72f 6bb65ad2 1af7d19a 07b3dfba
+threefry4x32 13 00000000 00000001 00000000 00000000   00000000 00000000 00000000 ffffffff   3b681644 1118ab22 cd72ea4e d032523b
+threefry4x32 13 00000000 00000000 00000001 00000000   00000000 00000000 00000000 ffffffff   f7b84f1b 4df726ca c2f490f4 a1c7081a
+threefry4x32 13 00000000 00000000 00000000 00000001   00000000 00000000 00000000 ffffffff   ad9946e8 09c1c011 e4bb5cbe a8384ba3
+threefry4x32 13 00000000 ffffffff 00000000 00000000   00000000 00000000 00000000 ffffffff   130ffb6d 587e8e0d 265ad6e6 51acdfb1
+threefry4x32 13 00000000 80000000 00000000 00000000   00000000 00000000 00000000 ffffffff   6f3d6d3b 9e1ceb3c 5de98f47 5dcee187
+threefry4x32 13 00000000 00000000 ffffffff 00000000   00000000 00000000 00000000 ffffffff   eeb5e084 76c64fbd aa92e022 bf4c9c68
+threefry4x32 13 00000000 00000000 80000000 00000000   00000000 00000000 00000000 ffffffff   b2b71f54 101817ca 88b01673 6c67712d
+threefry4x32 13 00000000 00000000 00000000 ffffffff   00000000 00000000 00000000 ffffffff   1f5a4754 643e6831 b3c094be d28a2a24
+threefry4x32 13 00000000 00000000 00000000 80000000   00000000 00000000 00000000 ffffffff   549a5412 89bdc102 614c9193 a6d813f7
+threefry4x32 13 243f6a88 85a308d3 13198a2e 03707344   00000000 00000000 00000000 ffffffff   ffe3fd54 21a20d59 03cf8258 84ac4999
+threefry4x32 13 a4093822 299f31d0 082efa98 ec4e6c89   00000000 00000000 00000000 ffffffff   b79cd0cf b515fcc0 a1674946 a1187117
+threefry4x32 13 452821e6 38d01377 be5466cf 34e90c6c   00000000 00000000 00000000 ffffffff   b6305e69 b3ccd613 a3266147 4312ec73
+threefry4x32 13 00000001 00000000 00000000 00000000   00000000 00000000 00000000 80000000   7d67e519 55549296 2eb13bfd 81823f68
+threefry4x32 13 00000000 00000001 00000000 00000000   00000000 00000000 00000000 80000000   66dba48c a5eee0bb 18d1599f 1eba839e
+threefry4x32 13 00000000 00000000 00000001 00000000   00000000 00000000 00000000 80000000   d71d63bb 3351afa8 b24560e1 b6355e77
+threefry4x32 13 00000000 00000000 00000000 00000001   00000000 00000000 00000000 80000000   d4f42034 cc3975c3 c9ecc935 658abb6e
+threefry4x32 13 00000000 ffffffff 00000000 00000000   00000000 00000000 00000000 80000000   f9f9b176 5d8314e0 9685ff9a e8dcf31f
+threefry4x32 13 00000000 80000000 00000000 00000000   00000000 00000000 00000000 80000000   75151c94 5f1bb005 f9174036 95460872
+threefry4x32 13 00000000 00000000 ffffffff 00000000   00000000 00000000 00000000 80000000   007d59b5 37178598 35fbd0dc d54535cd
+threefry4x32 13 00000000 00000000 80000000 00000000   00000000 00000000 00000000 80000000   b5f32f71 a670ff75 2bd1eb0c 74138877
+threefry4x32 13 00000000 00000000 00000000 ffffffff   00000000 00000000 00000000 80000000   19319fd2 97eb8752 7c7c5657 a95bcf65
+threefry4x32 13 00000000 00000000 00000000 80000000   00000000 00000000 00000000 80000000   5e75035a 33bf62ee eaf8c0b2 c7461234
+threefry4x32 13 243f6a88 85a308d3 13198a2e 03707344   00000000 00000000 00000000 80000000   91894181 9b4a5a5a 5436d9a4 464b4f16
+threefry4x32 13 a4093822 299f31d0 082efa98 ec4e6c89   00000000 00000000 00000000 80000000   12a30ea8 5998d88f 7efddb98 18855380
+threefry4x32 13 452821e6 38d01377 be5466cf 34e90c6c   00000000 00000000 00000000 80000000   b9ea931a eaa9ebc0 23814855 1ed78d0e
+threefry4x32 20 00000001 00000000 00000000 00000000   00000001 00000000 00000000 00000000   7abf626d 1ab006a8 df122d54 f32aad64
+threefry4x32 20 00000000 00000001 00000000 00000000   00000001 00000000 00000000 00000000   9ca4c2d0 52b79a44 746ff6b9 d2bc40a8
+threefry4x32 20 00000000 00000000 00000001 00000000   00000001 00000000 00000000 00000000   1660946a 5c6cb533 bce451d6 6a8ea7d1
+threefry4x32 20 00000000 00000000 00000000 00000001   00000001 00000000 00000000 00000000   aee9b8af d3974b35 08430dd8 c0144975
+threefry4x32 20 00000000 ffffffff 00000000 00000000   00000001 00000000 00000000 00000000   1d70ba8d 10b08201 d648f656 53725b82
+threefry4x32 20 00000000 80000000 00000000 00000000   00000001 00000000 00000000 00000000   da93366f 0c3172ae e540e7d3 4394643e
+threefry4x32 20 00000000 00000000 ffffffff 00000000   00000001 00000000 00000000 00000000   d63def2f 21dd1e3c f1f869aa 45651495
+threefry4x32 20 00000000 00000000 80000000 00000000   00000001 00000000 00000000 00000000   76d830a5 5626c957 ad7bab47 bce56186
+threefry4x32 20 00000000 00000000 00000000 ffffffff   00000001 00000000 00000000 00000000   929d0fdb 313aba54 6ddae3a7 458ac900
+threefry4x32 20 00000000 00000000 00000000 80000000   00000001 00000000 00000000 00000000   8a33982c 3e714678 8e459239 e69e7871
+threefry4x32 20 243f6a88 85a308d3 13198a2e 03707344   00000001 00000000 00000000 00000000   7771a0cb 14b9d81f 7f6fafa4 1ef38878
+threefry4x32 20 a4093822 299f31d0 082efa98 ec4e6c89   00000001 00000000 00000000 00000000   d2475970 69b39f1c 76a0e58d 6cbc7b00
+threefry4x32 20 452821e6 38d01377 be5466cf 34e90c6c   00000001 00000000 00000000 00000000   44e9188c f22b4558 abe99791 d7050ba1
+threefry4x32 20 00000001 00000000 00000000 00000000   00000000 00000001 00000000 00000000   cd5ca55b 0f511ce1 d034d9d4 4de57515
+threefry4x32 20 00000000 00000001 00000000 00000000   00000000 00000001 00000000 00000000   719ed999 5ee45a0a 98bf92f7 313eb33d
+threefry4x32 20 00000000 00000000 00000001 00000000   00000000 00000001 00000000 00000000   e3b5105e 17ff842b e76c7b45 9c8ec5eb
+threefry4x32 20 00000000 00000000 00000000 00000001   00000000 00000001 00000000 00000000   dbd1f89d 2d266865 223e2436 20da6b99
+threefry4x32 20 00000000 ffffffff 00000000 00000000   00000000 00000001 00000000 00000000   9bd6735a 912dd856 31e700d3 e846fe74
+threefry4x32 20 00000000 80000000 00000000 00000000   00000000 00000001 00000000 00000000   e999d1ec de625a88 2b62184a 7e757487
+threefry4x32 20 00000000 00000000 ffffffff 00000000   00000000 00000001 00000000 00000000   bbef6b52 46ec2e38 fb1ce33a 6f4d08a1
+threefry4x32 20 00000000 00000000 80000000 00000000   00000000 00000001 00000000 00000000   77de5928 2fd26df7 7c138b05 ec40d875
+threefry4x32 20 00000000 00000000 00000000 ffffffff   00000000 00000001 00000000 00000000   68b00fd7 28226ece 30717554 3caad6d9
+threefry4x32 20 00000000 00000000 00000000 80000000   00000000 00000001 00000000 00000000   7f1febcc b36e7136 8dc0b136 e7e907f9
+threefry4x32 20 243f6a88 85a308d3 13198a2e 03707344   00000000 00000001 00000000 00000000   da6b34b7 6f1f3431 a29d7413 a1ee6b27
+threefry4x32 20 a4093822 299f31d0 082efa98 ec4e6c89   00000000 00000001 00000000 00000000   a6b1f881 9dea4786 80989c4c 4d60c817
+threefry4x32 20 452821e6 38d01377 be5466cf 34e90c6c   00000000 00000001 00000000 00000000   48d517ee 57fe23cf 236383d0 f68f54ca
+threefry4x32 20 00000001 00000000 00000000 00000000   00000000 00000000 00000001 00000000   877ec138 5d60ec84 cf496d33 00810905
+threefry4x32 20 00000000 00000001 00000000 00000000   00000000 00000000 00000001 00000000   a32388e9 bb55a8c3 4b6bb74c 2f4db0e7
+threefry4x32 20 00000000 00000000 00000001 00000000   00000000 00000000 00000001 00000000   b36c626f f78b6390 618f2b73 d8f60c3b
+threefry4x32 20 00000000 00000000 00000000 00000001   00000000 00000000 00000001 00000000   d7ed773c 499f3a68 458782e4 d9587c59
+threefry4x32 20 00000000 ffffffff 00000000 00000000   00000000 00000000 00000001 00000000   c03ca044 8b53660e 4da73b98 cf3f5e8b
+threefry4x32 20 00000000 80000000 00000000 00000000   00000000 00000000 00000001 00000000   23d5f689 304886c9 c4dc0f19 04d89ded
+threefry4x32 20 00000000 00000000 ffffffff 00000000   00000000 00000000 00000001 00000000   47efa3ce fa438a0c 7e505603 bf41e2b5
+threefry4x32 20 00000000 00000000 80000000 00000000   00000000 00000000 00000001 00000000   b1fb5a5a 322e31ee bc46eaad 264c7a0a
+threefry4x32 20 00000000 00000000 00000000 ffffffff   00000000 00000000 00000001 00000000   2be25bd7 3ecff089 d667e103 0cc98f4b
+threefry4x32 20 00000000 00000000 00000000 80000000   00000000 00000000 00000001 00000000   dcc09281 25e8fc15 99b73154 8ecb92f4
+threefry4x32 20 243f6a88 85a308d3 13198a2e 03707344   00000000 00000000 00000001 00000000   354060d0 2a7af67b fe20d404 7e3851b5
+threefry4x32 20 a4093822 299f31d0 082efa98 ec4e6c89   00000000 00000000 00000001 00000000   f59114e5 924f6c4c 6e46f9f3 4148c3a4
+threefry4x32 20 452821e6 38d01377 be5466cf 34e90c6c   00000000 00000000 00000001 00000000   59ad2ff1 aaf66838 58f96539 41ac71f6
+threefry4x32 20 00000001 00000000 00000000 00000000   00000000 00000000 00000000 00000001   f9980dbb 6fb50a56 61316640 c5fbc269
+threefry4x32 20 00000000 00000001 00000000 00000000   00000000 00000000 00000000 00000001   29e66b28 0b31a602 813b6463 672b996c
+threefry4x32 20 00000000 00000000 00000001 00000000   00000000 00000000 00000000 00000001   97a75cdf 3e163e27 f762605f 24f1cf0d
+threefry4x32 20 00000000 00000000 00000000 00000001   00000000 00000000 00000000 00000001   11128c97 7cfedcf4 21ac3aeb c57f95a0
+threefry4x32 20 00000000 ffffffff 00000000 00000000   00000000 00000000 00000000 00000001   8871d08b 50a56a70 cf8b5fb1 41af799a
+threefry4x32 20 00000000 80000000 00000000 00000000   00000000 00000000 00000000 00000001   20d1b6dc 2ea43da2 d1d3ce8c e3a2ba78
+threefry4x32 20 00000000 00000000 ffffffff 00000000   00000000 00000000 00000000 00000001   84ce4cc5 9173f458 8f93d413 17f1917e
+threefry4x32 20 00000000 00000000 80000000 00000000   00000000 00000000 00000000 00000001   4f459d2a d6396b52 227fcfff 364fb84b
+threefry4x32 20 00000000 00000000 00000000 ffffffff   00000000 00000000 00000000 00000001   818780ad 84a418bb 89298bb2 6e029f7c
+threefry4x32 20 00000000 00000000 00000000 80000000   00000000 00000000 00000000 00000001   2f38ef82 fddbbda1 b835f37e ceca1194
+threefry4x32 20 243f6a88 85a308d3 13198a2e 03707344   00000000 00000000 00000000 00000001   ca5c1d73 966f4bb6 c39a67b5 700ef44f
+threefry4x32 20 a4093822 299f31d0 082efa98 ec4e6c89   00000000 00000000 00000000 00000001   b2be8a87 e80084dd 567e7c32 b2b567d1
+threefry4x32 20 452821e6 38d01377 be5466cf 34e90c6c   00000000 00000000 00000000 00000001   f9465abf 41dcb1e5 c3dd2934 60cefe14
+threefry4x32 20 00000001 00000000 00000000 00000000   00000000 ffffffff 00000000 00000000   f938ae0b 280a1a60 22588ce3 d2ad79e5
+threefry4x32 20 00000000 00000001 00000000 00000000   00000000 ffffffff 00000000 00000000   f9bb4d06 7bd59688 c26de361 afe0fd6b
+threefry4x32 20 00000000 00000000 00000001 00000000   00000000 ffffffff 00000000 00000000   e23d5d08 38c68a3c ff829bd3 2fc0e91d
+threefry4x32 20 00000000 00000000 00000000 00000001   00000000 ffffffff 00000000 00000000   6decfd6d c52434e1 5aec208d 59501671
+threefry4x32 20 00000000 ffffffff 00000000 00000000   00000000 ffffffff 00000000 00000000   7807880f fb81f5ae 3b8a50f6 b370c421
+threefry4x32 20 00000000 80000000 00000000 00000000   00000000 ffffffff 00000000 00000000   8f6a3d89 508c5cbf 9225f59b 71d1261a
+threefry4x32 20 00000000 00000000 ffffffff 00000000   00000000 ffffffff 00000000 00000000   9724a16b 8b0883c5 1846f2ff d6a10d39
+threefry4x32 20 00000000 00000000 80000000 00000000   00000000 ffffffff 00000000 00000000   54307a6e c60747fb edd0fbc8 0bd6fb57
+threefry4x32 20 00000000 00000000 00000000 ffffffff   00000000 ffffffff 00000000 00000000   05c03d1c 58007f68 ccba4dca 5eb0e23a
+threefry4x32 20 00000000 00000000 00000000 80000000   00000000 ffffffff 00000000 00000000   3b13b3ba 5e085212 d13c41d5 e856459b
+threefry4x32 20 243f6a88 85a308d3 13198a2e 03707344   00000000 ffffffff 00000000 00000000   33e6452a 35fc8e87 a16f03ef 68e38cf7
+threefry4x32 20 a4093822 299f31d0 082efa98 ec4e6c89   00000000 ffffffff 00000000 00000000   d348602b 00d485ba dfa639b3 d60e12cd
+threefry4x32 20 452821e6 38d01377 be5466cf 34e90c6c   00000000 ffffffff 00000000 00000000   02e4dfb4 8142a511 495c5c31 7ae0da50
+threefry4x32 20 00000001 00000000 00000000 00000000   00000000 80000000 00000000 00000000   d37eb236 2ddad9c3 61528ff7 b8ec5256
+threefry4x32 20 00000000 00000001 00000000 00000000   00000000 80000000 00000000 00000000   03ad393e bbc1bf89 dd6e098c 56a3302c
+threefry4x32 20 00000000 00000000 00000001 00000000   00000000 80000000 00000000 00000000   fc5b6ff0 879c918b d6e46000 fb47ab60
+threefry4x32 20 00000000 00000000 00000000 00000001   00000000 80000000 00000000 00000000   17b8b414 0aa2716b a6925cee 44b8be19
+threefry4x32 20 00000000 ffffffff 00000000 00000000   00000000 80000000 00000000 00000000   eec59a8b fd034061 6c249c4f 5271c003
+threefry4x32 20 00000000 80000000 00000000 00000000   00000000 80000000 00000000 00000000   0659aef3 347f8aa1 664a8892 e4183f59
+threefry4x32 20 00000000 00000000 ffffffff 00000000   00000000 80000000 00000000 00000000   0b0366fb 6d6e8025 da9b8e96 000fa93a
+threefry4x32 20 00000000 00000000 80000000 00000000   00000000 80000000 00000000 00000000   1415a6d4 44b1df75 e690b46c aff8c717
+threefry4x32 20 00000000 00000000 00000000 ffffffff   00000000 80000000 00000000 00000000   a7515669 034355b9 527c44b0 cf71b104
+threefry4x32 20 00000000 00000000 00000000 80000000   00000000 80000000 00000000 00000000   8c502590 9ce36ae7 45875b1c fde5ff97
+threefry4x32 20 243f6a88 85a308d3 13198a2e 03707344   00000000 80000000 00000000 00000000   d056e169 da3c6dab 31b3ed9f 70c8b685
+threefry4x32 20 a4093822 299f31d0 082efa98 ec4e6c89   00000000 80000000 00000000 00000000   941eac5f f50a12c3 bed601ff 6024a402
+threefry4x32 20 452821e6 38d01377 be5466cf 34e90c6c   00000000 80000000 00000000 00000000   67139da8 71e6f247 a90ff128 3fe6ccf0
+threefry4x32 20 00000001 00000000 00000000 00000000   00000000 00000000 ffffffff 00000000   b26e46d7 d58dcbea 44489127 2865ac93
+threefry4x32 20 00000000 00000001 00000000 00000000   00000000 00000000 ffffffff 00000000   14ee5b14 66aba2e0 6bd68aae f984f705
+threefry4x32 20 00000000 00000000 00000001 00000000   00000000 00000000 ffffffff 00000000   f49e7e65 dedd4390 4b104723 618625fc
+threefry4x32 20 00000000 00000000 00000000 00000001   00000000 00000000 ffffffff 00000000   577246b9 6d087fea 64b6d323 8e4fa21e
+threefry4x32 20 00000000 ffffffff 00000000 00000000   00000000 00000000 ffffffff 00000000   0c9b68b4 16289051 7b6b1ac6 23e3d806
+threefry4x32 20 00000000 80000000 00000000 00000000   00000000 00000000 ffffffff 00000000   f4c74238 f457f99a 7b7a0621 1d791994
+threefry4x32 20 00000000 00000000 ffffffff 00000000   00000000 00000000 ffffffff 00000000   79a8f615 4c1fb115 2439febc 91ec3ef7
+threefry4x32 20 00000000 00000000 80000000 00000000   00000000 00000000 ffffffff 00000000   505396e0 2aeac4e0 5aef015d a129a598
+threefry4x32 20 00000000 00000000 00000000 ffffffff   00000000 00000000 ffffffff 00000000   82832f91 e2733136 9677e3ff 96b94781
+threefry4x32 20 00000000 00000000 00000000 80000000   00000000 00000000 ffffffff 00000000   3037f522 33b7280b ff7f8973 d6131090
+threefry4x32 20 243f6a88 85a308d3 13198a2e 03707344   00000000 00000000 ffffffff 00000000   d385ce86 2bc39e5a 4ade2764 ba39188a
+threefry4x32 20 a4093822 299f31d0 082efa98 ec4e6c89   00000000 00000000 ffffffff 00000000   fa7c55f8 0ccf6a95 6828c88c b3b7edc8
+threefry4x32 20 452821e6 38d01377 be5466cf 34e90c6c   00000000 00000000 ffffffff 00000000   b0e93230 2a11fb81 75be814c e0be3860
+threefry4x32 20 00000001 00000000 00000000 00000000   00000000 00000000 80000000 00000000   3c62aa08 d99bfc63 72d34e76 781ae48c
+threefry4x32 20 00000000 00000001 00000000 00000000   00000000 00000000 80000000 00000000   f88da646 bc58451d dfb5c3f1 eb596c4c
+threefry4x32 20 00000000 00000000 00000001 00000000   00000000 00000000 80000000 00000000   8b6e05be 4455517d 416026d6 548b3e5d
+threefry4x32 20 00000000 00000000 00000000 00000001   00000000 00000000 80000000 00000000   9f6ab638 70addd3d 105b2dd6 2f87b26d
+threefry4x32 20 00000000 ffffffff 00000000 00000000   00000000 00000000 80000000 00000000   8f11466e 36aae720 31530649 dddbad07
+threefry4x32 20 00000000 80000000 00000000 00000000   00000000 00000000 80000000 00000000   193985e2 c5f3347d f1dc0637 6be021fa
+threefry4x32 20 00000000 00000000 ffffffff 00000000   00000000 00000000 80000000 00000000   5e289a03 80647773 10df1470 e035bce8
+threefry4x32 20 00000000 00000000 80000000 00000000   00000000 00000000 80000000 00000000   c6304224 34d873a7 db3b2b6e 54030b67
+threefry4x32 20 00000000 00000000 00000000 ffffffff   00000000 00000000 80000000 00000000   beaf10ec 8b48cada 668f7b2c e2fd86a7
+threefry4x32 20 00000000 00000000 00000000 80000000   00000000 00000000 80000000 00000000   9fbb252d 2bcb551c cc59a234 156ca0cb
+threefry4x32 20 243f6a88 85a308d3 13198a2e 03707344   00000000 00000000 80000000 00000000   32d9d5c3 b491382e e679cdb9 e6c96f8e
+threefry4x32 20 a4093822 299f31d0 082efa98 ec4e6c89   00000000 00000000 80000000 00000000   e5356b8c e1f3df45 8024b188 d2bf0aab
+threefry4x32 20 452821e6 38d01377 be5466cf 34e90c6c   00000000 00000000 80000000 00000000   6ef2396b ce289257 342f9c90 3aaee904
+threefry4x32 20 00000001 00000000 00000000 00000000   00000000 00000000 00000000 ffffffff   abc8ddc7 dbf5379e 3a809978 82f9096c
+threefry4x32 20 00000000 00000001 00000000 00000000   00000000 00000000 00000000 ffffffff   38b0bb32 c8ced8d8 b63b9968 dbf325b8
+threefry4x32 20 00000000 00000000 00000001 00000000   00000000 00000000 00000000 ffffffff   2086ba88 1cb8f743 07ac211a 965f6b64
+threefry4x32 20 00000000 00000000 00000000 00000001   00000000 00000000 00000000 ffffffff   07c6b1d7 4a66beb5 21c093bf 1081e95f
+threefry4x32 20 00000000 ffffffff 00000000 00000000   00000000 00000000 00000000 ffffffff   ad660005 4e918661 86f9c5ae a244990e
+threefry4x32 20 00000000 80000000 00000000 00000000   00000000 00000000 00000000 ffffffff   9ebee205 166de65d 48b85c4d 71a4a225
+threefry4x32 20 00000000 00000000 ffffffff 00000000   00000000 00000000 00000000 ffffffff   24fa4e0b 6f4a4f1c 3efc6acf 2f0af4b4
+threefry4x32 20 00000000 00000000 80000000 00000000   00000000 00000000 00000000 ffffffff   d781cec1 16e2bca6 959e05cc 2b4dd292
+threefry4x32 20 00000000 00000000 00000000 ffffffff   00000000 00000000 00000000 ffffffff   24aa0e95 a5192356 67a67574 53a84850
+threefry4x32 20 00000000 00000000 00000000 80000000   00000000 00000000 00000000 ffffffff   f2016f23 a78565ae 1880c681 3dd669b8
+threefry4x32 20 243f6a88 85a308d3 13198a2e 03707344   00000000 00000000 00000000 ffffffff   c533f368 9dc05fec 46387b65 e6df5427
+threefry4x32 20 a4093822 299f31d0 082efa98 ec4e6c89   00000000 00000000 00000000 ffffffff   86dbe6b0 ee36ed73 d2003c4c 85b2f032
+threefry4x32 20 452821e6 38d01377 be5466cf 34e90c6c   00000000 00000000 00000000 ffffffff   8f40ddae 6720f14a 1295037e 2b6fe580
+threefry4x32 20 00000001 00000000 00000000 00000000   00000000 00000000 00000000 80000000   a7ab1fa0 a48016dd 199d9549 9c7d6e97
+threefry4x32 20 00000000 00000001 00000000 00000000   00000000 00000000 00000000 80000000   6140be19 0bb69fbf 41262d16 e577b795
+threefry4x32 20 00000000 00000000 00000001 00000000   00000000 00000000 00000000 80000000   f3eeeb6c f70a689d 96074833 8d2913c3
+threefry4x32 20 00000000 00000000 00000000 00000001   00000000 00000000 00000000 80000000   4d3c8d35 eaae92ef 9d504bb9 ebf6a44f
+threefry4x32 20 00000000 ffffffff 00000000 00000000   00000000 00000000 00000000 80000000   a79d4a27 b64d6bc7 dedd5f31 1d036d32
+threefry4x32 20 00000000 80000000 00000000 00000000   00000000 00000000 00000000 80000000   0f7e61c8 551a5639 601396b7 072ed781
+threefry4x32 20 00000000 00000000 ffffffff 00000000   00000000 00000000 00000000 80000000   e44dfcc4 53432a37 1e3b8ac0 4d398038
+threefry4x32 20 00000000 00000000 80000000 00000000   00000000 00000000 00000000 80000000   47688a8d b01f446f c12e5b49 7f858ea4
+threefry4x32 20 00000000 00000000 00000000 ffffffff   00000000 00000000 00000000 80000000   634c27d7 898b3477 05a72e5a e4319af9
+threefry4x32 20 00000000 00000000 00000000 80000000   00000000 00000000 00000000 80000000   d493dd04 d6964a71 f5fec603 399b5e2f
+threefry4x32 20 243f6a88 85a308d3 13198a2e 03707344   00000000 00000000 00000000 80000000   32c36c0b 33dc130f c0890ca1 b34d5012
+threefry4x32 20 a4093822 299f31d0 082efa98 ec4e6c89   00000000 00000000 00000000 80000000   af2f3e6a c77e8257 001209a2 3d78e3ee
+threefry4x32 20 452821e6 38d01377 be5466cf 34e90c6c   00000000 00000000 00000000 80000000   c089a051 b8cbe6c4 70ade481 414be4a8
+#Only aesni test is the FIPS197 test vector
+aesni4x32 10 33221100 77665544 bbaa9988 ffeeddcc 03020100 07060504 0b0a0908 0f0e0d0c d8e0c469 30047b6a 80b7cdd8 5ac5b470
+ars4x32 7 00000001 00000000 00000000 00000000 00000001 00000000 00000000 00000000 3523162b dc14d20c 79184077 72184193
+ars4x32 7 00000100 00000000 00000000 00000000 00000001 00000000 00000000 00000000 6fb6e62d 68b661a4 6f1280f3 22cdb932
+ars4x32 7 00010000 00000000 00000000 00000000 00000001 00000000 00000000 00000000 55b66ba6 0b73dfc4 ca2010ae ad28d97e
+ars4x32 7 01000000 00000000 00000000 00000000 00000001 00000000 00000000 00000000 af6cb834 72fab497 290540d3 28a63677
+ars4x32 7 00000000 00000001 00000000 00000000 00000001 00000000 00000000 00000000 f928af71 52594c2a e41e8545 f10cae23
+ars4x32 7 00000000 00000100 00000000 00000000 00000001 00000000 00000000 00000000 f9498100 dc442236 92194dd1 83a093c7
+ars4x32 7 00000000 00010000 00000000 00000000 00000001 00000000 00000000 00000000 f87500fe 1adb2f6b 919d5769 a882d0f0
+ars4x32 7 00000000 01000000 00000000 00000000 00000001 00000000 00000000 00000000 c6e27fb8 5dd75c62 84f2a444 11fd91a4
+ars4x32 7 00000000 00000000 00000001 00000000 00000001 00000000 00000000 00000000 b12ef4b4 748f8bd7 9fb1399d d39547a8
+ars4x32 7 00000000 00000000 00000100 00000000 00000001 00000000 00000000 00000000 80a66748 ba2bdf93 8d5fae68 0edc78d5
+ars4x32 7 00000000 00000000 00010000 00000000 00000001 00000000 00000000 00000000 11fb3330 432514e5 0e1a63d2 c3f4b292
+ars4x32 7 00000000 00000000 01000000 00000000 00000001 00000000 00000000 00000000 a7b5bf1b b295ebeb 544f1fdf 947bb346
+ars4x32 7 00000000 00000000 00000000 00000001 00000001 00000000 00000000 00000000 fa8bab94 ef7e7d49 d67f6d8f b030b353
+ars4x32 7 00000000 00000000 00000000 00000100 00000001 00000000 00000000 00000000 4177e35d b5585986 e16e468b 7b051fe8
+ars4x32 7 00000000 00000000 00000000 00010000 00000001 00000000 00000000 00000000 ef4ae251 c01058d0 91844766 73b965e9
+ars4x32 7 00000000 00000000 00000000 01000000 00000001 00000000 00000000 00000000 789dfd47 2f2f3ed2 8f55eba5 15af98bd
+ars4x32 7 0000ff00 00000000 00000000 00000000 00000001 00000000 00000000 00000000 c2cbebe0 4906b074 99d2a4fe 74204972
+ars4x32 7 00008000 00000000 00000000 00000000 00000001 00000000 00000000 00000000 2845e523 51e91cb7 a79b537e 1a5875f1
+ars4x32 7 00ff0000 00000000 00000000 00000000 00000001 00000000 00000000 00000000 022013d3 4b413126 5e2da277 774ce804
+ars4x32 7 00800000 00000000 00000000 00000000 00000001 00000000 00000000 00000000 af7088fb f4e42652 2d5d6163 e79832b3
+ars4x32 7 ff000000 00000000 00000000 00000000 00000001 00000000 00000000 00000000 81fc8a91 7bff9086 03393910 e8c2f256
+ars4x32 7 80000000 00000000 00000000 00000000 00000001 00000000 00000000 00000000 42231b13 ff20707d 5f2376f2 ce8672b7
+ars4x32 7 00000000 000000ff 00000000 00000000 00000001 00000000 00000000 00000000 de5ee9e4 f3f68d60 03aeb145 5ab70d58
+ars4x32 7 00000000 00000080 00000000 00000000 00000001 00000000 00000000 00000000 2815ad0c 34ec29d2 2afb2a63 4d4ded27
+ars4x32 7 00000000 0000ff00 00000000 00000000 00000001 00000000 00000000 00000000 f51e542f cc4cba41 9cd20f31 7b45463a
+ars4x32 7 00000000 00008000 00000000 00000000 00000001 00000000 00000000 00000000 32e737f1 e90ae2d4 c517c727 43dac8c0
+ars4x32 7 00000000 00ff0000 00000000 00000000 00000001 00000000 00000000 00000000 59f476a9 25a68376 12aaa448 4204c7ef
+ars4x32 7 00000000 00800000 00000000 00000000 00000001 00000000 00000000 00000000 109a62da 375da48e e667373f 7d300432
+ars4x32 7 00000000 ff000000 00000000 00000000 00000001 00000000 00000000 00000000 a9e31d93 f36c93a0 9257bd76 53618c92
+ars4x32 7 00000000 80000000 00000000 00000000 00000001 00000000 00000000 00000000 82e49339 8779350e 88dbb182 4b767bc3
+ars4x32 7 00000000 00000000 000000ff 00000000 00000001 00000000 00000000 00000000 1fba16c5 87a56b41 eee975e7 fcd9c427
+ars4x32 7 00000000 00000000 00000080 00000000 00000001 00000000 00000000 00000000 4c4e8cee 26c911ed 82c9c419 7e922f32
+ars4x32 7 00000000 00000000 0000ff00 00000000 00000001 00000000 00000000 00000000 4c6b9e86 8b63621a 0ce69c5a 8e1214a8
+ars4x32 7 00000000 00000000 00008000 00000000 00000001 00000000 00000000 00000000 3345dbf8 a21b6deb 95df8882 2cee5bf6
+ars4x32 7 00000000 00000000 00ff0000 00000000 00000001 00000000 00000000 00000000 a95808a6 9ac50792 4e8f64bb 23481cc2
+ars4x32 7 00000000 00000000 00800000 00000000 00000001 00000000 00000000 00000000 ff154d65 f952e6b8 49fce617 0e5c66b9
+ars4x32 7 00000000 00000000 ff000000 00000000 00000001 00000000 00000000 00000000 7fa55a59 c660b95b 82afe74e 11b90abe
+ars4x32 7 00000000 00000000 80000000 00000000 00000001 00000000 00000000 00000000 8dc1b022 cd9abb84 418a32dc edc93d06
+ars4x32 7 00000000 00000000 00000000 000000ff 00000001 00000000 00000000 00000000 014375b0 28d52a24 7c0dfda2 5fb669eb
+ars4x32 7 00000000 00000000 00000000 00000080 00000001 00000000 00000000 00000000 888951cd b983f2dd 673d28ca 9715cfb2
+ars4x32 7 00000000 00000000 00000000 0000ff00 00000001 00000000 00000000 00000000 407e6c65 cf1aaaaa 00f5e6a5 b842096d
+ars4x32 7 00000000 00000000 00000000 00008000 00000001 00000000 00000000 00000000 3b7ee2df d3bd1c9f c106f806 800057b6
+ars4x32 7 00000000 00000000 00000000 00ff0000 00000001 00000000 00000000 00000000 a72a1c5b 7ddec8b7 58758642 9a3130c2
+ars4x32 7 00000000 00000000 00000000 00800000 00000001 00000000 00000000 00000000 5f9a8a5d ed8fe111 2e184cd9 5ebea31c
+ars4x32 7 00000000 00000000 00000000 ff000000 00000001 00000000 00000000 00000000 de5527e7 7d0b3f49 7dc8235a dc6ed5c9
+ars4x32 7 00000000 00000000 00000000 80000000 00000001 00000000 00000000 00000000 a2154453 e90a0384 0e3816c0 bdb8b8e0
+ars4x32 7 886a3f24 d308a385 2e8a1913 44737003 00000001 00000000 00000000 00000000 bb4006c7 33dbc0db 1ea0a1c9 7f9541e3
+ars4x32 7 223809a4 d0319f29 98fa2e08 896c4eec 00000001 00000000 00000000 00000000 36f0672e 0337ce56 45e7cf25 197db869
+ars4x32 7 e6212845 7713d038 cf6654be 6c0ce934 00000001 00000000 00000000 00000000 bb33ad5e 8825d64e 9f8cbc28 722c7449
+ars4x32 7 00000001 00000000 00000000 00000000 00000100 00000000 00000000 00000000 e2fef76c e69a2546 354f712d cf15f67f
+ars4x32 7 00000100 00000000 00000000 00000000 00000100 00000000 00000000 00000000 34fffcea 8ea015ce eccfaa90 bb401947
+ars4x32 7 00010000 00000000 00000000 00000000 00000100 00000000 00000000 00000000 d727b857 560f384e 4d6f6d00 df267f76
+ars4x32 7 01000000 00000000 00000000 00000000 00000100 00000000 00000000 00000000 a9878fc5 dc39724f 37be857f a90a5d68
+ars4x32 7 00000000 00000001 00000000 00000000 00000100 00000000 00000000 00000000 38041b25 540aee93 8a7dea41 8531fc3c
+ars4x32 7 00000000 00000100 00000000 00000000 00000100 00000000 00000000 00000000 ed3b3cd0 039b7fee 59bfaf4c 2bb3ad73
+ars4x32 7 00000000 00010000 00000000 00000000 00000100 00000000 00000000 00000000 6d00d7e3 5d24e1f6 0c0f476a d7a7b45c
+ars4x32 7 00000000 01000000 00000000 00000000 00000100 00000000 00000000 00000000 bac0b2d2 f0bd7fa6 fdb5bbe1 d64347c3
+ars4x32 7 00000000 00000000 00000001 00000000 00000100 00000000 00000000 00000000 e360493c 31d69a9a 820e0bfa dd9a3dce
+ars4x32 7 00000000 00000000 00000100 00000000 00000100 00000000 00000000 00000000 424c05df 59e03d06 8d2b91b9 a8c6c4fd
+ars4x32 7 00000000 00000000 00010000 00000000 00000100 00000000 00000000 00000000 1a0f53d9 bc1548db 245e6e04 d5bdca89
+ars4x32 7 00000000 00000000 01000000 00000000 00000100 00000000 00000000 00000000 d1e06460 1d1230a9 0db6634b ada192f5
+ars4x32 7 00000000 00000000 00000000 00000001 00000100 00000000 00000000 00000000 cadb6f7f 90f2ff0f fd7e194d 0f20d0e1
+ars4x32 7 00000000 00000000 00000000 00000100 00000100 00000000 00000000 00000000 b23f4afe 1d5b5b1e 188fd756 c1211130
+ars4x32 7 00000000 00000000 00000000 00010000 00000100 00000000 00000000 00000000 cbfe49f4 1f7ead50 111d546f 0cfe779e
+ars4x32 7 00000000 00000000 00000000 01000000 00000100 00000000 00000000 00000000 ec6701cf c96ceaa5 c6ac2bea f8d24538
+ars4x32 7 0000ff00 00000000 00000000 00000000 00000100 00000000 00000000 00000000 d2a5788d 2ac03ddb 4694e11b 19a821ff
+ars4x32 7 00008000 00000000 00000000 00000000 00000100 00000000 00000000 00000000 8c1a80e0 c1d9bca3 33bb5502 3a699ee9
+ars4x32 7 00ff0000 00000000 00000000 00000000 00000100 00000000 00000000 00000000 4fb35bd5 f75ba852 20e4c1ac d89e8e78
+ars4x32 7 00800000 00000000 00000000 00000000 00000100 00000000 00000000 00000000 01de2719 57f13a99 4a865950 83467712
+ars4x32 7 ff000000 00000000 00000000 00000000 00000100 00000000 00000000 00000000 eda124b0 86926832 6b07d1ae 6089e29e
+ars4x32 7 80000000 00000000 00000000 00000000 00000100 00000000 00000000 00000000 3f7a7507 dcd9ce76 776f338f e0de1d10
+ars4x32 7 00000000 000000ff 00000000 00000000 00000100 00000000 00000000 00000000 0045b783 c8882fd9 589f8c68 f1215797
+ars4x32 7 00000000 00000080 00000000 00000000 00000100 00000000 00000000 00000000 aa75b9e2 b3bcea23 ee080acb 80c007c0
+ars4x32 7 00000000 0000ff00 00000000 00000000 00000100 00000000 00000000 00000000 dec4660c 586d36d3 405af16c e6747c3d
+ars4x32 7 00000000 00008000 00000000 00000000 00000100 00000000 00000000 00000000 ad1bc2ec 4e80db1d 555bb146 0adb8978
+ars4x32 7 00000000 00ff0000 00000000 00000000 00000100 00000000 00000000 00000000 b30955b3 506de1ee 517e0ce9 adcb4423
+ars4x32 7 00000000 00800000 00000000 00000000 00000100 00000000 00000000 00000000 fca5abdc 155e1f1a 1294a02d ac338d14
+ars4x32 7 00000000 ff000000 00000000 00000000 00000100 00000000 00000000 00000000 0f354869 9db19735 c62a061c d781a794
+ars4x32 7 00000000 80000000 00000000 00000000 00000100 00000000 00000000 00000000 6aa0ec2d 52169669 52cc849c b04b4e2e
+ars4x32 7 00000000 00000000 000000ff 00000000 00000100 00000000 00000000 00000000 76a8695f e2657f52 66132680 459fac17
+ars4x32 7 00000000 00000000 00000080 00000000 00000100 00000000 00000000 00000000 65b2c50a f0fa659e 2955f763 dd50b7be
+ars4x32 7 00000000 00000000 0000ff00 00000000 00000100 00000000 00000000 00000000 46e35843 9ed05230 93cb262c 82447770
+ars4x32 7 00000000 00000000 00008000 00000000 00000100 00000000 00000000 00000000 c90129e3 17bbb904 93b73b91 54bd4ecb
+ars4x32 7 00000000 00000000 00ff0000 00000000 00000100 00000000 00000000 00000000 f6b8ea4f 56dc57d8 b1da974c 930f4404
+ars4x32 7 00000000 00000000 00800000 00000000 00000100 00000000 00000000 00000000 62f1a1a9 9f4bfe1e b147e06a 89480f80
+ars4x32 7 00000000 00000000 ff000000 00000000 00000100 00000000 00000000 00000000 8ccf46b7 3c96fa79 dbaddd6e 6d4a8f9f
+ars4x32 7 00000000 00000000 80000000 00000000 00000100 00000000 00000000 00000000 9cfd0a12 dbd449d0 0899f1b0 776734aa
+ars4x32 7 00000000 00000000 00000000 000000ff 00000100 00000000 00000000 00000000 164e2a2e 0687b6b0 28ae5171 cf72b434
+ars4x32 7 00000000 00000000 00000000 00000080 00000100 00000000 00000000 00000000 ba0ff3f7 55904f5a f5654604 39ed84bd
+ars4x32 7 00000000 00000000 00000000 0000ff00 00000100 00000000 00000000 00000000 53066b99 83a4d1ed 454b66bd 46c3db2b
+ars4x32 7 00000000 00000000 00000000 00008000 00000100 00000000 00000000 00000000 d932d01f 523fc11c 649026d7 78555d42
+ars4x32 7 00000000 00000000 00000000 00ff0000 00000100 00000000 00000000 00000000 22692731 a3e84efd a62e8563 7d082ea0
+ars4x32 7 00000000 00000000 00000000 00800000 00000100 00000000 00000000 00000000 cc1faa6e d153f41f e49510b5 7414ee11
+ars4x32 7 00000000 00000000 00000000 ff000000 00000100 00000000 00000000 00000000 f75eee60 cfd19dbb 6b2928db a23eaa4d
+ars4x32 7 00000000 00000000 00000000 80000000 00000100 00000000 00000000 00000000 eb212ad6 d1798ddd 1cb1d3a2 4faa492c
+ars4x32 7 886a3f24 d308a385 2e8a1913 44737003 00000100 00000000 00000000 00000000 16f12765 03364a45 2ad9d46e a3e9a74c
+ars4x32 7 223809a4 d0319f29 98fa2e08 896c4eec 00000100 00000000 00000000 00000000 62163ea3 73e12817 e531a348 50c03c1e
+ars4x32 7 e6212845 7713d038 cf6654be 6c0ce934 00000100 00000000 00000000 00000000 5f2bd4b2 d3e5db14 64a054e9 1a7f038c
+ars4x32 7 00000001 00000000 00000000 00000000 00010000 00000000 00000000 00000000 89946751 a8781167 cec08928 26e12d35
+ars4x32 7 00000100 00000000 00000000 00000000 00010000 00000000 00000000 00000000 e8fcd218 527420d0 5bdf9eb9 88275738
+ars4x32 7 00010000 00000000 00000000 00000000 00010000 00000000 00000000 00000000 e5349df5 2bebd533 051d33a9 79089581
+ars4x32 7 01000000 00000000 00000000 00000000 00010000 00000000 00000000 00000000 77745613 fa0843e2 574548a4 4ad71f07
+ars4x32 7 00000000 00000001 00000000 00000000 00010000 00000000 00000000 00000000 759a7b4f e250af00 67feb99b c9bcd5a8
+ars4x32 7 00000000 00000100 00000000 00000000 00010000 00000000 00000000 00000000 f2fa46c5 4bc8e03a 9da5f00b e94f26be
+ars4x32 7 00000000 00010000 00000000 00000000 00010000 00000000 00000000 00000000 b24af7b7 8b39e81b 516497b4 03d45328
+ars4x32 7 00000000 01000000 00000000 00000000 00010000 00000000 00000000 00000000 74518558 34a6b002 6b2295ac 259c675a
+ars4x32 7 00000000 00000000 00000001 00000000 00010000 00000000 00000000 00000000 5a88b52d 6326fe18 c4e87f3e de32b54d
+ars4x32 7 00000000 00000000 00000100 00000000 00010000 00000000 00000000 00000000 88e59a00 51d28a83 f6e4b330 746a5e21
+ars4x32 7 00000000 00000000 00010000 00000000 00010000 00000000 00000000 00000000 1d7a1606 84e4cbbd 1abfa751 44c1af28
+ars4x32 7 00000000 00000000 01000000 00000000 00010000 00000000 00000000 00000000 635b17fa 93d2b246 18dff0d5 44174196
+ars4x32 7 00000000 00000000 00000000 00000001 00010000 00000000 00000000 00000000 9439d321 39b6ed65 f29ad358 5b3ab33b
+ars4x32 7 00000000 00000000 00000000 00000100 00010000 00000000 00000000 00000000 d3b226d0 f17ae0c4 1c08b11d 770fabda
+ars4x32 7 00000000 00000000 00000000 00010000 00010000 00000000 00000000 00000000 510571eb b26a689b ed6354f4 72f4dc67
+ars4x32 7 00000000 00000000 00000000 01000000 00010000 00000000 00000000 00000000 2b6f7eb0 d09fe512 5c4059fa 10b93549
+ars4x32 7 0000ff00 00000000 00000000 00000000 00010000 00000000 00000000 00000000 a01993d5 792f4743 856cc064 b4c1aa0b
+ars4x32 7 00008000 00000000 00000000 00000000 00010000 00000000 00000000 00000000 a9be5bef fb21cd0a e6a36818 7ce9d3cc
+ars4x32 7 00ff0000 00000000 00000000 00000000 00010000 00000000 00000000 00000000 520e92c7 df1e1219 7b1ecbef ae4ecbab
+ars4x32 7 00800000 00000000 00000000 00000000 00010000 00000000 00000000 00000000 78b673a8 4b6699ce 9fbbed20 9e7c251e
+ars4x32 7 ff000000 00000000 00000000 00000000 00010000 00000000 00000000 00000000 e62aee2b 70e15362 48919226 6c8b2ea8
+ars4x32 7 80000000 00000000 00000000 00000000 00010000 00000000 00000000 00000000 e18e5b03 b73ea66a 17fa2367 9bec1912
+ars4x32 7 00000000 000000ff 00000000 00000000 00010000 00000000 00000000 00000000 d9653b53 8e53c7f2 f7e28d83 f382e091
+ars4x32 7 00000000 00000080 00000000 00000000 00010000 00000000 00000000 00000000 b8ab1362 ca09b231 b6e182e4 0898a049
+ars4x32 7 00000000 0000ff00 00000000 00000000 00010000 00000000 00000000 00000000 9100d155 d1f9195a 65e17e27 25335ad9
+ars4x32 7 00000000 00008000 00000000 00000000 00010000 00000000 00000000 00000000 6fdbdcdd fe852f14 2c7ea5e6 fe6ed6a4
+ars4x32 7 00000000 00ff0000 00000000 00000000 00010000 00000000 00000000 00000000 2e003c15 fc696b20 4fa0d3e8 187a9ad0
+ars4x32 7 00000000 00800000 00000000 00000000 00010000 00000000 00000000 00000000 e6a6230d d621826a ceaff40d dab1fd68
+ars4x32 7 00000000 ff000000 00000000 00000000 00010000 00000000 00000000 00000000 23b972dd 6a41102e 3fefaa9f 787d61d2
+ars4x32 7 00000000 80000000 00000000 00000000 00010000 00000000 00000000 00000000 38217de7 996aec37 c2ac8fc7 6a85fe7d
+ars4x32 7 00000000 00000000 000000ff 00000000 00010000 00000000 00000000 00000000 b9110c72 b89bd9e7 af746395 ad3dab5e
+ars4x32 7 00000000 00000000 00000080 00000000 00010000 00000000 00000000 00000000 7b8e959a f6a29350 dd89bcd6 0b2de298
+ars4x32 7 00000000 00000000 0000ff00 00000000 00010000 00000000 00000000 00000000 61017e12 acf42650 9db18422 a6fead93
+ars4x32 7 00000000 00000000 00008000 00000000 00010000 00000000 00000000 00000000 1c770454 668ef738 76e03c43 2c0be368
+ars4x32 7 00000000 00000000 00ff0000 00000000 00010000 00000000 00000000 00000000 8e3473f6 cab98281 79318e54 7bff427e
+ars4x32 7 00000000 00000000 00800000 00000000 00010000 00000000 00000000 00000000 4f76299a e1d27fee f05ea39e 60eed953
+ars4x32 7 00000000 00000000 ff000000 00000000 00010000 00000000 00000000 00000000 80b8e85c 39987169 5689feb9 f6896150
+ars4x32 7 00000000 00000000 80000000 00000000 00010000 00000000 00000000 00000000 28409dad 503d924f 7a86db93 fa9a1b86
+ars4x32 7 00000000 00000000 00000000 000000ff 00010000 00000000 00000000 00000000 81162d5b 17805524 0f746072 56198ae6
+ars4x32 7 00000000 00000000 00000000 00000080 00010000 00000000 00000000 00000000 b02e2741 d0a55125 833710d0 99095698
+ars4x32 7 00000000 00000000 00000000 0000ff00 00010000 00000000 00000000 00000000 1d1a877f 6248d773 42ff4f8d f3318007
+ars4x32 7 00000000 00000000 00000000 00008000 00010000 00000000 00000000 00000000 953eaa01 345cb173 89b1a43d 2a262484
+ars4x32 7 00000000 00000000 00000000 00ff0000 00010000 00000000 00000000 00000000 2f99217b e3265774 f8c7097d 176838e1
+ars4x32 7 00000000 00000000 00000000 00800000 00010000 00000000 00000000 00000000 7b455b7a 8f44de5b 49b4e489 4efecc1f
+ars4x32 7 00000000 00000000 00000000 ff000000 00010000 00000000 00000000 00000000 89d36bdc 7250509e 154947d6 2b24eee7
+ars4x32 7 00000000 00000000 00000000 80000000 00010000 00000000 00000000 00000000 805902c7 5fe8da24 5596a805 919414a5
+ars4x32 7 886a3f24 d308a385 2e8a1913 44737003 00010000 00000000 00000000 00000000 a1f28e94 d9c2bd6e d1aefdb8 06de12b5
+ars4x32 7 223809a4 d0319f29 98fa2e08 896c4eec 00010000 00000000 00000000 00000000 0f57450c 94b448ed 3efb8323 d0002896
+ars4x32 7 e6212845 7713d038 cf6654be 6c0ce934 00010000 00000000 00000000 00000000 73005580 e1245058 41d4db4c 21861651
+ars4x32 7 00000001 00000000 00000000 00000000 01000000 00000000 00000000 00000000 5c4b4fac 4a902da1 49c67894 81affdbc
+ars4x32 7 00000100 00000000 00000000 00000000 01000000 00000000 00000000 00000000 80dffd64 942af8b4 91ce56d0 a1f0b1d8
+ars4x32 7 00010000 00000000 00000000 00000000 01000000 00000000 00000000 00000000 f64d4d05 4aaf07b4 e42433b4 bb9a2dcd
+ars4x32 7 01000000 00000000 00000000 00000000 01000000 00000000 00000000 00000000 00d8b708 3a583109 a0b663ce dc387c79
+ars4x32 7 00000000 00000001 00000000 00000000 01000000 00000000 00000000 00000000 bde8b707 b1d0fc98 2a6e75e9 69b13bc8
+ars4x32 7 00000000 00000100 00000000 00000000 01000000 00000000 00000000 00000000 921cd0c0 20641dd8 4077e8a0 4015c4f3
+ars4x32 7 00000000 00010000 00000000 00000000 01000000 00000000 00000000 00000000 1d992c48 19122a0e 29855702 e7fe63e8
+ars4x32 7 00000000 01000000 00000000 00000000 01000000 00000000 00000000 00000000 d3615b62 a10a3fbf e8c529eb 8ee27361
+ars4x32 7 00000000 00000000 00000001 00000000 01000000 00000000 00000000 00000000 0b120f22 3dc6329e 1ddcb426 7a0dbecb
+ars4x32 7 00000000 00000000 00000100 00000000 01000000 00000000 00000000 00000000 22d34172 9bd694bc 16621499 14971a6f
+ars4x32 7 00000000 00000000 00010000 00000000 01000000 00000000 00000000 00000000 f5239b2f 825cef05 6dc375a1 cb8d3678
+ars4x32 7 00000000 00000000 01000000 00000000 01000000 00000000 00000000 00000000 ebfcdf2c e82a8caf f0358985 82d5e001
+ars4x32 7 00000000 00000000 00000000 00000001 01000000 00000000 00000000 00000000 d6184b2f 521d122b 1b58dbde 2ee393f4
+ars4x32 7 00000000 00000000 00000000 00000100 01000000 00000000 00000000 00000000 e270e869 3f150608 7ffc8753 6c417364
+ars4x32 7 00000000 00000000 00000000 00010000 01000000 00000000 00000000 00000000 057cf2ab 4e817a4e a155ce11 e508ff07
+ars4x32 7 00000000 00000000 00000000 01000000 01000000 00000000 00000000 00000000 af6928f4 77a40536 ee3a8087 4b9ed5a1
+ars4x32 7 0000ff00 00000000 00000000 00000000 01000000 00000000 00000000 00000000 65a7b7d5 f7988414 f7753877 44da2732
+ars4x32 7 00008000 00000000 00000000 00000000 01000000 00000000 00000000 00000000 d32b4207 e3ccc6da a74431ce edc0c367
+ars4x32 7 00ff0000 00000000 00000000 00000000 01000000 00000000 00000000 00000000 15cdd5ad b95621a7 9df98e93 7afc642d
+ars4x32 7 00800000 00000000 00000000 00000000 01000000 00000000 00000000 00000000 f79e3600 278a9ff4 25840b72 ddbe0f3a
+ars4x32 7 ff000000 00000000 00000000 00000000 01000000 00000000 00000000 00000000 6f3a0542 74b95c62 7079dc80 c403d4fd
+ars4x32 7 80000000 00000000 00000000 00000000 01000000 00000000 00000000 00000000 fefe9a3d 77d75f58 07bdbf41 f81a8b77
+ars4x32 7 00000000 000000ff 00000000 00000000 01000000 00000000 00000000 00000000 07af7386 3b4eded0 e11204fe 39a066c6
+ars4x32 7 00000000 00000080 00000000 00000000 01000000 00000000 00000000 00000000 846fda1a c6652537 e644a37a 0d25ac39
+ars4x32 7 00000000 0000ff00 00000000 00000000 01000000 00000000 00000000 00000000 790a495a 8e01d43b 1ba7f6d0 bd42895b
+ars4x32 7 00000000 00008000 00000000 00000000 01000000 00000000 00000000 00000000 fcb0bb8a 81e4607b 0a0b331c 133a6780
+ars4x32 7 00000000 00ff0000 00000000 00000000 01000000 00000000 00000000 00000000 aae2bd69 f2ed7a43 6dafd25c 1fee4b82
+ars4x32 7 00000000 00800000 00000000 00000000 01000000 00000000 00000000 00000000 455f5a2c 876960c9 0e7ca579 08c9afed
+ars4x32 7 00000000 ff000000 00000000 00000000 01000000 00000000 00000000 00000000 59ce76c2 e0a6e62a 3ad76158 ddb9d93e
+ars4x32 7 00000000 80000000 00000000 00000000 01000000 00000000 00000000 00000000 6659a57e 986e656e 3013c3fb 61ebc630
+ars4x32 7 00000000 00000000 000000ff 00000000 01000000 00000000 00000000 00000000 907e763c c6b83a25 ef89a90f 74fdb694
+ars4x32 7 00000000 00000000 00000080 00000000 01000000 00000000 00000000 00000000 fba4b3a6 477cc9c2 bcce80ce b6f101b0
+ars4x32 7 00000000 00000000 0000ff00 00000000 01000000 00000000 00000000 00000000 710adbb1 3b7b935a bfa43ed9 af53d3ee
+ars4x32 7 00000000 00000000 00008000 00000000 01000000 00000000 00000000 00000000 993981f3 10a0761d 18b966d6 db95020b
+ars4x32 7 00000000 00000000 00ff0000 00000000 01000000 00000000 00000000 00000000 23277b85 4775d2a1 389e8a20 6d6e9a32
+ars4x32 7 00000000 00000000 00800000 00000000 01000000 00000000 00000000 00000000 83b8cda3 dddafdcd b241246d f8ef5001
+ars4x32 7 00000000 00000000 ff000000 00000000 01000000 00000000 00000000 00000000 ca3d1252 eb2f2305 882985a7 06dd099b
+ars4x32 7 00000000 00000000 80000000 00000000 01000000 00000000 00000000 00000000 af730151 3ebf4c13 ddb6ac40 a6b9f508
+ars4x32 7 00000000 00000000 00000000 000000ff 01000000 00000000 00000000 00000000 2606cdef e2398e47 1eefffab b8443df5
+ars4x32 7 00000000 00000000 00000000 00000080 01000000 00000000 00000000 00000000 8108c137 2f79064f 9184f6dd 1984b4d2
+ars4x32 7 00000000 00000000 00000000 0000ff00 01000000 00000000 00000000 00000000 dac3d4d8 85e7cf04 22b2b6c0 ca9cdbaa
+ars4x32 7 00000000 00000000 00000000 00008000 01000000 00000000 00000000 00000000 d91f06c5 79dbe78b a6ee5140 f5e3e1d4
+ars4x32 7 00000000 00000000 00000000 00ff0000 01000000 00000000 00000000 00000000 e49c12eb 805810c6 4389010c 438dd318
+ars4x32 7 00000000 00000000 00000000 00800000 01000000 00000000 00000000 00000000 2baf979c 0b234238 7a91dcee 8f2195fe
+ars4x32 7 00000000 00000000 00000000 ff000000 01000000 00000000 00000000 00000000 8c367e4e 9384e1e8 d2d54f83 e24bd666
+ars4x32 7 00000000 00000000 00000000 80000000 01000000 00000000 00000000 00000000 05ec5aed 7b80c18f 6e02ec00 af7d8461
+ars4x32 7 886a3f24 d308a385 2e8a1913 44737003 01000000 00000000 00000000 00000000 6b62230f a3c81ef5 378ab653 23af48f3
+ars4x32 7 223809a4 d0319f29 98fa2e08 896c4eec 01000000 00000000 00000000 00000000 9f28e482 ef3ad602 a7f68742 17bdf9dd
+ars4x32 7 e6212845 7713d038 cf6654be 6c0ce934 01000000 00000000 00000000 00000000 9bcee3c9 47d31087 b3d5d208 281dd93a
+ars4x32 7 00000001 00000000 00000000 00000000 00000000 00000001 00000000 00000000 b98fa0e7 cdd825ac c4a2942b 188df12b
+ars4x32 7 00000100 00000000 00000000 00000000 00000000 00000001 00000000 00000000 e56a671d fa738e98 71ee4418 0900944f
+ars4x32 7 00010000 00000000 00000000 00000000 00000000 00000001 00000000 00000000 582501fc e56c7921 d38ed338 c37e5a4e
+ars4x32 7 01000000 00000000 00000000 00000000 00000000 00000001 00000000 00000000 e4e7782f 675942c8 917bcde1 c3739f28
+ars4x32 7 00000000 00000001 00000000 00000000 00000000 00000001 00000000 00000000 45a75118 f1c9f98e e1cbd902 ffa4f796
+ars4x32 7 00000000 00000100 00000000 00000000 00000000 00000001 00000000 00000000 8e63d1dc ddc2763e eac3cd9d 8b624caf
+ars4x32 7 00000000 00010000 00000000 00000000 00000000 00000001 00000000 00000000 31190524 b3ff427a 2418a4ce aadbcaba
+ars4x32 7 00000000 01000000 00000000 00000000 00000000 00000001 00000000 00000000 0dde1a7a a994604a e66d1ccf ebd37d29
+ars4x32 7 00000000 00000000 00000001 00000000 00000000 00000001 00000000 00000000 12847b3e 6b2b9d08 38d1e36d cb4e5d1c
+ars4x32 7 00000000 00000000 00000100 00000000 00000000 00000001 00000000 00000000 88e7ac98 eb941086 f3556cb4 20964290
+ars4x32 7 00000000 00000000 00010000 00000000 00000000 00000001 00000000 00000000 8febb1a4 bdd9c500 fc798878 1699918b
+ars4x32 7 00000000 00000000 01000000 00000000 00000000 00000001 00000000 00000000 8c6b4bce 3acc1384 5eb2f546 a70d2ab0
+ars4x32 7 00000000 00000000 00000000 00000001 00000000 00000001 00000000 00000000 3e6cf754 72ff7900 42b1882e a259b63d
+ars4x32 7 00000000 00000000 00000000 00000100 00000000 00000001 00000000 00000000 05118b88 d902ce95 87b141fa a95529d9
+ars4x32 7 00000000 00000000 00000000 00010000 00000000 00000001 00000000 00000000 4ffee2f7 2ff88f16 e4fa93e0 2ba2e908
+ars4x32 7 00000000 00000000 00000000 01000000 00000000 00000001 00000000 00000000 0d00fbab 394bd1ab 8372d815 57ce07bd
+ars4x32 7 0000ff00 00000000 00000000 00000000 00000000 00000001 00000000 00000000 c91da1c3 a89eba39 83c66a3e 7f9ccf3d
+ars4x32 7 00008000 00000000 00000000 00000000 00000000 00000001 00000000 00000000 a9aab7d2 48ab0c11 94120bf6 661ed874
+ars4x32 7 00ff0000 00000000 00000000 00000000 00000000 00000001 00000000 00000000 90f76c90 a75c8676 d5932a66 29b2ed5d
+ars4x32 7 00800000 00000000 00000000 00000000 00000000 00000001 00000000 00000000 6e287bb4 8fcb509d 3282420a b2f0acce
+ars4x32 7 ff000000 00000000 00000000 00000000 00000000 00000001 00000000 00000000 7577b019 481c0dd9 45771637 e47d6c74
+ars4x32 7 80000000 00000000 00000000 00000000 00000000 00000001 00000000 00000000 1caa9a2a 3fd49fee 28a8592f f820b17e
+ars4x32 7 00000000 000000ff 00000000 00000000 00000000 00000001 00000000 00000000 bd9d4712 a1bab707 a658a416 fc2cad21
+ars4x32 7 00000000 00000080 00000000 00000000 00000000 00000001 00000000 00000000 5db5aef3 4aacb477 e00321e3 03f2f164
+ars4x32 7 00000000 0000ff00 00000000 00000000 00000000 00000001 00000000 00000000 86c63b0c 1ae77829 f54fc72b 3e65483e
+ars4x32 7 00000000 00008000 00000000 00000000 00000000 00000001 00000000 00000000 b8e6a3aa 3870f807 67e6d3c0 3c786c41
+ars4x32 7 00000000 00ff0000 00000000 00000000 00000000 00000001 00000000 00000000 60723484 3f6acad0 f3150d04 6fe1cef2
+ars4x32 7 00000000 00800000 00000000 00000000 00000000 00000001 00000000 00000000 d0875b42 d178529d b07f05ed 1936bc05
+ars4x32 7 00000000 ff000000 00000000 00000000 00000000 00000001 00000000 00000000 58eac67a 702ce62d b491a9e8 ca546c89
+ars4x32 7 00000000 80000000 00000000 00000000 00000000 00000001 00000000 00000000 a9b8f470 afef5bd3 578b37cf bf2cdc2e
+ars4x32 7 00000000 00000000 000000ff 00000000 00000000 00000001 00000000 00000000 aa38025f e885466b a026d001 3f0376e3
+ars4x32 7 00000000 00000000 00000080 00000000 00000000 00000001 00000000 00000000 540dff9b 94870d7f 6035a801 1d2461d5
+ars4x32 7 00000000 00000000 0000ff00 00000000 00000000 00000001 00000000 00000000 d54a4299 03db719c 03867340 2b8ce970
+ars4x32 7 00000000 00000000 00008000 00000000 00000000 00000001 00000000 00000000 0cf0355e d424d952 85ce5c9b 89ea9557
+ars4x32 7 00000000 00000000 00ff0000 00000000 00000000 00000001 00000000 00000000 fc648dc4 0a8e70d9 37f5dfea faaaf6d4
+ars4x32 7 00000000 00000000 00800000 00000000 00000000 00000001 00000000 00000000 a89ba05f 64d4f5c6 446076c2 c68f0fee
+ars4x32 7 00000000 00000000 ff000000 00000000 00000000 00000001 00000000 00000000 32ebf3c8 b3b5a1c7 422d6927 6e5c3871
+ars4x32 7 00000000 00000000 80000000 00000000 00000000 00000001 00000000 00000000 3d6730bb d4af0df0 7af81d69 87ae990c
+ars4x32 7 00000000 00000000 00000000 000000ff 00000000 00000001 00000000 00000000 102e26cc d8ad45ce d4ddaed3 26f5d03a
+ars4x32 7 00000000 00000000 00000000 00000080 00000000 00000001 00000000 00000000 6ae99574 408d6c8e 5198ef8a 251ce0c0
+ars4x32 7 00000000 00000000 00000000 0000ff00 00000000 00000001 00000000 00000000 9865f8d1 0f1a33c4 16a6f032 4501cb27
+ars4x32 7 00000000 00000000 00000000 00008000 00000000 00000001 00000000 00000000 50c5fd20 0f842254 2573669a 1118408a
+ars4x32 7 00000000 00000000 00000000 00ff0000 00000000 00000001 00000000 00000000 9c85b493 34006dfb f29cb2d2 fe3eeb55
+ars4x32 7 00000000 00000000 00000000 00800000 00000000 00000001 00000000 00000000 31f2f820 a237d610 e79519f0 a3e6773d
+ars4x32 7 00000000 00000000 00000000 ff000000 00000000 00000001 00000000 00000000 9a42597e bc616f75 11873515 0d95b6bf
+ars4x32 7 00000000 00000000 00000000 80000000 00000000 00000001 00000000 00000000 149e81a7 13397722 e15ef1c9 085060f1
+ars4x32 7 886a3f24 d308a385 2e8a1913 44737003 00000000 00000001 00000000 00000000 ec49a376 fc9c0e9f 1dc34445 963c9380
+ars4x32 7 223809a4 d0319f29 98fa2e08 896c4eec 00000000 00000001 00000000 00000000 2a100713 0631ced0 42f20c78 d81af2e7
+ars4x32 7 e6212845 7713d038 cf6654be 6c0ce934 00000000 00000001 00000000 00000000 706b9c5e 50067d76 d9d4d6fa 4d44ac9c
+ars4x32 7 00000001 00000000 00000000 00000000 00000000 00000100 00000000 00000000 dfda1d3a 072f4efa a128a5d5 a6fe1d04
+ars4x32 7 00000100 00000000 00000000 00000000 00000000 00000100 00000000 00000000 aefe63cd a94f6047 ef47ae8a 5c6d0fc7
+ars4x32 7 00010000 00000000 00000000 00000000 00000000 00000100 00000000 00000000 a263fbbb 95aa495c a5937e9e 544bfb02
+ars4x32 7 01000000 00000000 00000000 00000000 00000000 00000100 00000000 00000000 4b5755b9 2ca59014 9403b7ff 5c00c781
+ars4x32 7 00000000 00000001 00000000 00000000 00000000 00000100 00000000 00000000 62acbd8b ec95ebd4 35e31abf b290cc33
+ars4x32 7 00000000 00000100 00000000 00000000 00000000 00000100 00000000 00000000 134748e1 b6befa9f 7232fa06 d4764e33
+ars4x32 7 00000000 00010000 00000000 00000000 00000000 00000100 00000000 00000000 6190f931 ee7ee9d3 6ed0f4d1 16c9b244
+ars4x32 7 00000000 01000000 00000000 00000000 00000000 00000100 00000000 00000000 c7f11a27 94dba789 e9dbcbc5 14a9abc6
+ars4x32 7 00000000 00000000 00000001 00000000 00000000 00000100 00000000 00000000 153d00f7 f2129258 20aa50f2 ed9aebae
+ars4x32 7 00000000 00000000 00000100 00000000 00000000 00000100 00000000 00000000 9f7cebbc 2ec7b89e 66001c4c 83cdbb20
+ars4x32 7 00000000 00000000 00010000 00000000 00000000 00000100 00000000 00000000 65155935 919e4c9e 5f34f008 b51f7415
+ars4x32 7 00000000 00000000 01000000 00000000 00000000 00000100 00000000 00000000 be69da4b 58cb9d5e 19d12824 d82c1b08
+ars4x32 7 00000000 00000000 00000000 00000001 00000000 00000100 00000000 00000000 ac76a8a7 fff592ae 7b84a113 daad3a5b
+ars4x32 7 00000000 00000000 00000000 00000100 00000000 00000100 00000000 00000000 b278eb5b 63a440b9 623099ad b87237c8
+ars4x32 7 00000000 00000000 00000000 00010000 00000000 00000100 00000000 00000000 8ab1b9ef 8a631fc5 2dce6925 acaa5c9d
+ars4x32 7 00000000 00000000 00000000 01000000 00000000 00000100 00000000 00000000 2433ea25 2017b332 91aa1b2a 0e49b4a3
+ars4x32 7 0000ff00 00000000 00000000 00000000 00000000 00000100 00000000 00000000 86fd3cb3 f56664c6 e7140277 cf6a9098
+ars4x32 7 00008000 00000000 00000000 00000000 00000000 00000100 00000000 00000000 52efaf03 3b031fa5 eec1ec93 4a377c34
+ars4x32 7 00ff0000 00000000 00000000 00000000 00000000 00000100 00000000 00000000 7fead7cb 22746d85 d921eb48 e7a70ecd
+ars4x32 7 00800000 00000000 00000000 00000000 00000000 00000100 00000000 00000000 3281b39d 696b18bd 8eda997d d5bb089c
+ars4x32 7 ff000000 00000000 00000000 00000000 00000000 00000100 00000000 00000000 adab5d35 ad91fa0d 7acfa6fd 9892d997
+ars4x32 7 80000000 00000000 00000000 00000000 00000000 00000100 00000000 00000000 85ade5e0 2c042865 15890a20 f7c24d33
+ars4x32 7 00000000 000000ff 00000000 00000000 00000000 00000100 00000000 00000000 119163c9 a07d67cd 20f06789 a281ee4d
+ars4x32 7 00000000 00000080 00000000 00000000 00000000 00000100 00000000 00000000 2fb03510 5ed5dca3 b719eb6f 574605c9
+ars4x32 7 00000000 0000ff00 00000000 00000000 00000000 00000100 00000000 00000000 f4f7d2ef 7a524610 a185f709 f21fefd6
+ars4x32 7 00000000 00008000 00000000 00000000 00000000 00000100 00000000 00000000 c5e7439c 2804792a 1235964f 8539a3c7
+ars4x32 7 00000000 00ff0000 00000000 00000000 00000000 00000100 00000000 00000000 5f369f8f 7d9d5302 4f494420 827ed4f2
+ars4x32 7 00000000 00800000 00000000 00000000 00000000 00000100 00000000 00000000 0775ffd7 3b1dea1e b02efaca b4f9719a
+ars4x32 7 00000000 ff000000 00000000 00000000 00000000 00000100 00000000 00000000 426cd4b8 3a1fc698 c19c4020 723a2986
+ars4x32 7 00000000 80000000 00000000 00000000 00000000 00000100 00000000 00000000 ed151868 428ac2da 5531458b 00d2447c
+ars4x32 7 00000000 00000000 000000ff 00000000 00000000 00000100 00000000 00000000 fcb4f454 b536ddfa 3a52e482 71f6646e
+ars4x32 7 00000000 00000000 00000080 00000000 00000000 00000100 00000000 00000000 3997e8de 9b8e8867 6293329b 06827994
+ars4x32 7 00000000 00000000 0000ff00 00000000 00000000 00000100 00000000 00000000 f4991404 73e5e16e f5b17c26 9924f7a2
+ars4x32 7 00000000 00000000 00008000 00000000 00000000 00000100 00000000 00000000 3066aea9 c3fd8937 7994b392 4b2269ac
+ars4x32 7 00000000 00000000 00ff0000 00000000 00000000 00000100 00000000 00000000 c06e303d 65230c26 fcc999c3 928bbecd
+ars4x32 7 00000000 00000000 00800000 00000000 00000000 00000100 00000000 00000000 949c3f78 95a9a17b 353c533c 32f8838a
+ars4x32 7 00000000 00000000 ff000000 00000000 00000000 00000100 00000000 00000000 a037a04d a5d5ef5f 134dce23 1cce86ea
+ars4x32 7 00000000 00000000 80000000 00000000 00000000 00000100 00000000 00000000 73bcea41 a66fe5a3 e92911a5 d81c85f1
+ars4x32 7 00000000 00000000 00000000 000000ff 00000000 00000100 00000000 00000000 13a8abdc 5c45c562 2850859a 38851cc5
+ars4x32 7 00000000 00000000 00000000 00000080 00000000 00000100 00000000 00000000 1cf530b3 c20a3ef5 1dd72902 d8f71715
+ars4x32 7 00000000 00000000 00000000 0000ff00 00000000 00000100 00000000 00000000 20c4d1e9 6aaea5f9 d31be549 32a09e8e
+ars4x32 7 00000000 00000000 00000000 00008000 00000000 00000100 00000000 00000000 642cc569 29ad57a4 9e7e4347 6ad323fd
+ars4x32 7 00000000 00000000 00000000 00ff0000 00000000 00000100 00000000 00000000 cccb582c a8794b89 9e9ee7b4 f64b2875
+ars4x32 7 00000000 00000000 00000000 00800000 00000000 00000100 00000000 00000000 75c085fb 289d50f1 78cb52d7 a5492eac
+ars4x32 7 00000000 00000000 00000000 ff000000 00000000 00000100 00000000 00000000 dc83b67b 6ae5216e 0945dd86 bfe74a90
+ars4x32 7 00000000 00000000 00000000 80000000 00000000 00000100 00000000 00000000 d9b3797d 07d9cede b0d73dd4 a9ab3ba1
+ars4x32 7 886a3f24 d308a385 2e8a1913 44737003 00000000 00000100 00000000 00000000 dd0b9690 1f87f73e b52e0554 f3a8866f
+ars4x32 7 223809a4 d0319f29 98fa2e08 896c4eec 00000000 00000100 00000000 00000000 445a7ccb 1d2bd419 6cb33baa 8de67355
+ars4x32 7 e6212845 7713d038 cf6654be 6c0ce934 00000000 00000100 00000000 00000000 8186605a 2a648389 7fa392d4 a0282353
+ars4x32 7 00000001 00000000 00000000 00000000 00000000 00010000 00000000 00000000 cc555e0c 96812f76 c34b8b18 0ab1336f
+ars4x32 7 00000100 00000000 00000000 00000000 00000000 00010000 00000000 00000000 d8e396e2 593932fb c6e40d9f 7422c554
+ars4x32 7 00010000 00000000 00000000 00000000 00000000 00010000 00000000 00000000 c3121431 cb1af462 1c6d3dc8 06806508
+ars4x32 7 01000000 00000000 00000000 00000000 00000000 00010000 00000000 00000000 74a52f42 ab71d0a5 2d9ec16f 6a309675
+ars4x32 7 00000000 00000001 00000000 00000000 00000000 00010000 00000000 00000000 f8e52867 c5154ebe 3e2412d2 1fd6eb47
+ars4x32 7 00000000 00000100 00000000 00000000 00000000 00010000 00000000 00000000 b6d97bb1 6633b0c4 f5b83d5f ef5b7701
+ars4x32 7 00000000 00010000 00000000 00000000 00000000 00010000 00000000 00000000 21987c11 f47b221c 1bd108f9 4a89ea4c
+ars4x32 7 00000000 01000000 00000000 00000000 00000000 00010000 00000000 00000000 fd5b97cd cddf1906 abe0b7a9 32b6f137
+ars4x32 7 00000000 00000000 00000001 00000000 00000000 00010000 00000000 00000000 4651379b c51b8684 b8661b5c eee9c303
+ars4x32 7 00000000 00000000 00000100 00000000 00000000 00010000 00000000 00000000 dbe78ab2 23c7dd58 5f85f73b 37ffe920
+ars4x32 7 00000000 00000000 00010000 00000000 00000000 00010000 00000000 00000000 78afdc44 98924fa1 cb7ee502 198cf8be
+ars4x32 7 00000000 00000000 01000000 00000000 00000000 00010000 00000000 00000000 bb80d75c a4f61d05 371b83b0 f8b925c1
+ars4x32 7 00000000 00000000 00000000 00000001 00000000 00010000 00000000 00000000 8ab4b97a e856ed18 6691e448 e9c947b1
+ars4x32 7 00000000 00000000 00000000 00000100 00000000 00010000 00000000 00000000 8c0ce175 1f94b2a8 64368529 f8c997d9
+ars4x32 7 00000000 00000000 00000000 00010000 00000000 00010000 00000000 00000000 a581635b dcadee87 37d80a10 42e2d6ea
+ars4x32 7 00000000 00000000 00000000 01000000 00000000 00010000 00000000 00000000 f6073156 f3c915f5 872d7248 7428bd38
+ars4x32 7 0000ff00 00000000 00000000 00000000 00000000 00010000 00000000 00000000 5c1adf3b 31a5847f 38f35004 ab0c0e56
+ars4x32 7 00008000 00000000 00000000 00000000 00000000 00010000 00000000 00000000 fd51e724 1b511634 abfc1f02 e08d5826
+ars4x32 7 00ff0000 00000000 00000000 00000000 00000000 00010000 00000000 00000000 221d06a9 b5a1fa43 c87832af 07c56795
+ars4x32 7 00800000 00000000 00000000 00000000 00000000 00010000 00000000 00000000 0d7aa123 b5f4f0e1 10b92a35 4c568a8e
+ars4x32 7 ff000000 00000000 00000000 00000000 00000000 00010000 00000000 00000000 dc53383e 738f609d 6bda6aab 5b9015b3
+ars4x32 7 80000000 00000000 00000000 00000000 00000000 00010000 00000000 00000000 1b01b36b 16dc731f 38af0f58 14549502
+ars4x32 7 00000000 000000ff 00000000 00000000 00000000 00010000 00000000 00000000 aec3f7e9 4513e562 bd0a53a9 a7c19937
+ars4x32 7 00000000 00000080 00000000 00000000 00000000 00010000 00000000 00000000 dce01ffb be0890c6 9acbaeda d40fe96e
+ars4x32 7 00000000 0000ff00 00000000 00000000 00000000 00010000 00000000 00000000 4eceae96 81ed9647 555e7dba 1100b881
+ars4x32 7 00000000 00008000 00000000 00000000 00000000 00010000 00000000 00000000 c75f6525 f06dd94d 7f24c2bc 51c982e0
+ars4x32 7 00000000 00ff0000 00000000 00000000 00000000 00010000 00000000 00000000 b0729ec8 3c6027b6 d1539c93 035cc3e9
+ars4x32 7 00000000 00800000 00000000 00000000 00000000 00010000 00000000 00000000 eaca848d 069cb07a 96bd3060 6d2752e4
+ars4x32 7 00000000 ff000000 00000000 00000000 00000000 00010000 00000000 00000000 7450b9f7 871a1d9a 211b42e5 02d9e3ce
+ars4x32 7 00000000 80000000 00000000 00000000 00000000 00010000 00000000 00000000 a0300cb3 f04fbefe fe6d6fd2 7b1e58b7
+ars4x32 7 00000000 00000000 000000ff 00000000 00000000 00010000 00000000 00000000 360d9abf 3fb3c8bc d919221d 10f57a6a
+ars4x32 7 00000000 00000000 00000080 00000000 00000000 00010000 00000000 00000000 f63c4618 ece252f4 2662a407 84841340
+ars4x32 7 00000000 00000000 0000ff00 00000000 00000000 00010000 00000000 00000000 3e14c92b 4f431782 653d0255 5e48097e
+ars4x32 7 00000000 00000000 00008000 00000000 00000000 00010000 00000000 00000000 eb618ea6 d0e27776 6bd5ec9d 72491aab
+ars4x32 7 00000000 00000000 00ff0000 00000000 00000000 00010000 00000000 00000000 7b42d9a7 073a55fe 5cef8388 5d240e4e
+ars4x32 7 00000000 00000000 00800000 00000000 00000000 00010000 00000000 00000000 39d1c065 85c0acc7 f0101005 93ec0ee2
+ars4x32 7 00000000 00000000 ff000000 00000000 00000000 00010000 00000000 00000000 460bd111 4a7e1dcf e6c05f70 62fde911
+ars4x32 7 00000000 00000000 80000000 00000000 00000000 00010000 00000000 00000000 5758809e ab8bd50d b1542f44 0b7a51b0
+ars4x32 7 00000000 00000000 00000000 000000ff 00000000 00010000 00000000 00000000 2398b55f 28407e67 60f625c8 ab267016
+ars4x32 7 00000000 00000000 00000000 00000080 00000000 00010000 00000000 00000000 910b861a 9ae4f63b 69c20a02 2d60c3f7
+ars4x32 7 00000000 00000000 00000000 0000ff00 00000000 00010000 00000000 00000000 3fcb21a7 16951149 990475c1 99025226
+ars4x32 7 00000000 00000000 00000000 00008000 00000000 00010000 00000000 00000000 d7e919f3 73db70ec 003a8e3b 4c2b67eb
+ars4x32 7 00000000 00000000 00000000 00ff0000 00000000 00010000 00000000 00000000 991f3917 b56c3247 1a5d48ad 01bcbfae
+ars4x32 7 00000000 00000000 00000000 00800000 00000000 00010000 00000000 00000000 613efef9 09710d43 50d71c7c 06c2355d
+ars4x32 7 00000000 00000000 00000000 ff000000 00000000 00010000 00000000 00000000 4313ed8e bd141078 c12d3c6e efa80cf0
+ars4x32 7 00000000 00000000 00000000 80000000 00000000 00010000 00000000 00000000 656a64b2 c9e2588a 6a740d6b f6771cfe
+ars4x32 7 886a3f24 d308a385 2e8a1913 44737003 00000000 00010000 00000000 00000000 01329c6b b18c5d96 17088447 58573d6b
+ars4x32 7 223809a4 d0319f29 98fa2e08 896c4eec 00000000 00010000 00000000 00000000 475e7f2c df5f29d5 71c921aa e71bf175
+ars4x32 7 e6212845 7713d038 cf6654be 6c0ce934 00000000 00010000 00000000 00000000 75311c7e 008c90a3 cd72458f 6eb71f5e
+ars4x32 7 00000001 00000000 00000000 00000000 00000000 01000000 00000000 00000000 f1d28f60 cadf4685 f5a23c51 d908aa34
+ars4x32 7 00000100 00000000 00000000 00000000 00000000 01000000 00000000 00000000 01c8c951 22a359fb 3ff357d4 f2efe9fc
+ars4x32 7 00010000 00000000 00000000 00000000 00000000 01000000 00000000 00000000 cbfb74e9 d32346b5 74a9d8e7 78ad3148
+ars4x32 7 01000000 00000000 00000000 00000000 00000000 01000000 00000000 00000000 9ad5ccf9 1e86645e 060e4b44 806d350e
+ars4x32 7 00000000 00000001 00000000 00000000 00000000 01000000 00000000 00000000 af5c32bc 2f4c1d79 42ea3ba8 7f64cf82
+ars4x32 7 00000000 00000100 00000000 00000000 00000000 01000000 00000000 00000000 b5de7ef6 3b368ca4 797907bb 0e290d60
+ars4x32 7 00000000 00010000 00000000 00000000 00000000 01000000 00000000 00000000 63ff88f8 f2fcda03 ed9521eb 0da73a6f
+ars4x32 7 00000000 01000000 00000000 00000000 00000000 01000000 00000000 00000000 af2004e3 6b8c03c1 ce200f44 15272428
+ars4x32 7 00000000 00000000 00000001 00000000 00000000 01000000 00000000 00000000 f76605b2 f5b358bb 7e29f4de 48e9b229
+ars4x32 7 00000000 00000000 00000100 00000000 00000000 01000000 00000000 00000000 ec4a3974 a873f7aa 58833321 6efcbe17
+ars4x32 7 00000000 00000000 00010000 00000000 00000000 01000000 00000000 00000000 56cdee6f 690fabf1 e9d1f12e 477dad74
+ars4x32 7 00000000 00000000 01000000 00000000 00000000 01000000 00000000 00000000 3d45f975 4219eaaa ed5bd00f 4ee3eeda
+ars4x32 7 00000000 00000000 00000000 00000001 00000000 01000000 00000000 00000000 4ce13170 ccdef41e 82346a8c e6b3d412
+ars4x32 7 00000000 00000000 00000000 00000100 00000000 01000000 00000000 00000000 469c7844 ee82a394 a7a3b23c 8cc4db81
+ars4x32 7 00000000 00000000 00000000 00010000 00000000 01000000 00000000 00000000 0ca9b5fe a5673d62 7c83e3f0 95143ac0
+ars4x32 7 00000000 00000000 00000000 01000000 00000000 01000000 00000000 00000000 efcf3d1a df15cb85 41679ec2 473c724a
+ars4x32 7 0000ff00 00000000 00000000 00000000 00000000 01000000 00000000 00000000 5257892e 0c645c39 ffd595d6 fa3d694e
+ars4x32 7 00008000 00000000 00000000 00000000 00000000 01000000 00000000 00000000 68d8f64a 066631ec f3a9997a a1350d5b
+ars4x32 7 00ff0000 00000000 00000000 00000000 00000000 01000000 00000000 00000000 ca14c369 47ce2364 9cb2196d af6c47ad
+ars4x32 7 00800000 00000000 00000000 00000000 00000000 01000000 00000000 00000000 849eb7ff c5950be4 f1a61f9e 6001f279
+ars4x32 7 ff000000 00000000 00000000 00000000 00000000 01000000 00000000 00000000 cdda7689 01a0fc17 1c8cb79e 663104e6
+ars4x32 7 80000000 00000000 00000000 00000000 00000000 01000000 00000000 00000000 fdc8b354 3974bfb8 9805f0b9 687134ea
+ars4x32 7 00000000 000000ff 00000000 00000000 00000000 01000000 00000000 00000000 80ee7029 e70ddbd3 5910cc44 5f4afd16
+ars4x32 7 00000000 00000080 00000000 00000000 00000000 01000000 00000000 00000000 2af567a0 2d2f3cbf 1aa86411 0f64b041
+ars4x32 7 00000000 0000ff00 00000000 00000000 00000000 01000000 00000000 00000000 1d511c03 26f8fd53 e46cb9ba 770aab45
+ars4x32 7 00000000 00008000 00000000 00000000 00000000 01000000 00000000 00000000 80dc0d67 f54a2826 cbdbd04e 74b4fbc8
+ars4x32 7 00000000 00ff0000 00000000 00000000 00000000 01000000 00000000 00000000 ef3c100a 92fc4374 40b313d2 125f29b5
+ars4x32 7 00000000 00800000 00000000 00000000 00000000 01000000 00000000 00000000 e2488dc6 f410be92 0e5dea44 c0694d36
+ars4x32 7 00000000 ff000000 00000000 00000000 00000000 01000000 00000000 00000000 0a4085bf 797eeeee 6b7a0006 e538592d
+ars4x32 7 00000000 80000000 00000000 00000000 00000000 01000000 00000000 00000000 d63c4b1b d52295d2 87f5a196 d1542c1b
+ars4x32 7 00000000 00000000 000000ff 00000000 00000000 01000000 00000000 00000000 4565e62b 2b06ae38 e41196d8 f9a249b7
+ars4x32 7 00000000 00000000 00000080 00000000 00000000 01000000 00000000 00000000 b4f09a88 759568be ce1dfb0c 948834ad
+ars4x32 7 00000000 00000000 0000ff00 00000000 00000000 01000000 00000000 00000000 da4eb391 01bc628b 38c604a2 07535efe
+ars4x32 7 00000000 00000000 00008000 00000000 00000000 01000000 00000000 00000000 3c4f71c5 54059a07 0d1f9a16 4b1af865
+ars4x32 7 00000000 00000000 00ff0000 00000000 00000000 01000000 00000000 00000000 3fefd40d c260b532 63363e58 6f98c813
+ars4x32 7 00000000 00000000 00800000 00000000 00000000 01000000 00000000 00000000 7d02082c 5f09d506 18c4f684 352ef5e3
+ars4x32 7 00000000 00000000 ff000000 00000000 00000000 01000000 00000000 00000000 bf1187a0 46a976bc bc71e679 4e0e5623
+ars4x32 7 00000000 00000000 80000000 00000000 00000000 01000000 00000000 00000000 ed83edea b6645e3a 16acb791 7d43064f
+ars4x32 7 00000000 00000000 00000000 000000ff 00000000 01000000 00000000 00000000 91556a10 1b40759c 95cdff41 52cb618a
+ars4x32 7 00000000 00000000 00000000 00000080 00000000 01000000 00000000 00000000 fb7e7161 4ab7039f 519333e1 78d7a241
+ars4x32 7 00000000 00000000 00000000 0000ff00 00000000 01000000 00000000 00000000 a2590d06 f8338a72 4705fdd9 9f8db47d
+ars4x32 7 00000000 00000000 00000000 00008000 00000000 01000000 00000000 00000000 c5146907 aba557c4 7ba1b22f 46cb38e0
+ars4x32 7 00000000 00000000 00000000 00ff0000 00000000 01000000 00000000 00000000 510cda71 b0b2f5d7 26ed41b7 014a51fd
+ars4x32 7 00000000 00000000 00000000 00800000 00000000 01000000 00000000 00000000 4a73adf2 4ba83e52 c3ea9859 72be18f3
+ars4x32 7 00000000 00000000 00000000 ff000000 00000000 01000000 00000000 00000000 b9d90390 981871a2 0f7145e8 7a00fa57
+ars4x32 7 00000000 00000000 00000000 80000000 00000000 01000000 00000000 00000000 689c9cc9 293ab8ae 1dfca36b 7c8a9731
+ars4x32 7 886a3f24 d308a385 2e8a1913 44737003 00000000 01000000 00000000 00000000 59978e50 6d29cdb5 8d324ba0 a5dd3e4a
+ars4x32 7 223809a4 d0319f29 98fa2e08 896c4eec 00000000 01000000 00000000 00000000 3948cc5d b01d7d06 ee2cb5c4 a8a14e61
+ars4x32 7 e6212845 7713d038 cf6654be 6c0ce934 00000000 01000000 00000000 00000000 753c4e79 496e5769 8b50732c d23f56d9
+ars4x32 7 00000001 00000000 00000000 00000000 00000000 00000000 00000001 00000000 e55ec276 e473d61f c316132c 954894ea
+ars4x32 7 00000100 00000000 00000000 00000000 00000000 00000000 00000001 00000000 61e296a3 a424ccbd 575b5150 0aec2318
+ars4x32 7 00010000 00000000 00000000 00000000 00000000 00000000 00000001 00000000 5a6b6952 34618ed9 ad0f420a 50060389
+ars4x32 7 01000000 00000000 00000000 00000000 00000000 00000000 00000001 00000000 36e839df 742e6b89 45867c8a 969127fb
+ars4x32 7 00000000 00000001 00000000 00000000 00000000 00000000 00000001 00000000 7a0cad0e 9eacee2a 32bbe64e 799efd9d
+ars4x32 7 00000000 00000100 00000000 00000000 00000000 00000000 00000001 00000000 a06824a8 4fb555db 1241f0e7 304538c0
+ars4x32 7 00000000 00010000 00000000 00000000 00000000 00000000 00000001 00000000 5afd1311 eb272486 71660469 54fb1933
+ars4x32 7 00000000 01000000 00000000 00000000 00000000 00000000 00000001 00000000 934d980f 7d2a488a ce3cd73c 48dfe32b
+ars4x32 7 00000000 00000000 00000001 00000000 00000000 00000000 00000001 00000000 acbb0ca6 57d697a2 5fde660c 606d05e1
+ars4x32 7 00000000 00000000 00000100 00000000 00000000 00000000 00000001 00000000 d0c41463 5b22d41f e82375fd e05576e7
+ars4x32 7 00000000 00000000 00010000 00000000 00000000 00000000 00000001 00000000 d395d125 02665bf0 ba11994f c781ccab
+ars4x32 7 00000000 00000000 01000000 00000000 00000000 00000000 00000001 00000000 96880c59 01df06b8 07e62c46 7904e9e5
+ars4x32 7 00000000 00000000 00000000 00000001 00000000 00000000 00000001 00000000 c8a185e0 e0c7db14 36518c29 fc40bba8
+ars4x32 7 00000000 00000000 00000000 00000100 00000000 00000000 00000001 00000000 c788d4d7 db552421 962dc825 41cefbe8
+ars4x32 7 00000000 00000000 00000000 00010000 00000000 00000000 00000001 00000000 b656d6c7 abe0765e b3501422 cadb748e
+ars4x32 7 00000000 00000000 00000000 01000000 00000000 00000000 00000001 00000000 e34b1ea4 8d64c890 09afc44f b36a4508
+ars4x32 7 0000ff00 00000000 00000000 00000000 00000000 00000000 00000001 00000000 950434ab c13c78d1 46c50ea8 8a41ad52
+ars4x32 7 00008000 00000000 00000000 00000000 00000000 00000000 00000001 00000000 5818cc68 9c066862 d8668af1 14ebb966
+ars4x32 7 00ff0000 00000000 00000000 00000000 00000000 00000000 00000001 00000000 4dbfdf75 73fc433a 5864d4a2 a0e27186
+ars4x32 7 00800000 00000000 00000000 00000000 00000000 00000000 00000001 00000000 9f16f8fa 43943702 cc3f4e1a 581f9570
+ars4x32 7 ff000000 00000000 00000000 00000000 00000000 00000000 00000001 00000000 91f7c720 45712f56 ff004166 3252a1eb
+ars4x32 7 80000000 00000000 00000000 00000000 00000000 00000000 00000001 00000000 84915ec3 6992c44b 71942078 488fb76c
+ars4x32 7 00000000 000000ff 00000000 00000000 00000000 00000000 00000001 00000000 d561a9ed c75c6965 d21c4161 e7d06023
+ars4x32 7 00000000 00000080 00000000 00000000 00000000 00000000 00000001 00000000 3eb2ec86 ed6ec73d 7892f171 1522715b
+ars4x32 7 00000000 0000ff00 00000000 00000000 00000000 00000000 00000001 00000000 53892271 8674ab3b 93e6afca 841cbca2
+ars4x32 7 00000000 00008000 00000000 00000000 00000000 00000000 00000001 00000000 13541920 3a435e24 25f08417 bfade8dc
+ars4x32 7 00000000 00ff0000 00000000 00000000 00000000 00000000 00000001 00000000 d0a1e7a9 7a816e40 b66226ae 62e0a4ee
+ars4x32 7 00000000 00800000 00000000 00000000 00000000 00000000 00000001 00000000 8e3f42e2 2b014896 d86aa526 cd27fbeb
+ars4x32 7 00000000 ff000000 00000000 00000000 00000000 00000000 00000001 00000000 cafdabd9 6dcfa350 f7f8270a 9ae67ded
+ars4x32 7 00000000 80000000 00000000 00000000 00000000 00000000 00000001 00000000 3d0d8f49 51136f93 26192fc1 18520d2f
+ars4x32 7 00000000 00000000 000000ff 00000000 00000000 00000000 00000001 00000000 20b28b79 8a8b37f8 00b104ab 868b2d14
+ars4x32 7 00000000 00000000 00000080 00000000 00000000 00000000 00000001 00000000 31d98a86 9ccebecb 645a8b17 f0bb99eb
+ars4x32 7 00000000 00000000 0000ff00 00000000 00000000 00000000 00000001 00000000 68a48077 83b8ba14 05946de8 24566774
+ars4x32 7 00000000 00000000 00008000 00000000 00000000 00000000 00000001 00000000 d86678f9 354f95b4 eb7a401a ad61c2c6
+ars4x32 7 00000000 00000000 00ff0000 00000000 00000000 00000000 00000001 00000000 8f66d754 a08c81e6 c63c356c 3ba62f17
+ars4x32 7 00000000 00000000 00800000 00000000 00000000 00000000 00000001 00000000 c17d8282 720b8f46 db6e67b1 b4e955cd
+ars4x32 7 00000000 00000000 ff000000 00000000 00000000 00000000 00000001 00000000 9aff812c 45baa6b7 4b0c9c0f ff98f8b1
+ars4x32 7 00000000 00000000 80000000 00000000 00000000 00000000 00000001 00000000 b326c5ad 7a9aa757 00b31db0 601fcdca
+ars4x32 7 00000000 00000000 00000000 000000ff 00000000 00000000 00000001 00000000 91620765 6f729564 29a2f9f2 cfded75c
+ars4x32 7 00000000 00000000 00000000 00000080 00000000 00000000 00000001 00000000 c941d058 5cd997a1 5e9bf194 7b21d5fb
+ars4x32 7 00000000 00000000 00000000 0000ff00 00000000 00000000 00000001 00000000 10e2485a b4e5e1e9 cd4ba01c 2e49dde2
+ars4x32 7 00000000 00000000 00000000 00008000 00000000 00000000 00000001 00000000 1cdbca4c e5e98bc9 72f23ac1 cdb16c1b
+ars4x32 7 00000000 00000000 00000000 00ff0000 00000000 00000000 00000001 00000000 1fb363a1 474f5285 78035b43 d518402e
+ars4x32 7 00000000 00000000 00000000 00800000 00000000 00000000 00000001 00000000 307ba338 840c962b 34cba2bb 8d50d44e
+ars4x32 7 00000000 00000000 00000000 ff000000 00000000 00000000 00000001 00000000 53ca2c77 05f1ed32 94b6cd6f 4d397f26
+ars4x32 7 00000000 00000000 00000000 80000000 00000000 00000000 00000001 00000000 faf425b1 b86d358e d1a20e65 281bbbf8
+ars4x32 7 886a3f24 d308a385 2e8a1913 44737003 00000000 00000000 00000001 00000000 61f619d6 16c90f22 1fec0d94 6257e0be
+ars4x32 7 223809a4 d0319f29 98fa2e08 896c4eec 00000000 00000000 00000001 00000000 25142c67 9cfa1771 c5978a54 7400f567
+ars4x32 7 e6212845 7713d038 cf6654be 6c0ce934 00000000 00000000 00000001 00000000 2ee984a7 638ced08 d33ef781 0247374b
+ars4x32 7 00000001 00000000 00000000 00000000 00000000 00000000 00000100 00000000 d1b71a4f 1684424d 9fd4c7dc 9bc4d871
+ars4x32 7 00000100 00000000 00000000 00000000 00000000 00000000 00000100 00000000 9fa9054b 71f78e23 c9b3d997 2ca4eedb
+ars4x32 7 00010000 00000000 00000000 00000000 00000000 00000000 00000100 00000000 3db7ed45 be438491 cd0d6566 ac45f324
+ars4x32 7 01000000 00000000 00000000 00000000 00000000 00000000 00000100 00000000 cc1a364b 3a1cbe65 abe2f8e9 f502c286
+ars4x32 7 00000000 00000001 00000000 00000000 00000000 00000000 00000100 00000000 8feeb62a d5061040 b534de85 3c027ed9
+ars4x32 7 00000000 00000100 00000000 00000000 00000000 00000000 00000100 00000000 9e2e2531 4c9f15d0 c445affc 60730252
+ars4x32 7 00000000 00010000 00000000 00000000 00000000 00000000 00000100 00000000 b7c5670e 138a4b8d 6e42fdd8 5b9daf1f
+ars4x32 7 00000000 01000000 00000000 00000000 00000000 00000000 00000100 00000000 dd1d56da 6eed44fd a7dc085e 152674ca
+ars4x32 7 00000000 00000000 00000001 00000000 00000000 00000000 00000100 00000000 5295cae2 66bb409c 75db79b7 58dd33f3
+ars4x32 7 00000000 00000000 00000100 00000000 00000000 00000000 00000100 00000000 ed9ce0e1 072c7948 03c30fb2 ac016e8b
+ars4x32 7 00000000 00000000 00010000 00000000 00000000 00000000 00000100 00000000 5e2ca009 ca4f2212 44f195a6 565be49a
+ars4x32 7 00000000 00000000 01000000 00000000 00000000 00000000 00000100 00000000 ceb2d3c0 be733e64 bc1f1860 c29c14ad
+ars4x32 7 00000000 00000000 00000000 00000001 00000000 00000000 00000100 00000000 824fa943 31b285c4 263d37ea 2f123fbb
+ars4x32 7 00000000 00000000 00000000 00000100 00000000 00000000 00000100 00000000 a816d1be 20fb3610 72e57473 56e874cd
+ars4x32 7 00000000 00000000 00000000 00010000 00000000 00000000 00000100 00000000 4350d13a 2617f33b d1609d1c 7843b983
+ars4x32 7 00000000 00000000 00000000 01000000 00000000 00000000 00000100 00000000 bf189652 e19db3da b9a9c751 fe69dabd
+ars4x32 7 0000ff00 00000000 00000000 00000000 00000000 00000000 00000100 00000000 aa25fcc5 aa1d1333 04449e1f 8233a5d1
+ars4x32 7 00008000 00000000 00000000 00000000 00000000 00000000 00000100 00000000 b3cd867f 2740b7cb 39cea5c5 c184d63b
+ars4x32 7 00ff0000 00000000 00000000 00000000 00000000 00000000 00000100 00000000 31a10a6f d86903e4 310fda33 90006449
+ars4x32 7 00800000 00000000 00000000 00000000 00000000 00000000 00000100 00000000 a0489810 69a99632 f30a3276 0ebabdb1
+ars4x32 7 ff000000 00000000 00000000 00000000 00000000 00000000 00000100 00000000 0987067b ac2d74b1 c8d0f7f8 651d1ca4
+ars4x32 7 80000000 00000000 00000000 00000000 00000000 00000000 00000100 00000000 a63b4182 ad284ec1 4436f8b9 b98134fd
+ars4x32 7 00000000 000000ff 00000000 00000000 00000000 00000000 00000100 00000000 23bcfa51 0870547e b46b24d5 a34737a6
+ars4x32 7 00000000 00000080 00000000 00000000 00000000 00000000 00000100 00000000 ee786787 118a55f0 43b9771a 20ff54a3
+ars4x32 7 00000000 0000ff00 00000000 00000000 00000000 00000000 00000100 00000000 75412ce0 52dee65c 77791fd6 60943f38
+ars4x32 7 00000000 00008000 00000000 00000000 00000000 00000000 00000100 00000000 8bbe8840 ed24b4df 125e9e9b 5ede5ceb
+ars4x32 7 00000000 00ff0000 00000000 00000000 00000000 00000000 00000100 00000000 956293f5 eb6577e5 aea6424d 050e3306
+ars4x32 7 00000000 00800000 00000000 00000000 00000000 00000000 00000100 00000000 256d2b89 d3f9ad2f 90b82362 018409fd
+ars4x32 7 00000000 ff000000 00000000 00000000 00000000 00000000 00000100 00000000 af745525 fb08c32e 1c134f69 54af5d5b
+ars4x32 7 00000000 80000000 00000000 00000000 00000000 00000000 00000100 00000000 4279efbd cdfc19a2 6b806fe3 c3cdf539
+ars4x32 7 00000000 00000000 000000ff 00000000 00000000 00000000 00000100 00000000 91b1a835 6e6fa9f9 9ad21955 f9881872
+ars4x32 7 00000000 00000000 00000080 00000000 00000000 00000000 00000100 00000000 d3da99a7 2b009b3b 04b727a1 1eaaa447
+ars4x32 7 00000000 00000000 0000ff00 00000000 00000000 00000000 00000100 00000000 33bd4a06 c8968739 e08dad00 45f8363b
+ars4x32 7 00000000 00000000 00008000 00000000 00000000 00000000 00000100 00000000 1c399450 72192248 9dbd2ddf be17d911
+ars4x32 7 00000000 00000000 00ff0000 00000000 00000000 00000000 00000100 00000000 4213e7e2 9eee3bff ca895491 00c7b193
+ars4x32 7 00000000 00000000 00800000 00000000 00000000 00000000 00000100 00000000 b955af87 2c272a9e a500d242 22611535
+ars4x32 7 00000000 00000000 ff000000 00000000 00000000 00000000 00000100 00000000 2e01ebb4 0dcf0ecc 758d642a a7597d3b
+ars4x32 7 00000000 00000000 80000000 00000000 00000000 00000000 00000100 00000000 3c587492 fc291e69 97a3dc0f a71448c5
+ars4x32 7 00000000 00000000 00000000 000000ff 00000000 00000000 00000100 00000000 1faf9fbe b3d940fc c93b02a2 cd4aa238
+ars4x32 7 00000000 00000000 00000000 00000080 00000000 00000000 00000100 00000000 ec9bcc5d 28a32054 4c7d0e4c 47cfc9b1
+ars4x32 7 00000000 00000000 00000000 0000ff00 00000000 00000000 00000100 00000000 e7fd6ed3 406c0111 96dbb609 4ad0168d
+ars4x32 7 00000000 00000000 00000000 00008000 00000000 00000000 00000100 00000000 e6d16efd ee3b3517 0b0af6f6 0fb44f85
+ars4x32 7 00000000 00000000 00000000 00ff0000 00000000 00000000 00000100 00000000 c6081d68 22ff5d78 f406fde2 1c8277de
+ars4x32 7 00000000 00000000 00000000 00800000 00000000 00000000 00000100 00000000 22ccb737 9e4a0d7d 6c6dd7cc 6f9fa8a9
+ars4x32 7 00000000 00000000 00000000 ff000000 00000000 00000000 00000100 00000000 5c4fc443 c4461e64 8d34b2b4 3948c1da
+ars4x32 7 00000000 00000000 00000000 80000000 00000000 00000000 00000100 00000000 fc085908 e4d876e5 e4af7700 6c218c12
+ars4x32 7 886a3f24 d308a385 2e8a1913 44737003 00000000 00000000 00000100 00000000 148d2070 dbe15c71 a8847c49 02efc241
+ars4x32 7 223809a4 d0319f29 98fa2e08 896c4eec 00000000 00000000 00000100 00000000 ea492649 be966d5e ae76cfce b1d4d505
+ars4x32 7 e6212845 7713d038 cf6654be 6c0ce934 00000000 00000000 00000100 00000000 2b1e4db8 f7cfdc2d 14b0b987 8f31e992
+ars4x32 7 00000001 00000000 00000000 00000000 00000000 00000000 00010000 00000000 e59bf1d2 cab0f564 3104664f 2620d3a8
+ars4x32 7 00000100 00000000 00000000 00000000 00000000 00000000 00010000 00000000 e13533b7 b2562201 a8eaa55f a750df08
+ars4x32 7 00010000 00000000 00000000 00000000 00000000 00000000 00010000 00000000 6d9b77c1 b4c8d357 2680fa2b 3f24b6eb
+ars4x32 7 01000000 00000000 00000000 00000000 00000000 00000000 00010000 00000000 8b8c2007 29822d48 c5ef677d 1f89c3a7
+ars4x32 7 00000000 00000001 00000000 00000000 00000000 00000000 00010000 00000000 5d2fa112 e2c5d011 df9135ad 763f29cd
+ars4x32 7 00000000 00000100 00000000 00000000 00000000 00000000 00010000 00000000 7b396de9 cf3342ed 91371e20 e5836599
+ars4x32 7 00000000 00010000 00000000 00000000 00000000 00000000 00010000 00000000 18f90e00 e840907d b34d1745 2fa31445
+ars4x32 7 00000000 01000000 00000000 00000000 00000000 00000000 00010000 00000000 5b21ea12 9b81514d 3a44a5d1 1e429945
+ars4x32 7 00000000 00000000 00000001 00000000 00000000 00000000 00010000 00000000 db5924f6 43a09271 4bbd7526 47a0b9c8
+ars4x32 7 00000000 00000000 00000100 00000000 00000000 00000000 00010000 00000000 eeaf24d3 513eabbd 6e27d8de dfba806f
+ars4x32 7 00000000 00000000 00010000 00000000 00000000 00000000 00010000 00000000 60caf69a ce5c0585 ebaca6c9 51b5618f
+ars4x32 7 00000000 00000000 01000000 00000000 00000000 00000000 00010000 00000000 40e5c216 f39c46bb 42124cf5 d29e3a81
+ars4x32 7 00000000 00000000 00000000 00000001 00000000 00000000 00010000 00000000 f57c667d 46dbbbf1 221b419b 086bc672
+ars4x32 7 00000000 00000000 00000000 00000100 00000000 00000000 00010000 00000000 68babf11 f7755abc 1c03ca54 5d4876f6
+ars4x32 7 00000000 00000000 00000000 00010000 00000000 00000000 00010000 00000000 01e33c4c 337f84f1 accdd03a df95085e
+ars4x32 7 00000000 00000000 00000000 01000000 00000000 00000000 00010000 00000000 dcc0f93d 9d21dc4d bb1c0159 6151428f
+ars4x32 7 0000ff00 00000000 00000000 00000000 00000000 00000000 00010000 00000000 d1fed09e 84ec00dd a4f64c71 b958535e
+ars4x32 7 00008000 00000000 00000000 00000000 00000000 00000000 00010000 00000000 3e7982ea 8c9be213 a326f346 4e9711e3
+ars4x32 7 00ff0000 00000000 00000000 00000000 00000000 00000000 00010000 00000000 49e320a2 8526076a 01c83b75 89eca4cf
+ars4x32 7 00800000 00000000 00000000 00000000 00000000 00000000 00010000 00000000 13b6d420 5802874a e8c409d3 5400604b
+ars4x32 7 ff000000 00000000 00000000 00000000 00000000 00000000 00010000 00000000 866c2aae 210efb54 f1dd4928 15276ee1
+ars4x32 7 80000000 00000000 00000000 00000000 00000000 00000000 00010000 00000000 df8334cd 383c4a69 b4530250 7e70f0f0
+ars4x32 7 00000000 000000ff 00000000 00000000 00000000 00000000 00010000 00000000 39a0f8e2 faf0937a cab7a67b 14fa4909
+ars4x32 7 00000000 00000080 00000000 00000000 00000000 00000000 00010000 00000000 3452504e aa51562b 8ed6632a f532ff33
+ars4x32 7 00000000 0000ff00 00000000 00000000 00000000 00000000 00010000 00000000 198b3f09 69a2a1b7 244cb5c3 f5975969
+ars4x32 7 00000000 00008000 00000000 00000000 00000000 00000000 00010000 00000000 a5b028bf eb128cea fa673ddc 6dba3964
+ars4x32 7 00000000 00ff0000 00000000 00000000 00000000 00000000 00010000 00000000 62063941 455d80cb 0a50e480 c0cfc579
+ars4x32 7 00000000 00800000 00000000 00000000 00000000 00000000 00010000 00000000 c4c59ee9 c55bfd45 e9d9d1f8 aed1a219
+ars4x32 7 00000000 ff000000 00000000 00000000 00000000 00000000 00010000 00000000 bc39e53b f43472b1 f3e1a62e 20214463
+ars4x32 7 00000000 80000000 00000000 00000000 00000000 00000000 00010000 00000000 0b9fdddf e49b3226 9b609ebf 94e00cd1
+ars4x32 7 00000000 00000000 000000ff 00000000 00000000 00000000 00010000 00000000 6ef585e1 372feb69 4a300d7a 3b9d9371
+ars4x32 7 00000000 00000000 00000080 00000000 00000000 00000000 00010000 00000000 87cf8e6b 3e5e1e1f feb7c8e4 a2081049
+ars4x32 7 00000000 00000000 0000ff00 00000000 00000000 00000000 00010000 00000000 f9e429b6 69cc141b a7c881d3 e29b35ac
+ars4x32 7 00000000 00000000 00008000 00000000 00000000 00000000 00010000 00000000 d4a1f5c4 401e56b6 9b5490a8 2f833185
+ars4x32 7 00000000 00000000 00ff0000 00000000 00000000 00000000 00010000 00000000 99766356 8ff50157 b3821b37 ec4d7fe1
+ars4x32 7 00000000 00000000 00800000 00000000 00000000 00000000 00010000 00000000 d410c303 bdcc51fe 4fce8db1 c2300086
+ars4x32 7 00000000 00000000 ff000000 00000000 00000000 00000000 00010000 00000000 3c76e5d6 7f97d7b2 87fefb47 aa1e74a3
+ars4x32 7 00000000 00000000 80000000 00000000 00000000 00000000 00010000 00000000 b04160af ccd69849 d997776c 78baca82
+ars4x32 7 00000000 00000000 00000000 000000ff 00000000 00000000 00010000 00000000 2b426a66 b4778997 036bb2b6 73f85000
+ars4x32 7 00000000 00000000 00000000 00000080 00000000 00000000 00010000 00000000 97c725fd 4c263287 6b84df34 87bab7e8
+ars4x32 7 00000000 00000000 00000000 0000ff00 00000000 00000000 00010000 00000000 955705c6 638b9589 bf7079d3 a0812340
+ars4x32 7 00000000 00000000 00000000 00008000 00000000 00000000 00010000 00000000 8062aec7 ad667c4c 531d646c a89419b6
+ars4x32 7 00000000 00000000 00000000 00ff0000 00000000 00000000 00010000 00000000 5f4b9c78 e073fd03 7af2647f e04cadb5
+ars4x32 7 00000000 00000000 00000000 00800000 00000000 00000000 00010000 00000000 21173c0d bcbff324 23e49265 77a987e2
+ars4x32 7 00000000 00000000 00000000 ff000000 00000000 00000000 00010000 00000000 75469838 fd82de60 d25e525f 6fc94eec
+ars4x32 7 00000000 00000000 00000000 80000000 00000000 00000000 00010000 00000000 2901d556 c39f0758 f0f25524 ab9ea7f1
+ars4x32 7 886a3f24 d308a385 2e8a1913 44737003 00000000 00000000 00010000 00000000 0f4f1084 0dbb5150 bf4b4ba1 f1e9a302
+ars4x32 7 223809a4 d0319f29 98fa2e08 896c4eec 00000000 00000000 00010000 00000000 a7f09b0b d538d63e 8cd9698e 4de1d5c8
+ars4x32 7 e6212845 7713d038 cf6654be 6c0ce934 00000000 00000000 00010000 00000000 e14850e1 da61655e f8b9fee9 4cca7a22
+ars4x32 7 00000001 00000000 00000000 00000000 00000000 00000000 01000000 00000000 82d8ce21 f80a41c3 e9d7378e a43774de
+ars4x32 7 00000100 00000000 00000000 00000000 00000000 00000000 01000000 00000000 29450fbe c7620b1e 01db607e 496c959e
+ars4x32 7 00010000 00000000 00000000 00000000 00000000 00000000 01000000 00000000 67b63d9e b7aa2865 5b0b2f47 38eca693
+ars4x32 7 01000000 00000000 00000000 00000000 00000000 00000000 01000000 00000000 22e3d97b 88139492 04477566 8fdf0038
+ars4x32 7 00000000 00000001 00000000 00000000 00000000 00000000 01000000 00000000 df57c091 a68d2400 c56ef541 caca2946
+ars4x32 7 00000000 00000100 00000000 00000000 00000000 00000000 01000000 00000000 d2e144ed 44f15ecc 72ad8cf0 18eb77a1
+ars4x32 7 00000000 00010000 00000000 00000000 00000000 00000000 01000000 00000000 597c28af dff928f2 c9881678 39c1b806
+ars4x32 7 00000000 01000000 00000000 00000000 00000000 00000000 01000000 00000000 9448bc5a 0f04a19c 7de7946f e41b327e
+ars4x32 7 00000000 00000000 00000001 00000000 00000000 00000000 01000000 00000000 25e501dc fc98dc25 2a624ae8 3335bc09
+ars4x32 7 00000000 00000000 00000100 00000000 00000000 00000000 01000000 00000000 73ed7ea6 1d84a23a ecea26e4 79d91ca2
+ars4x32 7 00000000 00000000 00010000 00000000 00000000 00000000 01000000 00000000 17c50437 780ab31f 883bf9e7 e4426521
+ars4x32 7 00000000 00000000 01000000 00000000 00000000 00000000 01000000 00000000 5ed86b68 57bcd482 c1963c45 c80403e9
+ars4x32 7 00000000 00000000 00000000 00000001 00000000 00000000 01000000 00000000 e4318c44 bd5a645e ee2a5267 d3f32328
+ars4x32 7 00000000 00000000 00000000 00000100 00000000 00000000 01000000 00000000 9584cdb9 0369c0c6 5db25327 f05fe043
+ars4x32 7 00000000 00000000 00000000 00010000 00000000 00000000 01000000 00000000 0eb27e05 398c1efc e252f9ec 9792108d
+ars4x32 7 00000000 00000000 00000000 01000000 00000000 00000000 01000000 00000000 27d98c16 a999fd3e 0f9aa126 4714fcf5
+ars4x32 7 0000ff00 00000000 00000000 00000000 00000000 00000000 01000000 00000000 18e2ab27 192e782c 228edbcd 1cf25b21
+ars4x32 7 00008000 00000000 00000000 00000000 00000000 00000000 01000000 00000000 b4dfa099 93e47dcd 53622042 1ae269aa
+ars4x32 7 00ff0000 00000000 00000000 00000000 00000000 00000000 01000000 00000000 289bdca4 79f10ec9 223c09b3 be39c40d
+ars4x32 7 00800000 00000000 00000000 00000000 00000000 00000000 01000000 00000000 a5f9354a 74713822 5d699bd5 e61ef52b
+ars4x32 7 ff000000 00000000 00000000 00000000 00000000 00000000 01000000 00000000 155c9b52 7f208dab 99bfd248 967ad519
+ars4x32 7 80000000 00000000 00000000 00000000 00000000 00000000 01000000 00000000 99c71cf2 004e9a5d dbf6813b e03f8f30
+ars4x32 7 00000000 000000ff 00000000 00000000 00000000 00000000 01000000 00000000 fd514803 5b988c05 11b96981 cc9efbf5
+ars4x32 7 00000000 00000080 00000000 00000000 00000000 00000000 01000000 00000000 a2e373f3 fff6af00 aae75bb6 aa810fda
+ars4x32 7 00000000 0000ff00 00000000 00000000 00000000 00000000 01000000 00000000 1b9d9279 33f2e9d4 57b2baac a08aaecd
+ars4x32 7 00000000 00008000 00000000 00000000 00000000 00000000 01000000 00000000 3b7d051d c251092d 0f387d56 c30b2bbd
+ars4x32 7 00000000 00ff0000 00000000 00000000 00000000 00000000 01000000 00000000 f7161117 ef751edb ad5435ad fdcbd02c
+ars4x32 7 00000000 00800000 00000000 00000000 00000000 00000000 01000000 00000000 a53512ef ab201dd5 5ce98a55 6152b179
+ars4x32 7 00000000 ff000000 00000000 00000000 00000000 00000000 01000000 00000000 71491954 fa3dfbaa 4766b8de 18867ab8
+ars4x32 7 00000000 80000000 00000000 00000000 00000000 00000000 01000000 00000000 a90344a6 0d3c789a 30a038cb 6bb037f2
+ars4x32 7 00000000 00000000 000000ff 00000000 00000000 00000000 01000000 00000000 0a27fa46 3b9d3956 4817a0f7 0f35fd04
+ars4x32 7 00000000 00000000 00000080 00000000 00000000 00000000 01000000 00000000 56940c06 a82316da 4ae11ae6 ca14cb80
+ars4x32 7 00000000 00000000 0000ff00 00000000 00000000 00000000 01000000 00000000 ef5356d3 eba75b67 5280c534 333bc371
+ars4x32 7 00000000 00000000 00008000 00000000 00000000 00000000 01000000 00000000 b29f5cb6 60e617b8 f15ab8d2 58a93843
+ars4x32 7 00000000 00000000 00ff0000 00000000 00000000 00000000 01000000 00000000 ee1b4eea 636b83ad 7310d166 3c49ed51
+ars4x32 7 00000000 00000000 00800000 00000000 00000000 00000000 01000000 00000000 cdcf1fa1 ff375a8c 3b20fba8 0553b4ac
+ars4x32 7 00000000 00000000 ff000000 00000000 00000000 00000000 01000000 00000000 534e5a74 6ad414cf 6783dc68 5afdaefc
+ars4x32 7 00000000 00000000 80000000 00000000 00000000 00000000 01000000 00000000 aa5f07f3 8208c9f7 86206e63 0e1dba58
+ars4x32 7 00000000 00000000 00000000 000000ff 00000000 00000000 01000000 00000000 c4b11a37 665a50fa a5f49338 6e8f0568
+ars4x32 7 00000000 00000000 00000000 00000080 00000000 00000000 01000000 00000000 f7f20443 868b09a9 7432511a 88556c5b
+ars4x32 7 00000000 00000000 00000000 0000ff00 00000000 00000000 01000000 00000000 8cf1b0f7 195a07bb e7444fc0 8efa2752
+ars4x32 7 00000000 00000000 00000000 00008000 00000000 00000000 01000000 00000000 d4deb9d3 8a9dcfcc 04f1b075 fb78122f
+ars4x32 7 00000000 00000000 00000000 00ff0000 00000000 00000000 01000000 00000000 8bb5c362 97b1a466 ff73a392 dd0e35ed
+ars4x32 7 00000000 00000000 00000000 00800000 00000000 00000000 01000000 00000000 30099688 0620fd6d 7988d696 194aab84
+ars4x32 7 00000000 00000000 00000000 ff000000 00000000 00000000 01000000 00000000 d381395a 31d23232 e2ce7661 9c07e08f
+ars4x32 7 00000000 00000000 00000000 80000000 00000000 00000000 01000000 00000000 38c43a08 5fe81ebb 3227c6cd e673f899
+ars4x32 7 886a3f24 d308a385 2e8a1913 44737003 00000000 00000000 01000000 00000000 57b9eb17 b16faefb f026d744 770589ec
+ars4x32 7 223809a4 d0319f29 98fa2e08 896c4eec 00000000 00000000 01000000 00000000 64ee86b0 b6f88be3 c384e0d6 a98d0044
+ars4x32 7 e6212845 7713d038 cf6654be 6c0ce934 00000000 00000000 01000000 00000000 0943acb4 e8ca93ea c99a6bf0 587bbe35
+ars4x32 7 00000001 00000000 00000000 00000000 00000000 00000000 00000000 00000001 d8cdc0b3 76febda9 f145334c 8ccd989e
+ars4x32 7 00000100 00000000 00000000 00000000 00000000 00000000 00000000 00000001 a4120da0 7e334806 6ccbbae6 f884db86
+ars4x32 7 00010000 00000000 00000000 00000000 00000000 00000000 00000000 00000001 fe3fdf78 7fe5f526 0f9898a0 8553f47a
+ars4x32 7 01000000 00000000 00000000 00000000 00000000 00000000 00000000 00000001 0f5c7ddf e4ff9c6b b7822869 824f7b3c
+ars4x32 7 00000000 00000001 00000000 00000000 00000000 00000000 00000000 00000001 907e8fe5 6ff48574 c613762f 8419cca9
+ars4x32 7 00000000 00000100 00000000 00000000 00000000 00000000 00000000 00000001 7027e389 5b9bdc45 08d90b0a 996e7998
+ars4x32 7 00000000 00010000 00000000 00000000 00000000 00000000 00000000 00000001 904f9f5a b5f4e88d ead29fc0 2b996332
+ars4x32 7 00000000 01000000 00000000 00000000 00000000 00000000 00000000 00000001 80a2b84e 6900e001 c5162475 051606e2
+ars4x32 7 00000000 00000000 00000001 00000000 00000000 00000000 00000000 00000001 6c7a3b27 944d3b5b 052a12c4 1287ca7d
+ars4x32 7 00000000 00000000 00000100 00000000 00000000 00000000 00000000 00000001 7117192f 8e210458 f4f9f6f5 6c4a0318
+ars4x32 7 00000000 00000000 00010000 00000000 00000000 00000000 00000000 00000001 8aeeaf0a 185ac5e3 bcb8fc4a acbfe41b
+ars4x32 7 00000000 00000000 01000000 00000000 00000000 00000000 00000000 00000001 d9c75aea 39894834 bf1d275e d00a123c
+ars4x32 7 00000000 00000000 00000000 00000001 00000000 00000000 00000000 00000001 34d40c7a c5526b8f 0b35e113 bcd830c6
+ars4x32 7 00000000 00000000 00000000 00000100 00000000 00000000 00000000 00000001 b7acb815 feffa06e ea979b88 c0cf38bd
+ars4x32 7 00000000 00000000 00000000 00010000 00000000 00000000 00000000 00000001 6cdeb44a 35bd89c2 2fd88035 fbc9ddd3
+ars4x32 7 00000000 00000000 00000000 01000000 00000000 00000000 00000000 00000001 6c5d7d52 c8b975e9 e8a693ab b4bd1af3
+ars4x32 7 0000ff00 00000000 00000000 00000000 00000000 00000000 00000000 00000001 f8521b4a dbe20169 24340095 4dd3bb60
+ars4x32 7 00008000 00000000 00000000 00000000 00000000 00000000 00000000 00000001 c2d6689b 3b72883f f0fc19d1 6cc655f8
+ars4x32 7 00ff0000 00000000 00000000 00000000 00000000 00000000 00000000 00000001 0949c29c 3880052f 2459c0d3 774f67ac
+ars4x32 7 00800000 00000000 00000000 00000000 00000000 00000000 00000000 00000001 d37727d5 d44885fb 40dec1e3 10be5d27
+ars4x32 7 ff000000 00000000 00000000 00000000 00000000 00000000 00000000 00000001 3ac80642 953d6595 9c2df6a1 2fa227c0
+ars4x32 7 80000000 00000000 00000000 00000000 00000000 00000000 00000000 00000001 e343745c 514c98fb 202c521b 36a272dd
+ars4x32 7 00000000 000000ff 00000000 00000000 00000000 00000000 00000000 00000001 8f31f7db 58d9f1d0 2ba4fff1 dafd441e
+ars4x32 7 00000000 00000080 00000000 00000000 00000000 00000000 00000000 00000001 14093d48 19b54970 3076e546 54df7928
+ars4x32 7 00000000 0000ff00 00000000 00000000 00000000 00000000 00000000 00000001 65a1ec0f 0410478d 0336f294 08685c66
+ars4x32 7 00000000 00008000 00000000 00000000 00000000 00000000 00000000 00000001 adc7dadb 75984ee9 3f99fbec 32abbb5d
+ars4x32 7 00000000 00ff0000 00000000 00000000 00000000 00000000 00000000 00000001 ec4d68bc 8193dd1c 5db4cc7c 53e78f28
+ars4x32 7 00000000 00800000 00000000 00000000 00000000 00000000 00000000 00000001 2747e673 697ba048 fbd55241 f7d03178
+ars4x32 7 00000000 ff000000 00000000 00000000 00000000 00000000 00000000 00000001 1c4c758f 6142a50c 3db5d4c9 7d8964bb
+ars4x32 7 00000000 80000000 00000000 00000000 00000000 00000000 00000000 00000001 490f97b9 fb25b95c cae9be65 ba621248
+ars4x32 7 00000000 00000000 000000ff 00000000 00000000 00000000 00000000 00000001 95a625ff c506be5a 3c3547b4 b50900dc
+ars4x32 7 00000000 00000000 00000080 00000000 00000000 00000000 00000000 00000001 0b47695b 0823c2e9 7e30a51b 61a7bf88
+ars4x32 7 00000000 00000000 0000ff00 00000000 00000000 00000000 00000000 00000001 746993bc 5e841d54 3663cb30 679aa59a
+ars4x32 7 00000000 00000000 00008000 00000000 00000000 00000000 00000000 00000001 26b7e4b3 b52b2568 6ae26a56 7ece4e0a
+ars4x32 7 00000000 00000000 00ff0000 00000000 00000000 00000000 00000000 00000001 81b612d9 b684a761 b460a0d0 dea6923a
+ars4x32 7 00000000 00000000 00800000 00000000 00000000 00000000 00000000 00000001 a15c7e43 8b87221e aa01cea1 897212b9
+ars4x32 7 00000000 00000000 ff000000 00000000 00000000 00000000 00000000 00000001 d87e6534 a914f232 2ba776e3 64de0c83
+ars4x32 7 00000000 00000000 80000000 00000000 00000000 00000000 00000000 00000001 07043336 9ae9d489 f4a25ba8 165fddb8
+ars4x32 7 00000000 00000000 00000000 000000ff 00000000 00000000 00000000 00000001 c3d87d0d 58adc9e4 9e1da7d2 da881245
+ars4x32 7 00000000 00000000 00000000 00000080 00000000 00000000 00000000 00000001 0533180f afe5e50e 779f1051 79221e92
+ars4x32 7 00000000 00000000 00000000 0000ff00 00000000 00000000 00000000 00000001 3dd06f43 0b0d5f83 1302fe7d 3d2552e3
+ars4x32 7 00000000 00000000 00000000 00008000 00000000 00000000 00000000 00000001 725fc967 5021d4c6 ca759daa 0f8a7bbe
+ars4x32 7 00000000 00000000 00000000 00ff0000 00000000 00000000 00000000 00000001 a22aaee8 4ff66429 11f6d35b 9f328c05
+ars4x32 7 00000000 00000000 00000000 00800000 00000000 00000000 00000000 00000001 26131e6e cdac6fde dcdb3556 62e54f7b
+ars4x32 7 00000000 00000000 00000000 ff000000 00000000 00000000 00000000 00000001 c5ae206a 792a3d3c cff179d2 0667b2ec
+ars4x32 7 00000000 00000000 00000000 80000000 00000000 00000000 00000000 00000001 be478a57 82e7d9a0 25d55857 66b8c0ab
+ars4x32 7 886a3f24 d308a385 2e8a1913 44737003 00000000 00000000 00000000 00000001 eb5c58f7 9b42dc31 09174875 447f07e3
+ars4x32 7 223809a4 d0319f29 98fa2e08 896c4eec 00000000 00000000 00000000 00000001 e7091d5f ba221fd5 3775e6e7 6f5d17f4
+ars4x32 7 e6212845 7713d038 cf6654be 6c0ce934 00000000 00000000 00000000 00000001 c944f017 ecdc01b1 64613fad 638d30f8
+ars4x32 7 00000001 00000000 00000000 00000000 00000000 00000000 00000000 00000100 7f2f0daa 8250599e d86eaf5b 6bbae2a9
+ars4x32 7 00000100 00000000 00000000 00000000 00000000 00000000 00000000 00000100 e4b5773e de0d22b1 f2ea0982 7b34db92
+ars4x32 7 00010000 00000000 00000000 00000000 00000000 00000000 00000000 00000100 393ae33d 46d1e116 12b3e6dd 59980fac
+ars4x32 7 01000000 00000000 00000000 00000000 00000000 00000000 00000000 00000100 5f412afa fdc6613b d0e935f6 471e5e4b
+ars4x32 7 00000000 00000001 00000000 00000000 00000000 00000000 00000000 00000100 7abeb2bc 122ddec0 6fa03a7a 824166dc
+ars4x32 7 00000000 00000100 00000000 00000000 00000000 00000000 00000000 00000100 1008b496 a85ba459 e7f1b8bd 3da32d88
+ars4x32 7 00000000 00010000 00000000 00000000 00000000 00000000 00000000 00000100 4d1afb12 939b7c02 f44bf246 fe7d2ef8
+ars4x32 7 00000000 01000000 00000000 00000000 00000000 00000000 00000000 00000100 1bb5c98d 60fa9c25 2749d1d9 3c880ed9
+ars4x32 7 00000000 00000000 00000001 00000000 00000000 00000000 00000000 00000100 a419efe3 cec80e6c 3fcc84a9 e56898c6
+ars4x32 7 00000000 00000000 00000100 00000000 00000000 00000000 00000000 00000100 505c2396 befec6b5 325cc0ed d63677a7
+ars4x32 7 00000000 00000000 00010000 00000000 00000000 00000000 00000000 00000100 1a6a4fcd b4fd4d3c 08fd0936 7cb1abb4
+ars4x32 7 00000000 00000000 01000000 00000000 00000000 00000000 00000000 00000100 01e1f7e9 959bfa34 b1ba5ba2 4c4dd6e0
+ars4x32 7 00000000 00000000 00000000 00000001 00000000 00000000 00000000 00000100 e6205d2a 0f119894 bc95a629 7ec8eb32
+ars4x32 7 00000000 00000000 00000000 00000100 00000000 00000000 00000000 00000100 542e3279 b1f2cffe 3eb39960 3680a449
+ars4x32 7 00000000 00000000 00000000 00010000 00000000 00000000 00000000 00000100 25021f11 cda42315 29e10f48 b917f681
+ars4x32 7 00000000 00000000 00000000 01000000 00000000 00000000 00000000 00000100 6b563024 a62a213a 083ef6de 448dcb62
+ars4x32 7 0000ff00 00000000 00000000 00000000 00000000 00000000 00000000 00000100 3dd4ac40 773dd04b 1fa760a1 5ab2d7b4
+ars4x32 7 00008000 00000000 00000000 00000000 00000000 00000000 00000000 00000100 55183ca4 2fae8c07 8a04c8a2 83bfb3b1
+ars4x32 7 00ff0000 00000000 00000000 00000000 00000000 00000000 00000000 00000100 ac1fa9e2 8a376297 6a76f622 66951cc2
+ars4x32 7 00800000 00000000 00000000 00000000 00000000 00000000 00000000 00000100 dcce8912 4bdd1e1a 8177deb0 a2df4df6
+ars4x32 7 ff000000 00000000 00000000 00000000 00000000 00000000 00000000 00000100 7b47aa39 17de883b f0389adb 725a81a2
+ars4x32 7 80000000 00000000 00000000 00000000 00000000 00000000 00000000 00000100 cd5f9e74 661902ef ef2a7524 0782be05
+ars4x32 7 00000000 000000ff 00000000 00000000 00000000 00000000 00000000 00000100 6950909c b0c259d3 9a1b0d2a e940fb31
+ars4x32 7 00000000 00000080 00000000 00000000 00000000 00000000 00000000 00000100 74bd6da0 2506319b fc8113d5 79455bde
+ars4x32 7 00000000 0000ff00 00000000 00000000 00000000 00000000 00000000 00000100 720d34e0 5f60576f 7278b81c d707f0a1
+ars4x32 7 00000000 00008000 00000000 00000000 00000000 00000000 00000000 00000100 ac8137db 28f464a3 98fc9b1b 2a2e70c9
+ars4x32 7 00000000 00ff0000 00000000 00000000 00000000 00000000 00000000 00000100 53d3c9db cb40a3bb d21c9214 4385dc60
+ars4x32 7 00000000 00800000 00000000 00000000 00000000 00000000 00000000 00000100 01ca9fc8 be2d5bc7 58e949a0 b7c03b88
+ars4x32 7 00000000 ff000000 00000000 00000000 00000000 00000000 00000000 00000100 0bd240e0 4fd3dc82 2fad4a10 ab50808e
+ars4x32 7 00000000 80000000 00000000 00000000 00000000 00000000 00000000 00000100 06c9fb2c 7bbc95f4 6f01b025 3ff15e9f
+ars4x32 7 00000000 00000000 000000ff 00000000 00000000 00000000 00000000 00000100 df36eb98 3a8cf76f cf22acb6 5e6bfb60
+ars4x32 7 00000000 00000000 00000080 00000000 00000000 00000000 00000000 00000100 4d620503 ff7ad0ad cba5c94d af9c37e5
+ars4x32 7 00000000 00000000 0000ff00 00000000 00000000 00000000 00000000 00000100 7161b90e cae6104d 5b1257d9 29f82898
+ars4x32 7 00000000 00000000 00008000 00000000 00000000 00000000 00000000 00000100 59d062ab 89e20f13 e6223064 6e7a60ee
+ars4x32 7 00000000 00000000 00ff0000 00000000 00000000 00000000 00000000 00000100 631ad4da b29b6712 052c2160 7d7315ba
+ars4x32 7 00000000 00000000 00800000 00000000 00000000 00000000 00000000 00000100 e920893f f173f4de 7e3a9c64 18cd538d
+ars4x32 7 00000000 00000000 ff000000 00000000 00000000 00000000 00000000 00000100 60303917 64f675bd 98417210 b058a208
+ars4x32 7 00000000 00000000 80000000 00000000 00000000 00000000 00000000 00000100 6464c8b1 8b280c53 18c499fb f27a4e16
+ars4x32 7 00000000 00000000 00000000 000000ff 00000000 00000000 00000000 00000100 f2ab7027 8d25e619 90017a45 2dc913ce
+ars4x32 7 00000000 00000000 00000000 00000080 00000000 00000000 00000000 00000100 23e9d1f4 7e6995a0 c4e606b8 0f1a66bc
+ars4x32 7 00000000 00000000 00000000 0000ff00 00000000 00000000 00000000 00000100 0a095c69 eae0868d f0f38532 f98b752b
+ars4x32 7 00000000 00000000 00000000 00008000 00000000 00000000 00000000 00000100 17fbf313 e6698d5b 0d534c3a c11f77ae
+ars4x32 7 00000000 00000000 00000000 00ff0000 00000000 00000000 00000000 00000100 460be28e 444d9392 7a902b48 84cae4e3
+ars4x32 7 00000000 00000000 00000000 00800000 00000000 00000000 00000000 00000100 610abef3 e7b54875 39a79235 eb13ffb4
+ars4x32 7 00000000 00000000 00000000 ff000000 00000000 00000000 00000000 00000100 c713d0ef 445f03ed bd7ead2d ed950e14
+ars4x32 7 00000000 00000000 00000000 80000000 00000000 00000000 00000000 00000100 e6737c14 2c8dcc7d 3a23f109 67b6a89f
+ars4x32 7 886a3f24 d308a385 2e8a1913 44737003 00000000 00000000 00000000 00000100 67f457c1 557228c2 c8089581 7d01371a
+ars4x32 7 223809a4 d0319f29 98fa2e08 896c4eec 00000000 00000000 00000000 00000100 a824da65 0b3dc334 aaba7e18 3d402fbe
+ars4x32 7 e6212845 7713d038 cf6654be 6c0ce934 00000000 00000000 00000000 00000100 22ac2693 92de8f21 02a7797d 8f573dfe
+ars4x32 7 00000001 00000000 00000000 00000000 00000000 00000000 00000000 00010000 16453451 ae1de563 0dee5530 eceed42c
+ars4x32 7 00000100 00000000 00000000 00000000 00000000 00000000 00000000 00010000 46df3956 2d4a949c b59326a3 584723cd
+ars4x32 7 00010000 00000000 00000000 00000000 00000000 00000000 00000000 00010000 f08b09be 0de23177 5098b59b 110784f7
+ars4x32 7 01000000 00000000 00000000 00000000 00000000 00000000 00000000 00010000 485ef1c7 80025f08 b23ee428 27208fe3
+ars4x32 7 00000000 00000001 00000000 00000000 00000000 00000000 00000000 00010000 b158ebb3 8338a0a1 de47abd3 30640723
+ars4x32 7 00000000 00000100 00000000 00000000 00000000 00000000 00000000 00010000 87326517 08099596 4ce7aa41 c4c38ba2
+ars4x32 7 00000000 00010000 00000000 00000000 00000000 00000000 00000000 00010000 46b8aa2a 3777c4be 8415045a 1299fdbe
+ars4x32 7 00000000 01000000 00000000 00000000 00000000 00000000 00000000 00010000 54421b55 8571e355 5c415a26 6cb049b7
+ars4x32 7 00000000 00000000 00000001 00000000 00000000 00000000 00000000 00010000 6f930ec4 a9e9ad53 4251bb83 2e476fa6
+ars4x32 7 00000000 00000000 00000100 00000000 00000000 00000000 00000000 00010000 a7ef447a 524b4fa1 05c908a1 45f9ad22
+ars4x32 7 00000000 00000000 00010000 00000000 00000000 00000000 00000000 00010000 267ec642 b82ac27a 4d84ed96 e0b16f5f
+ars4x32 7 00000000 00000000 01000000 00000000 00000000 00000000 00000000 00010000 ab216213 8d2a7155 bbe7d6b4 9b641b00
+ars4x32 7 00000000 00000000 00000000 00000001 00000000 00000000 00000000 00010000 90b88f45 621a4888 765566df 5e4be449
+ars4x32 7 00000000 00000000 00000000 00000100 00000000 00000000 00000000 00010000 0ec8a630 6e5b9e83 9a75b24c 4f8235b9
+ars4x32 7 00000000 00000000 00000000 00010000 00000000 00000000 00000000 00010000 f4619e3a 02ded40c 9c0340eb 3b7e7721
+ars4x32 7 00000000 00000000 00000000 01000000 00000000 00000000 00000000 00010000 05072ea9 5639f5a6 d23e7418 b1e3ced6
+ars4x32 7 0000ff00 00000000 00000000 00000000 00000000 00000000 00000000 00010000 a33ab035 a790718f 180c5629 6cb17eb0
+ars4x32 7 00008000 00000000 00000000 00000000 00000000 00000000 00000000 00010000 3afaf21d f5f444d4 418d0c92 4d51e6ab
+ars4x32 7 00ff0000 00000000 00000000 00000000 00000000 00000000 00000000 00010000 e38a9623 fc3e8309 4454bf75 244bfb0d
+ars4x32 7 00800000 00000000 00000000 00000000 00000000 00000000 00000000 00010000 29397c94 ee16888b f4cd5d6b 2f559297
+ars4x32 7 ff000000 00000000 00000000 00000000 00000000 00000000 00000000 00010000 afe121a2 836f1bdc 9c684339 599bbaac
+ars4x32 7 80000000 00000000 00000000 00000000 00000000 00000000 00000000 00010000 97b8aabd b1df936a 52f5e128 d56ede53
+ars4x32 7 00000000 000000ff 00000000 00000000 00000000 00000000 00000000 00010000 78942d59 640b16e9 b8cf9e93 6654d236
+ars4x32 7 00000000 00000080 00000000 00000000 00000000 00000000 00000000 00010000 8b1ad3ba 90e87f5b 0d634de7 aaf1ec6d
+ars4x32 7 00000000 0000ff00 00000000 00000000 00000000 00000000 00000000 00010000 b4a35540 8a7bfccb d8ef9e43 6e6f13b1
+ars4x32 7 00000000 00008000 00000000 00000000 00000000 00000000 00000000 00010000 269e3c15 d4beeeb8 ec43a0a2 94e2f460
+ars4x32 7 00000000 00ff0000 00000000 00000000 00000000 00000000 00000000 00010000 b074026a 609dcbb3 e487f3d7 30364b78
+ars4x32 7 00000000 00800000 00000000 00000000 00000000 00000000 00000000 00010000 53e4a4db a3556ea4 576e6986 1b516aa4
+ars4x32 7 00000000 ff000000 00000000 00000000 00000000 00000000 00000000 00010000 dc5e18da ef5264a5 413d6200 1c4fe353
+ars4x32 7 00000000 80000000 00000000 00000000 00000000 00000000 00000000 00010000 bd3bf363 f67e6401 a70a9952 864d4aa5
+ars4x32 7 00000000 00000000 000000ff 00000000 00000000 00000000 00000000 00010000 ca25ca8c d87c52ed 10f3e089 a3f10a38
+ars4x32 7 00000000 00000000 00000080 00000000 00000000 00000000 00000000 00010000 99b35266 3935d44c 45de70ae 5f45642b
+ars4x32 7 00000000 00000000 0000ff00 00000000 00000000 00000000 00000000 00010000 881487ec a7d965b7 9390323e a0f820ec
+ars4x32 7 00000000 00000000 00008000 00000000 00000000 00000000 00000000 00010000 3c407556 c54e9eee 10be61a8 01b3314c
+ars4x32 7 00000000 00000000 00ff0000 00000000 00000000 00000000 00000000 00010000 9bdfd785 cdfacd85 2ad6eaae 08e5e1e0
+ars4x32 7 00000000 00000000 00800000 00000000 00000000 00000000 00000000 00010000 70049988 28ac8eaa 8f88c445 26a6a7ac
+ars4x32 7 00000000 00000000 ff000000 00000000 00000000 00000000 00000000 00010000 b3309df6 9f70fb63 e6bfe14d d9db32c5
+ars4x32 7 00000000 00000000 80000000 00000000 00000000 00000000 00000000 00010000 78c3331f e11483c2 196cd881 8c5cb976
+ars4x32 7 00000000 00000000 00000000 000000ff 00000000 00000000 00000000 00010000 78c1f422 ffb35622 976a0ea2 c47dadf3
+ars4x32 7 00000000 00000000 00000000 00000080 00000000 00000000 00000000 00010000 9a48897c 0d43258e 68143233 a4c42971
+ars4x32 7 00000000 00000000 00000000 0000ff00 00000000 00000000 00000000 00010000 c0c0c9a1 db862add 34cbbc45 0ae92dc3
+ars4x32 7 00000000 00000000 00000000 00008000 00000000 00000000 00000000 00010000 609cb695 a458cf4e 845dea00 770d10fd
+ars4x32 7 00000000 00000000 00000000 00ff0000 00000000 00000000 00000000 00010000 96096fbc 092a6c52 a2863361 6034ae5a
+ars4x32 7 00000000 00000000 00000000 00800000 00000000 00000000 00000000 00010000 59325887 93450bbe a209db71 2ca5aafb
+ars4x32 7 00000000 00000000 00000000 ff000000 00000000 00000000 00000000 00010000 603c3e9c 37da7ac1 46c5ed4c d4b26267
+ars4x32 7 00000000 00000000 00000000 80000000 00000000 00000000 00000000 00010000 417dd2b9 c069d12c 5cd96a21 a5aa30fe
+ars4x32 7 886a3f24 d308a385 2e8a1913 44737003 00000000 00000000 00000000 00010000 d1e6217e c52b09d7 43c3362c daa88559
+ars4x32 7 223809a4 d0319f29 98fa2e08 896c4eec 00000000 00000000 00000000 00010000 500d3d50 8334b350 4a350e9d 065f38cd
+ars4x32 7 e6212845 7713d038 cf6654be 6c0ce934 00000000 00000000 00000000 00010000 6cf8999b 6a224467 cef79e60 1f6aa053
+ars4x32 7 00000001 00000000 00000000 00000000 00000000 00000000 00000000 01000000 236973b9 acfa2b20 a57b6a9e 141ff8a6
+ars4x32 7 00000100 00000000 00000000 00000000 00000000 00000000 00000000 01000000 b28f36c5 abf41d7b d5fce5d2 14ed9ac6
+ars4x32 7 00010000 00000000 00000000 00000000 00000000 00000000 00000000 01000000 87c39599 8016094f a95de4ce aa6aa7b8
+ars4x32 7 01000000 00000000 00000000 00000000 00000000 00000000 00000000 01000000 400e9c58 f0d67e0b 9e82d4ce 1309b835
+ars4x32 7 00000000 00000001 00000000 00000000 00000000 00000000 00000000 01000000 80ef9d40 b2e43def 364c02e9 06946104
+ars4x32 7 00000000 00000100 00000000 00000000 00000000 00000000 00000000 01000000 d0c96c3c ddb82b22 5849cf64 76915554
+ars4x32 7 00000000 00010000 00000000 00000000 00000000 00000000 00000000 01000000 974f08cb f1017d85 2a8ff47c 9515ba1f
+ars4x32 7 00000000 01000000 00000000 00000000 00000000 00000000 00000000 01000000 0f6f1b7b 01983102 4f048852 ee49b8c2
+ars4x32 7 00000000 00000000 00000001 00000000 00000000 00000000 00000000 01000000 1657d267 dc22abf5 6144b420 934224a4
+ars4x32 7 00000000 00000000 00000100 00000000 00000000 00000000 00000000 01000000 7ec7d92c cf0f4ed8 e5850d8b dc54d1af
+ars4x32 7 00000000 00000000 00010000 00000000 00000000 00000000 00000000 01000000 44c14233 ffb3c533 199a6672 4d92fefd
+ars4x32 7 00000000 00000000 01000000 00000000 00000000 00000000 00000000 01000000 6f391434 d9838457 4558af73 cde09326
+ars4x32 7 00000000 00000000 00000000 00000001 00000000 00000000 00000000 01000000 749c35fa 013dd6ad c985360b 054b5540
+ars4x32 7 00000000 00000000 00000000 00000100 00000000 00000000 00000000 01000000 0da7d3fb a196f591 87ddccb6 5bacae93
+ars4x32 7 00000000 00000000 00000000 00010000 00000000 00000000 00000000 01000000 0f1b4f3e 7110733b f8515528 ff32033b
+ars4x32 7 00000000 00000000 00000000 01000000 00000000 00000000 00000000 01000000 fb5a5d93 3ed97d61 039e3770 f3d0f902
+ars4x32 7 0000ff00 00000000 00000000 00000000 00000000 00000000 00000000 01000000 681a3e44 8e63ecd0 3abcabec 4d2d5731
+ars4x32 7 00008000 00000000 00000000 00000000 00000000 00000000 00000000 01000000 7f371943 dcfe4c07 49b7b9fb d57162e7
+ars4x32 7 00ff0000 00000000 00000000 00000000 00000000 00000000 00000000 01000000 83976612 a822b1a8 35791be9 a5d50048
+ars4x32 7 00800000 00000000 00000000 00000000 00000000 00000000 00000000 01000000 63f7134a d37c8caa 7f04dd78 8a27a3ec
+ars4x32 7 ff000000 00000000 00000000 00000000 00000000 00000000 00000000 01000000 6d3353b7 77bb4bb3 d7e0c2ff 16005d82
+ars4x32 7 80000000 00000000 00000000 00000000 00000000 00000000 00000000 01000000 3e284f56 e9881391 2e0fd8ea 724a7aee
+ars4x32 7 00000000 000000ff 00000000 00000000 00000000 00000000 00000000 01000000 bd941ac9 ae36480f 7558b610 d6f26b21
+ars4x32 7 00000000 00000080 00000000 00000000 00000000 00000000 00000000 01000000 3314bc79 87b3f03a 481bfaa7 a7b3a2f0
+ars4x32 7 00000000 0000ff00 00000000 00000000 00000000 00000000 00000000 01000000 828a4d0b 88977fc1 d68b9de4 102f59e1
+ars4x32 7 00000000 00008000 00000000 00000000 00000000 00000000 00000000 01000000 989b41df fc836e53 5651aa7a 4e468c77
+ars4x32 7 00000000 00ff0000 00000000 00000000 00000000 00000000 00000000 01000000 0f2ca98d 3217d236 7e6fa595 ed30cbc0
+ars4x32 7 00000000 00800000 00000000 00000000 00000000 00000000 00000000 01000000 95a56154 36c66fdb 2d78e0b1 264d50a4
+ars4x32 7 00000000 ff000000 00000000 00000000 00000000 00000000 00000000 01000000 730568fa 5f468b14 def70363 1347fbb1
+ars4x32 7 00000000 80000000 00000000 00000000 00000000 00000000 00000000 01000000 1e9be78a 288adfe4 acb526aa cf7bfcad
+ars4x32 7 00000000 00000000 000000ff 00000000 00000000 00000000 00000000 01000000 f28e617f 82ecd209 cead3a30 94a421cb
+ars4x32 7 00000000 00000000 00000080 00000000 00000000 00000000 00000000 01000000 275841e9 2b57d809 cde1d166 5fd89bf5
+ars4x32 7 00000000 00000000 0000ff00 00000000 00000000 00000000 00000000 01000000 2445d98d 4e04a79b 13979046 6b7d16ef
+ars4x32 7 00000000 00000000 00008000 00000000 00000000 00000000 00000000 01000000 06632be5 e012e4a6 415e4e48 f0a6810d
+ars4x32 7 00000000 00000000 00ff0000 00000000 00000000 00000000 00000000 01000000 dd19f886 d6931273 ee256f13 b76397aa
+ars4x32 7 00000000 00000000 00800000 00000000 00000000 00000000 00000000 01000000 9ae07c7a ff565271 12f255ea 92b0421c
+ars4x32 7 00000000 00000000 ff000000 00000000 00000000 00000000 00000000 01000000 70b1f0b9 804754b2 e7ce2010 95d34179
+ars4x32 7 00000000 00000000 80000000 00000000 00000000 00000000 00000000 01000000 832a2722 bb70152a 3b712fff 3e86ca27
+ars4x32 7 00000000 00000000 00000000 000000ff 00000000 00000000 00000000 01000000 73235ff4 84cf30f9 70ceb0f4 648df5bb
+ars4x32 7 00000000 00000000 00000000 00000080 00000000 00000000 00000000 01000000 5de658ec 8c032498 30ab870e f87c9df4
+ars4x32 7 00000000 00000000 00000000 0000ff00 00000000 00000000 00000000 01000000 48d8da59 56604227 972bde33 323ff9df
+ars4x32 7 00000000 00000000 00000000 00008000 00000000 00000000 00000000 01000000 035faa21 6bcbf158 25f98491 b0d4fa88
+ars4x32 7 00000000 00000000 00000000 00ff0000 00000000 00000000 00000000 01000000 3f39a50d 739f3ae0 f8c6c4cf 14edf4e2
+ars4x32 7 00000000 00000000 00000000 00800000 00000000 00000000 00000000 01000000 5fb447f4 4e452b6d 471ca52a 490b9927
+ars4x32 7 00000000 00000000 00000000 ff000000 00000000 00000000 00000000 01000000 ef0634c5 6283e5e1 a6fe4817 18509a0a
+ars4x32 7 00000000 00000000 00000000 80000000 00000000 00000000 00000000 01000000 e52f5ce3 b9b1feac 423d4a40 d133d0af
+ars4x32 7 886a3f24 d308a385 2e8a1913 44737003 00000000 00000000 00000000 01000000 f3aa0390 315d0cd6 4519ebd9 fc2f7ce2
+ars4x32 7 223809a4 d0319f29 98fa2e08 896c4eec 00000000 00000000 00000000 01000000 488fca1d 2ce48061 5fc5db0d 71c22c4e
+ars4x32 7 e6212845 7713d038 cf6654be 6c0ce934 00000000 00000000 00000000 01000000 3e71fd01 b9a73d45 2efb44bc bc0883ef
+ars4x32 7 00000001 00000000 00000000 00000000 0000ff00 00000000 00000000 00000000 7d13e4db 9a88eb7a 35843f1a 866f65c3
+ars4x32 7 00000100 00000000 00000000 00000000 0000ff00 00000000 00000000 00000000 f076786a 2de44c1d 0a5a871b 43f6e099
+ars4x32 7 00010000 00000000 00000000 00000000 0000ff00 00000000 00000000 00000000 c47cd146 027b1ba4 31ab6a10 7f56ff7a
+ars4x32 7 01000000 00000000 00000000 00000000 0000ff00 00000000 00000000 00000000 e76c9bd9 ec696130 dd0a4218 f9eb265d
+ars4x32 7 00000000 00000001 00000000 00000000 0000ff00 00000000 00000000 00000000 e16d46ca ae9d21bd 1a2902ae 6dc6dafc
+ars4x32 7 00000000 00000100 00000000 00000000 0000ff00 00000000 00000000 00000000 173f2a2e 55ed290e b558c7eb 491c6fa2
+ars4x32 7 00000000 00010000 00000000 00000000 0000ff00 00000000 00000000 00000000 afb78413 0b81cf0c 82f232ff eceb9c23
+ars4x32 7 00000000 01000000 00000000 00000000 0000ff00 00000000 00000000 00000000 388159c2 679fc345 5776c7cf dcc2b909
+ars4x32 7 00000000 00000000 00000001 00000000 0000ff00 00000000 00000000 00000000 a7c5cf36 038f933f e2736b0f 25ece025
+ars4x32 7 00000000 00000000 00000100 00000000 0000ff00 00000000 00000000 00000000 7d760dc7 fba9e143 2c03d992 0deed06d
+ars4x32 7 00000000 00000000 00010000 00000000 0000ff00 00000000 00000000 00000000 52fb540d ed4f5f6f 5979bebf 4d125b76
+ars4x32 7 00000000 00000000 01000000 00000000 0000ff00 00000000 00000000 00000000 ab8062b5 37067fbd 9e374581 83b02c1d
+ars4x32 7 00000000 00000000 00000000 00000001 0000ff00 00000000 00000000 00000000 4294069a 343f7c26 d07baf72 923b8aec
+ars4x32 7 00000000 00000000 00000000 00000100 0000ff00 00000000 00000000 00000000 177f19b6 b7c68ffa de71312e 24ea4f8b
+ars4x32 7 00000000 00000000 00000000 00010000 0000ff00 00000000 00000000 00000000 f09e48eb 3c48bb03 e74e4b45 380059bd
+ars4x32 7 00000000 00000000 00000000 01000000 0000ff00 00000000 00000000 00000000 715c8bc7 cce2cbb0 5967a9ac b62c96e3
+ars4x32 7 0000ff00 00000000 00000000 00000000 0000ff00 00000000 00000000 00000000 35715da2 e9b679af 41d4db67 5a0d04bb
+ars4x32 7 00008000 00000000 00000000 00000000 0000ff00 00000000 00000000 00000000 a06bdcb5 f4847027 3b5847b4 7aaa7469
+ars4x32 7 00ff0000 00000000 00000000 00000000 0000ff00 00000000 00000000 00000000 b7c3b815 a954e0a8 94d0f903 84d221b8
+ars4x32 7 00800000 00000000 00000000 00000000 0000ff00 00000000 00000000 00000000 6f49710d 0161f573 4e6ad7eb b127ea30
+ars4x32 7 ff000000 00000000 00000000 00000000 0000ff00 00000000 00000000 00000000 a16a81ec bb71b3cf b61df0bc cd5a6cf2
+ars4x32 7 80000000 00000000 00000000 00000000 0000ff00 00000000 00000000 00000000 dae31938 f0122e2d 6152c09c 27e2c376
+ars4x32 7 00000000 000000ff 00000000 00000000 0000ff00 00000000 00000000 00000000 61b8aeea 304bd76d 2b9fda47 7d6815d0
+ars4x32 7 00000000 00000080 00000000 00000000 0000ff00 00000000 00000000 00000000 b415b044 950ef84a 019c610d e2be1cb8
+ars4x32 7 00000000 0000ff00 00000000 00000000 0000ff00 00000000 00000000 00000000 79b7e774 54b9d8e8 6906d920 e14e30d7
+ars4x32 7 00000000 00008000 00000000 00000000 0000ff00 00000000 00000000 00000000 54c20799 0d32af30 7e69c810 8ea36de2
+ars4x32 7 00000000 00ff0000 00000000 00000000 0000ff00 00000000 00000000 00000000 d16bfa1e 859584c8 a46d009a e023eece
+ars4x32 7 00000000 00800000 00000000 00000000 0000ff00 00000000 00000000 00000000 4c5910e4 3671ddee 0ca84957 0a604ccc
+ars4x32 7 00000000 ff000000 00000000 00000000 0000ff00 00000000 00000000 00000000 8f4fbe19 f18a46c1 0b430910 4468a0f1
+ars4x32 7 00000000 80000000 00000000 00000000 0000ff00 00000000 00000000 00000000 087f97a4 9a0ba2c1 bf36caea 8587a619
+ars4x32 7 00000000 00000000 000000ff 00000000 0000ff00 00000000 00000000 00000000 7ff7e522 9b292fd3 1b2600d0 2a68ec8f
+ars4x32 7 00000000 00000000 00000080 00000000 0000ff00 00000000 00000000 00000000 2391de60 ac9c9f97 9b45f2c6 3f1fcd2f
+ars4x32 7 00000000 00000000 0000ff00 00000000 0000ff00 00000000 00000000 00000000 d7b54f07 11e5c24f 2b8c3173 ebe64dc4
+ars4x32 7 00000000 00000000 00008000 00000000 0000ff00 00000000 00000000 00000000 2019eb40 e45a0ca7 41967671 9325094e
+ars4x32 7 00000000 00000000 00ff0000 00000000 0000ff00 00000000 00000000 00000000 d377c955 f73724b0 60a4367f 74efbae9
+ars4x32 7 00000000 00000000 00800000 00000000 0000ff00 00000000 00000000 00000000 d06a64ff 3d3fb872 d23cddfe 2cf313f3
+ars4x32 7 00000000 00000000 ff000000 00000000 0000ff00 00000000 00000000 00000000 caa347ec 362e47fa 37db32a2 939f3dd0
+ars4x32 7 00000000 00000000 80000000 00000000 0000ff00 00000000 00000000 00000000 121068a3 a6f6a9bd 6b4436f2 2936fae3
+ars4x32 7 00000000 00000000 00000000 000000ff 0000ff00 00000000 00000000 00000000 5ca7f32b 35843972 38c38c1d 22ccb436
+ars4x32 7 00000000 00000000 00000000 00000080 0000ff00 00000000 00000000 00000000 0d50a165 c7706d44 dfbcb0a0 3dbb9b10
+ars4x32 7 00000000 00000000 00000000 0000ff00 0000ff00 00000000 00000000 00000000 6cbd9d88 25856615 ca9cc5a0 3ee77397
+ars4x32 7 00000000 00000000 00000000 00008000 0000ff00 00000000 00000000 00000000 3a22b46a f51324d1 181b1a2c 7a6d6620
+ars4x32 7 00000000 00000000 00000000 00ff0000 0000ff00 00000000 00000000 00000000 dba434d5 e9f01484 230a2026 c32fbaa6
+ars4x32 7 00000000 00000000 00000000 00800000 0000ff00 00000000 00000000 00000000 555abae9 49b8aa4d 08e2898d 34c05ffa
+ars4x32 7 00000000 00000000 00000000 ff000000 0000ff00 00000000 00000000 00000000 4e588132 9ebf1ea8 eb70abf3 19c1340e
+ars4x32 7 00000000 00000000 00000000 80000000 0000ff00 00000000 00000000 00000000 22547cb5 08984142 8cc08a13 e241ae97
+ars4x32 7 886a3f24 d308a385 2e8a1913 44737003 0000ff00 00000000 00000000 00000000 98b62d23 0b6d0ba8 baab19fd dea5184d
+ars4x32 7 223809a4 d0319f29 98fa2e08 896c4eec 0000ff00 00000000 00000000 00000000 4cfeb8e9 0a7e96d4 0507241f b3e34599
+ars4x32 7 e6212845 7713d038 cf6654be 6c0ce934 0000ff00 00000000 00000000 00000000 42cad440 508e26da 3f6420ce f9dac8a0
+ars4x32 7 00000001 00000000 00000000 00000000 00008000 00000000 00000000 00000000 b4192971 09539fc9 c077cc1f 02dc8280
+ars4x32 7 00000100 00000000 00000000 00000000 00008000 00000000 00000000 00000000 b29da95f 97960ab5 cc0ba6f5 70f68b45
+ars4x32 7 00010000 00000000 00000000 00000000 00008000 00000000 00000000 00000000 4b26eba9 0afec271 1a5862d9 a2fbab60
+ars4x32 7 01000000 00000000 00000000 00000000 00008000 00000000 00000000 00000000 5b96062d 4a538f1b cef0f3f0 fa33f829
+ars4x32 7 00000000 00000001 00000000 00000000 00008000 00000000 00000000 00000000 2df682a5 e9fd97e4 de2fcc61 6ad346b1
+ars4x32 7 00000000 00000100 00000000 00000000 00008000 00000000 00000000 00000000 9ea89c73 7d9a8473 0a98fdc5 cd4eaa4b
+ars4x32 7 00000000 00010000 00000000 00000000 00008000 00000000 00000000 00000000 ce3dd09f 9a94935c d642de44 fe93f557
+ars4x32 7 00000000 01000000 00000000 00000000 00008000 00000000 00000000 00000000 4ca77f0c b785dabb 2b70797f 1b4f7cd0
+ars4x32 7 00000000 00000000 00000001 00000000 00008000 00000000 00000000 00000000 afb7d87e 3e5372ff 3670b934 370b142c
+ars4x32 7 00000000 00000000 00000100 00000000 00008000 00000000 00000000 00000000 eb57ceb5 9e0cab9d 0c6e81d2 80c5d390
+ars4x32 7 00000000 00000000 00010000 00000000 00008000 00000000 00000000 00000000 887ab783 e2dda480 7efa747d 50c3a6f7
+ars4x32 7 00000000 00000000 01000000 00000000 00008000 00000000 00000000 00000000 fd28991d 8cd72c34 3b8d7957 4d82bc0f
+ars4x32 7 00000000 00000000 00000000 00000001 00008000 00000000 00000000 00000000 42cbb732 e812c8ac 4fe033fa 3c57857f
+ars4x32 7 00000000 00000000 00000000 00000100 00008000 00000000 00000000 00000000 3a322695 e9cc71ba 60873d85 0330afa2
+ars4x32 7 00000000 00000000 00000000 00010000 00008000 00000000 00000000 00000000 3af0fdc5 44df990c f3b574be 8ba46baf
+ars4x32 7 00000000 00000000 00000000 01000000 00008000 00000000 00000000 00000000 ad4505c7 e5e3e8bb 5bd7f068 fc0c2205
+ars4x32 7 0000ff00 00000000 00000000 00000000 00008000 00000000 00000000 00000000 10290740 4d49e705 1a76c8ff a7a5aa59
+ars4x32 7 00008000 00000000 00000000 00000000 00008000 00000000 00000000 00000000 c344e818 d6f972c9 718ba48d 243ec4d4
+ars4x32 7 00ff0000 00000000 00000000 00000000 00008000 00000000 00000000 00000000 bc156ad2 142af240 c1a88557 09840973
+ars4x32 7 00800000 00000000 00000000 00000000 00008000 00000000 00000000 00000000 7e1f495d 91e0b733 725991ab 03de3987
+ars4x32 7 ff000000 00000000 00000000 00000000 00008000 00000000 00000000 00000000 149b47c9 cf7fac97 1e060e9a 95a36c31
+ars4x32 7 80000000 00000000 00000000 00000000 00008000 00000000 00000000 00000000 d88726d1 dc6c33c9 26b520f5 1d138faf
+ars4x32 7 00000000 000000ff 00000000 00000000 00008000 00000000 00000000 00000000 44d588d5 1b98e290 8b7dbb9a 01748115
+ars4x32 7 00000000 00000080 00000000 00000000 00008000 00000000 00000000 00000000 a2e345ad c19117e9 b05da489 55cfa170
+ars4x32 7 00000000 0000ff00 00000000 00000000 00008000 00000000 00000000 00000000 81d05528 f132945d 67c683f5 0651c945
+ars4x32 7 00000000 00008000 00000000 00000000 00008000 00000000 00000000 00000000 d029cbaa 6346b68e c879f83d 97f73048
+ars4x32 7 00000000 00ff0000 00000000 00000000 00008000 00000000 00000000 00000000 4e4c11b2 8506d628 2c9c75a3 975d680a
+ars4x32 7 00000000 00800000 00000000 00000000 00008000 00000000 00000000 00000000 313b97cf e3a44a70 fc6187a5 58a034a3
+ars4x32 7 00000000 ff000000 00000000 00000000 00008000 00000000 00000000 00000000 442a0817 afb746b8 194c0eb5 4ef17998
+ars4x32 7 00000000 80000000 00000000 00000000 00008000 00000000 00000000 00000000 f39262b5 f0135a8f 6aa2d31c 528b4b26
+ars4x32 7 00000000 00000000 000000ff 00000000 00008000 00000000 00000000 00000000 27c0e3f3 093c2cf4 71500803 c6f737e4
+ars4x32 7 00000000 00000000 00000080 00000000 00008000 00000000 00000000 00000000 da68c63a d4cd41e4 7b4edead d2484d56
+ars4x32 7 00000000 00000000 0000ff00 00000000 00008000 00000000 00000000 00000000 ff2f78ea 780c5f4f d8300b11 cebe22da
+ars4x32 7 00000000 00000000 00008000 00000000 00008000 00000000 00000000 00000000 c9d4b44f b60f12af a0751b26 89250c61
+ars4x32 7 00000000 00000000 00ff0000 00000000 00008000 00000000 00000000 00000000 95a7f1a5 8e9c86c0 61b88412 ad26e5c2
+ars4x32 7 00000000 00000000 00800000 00000000 00008000 00000000 00000000 00000000 a01a31b5 b0a556f6 94e4352c e0694763
+ars4x32 7 00000000 00000000 ff000000 00000000 00008000 00000000 00000000 00000000 fe8bae26 53f4f2fd f6104dd2 3ae163d3
+ars4x32 7 00000000 00000000 80000000 00000000 00008000 00000000 00000000 00000000 a96d7149 e1c71ace 03c22296 3258065b
+ars4x32 7 00000000 00000000 00000000 000000ff 00008000 00000000 00000000 00000000 0034229f f1f520b0 70852ef1 b5acd951
+ars4x32 7 00000000 00000000 00000000 00000080 00008000 00000000 00000000 00000000 bd37d239 dfa1d7bf ab0bc739 6f10d461
+ars4x32 7 00000000 00000000 00000000 0000ff00 00008000 00000000 00000000 00000000 248444f6 406c6f2d 0708e103 1380c7c3
+ars4x32 7 00000000 00000000 00000000 00008000 00008000 00000000 00000000 00000000 dbeecd59 c32c51e9 f68865af 641ea2e6
+ars4x32 7 00000000 00000000 00000000 00ff0000 00008000 00000000 00000000 00000000 eff2640d 7b4b0ad8 c2c66c11 4394dfc4
+ars4x32 7 00000000 00000000 00000000 00800000 00008000 00000000 00000000 00000000 83c21922 bb3bf8f7 bb57629d fbdfbf90
+ars4x32 7 00000000 00000000 00000000 ff000000 00008000 00000000 00000000 00000000 11222c7d 43bfed9f 3289c92d 0d731aae
+ars4x32 7 00000000 00000000 00000000 80000000 00008000 00000000 00000000 00000000 228c99ac f2677093 86390bb7 dd798774
+ars4x32 7 886a3f24 d308a385 2e8a1913 44737003 00008000 00000000 00000000 00000000 f688f6fc 11df506a ba609007 46a5debe
+ars4x32 7 223809a4 d0319f29 98fa2e08 896c4eec 00008000 00000000 00000000 00000000 aa8cba8f c215007b 3ff3b9c4 b4dd340e
+ars4x32 7 e6212845 7713d038 cf6654be 6c0ce934 00008000 00000000 00000000 00000000 861a9f31 8360b689 8b7d6829 1623096e
+ars4x32 7 00000001 00000000 00000000 00000000 00ff0000 00000000 00000000 00000000 5699ef44 00d103a4 c3eaac9b 45008c49
+ars4x32 7 00000100 00000000 00000000 00000000 00ff0000 00000000 00000000 00000000 b2be89c2 c37ed97e aa49c958 eefdc48c
+ars4x32 7 00010000 00000000 00000000 00000000 00ff0000 00000000 00000000 00000000 c84c1a7b 503fac50 0a0f4268 3432317e
+ars4x32 7 01000000 00000000 00000000 00000000 00ff0000 00000000 00000000 00000000 317cffea 45a03ab6 b84734b4 7491e4a8
+ars4x32 7 00000000 00000001 00000000 00000000 00ff0000 00000000 00000000 00000000 7641fe12 0409fbee 8dc258fa 643a095c
+ars4x32 7 00000000 00000100 00000000 00000000 00ff0000 00000000 00000000 00000000 4144456b 56e421b9 8e0bc871 908da857
+ars4x32 7 00000000 00010000 00000000 00000000 00ff0000 00000000 00000000 00000000 31467a52 9f569421 57af6d93 4ab9aaf1
+ars4x32 7 00000000 01000000 00000000 00000000 00ff0000 00000000 00000000 00000000 a4a81156 d35e565b c0004abc f7f5ad80
+ars4x32 7 00000000 00000000 00000001 00000000 00ff0000 00000000 00000000 00000000 d9a3c778 5a994a33 050a851e 53ff6bb3
+ars4x32 7 00000000 00000000 00000100 00000000 00ff0000 00000000 00000000 00000000 9602db81 4f3e8e31 b8eb8778 8d9ae6e6
+ars4x32 7 00000000 00000000 00010000 00000000 00ff0000 00000000 00000000 00000000 9cc2bebf cd9c9adb 1f5111bf 525c8306
+ars4x32 7 00000000 00000000 01000000 00000000 00ff0000 00000000 00000000 00000000 254233e0 f1600a4a 12cd2ffa 33f64782
+ars4x32 7 00000000 00000000 00000000 00000001 00ff0000 00000000 00000000 00000000 c76b94ff 1506dbfa b6a53b19 6567ec72
+ars4x32 7 00000000 00000000 00000000 00000100 00ff0000 00000000 00000000 00000000 b96d4a8b a94e4988 48e5aa70 7f981078
+ars4x32 7 00000000 00000000 00000000 00010000 00ff0000 00000000 00000000 00000000 7297a8ae 50f40468 7c06ad3f ada1dacb
+ars4x32 7 00000000 00000000 00000000 01000000 00ff0000 00000000 00000000 00000000 5e5c57e0 6b7e504d 29090675 5f3846be
+ars4x32 7 0000ff00 00000000 00000000 00000000 00ff0000 00000000 00000000 00000000 f5203998 7c9f3216 ee22563a 3b71d9e6
+ars4x32 7 00008000 00000000 00000000 00000000 00ff0000 00000000 00000000 00000000 52c6dec8 0610dfdc cabe92af b816df9d
+ars4x32 7 00ff0000 00000000 00000000 00000000 00ff0000 00000000 00000000 00000000 b8cb69c4 7c6cd1b4 fef546e2 a67ba514
+ars4x32 7 00800000 00000000 00000000 00000000 00ff0000 00000000 00000000 00000000 79ced4ff a7a61914 6b548c73 a7f15747
+ars4x32 7 ff000000 00000000 00000000 00000000 00ff0000 00000000 00000000 00000000 a2e949d9 860c3f63 d1105cb4 848d284e
+ars4x32 7 80000000 00000000 00000000 00000000 00ff0000 00000000 00000000 00000000 5bfdfefd 00f7baa4 6952abe6 e67d2254
+ars4x32 7 00000000 000000ff 00000000 00000000 00ff0000 00000000 00000000 00000000 6f489149 449ccf7d 2851c093 342faa21
+ars4x32 7 00000000 00000080 00000000 00000000 00ff0000 00000000 00000000 00000000 8f05251e 3b8e4328 3c01aa05 af222007
+ars4x32 7 00000000 0000ff00 00000000 00000000 00ff0000 00000000 00000000 00000000 2639f421 3d48b670 dfa86214 e6acd2ce
+ars4x32 7 00000000 00008000 00000000 00000000 00ff0000 00000000 00000000 00000000 94c5e071 feec27d5 17ec71d4 be8166af
+ars4x32 7 00000000 00ff0000 00000000 00000000 00ff0000 00000000 00000000 00000000 81bf17b5 15bf09e4 60c94d35 7719711e
+ars4x32 7 00000000 00800000 00000000 00000000 00ff0000 00000000 00000000 00000000 1f623b0b ebfca3f2 b6ca58a7 eeffc059
+ars4x32 7 00000000 ff000000 00000000 00000000 00ff0000 00000000 00000000 00000000 d12de53f 82c9fd72 153a4bf1 97834260
+ars4x32 7 00000000 80000000 00000000 00000000 00ff0000 00000000 00000000 00000000 78be9d31 d05ca12d 978adffa 42c3f165
+ars4x32 7 00000000 00000000 000000ff 00000000 00ff0000 00000000 00000000 00000000 df6516c8 c517f2ac f8189fcb 40268c9f
+ars4x32 7 00000000 00000000 00000080 00000000 00ff0000 00000000 00000000 00000000 06f0db2d b8cf2a5d 6a2fac1f b2b615f3
+ars4x32 7 00000000 00000000 0000ff00 00000000 00ff0000 00000000 00000000 00000000 07e97c9f b59955f1 ce210819 ddc6c117
+ars4x32 7 00000000 00000000 00008000 00000000 00ff0000 00000000 00000000 00000000 266fc505 086d79dd 883c7f19 812c8e58
+ars4x32 7 00000000 00000000 00ff0000 00000000 00ff0000 00000000 00000000 00000000 b2c8ba04 c0fdc64a b4d9a67c b335bd21
+ars4x32 7 00000000 00000000 00800000 00000000 00ff0000 00000000 00000000 00000000 c750fb02 49c6f0df 5e77855c 41bb7162
+ars4x32 7 00000000 00000000 ff000000 00000000 00ff0000 00000000 00000000 00000000 5a23f420 4b39be37 d12b4e70 43748ae8
+ars4x32 7 00000000 00000000 80000000 00000000 00ff0000 00000000 00000000 00000000 34ca991f 61a767bd c351e5b2 05eb14a6
+ars4x32 7 00000000 00000000 00000000 000000ff 00ff0000 00000000 00000000 00000000 b9032c17 622b9d66 a63ab848 cae4026d
+ars4x32 7 00000000 00000000 00000000 00000080 00ff0000 00000000 00000000 00000000 cb0864ff b9e9a0f4 587865a2 8d0e951a
+ars4x32 7 00000000 00000000 00000000 0000ff00 00ff0000 00000000 00000000 00000000 15df81bf 96bd32db 32fbbc39 5b63bcdf
+ars4x32 7 00000000 00000000 00000000 00008000 00ff0000 00000000 00000000 00000000 6437f14b 830fadfc 94314d02 c2511479
+ars4x32 7 00000000 00000000 00000000 00ff0000 00ff0000 00000000 00000000 00000000 48cb4f99 382ec6b3 be457c1d 2beed31f
+ars4x32 7 00000000 00000000 00000000 00800000 00ff0000 00000000 00000000 00000000 907b159b fe077e87 07b00ee8 5a81946f
+ars4x32 7 00000000 00000000 00000000 ff000000 00ff0000 00000000 00000000 00000000 996fcba6 25b49011 c432074f 5f3b26ef
+ars4x32 7 00000000 00000000 00000000 80000000 00ff0000 00000000 00000000 00000000 a91adb51 2af26621 19e0aeff 68d6e694
+ars4x32 7 886a3f24 d308a385 2e8a1913 44737003 00ff0000 00000000 00000000 00000000 3c41f9b1 ad73ddb3 02d857d3 09ff12ea
+ars4x32 7 223809a4 d0319f29 98fa2e08 896c4eec 00ff0000 00000000 00000000 00000000 991e32b5 45aaf05e 64fffcd8 61b258d8
+ars4x32 7 e6212845 7713d038 cf6654be 6c0ce934 00ff0000 00000000 00000000 00000000 081148ce 4da869c0 d06f78cf 42cda6d4
+ars4x32 7 00000001 00000000 00000000 00000000 00800000 00000000 00000000 00000000 a1b4b19d e403839e 16f8b8b6 1652d04b
+ars4x32 7 00000100 00000000 00000000 00000000 00800000 00000000 00000000 00000000 099f42eb 7c93ef4a 7273a8b3 ef9d69b5
+ars4x32 7 00010000 00000000 00000000 00000000 00800000 00000000 00000000 00000000 a76aebe3 7ff94770 dfee2619 05bd0057
+ars4x32 7 01000000 00000000 00000000 00000000 00800000 00000000 00000000 00000000 451fe101 f6a3ef4e 667f63a8 04ce4c83
+ars4x32 7 00000000 00000001 00000000 00000000 00800000 00000000 00000000 00000000 15cf4734 c47aef94 80edc942 f5ca69db
+ars4x32 7 00000000 00000100 00000000 00000000 00800000 00000000 00000000 00000000 e7566892 c6eb88c6 9c918435 0dd838f7
+ars4x32 7 00000000 00010000 00000000 00000000 00800000 00000000 00000000 00000000 469a99d1 8f034fce 3d2030c4 e0ed5d88
+ars4x32 7 00000000 01000000 00000000 00000000 00800000 00000000 00000000 00000000 c2c40a6a c58b2921 a4f6decf 4ae71aac
+ars4x32 7 00000000 00000000 00000001 00000000 00800000 00000000 00000000 00000000 1f70d2ed d32b22f6 9aa6dda6 3fef3838
+ars4x32 7 00000000 00000000 00000100 00000000 00800000 00000000 00000000 00000000 a9916db0 88b578e6 e47542bc 9ce1322f
+ars4x32 7 00000000 00000000 00010000 00000000 00800000 00000000 00000000 00000000 9e6e2d23 bd640359 4ab167df 9e912c62
+ars4x32 7 00000000 00000000 01000000 00000000 00800000 00000000 00000000 00000000 a2eda192 53f1d8b3 f44078fa d08dac13
+ars4x32 7 00000000 00000000 00000000 00000001 00800000 00000000 00000000 00000000 f7fc0eda 98472867 c3d1b83a 94ac445c
+ars4x32 7 00000000 00000000 00000000 00000100 00800000 00000000 00000000 00000000 0afed4d3 7d509436 d83d1e7e 804f751d
+ars4x32 7 00000000 00000000 00000000 00010000 00800000 00000000 00000000 00000000 a256ba8c 38c907b1 75c2a0b3 c53df9d7
+ars4x32 7 00000000 00000000 00000000 01000000 00800000 00000000 00000000 00000000 76c3db9a d7f46201 9fa6778f 543e2247
+ars4x32 7 0000ff00 00000000 00000000 00000000 00800000 00000000 00000000 00000000 1de2029f e8bd542d adf51e19 85712c5d
+ars4x32 7 00008000 00000000 00000000 00000000 00800000 00000000 00000000 00000000 ea2d0d3d 7c789821 6436a2dc 2dcc2884
+ars4x32 7 00ff0000 00000000 00000000 00000000 00800000 00000000 00000000 00000000 5aba4731 34daa9ed a85c4546 d7dbf009
+ars4x32 7 00800000 00000000 00000000 00000000 00800000 00000000 00000000 00000000 86c988bd 0701e39e 73a7d71c 17ab834e
+ars4x32 7 ff000000 00000000 00000000 00000000 00800000 00000000 00000000 00000000 aa465b47 86459dff 49611206 659bf418
+ars4x32 7 80000000 00000000 00000000 00000000 00800000 00000000 00000000 00000000 cf78f7c8 c620145b e06942aa 812e7565
+ars4x32 7 00000000 000000ff 00000000 00000000 00800000 00000000 00000000 00000000 c1ec8b70 da99ba59 d636b3f1 d33f4c01
+ars4x32 7 00000000 00000080 00000000 00000000 00800000 00000000 00000000 00000000 2889f1e5 5202bc42 93ca7570 41bfee0e
+ars4x32 7 00000000 0000ff00 00000000 00000000 00800000 00000000 00000000 00000000 f498fb91 d2aa5281 d0320c53 6e8f9393
+ars4x32 7 00000000 00008000 00000000 00000000 00800000 00000000 00000000 00000000 e0588e3a b2502bdf 0d301f0e d3ae6262
+ars4x32 7 00000000 00ff0000 00000000 00000000 00800000 00000000 00000000 00000000 e6c9f06e cb8f5012 31ccd88d 8082af36
+ars4x32 7 00000000 00800000 00000000 00000000 00800000 00000000 00000000 00000000 fbd461b1 bcf10336 da98061d f9f0eead
+ars4x32 7 00000000 ff000000 00000000 00000000 00800000 00000000 00000000 00000000 8d77a649 48ab6739 f3f6244a bcdb8ea4
+ars4x32 7 00000000 80000000 00000000 00000000 00800000 00000000 00000000 00000000 01d0fd1e 86e6ec23 34fe8312 adac2407
+ars4x32 7 00000000 00000000 000000ff 00000000 00800000 00000000 00000000 00000000 7183f509 0c87a68e 516efffe cd0603a1
+ars4x32 7 00000000 00000000 00000080 00000000 00800000 00000000 00000000 00000000 f90e665a 45f197b8 b01703a5 d9850ca9
+ars4x32 7 00000000 00000000 0000ff00 00000000 00800000 00000000 00000000 00000000 aba1b65b c3dc39c6 f818760c 5fcd9614
+ars4x32 7 00000000 00000000 00008000 00000000 00800000 00000000 00000000 00000000 c931ae0a a9c813a2 7389ce7b 3452f6d9
+ars4x32 7 00000000 00000000 00ff0000 00000000 00800000 00000000 00000000 00000000 5a7dd37f 99af6c84 d32965cc 710b3e37
+ars4x32 7 00000000 00000000 00800000 00000000 00800000 00000000 00000000 00000000 baedac97 b750a9ff 2f620a43 75c8add1
+ars4x32 7 00000000 00000000 ff000000 00000000 00800000 00000000 00000000 00000000 45954d84 67001176 dc64cf9e d0c338d7
+ars4x32 7 00000000 00000000 80000000 00000000 00800000 00000000 00000000 00000000 249dc958 65149828 5151c56e 707367fb
+ars4x32 7 00000000 00000000 00000000 000000ff 00800000 00000000 00000000 00000000 4e5ae7bc e47b30b0 f86b822c e364646c
+ars4x32 7 00000000 00000000 00000000 00000080 00800000 00000000 00000000 00000000 e63765d5 f32674bc 7782ed19 5567a9e5
+ars4x32 7 00000000 00000000 00000000 0000ff00 00800000 00000000 00000000 00000000 3ac6ab25 eebd3be5 ce198c87 190642a6
+ars4x32 7 00000000 00000000 00000000 00008000 00800000 00000000 00000000 00000000 90ca936c 19a11969 95285a8e d6c02163
+ars4x32 7 00000000 00000000 00000000 00ff0000 00800000 00000000 00000000 00000000 b47543c1 fcbb50e4 2b70872f e7925299
+ars4x32 7 00000000 00000000 00000000 00800000 00800000 00000000 00000000 00000000 45024998 0f63a2ab 1073737f b118a227
+ars4x32 7 00000000 00000000 00000000 ff000000 00800000 00000000 00000000 00000000 3c131bc1 dafb56c6 3f891099 ada112bf
+ars4x32 7 00000000 00000000 00000000 80000000 00800000 00000000 00000000 00000000 20510e0e 9282f9f2 36a85fea 60436ef8
+ars4x32 7 886a3f24 d308a385 2e8a1913 44737003 00800000 00000000 00000000 00000000 c8c161d9 a6254725 3a8e0032 b16af124
+ars4x32 7 223809a4 d0319f29 98fa2e08 896c4eec 00800000 00000000 00000000 00000000 fc54d1a3 2bebd8fc 350e3cba a9b3e3b3
+ars4x32 7 e6212845 7713d038 cf6654be 6c0ce934 00800000 00000000 00000000 00000000 725a0795 1f5b8fbf 0dde02a2 ddda103b
+ars4x32 7 00000001 00000000 00000000 00000000 ff000000 00000000 00000000 00000000 f20c1570 d6039a6e be4c0b63 0ceab11b
+ars4x32 7 00000100 00000000 00000000 00000000 ff000000 00000000 00000000 00000000 c58d83f4 c7c11330 92c5c6aa c439b7b9
+ars4x32 7 00010000 00000000 00000000 00000000 ff000000 00000000 00000000 00000000 f6d11f1d 28402208 38be7215 bcf3029f
+ars4x32 7 01000000 00000000 00000000 00000000 ff000000 00000000 00000000 00000000 0d715426 5dc37963 60e36070 f208eb70
+ars4x32 7 00000000 00000001 00000000 00000000 ff000000 00000000 00000000 00000000 02d1fa26 36d9a526 bd86b104 f287cff5
+ars4x32 7 00000000 00000100 00000000 00000000 ff000000 00000000 00000000 00000000 d2661d98 6e9fa52e c4b8b29c 7715a4e6
+ars4x32 7 00000000 00010000 00000000 00000000 ff000000 00000000 00000000 00000000 4ab024ed 9feb8bfb 4ab3a7af d6d46e21
+ars4x32 7 00000000 01000000 00000000 00000000 ff000000 00000000 00000000 00000000 e0ca2ef9 0f8fcc91 a909c0f8 5026f05d
+ars4x32 7 00000000 00000000 00000001 00000000 ff000000 00000000 00000000 00000000 00b618f9 7986feda 5082f579 dccbe02e
+ars4x32 7 00000000 00000000 00000100 00000000 ff000000 00000000 00000000 00000000 91c81394 a3c03bd0 be362e51 14e979c2
+ars4x32 7 00000000 00000000 00010000 00000000 ff000000 00000000 00000000 00000000 afffebcd 5e5ee6c9 5ad415ff 1c816807
+ars4x32 7 00000000 00000000 01000000 00000000 ff000000 00000000 00000000 00000000 6e8b1751 c4ebb487 1a3c413e 8b34880c
+ars4x32 7 00000000 00000000 00000000 00000001 ff000000 00000000 00000000 00000000 531ef1f8 157230dd 44a117e0 d28ebbb2
+ars4x32 7 00000000 00000000 00000000 00000100 ff000000 00000000 00000000 00000000 5117f82c bcb985ff 3cc57c54 1dea7b4c
+ars4x32 7 00000000 00000000 00000000 00010000 ff000000 00000000 00000000 00000000 2ec0689e e031aff0 9c5bbe70 4be2d641
+ars4x32 7 00000000 00000000 00000000 01000000 ff000000 00000000 00000000 00000000 7fdcd715 f074a429 486e4445 f4b48540
+ars4x32 7 0000ff00 00000000 00000000 00000000 ff000000 00000000 00000000 00000000 3f336fa9 7ac9514b fbe022cc 72d67f1c
+ars4x32 7 00008000 00000000 00000000 00000000 ff000000 00000000 00000000 00000000 cb311987 a33b790b 5238e35c 1b22d75d
+ars4x32 7 00ff0000 00000000 00000000 00000000 ff000000 00000000 00000000 00000000 3f33ae27 8073ad94 00e099ba 0890dc6b
+ars4x32 7 00800000 00000000 00000000 00000000 ff000000 00000000 00000000 00000000 316ed3b1 7ebb4320 8d4e502c 19b9a17b
+ars4x32 7 ff000000 00000000 00000000 00000000 ff000000 00000000 00000000 00000000 8a4ef9ba b150b7b8 a89b995d 222654b3
+ars4x32 7 80000000 00000000 00000000 00000000 ff000000 00000000 00000000 00000000 aa6ab8e1 32aaafe2 68cff088 5126a72f
+ars4x32 7 00000000 000000ff 00000000 00000000 ff000000 00000000 00000000 00000000 d9484dd2 d8ed45bf cd934356 98711bc5
+ars4x32 7 00000000 00000080 00000000 00000000 ff000000 00000000 00000000 00000000 b194fc17 7ad19838 104a1190 6ad2e2c6
+ars4x32 7 00000000 0000ff00 00000000 00000000 ff000000 00000000 00000000 00000000 10e03c4f 1d66a55e f4015b51 24b0a6da
+ars4x32 7 00000000 00008000 00000000 00000000 ff000000 00000000 00000000 00000000 5c877863 27e4ae74 c1fe9bdb 30e7387f
+ars4x32 7 00000000 00ff0000 00000000 00000000 ff000000 00000000 00000000 00000000 48d665be 04dd1041 3c536403 c0c50658
+ars4x32 7 00000000 00800000 00000000 00000000 ff000000 00000000 00000000 00000000 316af260 c3e51228 8e2d101c 55283e5f
+ars4x32 7 00000000 ff000000 00000000 00000000 ff000000 00000000 00000000 00000000 b2d3fb05 0e237707 5159f20a c142ef5b
+ars4x32 7 00000000 80000000 00000000 00000000 ff000000 00000000 00000000 00000000 e31079c1 260ea3df aa6faa8b 38845c56
+ars4x32 7 00000000 00000000 000000ff 00000000 ff000000 00000000 00000000 00000000 9acdaf03 0885571d 530cb772 2d658c18
+ars4x32 7 00000000 00000000 00000080 00000000 ff000000 00000000 00000000 00000000 950397cf ddd8b4bb 9018eaa0 e764146d
+ars4x32 7 00000000 00000000 0000ff00 00000000 ff000000 00000000 00000000 00000000 b24e6d97 79f27720 cedc6bcf cebad106
+ars4x32 7 00000000 00000000 00008000 00000000 ff000000 00000000 00000000 00000000 f2e3aedb 07a6ff24 57597231 c1c326ea
+ars4x32 7 00000000 00000000 00ff0000 00000000 ff000000 00000000 00000000 00000000 5006737e ef8f114f 5433839c 8bf6fcec
+ars4x32 7 00000000 00000000 00800000 00000000 ff000000 00000000 00000000 00000000 ce0dcef4 5dce8255 9cfc7a44 92c775f6
+ars4x32 7 00000000 00000000 ff000000 00000000 ff000000 00000000 00000000 00000000 06445467 01eaf5af 7c41372f 306c0418
+ars4x32 7 00000000 00000000 80000000 00000000 ff000000 00000000 00000000 00000000 b24a91ad 5374b993 532c214e 4d62735c
+ars4x32 7 00000000 00000000 00000000 000000ff ff000000 00000000 00000000 00000000 2ad702b7 f298e652 ad45e416 afdf3b45
+ars4x32 7 00000000 00000000 00000000 00000080 ff000000 00000000 00000000 00000000 1fdfac1b 29d91b83 6283fa9a c4bdabc1
+ars4x32 7 00000000 00000000 00000000 0000ff00 ff000000 00000000 00000000 00000000 c38ba415 36e0934a 9e93e7ff 57fb9604
+ars4x32 7 00000000 00000000 00000000 00008000 ff000000 00000000 00000000 00000000 8496cc8f d317b99a 09ed2dd5 0edb985e
+ars4x32 7 00000000 00000000 00000000 00ff0000 ff000000 00000000 00000000 00000000 c1a8e6ba f637f477 7c1be8c5 1635dc1c
+ars4x32 7 00000000 00000000 00000000 00800000 ff000000 00000000 00000000 00000000 5f2e7d91 f1f9cf5a 817e48fe 32ccab0c
+ars4x32 7 00000000 00000000 00000000 ff000000 ff000000 00000000 00000000 00000000 319fdc17 28a1caa6 cc3b75d2 cb8f3b4d
+ars4x32 7 00000000 00000000 00000000 80000000 ff000000 00000000 00000000 00000000 1f4d97b8 422e76b3 dda759c2 a5847931
+ars4x32 7 886a3f24 d308a385 2e8a1913 44737003 ff000000 00000000 00000000 00000000 0ba58ff4 f368a86b fd226d2d 38846c8f
+ars4x32 7 223809a4 d0319f29 98fa2e08 896c4eec ff000000 00000000 00000000 00000000 0559bff4 5d8c2def 9683e6e7 2f3bfae0
+ars4x32 7 e6212845 7713d038 cf6654be 6c0ce934 ff000000 00000000 00000000 00000000 49aa9863 e5956af6 c1963ab1 591271f2
+ars4x32 7 00000001 00000000 00000000 00000000 80000000 00000000 00000000 00000000 87bb5447 bc484c00 3c5b9aeb 1c2b06a0
+ars4x32 7 00000100 00000000 00000000 00000000 80000000 00000000 00000000 00000000 85ff139c 79136de3 a6c097ad a9d93b5e
+ars4x32 7 00010000 00000000 00000000 00000000 80000000 00000000 00000000 00000000 d742d3e8 1cadab91 38352a68 13cdbe8f
+ars4x32 7 01000000 00000000 00000000 00000000 80000000 00000000 00000000 00000000 7baaf6fd ce25c905 cd52dd6d 9b4b8695
+ars4x32 7 00000000 00000001 00000000 00000000 80000000 00000000 00000000 00000000 a372abd2 9170f153 c0f3826a 030d183c
+ars4x32 7 00000000 00000100 00000000 00000000 80000000 00000000 00000000 00000000 ac9b58af eab5f7f1 3067583b 20a88a68
+ars4x32 7 00000000 00010000 00000000 00000000 80000000 00000000 00000000 00000000 1543d6a6 2a11882a b8bd4a66 9d975a6a
+ars4x32 7 00000000 01000000 00000000 00000000 80000000 00000000 00000000 00000000 71143d7c 1ef3ced0 7932bd39 5ea74960
+ars4x32 7 00000000 00000000 00000001 00000000 80000000 00000000 00000000 00000000 78214851 98901970 9c7fb38b 86e20192
+ars4x32 7 00000000 00000000 00000100 00000000 80000000 00000000 00000000 00000000 4516ccf1 a5a3eb0f ea6d2d14 cbe8dc1d
+ars4x32 7 00000000 00000000 00010000 00000000 80000000 00000000 00000000 00000000 b0e28d6c dafe0519 9265f7a2 3a67d98f
+ars4x32 7 00000000 00000000 01000000 00000000 80000000 00000000 00000000 00000000 ca83bf38 b97608b1 f638b1ad 264da873
+ars4x32 7 00000000 00000000 00000000 00000001 80000000 00000000 00000000 00000000 eb299f5a 488ca603 d07f13b6 11f9a950
+ars4x32 7 00000000 00000000 00000000 00000100 80000000 00000000 00000000 00000000 1820cc2d ed40c0c6 9de2f5db a832b40c
+ars4x32 7 00000000 00000000 00000000 00010000 80000000 00000000 00000000 00000000 8c94851e 9015ad5d fa421361 7a8c9a72
+ars4x32 7 00000000 00000000 00000000 01000000 80000000 00000000 00000000 00000000 356b05ae e4868c3f 00d4c8e7 5bb483bd
+ars4x32 7 0000ff00 00000000 00000000 00000000 80000000 00000000 00000000 00000000 87e57c8d a2ebb5da 94ef921b fa8513ce
+ars4x32 7 00008000 00000000 00000000 00000000 80000000 00000000 00000000 00000000 cc5d25dd 0f0c036d d8f1396b 0a42d6b4
+ars4x32 7 00ff0000 00000000 00000000 00000000 80000000 00000000 00000000 00000000 a2459ccc f6ee7d36 ccec35f6 e61df0ad
+ars4x32 7 00800000 00000000 00000000 00000000 80000000 00000000 00000000 00000000 124c12b5 6fdd7c44 d10cd930 50fc3048
+ars4x32 7 ff000000 00000000 00000000 00000000 80000000 00000000 00000000 00000000 09a36724 e1efb60c 7a6af056 16918325
+ars4x32 7 80000000 00000000 00000000 00000000 80000000 00000000 00000000 00000000 241b7c12 dac5702f 035aaf92 367de6b0
+ars4x32 7 00000000 000000ff 00000000 00000000 80000000 00000000 00000000 00000000 d0e87638 680d52f8 ef7d1235 eb854d5f
+ars4x32 7 00000000 00000080 00000000 00000000 80000000 00000000 00000000 00000000 41458389 3648fdb0 f32d3a06 1b374ab6
+ars4x32 7 00000000 0000ff00 00000000 00000000 80000000 00000000 00000000 00000000 89767040 98bd8b53 2a7a25e1 9d330351
+ars4x32 7 00000000 00008000 00000000 00000000 80000000 00000000 00000000 00000000 0495c061 b369bdf6 16e39b8b 2f73c706
+ars4x32 7 00000000 00ff0000 00000000 00000000 80000000 00000000 00000000 00000000 4f44ba25 2fa529fb 7bac72d0 8c5e9791
+ars4x32 7 00000000 00800000 00000000 00000000 80000000 00000000 00000000 00000000 cf05097a 9445e279 6be1bea5 934cc529
+ars4x32 7 00000000 ff000000 00000000 00000000 80000000 00000000 00000000 00000000 b14f83c4 23ea98f2 117f8aa9 6f4e3cff
+ars4x32 7 00000000 80000000 00000000 00000000 80000000 00000000 00000000 00000000 bcefcdbe f7800c28 75a42433 343eb79f
+ars4x32 7 00000000 00000000 000000ff 00000000 80000000 00000000 00000000 00000000 c823637a f2cd8f68 3f74cbdd 72672c7e
+ars4x32 7 00000000 00000000 00000080 00000000 80000000 00000000 00000000 00000000 cdd08685 aa494976 778fdcd3 9ecac13f
+ars4x32 7 00000000 00000000 0000ff00 00000000 80000000 00000000 00000000 00000000 fa778f3c 6258a48a e9264cb5 7b37bca7
+ars4x32 7 00000000 00000000 00008000 00000000 80000000 00000000 00000000 00000000 2d459898 72b4770e c2a0bb2b 3c849ce6
+ars4x32 7 00000000 00000000 00ff0000 00000000 80000000 00000000 00000000 00000000 4cc396bc ced17dc9 f56b05e9 f981fa2a
+ars4x32 7 00000000 00000000 00800000 00000000 80000000 00000000 00000000 00000000 fca7e4cd 675b8891 78cb54e9 32b59df7
+ars4x32 7 00000000 00000000 ff000000 00000000 80000000 00000000 00000000 00000000 2382998d 5c4ed0b3 055d8edf ca6ca6d4
+ars4x32 7 00000000 00000000 80000000 00000000 80000000 00000000 00000000 00000000 afa21a88 d3361143 bda336cd 1bf267e9
+ars4x32 7 00000000 00000000 00000000 000000ff 80000000 00000000 00000000 00000000 b18364a6 17306f04 1b6a8425 6eff1661
+ars4x32 7 00000000 00000000 00000000 00000080 80000000 00000000 00000000 00000000 0e9be5fd 8ca4a6f1 0a8877e6 da88be80
+ars4x32 7 00000000 00000000 00000000 0000ff00 80000000 00000000 00000000 00000000 1b5e3bd8 03430218 f30c0ab5 396c6445
+ars4x32 7 00000000 00000000 00000000 00008000 80000000 00000000 00000000 00000000 782878c3 3e5bf42b cf3105a1 de7112a6
+ars4x32 7 00000000 00000000 00000000 00ff0000 80000000 00000000 00000000 00000000 43bd4d21 40c58ac2 32165652 fbf0adba
+ars4x32 7 00000000 00000000 00000000 00800000 80000000 00000000 00000000 00000000 f0139d5e 9458d4c8 5adb4065 18813af3
+ars4x32 7 00000000 00000000 00000000 ff000000 80000000 00000000 00000000 00000000 28331921 43f86e50 f0b94047 e0654b93
+ars4x32 7 00000000 00000000 00000000 80000000 80000000 00000000 00000000 00000000 5ec61507 95b87190 8213fbdb 1360ab51
+ars4x32 7 886a3f24 d308a385 2e8a1913 44737003 80000000 00000000 00000000 00000000 533f6a37 ba512677 d84dfdd5 5597e5aa
+ars4x32 7 223809a4 d0319f29 98fa2e08 896c4eec 80000000 00000000 00000000 00000000 529c017f 9f86555b 837d649b ff84d080
+ars4x32 7 e6212845 7713d038 cf6654be 6c0ce934 80000000 00000000 00000000 00000000 25283e1d ec64d74a afae1f45 5dad3c19
+ars4x32 7 00000001 00000000 00000000 00000000 00000000 000000ff 00000000 00000000 43c59a8b 7a0a8656 9c5f8e27 4af02ac2
+ars4x32 7 00000100 00000000 00000000 00000000 00000000 000000ff 00000000 00000000 57dc1d90 13124348 47a4d8f5 d64e0304
+ars4x32 7 00010000 00000000 00000000 00000000 00000000 000000ff 00000000 00000000 99ae0ba7 08529cca 397c2875 233f40e4
+ars4x32 7 01000000 00000000 00000000 00000000 00000000 000000ff 00000000 00000000 87ceb2f7 6b345e61 9a2262b5 d69056cc
+ars4x32 7 00000000 00000001 00000000 00000000 00000000 000000ff 00000000 00000000 1d69aed8 3b929058 e9fbe805 18ed39b5
+ars4x32 7 00000000 00000100 00000000 00000000 00000000 000000ff 00000000 00000000 90bfc885 9f4237b2 dfd32f0e b1e2f26a
+ars4x32 7 00000000 00010000 00000000 00000000 00000000 000000ff 00000000 00000000 da68b9cc 33b56472 05f80088 098915f3
+ars4x32 7 00000000 01000000 00000000 00000000 00000000 000000ff 00000000 00000000 55848037 5c14a6e4 10023500 abc72296
+ars4x32 7 00000000 00000000 00000001 00000000 00000000 000000ff 00000000 00000000 e7d77cf9 7140c274 0642cd78 c167426a
+ars4x32 7 00000000 00000000 00000100 00000000 00000000 000000ff 00000000 00000000 1f6f5dc7 6a834368 bc961991 01d51d24
+ars4x32 7 00000000 00000000 00010000 00000000 00000000 000000ff 00000000 00000000 1bb02fcb 029706f2 c4d03153 40cc75eb
+ars4x32 7 00000000 00000000 01000000 00000000 00000000 000000ff 00000000 00000000 be29eb01 7a39d0ea 79092750 0157e93f
+ars4x32 7 00000000 00000000 00000000 00000001 00000000 000000ff 00000000 00000000 78f7259c 6ac835be 3b05318c a379cd46
+ars4x32 7 00000000 00000000 00000000 00000100 00000000 000000ff 00000000 00000000 c914d01b 78603f42 272880d0 63db5558
+ars4x32 7 00000000 00000000 00000000 00010000 00000000 000000ff 00000000 00000000 30fed3a5 d7d0f6ca f8a2b39b 4d1abdbd
+ars4x32 7 00000000 00000000 00000000 01000000 00000000 000000ff 00000000 00000000 6fc859e0 28e9e642 deeabe53 148ec29e
+ars4x32 7 0000ff00 00000000 00000000 00000000 00000000 000000ff 00000000 00000000 2ed44b13 fb6dc843 f6762574 24a4be71
+ars4x32 7 00008000 00000000 00000000 00000000 00000000 000000ff 00000000 00000000 c15b218e 5942aad5 5385c634 0b1a8d79
+ars4x32 7 00ff0000 00000000 00000000 00000000 00000000 000000ff 00000000 00000000 cea1fe5d d64390e8 77fa74f9 739b2908
+ars4x32 7 00800000 00000000 00000000 00000000 00000000 000000ff 00000000 00000000 2d68af44 add72c30 8695fccf 457ff20c
+ars4x32 7 ff000000 00000000 00000000 00000000 00000000 000000ff 00000000 00000000 a6d4ccee 099f5cb7 3def8137 c8b0e054
+ars4x32 7 80000000 00000000 00000000 00000000 00000000 000000ff 00000000 00000000 2262767d 4f132f15 74544c84 849da607
+ars4x32 7 00000000 000000ff 00000000 00000000 00000000 000000ff 00000000 00000000 6ffb7b5e f6433da9 546972b1 b9ba5e91
+ars4x32 7 00000000 00000080 00000000 00000000 00000000 000000ff 00000000 00000000 2f2e366a 8e08a28d 9fd231f5 89e1b414
+ars4x32 7 00000000 0000ff00 00000000 00000000 00000000 000000ff 00000000 00000000 ec4f793f 4a915361 49d4bf4b 008921e9
+ars4x32 7 00000000 00008000 00000000 00000000 00000000 000000ff 00000000 00000000 c16c5ceb 50bfe194 033a05fb 581cece7
+ars4x32 7 00000000 00ff0000 00000000 00000000 00000000 000000ff 00000000 00000000 b62541fa 29374e2b 5fd7db5a b8dc8fa1
+ars4x32 7 00000000 00800000 00000000 00000000 00000000 000000ff 00000000 00000000 f3092fc1 2d34850a ee312b26 b3248d96
+ars4x32 7 00000000 ff000000 00000000 00000000 00000000 000000ff 00000000 00000000 18b536c0 2171ac1c 366bacb9 20307007
+ars4x32 7 00000000 80000000 00000000 00000000 00000000 000000ff 00000000 00000000 e5a3b8fc 7d0ebab7 1773b22b ca5ef8ff
+ars4x32 7 00000000 00000000 000000ff 00000000 00000000 000000ff 00000000 00000000 eb5a6b14 d6f13e39 e5c2898c 884ae98d
+ars4x32 7 00000000 00000000 00000080 00000000 00000000 000000ff 00000000 00000000 63559e27 f649cb3e 8dad6310 214cec8b
+ars4x32 7 00000000 00000000 0000ff00 00000000 00000000 000000ff 00000000 00000000 ed16c428 2f7d0063 1dbe5855 0964c597
+ars4x32 7 00000000 00000000 00008000 00000000 00000000 000000ff 00000000 00000000 9c1c25a2 b51b1513 c2ce46c6 b710743b
+ars4x32 7 00000000 00000000 00ff0000 00000000 00000000 000000ff 00000000 00000000 27e77312 e0090553 981f1b58 e2e53ed4
+ars4x32 7 00000000 00000000 00800000 00000000 00000000 000000ff 00000000 00000000 2aba1abb c3d3fd8e 4db4d2cf a0d8e8fe
+ars4x32 7 00000000 00000000 ff000000 00000000 00000000 000000ff 00000000 00000000 d6eb1511 03b367ec fb02e357 221e1de6
+ars4x32 7 00000000 00000000 80000000 00000000 00000000 000000ff 00000000 00000000 998b7fa0 c330bf3e 4906a0b9 32c00aee
+ars4x32 7 00000000 00000000 00000000 000000ff 00000000 000000ff 00000000 00000000 f95becd0 bdc40f82 23bc843a 953bbb26
+ars4x32 7 00000000 00000000 00000000 00000080 00000000 000000ff 00000000 00000000 f960be5e c44d7241 08b27d55 67690dca
+ars4x32 7 00000000 00000000 00000000 0000ff00 00000000 000000ff 00000000 00000000 ff69bad7 6752a2e6 5222bb9c 30d59d7e
+ars4x32 7 00000000 00000000 00000000 00008000 00000000 000000ff 00000000 00000000 585585c3 b27283cf 4dcd15a3 ce8cd474
+ars4x32 7 00000000 00000000 00000000 00ff0000 00000000 000000ff 00000000 00000000 09d00347 3eb2b33d c167b7a6 3481b589
+ars4x32 7 00000000 00000000 00000000 00800000 00000000 000000ff 00000000 00000000 abb02cd1 a5501d95 f69faffa efae570e
+ars4x32 7 00000000 00000000 00000000 ff000000 00000000 000000ff 00000000 00000000 4ab73886 18a8e008 86c42139 4ffd1164
+ars4x32 7 00000000 00000000 00000000 80000000 00000000 000000ff 00000000 00000000 f77867ae 96b779a2 e350fb3a bc323d55
+ars4x32 7 886a3f24 d308a385 2e8a1913 44737003 00000000 000000ff 00000000 00000000 ad84c758 b85d53fc 270cc9cb 0d11d188
+ars4x32 7 223809a4 d0319f29 98fa2e08 896c4eec 00000000 000000ff 00000000 00000000 1a623015 87f931a8 16b04922 f155907a
+ars4x32 7 e6212845 7713d038 cf6654be 6c0ce934 00000000 000000ff 00000000 00000000 f584e714 00b48848 4a91baa5 3ca12024
+ars4x32 7 00000001 00000000 00000000 00000000 00000000 00000080 00000000 00000000 ae90a49e 0299f75a dba09105 373ea9eb
+ars4x32 7 00000100 00000000 00000000 00000000 00000000 00000080 00000000 00000000 214eed3d 174342ff 75353808 982cff92
+ars4x32 7 00010000 00000000 00000000 00000000 00000000 00000080 00000000 00000000 0f23fa1a 7b4b9c5d e05f47d2 b5ab6abc
+ars4x32 7 01000000 00000000 00000000 00000000 00000000 00000080 00000000 00000000 c5d8ab43 57dccb7e e867925b 7f6262a2
+ars4x32 7 00000000 00000001 00000000 00000000 00000000 00000080 00000000 00000000 374bb137 888b5016 ab7c188d 90208ed9
+ars4x32 7 00000000 00000100 00000000 00000000 00000000 00000080 00000000 00000000 5f9ea30d a10ab20d 6dbd796c ef1aaa67
+ars4x32 7 00000000 00010000 00000000 00000000 00000000 00000080 00000000 00000000 77d47187 2f3cfe06 9379af3f c4ba660f
+ars4x32 7 00000000 01000000 00000000 00000000 00000000 00000080 00000000 00000000 f3b87463 f479102f ba81384d 34102ef8
+ars4x32 7 00000000 00000000 00000001 00000000 00000000 00000080 00000000 00000000 60908525 4aabf57a 93c9cc43 8cad4313
+ars4x32 7 00000000 00000000 00000100 00000000 00000000 00000080 00000000 00000000 3ce1f6e3 dda6d891 e1510c84 8f834bf4
+ars4x32 7 00000000 00000000 00010000 00000000 00000000 00000080 00000000 00000000 985cf038 aa7b16b2 638d34f1 eda67219
+ars4x32 7 00000000 00000000 01000000 00000000 00000000 00000080 00000000 00000000 a545eecc 860e969e 239e2844 0169b9a8
+ars4x32 7 00000000 00000000 00000000 00000001 00000000 00000080 00000000 00000000 cb17174d e653d856 bc2b4908 e8fe058e
+ars4x32 7 00000000 00000000 00000000 00000100 00000000 00000080 00000000 00000000 da37f0c2 dea7695a b2d60e33 5ea535fb
+ars4x32 7 00000000 00000000 00000000 00010000 00000000 00000080 00000000 00000000 ab5150a4 6bda12a2 8f191285 7d7bb7c3
+ars4x32 7 00000000 00000000 00000000 01000000 00000000 00000080 00000000 00000000 37041509 09fbce98 04aa5f64 c4321682
+ars4x32 7 0000ff00 00000000 00000000 00000000 00000000 00000080 00000000 00000000 9c143b49 5f8c06bf 2cdff4f4 221ceef9
+ars4x32 7 00008000 00000000 00000000 00000000 00000000 00000080 00000000 00000000 b7be5da6 fa4c411e c9cd4b45 531ad13e
+ars4x32 7 00ff0000 00000000 00000000 00000000 00000000 00000080 00000000 00000000 6b883640 05246641 2b401ae1 d4d847ed
+ars4x32 7 00800000 00000000 00000000 00000000 00000000 00000080 00000000 00000000 68166451 96c4002c a2bfab07 d56932a7
+ars4x32 7 ff000000 00000000 00000000 00000000 00000000 00000080 00000000 00000000 969ce4d7 2327f0e2 9f062d34 68cb61ac
+ars4x32 7 80000000 00000000 00000000 00000000 00000000 00000080 00000000 00000000 f524b711 5cb24950 b205657f 695b1936
+ars4x32 7 00000000 000000ff 00000000 00000000 00000000 00000080 00000000 00000000 a428a90d ee8be22b ec86cd41 d7ca0544
+ars4x32 7 00000000 00000080 00000000 00000000 00000000 00000080 00000000 00000000 92033e09 70381ddf a67153cf 7f1d3e6a
+ars4x32 7 00000000 0000ff00 00000000 00000000 00000000 00000080 00000000 00000000 776d80b7 92d6738c 0eb0f0f1 6606b60b
+ars4x32 7 00000000 00008000 00000000 00000000 00000000 00000080 00000000 00000000 3437e471 971e2660 9de12fcc 9e719dee
+ars4x32 7 00000000 00ff0000 00000000 00000000 00000000 00000080 00000000 00000000 17d851f4 b6e2cba0 dcf9d96f 6db22640
+ars4x32 7 00000000 00800000 00000000 00000000 00000000 00000080 00000000 00000000 49fba068 efaea7ff 4403e079 eff7e9f8
+ars4x32 7 00000000 ff000000 00000000 00000000 00000000 00000080 00000000 00000000 a9d90c25 137cefe3 2da099c8 8b7c54fe
+ars4x32 7 00000000 80000000 00000000 00000000 00000000 00000080 00000000 00000000 31ecb7fc e98ed901 cc52ca53 522b8aef
+ars4x32 7 00000000 00000000 000000ff 00000000 00000000 00000080 00000000 00000000 67ea36d8 edc81619 75f854de 62620573
+ars4x32 7 00000000 00000000 00000080 00000000 00000000 00000080 00000000 00000000 5f07cdb6 dc8eba08 a2203ab9 ebd2994e
+ars4x32 7 00000000 00000000 0000ff00 00000000 00000000 00000080 00000000 00000000 2f97e7b3 1c024bf0 9460e45c 1eb15ddd
+ars4x32 7 00000000 00000000 00008000 00000000 00000000 00000080 00000000 00000000 f99e3f20 685e32af d12893b7 d18721d8
+ars4x32 7 00000000 00000000 00ff0000 00000000 00000000 00000080 00000000 00000000 59a6b960 e2f7be6d 19708280 ec687494
+ars4x32 7 00000000 00000000 00800000 00000000 00000000 00000080 00000000 00000000 f6bf72b5 35e08dfc 79348d65 0c815c53
+ars4x32 7 00000000 00000000 ff000000 00000000 00000000 00000080 00000000 00000000 47060b19 ade1deb2 8d099901 f0ac9d2d
+ars4x32 7 00000000 00000000 80000000 00000000 00000000 00000080 00000000 00000000 0a867ee5 95ee7cc0 7f2e1cf0 c07dfba7
+ars4x32 7 00000000 00000000 00000000 000000ff 00000000 00000080 00000000 00000000 c6642d40 a7c3b4ed eec824dc 24aee808
+ars4x32 7 00000000 00000000 00000000 00000080 00000000 00000080 00000000 00000000 597ca954 4b3feb03 b167cc9c c8279e80
+ars4x32 7 00000000 00000000 00000000 0000ff00 00000000 00000080 00000000 00000000 593f9abf 9e8e17a6 0242e2e5 f369eeed
+ars4x32 7 00000000 00000000 00000000 00008000 00000000 00000080 00000000 00000000 fab1a164 05491084 8eef7174 75a535d2
+ars4x32 7 00000000 00000000 00000000 00ff0000 00000000 00000080 00000000 00000000 69bcce75 1438b313 66a61a4b 43d63282
+ars4x32 7 00000000 00000000 00000000 00800000 00000000 00000080 00000000 00000000 a4af4199 6f5a71ff 5414096c 85cb08c1
+ars4x32 7 00000000 00000000 00000000 ff000000 00000000 00000080 00000000 00000000 39646b02 29dd0ee6 e83e8167 a6d3146d
+ars4x32 7 00000000 00000000 00000000 80000000 00000000 00000080 00000000 00000000 532476b9 2bbb5430 2f6e0475 0eda4364
+ars4x32 7 886a3f24 d308a385 2e8a1913 44737003 00000000 00000080 00000000 00000000 e5f3aa72 34c9a92c ecef1d1b cf2f08f2
+ars4x32 7 223809a4 d0319f29 98fa2e08 896c4eec 00000000 00000080 00000000 00000000 f5deff66 26bdf298 18970803 1b6bedfd
+ars4x32 7 e6212845 7713d038 cf6654be 6c0ce934 00000000 00000080 00000000 00000000 0cc5fc86 ec0fdde9 76d69653 8db392f0
+ars4x32 7 00000001 00000000 00000000 00000000 00000000 0000ff00 00000000 00000000 bf8d3d73 1d510d98 a6a565cb f41beed0
+ars4x32 7 00000100 00000000 00000000 00000000 00000000 0000ff00 00000000 00000000 e6d8c3e2 327dc9c6 a53a0526 a7a2e8c8
+ars4x32 7 00010000 00000000 00000000 00000000 00000000 0000ff00 00000000 00000000 981d0eee 0e53df72 c8c669fa ef118af6
+ars4x32 7 01000000 00000000 00000000 00000000 00000000 0000ff00 00000000 00000000 1ee3785e 8f405a41 6cf2f459 d12f65de
+ars4x32 7 00000000 00000001 00000000 00000000 00000000 0000ff00 00000000 00000000 5689240e 4a9abb71 24f810b9 a00fed86
+ars4x32 7 00000000 00000100 00000000 00000000 00000000 0000ff00 00000000 00000000 18ea4be2 8b2cd08c 56f9bdbe 494e587c
+ars4x32 7 00000000 00010000 00000000 00000000 00000000 0000ff00 00000000 00000000 92e8db17 688254d0 099cfecb 0098b9be
+ars4x32 7 00000000 01000000 00000000 00000000 00000000 0000ff00 00000000 00000000 8d849af3 bf8eb57a e3608fea 0abb0dc5
+ars4x32 7 00000000 00000000 00000001 00000000 00000000 0000ff00 00000000 00000000 f0957217 2d87c5a8 769befb8 0549d014
+ars4x32 7 00000000 00000000 00000100 00000000 00000000 0000ff00 00000000 00000000 501c3db9 1c2634bf 1338febc 662dcdb1
+ars4x32 7 00000000 00000000 00010000 00000000 00000000 0000ff00 00000000 00000000 5208560b 3029b78d 68a6398f 7ddd0893
+ars4x32 7 00000000 00000000 01000000 00000000 00000000 0000ff00 00000000 00000000 5e03fc29 b285b39d 03b9254b 6beccc1a
+ars4x32 7 00000000 00000000 00000000 00000001 00000000 0000ff00 00000000 00000000 dc4ea628 911b21d6 a19c28e2 37bba515
+ars4x32 7 00000000 00000000 00000000 00000100 00000000 0000ff00 00000000 00000000 467cdace 893c5b03 f7c0a63f b5fa6d2f
+ars4x32 7 00000000 00000000 00000000 00010000 00000000 0000ff00 00000000 00000000 f9f1edfc 22a89845 34a86319 15f2be80
+ars4x32 7 00000000 00000000 00000000 01000000 00000000 0000ff00 00000000 00000000 e95326d2 158048c8 8a64a0bf 59be8fe3
+ars4x32 7 0000ff00 00000000 00000000 00000000 00000000 0000ff00 00000000 00000000 ed0f0350 6dd365eb 1bcfa92a 4db75da2
+ars4x32 7 00008000 00000000 00000000 00000000 00000000 0000ff00 00000000 00000000 62ffa2d5 51f141be 09c2b4b8 b598b403
+ars4x32 7 00ff0000 00000000 00000000 00000000 00000000 0000ff00 00000000 00000000 811a7341 0810d368 7a944fba 8c2db187
+ars4x32 7 00800000 00000000 00000000 00000000 00000000 0000ff00 00000000 00000000 5d716d41 86d8ebee d46107c9 e689580a
+ars4x32 7 ff000000 00000000 00000000 00000000 00000000 0000ff00 00000000 00000000 30171295 a98ec36d 2e0be711 4f2d1fe9
+ars4x32 7 80000000 00000000 00000000 00000000 00000000 0000ff00 00000000 00000000 f0015e01 ca15540b 21cb5ab1 ac427fe0
+ars4x32 7 00000000 000000ff 00000000 00000000 00000000 0000ff00 00000000 00000000 b27d8ea4 4571306b 285941ad d099a2fa
+ars4x32 7 00000000 00000080 00000000 00000000 00000000 0000ff00 00000000 00000000 cf80a449 81a472b2 3f02b902 5331a873
+ars4x32 7 00000000 0000ff00 00000000 00000000 00000000 0000ff00 00000000 00000000 8c7134f8 5c101fe0 a856f137 f0b7f9e2
+ars4x32 7 00000000 00008000 00000000 00000000 00000000 0000ff00 00000000 00000000 afb74eb6 8ce42242 283c88fb c996e8f9
+ars4x32 7 00000000 00ff0000 00000000 00000000 00000000 0000ff00 00000000 00000000 de9c09e7 2c4371b2 d68598a3 fd542cd7
+ars4x32 7 00000000 00800000 00000000 00000000 00000000 0000ff00 00000000 00000000 b644c5b6 d9b39c14 df251f04 d100e3a3
+ars4x32 7 00000000 ff000000 00000000 00000000 00000000 0000ff00 00000000 00000000 60227b14 5446b9ec 29d6f141 aabf28ec
+ars4x32 7 00000000 80000000 00000000 00000000 00000000 0000ff00 00000000 00000000 4e5ff116 74319409 a2701bcf c21ac2b8
+ars4x32 7 00000000 00000000 000000ff 00000000 00000000 0000ff00 00000000 00000000 df928d9b f5ee85d1 d2e6fcff 8ff1a089
+ars4x32 7 00000000 00000000 00000080 00000000 00000000 0000ff00 00000000 00000000 655d7684 02a497cf 66472be3 51cb21ae
+ars4x32 7 00000000 00000000 0000ff00 00000000 00000000 0000ff00 00000000 00000000 385c614b cfbb23f4 d8d2e9e1 fc2d347a
+ars4x32 7 00000000 00000000 00008000 00000000 00000000 0000ff00 00000000 00000000 be160be9 d5f9377d 4ab8930d de644129
+ars4x32 7 00000000 00000000 00ff0000 00000000 00000000 0000ff00 00000000 00000000 f71ffc4b 9cab4462 5ea652a8 14c64784
+ars4x32 7 00000000 00000000 00800000 00000000 00000000 0000ff00 00000000 00000000 37283e06 0ed6eb3a b50d87d7 e634ea06
+ars4x32 7 00000000 00000000 ff000000 00000000 00000000 0000ff00 00000000 00000000 4f21b624 e648f329 2d8d00e4 e9b49f04
+ars4x32 7 00000000 00000000 80000000 00000000 00000000 0000ff00 00000000 00000000 e4a3fe71 9b5fae1e 53820c87 1c58ec32
+ars4x32 7 00000000 00000000 00000000 000000ff 00000000 0000ff00 00000000 00000000 c29db687 ff297beb c5d6bec3 cb7ae3cf
+ars4x32 7 00000000 00000000 00000000 00000080 00000000 0000ff00 00000000 00000000 21951dae 003c22e4 83d84db6 1a9de86f
+ars4x32 7 00000000 00000000 00000000 0000ff00 00000000 0000ff00 00000000 00000000 f413a989 165bdbe1 8922a860 6797a8ff
+ars4x32 7 00000000 00000000 00000000 00008000 00000000 0000ff00 00000000 00000000 e59016e4 fb6e32cd 65f00e08 30226a9b
+ars4x32 7 00000000 00000000 00000000 00ff0000 00000000 0000ff00 00000000 00000000 229fd6be 4ee85e56 716cdf41 170ff3ff
+ars4x32 7 00000000 00000000 00000000 00800000 00000000 0000ff00 00000000 00000000 b52fe913 83b547be 82862735 846a4eac
+ars4x32 7 00000000 00000000 00000000 ff000000 00000000 0000ff00 00000000 00000000 196d2d4f 8e9e6910 a5ca966a fe82b956
+ars4x32 7 00000000 00000000 00000000 80000000 00000000 0000ff00 00000000 00000000 36d5b269 f4db697b ec722e8d df2ff182
+ars4x32 7 886a3f24 d308a385 2e8a1913 44737003 00000000 0000ff00 00000000 00000000 5bd99f4a c5252d31 108e2fe8 3f2686a2
+ars4x32 7 223809a4 d0319f29 98fa2e08 896c4eec 00000000 0000ff00 00000000 00000000 39c67c1f 1d0b1143 8f481468 8a074ac7
+ars4x32 7 e6212845 7713d038 cf6654be 6c0ce934 00000000 0000ff00 00000000 00000000 f4159e57 3ab56aa9 c3494b56 be2adf75
+ars4x32 7 00000001 00000000 00000000 00000000 00000000 00008000 00000000 00000000 db9704a9 ef263fce 5db55684 c96084fb
+ars4x32 7 00000100 00000000 00000000 00000000 00000000 00008000 00000000 00000000 dfeb7041 fa1db088 b7bc68f9 33ca18ac
+ars4x32 7 00010000 00000000 00000000 00000000 00000000 00008000 00000000 00000000 31d60d2d 47f43f83 9df1d72f 181de12c
+ars4x32 7 01000000 00000000 00000000 00000000 00000000 00008000 00000000 00000000 f9c6cd53 132035ec 2e18186a 2104f1c9
+ars4x32 7 00000000 00000001 00000000 00000000 00000000 00008000 00000000 00000000 2cc737b6 58815b90 33777112 aeb6800a
+ars4x32 7 00000000 00000100 00000000 00000000 00000000 00008000 00000000 00000000 9d94df0d 2a830476 cf2e099c 8d892ff3
+ars4x32 7 00000000 00010000 00000000 00000000 00000000 00008000 00000000 00000000 748b4a17 5b72ce83 1b3f3e4b 8728a776
+ars4x32 7 00000000 01000000 00000000 00000000 00000000 00008000 00000000 00000000 7d45758d e76bf3fe a7b55753 dcaefaac
+ars4x32 7 00000000 00000000 00000001 00000000 00000000 00008000 00000000 00000000 e66b7711 3e2e1887 b0f76cd2 4f19cd7d
+ars4x32 7 00000000 00000000 00000100 00000000 00000000 00008000 00000000 00000000 749fb548 e9504acc 8f4fcea3 995dd615
+ars4x32 7 00000000 00000000 00010000 00000000 00000000 00008000 00000000 00000000 35945e10 73b8316d 4304cd97 22139e09
+ars4x32 7 00000000 00000000 01000000 00000000 00000000 00008000 00000000 00000000 c0a3584d 8851beab bb5054da 54bde8ef
+ars4x32 7 00000000 00000000 00000000 00000001 00000000 00008000 00000000 00000000 cac47e18 33b1923a 2661cd54 3912c9f6
+ars4x32 7 00000000 00000000 00000000 00000100 00000000 00008000 00000000 00000000 8eea2fca 424213b8 432d7466 eec8205e
+ars4x32 7 00000000 00000000 00000000 00010000 00000000 00008000 00000000 00000000 e14c3c29 4c914482 e4297b22 9b74a9b0
+ars4x32 7 00000000 00000000 00000000 01000000 00000000 00008000 00000000 00000000 09298383 2aacc8c9 68fab5f3 3ac39074
+ars4x32 7 0000ff00 00000000 00000000 00000000 00000000 00008000 00000000 00000000 e6fda281 e47d10f1 913e2eef bc2d749e
+ars4x32 7 00008000 00000000 00000000 00000000 00000000 00008000 00000000 00000000 85bfc2ed f03342c8 33575fab 39908df3
+ars4x32 7 00ff0000 00000000 00000000 00000000 00000000 00008000 00000000 00000000 9ba088f8 8b002507 b53e5ba5 a7f72b49
+ars4x32 7 00800000 00000000 00000000 00000000 00000000 00008000 00000000 00000000 ea1c882b b06e1f48 76e390fe 0da47a30
+ars4x32 7 ff000000 00000000 00000000 00000000 00000000 00008000 00000000 00000000 98a48736 42766b4c 51a4ab61 a91bb5c3
+ars4x32 7 80000000 00000000 00000000 00000000 00000000 00008000 00000000 00000000 4ae41923 243a9d0b bcc8f725 f287d208
+ars4x32 7 00000000 000000ff 00000000 00000000 00000000 00008000 00000000 00000000 2becea93 ace8c413 b7cc8723 a2239118
+ars4x32 7 00000000 00000080 00000000 00000000 00000000 00008000 00000000 00000000 54b29d30 73bc664f 9a9e7718 e88468d8
+ars4x32 7 00000000 0000ff00 00000000 00000000 00000000 00008000 00000000 00000000 e61b52ea 70fb72a5 f697bd49 e7aed424
+ars4x32 7 00000000 00008000 00000000 00000000 00000000 00008000 00000000 00000000 abd7dc9f 87a475f2 a2a09480 e550e8f7
+ars4x32 7 00000000 00ff0000 00000000 00000000 00000000 00008000 00000000 00000000 9b1e02fa f83ae20c 2f622aa8 3219519a
+ars4x32 7 00000000 00800000 00000000 00000000 00000000 00008000 00000000 00000000 14fba53a eb197503 a8df910f 321148c8
+ars4x32 7 00000000 ff000000 00000000 00000000 00000000 00008000 00000000 00000000 1f4105db 1c722e89 cbc6bca0 37dc36db
+ars4x32 7 00000000 80000000 00000000 00000000 00000000 00008000 00000000 00000000 1754bdfb 10ec431e d2b3eaad a00edf7a
+ars4x32 7 00000000 00000000 000000ff 00000000 00000000 00008000 00000000 00000000 f6fe2fd1 a5178952 af6b93b0 0bd11cf2
+ars4x32 7 00000000 00000000 00000080 00000000 00000000 00008000 00000000 00000000 d03063ae dd50c426 1acbb6a0 b0554b47
+ars4x32 7 00000000 00000000 0000ff00 00000000 00000000 00008000 00000000 00000000 2f8b0bf2 429ab5a5 a016a59e d471538a
+ars4x32 7 00000000 00000000 00008000 00000000 00000000 00008000 00000000 00000000 71f7c393 8f48b5e7 299ddc6a 55fcaa6c
+ars4x32 7 00000000 00000000 00ff0000 00000000 00000000 00008000 00000000 00000000 a71b7b5d 578afb73 0e7392db 96b694ce
+ars4x32 7 00000000 00000000 00800000 00000000 00000000 00008000 00000000 00000000 5a441f14 c83ec7d0 753ac769 38073516
+ars4x32 7 00000000 00000000 ff000000 00000000 00000000 00008000 00000000 00000000 e4e6f8dc f53de139 45effab1 dc0996a6
+ars4x32 7 00000000 00000000 80000000 00000000 00000000 00008000 00000000 00000000 50cd0a10 c52757d4 7ff34684 bb68de39
+ars4x32 7 00000000 00000000 00000000 000000ff 00000000 00008000 00000000 00000000 215ef309 6f0de2af b4b85414 7b736785
+ars4x32 7 00000000 00000000 00000000 00000080 00000000 00008000 00000000 00000000 8731b162 bd29d6fa 00f59b48 678bc88d
+ars4x32 7 00000000 00000000 00000000 0000ff00 00000000 00008000 00000000 00000000 c4606bde ddd5ed0c 5c9bc1ff 5ad36111
+ars4x32 7 00000000 00000000 00000000 00008000 00000000 00008000 00000000 00000000 cdee80d2 29fde63c 08b24838 4bdd7d5b
+ars4x32 7 00000000 00000000 00000000 00ff0000 00000000 00008000 00000000 00000000 69f07cb4 3daad6ee 23d91210 dd331958
+ars4x32 7 00000000 00000000 00000000 00800000 00000000 00008000 00000000 00000000 dd083841 75da0960 dfed0370 f375191b
+ars4x32 7 00000000 00000000 00000000 ff000000 00000000 00008000 00000000 00000000 dfe5fc51 5c5afcd7 318a4734 6cac06cb
+ars4x32 7 00000000 00000000 00000000 80000000 00000000 00008000 00000000 00000000 0addcc4e 9a41fb4d b703f735 84e16f6c
+ars4x32 7 886a3f24 d308a385 2e8a1913 44737003 00000000 00008000 00000000 00000000 06cf3877 8a415845 dd99e388 407e5223
+ars4x32 7 223809a4 d0319f29 98fa2e08 896c4eec 00000000 00008000 00000000 00000000 de6ea0e8 e8222e4f 1c21646b b734df48
+ars4x32 7 e6212845 7713d038 cf6654be 6c0ce934 00000000 00008000 00000000 00000000 dd143117 e8d7dca6 e5bed8c0 b263b96d
+ars4x32 7 00000001 00000000 00000000 00000000 00000000 00ff0000 00000000 00000000 22f2e0d8 119db813 ef467231 87adf624
+ars4x32 7 00000100 00000000 00000000 00000000 00000000 00ff0000 00000000 00000000 591be312 848da854 bc940af1 67bc8788
+ars4x32 7 00010000 00000000 00000000 00000000 00000000 00ff0000 00000000 00000000 2590446f 41ed4294 1fabf395 9992d4d0
+ars4x32 7 01000000 00000000 00000000 00000000 00000000 00ff0000 00000000 00000000 cb66370c 08d192e8 bb3e9866 aa7f9e33
+ars4x32 7 00000000 00000001 00000000 00000000 00000000 00ff0000 00000000 00000000 7a9b0472 38d53db3 9583ba65 84d57212
+ars4x32 7 00000000 00000100 00000000 00000000 00000000 00ff0000 00000000 00000000 29280b3e 2d6c8fbd 994dfe1c 593aeaa6
+ars4x32 7 00000000 00010000 00000000 00000000 00000000 00ff0000 00000000 00000000 dd008448 cd16543a 30df7d0f 3039bd79
+ars4x32 7 00000000 01000000 00000000 00000000 00000000 00ff0000 00000000 00000000 9f11a9e6 e603f66f 5a57ee92 93d9af01
+ars4x32 7 00000000 00000000 00000001 00000000 00000000 00ff0000 00000000 00000000 1345a1be 0f8a5c3f d1ea8039 4abbac6d
+ars4x32 7 00000000 00000000 00000100 00000000 00000000 00ff0000 00000000 00000000 94d5bec7 b9b0e28d d20cc7e4 af8f8d86
+ars4x32 7 00000000 00000000 00010000 00000000 00000000 00ff0000 00000000 00000000 0693f3d8 c0b81f20 3788c729 9cea29c9
+ars4x32 7 00000000 00000000 01000000 00000000 00000000 00ff0000 00000000 00000000 53fa683a f547a8ba 302b9e54 0558a385
+ars4x32 7 00000000 00000000 00000000 00000001 00000000 00ff0000 00000000 00000000 d20286b1 15b4c8c5 d23c8659 4710be03
+ars4x32 7 00000000 00000000 00000000 00000100 00000000 00ff0000 00000000 00000000 b6b46794 9185795e edd8901e 40d74d41
+ars4x32 7 00000000 00000000 00000000 00010000 00000000 00ff0000 00000000 00000000 34732fd7 ae767bd9 04cebe75 92815953
+ars4x32 7 00000000 00000000 00000000 01000000 00000000 00ff0000 00000000 00000000 b7326f81 17aaf702 caed628d a909f2a4
+ars4x32 7 0000ff00 00000000 00000000 00000000 00000000 00ff0000 00000000 00000000 7b09863f 3274ceb9 e8ca6436 cd9fa04c
+ars4x32 7 00008000 00000000 00000000 00000000 00000000 00ff0000 00000000 00000000 33044882 ca7f0d85 a60f44fc 5b4891ce
+ars4x32 7 00ff0000 00000000 00000000 00000000 00000000 00ff0000 00000000 00000000 9dc3299a 212f0f0d 88c5f4a4 906b734e
+ars4x32 7 00800000 00000000 00000000 00000000 00000000 00ff0000 00000000 00000000 9556fc2f 7afc82b3 3bc44611 4351e66d
+ars4x32 7 ff000000 00000000 00000000 00000000 00000000 00ff0000 00000000 00000000 dfce62c3 d3c5a2c0 4c1d6737 862d9293
+ars4x32 7 80000000 00000000 00000000 00000000 00000000 00ff0000 00000000 00000000 f4f0b118 144c2c2f 26b39231 ea14c7b9
+ars4x32 7 00000000 000000ff 00000000 00000000 00000000 00ff0000 00000000 00000000 b245315d bcf6c91d 754a7c14 2565e48f
+ars4x32 7 00000000 00000080 00000000 00000000 00000000 00ff0000 00000000 00000000 752203b4 ae13b9a0 e31fec08 eb692cef
+ars4x32 7 00000000 0000ff00 00000000 00000000 00000000 00ff0000 00000000 00000000 09df70d5 40f8d185 48efe5f7 ee1108a0
+ars4x32 7 00000000 00008000 00000000 00000000 00000000 00ff0000 00000000 00000000 136a420c b7181b55 deafcbae 1d5ee1a6
+ars4x32 7 00000000 00ff0000 00000000 00000000 00000000 00ff0000 00000000 00000000 a0d5b02b 733a381c 450b339f 7cff8df1
+ars4x32 7 00000000 00800000 00000000 00000000 00000000 00ff0000 00000000 00000000 c8926a31 a643a5b0 43107ff4 32072bc9
+ars4x32 7 00000000 ff000000 00000000 00000000 00000000 00ff0000 00000000 00000000 a58e8a68 a6b42ff4 258b5e32 60b56a1c
+ars4x32 7 00000000 80000000 00000000 00000000 00000000 00ff0000 00000000 00000000 fcee65a1 f4d681ca 3505111a 9a6acf37
+ars4x32 7 00000000 00000000 000000ff 00000000 00000000 00ff0000 00000000 00000000 b0f43b3b 1c31e2b7 67e8de1c 31a02555
+ars4x32 7 00000000 00000000 00000080 00000000 00000000 00ff0000 00000000 00000000 ecc48ee5 981d2b49 fd7a22b9 ec415eca
+ars4x32 7 00000000 00000000 0000ff00 00000000 00000000 00ff0000 00000000 00000000 4970651e 85676890 def6e22c 4f7cfaec
+ars4x32 7 00000000 00000000 00008000 00000000 00000000 00ff0000 00000000 00000000 5d3c6b96 d38d2378 b276ece6 f5fcafda
+ars4x32 7 00000000 00000000 00ff0000 00000000 00000000 00ff0000 00000000 00000000 9a8d3698 ab0ef629 959e5d2c 56c0b421
+ars4x32 7 00000000 00000000 00800000 00000000 00000000 00ff0000 00000000 00000000 9a344ab0 8f692a72 859b7958 da1b6e56
+ars4x32 7 00000000 00000000 ff000000 00000000 00000000 00ff0000 00000000 00000000 db668406 9292601c 3f17b216 7d4a1edf
+ars4x32 7 00000000 00000000 80000000 00000000 00000000 00ff0000 00000000 00000000 fcbbbf78 df5a0eb5 d3db5451 cfc752a7
+ars4x32 7 00000000 00000000 00000000 000000ff 00000000 00ff0000 00000000 00000000 23810f43 e8b16515 aa4c4b07 c1ba936e
+ars4x32 7 00000000 00000000 00000000 00000080 00000000 00ff0000 00000000 00000000 9577f463 e0444f19 420d39d5 df310656
+ars4x32 7 00000000 00000000 00000000 0000ff00 00000000 00ff0000 00000000 00000000 c87afd4b 878b17e4 058a30a0 80f8c3c8
+ars4x32 7 00000000 00000000 00000000 00008000 00000000 00ff0000 00000000 00000000 865e2af9 48b7f68a 41bd6dfa 342ba0f8
+ars4x32 7 00000000 00000000 00000000 00ff0000 00000000 00ff0000 00000000 00000000 2ea49763 e91477bf aa5d51d1 74e9517d
+ars4x32 7 00000000 00000000 00000000 00800000 00000000 00ff0000 00000000 00000000 d432cdeb d7a03de6 e6da11f1 7acb2a00
+ars4x32 7 00000000 00000000 00000000 ff000000 00000000 00ff0000 00000000 00000000 e6d53827 4fc4e478 71542a8d 1f3bc6a8
+ars4x32 7 00000000 00000000 00000000 80000000 00000000 00ff0000 00000000 00000000 e3847d0b e65bbbb4 5bb78b81 94a1ffa8
+ars4x32 7 886a3f24 d308a385 2e8a1913 44737003 00000000 00ff0000 00000000 00000000 e7d6bcdd 45051fe4 252629fc bf659cc5
+ars4x32 7 223809a4 d0319f29 98fa2e08 896c4eec 00000000 00ff0000 00000000 00000000 41f95399 e7959014 d2b9e413 1f39e87e
+ars4x32 7 e6212845 7713d038 cf6654be 6c0ce934 00000000 00ff0000 00000000 00000000 c2b31aea d398aa7a 3b1031e1 bc68c109
+ars4x32 7 00000001 00000000 00000000 00000000 00000000 00800000 00000000 00000000 a00cec5b ca487f61 359cf73f 70d21378
+ars4x32 7 00000100 00000000 00000000 00000000 00000000 00800000 00000000 00000000 4ec9a531 01d54c62 bf5bb168 3936a9dc
+ars4x32 7 00010000 00000000 00000000 00000000 00000000 00800000 00000000 00000000 88d2d6f8 39b8dfdf 2c4b698c 1777afa9
+ars4x32 7 01000000 00000000 00000000 00000000 00000000 00800000 00000000 00000000 7420b78f 0c252bbd 9c15e937 310f3172
+ars4x32 7 00000000 00000001 00000000 00000000 00000000 00800000 00000000 00000000 1ef12f67 a60fe50b 69094d0d 8bff4098
+ars4x32 7 00000000 00000100 00000000 00000000 00000000 00800000 00000000 00000000 8efc8373 d5525958 00b1ca78 1a00468b
+ars4x32 7 00000000 00010000 00000000 00000000 00000000 00800000 00000000 00000000 4c8af3c6 287a3960 bc819b5c ccd70ef3
+ars4x32 7 00000000 01000000 00000000 00000000 00000000 00800000 00000000 00000000 be01d2cb bcb36836 6d07da5d 7b5f5131
+ars4x32 7 00000000 00000000 00000001 00000000 00000000 00800000 00000000 00000000 f80acd07 8c3fad47 a43a6c1d 69d4c38b
+ars4x32 7 00000000 00000000 00000100 00000000 00000000 00800000 00000000 00000000 0366f28f b42cc3d2 c48f4210 fc323078
+ars4x32 7 00000000 00000000 00010000 00000000 00000000 00800000 00000000 00000000 b939bdc3 f022b43d ad77aeb2 9873ef1e
+ars4x32 7 00000000 00000000 01000000 00000000 00000000 00800000 00000000 00000000 8348845d 3d6f6b77 5d6c5431 f41b1d32
+ars4x32 7 00000000 00000000 00000000 00000001 00000000 00800000 00000000 00000000 1a0d422b a516883d 2c9cbcbd 2e3e99aa
+ars4x32 7 00000000 00000000 00000000 00000100 00000000 00800000 00000000 00000000 d86f62b6 f25abfd6 d3552a3a 66b91402
+ars4x32 7 00000000 00000000 00000000 00010000 00000000 00800000 00000000 00000000 a7ec3af6 70d67a95 b65e8dd4 ea222f76
+ars4x32 7 00000000 00000000 00000000 01000000 00000000 00800000 00000000 00000000 ce5df8a5 01643578 caa889a5 e2705fd6
+ars4x32 7 0000ff00 00000000 00000000 00000000 00000000 00800000 00000000 00000000 3c6ad46b e7e1f139 39fbf5ef 6f1a3aea
+ars4x32 7 00008000 00000000 00000000 00000000 00000000 00800000 00000000 00000000 234f33d3 4fa04e77 411d7035 39268f19
+ars4x32 7 00ff0000 00000000 00000000 00000000 00000000 00800000 00000000 00000000 0b14f1c3 cd9af14d 539e70e4 79825055
+ars4x32 7 00800000 00000000 00000000 00000000 00000000 00800000 00000000 00000000 40e73acc e9b3b945 10196cce f368f24b
+ars4x32 7 ff000000 00000000 00000000 00000000 00000000 00800000 00000000 00000000 836ff74a 9c70652a fea219a9 8b74d93f
+ars4x32 7 80000000 00000000 00000000 00000000 00000000 00800000 00000000 00000000 0a5591da 22b02386 4d28d374 836fa930
+ars4x32 7 00000000 000000ff 00000000 00000000 00000000 00800000 00000000 00000000 e38da49a 17af6e25 348ceb8f ab48a1a1
+ars4x32 7 00000000 00000080 00000000 00000000 00000000 00800000 00000000 00000000 aebfe231 846aeb9c fa9738a5 f6f29436
+ars4x32 7 00000000 0000ff00 00000000 00000000 00000000 00800000 00000000 00000000 347096a3 b95cdaea 860c65c8 6bd32e14
+ars4x32 7 00000000 00008000 00000000 00000000 00000000 00800000 00000000 00000000 b5d23f22 30beb254 e19e5180 0876af03
+ars4x32 7 00000000 00ff0000 00000000 00000000 00000000 00800000 00000000 00000000 7622487e bfcbebc8 d543d53a 32525da0
+ars4x32 7 00000000 00800000 00000000 00000000 00000000 00800000 00000000 00000000 f110591a e77c10d2 131fd7c5 7866db43
+ars4x32 7 00000000 ff000000 00000000 00000000 00000000 00800000 00000000 00000000 30a66ecc ae6b7e48 74bd80d8 76b29af8
+ars4x32 7 00000000 80000000 00000000 00000000 00000000 00800000 00000000 00000000 58d0bb84 6706c78b 45009e22 e2785f61
+ars4x32 7 00000000 00000000 000000ff 00000000 00000000 00800000 00000000 00000000 4c61bfe6 7c955151 e8001ec5 d0e615d8
+ars4x32 7 00000000 00000000 00000080 00000000 00000000 00800000 00000000 00000000 6f3ad05a f461f745 93857d8c f4905c98
+ars4x32 7 00000000 00000000 0000ff00 00000000 00000000 00800000 00000000 00000000 3bd3b603 e4d94cd7 26d0b77f 02c0d7a4
+ars4x32 7 00000000 00000000 00008000 00000000 00000000 00800000 00000000 00000000 d157ff8d 0d02e8e2 684207f3 b9bcf112
+ars4x32 7 00000000 00000000 00ff0000 00000000 00000000 00800000 00000000 00000000 339e5c56 076e7a8f 14c0c415 b969eada
+ars4x32 7 00000000 00000000 00800000 00000000 00000000 00800000 00000000 00000000 37433a96 db919da4 81251cf1 f4e33e0a
+ars4x32 7 00000000 00000000 ff000000 00000000 00000000 00800000 00000000 00000000 f8347f15 c53d6bd6 d45169e6 66d75179
+ars4x32 7 00000000 00000000 80000000 00000000 00000000 00800000 00000000 00000000 df6f61ec c24802e5 9ac4c23b 567b0462
+ars4x32 7 00000000 00000000 00000000 000000ff 00000000 00800000 00000000 00000000 75201044 9748cf2d 2863ce41 abc2f9d6
+ars4x32 7 00000000 00000000 00000000 00000080 00000000 00800000 00000000 00000000 4e472868 2032a8ef 57b542a6 87a7ba77
+ars4x32 7 00000000 00000000 00000000 0000ff00 00000000 00800000 00000000 00000000 11dc900c 177c3c50 ff18eb90 1ae824ac
+ars4x32 7 00000000 00000000 00000000 00008000 00000000 00800000 00000000 00000000 d96eb7d0 2278a9f7 1cc3be75 2c605110
+ars4x32 7 00000000 00000000 00000000 00ff0000 00000000 00800000 00000000 00000000 d807febf f989c784 c403114d 4216b1ee
+ars4x32 7 00000000 00000000 00000000 00800000 00000000 00800000 00000000 00000000 6311b004 c28fb046 5a200f83 bb7d751d
+ars4x32 7 00000000 00000000 00000000 ff000000 00000000 00800000 00000000 00000000 26188d57 412bf765 4600984a b9c9d357
+ars4x32 7 00000000 00000000 00000000 80000000 00000000 00800000 00000000 00000000 844374b9 abff9a5f 96815949 b22f6961
+ars4x32 7 886a3f24 d308a385 2e8a1913 44737003 00000000 00800000 00000000 00000000 ffac52fa 1f7d34f9 a9738dfc 47759b16
+ars4x32 7 223809a4 d0319f29 98fa2e08 896c4eec 00000000 00800000 00000000 00000000 fbcf1b8f 4e82c5d7 124478f1 bf5d6237
+ars4x32 7 e6212845 7713d038 cf6654be 6c0ce934 00000000 00800000 00000000 00000000 d563c78b 35d4deef f9dff8ba fa4c3faa
+ars4x32 7 00000001 00000000 00000000 00000000 00000000 ff000000 00000000 00000000 3fff9d46 5b0693fe a650b70e f7364259
+ars4x32 7 00000100 00000000 00000000 00000000 00000000 ff000000 00000000 00000000 c2fa97cf 135f3c99 5e5827b4 9f23e516
+ars4x32 7 00010000 00000000 00000000 00000000 00000000 ff000000 00000000 00000000 595f9ac4 d3ce4ef5 6e35b798 05625328
+ars4x32 7 01000000 00000000 00000000 00000000 00000000 ff000000 00000000 00000000 440ab580 5e2cb77e 20834e4f 07c5cda9
+ars4x32 7 00000000 00000001 00000000 00000000 00000000 ff000000 00000000 00000000 5cad76b4 2d10781c 88281342 86f4b2ff
+ars4x32 7 00000000 00000100 00000000 00000000 00000000 ff000000 00000000 00000000 0baef30c 35fd70c5 0405f817 7b2ff157
+ars4x32 7 00000000 00010000 00000000 00000000 00000000 ff000000 00000000 00000000 91c7c79a a6c35ec2 c68d26e3 1d67d346
+ars4x32 7 00000000 01000000 00000000 00000000 00000000 ff000000 00000000 00000000 6a06e692 9dc01cf5 643390ba dcf9a4e1
+ars4x32 7 00000000 00000000 00000001 00000000 00000000 ff000000 00000000 00000000 2846ce5d 2d5c5293 69ef3bf5 14eda2ee
+ars4x32 7 00000000 00000000 00000100 00000000 00000000 ff000000 00000000 00000000 073bcfeb c7511a06 e6e172ad 04256d1b
+ars4x32 7 00000000 00000000 00010000 00000000 00000000 ff000000 00000000 00000000 7eedd694 783e76ea a54f18ce 73358e97
+ars4x32 7 00000000 00000000 01000000 00000000 00000000 ff000000 00000000 00000000 ce6d599c a1e8dba1 c792f716 e79f5e37
+ars4x32 7 00000000 00000000 00000000 00000001 00000000 ff000000 00000000 00000000 9492bd38 cba5a7d4 b2f61619 c4d1d9ac
+ars4x32 7 00000000 00000000 00000000 00000100 00000000 ff000000 00000000 00000000 2f993455 e8b24e8a 03463cba 76d284ee
+ars4x32 7 00000000 00000000 00000000 00010000 00000000 ff000000 00000000 00000000 98675030 cdf6a1e1 ae7c3e3e 75852eb4
+ars4x32 7 00000000 00000000 00000000 01000000 00000000 ff000000 00000000 00000000 8b15c94a 9e1e7937 dffda9ac dccd4d48
+ars4x32 7 0000ff00 00000000 00000000 00000000 00000000 ff000000 00000000 00000000 b22116ab 9fe03ef6 c537818f e47727e0
+ars4x32 7 00008000 00000000 00000000 00000000 00000000 ff000000 00000000 00000000 8d56c361 b300372f fb93f6d9 db48a513
+ars4x32 7 00ff0000 00000000 00000000 00000000 00000000 ff000000 00000000 00000000 d5169544 537df03d 51194829 50f20d3f
+ars4x32 7 00800000 00000000 00000000 00000000 00000000 ff000000 00000000 00000000 d262b945 f3d67451 2580e1f1 bd4a686d
+ars4x32 7 ff000000 00000000 00000000 00000000 00000000 ff000000 00000000 00000000 e869c6ed 0a359231 fe48009f f52ec3dc
+ars4x32 7 80000000 00000000 00000000 00000000 00000000 ff000000 00000000 00000000 5e06823f c5938edd 13af24a0 27958c66
+ars4x32 7 00000000 000000ff 00000000 00000000 00000000 ff000000 00000000 00000000 c99e41d0 33024c8d fe9d5339 a63a5f24
+ars4x32 7 00000000 00000080 00000000 00000000 00000000 ff000000 00000000 00000000 3290af6f db2d7d1c bcd8a1a8 3e8bb439
+ars4x32 7 00000000 0000ff00 00000000 00000000 00000000 ff000000 00000000 00000000 129ea6bb 5d08d671 f62ef596 cad420a5
+ars4x32 7 00000000 00008000 00000000 00000000 00000000 ff000000 00000000 00000000 bf9ecf25 dfe7fe89 62867a95 2683b953
+ars4x32 7 00000000 00ff0000 00000000 00000000 00000000 ff000000 00000000 00000000 03bc9cda eaaee763 88c08cdf 7719a09c
+ars4x32 7 00000000 00800000 00000000 00000000 00000000 ff000000 00000000 00000000 ad437fdc 6976af30 f4ec20b6 dfc29017
+ars4x32 7 00000000 ff000000 00000000 00000000 00000000 ff000000 00000000 00000000 eb301301 290c523c 45eee9c5 d64bf7a8
+ars4x32 7 00000000 80000000 00000000 00000000 00000000 ff000000 00000000 00000000 3a342e30 d00ac78f 5b41b3e7 bbb4d824
+ars4x32 7 00000000 00000000 000000ff 00000000 00000000 ff000000 00000000 00000000 9de8ac05 ce583257 b2c5ef4f a57f7c76
+ars4x32 7 00000000 00000000 00000080 00000000 00000000 ff000000 00000000 00000000 0a2ad7b3 b4d4d02f a71b913e 274cc7ad
+ars4x32 7 00000000 00000000 0000ff00 00000000 00000000 ff000000 00000000 00000000 a5d2501c 04dc2b1d e116388c d560e1d9
+ars4x32 7 00000000 00000000 00008000 00000000 00000000 ff000000 00000000 00000000 070a7bb7 d1a2432e bec1284d b10c0250
+ars4x32 7 00000000 00000000 00ff0000 00000000 00000000 ff000000 00000000 00000000 3cbceeed 85a455f6 136cda60 453b735f
+ars4x32 7 00000000 00000000 00800000 00000000 00000000 ff000000 00000000 00000000 0aa40388 0316fcda acbc1c87 bc639a3e
+ars4x32 7 00000000 00000000 ff000000 00000000 00000000 ff000000 00000000 00000000 2a77b2df 5082a5a5 b5527d9f f113ea2e
+ars4x32 7 00000000 00000000 80000000 00000000 00000000 ff000000 00000000 00000000 d052815c 62de4af5 c0d26b42 c4aeb933
+ars4x32 7 00000000 00000000 00000000 000000ff 00000000 ff000000 00000000 00000000 7d751d2d 8dc0e76f 275d7b8b df4aa40a
+ars4x32 7 00000000 00000000 00000000 00000080 00000000 ff000000 00000000 00000000 681d9e43 febf6b94 4b026a8d ee1485e9
+ars4x32 7 00000000 00000000 00000000 0000ff00 00000000 ff000000 00000000 00000000 00041b8f f701647b 5444ac32 d89fb67c
+ars4x32 7 00000000 00000000 00000000 00008000 00000000 ff000000 00000000 00000000 e9858209 2bc56022 16004c89 85bc27b4
+ars4x32 7 00000000 00000000 00000000 00ff0000 00000000 ff000000 00000000 00000000 4158a0f1 f4c90b15 c1cb18d3 63d6cf74
+ars4x32 7 00000000 00000000 00000000 00800000 00000000 ff000000 00000000 00000000 3c663c9d 72ec3fe3 2dbd3c61 13009c67
+ars4x32 7 00000000 00000000 00000000 ff000000 00000000 ff000000 00000000 00000000 c4a83fc3 68898afd 597344cf 21084208
+ars4x32 7 00000000 00000000 00000000 80000000 00000000 ff000000 00000000 00000000 7fab47bb fcd840f2 cda838c4 6ae55be9
+ars4x32 7 886a3f24 d308a385 2e8a1913 44737003 00000000 ff000000 00000000 00000000 a0473fb6 d208106d 8b769b3a 24d4f27b
+ars4x32 7 223809a4 d0319f29 98fa2e08 896c4eec 00000000 ff000000 00000000 00000000 844c06ae f167b931 f701a614 7ec8b726
+ars4x32 7 e6212845 7713d038 cf6654be 6c0ce934 00000000 ff000000 00000000 00000000 37bd10fd 09a717ef 3b52e5fa 4a6937c2
+ars4x32 7 00000001 00000000 00000000 00000000 00000000 80000000 00000000 00000000 5f0ada1b bd050790 dcaf5e38 298a17b8
+ars4x32 7 00000100 00000000 00000000 00000000 00000000 80000000 00000000 00000000 5773f53d c2e1b603 87014c86 e34ec098
+ars4x32 7 00010000 00000000 00000000 00000000 00000000 80000000 00000000 00000000 414196fd 2b2dc69e 78149e7c 45b5f326
+ars4x32 7 01000000 00000000 00000000 00000000 00000000 80000000 00000000 00000000 1f875ed9 ac5906df 12e5f6a7 e233bfd1
+ars4x32 7 00000000 00000001 00000000 00000000 00000000 80000000 00000000 00000000 dcfc2a48 f8ba776a 5c4a2812 8a16d7be
+ars4x32 7 00000000 00000100 00000000 00000000 00000000 80000000 00000000 00000000 2a3576d3 6629f24d 13f14b9e 3d2ca84e
+ars4x32 7 00000000 00010000 00000000 00000000 00000000 80000000 00000000 00000000 3e16e8a7 fc4d8a08 0a01ac1e 1af11bec
+ars4x32 7 00000000 01000000 00000000 00000000 00000000 80000000 00000000 00000000 96593166 0238eabc bbebf20f 0f504522
+ars4x32 7 00000000 00000000 00000001 00000000 00000000 80000000 00000000 00000000 8af3b216 dd7acd2b a3e33e1e 78b046e4
+ars4x32 7 00000000 00000000 00000100 00000000 00000000 80000000 00000000 00000000 9a054567 fff1d369 15556300 cf32fa94
+ars4x32 7 00000000 00000000 00010000 00000000 00000000 80000000 00000000 00000000 f5a60b19 7d5e3da6 84d86206 9e1853e9
+ars4x32 7 00000000 00000000 01000000 00000000 00000000 80000000 00000000 00000000 94c67275 4b58d229 ed89be2b 74d861c9
+ars4x32 7 00000000 00000000 00000000 00000001 00000000 80000000 00000000 00000000 63a9b261 caeb28c8 2ef06ebd f2e5792a
+ars4x32 7 00000000 00000000 00000000 00000100 00000000 80000000 00000000 00000000 38f259c6 82cd5ca0 88012938 1b5e554e
+ars4x32 7 00000000 00000000 00000000 00010000 00000000 80000000 00000000 00000000 f2573b0c 7adc711e 19ce7393 e9f7de3e
+ars4x32 7 00000000 00000000 00000000 01000000 00000000 80000000 00000000 00000000 6b8acec2 ead9cca3 7fa50710 5d15e514
+ars4x32 7 0000ff00 00000000 00000000 00000000 00000000 80000000 00000000 00000000 8c7993f1 e3203144 84cab4b5 72020dbb
+ars4x32 7 00008000 00000000 00000000 00000000 00000000 80000000 00000000 00000000 42d7f77d f086fc2e 3e73a287 c07d7ebc
+ars4x32 7 00ff0000 00000000 00000000 00000000 00000000 80000000 00000000 00000000 6bce9267 5e248dac a2ed0ce5 aef8fd8f
+ars4x32 7 00800000 00000000 00000000 00000000 00000000 80000000 00000000 00000000 4472cb80 f16e7a81 1ae5d21e 5f55c422
+ars4x32 7 ff000000 00000000 00000000 00000000 00000000 80000000 00000000 00000000 aa8c96e7 7081d2fc 29cae09f 98911fa3
+ars4x32 7 80000000 00000000 00000000 00000000 00000000 80000000 00000000 00000000 edff19de 058ba50c 77d23430 a67d3096
+ars4x32 7 00000000 000000ff 00000000 00000000 00000000 80000000 00000000 00000000 249e0ed9 233a0ad4 1eb99295 52e5de17
+ars4x32 7 00000000 00000080 00000000 00000000 00000000 80000000 00000000 00000000 5cbc4013 a507ff7e 19c0ec9a 98a429e1
+ars4x32 7 00000000 0000ff00 00000000 00000000 00000000 80000000 00000000 00000000 b82754b5 f5be7d8e 4ffa8942 52e2a259
+ars4x32 7 00000000 00008000 00000000 00000000 00000000 80000000 00000000 00000000 c1dd067d 61dfed2a 9fa61288 846d0e65
+ars4x32 7 00000000 00ff0000 00000000 00000000 00000000 80000000 00000000 00000000 5eedd38e daf2e6c6 efcbf785 0773d069
+ars4x32 7 00000000 00800000 00000000 00000000 00000000 80000000 00000000 00000000 bebaae38 bf214df2 00b1720c 42177b77
+ars4x32 7 00000000 ff000000 00000000 00000000 00000000 80000000 00000000 00000000 23e1c82a 5d9a8441 4d3274da 8db3ac26
+ars4x32 7 00000000 80000000 00000000 00000000 00000000 80000000 00000000 00000000 1612e16c 8ce98dcd 39b1bd24 45addfa9
+ars4x32 7 00000000 00000000 000000ff 00000000 00000000 80000000 00000000 00000000 370cafef 3f7e2898 73255314 2a49538b
+ars4x32 7 00000000 00000000 00000080 00000000 00000000 80000000 00000000 00000000 2d984e0c 528466c2 a95bee17 d09bc557
+ars4x32 7 00000000 00000000 0000ff00 00000000 00000000 80000000 00000000 00000000 04c3d191 76c5b6f6 15e575df 1579abf0
+ars4x32 7 00000000 00000000 00008000 00000000 00000000 80000000 00000000 00000000 cfb9c656 406d2556 357a2e8c bea5ee32
+ars4x32 7 00000000 00000000 00ff0000 00000000 00000000 80000000 00000000 00000000 18978a0b 3832c66a 2e2d7273 683e77c6
+ars4x32 7 00000000 00000000 00800000 00000000 00000000 80000000 00000000 00000000 1234972a 25fa70fa 4da76fce 53941394
+ars4x32 7 00000000 00000000 ff000000 00000000 00000000 80000000 00000000 00000000 a8f77508 14259e2b 210358b5 98cd4738
+ars4x32 7 00000000 00000000 80000000 00000000 00000000 80000000 00000000 00000000 8976de9d 368c66d2 ba5f8bbf f4881147
+ars4x32 7 00000000 00000000 00000000 000000ff 00000000 80000000 00000000 00000000 aa9648cd d926107f 4ef3fb1c 3e9b4cff
+ars4x32 7 00000000 00000000 00000000 00000080 00000000 80000000 00000000 00000000 7de770ee 7198b212 30e3fb87 1bf1945e
+ars4x32 7 00000000 00000000 00000000 0000ff00 00000000 80000000 00000000 00000000 00e0ac25 c7ceb630 cdd4686d fa763bdf
+ars4x32 7 00000000 00000000 00000000 00008000 00000000 80000000 00000000 00000000 43b3b752 af25c906 b1b4c5f5 a060418e
+ars4x32 7 00000000 00000000 00000000 00ff0000 00000000 80000000 00000000 00000000 198dd040 e1df7ce3 2a02dab1 d3af6e19
+ars4x32 7 00000000 00000000 00000000 00800000 00000000 80000000 00000000 00000000 600c5000 a1452641 eb1394d7 3afe4cb5
+ars4x32 7 00000000 00000000 00000000 ff000000 00000000 80000000 00000000 00000000 00966e72 fd68133c 2fd0ca6e be23b3bd
+ars4x32 7 00000000 00000000 00000000 80000000 00000000 80000000 00000000 00000000 d4a2cb91 1091cb54 cf890039 ddda004f
+ars4x32 7 886a3f24 d308a385 2e8a1913 44737003 00000000 80000000 00000000 00000000 bbc2523d e460d59d 48e1dd0e 60e28a17
+ars4x32 7 223809a4 d0319f29 98fa2e08 896c4eec 00000000 80000000 00000000 00000000 cfcb3264 9ca26dd6 94e27470 4c925066
+ars4x32 7 e6212845 7713d038 cf6654be 6c0ce934 00000000 80000000 00000000 00000000 6735321b 61e112c7 afee373e 46f1395e
+ars4x32 7 00000001 00000000 00000000 00000000 00000000 00000000 000000ff 00000000 dd64a2ff 5104730d c0ae788d a01d6a2b
+ars4x32 7 00000100 00000000 00000000 00000000 00000000 00000000 000000ff 00000000 e70ebc93 76c6aad5 80ad83b3 62d2754f
+ars4x32 7 00010000 00000000 00000000 00000000 00000000 00000000 000000ff 00000000 7a62d1cc de10fa0e 0d8b1e8a 32776f76
+ars4x32 7 01000000 00000000 00000000 00000000 00000000 00000000 000000ff 00000000 055823a1 c06b9761 f9bd3fc2 e878afc5
+ars4x32 7 00000000 00000001 00000000 00000000 00000000 00000000 000000ff 00000000 37cd795c 1ccc8adf a68d762e 553c7112
+ars4x32 7 00000000 00000100 00000000 00000000 00000000 00000000 000000ff 00000000 03b8471b fb53325a 12d2e358 1c5da90d
+ars4x32 7 00000000 00010000 00000000 00000000 00000000 00000000 000000ff 00000000 a78e262c 3b1ba467 3ba757f4 e692d21c
+ars4x32 7 00000000 01000000 00000000 00000000 00000000 00000000 000000ff 00000000 7665303b 4e3555cb 36df84ad 2fb325c6
+ars4x32 7 00000000 00000000 00000001 00000000 00000000 00000000 000000ff 00000000 364b771f 291c0c78 13a1aa88 c494c221
+ars4x32 7 00000000 00000000 00000100 00000000 00000000 00000000 000000ff 00000000 7c36b039 692e4b12 50a2349c 85410d4d
+ars4x32 7 00000000 00000000 00010000 00000000 00000000 00000000 000000ff 00000000 9964202c e48b3418 b31c5ede d22677c6
+ars4x32 7 00000000 00000000 01000000 00000000 00000000 00000000 000000ff 00000000 1883bb94 b1301868 24a80f7e 285b3455
+ars4x32 7 00000000 00000000 00000000 00000001 00000000 00000000 000000ff 00000000 f83701ba 2054306a 41cc63a4 c107d44d
+ars4x32 7 00000000 00000000 00000000 00000100 00000000 00000000 000000ff 00000000 e7ec839f 21a2f540 431d62b9 dc559e31
+ars4x32 7 00000000 00000000 00000000 00010000 00000000 00000000 000000ff 00000000 193c9ee3 710ca9c0 4d2a0071 2bfd6a4e
+ars4x32 7 00000000 00000000 00000000 01000000 00000000 00000000 000000ff 00000000 9481e88c ec053c33 9c4983da 8e71653c
+ars4x32 7 0000ff00 00000000 00000000 00000000 00000000 00000000 000000ff 00000000 35a186ff 53d78ecb 6c2514a6 0bc7ace5
+ars4x32 7 00008000 00000000 00000000 00000000 00000000 00000000 000000ff 00000000 30b292b0 288f14e0 16a3ed41 5e9a1e8c
+ars4x32 7 00ff0000 00000000 00000000 00000000 00000000 00000000 000000ff 00000000 d3b9ae42 53ea5e05 ea37344c 3365d0de
+ars4x32 7 00800000 00000000 00000000 00000000 00000000 00000000 000000ff 00000000 873b4e28 fc4c21d5 970a4cb3 3f02ee17
+ars4x32 7 ff000000 00000000 00000000 00000000 00000000 00000000 000000ff 00000000 431ef8cf 59c8dfd2 f86178a1 847b60cf
+ars4x32 7 80000000 00000000 00000000 00000000 00000000 00000000 000000ff 00000000 60af461e a413f0ba a76cb9d6 1f633554
+ars4x32 7 00000000 000000ff 00000000 00000000 00000000 00000000 000000ff 00000000 803a06af ec3f8653 c212c9e0 1cb31cb2
+ars4x32 7 00000000 00000080 00000000 00000000 00000000 00000000 000000ff 00000000 017e6914 0f535266 0ae93b38 cfe4c9d3
+ars4x32 7 00000000 0000ff00 00000000 00000000 00000000 00000000 000000ff 00000000 b9d94a88 1c64dd00 c747a4dd 171ed6e3
+ars4x32 7 00000000 00008000 00000000 00000000 00000000 00000000 000000ff 00000000 0b5675f7 942da36f 345f5696 0bf565c3
+ars4x32 7 00000000 00ff0000 00000000 00000000 00000000 00000000 000000ff 00000000 c65b64c3 da4f3f6b 2588c0a8 66504ff2
+ars4x32 7 00000000 00800000 00000000 00000000 00000000 00000000 000000ff 00000000 0cbb3a66 77613276 0dc528a1 31a876f3
+ars4x32 7 00000000 ff000000 00000000 00000000 00000000 00000000 000000ff 00000000 a06a59b7 aab0c4b8 ef1aabd3 a33c70b4
+ars4x32 7 00000000 80000000 00000000 00000000 00000000 00000000 000000ff 00000000 b02a5efd 857a0543 d8ef7568 6726adf7
+ars4x32 7 00000000 00000000 000000ff 00000000 00000000 00000000 000000ff 00000000 52fd0dfd 15561258 c6ab328b f9557afc
+ars4x32 7 00000000 00000000 00000080 00000000 00000000 00000000 000000ff 00000000 89c6338c d18771e7 7c12f02d 3d0955b9
+ars4x32 7 00000000 00000000 0000ff00 00000000 00000000 00000000 000000ff 00000000 68dd0297 3442908f 77dfe98b e52ea361
+ars4x32 7 00000000 00000000 00008000 00000000 00000000 00000000 000000ff 00000000 50b1e8eb 9b537afa 147b4051 48d80416
+ars4x32 7 00000000 00000000 00ff0000 00000000 00000000 00000000 000000ff 00000000 f6ff5eb4 30f6b151 630a56dd 5a0b422f
+ars4x32 7 00000000 00000000 00800000 00000000 00000000 00000000 000000ff 00000000 be82fb06 15d2509e 725b861a df97b972
+ars4x32 7 00000000 00000000 ff000000 00000000 00000000 00000000 000000ff 00000000 b6c6a327 885044c7 53b59d61 d8e11374
+ars4x32 7 00000000 00000000 80000000 00000000 00000000 00000000 000000ff 00000000 b19247c4 4e3d2d40 a3dc5fb9 e9a64a87
+ars4x32 7 00000000 00000000 00000000 000000ff 00000000 00000000 000000ff 00000000 f6accc79 61a1a18f c10cde1c 82263b48
+ars4x32 7 00000000 00000000 00000000 00000080 00000000 00000000 000000ff 00000000 e4080bc3 9f03cf41 73813e63 55920cbf
+ars4x32 7 00000000 00000000 00000000 0000ff00 00000000 00000000 000000ff 00000000 953bd9b1 f0adfdbc 8d1e8637 fc3aae24
+ars4x32 7 00000000 00000000 00000000 00008000 00000000 00000000 000000ff 00000000 67aac33a bc41dc9d 9e76a5d3 d05fb0cc
+ars4x32 7 00000000 00000000 00000000 00ff0000 00000000 00000000 000000ff 00000000 9aa1ec74 abeedbf3 b69362c4 8bc7fef0
+ars4x32 7 00000000 00000000 00000000 00800000 00000000 00000000 000000ff 00000000 e2a38fe5 e357ad6e f9428603 1da81cce
+ars4x32 7 00000000 00000000 00000000 ff000000 00000000 00000000 000000ff 00000000 38aa15a5 571ef34a c022ddce 78d900b2
+ars4x32 7 00000000 00000000 00000000 80000000 00000000 00000000 000000ff 00000000 12facc68 09c6ab68 d036ec58 02fb6181
+ars4x32 7 886a3f24 d308a385 2e8a1913 44737003 00000000 00000000 000000ff 00000000 e16cc4ad 54f590c4 e1566ac0 32f9c6a9
+ars4x32 7 223809a4 d0319f29 98fa2e08 896c4eec 00000000 00000000 000000ff 00000000 265d4bd1 c1615d4e 09de0cd2 eb487c57
+ars4x32 7 e6212845 7713d038 cf6654be 6c0ce934 00000000 00000000 000000ff 00000000 ee505d84 9d283ee1 779ab900 0827c83e
+ars4x32 7 00000001 00000000 00000000 00000000 00000000 00000000 00000080 00000000 28b2328f 0fa5f615 8316c9ea e541fe16
+ars4x32 7 00000100 00000000 00000000 00000000 00000000 00000000 00000080 00000000 5e0d37b7 d3a150e2 0a8cd83b 43948be9
+ars4x32 7 00010000 00000000 00000000 00000000 00000000 00000000 00000080 00000000 c7241b1e bb6537ef a62023dc 0ab19d6d
+ars4x32 7 01000000 00000000 00000000 00000000 00000000 00000000 00000080 00000000 acdb9793 b6762963 011e1e60 736b471f
+ars4x32 7 00000000 00000001 00000000 00000000 00000000 00000000 00000080 00000000 a04030ca 37035c35 3c83185d 66977ad7
+ars4x32 7 00000000 00000100 00000000 00000000 00000000 00000000 00000080 00000000 f87e3660 29b62f23 1fa911e4 8825ac2d
+ars4x32 7 00000000 00010000 00000000 00000000 00000000 00000000 00000080 00000000 0405098d 5f586df6 4d048c3a 5f6625a3
+ars4x32 7 00000000 01000000 00000000 00000000 00000000 00000000 00000080 00000000 b570ae35 55111919 6cd58d47 ffdf357e
+ars4x32 7 00000000 00000000 00000001 00000000 00000000 00000000 00000080 00000000 e61b9f3d cc504fd1 e55cc705 e1164506
+ars4x32 7 00000000 00000000 00000100 00000000 00000000 00000000 00000080 00000000 d4abecca 32245a7d bf274520 781bf659
+ars4x32 7 00000000 00000000 00010000 00000000 00000000 00000000 00000080 00000000 8cd339b8 f7292101 db49022d 52747449
+ars4x32 7 00000000 00000000 01000000 00000000 00000000 00000000 00000080 00000000 88f0a81a 9ba3290c e738881f e27cec9e
+ars4x32 7 00000000 00000000 00000000 00000001 00000000 00000000 00000080 00000000 b02ee6da f5f9bc83 62de8926 fa7ee983
+ars4x32 7 00000000 00000000 00000000 00000100 00000000 00000000 00000080 00000000 8c983a61 1ae74967 5bd89970 5b8d7c6c
+ars4x32 7 00000000 00000000 00000000 00010000 00000000 00000000 00000080 00000000 2f0b2de6 4f52e7e4 61cbdefe 02fef405
+ars4x32 7 00000000 00000000 00000000 01000000 00000000 00000000 00000080 00000000 7c76e448 a783f64f 0560b403 255a28a1
+ars4x32 7 0000ff00 00000000 00000000 00000000 00000000 00000000 00000080 00000000 f157758b baf4ccb5 2d66ebe5 6c94c55d
+ars4x32 7 00008000 00000000 00000000 00000000 00000000 00000000 00000080 00000000 a1b67bff 447e0b5e 4c3ddd64 072f1022
+ars4x32 7 00ff0000 00000000 00000000 00000000 00000000 00000000 00000080 00000000 4b52c613 834a15d2 4cd2b88b c7810251
+ars4x32 7 00800000 00000000 00000000 00000000 00000000 00000000 00000080 00000000 5a306e0b c7da868e d032dde6 5c06d858
+ars4x32 7 ff000000 00000000 00000000 00000000 00000000 00000000 00000080 00000000 dc5360db ed5d35a2 439064ac fce2a0ec
+ars4x32 7 80000000 00000000 00000000 00000000 00000000 00000000 00000080 00000000 6289382f e74206ba 91690ea6 4a7cd082
+ars4x32 7 00000000 000000ff 00000000 00000000 00000000 00000000 00000080 00000000 890c9ecd 757b4645 0c116ba9 3345c351
+ars4x32 7 00000000 00000080 00000000 00000000 00000000 00000000 00000080 00000000 cc566acc e04aa66a eeddafe9 41e2f7e7
+ars4x32 7 00000000 0000ff00 00000000 00000000 00000000 00000000 00000080 00000000 f4d61444 ba5cbec6 58d7bb95 620ff6f3
+ars4x32 7 00000000 00008000 00000000 00000000 00000000 00000000 00000080 00000000 906a517a 5f65728b 59ea2a88 5c307e01
+ars4x32 7 00000000 00ff0000 00000000 00000000 00000000 00000000 00000080 00000000 e7122e90 7832983a 96c5af52 f5d242ce
+ars4x32 7 00000000 00800000 00000000 00000000 00000000 00000000 00000080 00000000 fbb8d451 7d889eb5 96c8d138 0ffc51e9
+ars4x32 7 00000000 ff000000 00000000 00000000 00000000 00000000 00000080 00000000 dab30e2a dbd9f3e7 6bf73eaf bc3a8d7d
+ars4x32 7 00000000 80000000 00000000 00000000 00000000 00000000 00000080 00000000 bc7d6d85 b69aee83 e8f71720 70d09ae8
+ars4x32 7 00000000 00000000 000000ff 00000000 00000000 00000000 00000080 00000000 5fa55d16 9908c07b e7b4ee98 134617f1
+ars4x32 7 00000000 00000000 00000080 00000000 00000000 00000000 00000080 00000000 eaeb1cb5 1ff6b616 acca2703 75221d78
+ars4x32 7 00000000 00000000 0000ff00 00000000 00000000 00000000 00000080 00000000 6b77d622 8646ca40 6028461c af1903b7
+ars4x32 7 00000000 00000000 00008000 00000000 00000000 00000000 00000080 00000000 03900db2 4aa298bd 10dcbf6e 6fecc45c
+ars4x32 7 00000000 00000000 00ff0000 00000000 00000000 00000000 00000080 00000000 842f5cd6 646ba731 8d066c6f 716cabf6
+ars4x32 7 00000000 00000000 00800000 00000000 00000000 00000000 00000080 00000000 93675dde ccd2485a 52960f2b 66bf4a21
+ars4x32 7 00000000 00000000 ff000000 00000000 00000000 00000000 00000080 00000000 78d8e9c6 862bc175 c09fed18 1256f338
+ars4x32 7 00000000 00000000 80000000 00000000 00000000 00000000 00000080 00000000 77a9b9d1 f964ad82 27f1b1fb bd8a0bd1
+ars4x32 7 00000000 00000000 00000000 000000ff 00000000 00000000 00000080 00000000 cbc664b6 810d4747 ad8aa88f 806fbd63
+ars4x32 7 00000000 00000000 00000000 00000080 00000000 00000000 00000080 00000000 8435f62a 91cfc4d9 0eed6cd9 91cb2208
+ars4x32 7 00000000 00000000 00000000 0000ff00 00000000 00000000 00000080 00000000 8f321c01 5b3edf6e fb7991a3 bd289447
+ars4x32 7 00000000 00000000 00000000 00008000 00000000 00000000 00000080 00000000 eea6f4db 41de03f5 182895c1 b53098a7
+ars4x32 7 00000000 00000000 00000000 00ff0000 00000000 00000000 00000080 00000000 3780b16c 3bd637f8 95636506 6da9be31
+ars4x32 7 00000000 00000000 00000000 00800000 00000000 00000000 00000080 00000000 293a9962 66a0cdff 152b3b0d e29416ec
+ars4x32 7 00000000 00000000 00000000 ff000000 00000000 00000000 00000080 00000000 1e80c35a 26391dc2 1411b393 6d83ef15
+ars4x32 7 00000000 00000000 00000000 80000000 00000000 00000000 00000080 00000000 63ba81ae b5d0f45b 2167d0a7 f6753e70
+ars4x32 7 886a3f24 d308a385 2e8a1913 44737003 00000000 00000000 00000080 00000000 ef14eb2a 8375a2fb 6079b492 a44dc69a
+ars4x32 7 223809a4 d0319f29 98fa2e08 896c4eec 00000000 00000000 00000080 00000000 1be30298 84e8d9e2 5cd64037 d7689860
+ars4x32 7 e6212845 7713d038 cf6654be 6c0ce934 00000000 00000000 00000080 00000000 d2d55a42 a400c4d7 12d0cc63 3191768e
+ars4x32 7 00000001 00000000 00000000 00000000 00000000 00000000 0000ff00 00000000 e207ecb3 210b891c 856c8786 d570d667
+ars4x32 7 00000100 00000000 00000000 00000000 00000000 00000000 0000ff00 00000000 473186b1 9247f498 84e2cdb1 0fd6079b
+ars4x32 7 00010000 00000000 00000000 00000000 00000000 00000000 0000ff00 00000000 3ee486a0 e30bc9a7 cae61162 3541295c
+ars4x32 7 01000000 00000000 00000000 00000000 00000000 00000000 0000ff00 00000000 39342ae3 0f79c530 a2b86b64 6874fce4
+ars4x32 7 00000000 00000001 00000000 00000000 00000000 00000000 0000ff00 00000000 17b01843 1999a4d5 38d3003c 8ba22700
+ars4x32 7 00000000 00000100 00000000 00000000 00000000 00000000 0000ff00 00000000 37abbdf5 f6ed2b16 302e3c8d ae41ef09
+ars4x32 7 00000000 00010000 00000000 00000000 00000000 00000000 0000ff00 00000000 598b800c 85d7af3e 4b7c9da2 7be5610f
+ars4x32 7 00000000 01000000 00000000 00000000 00000000 00000000 0000ff00 00000000 1b0aefe6 7060079f 4455577c 9520db4a
+ars4x32 7 00000000 00000000 00000001 00000000 00000000 00000000 0000ff00 00000000 91431f52 816d61a4 7abc1dcb beb68973
+ars4x32 7 00000000 00000000 00000100 00000000 00000000 00000000 0000ff00 00000000 39a6d5f0 3ab9c84e 7bb3aa4f d2439736
+ars4x32 7 00000000 00000000 00010000 00000000 00000000 00000000 0000ff00 00000000 04953ce3 1f590731 8326bcc3 76545701
+ars4x32 7 00000000 00000000 01000000 00000000 00000000 00000000 0000ff00 00000000 eb2aae06 ab7c74cd af2b98b8 938db69f
+ars4x32 7 00000000 00000000 00000000 00000001 00000000 00000000 0000ff00 00000000 3f706478 3fcfe475 43c02841 3da4c11f
+ars4x32 7 00000000 00000000 00000000 00000100 00000000 00000000 0000ff00 00000000 2aa708ea c23d23a2 441b0061 6fd2d232
+ars4x32 7 00000000 00000000 00000000 00010000 00000000 00000000 0000ff00 00000000 5a7d4288 10fe9cfb 328bbb69 24d5d706
+ars4x32 7 00000000 00000000 00000000 01000000 00000000 00000000 0000ff00 00000000 b40c18cc 876c614f dbb42b2a b7ae7994
+ars4x32 7 0000ff00 00000000 00000000 00000000 00000000 00000000 0000ff00 00000000 94b1ba11 1454e234 5078f9ba 253fd486
+ars4x32 7 00008000 00000000 00000000 00000000 00000000 00000000 0000ff00 00000000 1abd0a2c 9890ccbc 99eca8d6 440a1934
+ars4x32 7 00ff0000 00000000 00000000 00000000 00000000 00000000 0000ff00 00000000 d20d70e9 fd4cd32b d5ccd103 8d323b56
+ars4x32 7 00800000 00000000 00000000 00000000 00000000 00000000 0000ff00 00000000 7dbc1d85 8dbadddd c86dcb38 75eb4f48
+ars4x32 7 ff000000 00000000 00000000 00000000 00000000 00000000 0000ff00 00000000 bb652524 cb8eab7d 2da04670 63a33b3e
+ars4x32 7 80000000 00000000 00000000 00000000 00000000 00000000 0000ff00 00000000 689a1ecc 6039e2be 2cd5fd3a 14e563b2
+ars4x32 7 00000000 000000ff 00000000 00000000 00000000 00000000 0000ff00 00000000 b16bea2d 967c4577 0df15037 e4886893
+ars4x32 7 00000000 00000080 00000000 00000000 00000000 00000000 0000ff00 00000000 b496dbe0 9ad71f56 070fc5e7 b120b9a2
+ars4x32 7 00000000 0000ff00 00000000 00000000 00000000 00000000 0000ff00 00000000 e0ce7d99 a52b4a27 e88b11f4 4685a7ca
+ars4x32 7 00000000 00008000 00000000 00000000 00000000 00000000 0000ff00 00000000 b770bfd2 97e22420 5f29089a b4577e2c
+ars4x32 7 00000000 00ff0000 00000000 00000000 00000000 00000000 0000ff00 00000000 39bfa7b3 b92a5943 9ed1915e 48a33f8d
+ars4x32 7 00000000 00800000 00000000 00000000 00000000 00000000 0000ff00 00000000 830af295 4eaa5e63 019f24d7 aec4a78b
+ars4x32 7 00000000 ff000000 00000000 00000000 00000000 00000000 0000ff00 00000000 25137691 347525cd d32fd26d 9305c2ce
+ars4x32 7 00000000 80000000 00000000 00000000 00000000 00000000 0000ff00 00000000 ad2dfac0 2e2c8c4d 7fdb7b6a ca5e0859
+ars4x32 7 00000000 00000000 000000ff 00000000 00000000 00000000 0000ff00 00000000 87ce0724 1b64153f e2ae361f 07572129
+ars4x32 7 00000000 00000000 00000080 00000000 00000000 00000000 0000ff00 00000000 bb8c5b2e 843b2948 208de4e2 cdeab0ad
+ars4x32 7 00000000 00000000 0000ff00 00000000 00000000 00000000 0000ff00 00000000 b944aa9c c45f5a12 f1ca4a9e a0456e0b
+ars4x32 7 00000000 00000000 00008000 00000000 00000000 00000000 0000ff00 00000000 40b417b0 a2a007c2 85f8319d a3756891
+ars4x32 7 00000000 00000000 00ff0000 00000000 00000000 00000000 0000ff00 00000000 f7a5b1a6 06a4b50c 686df503 2c847a65
+ars4x32 7 00000000 00000000 00800000 00000000 00000000 00000000 0000ff00 00000000 9bc2c697 c68ebdda 8632850d 1caa3240
+ars4x32 7 00000000 00000000 ff000000 00000000 00000000 00000000 0000ff00 00000000 6b6426a7 7d75282e 8674bff4 b5375972
+ars4x32 7 00000000 00000000 80000000 00000000 00000000 00000000 0000ff00 00000000 7120e227 60337a2c e5057c45 044f5b94
+ars4x32 7 00000000 00000000 00000000 000000ff 00000000 00000000 0000ff00 00000000 9726bb5f 8047463b 8fe61df7 12ffdf7c
+ars4x32 7 00000000 00000000 00000000 00000080 00000000 00000000 0000ff00 00000000 753e008d 82416d3d f65cddc2 7b6ccd1f
+ars4x32 7 00000000 00000000 00000000 0000ff00 00000000 00000000 0000ff00 00000000 72bf7410 06ab16a1 a7d39ea2 bff4f0b9
+ars4x32 7 00000000 00000000 00000000 00008000 00000000 00000000 0000ff00 00000000 6cc08cf8 f5c5e856 5867ba98 eb67e26a
+ars4x32 7 00000000 00000000 00000000 00ff0000 00000000 00000000 0000ff00 00000000 5da7e2fc fcd7a11c 8d858c12 f65f99e2
+ars4x32 7 00000000 00000000 00000000 00800000 00000000 00000000 0000ff00 00000000 87f146c1 5898085a 37a4f313 6d3018c5
+ars4x32 7 00000000 00000000 00000000 ff000000 00000000 00000000 0000ff00 00000000 8dd15ad3 0c7c3618 83d72028 3884bb9f
+ars4x32 7 00000000 00000000 00000000 80000000 00000000 00000000 0000ff00 00000000 0c5b6d80 06845859 8c5feea9 89d16738
+ars4x32 7 886a3f24 d308a385 2e8a1913 44737003 00000000 00000000 0000ff00 00000000 2df31a0a 729ebc03 67e18942 f9f32def
+ars4x32 7 223809a4 d0319f29 98fa2e08 896c4eec 00000000 00000000 0000ff00 00000000 360c4e8a ea0dc3f7 9553d17b e974fec4
+ars4x32 7 e6212845 7713d038 cf6654be 6c0ce934 00000000 00000000 0000ff00 00000000 9a7f1259 37d979c6 ce278c27 96d67bb3
+ars4x32 7 00000001 00000000 00000000 00000000 00000000 00000000 00008000 00000000 ff8b4859 ea64fe49 f4087406 fc4b2f65
+ars4x32 7 00000100 00000000 00000000 00000000 00000000 00000000 00008000 00000000 d378a434 2c15de1d e24a3c41 1aafe6a9
+ars4x32 7 00010000 00000000 00000000 00000000 00000000 00000000 00008000 00000000 e9352493 e2655ea3 916a121e 984ad64f
+ars4x32 7 01000000 00000000 00000000 00000000 00000000 00000000 00008000 00000000 487ee61d 2c252f77 47c1f591 eafcf518
+ars4x32 7 00000000 00000001 00000000 00000000 00000000 00000000 00008000 00000000 5be2f0c5 2f9bc90b 6636fb8a 3c95bb55
+ars4x32 7 00000000 00000100 00000000 00000000 00000000 00000000 00008000 00000000 c852daa3 2dc271d9 5259cd5e 0e1a8cdf
+ars4x32 7 00000000 00010000 00000000 00000000 00000000 00000000 00008000 00000000 36fbd56b 352a20fc eb27648d 8b9ade31
+ars4x32 7 00000000 01000000 00000000 00000000 00000000 00000000 00008000 00000000 2670d668 deeddda4 383006f4 8998f35c
+ars4x32 7 00000000 00000000 00000001 00000000 00000000 00000000 00008000 00000000 04910224 1a5dbc0b 08a0163c ace7a017
+ars4x32 7 00000000 00000000 00000100 00000000 00000000 00000000 00008000 00000000 910c3e65 b3e85fbc cd168602 ddf8e63a
+ars4x32 7 00000000 00000000 00010000 00000000 00000000 00000000 00008000 00000000 a7c3fe43 884bbe51 eb9967f2 cf0c575d
+ars4x32 7 00000000 00000000 01000000 00000000 00000000 00000000 00008000 00000000 692a2238 531c9c29 afa6d025 0dd6445d
+ars4x32 7 00000000 00000000 00000000 00000001 00000000 00000000 00008000 00000000 9f3f5308 0d79dd3b 15e080d5 fd8e4dca
+ars4x32 7 00000000 00000000 00000000 00000100 00000000 00000000 00008000 00000000 b92f2227 df6749aa e3c2767d b0e4e214
+ars4x32 7 00000000 00000000 00000000 00010000 00000000 00000000 00008000 00000000 e19300ae de40a7b3 b0776433 df508342
+ars4x32 7 00000000 00000000 00000000 01000000 00000000 00000000 00008000 00000000 adb4da91 ad928796 8a063cfe cfe98a48
+ars4x32 7 0000ff00 00000000 00000000 00000000 00000000 00000000 00008000 00000000 9a196e77 eec0b6a2 0f09da71 77f0b9a7
+ars4x32 7 00008000 00000000 00000000 00000000 00000000 00000000 00008000 00000000 a1423831 92b09a92 1b59db81 97877bc9
+ars4x32 7 00ff0000 00000000 00000000 00000000 00000000 00000000 00008000 00000000 a9803eb6 c2150f50 f3f4335b 769870b5
+ars4x32 7 00800000 00000000 00000000 00000000 00000000 00000000 00008000 00000000 bc228b32 1c261956 c258d812 d53f8dcd
+ars4x32 7 ff000000 00000000 00000000 00000000 00000000 00000000 00008000 00000000 e4d4d995 66a88f32 16924d5f 131e87a3
+ars4x32 7 80000000 00000000 00000000 00000000 00000000 00000000 00008000 00000000 11f1fc59 0d452e4b 22a34320 d6837e2b
+ars4x32 7 00000000 000000ff 00000000 00000000 00000000 00000000 00008000 00000000 e9a5f770 5ce1166e 2c3a0b84 2ba27e02
+ars4x32 7 00000000 00000080 00000000 00000000 00000000 00000000 00008000 00000000 211f56d5 455fb285 809479ad adc82395
+ars4x32 7 00000000 0000ff00 00000000 00000000 00000000 00000000 00008000 00000000 e1dcd656 8cbe35c9 1b1da938 6cf939e7
+ars4x32 7 00000000 00008000 00000000 00000000 00000000 00000000 00008000 00000000 c96bc0a7 cc55c189 1c33cadf fef12577
+ars4x32 7 00000000 00ff0000 00000000 00000000 00000000 00000000 00008000 00000000 e2c7cee9 284c6c94 f111b06c 7c94f947
+ars4x32 7 00000000 00800000 00000000 00000000 00000000 00000000 00008000 00000000 e6061948 d5068dc4 2ad66b1e 69796b8d
+ars4x32 7 00000000 ff000000 00000000 00000000 00000000 00000000 00008000 00000000 263b16fa d57ae39b c5721991 559c3496
+ars4x32 7 00000000 80000000 00000000 00000000 00000000 00000000 00008000 00000000 424d82a4 2de34feb c9ea8fde 2a795a77
+ars4x32 7 00000000 00000000 000000ff 00000000 00000000 00000000 00008000 00000000 e38c8441 d997461e ec59f5f1 209e8fae
+ars4x32 7 00000000 00000000 00000080 00000000 00000000 00000000 00008000 00000000 78ff893e 731b1680 35c09a8a 2707177c
+ars4x32 7 00000000 00000000 0000ff00 00000000 00000000 00000000 00008000 00000000 8f2c1884 74f32a0f 5a6e8255 f2cd90b5
+ars4x32 7 00000000 00000000 00008000 00000000 00000000 00000000 00008000 00000000 30d1e593 bd0dddce 4c3300c6 bf4cce98
+ars4x32 7 00000000 00000000 00ff0000 00000000 00000000 00000000 00008000 00000000 62d7584f dba38064 c5804177 c1523bc6
+ars4x32 7 00000000 00000000 00800000 00000000 00000000 00000000 00008000 00000000 9a95ba58 a8d89e83 78abc8ad f5e7d2cf
+ars4x32 7 00000000 00000000 ff000000 00000000 00000000 00000000 00008000 00000000 ba70ac88 361c8ab0 22c5c925 ad11aafb
+ars4x32 7 00000000 00000000 80000000 00000000 00000000 00000000 00008000 00000000 2724e7bf 0d5370e4 f73abf99 6f458b64
+ars4x32 7 00000000 00000000 00000000 000000ff 00000000 00000000 00008000 00000000 d6bde385 73f0a1dd f741c189 645bf361
+ars4x32 7 00000000 00000000 00000000 00000080 00000000 00000000 00008000 00000000 b923575c d74cfa76 4cf13d38 89e164be
+ars4x32 7 00000000 00000000 00000000 0000ff00 00000000 00000000 00008000 00000000 2e1b196d 1262def8 c49e9776 212320de
+ars4x32 7 00000000 00000000 00000000 00008000 00000000 00000000 00008000 00000000 459ce8c6 b1cfa83e 432d48f0 e8b5bd63
+ars4x32 7 00000000 00000000 00000000 00ff0000 00000000 00000000 00008000 00000000 e419fbf3 af62d307 f56ce478 b71545c2
+ars4x32 7 00000000 00000000 00000000 00800000 00000000 00000000 00008000 00000000 f388f74d 6b2771e0 b07f3b19 d978d23d
+ars4x32 7 00000000 00000000 00000000 ff000000 00000000 00000000 00008000 00000000 38536d42 0bc4cb6d c6458036 0f9dc83c
+ars4x32 7 00000000 00000000 00000000 80000000 00000000 00000000 00008000 00000000 3349b5d4 35dd0907 fd7807ee 2686b306
+ars4x32 7 886a3f24 d308a385 2e8a1913 44737003 00000000 00000000 00008000 00000000 b21c2bf9 1c4628f1 5a2141d6 38d7c260
+ars4x32 7 223809a4 d0319f29 98fa2e08 896c4eec 00000000 00000000 00008000 00000000 f94b8b78 38e02d43 5af1f50c 20479c8f
+ars4x32 7 e6212845 7713d038 cf6654be 6c0ce934 00000000 00000000 00008000 00000000 851cb311 34296508 baade6b5 ec7c625e
+ars4x32 7 00000001 00000000 00000000 00000000 00000000 00000000 00ff0000 00000000 4fa36bed f49b0f68 f68454e1 8f4ffd6b
+ars4x32 7 00000100 00000000 00000000 00000000 00000000 00000000 00ff0000 00000000 0ed25b31 17d37f27 63fa0d94 d9669710
+ars4x32 7 00010000 00000000 00000000 00000000 00000000 00000000 00ff0000 00000000 e358a9f1 f2635fdd 8f93e471 97ddd54f
+ars4x32 7 01000000 00000000 00000000 00000000 00000000 00000000 00ff0000 00000000 9021c525 2f77fcf9 2bb35ce2 99d6c5ea
+ars4x32 7 00000000 00000001 00000000 00000000 00000000 00000000 00ff0000 00000000 6e6685a3 75fba10d 1d2ed31a 813a318a
+ars4x32 7 00000000 00000100 00000000 00000000 00000000 00000000 00ff0000 00000000 1556fb5d 5b90d443 78106e08 69b66c5c
+ars4x32 7 00000000 00010000 00000000 00000000 00000000 00000000 00ff0000 00000000 b601a9a9 fc7333bc 69067f14 4492bee6
+ars4x32 7 00000000 01000000 00000000 00000000 00000000 00000000 00ff0000 00000000 8a3d63e9 03147c09 5c30d175 3222a38f
+ars4x32 7 00000000 00000000 00000001 00000000 00000000 00000000 00ff0000 00000000 216a0bff 6e151caf c631b665 9b6d7527
+ars4x32 7 00000000 00000000 00000100 00000000 00000000 00000000 00ff0000 00000000 45db8411 309a25f2 4eb85913 aa7be9d1
+ars4x32 7 00000000 00000000 00010000 00000000 00000000 00000000 00ff0000 00000000 a3adade5 5f44b75c 453fea47 e259fbc2
+ars4x32 7 00000000 00000000 01000000 00000000 00000000 00000000 00ff0000 00000000 1c87faa1 ed8f4de4 b985e974 d09eff50
+ars4x32 7 00000000 00000000 00000000 00000001 00000000 00000000 00ff0000 00000000 5073b96d 15f38001 705963cd 5cb0103e
+ars4x32 7 00000000 00000000 00000000 00000100 00000000 00000000 00ff0000 00000000 db35c200 3f6b4da2 c9915de2 218ff3bf
+ars4x32 7 00000000 00000000 00000000 00010000 00000000 00000000 00ff0000 00000000 47cd4aab d752d014 f28b860c a1bc04cb
+ars4x32 7 00000000 00000000 00000000 01000000 00000000 00000000 00ff0000 00000000 a285a077 6e47cdc9 98569e8d c677b518
+ars4x32 7 0000ff00 00000000 00000000 00000000 00000000 00000000 00ff0000 00000000 4b9c3596 92c11f50 c97b5915 51e6898a
+ars4x32 7 00008000 00000000 00000000 00000000 00000000 00000000 00ff0000 00000000 00d14d89 38006c1d 7bc5afc9 cfe16969
+ars4x32 7 00ff0000 00000000 00000000 00000000 00000000 00000000 00ff0000 00000000 f207a99e 33e90e8a 48736b6e baf80a74
+ars4x32 7 00800000 00000000 00000000 00000000 00000000 00000000 00ff0000 00000000 9106c865 646d84a4 dcd683ce 4182f6ad
+ars4x32 7 ff000000 00000000 00000000 00000000 00000000 00000000 00ff0000 00000000 19f21514 78c6ed2c ee689dac 9f2df2d9
+ars4x32 7 80000000 00000000 00000000 00000000 00000000 00000000 00ff0000 00000000 8bd79976 ff8adaca 0130d1f7 2b06140b
+ars4x32 7 00000000 000000ff 00000000 00000000 00000000 00000000 00ff0000 00000000 4a70c7e2 356656c9 7c9e7d56 820e892a
+ars4x32 7 00000000 00000080 00000000 00000000 00000000 00000000 00ff0000 00000000 c57855ef 829c70f3 8ce2efb9 f3d34560
+ars4x32 7 00000000 0000ff00 00000000 00000000 00000000 00000000 00ff0000 00000000 06520b39 be42e64d 30377268 5264ee53
+ars4x32 7 00000000 00008000 00000000 00000000 00000000 00000000 00ff0000 00000000 eafc3b62 e9f93279 7ebe1830 515a177d
+ars4x32 7 00000000 00ff0000 00000000 00000000 00000000 00000000 00ff0000 00000000 c9a49b3a 07b4e3a9 418deeef 13559144
+ars4x32 7 00000000 00800000 00000000 00000000 00000000 00000000 00ff0000 00000000 54b4f3ea 7d21dd47 ca6c3c92 ad216979
+ars4x32 7 00000000 ff000000 00000000 00000000 00000000 00000000 00ff0000 00000000 74713ea7 12ad5451 8671dbc1 d57d9d75
+ars4x32 7 00000000 80000000 00000000 00000000 00000000 00000000 00ff0000 00000000 ebe4ecb9 c31eba78 5a6303bc ee4c42ca
+ars4x32 7 00000000 00000000 000000ff 00000000 00000000 00000000 00ff0000 00000000 3dc002f5 52b17469 8298788c 7537b37c
+ars4x32 7 00000000 00000000 00000080 00000000 00000000 00000000 00ff0000 00000000 41b45326 fd956649 46486ae0 86ca0006
+ars4x32 7 00000000 00000000 0000ff00 00000000 00000000 00000000 00ff0000 00000000 2eb13676 7d591e27 e6713fe3 74bf381a
+ars4x32 7 00000000 00000000 00008000 00000000 00000000 00000000 00ff0000 00000000 5c3e62f5 5fa35cd6 e42d2934 8ea2df61
+ars4x32 7 00000000 00000000 00ff0000 00000000 00000000 00000000 00ff0000 00000000 b269cb2b 5ea85bfb 2a8ce1ab fa783c04
+ars4x32 7 00000000 00000000 00800000 00000000 00000000 00000000 00ff0000 00000000 eb6c4f88 4ae25fa7 975f094c bf74c4bd
+ars4x32 7 00000000 00000000 ff000000 00000000 00000000 00000000 00ff0000 00000000 822f96a4 47cb8dcc 5b65d0ee 00592c4c
+ars4x32 7 00000000 00000000 80000000 00000000 00000000 00000000 00ff0000 00000000 9e913667 d144a7c6 b02f5136 7558771c
+ars4x32 7 00000000 00000000 00000000 000000ff 00000000 00000000 00ff0000 00000000 5da84c50 b88e33ef 820698aa f8e5d652
+ars4x32 7 00000000 00000000 00000000 00000080 00000000 00000000 00ff0000 00000000 e04d1713 be1bd333 2cac27c3 7cef40b8
+ars4x32 7 00000000 00000000 00000000 0000ff00 00000000 00000000 00ff0000 00000000 57c02c7f 1940a93d 5f44006e 903339b2
+ars4x32 7 00000000 00000000 00000000 00008000 00000000 00000000 00ff0000 00000000 0060047d 49f3a5a4 a9da83fa 5bd5d855
+ars4x32 7 00000000 00000000 00000000 00ff0000 00000000 00000000 00ff0000 00000000 7c232cfd 483abf9a e0494b22 ce559af9
+ars4x32 7 00000000 00000000 00000000 00800000 00000000 00000000 00ff0000 00000000 e2e3d656 7055d469 67f35dc8 a135cf8a
+ars4x32 7 00000000 00000000 00000000 ff000000 00000000 00000000 00ff0000 00000000 1a50f657 df2bdd5e b594ec19 ffe9269d
+ars4x32 7 00000000 00000000 00000000 80000000 00000000 00000000 00ff0000 00000000 35bc3c82 eec65419 99bc3f75 1645e084
+ars4x32 7 886a3f24 d308a385 2e8a1913 44737003 00000000 00000000 00ff0000 00000000 d055bdad a21ab0fa 6f5c68c8 2871b20e
+ars4x32 7 223809a4 d0319f29 98fa2e08 896c4eec 00000000 00000000 00ff0000 00000000 8cdb6d07 0331f252 829f3fdb 5fdb7e77
+ars4x32 7 e6212845 7713d038 cf6654be 6c0ce934 00000000 00000000 00ff0000 00000000 03e0b8f9 aad821bc f95e2a0c 51feb93a
+ars4x32 7 00000001 00000000 00000000 00000000 00000000 00000000 00800000 00000000 e9080079 057151f2 6d995910 750b5673
+ars4x32 7 00000100 00000000 00000000 00000000 00000000 00000000 00800000 00000000 fa63d562 9947e6db c9939d4c 6bc5f1e3
+ars4x32 7 00010000 00000000 00000000 00000000 00000000 00000000 00800000 00000000 8c275b4f 3307529f 0205d226 19fc0965
+ars4x32 7 01000000 00000000 00000000 00000000 00000000 00000000 00800000 00000000 994f4ebd 177adfb5 f0b7ad06 2538baf2
+ars4x32 7 00000000 00000001 00000000 00000000 00000000 00000000 00800000 00000000 a8493f2e 2fe47ed2 75b7ee41 9f2bfb4b
+ars4x32 7 00000000 00000100 00000000 00000000 00000000 00000000 00800000 00000000 7f7dfec1 d7acaae6 5d90e279 40b20fa9
+ars4x32 7 00000000 00010000 00000000 00000000 00000000 00000000 00800000 00000000 e137e761 9e68178d 63d6f810 16c59e33
+ars4x32 7 00000000 01000000 00000000 00000000 00000000 00000000 00800000 00000000 feb6ad7e f650069c ed4fbfcf ec8eaea2
+ars4x32 7 00000000 00000000 00000001 00000000 00000000 00000000 00800000 00000000 a8fdbcba 7cc58b23 7567a9e8 0a431787
+ars4x32 7 00000000 00000000 00000100 00000000 00000000 00000000 00800000 00000000 789c95d2 6fe20176 b35d830d 2e89a3ea
+ars4x32 7 00000000 00000000 00010000 00000000 00000000 00000000 00800000 00000000 9817cdaa 1314c2a3 a7e3e005 91b0e928
+ars4x32 7 00000000 00000000 01000000 00000000 00000000 00000000 00800000 00000000 7b56644e 2f5a731e 0f8bc3c3 955e6def
+ars4x32 7 00000000 00000000 00000000 00000001 00000000 00000000 00800000 00000000 435ec10c f48f1cc9 b4097238 b9e9e8b1
+ars4x32 7 00000000 00000000 00000000 00000100 00000000 00000000 00800000 00000000 b5fa1cd8 39c43e5e cc5812a4 d8ee89a0
+ars4x32 7 00000000 00000000 00000000 00010000 00000000 00000000 00800000 00000000 88ecfd91 bf0c0a69 e8634b97 54642a0f
+ars4x32 7 00000000 00000000 00000000 01000000 00000000 00000000 00800000 00000000 4b36b2e9 1a6251f8 33fbf583 e799e32a
+ars4x32 7 0000ff00 00000000 00000000 00000000 00000000 00000000 00800000 00000000 9e778350 3447036e 9706b42d 5d0a1b8b
+ars4x32 7 00008000 00000000 00000000 00000000 00000000 00000000 00800000 00000000 7d55a72a 3b02f5e1 41e66207 511cb7bb
+ars4x32 7 00ff0000 00000000 00000000 00000000 00000000 00000000 00800000 00000000 21773439 410262a4 193f6dda b884b561
+ars4x32 7 00800000 00000000 00000000 00000000 00000000 00000000 00800000 00000000 21b9839b 52ab6283 7b605860 c52c1a36
+ars4x32 7 ff000000 00000000 00000000 00000000 00000000 00000000 00800000 00000000 2bd6d845 47f8f2bc 16a2963b dcff967d
+ars4x32 7 80000000 00000000 00000000 00000000 00000000 00000000 00800000 00000000 2c1c2d04 805c7d28 01a807b0 7153f583
+ars4x32 7 00000000 000000ff 00000000 00000000 00000000 00000000 00800000 00000000 997db510 302959cf 3bdc36a4 6197c9ba
+ars4x32 7 00000000 00000080 00000000 00000000 00000000 00000000 00800000 00000000 ff7ac844 641ad65c ced417d5 e5bca0f1
+ars4x32 7 00000000 0000ff00 00000000 00000000 00000000 00000000 00800000 00000000 cfc50be7 1440ee7e b43063eb fa79bc51
+ars4x32 7 00000000 00008000 00000000 00000000 00000000 00000000 00800000 00000000 414f54e0 c020b7f6 cd98df4c da58c2c6
+ars4x32 7 00000000 00ff0000 00000000 00000000 00000000 00000000 00800000 00000000 831c6399 5ffbf486 71efd2e8 95b4255f
+ars4x32 7 00000000 00800000 00000000 00000000 00000000 00000000 00800000 00000000 cbaceb29 37bbc31c ef44bdab 90f92671
+ars4x32 7 00000000 ff000000 00000000 00000000 00000000 00000000 00800000 00000000 81bc89d5 e4c3dd2a a4e8b457 98589830
+ars4x32 7 00000000 80000000 00000000 00000000 00000000 00000000 00800000 00000000 78d0a9a0 f167c7d1 dff91d28 3f0c112d
+ars4x32 7 00000000 00000000 000000ff 00000000 00000000 00000000 00800000 00000000 82333e85 8efd25a3 dc58e89f 6be384c6
+ars4x32 7 00000000 00000000 00000080 00000000 00000000 00000000 00800000 00000000 0ddaa164 9cb2b549 c0dc502d 4056fdb6
+ars4x32 7 00000000 00000000 0000ff00 00000000 00000000 00000000 00800000 00000000 60950f43 a4e9d390 431c18ab 06f6edb3
+ars4x32 7 00000000 00000000 00008000 00000000 00000000 00000000 00800000 00000000 8aef14ef a673a0c2 bc64341c 40bbd2e1
+ars4x32 7 00000000 00000000 00ff0000 00000000 00000000 00000000 00800000 00000000 6e2377f3 18a9cdeb 0942dcdd 934a22f6
+ars4x32 7 00000000 00000000 00800000 00000000 00000000 00000000 00800000 00000000 26fefcd8 4a8fd303 737f374b d5553621
+ars4x32 7 00000000 00000000 ff000000 00000000 00000000 00000000 00800000 00000000 86d7b77b cbe8e3b1 572f67d3 f77dee99
+ars4x32 7 00000000 00000000 80000000 00000000 00000000 00000000 00800000 00000000 80ca0691 5c053347 6cd2f69a 92d7f5e1
+ars4x32 7 00000000 00000000 00000000 000000ff 00000000 00000000 00800000 00000000 1c770c46 0ed1ce0c 534e8311 ace6d64a
+ars4x32 7 00000000 00000000 00000000 00000080 00000000 00000000 00800000 00000000 0401673f 236b14e1 b86a8060 511e469e
+ars4x32 7 00000000 00000000 00000000 0000ff00 00000000 00000000 00800000 00000000 684be1c8 2eb410f4 8f053d5f cd4e0351
+ars4x32 7 00000000 00000000 00000000 00008000 00000000 00000000 00800000 00000000 23872d7c 20039fcb 774aff2f 79a117a8
+ars4x32 7 00000000 00000000 00000000 00ff0000 00000000 00000000 00800000 00000000 612edeee 0c9ee409 531c983a bab16142
+ars4x32 7 00000000 00000000 00000000 00800000 00000000 00000000 00800000 00000000 013f14ea 9a9fa775 225cdca9 1e561107
+ars4x32 7 00000000 00000000 00000000 ff000000 00000000 00000000 00800000 00000000 226668a8 29203d71 1f34d9d5 aadd4b71
+ars4x32 7 00000000 00000000 00000000 80000000 00000000 00000000 00800000 00000000 e34b6fcf 51c8285b 60fc7dd5 99067bb1
+ars4x32 7 886a3f24 d308a385 2e8a1913 44737003 00000000 00000000 00800000 00000000 3d7154ab 7f08d6ca 8dcc0b0b e99e6581
+ars4x32 7 223809a4 d0319f29 98fa2e08 896c4eec 00000000 00000000 00800000 00000000 aefdaed4 e8ba816a e4d91e8a 85bb1f9c
+ars4x32 7 e6212845 7713d038 cf6654be 6c0ce934 00000000 00000000 00800000 00000000 9ea642bc bead97b7 81029076 b33a7fc5
+ars4x32 7 00000001 00000000 00000000 00000000 00000000 00000000 ff000000 00000000 e594998f b5d5bcd5 7998a540 6d4720f9
+ars4x32 7 00000100 00000000 00000000 00000000 00000000 00000000 ff000000 00000000 e191f528 e9bf876c 2d943b13 c96c6246
+ars4x32 7 00010000 00000000 00000000 00000000 00000000 00000000 ff000000 00000000 43f89e68 8cd82bb8 f47d82ff 70e66707
+ars4x32 7 01000000 00000000 00000000 00000000 00000000 00000000 ff000000 00000000 5139c273 62620c93 3eccc591 06d3bba3
+ars4x32 7 00000000 00000001 00000000 00000000 00000000 00000000 ff000000 00000000 04760d2a f5edbe89 4dd31233 f5a349ad
+ars4x32 7 00000000 00000100 00000000 00000000 00000000 00000000 ff000000 00000000 1c99f4bb b2870b61 740c20e8 b4b3a447
+ars4x32 7 00000000 00010000 00000000 00000000 00000000 00000000 ff000000 00000000 50142161 ca26a966 b631aa10 76202601
+ars4x32 7 00000000 01000000 00000000 00000000 00000000 00000000 ff000000 00000000 a4e5c4fe cbbe1926 55d303f9 1e0ba097
+ars4x32 7 00000000 00000000 00000001 00000000 00000000 00000000 ff000000 00000000 d096cdb9 8198af67 01567021 8f068fea
+ars4x32 7 00000000 00000000 00000100 00000000 00000000 00000000 ff000000 00000000 b7fb1a31 15b6d0e5 57450c2b 8e931a17
+ars4x32 7 00000000 00000000 00010000 00000000 00000000 00000000 ff000000 00000000 26774f55 9c0a6234 3c9dc396 93347de8
+ars4x32 7 00000000 00000000 01000000 00000000 00000000 00000000 ff000000 00000000 1dfb4108 4be6f25d 7c5de5e4 951402bd
+ars4x32 7 00000000 00000000 00000000 00000001 00000000 00000000 ff000000 00000000 6302ed04 6ad5096f 7cf96fee e62789af
+ars4x32 7 00000000 00000000 00000000 00000100 00000000 00000000 ff000000 00000000 ffb2f2ca a2b6c832 1755f26d 3b042f52
+ars4x32 7 00000000 00000000 00000000 00010000 00000000 00000000 ff000000 00000000 d9d4678c 69e519d5 47c61f78 f03ae6df
+ars4x32 7 00000000 00000000 00000000 01000000 00000000 00000000 ff000000 00000000 6b032ecf 64d2139b c8e0058e 520bf9dc
+ars4x32 7 0000ff00 00000000 00000000 00000000 00000000 00000000 ff000000 00000000 59e92d22 7949c4bb e8657fba 7080bd58
+ars4x32 7 00008000 00000000 00000000 00000000 00000000 00000000 ff000000 00000000 842e5047 04709ad9 491fd8cd cd9d36ef
+ars4x32 7 00ff0000 00000000 00000000 00000000 00000000 00000000 ff000000 00000000 33cda626 bca22980 90f9a64f cbc3c4b6
+ars4x32 7 00800000 00000000 00000000 00000000 00000000 00000000 ff000000 00000000 981eb300 a9ed8be1 6c051075 1f4aa89f
+ars4x32 7 ff000000 00000000 00000000 00000000 00000000 00000000 ff000000 00000000 aee436ba 4cb7543b c08d10e3 46af739b
+ars4x32 7 80000000 00000000 00000000 00000000 00000000 00000000 ff000000 00000000 313a8392 fc1b20c8 107a3111 becca7c5
+ars4x32 7 00000000 000000ff 00000000 00000000 00000000 00000000 ff000000 00000000 c61fabad 747a7795 f7be9cf5 a47b0dc7
+ars4x32 7 00000000 00000080 00000000 00000000 00000000 00000000 ff000000 00000000 fa88c065 5041f854 f0f14444 e07fff07
+ars4x32 7 00000000 0000ff00 00000000 00000000 00000000 00000000 ff000000 00000000 1c968df6 052f9a87 1ec2cdd4 0e86ac4a
+ars4x32 7 00000000 00008000 00000000 00000000 00000000 00000000 ff000000 00000000 604bd694 dd191dcc d2b42afd b364fdbe
+ars4x32 7 00000000 00ff0000 00000000 00000000 00000000 00000000 ff000000 00000000 7605676c 44eaae99 f550c105 758d377e
+ars4x32 7 00000000 00800000 00000000 00000000 00000000 00000000 ff000000 00000000 8f824b8a 169359c6 8757dde1 39f8a63b
+ars4x32 7 00000000 ff000000 00000000 00000000 00000000 00000000 ff000000 00000000 260e12ab ef29fa83 25010c47 55fc59f8
+ars4x32 7 00000000 80000000 00000000 00000000 00000000 00000000 ff000000 00000000 1437d144 53fc8556 01fd3e34 9ec7ce17
+ars4x32 7 00000000 00000000 000000ff 00000000 00000000 00000000 ff000000 00000000 f9889861 2885a4c0 90199984 8186c409
+ars4x32 7 00000000 00000000 00000080 00000000 00000000 00000000 ff000000 00000000 d5a5b5c0 4dedbbad c729b38c 6e6b5f5b
+ars4x32 7 00000000 00000000 0000ff00 00000000 00000000 00000000 ff000000 00000000 eab2b472 84d793a5 21469192 b4a1bf6d
+ars4x32 7 00000000 00000000 00008000 00000000 00000000 00000000 ff000000 00000000 b1b2dc57 afd6624d 5f128d86 f89fe2a9
+ars4x32 7 00000000 00000000 00ff0000 00000000 00000000 00000000 ff000000 00000000 dfcb6e5e a0894b3b f85c52fa d29e0bff
+ars4x32 7 00000000 00000000 00800000 00000000 00000000 00000000 ff000000 00000000 1633dc13 10ceced3 613ed8de deb5db90
+ars4x32 7 00000000 00000000 ff000000 00000000 00000000 00000000 ff000000 00000000 f9abe8ab 34ae560f c23b89c5 ffb47ec7
+ars4x32 7 00000000 00000000 80000000 00000000 00000000 00000000 ff000000 00000000 38205c98 e813a1dc c7dfd2cc c7ed1b5a
+ars4x32 7 00000000 00000000 00000000 000000ff 00000000 00000000 ff000000 00000000 a83a5099 81580b72 9418d1a1 427b5bc8
+ars4x32 7 00000000 00000000 00000000 00000080 00000000 00000000 ff000000 00000000 057cd2b9 f1396aed 962fb7e8 007b9417
+ars4x32 7 00000000 00000000 00000000 0000ff00 00000000 00000000 ff000000 00000000 9ead8db7 0be43b46 abbf6f00 64399b80
+ars4x32 7 00000000 00000000 00000000 00008000 00000000 00000000 ff000000 00000000 a5f7a8c1 9c014f32 e84da0c7 528db876
+ars4x32 7 00000000 00000000 00000000 00ff0000 00000000 00000000 ff000000 00000000 2f862e83 ee399416 2fc4b244 219bf33b
+ars4x32 7 00000000 00000000 00000000 00800000 00000000 00000000 ff000000 00000000 7c38fd5e e88c7b0b 00a39564 d127ba08
+ars4x32 7 00000000 00000000 00000000 ff000000 00000000 00000000 ff000000 00000000 9dde56f7 703a51a2 809b288c 13fc1db8
+ars4x32 7 00000000 00000000 00000000 80000000 00000000 00000000 ff000000 00000000 001a54c7 7c415411 7419eadc 30283e4c
+ars4x32 7 886a3f24 d308a385 2e8a1913 44737003 00000000 00000000 ff000000 00000000 3c9224d4 642eaab1 3ca000f2 c837fd1b
+ars4x32 7 223809a4 d0319f29 98fa2e08 896c4eec 00000000 00000000 ff000000 00000000 35b24344 d6067df7 c0c48112 05f68f85
+ars4x32 7 e6212845 7713d038 cf6654be 6c0ce934 00000000 00000000 ff000000 00000000 6e492fd4 5de1d3f5 082d2ff3 0c00136a
+ars4x32 7 00000001 00000000 00000000 00000000 00000000 00000000 80000000 00000000 50ee6f9f b145d6ff 04c3488c 77cd209f
+ars4x32 7 00000100 00000000 00000000 00000000 00000000 00000000 80000000 00000000 d91e7c95 8944f3d8 8943fa3a 4d22c6ea
+ars4x32 7 00010000 00000000 00000000 00000000 00000000 00000000 80000000 00000000 2686ee74 f5c74c56 e38f1dbc ded52c9e
+ars4x32 7 01000000 00000000 00000000 00000000 00000000 00000000 80000000 00000000 0567728c ea8d267b 37e6a8ba 5625d260
+ars4x32 7 00000000 00000001 00000000 00000000 00000000 00000000 80000000 00000000 c0ced4da 4bfe2786 e58b4d79 9ea767d6
+ars4x32 7 00000000 00000100 00000000 00000000 00000000 00000000 80000000 00000000 b269706c 863d4f06 ad7e7fe2 88b07128
+ars4x32 7 00000000 00010000 00000000 00000000 00000000 00000000 80000000 00000000 e573ef41 430faffa eade00c4 20f0b1ba
+ars4x32 7 00000000 01000000 00000000 00000000 00000000 00000000 80000000 00000000 7cd777be 5053dd9f 30ef6a67 6b51d8f7
+ars4x32 7 00000000 00000000 00000001 00000000 00000000 00000000 80000000 00000000 ec045802 370393e6 bd882103 588ed4f1
+ars4x32 7 00000000 00000000 00000100 00000000 00000000 00000000 80000000 00000000 9898896b 1b9b3011 cec1c90c b3bff953
+ars4x32 7 00000000 00000000 00010000 00000000 00000000 00000000 80000000 00000000 832d4f7a c2bcc9d3 2c59d87a 8fe2f8ab
+ars4x32 7 00000000 00000000 01000000 00000000 00000000 00000000 80000000 00000000 8a3070a6 896d5802 6b3c1d19 ed1d2810
+ars4x32 7 00000000 00000000 00000000 00000001 00000000 00000000 80000000 00000000 bc69ab5b 32405fbd 5c43ac3c 2371b526
+ars4x32 7 00000000 00000000 00000000 00000100 00000000 00000000 80000000 00000000 71ec9436 4fa0ee91 46b32565 9553dc6c
+ars4x32 7 00000000 00000000 00000000 00010000 00000000 00000000 80000000 00000000 9fbc1872 75a39026 810ad2d0 2c8601a6
+ars4x32 7 00000000 00000000 00000000 01000000 00000000 00000000 80000000 00000000 97cb2996 bf8fd265 82cea626 3347e64b
+ars4x32 7 0000ff00 00000000 00000000 00000000 00000000 00000000 80000000 00000000 4af192d3 a36695a6 a17916fd ab5b1252
+ars4x32 7 00008000 00000000 00000000 00000000 00000000 00000000 80000000 00000000 3e10a586 c183603d 5583b06c 430f5fcd
+ars4x32 7 00ff0000 00000000 00000000 00000000 00000000 00000000 80000000 00000000 05d060a5 85e09077 5489df86 a37daedc
+ars4x32 7 00800000 00000000 00000000 00000000 00000000 00000000 80000000 00000000 9a5142d6 a7d70911 9a87b352 4e1a8f77
+ars4x32 7 ff000000 00000000 00000000 00000000 00000000 00000000 80000000 00000000 7e6a1959 a16d3e5e 3bf24b06 b503c1f8
+ars4x32 7 80000000 00000000 00000000 00000000 00000000 00000000 80000000 00000000 7aba07a8 1ed6fb0d 5f51e882 3495d0e3
+ars4x32 7 00000000 000000ff 00000000 00000000 00000000 00000000 80000000 00000000 0add6979 17a72877 ce5565e8 41a226ff
+ars4x32 7 00000000 00000080 00000000 00000000 00000000 00000000 80000000 00000000 043fe565 b0e380bb a6a88d46 c7219ae4
+ars4x32 7 00000000 0000ff00 00000000 00000000 00000000 00000000 80000000 00000000 6c7c39b8 a33a2a55 e0e820f6 cc322707
+ars4x32 7 00000000 00008000 00000000 00000000 00000000 00000000 80000000 00000000 eecc5f3f 40870c09 cd3ad7c3 4b1604be
+ars4x32 7 00000000 00ff0000 00000000 00000000 00000000 00000000 80000000 00000000 6bc74f4b 6c57bbeb e8cb7079 2d461a71
+ars4x32 7 00000000 00800000 00000000 00000000 00000000 00000000 80000000 00000000 2a846853 f7fca57a 1252cfd2 f4ee435a
+ars4x32 7 00000000 ff000000 00000000 00000000 00000000 00000000 80000000 00000000 af9b5771 27e2c1f0 262d0f5a a11f9c95
+ars4x32 7 00000000 80000000 00000000 00000000 00000000 00000000 80000000 00000000 312670de 6f0f7254 08254bde 3b9bf3bd
+ars4x32 7 00000000 00000000 000000ff 00000000 00000000 00000000 80000000 00000000 91f3c2f1 51a51b64 f8db3bad 84658c4a
+ars4x32 7 00000000 00000000 00000080 00000000 00000000 00000000 80000000 00000000 3622195e 3afeaff4 e68cfc47 7f0e392d
+ars4x32 7 00000000 00000000 0000ff00 00000000 00000000 00000000 80000000 00000000 e404d0de 0dad63df 1d86d0bf 5f84995c
+ars4x32 7 00000000 00000000 00008000 00000000 00000000 00000000 80000000 00000000 1f101c49 a193a793 f59bae29 f4022bb1
+ars4x32 7 00000000 00000000 00ff0000 00000000 00000000 00000000 80000000 00000000 939a5317 65f86e1e a510f31d 89b18ee5
+ars4x32 7 00000000 00000000 00800000 00000000 00000000 00000000 80000000 00000000 cbf83da1 ddd26b7a c2b08e12 2f259f99
+ars4x32 7 00000000 00000000 ff000000 00000000 00000000 00000000 80000000 00000000 bb8a595b c4b6ebc9 c15f8037 ae5ae08c
+ars4x32 7 00000000 00000000 80000000 00000000 00000000 00000000 80000000 00000000 a7a3f1d9 a4e83df6 c164329a 26887914
+ars4x32 7 00000000 00000000 00000000 000000ff 00000000 00000000 80000000 00000000 a43219d2 70e406ee 648a62ff d27bdf0c
+ars4x32 7 00000000 00000000 00000000 00000080 00000000 00000000 80000000 00000000 fcc32a22 78ea12c6 4c617906 99e5c9ef
+ars4x32 7 00000000 00000000 00000000 0000ff00 00000000 00000000 80000000 00000000 0b1f00f6 084d9447 534f7cc0 ee2599c1
+ars4x32 7 00000000 00000000 00000000 00008000 00000000 00000000 80000000 00000000 2278d6c7 7d598017 a5a8495d 082fd290
+ars4x32 7 00000000 00000000 00000000 00ff0000 00000000 00000000 80000000 00000000 03468145 4b44a835 3faca49e 1d1cefff
+ars4x32 7 00000000 00000000 00000000 00800000 00000000 00000000 80000000 00000000 4d2c2ff9 87ba11be fd422373 ebd9ed6e
+ars4x32 7 00000000 00000000 00000000 ff000000 00000000 00000000 80000000 00000000 612aa9c0 f9507178 c7988e66 33be6059
+ars4x32 7 00000000 00000000 00000000 80000000 00000000 00000000 80000000 00000000 ee635721 f0227c18 019f491f f1f72229
+ars4x32 7 886a3f24 d308a385 2e8a1913 44737003 00000000 00000000 80000000 00000000 77c8a6b3 63296dcf c2bc8b57 a12bf8e8
+ars4x32 7 223809a4 d0319f29 98fa2e08 896c4eec 00000000 00000000 80000000 00000000 4402a2a9 7dcd34d4 722f7f82 203961ac
+ars4x32 7 e6212845 7713d038 cf6654be 6c0ce934 00000000 00000000 80000000 00000000 40b825de a60b3b62 f4ebf400 0e825cbf
+ars4x32 7 00000001 00000000 00000000 00000000 00000000 00000000 00000000 000000ff ba205fb6 7571108e 39bb44a8 08d8418f
+ars4x32 7 00000100 00000000 00000000 00000000 00000000 00000000 00000000 000000ff 9bd98154 0c5fd6a0 2a17f791 379c7568
+ars4x32 7 00010000 00000000 00000000 00000000 00000000 00000000 00000000 000000ff 21db62f4 126704f7 9e258258 58d5afdd
+ars4x32 7 01000000 00000000 00000000 00000000 00000000 00000000 00000000 000000ff 3ac130a1 94e59f22 1e98e881 70e56970
+ars4x32 7 00000000 00000001 00000000 00000000 00000000 00000000 00000000 000000ff 3fc93b6e 03ce6242 08b7885e 2d82bbaf
+ars4x32 7 00000000 00000100 00000000 00000000 00000000 00000000 00000000 000000ff ac5a404c 9a57bacd 9c8a2152 c1505349
+ars4x32 7 00000000 00010000 00000000 00000000 00000000 00000000 00000000 000000ff cdcd83a2 c711fdbe e51645e5 7e6d046d
+ars4x32 7 00000000 01000000 00000000 00000000 00000000 00000000 00000000 000000ff 4373d67c 358d830c 3fa8027d 757dcfcf
+ars4x32 7 00000000 00000000 00000001 00000000 00000000 00000000 00000000 000000ff 68020c55 7a9d35a0 017e4ddd f9ae6d97
+ars4x32 7 00000000 00000000 00000100 00000000 00000000 00000000 00000000 000000ff 6f360904 5653e7d9 21fd3780 45370e1c
+ars4x32 7 00000000 00000000 00010000 00000000 00000000 00000000 00000000 000000ff 3eab9707 15013d52 aabe0047 d7fb53a6
+ars4x32 7 00000000 00000000 01000000 00000000 00000000 00000000 00000000 000000ff 942aec32 3e14b6f5 fcea7f43 bc089bcc
+ars4x32 7 00000000 00000000 00000000 00000001 00000000 00000000 00000000 000000ff c255d1e3 eb8b8360 1265d817 8469d77a
+ars4x32 7 00000000 00000000 00000000 00000100 00000000 00000000 00000000 000000ff 1ca7f47f 54b6924e ccd09f94 ca3b2c0e
+ars4x32 7 00000000 00000000 00000000 00010000 00000000 00000000 00000000 000000ff 86a52cca a8987a42 bed185ee c8eb8d7a
+ars4x32 7 00000000 00000000 00000000 01000000 00000000 00000000 00000000 000000ff 6200e914 68f0cf97 88381a0d 305d9e6c
+ars4x32 7 0000ff00 00000000 00000000 00000000 00000000 00000000 00000000 000000ff b34e6fd8 fda920d7 eab62664 afc9526a
+ars4x32 7 00008000 00000000 00000000 00000000 00000000 00000000 00000000 000000ff 0d281301 5fe3c5d1 0ca70fe0 642e27d1
+ars4x32 7 00ff0000 00000000 00000000 00000000 00000000 00000000 00000000 000000ff 8b83e9c8 fcf79329 e8136b62 445ee56a
+ars4x32 7 00800000 00000000 00000000 00000000 00000000 00000000 00000000 000000ff dd404bcf db24fc5e ff00b775 dd297bf3
+ars4x32 7 ff000000 00000000 00000000 00000000 00000000 00000000 00000000 000000ff dcca8760 ce686599 fecaac4d 3d6f484e
+ars4x32 7 80000000 00000000 00000000 00000000 00000000 00000000 00000000 000000ff f1e30f8c 242c8379 6b2cbbbe a34dd198
+ars4x32 7 00000000 000000ff 00000000 00000000 00000000 00000000 00000000 000000ff 0cc917eb 0f5fa1ac 12e47540 cd0f31e6
+ars4x32 7 00000000 00000080 00000000 00000000 00000000 00000000 00000000 000000ff d917750a 8e3e533d a980b398 9a701daa
+ars4x32 7 00000000 0000ff00 00000000 00000000 00000000 00000000 00000000 000000ff 0a0abe59 10a96176 2c6f1819 6f955e80
+ars4x32 7 00000000 00008000 00000000 00000000 00000000 00000000 00000000 000000ff fb553ded 772c96f6 c9e98f69 f6215dc7
+ars4x32 7 00000000 00ff0000 00000000 00000000 00000000 00000000 00000000 000000ff 9d279f8c 001a6b16 a9d2b14d 6b312d90
+ars4x32 7 00000000 00800000 00000000 00000000 00000000 00000000 00000000 000000ff 94068fe0 5d3a1770 5a5d122a 2e461232
+ars4x32 7 00000000 ff000000 00000000 00000000 00000000 00000000 00000000 000000ff 699fa8ee 285405cf 0fe6a66f c6afc4d3
+ars4x32 7 00000000 80000000 00000000 00000000 00000000 00000000 00000000 000000ff 6f905c6c ff97a60d 67329e05 c06eef7e
+ars4x32 7 00000000 00000000 000000ff 00000000 00000000 00000000 00000000 000000ff 4d92bc50 44607f7c ce770b42 2b897df0
+ars4x32 7 00000000 00000000 00000080 00000000 00000000 00000000 00000000 000000ff 978f1fbc 9e462394 ef68d931 03fff47c
+ars4x32 7 00000000 00000000 0000ff00 00000000 00000000 00000000 00000000 000000ff 114a0d56 50016f2a 9ffd7388 be9ffa0c
+ars4x32 7 00000000 00000000 00008000 00000000 00000000 00000000 00000000 000000ff 2749f402 a64b9a01 c35cce05 7d891479
+ars4x32 7 00000000 00000000 00ff0000 00000000 00000000 00000000 00000000 000000ff 7d35638a 597e663d 9606347b c5c56adb
+ars4x32 7 00000000 00000000 00800000 00000000 00000000 00000000 00000000 000000ff be8ab74f d910586f 3bb3029b 679bfe1c
+ars4x32 7 00000000 00000000 ff000000 00000000 00000000 00000000 00000000 000000ff e5fd023d 40ba82d5 b74e4200 2b3019af
+ars4x32 7 00000000 00000000 80000000 00000000 00000000 00000000 00000000 000000ff 5cf9b98a 11a7d7f4 59df98d0 7821aae9
+ars4x32 7 00000000 00000000 00000000 000000ff 00000000 00000000 00000000 000000ff 2890decf 9d58b59f f578c4cd d37a5621
+ars4x32 7 00000000 00000000 00000000 00000080 00000000 00000000 00000000 000000ff e5b5d0ec 0bcddc55 e3ce4717 834d42ec
+ars4x32 7 00000000 00000000 00000000 0000ff00 00000000 00000000 00000000 000000ff be40ed1c d3fa06b4 5e129830 006d89f6
+ars4x32 7 00000000 00000000 00000000 00008000 00000000 00000000 00000000 000000ff 987c84ed ed1f21f3 44ffe815 a2408672
+ars4x32 7 00000000 00000000 00000000 00ff0000 00000000 00000000 00000000 000000ff 9ba6d879 10e6e4f8 06ed8aa5 0145877d
+ars4x32 7 00000000 00000000 00000000 00800000 00000000 00000000 00000000 000000ff 8d10aaec e645e3ba 3f04218d 40f8b67d
+ars4x32 7 00000000 00000000 00000000 ff000000 00000000 00000000 00000000 000000ff b0659c9c 0740e25f 2c151c73 eb08059e
+ars4x32 7 00000000 00000000 00000000 80000000 00000000 00000000 00000000 000000ff 2599afaa 47af114f b715953d f14f0d62
+ars4x32 7 886a3f24 d308a385 2e8a1913 44737003 00000000 00000000 00000000 000000ff 09a2917c 81643036 7d18cdaf b286a87c
+ars4x32 7 223809a4 d0319f29 98fa2e08 896c4eec 00000000 00000000 00000000 000000ff 5a7e2699 3219d6af 8ffb64e6 20049567
+ars4x32 7 e6212845 7713d038 cf6654be 6c0ce934 00000000 00000000 00000000 000000ff af08af74 e8fbf59c 8a5af092 f94136c8
+ars4x32 7 00000001 00000000 00000000 00000000 00000000 00000000 00000000 00000080 b6c8a390 d1017b49 945a30e4 bbb12e77
+ars4x32 7 00000100 00000000 00000000 00000000 00000000 00000000 00000000 00000080 dbf38ffe 7cffafd6 f46b1b64 2030119e
+ars4x32 7 00010000 00000000 00000000 00000000 00000000 00000000 00000000 00000080 ec40611c 9922b2f1 aba0ca77 68704af0
+ars4x32 7 01000000 00000000 00000000 00000000 00000000 00000000 00000000 00000080 191a0257 5b89af7c b4a0842a 671a25b5
+ars4x32 7 00000000 00000001 00000000 00000000 00000000 00000000 00000000 00000080 0adeb3e8 6bf36c1f 8d34bead a28eb9c1
+ars4x32 7 00000000 00000100 00000000 00000000 00000000 00000000 00000000 00000080 e41a2df7 a59eaf3c a2facbfa b4578cd2
+ars4x32 7 00000000 00010000 00000000 00000000 00000000 00000000 00000000 00000080 8fbc7d6b 62769b02 06fddf59 98fd67ce
+ars4x32 7 00000000 01000000 00000000 00000000 00000000 00000000 00000000 00000080 4c206362 ae612042 30bb1ea0 60367f6e
+ars4x32 7 00000000 00000000 00000001 00000000 00000000 00000000 00000000 00000080 af37d525 13a44d70 3c481d0a 18eec0b2
+ars4x32 7 00000000 00000000 00000100 00000000 00000000 00000000 00000000 00000080 2faea34b 4bac3b7b c17ebace e97fb330
+ars4x32 7 00000000 00000000 00010000 00000000 00000000 00000000 00000000 00000080 369fdfe3 04081de3 fc1adc6d 9ee43625
+ars4x32 7 00000000 00000000 01000000 00000000 00000000 00000000 00000000 00000080 c3e039b3 0e50d67e 02dc6318 cf160f8a
+ars4x32 7 00000000 00000000 00000000 00000001 00000000 00000000 00000000 00000080 63df5831 b78e3874 cf3deccc ac763012
+ars4x32 7 00000000 00000000 00000000 00000100 00000000 00000000 00000000 00000080 87d8f297 8636d3c7 0c81a629 71217d68
+ars4x32 7 00000000 00000000 00000000 00010000 00000000 00000000 00000000 00000080 d01601cc 416a8b81 c03f0d12 04568b8a
+ars4x32 7 00000000 00000000 00000000 01000000 00000000 00000000 00000000 00000080 e126b7db dd192c78 76d98e1e 3e3acb44
+ars4x32 7 0000ff00 00000000 00000000 00000000 00000000 00000000 00000000 00000080 0385df57 5fe0a1f0 f7db7de5 cab598f7
+ars4x32 7 00008000 00000000 00000000 00000000 00000000 00000000 00000000 00000080 ea2cddaf a12525bf 59cc4e5d 46fc7628
+ars4x32 7 00ff0000 00000000 00000000 00000000 00000000 00000000 00000000 00000080 ac8a8993 2627d7da 785a4410 43d6ca35
+ars4x32 7 00800000 00000000 00000000 00000000 00000000 00000000 00000000 00000080 ed74b91e 4cd838ed 8da65f2a f45836af
+ars4x32 7 ff000000 00000000 00000000 00000000 00000000 00000000 00000000 00000080 1220ecfd 9d90e56f 3bdb3e66 a13d3459
+ars4x32 7 80000000 00000000 00000000 00000000 00000000 00000000 00000000 00000080 9ac247b3 c0fbe2ee 29a5ce96 6223e7a6
+ars4x32 7 00000000 000000ff 00000000 00000000 00000000 00000000 00000000 00000080 07f38992 431f289c bf3d0f90 bb31139d
+ars4x32 7 00000000 00000080 00000000 00000000 00000000 00000000 00000000 00000080 3e87e158 4421f5c2 3bd07c3b e078c6ff
+ars4x32 7 00000000 0000ff00 00000000 00000000 00000000 00000000 00000000 00000080 40ff4b3d 972e40f7 a3de98f2 629c220d
+ars4x32 7 00000000 00008000 00000000 00000000 00000000 00000000 00000000 00000080 e049bd76 b882e323 5f203d0c 44406976
+ars4x32 7 00000000 00ff0000 00000000 00000000 00000000 00000000 00000000 00000080 56f35880 8268e2c8 ee9ea2b2 bb013349
+ars4x32 7 00000000 00800000 00000000 00000000 00000000 00000000 00000000 00000080 67381f8b 45d26557 63f30265 07d94652
+ars4x32 7 00000000 ff000000 00000000 00000000 00000000 00000000 00000000 00000080 03dc8465 59a93630 6e37c101 342ba48e
+ars4x32 7 00000000 80000000 00000000 00000000 00000000 00000000 00000000 00000080 4badda42 e5745abd b2a4c569 59932f35
+ars4x32 7 00000000 00000000 000000ff 00000000 00000000 00000000 00000000 00000080 05c369b7 c16d6c0a 00a61636 d6f16971
+ars4x32 7 00000000 00000000 00000080 00000000 00000000 00000000 00000000 00000080 5cfb1283 5456a613 132d7ad7 f5f6fc33
+ars4x32 7 00000000 00000000 0000ff00 00000000 00000000 00000000 00000000 00000080 6d70be70 68f1c773 7aef97a8 cf2afd9f
+ars4x32 7 00000000 00000000 00008000 00000000 00000000 00000000 00000000 00000080 e72b5845 3b1ad9b1 cccb8327 e974936b
+ars4x32 7 00000000 00000000 00ff0000 00000000 00000000 00000000 00000000 00000080 40f06d8d 8daeaf90 a12a9bb5 1ddb0188
+ars4x32 7 00000000 00000000 00800000 00000000 00000000 00000000 00000000 00000080 e6c63d22 b909283f 350817aa 8a241aaa
+ars4x32 7 00000000 00000000 ff000000 00000000 00000000 00000000 00000000 00000080 2b0ff10c 407f999d 0f4a0bd2 6f2aa50a
+ars4x32 7 00000000 00000000 80000000 00000000 00000000 00000000 00000000 00000080 269160c8 4ca320e4 8ac10c3e f61ea009
+ars4x32 7 00000000 00000000 00000000 000000ff 00000000 00000000 00000000 00000080 29cef2f0 ab096ca5 06153c58 b293312b
+ars4x32 7 00000000 00000000 00000000 00000080 00000000 00000000 00000000 00000080 9df9fa8c 48bc1a69 b4e05ade 10626ed7
+ars4x32 7 00000000 00000000 00000000 0000ff00 00000000 00000000 00000000 00000080 3740739f b4c2803f 4c664624 a9556783
+ars4x32 7 00000000 00000000 00000000 00008000 00000000 00000000 00000000 00000080 6c112d9a 0bcabebe 4fc7cb1e 4b24f856
+ars4x32 7 00000000 00000000 00000000 00ff0000 00000000 00000000 00000000 00000080 28a20ce7 0ae113bf 7ef2db5c 3bee6c8e
+ars4x32 7 00000000 00000000 00000000 00800000 00000000 00000000 00000000 00000080 f086532a 016327da e2b39dbc 23c9c84c
+ars4x32 7 00000000 00000000 00000000 ff000000 00000000 00000000 00000000 00000080 df2a6747 c64b2d09 4e76212b b34591f7
+ars4x32 7 00000000 00000000 00000000 80000000 00000000 00000000 00000000 00000080 999f7488 e79031e6 b2121bc1 647ac92d
+ars4x32 7 886a3f24 d308a385 2e8a1913 44737003 00000000 00000000 00000000 00000080 0bcf9f8a d3f78a00 bef7f10a 0aba298c
+ars4x32 7 223809a4 d0319f29 98fa2e08 896c4eec 00000000 00000000 00000000 00000080 dd2efffc 78da53fb 29b853c8 7f2df440
+ars4x32 7 e6212845 7713d038 cf6654be 6c0ce934 00000000 00000000 00000000 00000080 7220bc39 b7230651 3e17b7e5 c35375b7
+ars4x32 7 00000001 00000000 00000000 00000000 00000000 00000000 00000000 0000ff00 e6969724 ea77117b f4472835 e1782eb7
+ars4x32 7 00000100 00000000 00000000 00000000 00000000 00000000 00000000 0000ff00 bc137850 6915f2cf fcbc8fa0 a9556b09
+ars4x32 7 00010000 00000000 00000000 00000000 00000000 00000000 00000000 0000ff00 3b768400 b96371bb 1cbcf1fe 9d198b9d
+ars4x32 7 01000000 00000000 00000000 00000000 00000000 00000000 00000000 0000ff00 e4a78c1d 06042e7c a7233197 93970572
+ars4x32 7 00000000 00000001 00000000 00000000 00000000 00000000 00000000 0000ff00 3f5109bb 5103e99d 8cf85d2f 3291b05b
+ars4x32 7 00000000 00000100 00000000 00000000 00000000 00000000 00000000 0000ff00 3360830e 30fe7c80 f7043c06 2f8250da
+ars4x32 7 00000000 00010000 00000000 00000000 00000000 00000000 00000000 0000ff00 d6640367 4d4347de 19a7ec43 53304d04
+ars4x32 7 00000000 01000000 00000000 00000000 00000000 00000000 00000000 0000ff00 a3fa134f 78844f3b c53e40e9 01419be7
+ars4x32 7 00000000 00000000 00000001 00000000 00000000 00000000 00000000 0000ff00 63d3090e 98efe3c0 28db8c72 6e8a6e3d
+ars4x32 7 00000000 00000000 00000100 00000000 00000000 00000000 00000000 0000ff00 4c2b8318 3eb8c5c0 531b38cc 227aed96
+ars4x32 7 00000000 00000000 00010000 00000000 00000000 00000000 00000000 0000ff00 d96a78ed ec8ad8e5 a172bc36 137384d8
+ars4x32 7 00000000 00000000 01000000 00000000 00000000 00000000 00000000 0000ff00 d82dd886 384813c6 e7b1285e f2a0660a
+ars4x32 7 00000000 00000000 00000000 00000001 00000000 00000000 00000000 0000ff00 6a04b8b3 2ff1e2c1 c46517e7 d667347a
+ars4x32 7 00000000 00000000 00000000 00000100 00000000 00000000 00000000 0000ff00 9eb3eb63 4308fef5 d5a79ab6 9ff96e30
+ars4x32 7 00000000 00000000 00000000 00010000 00000000 00000000 00000000 0000ff00 3131e370 625a7960 b954d783 8d5e1ceb
+ars4x32 7 00000000 00000000 00000000 01000000 00000000 00000000 00000000 0000ff00 baceb239 b276bc17 2bfdace4 75108304
+ars4x32 7 0000ff00 00000000 00000000 00000000 00000000 00000000 00000000 0000ff00 60007544 26b8e375 0070ef6d 43f7f0cb
+ars4x32 7 00008000 00000000 00000000 00000000 00000000 00000000 00000000 0000ff00 7be23e1e 5747dc9f 8379d38d 2bab83ee
+ars4x32 7 00ff0000 00000000 00000000 00000000 00000000 00000000 00000000 0000ff00 ee5d036d d2d90edd 34834765 9f53affd
+ars4x32 7 00800000 00000000 00000000 00000000 00000000 00000000 00000000 0000ff00 6b57dc82 37fc10ee feff9c27 85dd9d70
+ars4x32 7 ff000000 00000000 00000000 00000000 00000000 00000000 00000000 0000ff00 d0b60125 12434c5e 3a1cca46 ade79259
+ars4x32 7 80000000 00000000 00000000 00000000 00000000 00000000 00000000 0000ff00 ded42a73 ee5dd93d b36d7933 89ac2906
+ars4x32 7 00000000 000000ff 00000000 00000000 00000000 00000000 00000000 0000ff00 dda978d0 e516497f 14385f40 606063cc
+ars4x32 7 00000000 00000080 00000000 00000000 00000000 00000000 00000000 0000ff00 25ad5b4c 0707cee6 c3c95f35 504c730c
+ars4x32 7 00000000 0000ff00 00000000 00000000 00000000 00000000 00000000 0000ff00 cf90e7c3 e8b160f9 5741b506 094c31c1
+ars4x32 7 00000000 00008000 00000000 00000000 00000000 00000000 00000000 0000ff00 e67e5fa4 949d5d9d 40aea83f b9346f56
+ars4x32 7 00000000 00ff0000 00000000 00000000 00000000 00000000 00000000 0000ff00 d93b9673 e8062095 ec216f51 1831cef6
+ars4x32 7 00000000 00800000 00000000 00000000 00000000 00000000 00000000 0000ff00 635c096f e2e438c0 d1b8d51e 8d7e2503
+ars4x32 7 00000000 ff000000 00000000 00000000 00000000 00000000 00000000 0000ff00 b114c194 5625692d 0bb23f33 7304011d
+ars4x32 7 00000000 80000000 00000000 00000000 00000000 00000000 00000000 0000ff00 fb3747a3 ef52cd47 69d89179 09a108c6
+ars4x32 7 00000000 00000000 000000ff 00000000 00000000 00000000 00000000 0000ff00 e64edb80 829bc7a0 268d1a02 e54c9e71
+ars4x32 7 00000000 00000000 00000080 00000000 00000000 00000000 00000000 0000ff00 f18f31b9 2f5ef9e2 e109bb9a 78555284
+ars4x32 7 00000000 00000000 0000ff00 00000000 00000000 00000000 00000000 0000ff00 7630b865 80dfb883 bfb250a2 3748e0a7
+ars4x32 7 00000000 00000000 00008000 00000000 00000000 00000000 00000000 0000ff00 f44eaf8e 2ece190f 1daa5830 47a38a4c
+ars4x32 7 00000000 00000000 00ff0000 00000000 00000000 00000000 00000000 0000ff00 3223ebb4 bffcb90d 4c12a456 bc506ea4
+ars4x32 7 00000000 00000000 00800000 00000000 00000000 00000000 00000000 0000ff00 1fcd3b82 b9afc082 3aa0e466 7637c0aa
+ars4x32 7 00000000 00000000 ff000000 00000000 00000000 00000000 00000000 0000ff00 cf12ceb9 0bb5cbcc 9da02550 d63999b0
+ars4x32 7 00000000 00000000 80000000 00000000 00000000 00000000 00000000 0000ff00 e1daa0ef 79f0f80f 9c9ecc32 dc20c432
+ars4x32 7 00000000 00000000 00000000 000000ff 00000000 00000000 00000000 0000ff00 ec8858fa 42e6894b d8fe0a5f 8a0a07c9
+ars4x32 7 00000000 00000000 00000000 00000080 00000000 00000000 00000000 0000ff00 49072a40 c08d2519 c6055bc6 92577eda
+ars4x32 7 00000000 00000000 00000000 0000ff00 00000000 00000000 00000000 0000ff00 342325fa d8f20b40 c2c3aac5 65147f0a
+ars4x32 7 00000000 00000000 00000000 00008000 00000000 00000000 00000000 0000ff00 264b735c 0e1b4cf1 11ccbc18 450c7f7c
+ars4x32 7 00000000 00000000 00000000 00ff0000 00000000 00000000 00000000 0000ff00 b9cd79c9 9a7ac672 ed3787f9 806bd94f
+ars4x32 7 00000000 00000000 00000000 00800000 00000000 00000000 00000000 0000ff00 6c35f272 6f1aa932 1f3365b0 b7bd24b7
+ars4x32 7 00000000 00000000 00000000 ff000000 00000000 00000000 00000000 0000ff00 cc68caf4 3a97ae1e 793c3f5c 3322417e
+ars4x32 7 00000000 00000000 00000000 80000000 00000000 00000000 00000000 0000ff00 9b90b178 512785d3 d370ddac eb79ee42
+ars4x32 7 886a3f24 d308a385 2e8a1913 44737003 00000000 00000000 00000000 0000ff00 6efe6875 3010187d ca52b0ef 74716ff0
+ars4x32 7 223809a4 d0319f29 98fa2e08 896c4eec 00000000 00000000 00000000 0000ff00 b82755f4 19593fe3 cff17ba6 7dac57d4
+ars4x32 7 e6212845 7713d038 cf6654be 6c0ce934 00000000 00000000 00000000 0000ff00 4209f0a9 cae24b27 5a798a39 b321e924
+ars4x32 7 00000001 00000000 00000000 00000000 00000000 00000000 00000000 00008000 9999d86f d5b04c49 99aa4d6a 5249f1b5
+ars4x32 7 00000100 00000000 00000000 00000000 00000000 00000000 00000000 00008000 3a96ddf4 b8ffbf68 c54fa232 e2fd3c77
+ars4x32 7 00010000 00000000 00000000 00000000 00000000 00000000 00000000 00008000 8c8b3ecf f03e1940 4292f136 50f58c35
+ars4x32 7 01000000 00000000 00000000 00000000 00000000 00000000 00000000 00008000 b577e787 f046cfab b157f5a5 befeb264
+ars4x32 7 00000000 00000001 00000000 00000000 00000000 00000000 00000000 00008000 28173c64 98a8e68a ccfbb49d 3db3e06d
+ars4x32 7 00000000 00000100 00000000 00000000 00000000 00000000 00000000 00008000 ade69c8c 2ba7642c 7b75f40f 6573d916
+ars4x32 7 00000000 00010000 00000000 00000000 00000000 00000000 00000000 00008000 33a8fa63 1b348950 10636d86 c02c1cae
+ars4x32 7 00000000 01000000 00000000 00000000 00000000 00000000 00000000 00008000 95ee84ad c3b4c302 b1fa0d5b 39219c4a
+ars4x32 7 00000000 00000000 00000001 00000000 00000000 00000000 00000000 00008000 9c12f262 05966d6f 6d8e0df8 128090d8
+ars4x32 7 00000000 00000000 00000100 00000000 00000000 00000000 00000000 00008000 1d93efae f470bb64 a078b87f 83aab9dd
+ars4x32 7 00000000 00000000 00010000 00000000 00000000 00000000 00000000 00008000 9b5f3253 8b89bc76 66846275 dc68047e
+ars4x32 7 00000000 00000000 01000000 00000000 00000000 00000000 00000000 00008000 0f086cab 81843faf d23d7fab 7f996bfb
+ars4x32 7 00000000 00000000 00000000 00000001 00000000 00000000 00000000 00008000 192f9388 d7392088 2f521dfa e05def2e
+ars4x32 7 00000000 00000000 00000000 00000100 00000000 00000000 00000000 00008000 c8338a4b c1074f84 c74ea356 bbe7b2d7
+ars4x32 7 00000000 00000000 00000000 00010000 00000000 00000000 00000000 00008000 f3f22a4b 40cb0754 3fec10b0 e978eb1c
+ars4x32 7 00000000 00000000 00000000 01000000 00000000 00000000 00000000 00008000 f07ff368 adebb743 f9e19a5a 4268be87
+ars4x32 7 0000ff00 00000000 00000000 00000000 00000000 00000000 00000000 00008000 bbf5ac6e 06f970cf 80e2593b 4da13148
+ars4x32 7 00008000 00000000 00000000 00000000 00000000 00000000 00000000 00008000 652ba9c3 d7f3d5eb d6c46af1 5992e908
+ars4x32 7 00ff0000 00000000 00000000 00000000 00000000 00000000 00000000 00008000 e513bb9f 4e5eecdf ad9cf572 1d2e049b
+ars4x32 7 00800000 00000000 00000000 00000000 00000000 00000000 00000000 00008000 6f7e7212 aaeda863 d328b6fc 7b6d3808
+ars4x32 7 ff000000 00000000 00000000 00000000 00000000 00000000 00000000 00008000 dbe5393c 8e2034b9 b585639a 56e5aabd
+ars4x32 7 80000000 00000000 00000000 00000000 00000000 00000000 00000000 00008000 1d5bbd63 e15c015f 3fd66f0e e9c21cfa
+ars4x32 7 00000000 000000ff 00000000 00000000 00000000 00000000 00000000 00008000 d037c45a e1a6efd0 f3aa3b71 ba68c5c0
+ars4x32 7 00000000 00000080 00000000 00000000 00000000 00000000 00000000 00008000 1a351deb e6921918 b4a8e59a b2b5c926
+ars4x32 7 00000000 0000ff00 00000000 00000000 00000000 00000000 00000000 00008000 182749dc a3c6ebe5 2442f308 a7839bae
+ars4x32 7 00000000 00008000 00000000 00000000 00000000 00000000 00000000 00008000 ddfbbbd4 7d8da7b4 728edfba d30be2f4
+ars4x32 7 00000000 00ff0000 00000000 00000000 00000000 00000000 00000000 00008000 56558acf 3e41130b e42e7286 4b6a3b50
+ars4x32 7 00000000 00800000 00000000 00000000 00000000 00000000 00000000 00008000 ecb9fcb1 88476795 6f82c630 2118c855
+ars4x32 7 00000000 ff000000 00000000 00000000 00000000 00000000 00000000 00008000 8467b6b3 e419570c b96ebe38 fbc8f905
+ars4x32 7 00000000 80000000 00000000 00000000 00000000 00000000 00000000 00008000 78fe5b75 b3b35322 e4e0ea23 14f78048
+ars4x32 7 00000000 00000000 000000ff 00000000 00000000 00000000 00000000 00008000 1745da18 ceabb445 783908d9 26037384
+ars4x32 7 00000000 00000000 00000080 00000000 00000000 00000000 00000000 00008000 a0296cb7 9c833dc4 1e316b0f 0a7367b7
+ars4x32 7 00000000 00000000 0000ff00 00000000 00000000 00000000 00000000 00008000 8be3cbb9 7613179f 310e0ae0 237ed1ee
+ars4x32 7 00000000 00000000 00008000 00000000 00000000 00000000 00000000 00008000 8d42edbc 75bd79f1 c65cb7cd a4c875c7
+ars4x32 7 00000000 00000000 00ff0000 00000000 00000000 00000000 00000000 00008000 d23528d9 21e9b771 34d464aa c4ff2c8d
+ars4x32 7 00000000 00000000 00800000 00000000 00000000 00000000 00000000 00008000 64aa52e7 71c96867 981477d7 2f5c226d
+ars4x32 7 00000000 00000000 ff000000 00000000 00000000 00000000 00000000 00008000 19dbdbed 6b4bd3ef 3ca21d36 d9cf8641
+ars4x32 7 00000000 00000000 80000000 00000000 00000000 00000000 00000000 00008000 7014fdbd a49ab556 1a53f673 d7103a1d
+ars4x32 7 00000000 00000000 00000000 000000ff 00000000 00000000 00000000 00008000 cee680a7 56b7ba5b 83e4cf54 56880773
+ars4x32 7 00000000 00000000 00000000 00000080 00000000 00000000 00000000 00008000 8fe4e861 b51e152e 77d241a4 c3729436
+ars4x32 7 00000000 00000000 00000000 0000ff00 00000000 00000000 00000000 00008000 dac02c8e 04dc6e8c deedd4e3 79192afe
+ars4x32 7 00000000 00000000 00000000 00008000 00000000 00000000 00000000 00008000 3d700b73 ae21f5a9 199e8baf 26b3d711
+ars4x32 7 00000000 00000000 00000000 00ff0000 00000000 00000000 00000000 00008000 44892f95 bb2d1a02 a567e66f 38ea3760
+ars4x32 7 00000000 00000000 00000000 00800000 00000000 00000000 00000000 00008000 a8b94889 fd901188 54ab283c a0a59643
+ars4x32 7 00000000 00000000 00000000 ff000000 00000000 00000000 00000000 00008000 1d0f1f82 c12db848 0623c816 e001f107
+ars4x32 7 00000000 00000000 00000000 80000000 00000000 00000000 00000000 00008000 9c98f9fc 748f2908 0eaebb20 f2abb869
+ars4x32 7 886a3f24 d308a385 2e8a1913 44737003 00000000 00000000 00000000 00008000 173b5371 63012220 8bc6c1ca 5b052e37
+ars4x32 7 223809a4 d0319f29 98fa2e08 896c4eec 00000000 00000000 00000000 00008000 5e7e1980 d4f004e3 74e1dd35 06c63ed3
+ars4x32 7 e6212845 7713d038 cf6654be 6c0ce934 00000000 00000000 00000000 00008000 f8585f35 792755dd f3a1ad8d a0fbb9b5
+ars4x32 7 00000001 00000000 00000000 00000000 00000000 00000000 00000000 00ff0000 aec2d436 8450fa0e bd6c2af2 b2e2ea62
+ars4x32 7 00000100 00000000 00000000 00000000 00000000 00000000 00000000 00ff0000 de1716a9 d31542ec 420d8e5f 96edb01e
+ars4x32 7 00010000 00000000 00000000 00000000 00000000 00000000 00000000 00ff0000 8f8cb7f9 061b2e5b 13b57a41 3531eade
+ars4x32 7 01000000 00000000 00000000 00000000 00000000 00000000 00000000 00ff0000 976ae569 5eea786d 2c14232b ef1b689a
+ars4x32 7 00000000 00000001 00000000 00000000 00000000 00000000 00000000 00ff0000 75477164 f695da43 ba81e870 b89589a5
+ars4x32 7 00000000 00000100 00000000 00000000 00000000 00000000 00000000 00ff0000 e55ac2bb 27f6b140 807d1cf1 e78047d4
+ars4x32 7 00000000 00010000 00000000 00000000 00000000 00000000 00000000 00ff0000 ff50a010 b8120cf6 d64a591b df1e78fd
+ars4x32 7 00000000 01000000 00000000 00000000 00000000 00000000 00000000 00ff0000 438426a3 68fa62fc 86f9be7f 179cd401
+ars4x32 7 00000000 00000000 00000001 00000000 00000000 00000000 00000000 00ff0000 95768488 3cdda66d 04781755 5278e78c
+ars4x32 7 00000000 00000000 00000100 00000000 00000000 00000000 00000000 00ff0000 15f585da 1821534c 700462b2 2ac16577
+ars4x32 7 00000000 00000000 00010000 00000000 00000000 00000000 00000000 00ff0000 d13c83a3 92d5a62d 25493930 1bf3ed6a
+ars4x32 7 00000000 00000000 01000000 00000000 00000000 00000000 00000000 00ff0000 60ea84c1 3fff6f6e eb8d52f3 e792bda5
+ars4x32 7 00000000 00000000 00000000 00000001 00000000 00000000 00000000 00ff0000 e8298a66 060fd8bd 4aa82879 c82de151
+ars4x32 7 00000000 00000000 00000000 00000100 00000000 00000000 00000000 00ff0000 419be76a f046e526 2f7585b1 b1a46c03
+ars4x32 7 00000000 00000000 00000000 00010000 00000000 00000000 00000000 00ff0000 6d0e8d83 d96af6fc b360ff30 1f48847a
+ars4x32 7 00000000 00000000 00000000 01000000 00000000 00000000 00000000 00ff0000 13013969 07b3289f f60b3d21 a100b04a
+ars4x32 7 0000ff00 00000000 00000000 00000000 00000000 00000000 00000000 00ff0000 a5858e1f ce56b291 33486dcd ea078153
+ars4x32 7 00008000 00000000 00000000 00000000 00000000 00000000 00000000 00ff0000 f5d6bbfb e20a1bf1 e9d4c738 16d99eee
+ars4x32 7 00ff0000 00000000 00000000 00000000 00000000 00000000 00000000 00ff0000 47257887 2e330955 890cf6c8 0197d72d
+ars4x32 7 00800000 00000000 00000000 00000000 00000000 00000000 00000000 00ff0000 33afed53 723dba58 cf5c22bc 7774a1bf
+ars4x32 7 ff000000 00000000 00000000 00000000 00000000 00000000 00000000 00ff0000 2cd7020d 53397f2a dad07a2e 937c373e
+ars4x32 7 80000000 00000000 00000000 00000000 00000000 00000000 00000000 00ff0000 995409e1 124fa314 d0e81be9 c3bd5823
+ars4x32 7 00000000 000000ff 00000000 00000000 00000000 00000000 00000000 00ff0000 decaafb5 f2af7017 dffa6d3b 4084547b
+ars4x32 7 00000000 00000080 00000000 00000000 00000000 00000000 00000000 00ff0000 e33806e3 bbce22c4 065a8146 18f3e4fb
+ars4x32 7 00000000 0000ff00 00000000 00000000 00000000 00000000 00000000 00ff0000 5e78c26d 6c474b39 4f7bfaa6 547c5c7d
+ars4x32 7 00000000 00008000 00000000 00000000 00000000 00000000 00000000 00ff0000 775e72f9 ef6aa867 3cece2da d3e20ab4
+ars4x32 7 00000000 00ff0000 00000000 00000000 00000000 00000000 00000000 00ff0000 8f5ced18 67bd1184 3305c9d5 c123547e
+ars4x32 7 00000000 00800000 00000000 00000000 00000000 00000000 00000000 00ff0000 7e905e3f e11324ba 12df2ae1 116e1447
+ars4x32 7 00000000 ff000000 00000000 00000000 00000000 00000000 00000000 00ff0000 8e3de9cc 7db83f52 c8bdbbc3 a8209cb9
+ars4x32 7 00000000 80000000 00000000 00000000 00000000 00000000 00000000 00ff0000 06c95f5a a3442340 ff5d70b9 b0150951
+ars4x32 7 00000000 00000000 000000ff 00000000 00000000 00000000 00000000 00ff0000 fa64ffb8 5f6b7ea5 1a8940b8 c2d7a4e2
+ars4x32 7 00000000 00000000 00000080 00000000 00000000 00000000 00000000 00ff0000 39229535 557d82f9 4d1960af 8345401f
+ars4x32 7 00000000 00000000 0000ff00 00000000 00000000 00000000 00000000 00ff0000 c64c071e e9c00095 96cd2a0a 5377835d
+ars4x32 7 00000000 00000000 00008000 00000000 00000000 00000000 00000000 00ff0000 7bf81b02 3c39163a 084d0685 0caba919
+ars4x32 7 00000000 00000000 00ff0000 00000000 00000000 00000000 00000000 00ff0000 24ae41eb 689c1939 d454c719 5dcd1288
+ars4x32 7 00000000 00000000 00800000 00000000 00000000 00000000 00000000 00ff0000 c0bf8717 ba19ac1d cf744187 32d9e41e
+ars4x32 7 00000000 00000000 ff000000 00000000 00000000 00000000 00000000 00ff0000 c8230f78 eecd9fda 52e5791a dc794523
+ars4x32 7 00000000 00000000 80000000 00000000 00000000 00000000 00000000 00ff0000 6a193c9b a65600c4 2760c467 12ce3b0c
+ars4x32 7 00000000 00000000 00000000 000000ff 00000000 00000000 00000000 00ff0000 7f200e53 7201567c 9d6e2655 5566dc40
+ars4x32 7 00000000 00000000 00000000 00000080 00000000 00000000 00000000 00ff0000 2733749b 1244ae8f b003b6d6 0b6cdab0
+ars4x32 7 00000000 00000000 00000000 0000ff00 00000000 00000000 00000000 00ff0000 30926386 795206f4 b369f320 89fead5b
+ars4x32 7 00000000 00000000 00000000 00008000 00000000 00000000 00000000 00ff0000 a87b350a 95f4026c 91e2de67 2a2e63b9
+ars4x32 7 00000000 00000000 00000000 00ff0000 00000000 00000000 00000000 00ff0000 04b9d323 38328c93 5b618e1f db402a8c
+ars4x32 7 00000000 00000000 00000000 00800000 00000000 00000000 00000000 00ff0000 aa266846 6c7bbf03 803238d6 7261b5dc
+ars4x32 7 00000000 00000000 00000000 ff000000 00000000 00000000 00000000 00ff0000 af9dee32 ad0458bd 3afb0ba4 3e79dcb9
+ars4x32 7 00000000 00000000 00000000 80000000 00000000 00000000 00000000 00ff0000 34486962 3b6b724c 30ad6bb4 e12028a0
+ars4x32 7 886a3f24 d308a385 2e8a1913 44737003 00000000 00000000 00000000 00ff0000 98307f93 b7bd1a71 2cab55d1 d8fa0e74
+ars4x32 7 223809a4 d0319f29 98fa2e08 896c4eec 00000000 00000000 00000000 00ff0000 78402005 ed9ef8a7 0cedb596 0e90bc22
+ars4x32 7 e6212845 7713d038 cf6654be 6c0ce934 00000000 00000000 00000000 00ff0000 5744b07b 59adac28 18046647 10c93034
+ars4x32 7 00000001 00000000 00000000 00000000 00000000 00000000 00000000 00800000 913ceb51 38138c27 95ef225e cdb73cba
+ars4x32 7 00000100 00000000 00000000 00000000 00000000 00000000 00000000 00800000 2ffeb8f8 d40b8746 c307909a a28bce5b
+ars4x32 7 00010000 00000000 00000000 00000000 00000000 00000000 00000000 00800000 2fa64be7 0f3875aa f42872e6 2b2dd366
+ars4x32 7 01000000 00000000 00000000 00000000 00000000 00000000 00000000 00800000 86c842dc b9bbae51 41ce8725 beceb6e0
+ars4x32 7 00000000 00000001 00000000 00000000 00000000 00000000 00000000 00800000 9160bbfd 4e416ce0 4f552606 0411554a
+ars4x32 7 00000000 00000100 00000000 00000000 00000000 00000000 00000000 00800000 cae9d9ac e80ffdb8 7a4acb5c 05728b4c
+ars4x32 7 00000000 00010000 00000000 00000000 00000000 00000000 00000000 00800000 cb4e3e01 707b04f9 be3d08e0 1e724878
+ars4x32 7 00000000 01000000 00000000 00000000 00000000 00000000 00000000 00800000 f22dc1d1 61efa99b fe4b35c4 42f1ae9f
+ars4x32 7 00000000 00000000 00000001 00000000 00000000 00000000 00000000 00800000 abb51416 704b9fdf b783c974 6b910362
+ars4x32 7 00000000 00000000 00000100 00000000 00000000 00000000 00000000 00800000 48e985f2 1b2f3015 37e33c25 2d14bcd3
+ars4x32 7 00000000 00000000 00010000 00000000 00000000 00000000 00000000 00800000 6f3f2636 bb6aa8e5 9705f884 2cc11782
+ars4x32 7 00000000 00000000 01000000 00000000 00000000 00000000 00000000 00800000 20167428 7bcad5ca c641e404 bef7d4cc
+ars4x32 7 00000000 00000000 00000000 00000001 00000000 00000000 00000000 00800000 506428c3 04978fc6 9fa8d4be 8e3e570f
+ars4x32 7 00000000 00000000 00000000 00000100 00000000 00000000 00000000 00800000 69aa3611 83eadb80 ac09e387 9c0f5d55
+ars4x32 7 00000000 00000000 00000000 00010000 00000000 00000000 00000000 00800000 88417573 160ef3a0 beac468d aff9718f
+ars4x32 7 00000000 00000000 00000000 01000000 00000000 00000000 00000000 00800000 533037a7 50dc35b5 8e01f7b3 880fce38
+ars4x32 7 0000ff00 00000000 00000000 00000000 00000000 00000000 00000000 00800000 09b2a987 58d6ee83 60700022 0b07a0a9
+ars4x32 7 00008000 00000000 00000000 00000000 00000000 00000000 00000000 00800000 08b995e1 75e4ace8 701c1317 5ff425ec
+ars4x32 7 00ff0000 00000000 00000000 00000000 00000000 00000000 00000000 00800000 b56c5fa5 b400898f 6b18aeaa 467780c0
+ars4x32 7 00800000 00000000 00000000 00000000 00000000 00000000 00000000 00800000 5ac8c476 5bc9f43f a83ab541 a7678e64
+ars4x32 7 ff000000 00000000 00000000 00000000 00000000 00000000 00000000 00800000 4dbfd87a aee8d958 5301ed7a b57af9d2
+ars4x32 7 80000000 00000000 00000000 00000000 00000000 00000000 00000000 00800000 ba7dccc3 49e9b6af 2601ec2d 142d19fe
+ars4x32 7 00000000 000000ff 00000000 00000000 00000000 00000000 00000000 00800000 bbee6bb1 25af1268 8c16dc3d 09d51329
+ars4x32 7 00000000 00000080 00000000 00000000 00000000 00000000 00000000 00800000 258d3743 e578bab3 8dca4b33 e244314e
+ars4x32 7 00000000 0000ff00 00000000 00000000 00000000 00000000 00000000 00800000 e7b2e049 637e1b76 8424dd3f 40777e5a
+ars4x32 7 00000000 00008000 00000000 00000000 00000000 00000000 00000000 00800000 cf407bb7 7fe0bdb6 ad2cfed5 825e04d2
+ars4x32 7 00000000 00ff0000 00000000 00000000 00000000 00000000 00000000 00800000 52d3122b df42f504 9328862a badb6776
+ars4x32 7 00000000 00800000 00000000 00000000 00000000 00000000 00000000 00800000 3a63c38b 600be114 99578e15 3f9f13cf
+ars4x32 7 00000000 ff000000 00000000 00000000 00000000 00000000 00000000 00800000 c47cf038 7f7811b6 6989c8a3 e7f4ed71
+ars4x32 7 00000000 80000000 00000000 00000000 00000000 00000000 00000000 00800000 427542a1 c074fad8 df5cfb21 4a67dad8
+ars4x32 7 00000000 00000000 000000ff 00000000 00000000 00000000 00000000 00800000 8bf976fb 7f6991c1 a5bd7a21 dd41ecaa
+ars4x32 7 00000000 00000000 00000080 00000000 00000000 00000000 00000000 00800000 3826a018 504b9d62 c878c336 b04b85dc
+ars4x32 7 00000000 00000000 0000ff00 00000000 00000000 00000000 00000000 00800000 587f2792 59c7af31 6f2737a6 8e59316a
+ars4x32 7 00000000 00000000 00008000 00000000 00000000 00000000 00000000 00800000 fe0e9d1f 128b13b6 c764d11a a372ad18
+ars4x32 7 00000000 00000000 00ff0000 00000000 00000000 00000000 00000000 00800000 8f30d4a3 b2b93b51 6da9656d b868c978
+ars4x32 7 00000000 00000000 00800000 00000000 00000000 00000000 00000000 00800000 909756ee 327575fe ddfe2647 ae53fc4d
+ars4x32 7 00000000 00000000 ff000000 00000000 00000000 00000000 00000000 00800000 4196cbdc 60c6840c bb6d5444 f259f47c
+ars4x32 7 00000000 00000000 80000000 00000000 00000000 00000000 00000000 00800000 0be279c9 e42ecc5f d35705f9 6f7583c1
+ars4x32 7 00000000 00000000 00000000 000000ff 00000000 00000000 00000000 00800000 17af5e04 02c95c18 3f23a503 a2261d4e
+ars4x32 7 00000000 00000000 00000000 00000080 00000000 00000000 00000000 00800000 bcfb6e46 d1a3d60c ea740e5f 12ea6ed1
+ars4x32 7 00000000 00000000 00000000 0000ff00 00000000 00000000 00000000 00800000 3e4add40 4e9c8224 b2361093 609db035
+ars4x32 7 00000000 00000000 00000000 00008000 00000000 00000000 00000000 00800000 76ae32ae 70456796 4e35906d 444508cd
+ars4x32 7 00000000 00000000 00000000 00ff0000 00000000 00000000 00000000 00800000 433e75df bae525fd cfc16bb1 23956a4c
+ars4x32 7 00000000 00000000 00000000 00800000 00000000 00000000 00000000 00800000 a927b4c0 4b64a202 9af94594 ed59a36b
+ars4x32 7 00000000 00000000 00000000 ff000000 00000000 00000000 00000000 00800000 2e2850c5 105bdac7 3be5093b c3367694
+ars4x32 7 00000000 00000000 00000000 80000000 00000000 00000000 00000000 00800000 326ded18 3901a24b cdd54a03 e440b784
+ars4x32 7 886a3f24 d308a385 2e8a1913 44737003 00000000 00000000 00000000 00800000 133d5d06 256a441d 70bf8e82 6cd6089d
+ars4x32 7 223809a4 d0319f29 98fa2e08 896c4eec 00000000 00000000 00000000 00800000 4ef00738 868ce320 3b278f38 de4fc31e
+ars4x32 7 e6212845 7713d038 cf6654be 6c0ce934 00000000 00000000 00000000 00800000 28b894f6 94d29fa6 5bc130a9 6cc758d0
+ars4x32 7 00000001 00000000 00000000 00000000 00000000 00000000 00000000 ff000000 830ede16 2c7aedff 98327fad 25585765
+ars4x32 7 00000100 00000000 00000000 00000000 00000000 00000000 00000000 ff000000 688c673f 4feebbd6 4ee8f6dd cb325a2b
+ars4x32 7 00010000 00000000 00000000 00000000 00000000 00000000 00000000 ff000000 7469633d 1c511f43 a5d7f652 5f992c84
+ars4x32 7 01000000 00000000 00000000 00000000 00000000 00000000 00000000 ff000000 e327b087 6b3a38bb dfb0bbcf 6029a7f1
+ars4x32 7 00000000 00000001 00000000 00000000 00000000 00000000 00000000 ff000000 56327af1 3defa922 9873cc35 0fbb01b0
+ars4x32 7 00000000 00000100 00000000 00000000 00000000 00000000 00000000 ff000000 b302a0b9 28bd9cb8 cd998b9e 390348f7
+ars4x32 7 00000000 00010000 00000000 00000000 00000000 00000000 00000000 ff000000 99bbcabe 849548c5 7fd94f01 6fc3d07a
+ars4x32 7 00000000 01000000 00000000 00000000 00000000 00000000 00000000 ff000000 198149ba 35394361 d8fc6c48 b8d63959
+ars4x32 7 00000000 00000000 00000001 00000000 00000000 00000000 00000000 ff000000 69d7d7c7 c0bc9014 ae8b5fa3 d2a89e74
+ars4x32 7 00000000 00000000 00000100 00000000 00000000 00000000 00000000 ff000000 ea950837 fb738fc6 ef4d55d7 04576d0f
+ars4x32 7 00000000 00000000 00010000 00000000 00000000 00000000 00000000 ff000000 3620f982 3ce8fc43 62b7c574 abb7857e
+ars4x32 7 00000000 00000000 01000000 00000000 00000000 00000000 00000000 ff000000 f01f1083 76afb448 c1c8b156 96e1879e
+ars4x32 7 00000000 00000000 00000000 00000001 00000000 00000000 00000000 ff000000 ec9eacc2 6774f522 841c19a4 1f8dda37
+ars4x32 7 00000000 00000000 00000000 00000100 00000000 00000000 00000000 ff000000 ca15575d 1ab3559d 7b18ae12 27e40e29
+ars4x32 7 00000000 00000000 00000000 00010000 00000000 00000000 00000000 ff000000 dcb6d7c6 03d08b0e 5081cc94 8e249c86
+ars4x32 7 00000000 00000000 00000000 01000000 00000000 00000000 00000000 ff000000 a2560187 8a78fec2 67aa93bf e103de82
+ars4x32 7 0000ff00 00000000 00000000 00000000 00000000 00000000 00000000 ff000000 7e93bdaa 3333d2a9 54275e94 29f2558b
+ars4x32 7 00008000 00000000 00000000 00000000 00000000 00000000 00000000 ff000000 4a80089c b95368bf 90fb6f8b 2d894c41
+ars4x32 7 00ff0000 00000000 00000000 00000000 00000000 00000000 00000000 ff000000 f2d44d68 cdb19f20 9747a357 35505875
+ars4x32 7 00800000 00000000 00000000 00000000 00000000 00000000 00000000 ff000000 0291942e 2cb40254 f3dc55e9 7c7221d2
+ars4x32 7 ff000000 00000000 00000000 00000000 00000000 00000000 00000000 ff000000 3a3c5a30 094dc480 328c313f c4fc6fe2
+ars4x32 7 80000000 00000000 00000000 00000000 00000000 00000000 00000000 ff000000 cb7c77d5 5d0f196b 297a4cd7 b02e3eef
+ars4x32 7 00000000 000000ff 00000000 00000000 00000000 00000000 00000000 ff000000 0af3f33d b4444c6f 484a326f 6951a499
+ars4x32 7 00000000 00000080 00000000 00000000 00000000 00000000 00000000 ff000000 7960fd9a 3a445d2f 03a78647 0cc25aa7
+ars4x32 7 00000000 0000ff00 00000000 00000000 00000000 00000000 00000000 ff000000 2c91b280 c10863bf 4136bce5 31ad2c85
+ars4x32 7 00000000 00008000 00000000 00000000 00000000 00000000 00000000 ff000000 44a43b39 8ec6dec2 7debc7db ce0666ee
+ars4x32 7 00000000 00ff0000 00000000 00000000 00000000 00000000 00000000 ff000000 081925c6 522ccff9 a82cdebd 2f9e8fc5
+ars4x32 7 00000000 00800000 00000000 00000000 00000000 00000000 00000000 ff000000 eaafe2a9 f15dd430 7dc169c8 1466e73c
+ars4x32 7 00000000 ff000000 00000000 00000000 00000000 00000000 00000000 ff000000 182f687e 2d7ee0d8 f4c7111e d4568acb
+ars4x32 7 00000000 80000000 00000000 00000000 00000000 00000000 00000000 ff000000 d8581c85 465a6bde 1f27ff17 18522949
+ars4x32 7 00000000 00000000 000000ff 00000000 00000000 00000000 00000000 ff000000 bc596afa ad59cb47 76aa9deb 205ddf74
+ars4x32 7 00000000 00000000 00000080 00000000 00000000 00000000 00000000 ff000000 f7e07727 150aa4af 0beb9007 cd5095fd
+ars4x32 7 00000000 00000000 0000ff00 00000000 00000000 00000000 00000000 ff000000 9618d496 f2b60e55 52125c7f 81e153f7
+ars4x32 7 00000000 00000000 00008000 00000000 00000000 00000000 00000000 ff000000 9fafbcd8 03328635 6e262747 83fc5f6f
+ars4x32 7 00000000 00000000 00ff0000 00000000 00000000 00000000 00000000 ff000000 762f673f 5b94c0b2 2085a682 02705419
+ars4x32 7 00000000 00000000 00800000 00000000 00000000 00000000 00000000 ff000000 b0179103 8d458989 ff0e5982 49f5be90
+ars4x32 7 00000000 00000000 ff000000 00000000 00000000 00000000 00000000 ff000000 d7625e83 26e36f0a 09cbefbf 44469e3c
+ars4x32 7 00000000 00000000 80000000 00000000 00000000 00000000 00000000 ff000000 4f654e80 74f7ba7b 1d71a482 5d2ef42f
+ars4x32 7 00000000 00000000 00000000 000000ff 00000000 00000000 00000000 ff000000 50a9e302 0a88eded 605407d6 961cf688
+ars4x32 7 00000000 00000000 00000000 00000080 00000000 00000000 00000000 ff000000 0e35fc3f 51317e4f 7ec99c9c 247e15e2
+ars4x32 7 00000000 00000000 00000000 0000ff00 00000000 00000000 00000000 ff000000 b79f2dbe d88d92a4 6bdcd12d 0da84be4
+ars4x32 7 00000000 00000000 00000000 00008000 00000000 00000000 00000000 ff000000 28aaf55a 0d457eaa ca39b6bd 9ae11aca
+ars4x32 7 00000000 00000000 00000000 00ff0000 00000000 00000000 00000000 ff000000 f51f42bb 714a3ba4 ecf49d28 3297feaf
+ars4x32 7 00000000 00000000 00000000 00800000 00000000 00000000 00000000 ff000000 34033ef5 ef1a2178 3dc08498 8742b1f8
+ars4x32 7 00000000 00000000 00000000 ff000000 00000000 00000000 00000000 ff000000 42a38dae 356f9800 ee54d9ce 2c8fe759
+ars4x32 7 00000000 00000000 00000000 80000000 00000000 00000000 00000000 ff000000 8ac74af6 db5395b6 3d51c46d bb448a5d
+ars4x32 7 886a3f24 d308a385 2e8a1913 44737003 00000000 00000000 00000000 ff000000 5fe80073 4be63b93 c8bc6459 3647869c
+ars4x32 7 223809a4 d0319f29 98fa2e08 896c4eec 00000000 00000000 00000000 ff000000 b0e3dd9a f2f1c750 7a819dcf b5da4539
+ars4x32 7 e6212845 7713d038 cf6654be 6c0ce934 00000000 00000000 00000000 ff000000 e87ec26e 055af8ee 4554a7db b2ff189c
+ars4x32 7 00000001 00000000 00000000 00000000 00000000 00000000 00000000 80000000 26789d39 0b35b558 d134c70a 05f21058
+ars4x32 7 00000100 00000000 00000000 00000000 00000000 00000000 00000000 80000000 b090f71b 0c24e6cd 14c39853 29eea7a1
+ars4x32 7 00010000 00000000 00000000 00000000 00000000 00000000 00000000 80000000 67957e08 82b4de0c 3817a4a4 a7d9c9e5
+ars4x32 7 01000000 00000000 00000000 00000000 00000000 00000000 00000000 80000000 36475912 2e67e681 9186a568 6d3ab920
+ars4x32 7 00000000 00000001 00000000 00000000 00000000 00000000 00000000 80000000 36641fe7 44561777 df4a4071 774a7979
+ars4x32 7 00000000 00000100 00000000 00000000 00000000 00000000 00000000 80000000 13d7c238 ec3445e5 03bf05d0 efc826e4
+ars4x32 7 00000000 00010000 00000000 00000000 00000000 00000000 00000000 80000000 1856302b 2cfd6cef f3c4c4c2 fd97ea43
+ars4x32 7 00000000 01000000 00000000 00000000 00000000 00000000 00000000 80000000 c82ecfc9 246d99da ee5a939a df4e2ec7
+ars4x32 7 00000000 00000000 00000001 00000000 00000000 00000000 00000000 80000000 b3057d65 5f4857fe 161fd575 eb1af21d
+ars4x32 7 00000000 00000000 00000100 00000000 00000000 00000000 00000000 80000000 493e26c7 ab8a8a12 b2c7522e ee623a12
+ars4x32 7 00000000 00000000 00010000 00000000 00000000 00000000 00000000 80000000 54fb2c88 9b0a6e74 afe9a75c 5ac60579
+ars4x32 7 00000000 00000000 01000000 00000000 00000000 00000000 00000000 80000000 4708dd7f 9772ca07 09d43d7b d657da70
+ars4x32 7 00000000 00000000 00000000 00000001 00000000 00000000 00000000 80000000 1866cb47 ec4a45b5 51415a63 62edcebd
+ars4x32 7 00000000 00000000 00000000 00000100 00000000 00000000 00000000 80000000 f48b91c7 c7f95960 f75596d2 7d66e99c
+ars4x32 7 00000000 00000000 00000000 00010000 00000000 00000000 00000000 80000000 30fd74da 8416b1b8 acfad80a 74183a32
+ars4x32 7 00000000 00000000 00000000 01000000 00000000 00000000 00000000 80000000 60abf0c9 a8f16c38 6aecc856 77585d18
+ars4x32 7 0000ff00 00000000 00000000 00000000 00000000 00000000 00000000 80000000 95ecca0f a586b316 49039c99 db7c3ced
+ars4x32 7 00008000 00000000 00000000 00000000 00000000 00000000 00000000 80000000 69b6c8dd c867ff5c c29fbfd2 bb8abad8
+ars4x32 7 00ff0000 00000000 00000000 00000000 00000000 00000000 00000000 80000000 91bd9101 1ade8c27 dd03d6cf 4a2f609d
+ars4x32 7 00800000 00000000 00000000 00000000 00000000 00000000 00000000 80000000 9fe8eb8d c0f1ad2c ff1b02c2 13e53657
+ars4x32 7 ff000000 00000000 00000000 00000000 00000000 00000000 00000000 80000000 d2737890 1c5bf29a 60c1876b d0e6375f
+ars4x32 7 80000000 00000000 00000000 00000000 00000000 00000000 00000000 80000000 a36d95f2 e1b3836b 16e07380 530e046a
+ars4x32 7 00000000 000000ff 00000000 00000000 00000000 00000000 00000000 80000000 49a80c7f 38e8f470 5297276c 2a15f290
+ars4x32 7 00000000 00000080 00000000 00000000 00000000 00000000 00000000 80000000 129069a4 34691701 1e540326 459225e0
+ars4x32 7 00000000 0000ff00 00000000 00000000 00000000 00000000 00000000 80000000 0aeef630 536d89b1 62698a9b 75935d28
+ars4x32 7 00000000 00008000 00000000 00000000 00000000 00000000 00000000 80000000 ed53e002 2f4dafd2 c699a3ce c518f265
+ars4x32 7 00000000 00ff0000 00000000 00000000 00000000 00000000 00000000 80000000 fe8314d1 430aba3a 903a1b95 383b4771
+ars4x32 7 00000000 00800000 00000000 00000000 00000000 00000000 00000000 80000000 32ef00e3 a8288238 7925c333 09305962
+ars4x32 7 00000000 ff000000 00000000 00000000 00000000 00000000 00000000 80000000 faa6902d d4e9436b 117ef210 cc580c65
+ars4x32 7 00000000 80000000 00000000 00000000 00000000 00000000 00000000 80000000 da277aa7 b9bcc78d 7682a753 7f111edb
+ars4x32 7 00000000 00000000 000000ff 00000000 00000000 00000000 00000000 80000000 cf776645 b25583c1 6afc73ed 563c5124
+ars4x32 7 00000000 00000000 00000080 00000000 00000000 00000000 00000000 80000000 8e5c34e2 4b8ae101 e9f7f828 e3f5ca55
+ars4x32 7 00000000 00000000 0000ff00 00000000 00000000 00000000 00000000 80000000 2419a489 22144205 48ae6a07 6e461b03
+ars4x32 7 00000000 00000000 00008000 00000000 00000000 00000000 00000000 80000000 26896192 7988e1c2 c9517654 68253c81
+ars4x32 7 00000000 00000000 00ff0000 00000000 00000000 00000000 00000000 80000000 757d6cfb f7030e88 9248f577 32a75662
+ars4x32 7 00000000 00000000 00800000 00000000 00000000 00000000 00000000 80000000 36fd2e12 e975bc10 3078eace be3302dd
+ars4x32 7 00000000 00000000 ff000000 00000000 00000000 00000000 00000000 80000000 c14e818d 97df0638 c264b1de 5d478b0e
+ars4x32 7 00000000 00000000 80000000 00000000 00000000 00000000 00000000 80000000 e3ba2b28 9db21117 896fa5d6 a803d2b9
+ars4x32 7 00000000 00000000 00000000 000000ff 00000000 00000000 00000000 80000000 a569e149 bc4c5eab 2452fc82 01d2e698
+ars4x32 7 00000000 00000000 00000000 00000080 00000000 00000000 00000000 80000000 b407f105 4e2bf500 52e0672a bfb546db
+ars4x32 7 00000000 00000000 00000000 0000ff00 00000000 00000000 00000000 80000000 d69cde49 60f9ec60 bb175073 cf0d97e7
+ars4x32 7 00000000 00000000 00000000 00008000 00000000 00000000 00000000 80000000 fe0a7ffe f6d1bcf2 b98768d8 7e94a046
+ars4x32 7 00000000 00000000 00000000 00ff0000 00000000 00000000 00000000 80000000 a3432cf6 10539085 0f7d7a9b e14c6dee
+ars4x32 7 00000000 00000000 00000000 00800000 00000000 00000000 00000000 80000000 baee3cbe 194d47c1 7dc26b0f a063a426
+ars4x32 7 00000000 00000000 00000000 ff000000 00000000 00000000 00000000 80000000 8e864bfc a7c4c727 4c946170 af4dd13d
+ars4x32 7 00000000 00000000 00000000 80000000 00000000 00000000 00000000 80000000 b6c08c48 52962db9 88508917 4dd4aaff
+ars4x32 7 886a3f24 d308a385 2e8a1913 44737003 00000000 00000000 00000000 80000000 31e3f0cc 92d1e3cc a2fdaa6c 902c741b
+ars4x32 7 223809a4 d0319f29 98fa2e08 896c4eec 00000000 00000000 00000000 80000000 378edc3f 0de9ca93 eabe8ab2 8b2f1d2e
+ars4x32 7 e6212845 7713d038 cf6654be 6c0ce934 00000000 00000000 00000000 80000000 394a7bc3 4d049c56 b0e3d5a5 dcb070b5
+ars4x32 10 00000001 00000000 00000000 00000000 00000001 00000000 00000000 00000000 3789b2f9 cf3e7bfc 51bafd66 e5c2f16c
+ars4x32 10 00000100 00000000 00000000 00000000 00000001 00000000 00000000 00000000 419e7cee 1634c377 ac441b35 b5fdad47
+ars4x32 10 00010000 00000000 00000000 00000000 00000001 00000000 00000000 00000000 8f5a5777 3966ef14 a179a3a6 68bd181a
+ars4x32 10 01000000 00000000 00000000 00000000 00000001 00000000 00000000 00000000 598460c9 f5a72152 18876ff0 6499a688
+ars4x32 10 00000000 00000001 00000000 00000000 00000001 00000000 00000000 00000000 1e482dbb 2a7d29e4 abd679be 27f0d406
+ars4x32 10 00000000 00000100 00000000 00000000 00000001 00000000 00000000 00000000 4e2cb77d 76586ea3 20b8a841 abe1ae74
+ars4x32 10 00000000 00010000 00000000 00000000 00000001 00000000 00000000 00000000 9dbd160e bea9c9bc 2b30c629 a7563f10
+ars4x32 10 00000000 01000000 00000000 00000000 00000001 00000000 00000000 00000000 dc7e94c1 a7c5a4d0 1132a44c 095cb974
+ars4x32 10 00000000 00000000 00000001 00000000 00000001 00000000 00000000 00000000 dbdbc6af 3ea7b4f4 219b4da7 47161831
+ars4x32 10 00000000 00000000 00000100 00000000 00000001 00000000 00000000 00000000 f3a905df df16c950 92e4d08e 0ccaa78f
+ars4x32 10 00000000 00000000 00010000 00000000 00000001 00000000 00000000 00000000 d948e4cc 4f6e190c 0d73a820 c492e4ea
+ars4x32 10 00000000 00000000 01000000 00000000 00000001 00000000 00000000 00000000 28adb021 4ba7a2c6 e2e147bd 41f1d499
+ars4x32 10 00000000 00000000 00000000 00000001 00000001 00000000 00000000 00000000 4febfa99 150b2760 42b439ab 644be146
+ars4x32 10 00000000 00000000 00000000 00000100 00000001 00000000 00000000 00000000 5d4ec2f9 0b058beb 06ee5c54 40d84bfd
+ars4x32 10 00000000 00000000 00000000 00010000 00000001 00000000 00000000 00000000 62b8f839 5efa5122 91dcbecc d338fda6
+ars4x32 10 00000000 00000000 00000000 01000000 00000001 00000000 00000000 00000000 992fcee9 92f851d3 686e3c09 2f99ac38
+ars4x32 10 0000ff00 00000000 00000000 00000000 00000001 00000000 00000000 00000000 dd3052a2 e18f6d4d a56acffb 7e788c8a
+ars4x32 10 00008000 00000000 00000000 00000000 00000001 00000000 00000000 00000000 f53537d6 a25397f4 894699bf 69fcc395
+ars4x32 10 00ff0000 00000000 00000000 00000000 00000001 00000000 00000000 00000000 d7a2c9fc e5cc90ea 5309405a 8513cb0a
+ars4x32 10 00800000 00000000 00000000 00000000 00000001 00000000 00000000 00000000 f588d19d e91f4772 8b088d79 79c222e8
+ars4x32 10 ff000000 00000000 00000000 00000000 00000001 00000000 00000000 00000000 23fa982b 4d2f59e5 7c4259d5 efa0c6bc
+ars4x32 10 80000000 00000000 00000000 00000000 00000001 00000000 00000000 00000000 f98c4b1f 68cc558d ae0b81ea 01f64bf8
+ars4x32 10 00000000 000000ff 00000000 00000000 00000001 00000000 00000000 00000000 31816f80 faaccbe9 7cf8f6ad b150f7e0
+ars4x32 10 00000000 00000080 00000000 00000000 00000001 00000000 00000000 00000000 cfb3111e d9c0e672 b199fc26 7d00477b
+ars4x32 10 00000000 0000ff00 00000000 00000000 00000001 00000000 00000000 00000000 8fd7f747 1d1829ac 0768c9b2 15461738
+ars4x32 10 00000000 00008000 00000000 00000000 00000001 00000000 00000000 00000000 7bf0f87d f7574711 f2060d65 2d4648ca
+ars4x32 10 00000000 00ff0000 00000000 00000000 00000001 00000000 00000000 00000000 a25a23a4 59e31c12 43b7712f 3b4db0b7
+ars4x32 10 00000000 00800000 00000000 00000000 00000001 00000000 00000000 00000000 9bb76c81 13279319 da45e911 e7acf8ac
+ars4x32 10 00000000 ff000000 00000000 00000000 00000001 00000000 00000000 00000000 45c6e2e7 1c1064b5 8cc499c0 60a32751
+ars4x32 10 00000000 80000000 00000000 00000000 00000001 00000000 00000000 00000000 ea1329f0 b4e46d1c 800e51a9 7abe2fb6
+ars4x32 10 00000000 00000000 000000ff 00000000 00000001 00000000 00000000 00000000 5385535f 75fd78fe 7627488b ae1cd2ec
+ars4x32 10 00000000 00000000 00000080 00000000 00000001 00000000 00000000 00000000 59637a22 8c35edc1 f80a44e4 a3c7aea9
+ars4x32 10 00000000 00000000 0000ff00 00000000 00000001 00000000 00000000 00000000 77755dc9 106066b3 694b91f8 e3ea193d
+ars4x32 10 00000000 00000000 00008000 00000000 00000001 00000000 00000000 00000000 f05f3386 1cab5701 8937931b c617bcd1
+ars4x32 10 00000000 00000000 00ff0000 00000000 00000001 00000000 00000000 00000000 ea05d264 8cbe6a05 f64e9f3e 39d51fca
+ars4x32 10 00000000 00000000 00800000 00000000 00000001 00000000 00000000 00000000 1db2d166 c8b21f45 897084ea 35c3bf03
+ars4x32 10 00000000 00000000 ff000000 00000000 00000001 00000000 00000000 00000000 f2b2c107 5e0a0c79 f4ccd6ee f28b47e3
+ars4x32 10 00000000 00000000 80000000 00000000 00000001 00000000 00000000 00000000 01ac4859 eb71b2ce 40dfc98a e4217138
+ars4x32 10 00000000 00000000 00000000 000000ff 00000001 00000000 00000000 00000000 0d1001e5 f20e6f86 196988ab a0bda0b9
+ars4x32 10 00000000 00000000 00000000 00000080 00000001 00000000 00000000 00000000 e1fc3ada a9cfe2d6 072e60e8 08110681
+ars4x32 10 00000000 00000000 00000000 0000ff00 00000001 00000000 00000000 00000000 db24279e 2d1845bf 385a2256 3da77f6b
+ars4x32 10 00000000 00000000 00000000 00008000 00000001 00000000 00000000 00000000 234f6deb 9200575b 61cfb986 055d4a4d
+ars4x32 10 00000000 00000000 00000000 00ff0000 00000001 00000000 00000000 00000000 7af7d320 10013dd4 3c765651 1d6fcf32
+ars4x32 10 00000000 00000000 00000000 00800000 00000001 00000000 00000000 00000000 635342f1 e8f843da 42926271 bc0f9c38
+ars4x32 10 00000000 00000000 00000000 ff000000 00000001 00000000 00000000 00000000 4ef05c09 5d6f2a07 2dbe6c53 40aa3a76
+ars4x32 10 00000000 00000000 00000000 80000000 00000001 00000000 00000000 00000000 618f6832 57cc23f0 e06b3858 7b8cc711
+ars4x32 10 886a3f24 d308a385 2e8a1913 44737003 00000001 00000000 00000000 00000000 21d40a5c 21e528aa a1a359eb 9c02b159
+ars4x32 10 223809a4 d0319f29 98fa2e08 896c4eec 00000001 00000000 00000000 00000000 42e0f6c1 5a350cc7 ca3d7163 bab442a1
+ars4x32 10 e6212845 7713d038 cf6654be 6c0ce934 00000001 00000000 00000000 00000000 417063dd 05895c8c aa1ad0f2 8a7e2516
+ars4x32 10 00000001 00000000 00000000 00000000 00000100 00000000 00000000 00000000 72a0ac1f 480fae16 3ee35313 d59218d1
+ars4x32 10 00000100 00000000 00000000 00000000 00000100 00000000 00000000 00000000 909a04f3 dee070ac 5d34d9f6 0057f628
+ars4x32 10 00010000 00000000 00000000 00000000 00000100 00000000 00000000 00000000 9a214df4 a4449843 b5ad1ada edaa299d
+ars4x32 10 01000000 00000000 00000000 00000000 00000100 00000000 00000000 00000000 4846ef73 06c41885 6741882b 4d09e74a
+ars4x32 10 00000000 00000001 00000000 00000000 00000100 00000000 00000000 00000000 71d41253 9e730f5b 9705647d e25d4f88
+ars4x32 10 00000000 00000100 00000000 00000000 00000100 00000000 00000000 00000000 5adf8f61 784b1b6f 7c95509d afbfe97d
+ars4x32 10 00000000 00010000 00000000 00000000 00000100 00000000 00000000 00000000 994f3797 8bfeb14d 2c321c99 e88b5b0b
+ars4x32 10 00000000 01000000 00000000 00000000 00000100 00000000 00000000 00000000 3ce918ed 6302e8eb 4ffcbf54 4bd82ec6
+ars4x32 10 00000000 00000000 00000001 00000000 00000100 00000000 00000000 00000000 3d5fe3f7 ab107c15 6dcc7326 2824fb0d
+ars4x32 10 00000000 00000000 00000100 00000000 00000100 00000000 00000000 00000000 765b3288 51c9afcb a4c5741e 5bbeb453
+ars4x32 10 00000000 00000000 00010000 00000000 00000100 00000000 00000000 00000000 cec5baf1 93d7d9fc 3096a8e9 e277db63
+ars4x32 10 00000000 00000000 01000000 00000000 00000100 00000000 00000000 00000000 73d2fbb8 f299bef8 f4dc31cd f0338bd6
+ars4x32 10 00000000 00000000 00000000 00000001 00000100 00000000 00000000 00000000 0b8824b9 96d0f8fd 4d0fc3f9 d35cbe7b
+ars4x32 10 00000000 00000000 00000000 00000100 00000100 00000000 00000000 00000000 62f0abf0 a89ca8c1 05c82cc9 3cb5c328
+ars4x32 10 00000000 00000000 00000000 00010000 00000100 00000000 00000000 00000000 085e56bd 1d91f6ea 3c29fec0 1f703b97
+ars4x32 10 00000000 00000000 00000000 01000000 00000100 00000000 00000000 00000000 3a2f8790 5fba0608 f9992841 3de27411
+ars4x32 10 0000ff00 00000000 00000000 00000000 00000100 00000000 00000000 00000000 ed032a22 05db0314 e8b6fa9e 1cd7d7dd
+ars4x32 10 00008000 00000000 00000000 00000000 00000100 00000000 00000000 00000000 2b4c41b1 f5d7550b 96494e63 9dee9b50
+ars4x32 10 00ff0000 00000000 00000000 00000000 00000100 00000000 00000000 00000000 7f046111 ef2b88be d7e01af1 c8540447
+ars4x32 10 00800000 00000000 00000000 00000000 00000100 00000000 00000000 00000000 8904c8b5 1bff107c 89de1122 f078fe9e
+ars4x32 10 ff000000 00000000 00000000 00000000 00000100 00000000 00000000 00000000 91d45dec fe7a07dd 003e5ca6 98b2f680
+ars4x32 10 80000000 00000000 00000000 00000000 00000100 00000000 00000000 00000000 66e6c7c0 3d668856 bd6208df dd6c0b04
+ars4x32 10 00000000 000000ff 00000000 00000000 00000100 00000000 00000000 00000000 12165f49 5bb73eab ebe55978 d391b601
+ars4x32 10 00000000 00000080 00000000 00000000 00000100 00000000 00000000 00000000 9096afe3 8c271d02 02d21b32 20c3a8b9
+ars4x32 10 00000000 0000ff00 00000000 00000000 00000100 00000000 00000000 00000000 2b13a66e b47a554a ceb1047e 1fa90048
+ars4x32 10 00000000 00008000 00000000 00000000 00000100 00000000 00000000 00000000 f056db2d deaaa7ce 829d9400 8457dad7
+ars4x32 10 00000000 00ff0000 00000000 00000000 00000100 00000000 00000000 00000000 c2ec8828 0987967a ea4e82f9 da6cb8eb
+ars4x32 10 00000000 00800000 00000000 00000000 00000100 00000000 00000000 00000000 c4a587d7 4eae030f 71af5aa7 17470690
+ars4x32 10 00000000 ff000000 00000000 00000000 00000100 00000000 00000000 00000000 b37dcd16 221b0d99 9c3ee696 b5a768eb
+ars4x32 10 00000000 80000000 00000000 00000000 00000100 00000000 00000000 00000000 e3528871 e932bab8 3b5575fa 640afb7b
+ars4x32 10 00000000 00000000 000000ff 00000000 00000100 00000000 00000000 00000000 14377abb 63c257a7 271e195c b3c779fa
+ars4x32 10 00000000 00000000 00000080 00000000 00000100 00000000 00000000 00000000 4a8b3b3c 2f2d8018 95f0f21d 70cc5020
+ars4x32 10 00000000 00000000 0000ff00 00000000 00000100 00000000 00000000 00000000 ef4d408f c66ddec4 cf3e8e5b 2e4d80a6
+ars4x32 10 00000000 00000000 00008000 00000000 00000100 00000000 00000000 00000000 195c0040 e612419d 6870bb86 037c5e1c
+ars4x32 10 00000000 00000000 00ff0000 00000000 00000100 00000000 00000000 00000000 716308b0 8845c05a bfec797f 178fccb3
+ars4x32 10 00000000 00000000 00800000 00000000 00000100 00000000 00000000 00000000 0144107c b2391277 2a953a84 17b80885
+ars4x32 10 00000000 00000000 ff000000 00000000 00000100 00000000 00000000 00000000 d6c2189d 2f394669 b780f227 1d7f1b9f
+ars4x32 10 00000000 00000000 80000000 00000000 00000100 00000000 00000000 00000000 0c53c3e4 bfeb3488 560ac071 9076c1ed
+ars4x32 10 00000000 00000000 00000000 000000ff 00000100 00000000 00000000 00000000 06cd9d79 8725dc30 e8620e96 832b78b2
+ars4x32 10 00000000 00000000 00000000 00000080 00000100 00000000 00000000 00000000 590a48df c970e88e 215eff00 5f65a014
+ars4x32 10 00000000 00000000 00000000 0000ff00 00000100 00000000 00000000 00000000 b6be10a4 54e96084 f7b1c020 5667a715
+ars4x32 10 00000000 00000000 00000000 00008000 00000100 00000000 00000000 00000000 0158f44f 096ba2ba b7ccce1a 1ee18eb7
+ars4x32 10 00000000 00000000 00000000 00ff0000 00000100 00000000 00000000 00000000 e2aeff6c 3c9f9df9 75d95894 96e56309
+ars4x32 10 00000000 00000000 00000000 00800000 00000100 00000000 00000000 00000000 e43683f9 6d48b586 89822f15 c24ab59e
+ars4x32 10 00000000 00000000 00000000 ff000000 00000100 00000000 00000000 00000000 91535e7f 89114f9f c173e3a4 b0ac992a
+ars4x32 10 00000000 00000000 00000000 80000000 00000100 00000000 00000000 00000000 99af942b fe15e28d 0eb06c81 62509724
+ars4x32 10 886a3f24 d308a385 2e8a1913 44737003 00000100 00000000 00000000 00000000 5b594541 b7fab0dc 89f9ca5d ea0db0de
+ars4x32 10 223809a4 d0319f29 98fa2e08 896c4eec 00000100 00000000 00000000 00000000 a3703024 38b84df2 a4686a4c c2a647f5
+ars4x32 10 e6212845 7713d038 cf6654be 6c0ce934 00000100 00000000 00000000 00000000 ff22a6fe 66be6769 aec16d23 905b0622
+ars4x32 10 00000001 00000000 00000000 00000000 00010000 00000000 00000000 00000000 fd1af696 5378a483 2a7902de d90db43e
+ars4x32 10 00000100 00000000 00000000 00000000 00010000 00000000 00000000 00000000 5b8189ee d7af776f 58b70db1 8b21950f
+ars4x32 10 00010000 00000000 00000000 00000000 00010000 00000000 00000000 00000000 aae746c3 335eb675 a093d5d7 4437e425
+ars4x32 10 01000000 00000000 00000000 00000000 00010000 00000000 00000000 00000000 4183ba0e 2c7f021a 9b5e19be 961ef6b9
+ars4x32 10 00000000 00000001 00000000 00000000 00010000 00000000 00000000 00000000 8cfaf2cd 9679da95 f58b3663 13dece23
+ars4x32 10 00000000 00000100 00000000 00000000 00010000 00000000 00000000 00000000 a4c5273c 93f1e56e 00c1b09e 8fe9f0a3
+ars4x32 10 00000000 00010000 00000000 00000000 00010000 00000000 00000000 00000000 de7add1b 7b602b8b 6f51d466 d5b704f7
+ars4x32 10 00000000 01000000 00000000 00000000 00010000 00000000 00000000 00000000 3b0ac4d1 1604d0e9 c2efbeb8 49234e1d
+ars4x32 10 00000000 00000000 00000001 00000000 00010000 00000000 00000000 00000000 0b137f97 68b33f23 94c15a81 b9b0eb77
+ars4x32 10 00000000 00000000 00000100 00000000 00010000 00000000 00000000 00000000 dca890a0 a82d10a7 0c548dd9 935541dd
+ars4x32 10 00000000 00000000 00010000 00000000 00010000 00000000 00000000 00000000 bb299133 967b5068 c3c080cd afb20355
+ars4x32 10 00000000 00000000 01000000 00000000 00010000 00000000 00000000 00000000 05b8865b 2b4bbba1 a0769fd0 68eefc0f
+ars4x32 10 00000000 00000000 00000000 00000001 00010000 00000000 00000000 00000000 f69dfef6 3b4bead5 5fceac0f 73b6cb5d
+ars4x32 10 00000000 00000000 00000000 00000100 00010000 00000000 00000000 00000000 71b4613f c0f36665 75746911 75fc8724
+ars4x32 10 00000000 00000000 00000000 00010000 00010000 00000000 00000000 00000000 87bce4ef 0763cd7e ac659500 dcd4abe5
+ars4x32 10 00000000 00000000 00000000 01000000 00010000 00000000 00000000 00000000 1334dcee a9e3a84b f5541b4b fa03c8c3
+ars4x32 10 0000ff00 00000000 00000000 00000000 00010000 00000000 00000000 00000000 b00ef56f 052800d1 f563e286 e3e0c3c6
+ars4x32 10 00008000 00000000 00000000 00000000 00010000 00000000 00000000 00000000 06fd42be d01bd239 8dfc2b89 178357cc
+ars4x32 10 00ff0000 00000000 00000000 00000000 00010000 00000000 00000000 00000000 1d3e451b 1dd7fad8 a9147b03 7ee20538
+ars4x32 10 00800000 00000000 00000000 00000000 00010000 00000000 00000000 00000000 555d8ec6 0764fbde 5649615a d700e43e
+ars4x32 10 ff000000 00000000 00000000 00000000 00010000 00000000 00000000 00000000 11eb0368 f5f67768 35bfa350 f3f0ff8f
+ars4x32 10 80000000 00000000 00000000 00000000 00010000 00000000 00000000 00000000 5ed1e7d1 6180fd1a 4e755be0 dcda0759
+ars4x32 10 00000000 000000ff 00000000 00000000 00010000 00000000 00000000 00000000 20ea794e 29e33a57 8ab149b6 f867e36f
+ars4x32 10 00000000 00000080 00000000 00000000 00010000 00000000 00000000 00000000 7c091aab e38ab356 5d488601 89edc670
+ars4x32 10 00000000 0000ff00 00000000 00000000 00010000 00000000 00000000 00000000 8174879e b33931a4 5d0c5717 ae86c09c
+ars4x32 10 00000000 00008000 00000000 00000000 00010000 00000000 00000000 00000000 d741a12a 69239d5d ccbab809 b88e680d
+ars4x32 10 00000000 00ff0000 00000000 00000000 00010000 00000000 00000000 00000000 0a718384 2ad5217d a98b5369 b917ff13
+ars4x32 10 00000000 00800000 00000000 00000000 00010000 00000000 00000000 00000000 0b7dc6ba 15709a53 f9ba3787 b14a4762
+ars4x32 10 00000000 ff000000 00000000 00000000 00010000 00000000 00000000 00000000 ed61078d 146e50da c907e4ce 504676b4
+ars4x32 10 00000000 80000000 00000000 00000000 00010000 00000000 00000000 00000000 21b4604c fd5740e3 9c4e16de 5c97f02b
+ars4x32 10 00000000 00000000 000000ff 00000000 00010000 00000000 00000000 00000000 4618e0bd 7723923b fff48883 488b574c
+ars4x32 10 00000000 00000000 00000080 00000000 00010000 00000000 00000000 00000000 830e64af 8a583bd0 877e69b3 2889afd3
+ars4x32 10 00000000 00000000 0000ff00 00000000 00010000 00000000 00000000 00000000 c9982b20 703c4841 8d27bbdc 658c69e7
+ars4x32 10 00000000 00000000 00008000 00000000 00010000 00000000 00000000 00000000 e65236c6 43d9f184 44306648 ab1234d7
+ars4x32 10 00000000 00000000 00ff0000 00000000 00010000 00000000 00000000 00000000 ee67b8e8 64d2128b 85a2de0e 93a9aff6
+ars4x32 10 00000000 00000000 00800000 00000000 00010000 00000000 00000000 00000000 66d264e4 a46aa477 4c735fb0 9d59c142
+ars4x32 10 00000000 00000000 ff000000 00000000 00010000 00000000 00000000 00000000 8e17378f 267db9e2 d12a015f 18fbe34f
+ars4x32 10 00000000 00000000 80000000 00000000 00010000 00000000 00000000 00000000 f3439b2c fadad898 25014f01 5099d9f5
+ars4x32 10 00000000 00000000 00000000 000000ff 00010000 00000000 00000000 00000000 3eeebe70 bc9a61d9 afbcdae9 4f87accf
+ars4x32 10 00000000 00000000 00000000 00000080 00010000 00000000 00000000 00000000 60b54112 73002122 cc8949b3 e5821081
+ars4x32 10 00000000 00000000 00000000 0000ff00 00010000 00000000 00000000 00000000 70852928 211bab69 86b713dc 2234fddb
+ars4x32 10 00000000 00000000 00000000 00008000 00010000 00000000 00000000 00000000 97992054 2e7cf8a6 f7cbcd18 585e18bd
+ars4x32 10 00000000 00000000 00000000 00ff0000 00010000 00000000 00000000 00000000 511b8cf0 f5bdc929 dd620ff5 a3f29b63
+ars4x32 10 00000000 00000000 00000000 00800000 00010000 00000000 00000000 00000000 552608b7 49a1b891 96658c98 b8655fe2
+ars4x32 10 00000000 00000000 00000000 ff000000 00010000 00000000 00000000 00000000 ef7d4bf4 e9f48f98 b56a03ec f4a406c0
+ars4x32 10 00000000 00000000 00000000 80000000 00010000 00000000 00000000 00000000 4eda0692 f78cdc59 a8df1cc3 54192d76
+ars4x32 10 886a3f24 d308a385 2e8a1913 44737003 00010000 00000000 00000000 00000000 5550ef69 36bc1242 5bc4d226 57dfc1fd
+ars4x32 10 223809a4 d0319f29 98fa2e08 896c4eec 00010000 00000000 00000000 00000000 9eea7478 7181135b 9c46c00e 14ab98cb
+ars4x32 10 e6212845 7713d038 cf6654be 6c0ce934 00010000 00000000 00000000 00000000 0e83e4e0 2c1a2165 03e84f54 bad9495a
+ars4x32 10 00000001 00000000 00000000 00000000 01000000 00000000 00000000 00000000 fc860b1c 81fd3b9b e00affc5 371e9791
+ars4x32 10 00000100 00000000 00000000 00000000 01000000 00000000 00000000 00000000 7c48a581 57f33193 c825dd82 ced9cd59
+ars4x32 10 00010000 00000000 00000000 00000000 01000000 00000000 00000000 00000000 ab3fbb2a f0c5af6c e0c8032e c7625f7c
+ars4x32 10 01000000 00000000 00000000 00000000 01000000 00000000 00000000 00000000 93af7909 9477151a 257f9650 75d45378
+ars4x32 10 00000000 00000001 00000000 00000000 01000000 00000000 00000000 00000000 de139644 12373518 10a91988 b46ff4c9
+ars4x32 10 00000000 00000100 00000000 00000000 01000000 00000000 00000000 00000000 15d90584 72abfec9 e90d0b25 087a54aa
+ars4x32 10 00000000 00010000 00000000 00000000 01000000 00000000 00000000 00000000 f454dd05 18db0405 ba4da74e 135e6dd7
+ars4x32 10 00000000 01000000 00000000 00000000 01000000 00000000 00000000 00000000 57223ac0 691401c5 04289c5f 1fd99b47
+ars4x32 10 00000000 00000000 00000001 00000000 01000000 00000000 00000000 00000000 4d01c327 7eb0aae9 f8dbc2d1 4449f6da
+ars4x32 10 00000000 00000000 00000100 00000000 01000000 00000000 00000000 00000000 8802025e 2335325c 10681d07 485fa32d
+ars4x32 10 00000000 00000000 00010000 00000000 01000000 00000000 00000000 00000000 91fdb751 1e470175 13154e9b bd7a980c
+ars4x32 10 00000000 00000000 01000000 00000000 01000000 00000000 00000000 00000000 90de49e9 71233994 8524b5d9 9e02d455
+ars4x32 10 00000000 00000000 00000000 00000001 01000000 00000000 00000000 00000000 ad2d1804 acee0a47 bab650ea d4e5cb98
+ars4x32 10 00000000 00000000 00000000 00000100 01000000 00000000 00000000 00000000 f046e106 b280a9f6 af60ab90 3d102592
+ars4x32 10 00000000 00000000 00000000 00010000 01000000 00000000 00000000 00000000 437e3d76 6a0864c1 244daddf 6a018f67
+ars4x32 10 00000000 00000000 00000000 01000000 01000000 00000000 00000000 00000000 fc995c91 5eeb4755 2ed9f981 f4c15509
+ars4x32 10 0000ff00 00000000 00000000 00000000 01000000 00000000 00000000 00000000 3b59c5d2 70ba805d b0ea3ebd 0e369797
+ars4x32 10 00008000 00000000 00000000 00000000 01000000 00000000 00000000 00000000 80c308fc 49264772 811ea2e6 0332d35f
+ars4x32 10 00ff0000 00000000 00000000 00000000 01000000 00000000 00000000 00000000 b59962e6 31218d76 eb1dc97e 09d71d31
+ars4x32 10 00800000 00000000 00000000 00000000 01000000 00000000 00000000 00000000 94049e5b 21f2ad69 aaeea03b 2dbe9379
+ars4x32 10 ff000000 00000000 00000000 00000000 01000000 00000000 00000000 00000000 86b06282 ddc76d90 47b21c7a 6d426bb8
+ars4x32 10 80000000 00000000 00000000 00000000 01000000 00000000 00000000 00000000 80f4e2bd f5b8d606 563e0268 5c79dee5
+ars4x32 10 00000000 000000ff 00000000 00000000 01000000 00000000 00000000 00000000 1701491b 144d5be1 7a2abfa6 1539d924
+ars4x32 10 00000000 00000080 00000000 00000000 01000000 00000000 00000000 00000000 2df222cd 1e1d897a a8338527 0d932cbb
+ars4x32 10 00000000 0000ff00 00000000 00000000 01000000 00000000 00000000 00000000 158de244 1384539d 0820155b b97fbfde
+ars4x32 10 00000000 00008000 00000000 00000000 01000000 00000000 00000000 00000000 472c8495 a2ffa86e 0f8f0023 02725dcd
+ars4x32 10 00000000 00ff0000 00000000 00000000 01000000 00000000 00000000 00000000 41498fde da77bceb dad8421f 6c03848b
+ars4x32 10 00000000 00800000 00000000 00000000 01000000 00000000 00000000 00000000 6485b186 a59cc5d2 d235ca5a ddb2a88a
+ars4x32 10 00000000 ff000000 00000000 00000000 01000000 00000000 00000000 00000000 51a11ce0 4ee3b8d6 3eedc6c5 42fc8b28
+ars4x32 10 00000000 80000000 00000000 00000000 01000000 00000000 00000000 00000000 4091fc6c 65000c0c 1236a673 c3d26d7e
+ars4x32 10 00000000 00000000 000000ff 00000000 01000000 00000000 00000000 00000000 498db7a3 386ecc4f 1b39a73e 61a74aa6
+ars4x32 10 00000000 00000000 00000080 00000000 01000000 00000000 00000000 00000000 4faf0b29 8aab2130 81b0d347 a1c0701e
+ars4x32 10 00000000 00000000 0000ff00 00000000 01000000 00000000 00000000 00000000 da0b6dd1 d5ecde42 99cd9db1 410c63b6
+ars4x32 10 00000000 00000000 00008000 00000000 01000000 00000000 00000000 00000000 11873158 9c5af954 4afd1c56 ef1a5b58
+ars4x32 10 00000000 00000000 00ff0000 00000000 01000000 00000000 00000000 00000000 2577dc2d c937bf7e 70db2e79 12fec747
+ars4x32 10 00000000 00000000 00800000 00000000 01000000 00000000 00000000 00000000 84125aa3 95cd880f 84b3a5ae 5bc903d5
+ars4x32 10 00000000 00000000 ff000000 00000000 01000000 00000000 00000000 00000000 491bff18 a58abc16 980f071b 3efc1a0f
+ars4x32 10 00000000 00000000 80000000 00000000 01000000 00000000 00000000 00000000 3bf95ff6 e2331d1e 1d7120f5 909ef332
+ars4x32 10 00000000 00000000 00000000 000000ff 01000000 00000000 00000000 00000000 cbf60703 aefcd779 c448583e fd7e1d9f
+ars4x32 10 00000000 00000000 00000000 00000080 01000000 00000000 00000000 00000000 694d10a6 83259031 7eac1d10 876c6404
+ars4x32 10 00000000 00000000 00000000 0000ff00 01000000 00000000 00000000 00000000 d3d427ec 67a13a84 5bdcb359 37356889
+ars4x32 10 00000000 00000000 00000000 00008000 01000000 00000000 00000000 00000000 2790c7e3 3b276547 4e807221 811fc030
+ars4x32 10 00000000 00000000 00000000 00ff0000 01000000 00000000 00000000 00000000 e9b889b3 07dc1d5c 69d3481f 088a62a3
+ars4x32 10 00000000 00000000 00000000 00800000 01000000 00000000 00000000 00000000 3b19c924 8eb03fee 7729ea7d 208a494f
+ars4x32 10 00000000 00000000 00000000 ff000000 01000000 00000000 00000000 00000000 838374fa ce7514da 84b027c5 bb34b237
+ars4x32 10 00000000 00000000 00000000 80000000 01000000 00000000 00000000 00000000 81617bdf 3cbce010 39410cbd 8f866b7e
+ars4x32 10 886a3f24 d308a385 2e8a1913 44737003 01000000 00000000 00000000 00000000 beb5befb 81de37f7 9d71d7f3 1355920a
+ars4x32 10 223809a4 d0319f29 98fa2e08 896c4eec 01000000 00000000 00000000 00000000 95d1beab 03d40658 8a3c77c8 c7ff1269
+ars4x32 10 e6212845 7713d038 cf6654be 6c0ce934 01000000 00000000 00000000 00000000 b7fde77f 17befdd0 62cdc28e df0fc922
+ars4x32 10 00000001 00000000 00000000 00000000 00000000 00000001 00000000 00000000 bfd4f3d1 ecc3187a cdff4528 1718ed47
+ars4x32 10 00000100 00000000 00000000 00000000 00000000 00000001 00000000 00000000 40ce4318 f222abd1 d504fc5c 2bcfb432
+ars4x32 10 00010000 00000000 00000000 00000000 00000000 00000001 00000000 00000000 acb1f467 2e1e7d92 8ae54caa 4c40966d
+ars4x32 10 01000000 00000000 00000000 00000000 00000000 00000001 00000000 00000000 31f42074 9b42fec4 6904b2e6 a0394425
+ars4x32 10 00000000 00000001 00000000 00000000 00000000 00000001 00000000 00000000 97bf20ea 01410ccd 903cbe64 9a01639a
+ars4x32 10 00000000 00000100 00000000 00000000 00000000 00000001 00000000 00000000 7eabeb65 5838f760 b6d5acb7 9946e5f3
+ars4x32 10 00000000 00010000 00000000 00000000 00000000 00000001 00000000 00000000 9293178d 1488e417 92b6b94c 6bee2ed3
+ars4x32 10 00000000 01000000 00000000 00000000 00000000 00000001 00000000 00000000 e1e6e986 ff6a5697 6990f8e7 2ff09e37
+ars4x32 10 00000000 00000000 00000001 00000000 00000000 00000001 00000000 00000000 30641bb8 95408420 559d692f 9da284a8
+ars4x32 10 00000000 00000000 00000100 00000000 00000000 00000001 00000000 00000000 d367be4f 153ce862 ec4caf3e b541f0c9
+ars4x32 10 00000000 00000000 00010000 00000000 00000000 00000001 00000000 00000000 3e38cb33 a34ca8b2 a5ce5b8f c3698852
+ars4x32 10 00000000 00000000 01000000 00000000 00000000 00000001 00000000 00000000 459a9382 dcfb0e97 b448d680 ad54f2e0
+ars4x32 10 00000000 00000000 00000000 00000001 00000000 00000001 00000000 00000000 d8b662a7 fdcf5fc6 8362b5d1 c49d7fdd
+ars4x32 10 00000000 00000000 00000000 00000100 00000000 00000001 00000000 00000000 631d0b89 aa692571 3b6fbd45 23b148ec
+ars4x32 10 00000000 00000000 00000000 00010000 00000000 00000001 00000000 00000000 2d239410 b738d860 03a139fd 83c2e20f
+ars4x32 10 00000000 00000000 00000000 01000000 00000000 00000001 00000000 00000000 78f4cc47 8e254e87 423e3555 bdd03738
+ars4x32 10 0000ff00 00000000 00000000 00000000 00000000 00000001 00000000 00000000 96100ad9 afb67343 a017ef86 e81ff838
+ars4x32 10 00008000 00000000 00000000 00000000 00000000 00000001 00000000 00000000 a31342cd be973fc0 cd421b80 4ce07c86
+ars4x32 10 00ff0000 00000000 00000000 00000000 00000000 00000001 00000000 00000000 75040d45 c26cc386 1a72b4d8 168c7cc7
+ars4x32 10 00800000 00000000 00000000 00000000 00000000 00000001 00000000 00000000 7b391fd8 721c3746 5b681c84 1ed54b5c
+ars4x32 10 ff000000 00000000 00000000 00000000 00000000 00000001 00000000 00000000 2710673e 74feb97b 5da20bcf dd664a98
+ars4x32 10 80000000 00000000 00000000 00000000 00000000 00000001 00000000 00000000 5b29f83b 1cc13a86 c33cea1f 078f80e9
+ars4x32 10 00000000 000000ff 00000000 00000000 00000000 00000001 00000000 00000000 646f76d2 bcd60477 b114f75a 675d0eaf
+ars4x32 10 00000000 00000080 00000000 00000000 00000000 00000001 00000000 00000000 7e7fcfa1 5447f6c0 45acb805 ce1e029d
+ars4x32 10 00000000 0000ff00 00000000 00000000 00000000 00000001 00000000 00000000 f6c0cdd6 c00123bc dbdd876a 809954db
+ars4x32 10 00000000 00008000 00000000 00000000 00000000 00000001 00000000 00000000 1444a4c7 114a1082 ab0826e8 41b7ceff
+ars4x32 10 00000000 00ff0000 00000000 00000000 00000000 00000001 00000000 00000000 da769fd5 5dab338d d2651bf4 8ff5e181
+ars4x32 10 00000000 00800000 00000000 00000000 00000000 00000001 00000000 00000000 5f49458b f30e7822 37318817 431d9788
+ars4x32 10 00000000 ff000000 00000000 00000000 00000000 00000001 00000000 00000000 cd545d32 91fdfca3 ee1bc378 d5de49e3
+ars4x32 10 00000000 80000000 00000000 00000000 00000000 00000001 00000000 00000000 e2daef77 fdca4c2e af7e0fbe c4f92ca0
+ars4x32 10 00000000 00000000 000000ff 00000000 00000000 00000001 00000000 00000000 3c35a24d 054f1076 5608cdfe e0daab21
+ars4x32 10 00000000 00000000 00000080 00000000 00000000 00000001 00000000 00000000 2e7757ad 966ab208 d833608e bf8d94eb
+ars4x32 10 00000000 00000000 0000ff00 00000000 00000000 00000001 00000000 00000000 00efc870 541575d6 00596efa 9735d2d0
+ars4x32 10 00000000 00000000 00008000 00000000 00000000 00000001 00000000 00000000 c4de9e0a cd3b7939 19c2ca34 91cc6caa
+ars4x32 10 00000000 00000000 00ff0000 00000000 00000000 00000001 00000000 00000000 ad5c7145 608b2764 2688d22a 4ce0fbf8
+ars4x32 10 00000000 00000000 00800000 00000000 00000000 00000001 00000000 00000000 f41ba454 80441dfc 3405e53b d794fd33
+ars4x32 10 00000000 00000000 ff000000 00000000 00000000 00000001 00000000 00000000 60be9130 b451879b 19922d8f 1f9a4fd3
+ars4x32 10 00000000 00000000 80000000 00000000 00000000 00000001 00000000 00000000 67800d7c 07db99ce 6ffbcfc7 755321a4
+ars4x32 10 00000000 00000000 00000000 000000ff 00000000 00000001 00000000 00000000 13894f1d 2488f85d e904b6f0 3840c79f
+ars4x32 10 00000000 00000000 00000000 00000080 00000000 00000001 00000000 00000000 58f7922b aa6ce608 d93bd8d8 3ca9f6ea
+ars4x32 10 00000000 00000000 00000000 0000ff00 00000000 00000001 00000000 00000000 528acc48 9aa02e61 5521500e 18555b6c
+ars4x32 10 00000000 00000000 00000000 00008000 00000000 00000001 00000000 00000000 508109ec 559b7023 64e3e562 2df69fba
+ars4x32 10 00000000 00000000 00000000 00ff0000 00000000 00000001 00000000 00000000 18b56a1a 417812b1 263c7be3 b37183c1
+ars4x32 10 00000000 00000000 00000000 00800000 00000000 00000001 00000000 00000000 c0d51b22 2fbc6c94 57bc4bd6 68cf5022
+ars4x32 10 00000000 00000000 00000000 ff000000 00000000 00000001 00000000 00000000 2e7460db 9fa33fee 41d322bd f82953c5
+ars4x32 10 00000000 00000000 00000000 80000000 00000000 00000001 00000000 00000000 6477708d b6ed7061 fb9047db 8a42e3cf
+ars4x32 10 886a3f24 d308a385 2e8a1913 44737003 00000000 00000001 00000000 00000000 41e2795a f4c16966 19d92cf2 2ca279a9
+ars4x32 10 223809a4 d0319f29 98fa2e08 896c4eec 00000000 00000001 00000000 00000000 58b993db 5576ccd3 74d2aba9 ccc12df4
+ars4x32 10 e6212845 7713d038 cf6654be 6c0ce934 00000000 00000001 00000000 00000000 aaf7fc35 5f3edfb9 6ccd2e41 23239042
+ars4x32 10 00000001 00000000 00000000 00000000 00000000 00000100 00000000 00000000 060e57e2 5b2951fc f1a12bba 6ee00755
+ars4x32 10 00000100 00000000 00000000 00000000 00000000 00000100 00000000 00000000 74c867ed a4d7421a 9096722a dbfe336b
+ars4x32 10 00010000 00000000 00000000 00000000 00000000 00000100 00000000 00000000 c22c998a c1cc03e1 9321470c 1a917550
+ars4x32 10 01000000 00000000 00000000 00000000 00000000 00000100 00000000 00000000 b3399733 41a29fc2 f853ab4f a5335c76
+ars4x32 10 00000000 00000001 00000000 00000000 00000000 00000100 00000000 00000000 4748503e 0cac3731 08b43c28 978e8899
+ars4x32 10 00000000 00000100 00000000 00000000 00000000 00000100 00000000 00000000 06ed60de fddd401d 42481e9f 75b1a5a3
+ars4x32 10 00000000 00010000 00000000 00000000 00000000 00000100 00000000 00000000 6721c6c7 d20d3ebe f3fe66b5 ff71a033
+ars4x32 10 00000000 01000000 00000000 00000000 00000000 00000100 00000000 00000000 95ba8f60 67834224 a72d0de8 15cbdfa7
+ars4x32 10 00000000 00000000 00000001 00000000 00000000 00000100 00000000 00000000 2fddcba6 995c62e9 2958150d b9f739df
+ars4x32 10 00000000 00000000 00000100 00000000 00000000 00000100 00000000 00000000 3a2813c1 7a71f3a9 a556f619 21cba117
+ars4x32 10 00000000 00000000 00010000 00000000 00000000 00000100 00000000 00000000 ba1c117b 81b89f93 201c9b0b 111e7fc3
+ars4x32 10 00000000 00000000 01000000 00000000 00000000 00000100 00000000 00000000 e7bf6a5a 03c8d18b f1b9a08d 63a58137
+ars4x32 10 00000000 00000000 00000000 00000001 00000000 00000100 00000000 00000000 eacd39d2 c0b6a1f1 94322d0b c6c343aa
+ars4x32 10 00000000 00000000 00000000 00000100 00000000 00000100 00000000 00000000 dbaf44de edfe1d58 36275f08 3986269e
+ars4x32 10 00000000 00000000 00000000 00010000 00000000 00000100 00000000 00000000 a57d1092 2f544c57 13bc0871 fa43d886
+ars4x32 10 00000000 00000000 00000000 01000000 00000000 00000100 00000000 00000000 5a9a6ce7 650a3536 9f6e6f49 3891361d
+ars4x32 10 0000ff00 00000000 00000000 00000000 00000000 00000100 00000000 00000000 1d628619 73d8a773 18f02dbf e8ff2d8b
+ars4x32 10 00008000 00000000 00000000 00000000 00000000 00000100 00000000 00000000 10bbe054 e899a607 e6f6c151 4fa59102
+ars4x32 10 00ff0000 00000000 00000000 00000000 00000000 00000100 00000000 00000000 00d3c748 0412c157 030d7094 bbb9b671
+ars4x32 10 00800000 00000000 00000000 00000000 00000000 00000100 00000000 00000000 b1f4fb4e cf597a37 bc42d357 77fef051
+ars4x32 10 ff000000 00000000 00000000 00000000 00000000 00000100 00000000 00000000 bcdbfc69 2d2f450e 2f48a872 0e5a2aad
+ars4x32 10 80000000 00000000 00000000 00000000 00000000 00000100 00000000 00000000 9a195442 9cf3a70b fb778338 be621807
+ars4x32 10 00000000 000000ff 00000000 00000000 00000000 00000100 00000000 00000000 8f746c68 0f34e2cb a9bbad63 fcb9ed3e
+ars4x32 10 00000000 00000080 00000000 00000000 00000000 00000100 00000000 00000000 e209361f b9d770d0 f0401031 14471c8c
+ars4x32 10 00000000 0000ff00 00000000 00000000 00000000 00000100 00000000 00000000 14587472 aee079a7 9d248e9b 84bf98d5
+ars4x32 10 00000000 00008000 00000000 00000000 00000000 00000100 00000000 00000000 5617cd7e cf121cb3 a7fea455 602172fe
+ars4x32 10 00000000 00ff0000 00000000 00000000 00000000 00000100 00000000 00000000 ebcf671f 5c5b7c31 c23126a7 8a213279
+ars4x32 10 00000000 00800000 00000000 00000000 00000000 00000100 00000000 00000000 a2c9274b 0df40531 0e1fb929 12c747d4
+ars4x32 10 00000000 ff000000 00000000 00000000 00000000 00000100 00000000 00000000 08671a9f 3c455428 b10ed0ff a03c7578
+ars4x32 10 00000000 80000000 00000000 00000000 00000000 00000100 00000000 00000000 ab400477 e772d792 c852367e b3be7c96
+ars4x32 10 00000000 00000000 000000ff 00000000 00000000 00000100 00000000 00000000 8ad68f38 00412fbe 5d7b18be e168bac7
+ars4x32 10 00000000 00000000 00000080 00000000 00000000 00000100 00000000 00000000 74c7af57 08dc5f8b 3ab9cd75 cdd2b74a
+ars4x32 10 00000000 00000000 0000ff00 00000000 00000000 00000100 00000000 00000000 992ce9ed 8d739ea1 21aba89a 4f4001d3
+ars4x32 10 00000000 00000000 00008000 00000000 00000000 00000100 00000000 00000000 13ad16b2 bd562f32 a42a41ef 736d72b2
+ars4x32 10 00000000 00000000 00ff0000 00000000 00000000 00000100 00000000 00000000 cb573a84 0f0ddb71 1f5a43f1 e874ea9e
+ars4x32 10 00000000 00000000 00800000 00000000 00000000 00000100 00000000 00000000 aefac238 c2550422 e7c52da2 1e296fb1
+ars4x32 10 00000000 00000000 ff000000 00000000 00000000 00000100 00000000 00000000 31ee3d43 ca3deb61 fb236218 36ce79e0
+ars4x32 10 00000000 00000000 80000000 00000000 00000000 00000100 00000000 00000000 0173e654 5938583b 134210ce faaf72cf
+ars4x32 10 00000000 00000000 00000000 000000ff 00000000 00000100 00000000 00000000 71d627bf d946907f a0632309 b1e5cf47
+ars4x32 10 00000000 00000000 00000000 00000080 00000000 00000100 00000000 00000000 2b7a2f55 1b843650 566c98b8 5b792892
+ars4x32 10 00000000 00000000 00000000 0000ff00 00000000 00000100 00000000 00000000 6449f4cb d91cc504 8e90409e 15ced0ce
+ars4x32 10 00000000 00000000 00000000 00008000 00000000 00000100 00000000 00000000 8174d8b0 c0ee31ef 972940b1 403d1f21
+ars4x32 10 00000000 00000000 00000000 00ff0000 00000000 00000100 00000000 00000000 80f58285 8bb0a5e2 78664e39 5222725a
+ars4x32 10 00000000 00000000 00000000 00800000 00000000 00000100 00000000 00000000 a6e5122d 86a514fc 699eaf15 3a32b327
+ars4x32 10 00000000 00000000 00000000 ff000000 00000000 00000100 00000000 00000000 168f76ba 20b994ee 62f80250 d965092b
+ars4x32 10 00000000 00000000 00000000 80000000 00000000 00000100 00000000 00000000 6c332825 becccb7e 8a044408 38e14a79
+ars4x32 10 886a3f24 d308a385 2e8a1913 44737003 00000000 00000100 00000000 00000000 62e41263 47de94d7 3bef0ab5 99b7c6c3
+ars4x32 10 223809a4 d0319f29 98fa2e08 896c4eec 00000000 00000100 00000000 00000000 df68edfe f42fbd44 552f75c1 449bff8d
+ars4x32 10 e6212845 7713d038 cf6654be 6c0ce934 00000000 00000100 00000000 00000000 32409ac9 d4afe040 3d4166b7 b5ba0843
+ars4x32 10 00000001 00000000 00000000 00000000 00000000 00010000 00000000 00000000 79744520 ab471dee 2229ee76 142f29a5
+ars4x32 10 00000100 00000000 00000000 00000000 00000000 00010000 00000000 00000000 da1f0f64 3ac98f1a dfcfdc39 91c5493c
+ars4x32 10 00010000 00000000 00000000 00000000 00000000 00010000 00000000 00000000 8063c637 8143b753 efbb9cc6 a4779ea0
+ars4x32 10 01000000 00000000 00000000 00000000 00000000 00010000 00000000 00000000 41c71d46 39e540b0 b1edeb98 3f40c392
+ars4x32 10 00000000 00000001 00000000 00000000 00000000 00010000 00000000 00000000 e3010a49 beecef10 19fed042 d6d65129
+ars4x32 10 00000000 00000100 00000000 00000000 00000000 00010000 00000000 00000000 c61ae084 122f9d86 417c0ab6 64f63ddd
+ars4x32 10 00000000 00010000 00000000 00000000 00000000 00010000 00000000 00000000 088ac5bb 0cd34875 75552299 b46d2df9
+ars4x32 10 00000000 01000000 00000000 00000000 00000000 00010000 00000000 00000000 472a81ed a0f827b8 ea577e51 efee88e1
+ars4x32 10 00000000 00000000 00000001 00000000 00000000 00010000 00000000 00000000 245b80d4 511c60bc fda74051 4cc6874c
+ars4x32 10 00000000 00000000 00000100 00000000 00000000 00010000 00000000 00000000 1a874d01 b1fa2411 8a79844a 609e11d0
+ars4x32 10 00000000 00000000 00010000 00000000 00000000 00010000 00000000 00000000 5b0e23d8 94ded59e 4f0280e4 4de98d46
+ars4x32 10 00000000 00000000 01000000 00000000 00000000 00010000 00000000 00000000 b396a7e4 adc70056 ce376050 7028adb3
+ars4x32 10 00000000 00000000 00000000 00000001 00000000 00010000 00000000 00000000 6e21e594 7a62bd3e 4abb9ed4 838dc27c
+ars4x32 10 00000000 00000000 00000000 00000100 00000000 00010000 00000000 00000000 88974616 cf4faf02 ee9f97d4 b7f44dfa
+ars4x32 10 00000000 00000000 00000000 00010000 00000000 00010000 00000000 00000000 6e263cf1 791e4a77 69213927 51eb46d0
+ars4x32 10 00000000 00000000 00000000 01000000 00000000 00010000 00000000 00000000 17a1f6b9 450efddb 5f369ea1 e259d647
+ars4x32 10 0000ff00 00000000 00000000 00000000 00000000 00010000 00000000 00000000 db2b30fd 1eb49923 6e46d2ad b41ea3e2
+ars4x32 10 00008000 00000000 00000000 00000000 00000000 00010000 00000000 00000000 cdf245ec 1eafa5af c8d72b40 1e7e33b0
+ars4x32 10 00ff0000 00000000 00000000 00000000 00000000 00010000 00000000 00000000 112ea2b5 eeb733dd d9190cf1 d6fca246
+ars4x32 10 00800000 00000000 00000000 00000000 00000000 00010000 00000000 00000000 156db0b5 afdb177e 882309da b3acd61c
+ars4x32 10 ff000000 00000000 00000000 00000000 00000000 00010000 00000000 00000000 666d782b 0c479c66 b149ccd0 b822c6a8
+ars4x32 10 80000000 00000000 00000000 00000000 00000000 00010000 00000000 00000000 3c3871b8 ec24e8f0 24949528 302f11c0
+ars4x32 10 00000000 000000ff 00000000 00000000 00000000 00010000 00000000 00000000 b94bb344 533ec7fc 2ee3a059 f15953bf
+ars4x32 10 00000000 00000080 00000000 00000000 00000000 00010000 00000000 00000000 9bcf62ce 52c7fad3 1df2cfaa ba441314
+ars4x32 10 00000000 0000ff00 00000000 00000000 00000000 00010000 00000000 00000000 3d86e62b 0b798100 18f85c0b c758eaff
+ars4x32 10 00000000 00008000 00000000 00000000 00000000 00010000 00000000 00000000 503004e7 ef0fbb14 098e9cdc ce9eb330
+ars4x32 10 00000000 00ff0000 00000000 00000000 00000000 00010000 00000000 00000000 a5ca0432 f1b38bb4 5b9a8918 ff286165
+ars4x32 10 00000000 00800000 00000000 00000000 00000000 00010000 00000000 00000000 c1c96fee 935518f6 67986b63 f2c8a5cd
+ars4x32 10 00000000 ff000000 00000000 00000000 00000000 00010000 00000000 00000000 8fe8428e ddfaf73c 563ef193 090dc8db
+ars4x32 10 00000000 80000000 00000000 00000000 00000000 00010000 00000000 00000000 6398312c dfd17c95 c85f20d3 f618c47b
+ars4x32 10 00000000 00000000 000000ff 00000000 00000000 00010000 00000000 00000000 333d8f64 3fb516e2 bb91bd0e a031b72e
+ars4x32 10 00000000 00000000 00000080 00000000 00000000 00010000 00000000 00000000 15d89365 a663b6ee 20f86c41 24e71dbc
+ars4x32 10 00000000 00000000 0000ff00 00000000 00000000 00010000 00000000 00000000 6865715a 19a35bfd fcbbeafa 44b787e4
+ars4x32 10 00000000 00000000 00008000 00000000 00000000 00010000 00000000 00000000 5ae0faf9 8779d15d 524734e3 a7f0cf34
+ars4x32 10 00000000 00000000 00ff0000 00000000 00000000 00010000 00000000 00000000 ee108acb 4d5a248c 52045add 2ddf877d
+ars4x32 10 00000000 00000000 00800000 00000000 00000000 00010000 00000000 00000000 6b99345b 5e99a8a3 f396433e a9d49c98
+ars4x32 10 00000000 00000000 ff000000 00000000 00000000 00010000 00000000 00000000 059bfcc1 c7584fbd 3f1e4a70 ac3957ed
+ars4x32 10 00000000 00000000 80000000 00000000 00000000 00010000 00000000 00000000 b6d51c0e cfcf17ae cf3b9440 00fc2908
+ars4x32 10 00000000 00000000 00000000 000000ff 00000000 00010000 00000000 00000000 6c728ec5 f8f32e4b 4b35172a f8f8395c
+ars4x32 10 00000000 00000000 00000000 00000080 00000000 00010000 00000000 00000000 28dbd11e b5748583 934b929e a6700643
+ars4x32 10 00000000 00000000 00000000 0000ff00 00000000 00010000 00000000 00000000 811ceff5 2eea3339 e548ef68 15c50b0f
+ars4x32 10 00000000 00000000 00000000 00008000 00000000 00010000 00000000 00000000 e2883bbc 74ea0e81 fb1756e3 943d29b0
+ars4x32 10 00000000 00000000 00000000 00ff0000 00000000 00010000 00000000 00000000 5f3863d1 4a71611b b2c055a2 79e7fa19
+ars4x32 10 00000000 00000000 00000000 00800000 00000000 00010000 00000000 00000000 69c24de1 6e892c47 e493bf8c 2899cc43
+ars4x32 10 00000000 00000000 00000000 ff000000 00000000 00010000 00000000 00000000 cbd7176f 72a9ab45 93c16a50 f3fe8bc6
+ars4x32 10 00000000 00000000 00000000 80000000 00000000 00010000 00000000 00000000 d75a6592 be01362b 7976f7d3 0adbb2a8
+ars4x32 10 886a3f24 d308a385 2e8a1913 44737003 00000000 00010000 00000000 00000000 3ddaafe2 6fe742c5 354f8a52 d6d29e5a
+ars4x32 10 223809a4 d0319f29 98fa2e08 896c4eec 00000000 00010000 00000000 00000000 ef6fb762 4cd0001d 16c68b0b 2dbb0aba
+ars4x32 10 e6212845 7713d038 cf6654be 6c0ce934 00000000 00010000 00000000 00000000 7995d3ed d1ff5dd4 a66c5408 b7b57f46
+ars4x32 10 00000001 00000000 00000000 00000000 00000000 01000000 00000000 00000000 3fb0f209 ec46902b b0cb92f0 71cd4dc8
+ars4x32 10 00000100 00000000 00000000 00000000 00000000 01000000 00000000 00000000 e37240c3 940ecd2c 8a8b8880 825c2d60
+ars4x32 10 00010000 00000000 00000000 00000000 00000000 01000000 00000000 00000000 874b17f1 25ddfd8e dbb86906 c239527e
+ars4x32 10 01000000 00000000 00000000 00000000 00000000 01000000 00000000 00000000 b4216b45 8d5efd6c d0b0cf3c afc15920
+ars4x32 10 00000000 00000001 00000000 00000000 00000000 01000000 00000000 00000000 1c0a1a33 0c58d79a 1dc31f0a 3f3e48ad
+ars4x32 10 00000000 00000100 00000000 00000000 00000000 01000000 00000000 00000000 f1131a69 c1ada617 09b19130 bb3a2dd6
+ars4x32 10 00000000 00010000 00000000 00000000 00000000 01000000 00000000 00000000 d7c2737f f4e4cd53 8d555496 bc8588cb
+ars4x32 10 00000000 01000000 00000000 00000000 00000000 01000000 00000000 00000000 54e46015 02c0955b 570df0fa 5a4ee4ce
+ars4x32 10 00000000 00000000 00000001 00000000 00000000 01000000 00000000 00000000 330d20b0 becff70f 69e6b919 edfa2357
+ars4x32 10 00000000 00000000 00000100 00000000 00000000 01000000 00000000 00000000 9c521989 4b461e45 c1728d66 47a5c9e3
+ars4x32 10 00000000 00000000 00010000 00000000 00000000 01000000 00000000 00000000 98930d07 5b30e46c 86d53a54 dc47bd07
+ars4x32 10 00000000 00000000 01000000 00000000 00000000 01000000 00000000 00000000 4ba983e8 06bbbcd3 30d0c62e 3de153b5
+ars4x32 10 00000000 00000000 00000000 00000001 00000000 01000000 00000000 00000000 e9ee0e5a 4a518bec 48d97ffb 1a051110
+ars4x32 10 00000000 00000000 00000000 00000100 00000000 01000000 00000000 00000000 7382e3ed a18970ab 114f2724 94722940
+ars4x32 10 00000000 00000000 00000000 00010000 00000000 01000000 00000000 00000000 459b82b3 1ebb9005 5b8b6b37 dddc4c1d
+ars4x32 10 00000000 00000000 00000000 01000000 00000000 01000000 00000000 00000000 9f5a2184 e3010010 8b75e977 6f9e0698
+ars4x32 10 0000ff00 00000000 00000000 00000000 00000000 01000000 00000000 00000000 77c4a50c b3d073e7 c3e061e7 56118fe4
+ars4x32 10 00008000 00000000 00000000 00000000 00000000 01000000 00000000 00000000 d9d8eb8e e2370636 2d916219 39ad2085
+ars4x32 10 00ff0000 00000000 00000000 00000000 00000000 01000000 00000000 00000000 28e28abe 3972d404 31eb3d2f 0324d171
+ars4x32 10 00800000 00000000 00000000 00000000 00000000 01000000 00000000 00000000 1ee43af3 02e8fb9e 9b94a6b8 213cbc8d
+ars4x32 10 ff000000 00000000 00000000 00000000 00000000 01000000 00000000 00000000 96ba9165 84971203 2a5af6d7 cfbe4757
+ars4x32 10 80000000 00000000 00000000 00000000 00000000 01000000 00000000 00000000 f3b43fb3 7c208a83 a33d5ddd 2206abdd
+ars4x32 10 00000000 000000ff 00000000 00000000 00000000 01000000 00000000 00000000 a8621d78 c3bdef73 40fa56d4 9d5df72d
+ars4x32 10 00000000 00000080 00000000 00000000 00000000 01000000 00000000 00000000 53117285 512402a4 002f894c 1fca6b16
+ars4x32 10 00000000 0000ff00 00000000 00000000 00000000 01000000 00000000 00000000 c6e4be24 808dc4d1 4d0485fd c0445b33
+ars4x32 10 00000000 00008000 00000000 00000000 00000000 01000000 00000000 00000000 8b9639ad 06d9825d 2bccd907 7a288325
+ars4x32 10 00000000 00ff0000 00000000 00000000 00000000 01000000 00000000 00000000 94772093 aa59262d 2fdf153e 74b4dcb3
+ars4x32 10 00000000 00800000 00000000 00000000 00000000 01000000 00000000 00000000 1b8cff46 9cefb067 69df31d3 1b739b43
+ars4x32 10 00000000 ff000000 00000000 00000000 00000000 01000000 00000000 00000000 0ee5bd64 1e83b18a a1e22225 868c1831
+ars4x32 10 00000000 80000000 00000000 00000000 00000000 01000000 00000000 00000000 1e9e60bd 813b3fd1 231f614a 84d597df
+ars4x32 10 00000000 00000000 000000ff 00000000 00000000 01000000 00000000 00000000 5efca986 7c4e56df de86fd5e 88bb87b7
+ars4x32 10 00000000 00000000 00000080 00000000 00000000 01000000 00000000 00000000 dd4e54e7 a25f2f2e a3010ebd c8f3fa61
+ars4x32 10 00000000 00000000 0000ff00 00000000 00000000 01000000 00000000 00000000 8bce1a3d 8f055227 cde20b9e 282de09d
+ars4x32 10 00000000 00000000 00008000 00000000 00000000 01000000 00000000 00000000 65b19137 c0aeb93a 38989860 fd7987a5
+ars4x32 10 00000000 00000000 00ff0000 00000000 00000000 01000000 00000000 00000000 0698b753 8b1a360a 47ed543f 723f8714
+ars4x32 10 00000000 00000000 00800000 00000000 00000000 01000000 00000000 00000000 f252603c 25733ab7 1890301e d99576c1
+ars4x32 10 00000000 00000000 ff000000 00000000 00000000 01000000 00000000 00000000 94234fe0 d5978da9 b557b299 8281fc07
+ars4x32 10 00000000 00000000 80000000 00000000 00000000 01000000 00000000 00000000 f03e782d b654780b 9ed5614d 9a050adf
+ars4x32 10 00000000 00000000 00000000 000000ff 00000000 01000000 00000000 00000000 7f5fa570 0e293e10 1f9fda22 e843efe2
+ars4x32 10 00000000 00000000 00000000 00000080 00000000 01000000 00000000 00000000 bd3027f3 fb400d64 9bc46c03 f2d69986
+ars4x32 10 00000000 00000000 00000000 0000ff00 00000000 01000000 00000000 00000000 3b283179 c530d618 121e3991 b0151d60
+ars4x32 10 00000000 00000000 00000000 00008000 00000000 01000000 00000000 00000000 bad9bfb6 8e6d58d2 ec9ca2db 53d305b0
+ars4x32 10 00000000 00000000 00000000 00ff0000 00000000 01000000 00000000 00000000 40b89c8f 06ec7b3a db7e2330 2e6924ff
+ars4x32 10 00000000 00000000 00000000 00800000 00000000 01000000 00000000 00000000 b2f5b121 47028501 2e42db1f beabfc13
+ars4x32 10 00000000 00000000 00000000 ff000000 00000000 01000000 00000000 00000000 23130470 729b594a 8d436499 592b860f
+ars4x32 10 00000000 00000000 00000000 80000000 00000000 01000000 00000000 00000000 d644c6c2 079ade86 ea18abff 1599ac31
+ars4x32 10 886a3f24 d308a385 2e8a1913 44737003 00000000 01000000 00000000 00000000 eec33e51 af4070e6 70867f49 f2c76cb5
+ars4x32 10 223809a4 d0319f29 98fa2e08 896c4eec 00000000 01000000 00000000 00000000 8a5612a0 59d12ee9 81d1e679 64880e10
+ars4x32 10 e6212845 7713d038 cf6654be 6c0ce934 00000000 01000000 00000000 00000000 fa481e8a 4aee6a4a 3743c22b 43c29a06
+ars4x32 10 00000001 00000000 00000000 00000000 00000000 00000000 00000001 00000000 3b6da218 dead2919 1881c9f1 1fbae2fa
+ars4x32 10 00000100 00000000 00000000 00000000 00000000 00000000 00000001 00000000 cca52c27 2c7f5e1e 018a877b 0427fcf3
+ars4x32 10 00010000 00000000 00000000 00000000 00000000 00000000 00000001 00000000 bfbd5600 484665db e30ba803 029ac957
+ars4x32 10 01000000 00000000 00000000 00000000 00000000 00000000 00000001 00000000 0207c89e e2faa9a2 9c6f6b7f bf644286
+ars4x32 10 00000000 00000001 00000000 00000000 00000000 00000000 00000001 00000000 28a535e4 1e633eab 9e99accd 39dfbac7
+ars4x32 10 00000000 00000100 00000000 00000000 00000000 00000000 00000001 00000000 3a3da075 f7b97e3c 92ddd583 a9c0515a
+ars4x32 10 00000000 00010000 00000000 00000000 00000000 00000000 00000001 00000000 ea044d54 72acc464 9f564e5a 8e803cf6
+ars4x32 10 00000000 01000000 00000000 00000000 00000000 00000000 00000001 00000000 30b877dc 27cbee0e e157547a b50a3229
+ars4x32 10 00000000 00000000 00000001 00000000 00000000 00000000 00000001 00000000 03fadd0d f684cc55 c93a2bc6 3157a8aa
+ars4x32 10 00000000 00000000 00000100 00000000 00000000 00000000 00000001 00000000 9cd1c3dc 9cbf9642 5bba5f7e cc57560e
+ars4x32 10 00000000 00000000 00010000 00000000 00000000 00000000 00000001 00000000 5d45da73 ad72f4e5 217d6f04 e01018e8
+ars4x32 10 00000000 00000000 01000000 00000000 00000000 00000000 00000001 00000000 4f79a630 681862d0 9187a7a9 d2b6228b
+ars4x32 10 00000000 00000000 00000000 00000001 00000000 00000000 00000001 00000000 3f22ac01 326f4bdc dc59699a 31131031
+ars4x32 10 00000000 00000000 00000000 00000100 00000000 00000000 00000001 00000000 ca569cca 4a1234cc 011ef9e9 3acc0871
+ars4x32 10 00000000 00000000 00000000 00010000 00000000 00000000 00000001 00000000 35c2e79a 6d82a846 cfdb03ea 7cc737ec
+ars4x32 10 00000000 00000000 00000000 01000000 00000000 00000000 00000001 00000000 1607d796 6414bb50 f1d68168 415d0fe5
+ars4x32 10 0000ff00 00000000 00000000 00000000 00000000 00000000 00000001 00000000 b758a508 9a19d3d0 05cf6c00 aa56a110
+ars4x32 10 00008000 00000000 00000000 00000000 00000000 00000000 00000001 00000000 b318b4fa 9b487e27 6d78ccce b35d9944
+ars4x32 10 00ff0000 00000000 00000000 00000000 00000000 00000000 00000001 00000000 1a1c53b4 97410980 0fd3f17f 54e1b36d
+ars4x32 10 00800000 00000000 00000000 00000000 00000000 00000000 00000001 00000000 b352246e b53e32d1 fe17691a ce07debf
+ars4x32 10 ff000000 00000000 00000000 00000000 00000000 00000000 00000001 00000000 c012668a 91d42293 f0fa88db c46400b2
+ars4x32 10 80000000 00000000 00000000 00000000 00000000 00000000 00000001 00000000 520ca484 208436e1 2dd1d264 60baa37c
+ars4x32 10 00000000 000000ff 00000000 00000000 00000000 00000000 00000001 00000000 b60d427f 7f740c3a 8a42180a aa2435a5
+ars4x32 10 00000000 00000080 00000000 00000000 00000000 00000000 00000001 00000000 dccf627e f30e00ff 41aadaac 96b44f6d
+ars4x32 10 00000000 0000ff00 00000000 00000000 00000000 00000000 00000001 00000000 c9062243 f61fa301 4eae59e9 4bc9ca87
+ars4x32 10 00000000 00008000 00000000 00000000 00000000 00000000 00000001 00000000 589e53a9 e7a18b34 7f81eec5 448cde5a
+ars4x32 10 00000000 00ff0000 00000000 00000000 00000000 00000000 00000001 00000000 d3b52fa5 0bec4e82 db777641 d6d7ce1c
+ars4x32 10 00000000 00800000 00000000 00000000 00000000 00000000 00000001 00000000 646d0325 9a95656e 1f5bbc36 4f5c8d31
+ars4x32 10 00000000 ff000000 00000000 00000000 00000000 00000000 00000001 00000000 40e7ff1f 8db8807e 24e406c1 e7ffefe3
+ars4x32 10 00000000 80000000 00000000 00000000 00000000 00000000 00000001 00000000 7ab87d4c 22524953 f697bfd1 4a8fa5af
+ars4x32 10 00000000 00000000 000000ff 00000000 00000000 00000000 00000001 00000000 fb9990c5 17a82d5a ed61000e 1760b52c
+ars4x32 10 00000000 00000000 00000080 00000000 00000000 00000000 00000001 00000000 f0ab6fe4 ac81a8f8 d132ef2f 8562665e
+ars4x32 10 00000000 00000000 0000ff00 00000000 00000000 00000000 00000001 00000000 b14d9cb4 23e10b75 539a5993 54950f3f
+ars4x32 10 00000000 00000000 00008000 00000000 00000000 00000000 00000001 00000000 61f18fa8 10c72855 07238252 b84b8f85
+ars4x32 10 00000000 00000000 00ff0000 00000000 00000000 00000000 00000001 00000000 82295fb2 0113d8ae d125425d e218b87a
+ars4x32 10 00000000 00000000 00800000 00000000 00000000 00000000 00000001 00000000 74015001 8238716d 5bb7e8c8 82652e1e
+ars4x32 10 00000000 00000000 ff000000 00000000 00000000 00000000 00000001 00000000 b8fdcccc 79f12e50 8b5d2ca9 ae37ed3c
+ars4x32 10 00000000 00000000 80000000 00000000 00000000 00000000 00000001 00000000 f70d72cd 119d6244 f89d5ece de4ec4d4
+ars4x32 10 00000000 00000000 00000000 000000ff 00000000 00000000 00000001 00000000 47d26478 35548a5c 1f723bfa bbe42052
+ars4x32 10 00000000 00000000 00000000 00000080 00000000 00000000 00000001 00000000 123f01cb 59bb0542 edb94675 f8a2f093
+ars4x32 10 00000000 00000000 00000000 0000ff00 00000000 00000000 00000001 00000000 ae428db7 25a40404 9516b2af 2bbd3270
+ars4x32 10 00000000 00000000 00000000 00008000 00000000 00000000 00000001 00000000 830c6a08 968ea4da a9f6b36d a8756cfa
+ars4x32 10 00000000 00000000 00000000 00ff0000 00000000 00000000 00000001 00000000 31329a5a 3b79a414 73ce6f09 e056e02d
+ars4x32 10 00000000 00000000 00000000 00800000 00000000 00000000 00000001 00000000 04005865 5280e42d f93f8264 ea076ef7
+ars4x32 10 00000000 00000000 00000000 ff000000 00000000 00000000 00000001 00000000 335323f0 7e5a4c67 07d28bde 6ab5457b
+ars4x32 10 00000000 00000000 00000000 80000000 00000000 00000000 00000001 00000000 31032630 af692c8b 6c4a0149 a9182b0d
+ars4x32 10 886a3f24 d308a385 2e8a1913 44737003 00000000 00000000 00000001 00000000 dba9a18f 4a8ba058 d88ade5c 09d1295f
+ars4x32 10 223809a4 d0319f29 98fa2e08 896c4eec 00000000 00000000 00000001 00000000 5179b9c0 cb326d0d b21c57aa 5cfd9320
+ars4x32 10 e6212845 7713d038 cf6654be 6c0ce934 00000000 00000000 00000001 00000000 afe0e8b8 b51af1bc 09ccefba c5a5d5cb
+ars4x32 10 00000001 00000000 00000000 00000000 00000000 00000000 00000100 00000000 3a24e38a f2f479cb b01944b4 787db0cc
+ars4x32 10 00000100 00000000 00000000 00000000 00000000 00000000 00000100 00000000 ee3e1719 6df3d396 94aad58c 945d2a6a
+ars4x32 10 00010000 00000000 00000000 00000000 00000000 00000000 00000100 00000000 3636c4c0 f4de3eef abcd21b9 0fc39679
+ars4x32 10 01000000 00000000 00000000 00000000 00000000 00000000 00000100 00000000 4e290cbc 1187add7 050a4bee cd74796b
+ars4x32 10 00000000 00000001 00000000 00000000 00000000 00000000 00000100 00000000 310595d6 b0243ff4 0def94bb 489bcf09
+ars4x32 10 00000000 00000100 00000000 00000000 00000000 00000000 00000100 00000000 678986ee 95bc7c78 b62a2ef8 662a739d
+ars4x32 10 00000000 00010000 00000000 00000000 00000000 00000000 00000100 00000000 ee7ce9f3 c25c4244 2d3282d8 28a82909
+ars4x32 10 00000000 01000000 00000000 00000000 00000000 00000000 00000100 00000000 88b21a07 e239b7e0 b70453e5 bee35270
+ars4x32 10 00000000 00000000 00000001 00000000 00000000 00000000 00000100 00000000 ccb2bc2c 4720b4f4 8bd1a65a 5c069920
+ars4x32 10 00000000 00000000 00000100 00000000 00000000 00000000 00000100 00000000 7e2b8c2d d3f271cb e01e7725 e649c3f1
+ars4x32 10 00000000 00000000 00010000 00000000 00000000 00000000 00000100 00000000 dc4dc527 54543e6a d496bb0c bf332ffa
+ars4x32 10 00000000 00000000 01000000 00000000 00000000 00000000 00000100 00000000 4df06a29 7f665420 e75be145 0521f902
+ars4x32 10 00000000 00000000 00000000 00000001 00000000 00000000 00000100 00000000 6757fcd1 a4d214f0 ff160e06 2fbe68b9
+ars4x32 10 00000000 00000000 00000000 00000100 00000000 00000000 00000100 00000000 03c65f5d b129a136 7869bc83 7b9ae516
+ars4x32 10 00000000 00000000 00000000 00010000 00000000 00000000 00000100 00000000 712861d8 0dcd1b4a 08eef989 ae83de10
+ars4x32 10 00000000 00000000 00000000 01000000 00000000 00000000 00000100 00000000 d412f16e 4993bb53 5d4c46d7 83b47181
+ars4x32 10 0000ff00 00000000 00000000 00000000 00000000 00000000 00000100 00000000 4e06f6c5 6de2ef2a b6140d2f d5853b30
+ars4x32 10 00008000 00000000 00000000 00000000 00000000 00000000 00000100 00000000 ba20ecdb ac4192ef ecd7050c 9e65a71e
+ars4x32 10 00ff0000 00000000 00000000 00000000 00000000 00000000 00000100 00000000 5e9b4604 d42b487a cf95b31e 7ca7993b
+ars4x32 10 00800000 00000000 00000000 00000000 00000000 00000000 00000100 00000000 e83d44c2 e99d926f 479e4132 57dd525f
+ars4x32 10 ff000000 00000000 00000000 00000000 00000000 00000000 00000100 00000000 3ea2c8b5 e5987dd5 1894f0d7 6e9dc53f
+ars4x32 10 80000000 00000000 00000000 00000000 00000000 00000000 00000100 00000000 6c3dbb24 a4f93856 4c82b52a 488b9165
+ars4x32 10 00000000 000000ff 00000000 00000000 00000000 00000000 00000100 00000000 f8cb9348 bb0266c5 2cd842c5 26fc8c00
+ars4x32 10 00000000 00000080 00000000 00000000 00000000 00000000 00000100 00000000 7349ff5a c319fd45 dcda0575 3f21b3d2
+ars4x32 10 00000000 0000ff00 00000000 00000000 00000000 00000000 00000100 00000000 c00f7b2f ceaf4cdb 4ac4dc31 154c19dc
+ars4x32 10 00000000 00008000 00000000 00000000 00000000 00000000 00000100 00000000 7e74e110 1935a117 3ff50bce 94bbb144
+ars4x32 10 00000000 00ff0000 00000000 00000000 00000000 00000000 00000100 00000000 144413d2 2246c38e 02930b9a b0baad7c
+ars4x32 10 00000000 00800000 00000000 00000000 00000000 00000000 00000100 00000000 0315cd39 d7aa8fed a7ca8633 f1332f6a
+ars4x32 10 00000000 ff000000 00000000 00000000 00000000 00000000 00000100 00000000 267ae963 2a5a1091 d6fa66a4 e1931070
+ars4x32 10 00000000 80000000 00000000 00000000 00000000 00000000 00000100 00000000 8dbae2ba bf505e53 cb081eb9 38f78513
+ars4x32 10 00000000 00000000 000000ff 00000000 00000000 00000000 00000100 00000000 646723f1 c59588de 35d64138 62f4f638
+ars4x32 10 00000000 00000000 00000080 00000000 00000000 00000000 00000100 00000000 d3ec5c77 41ac4ab9 f538ff0c b6fc0eea
+ars4x32 10 00000000 00000000 0000ff00 00000000 00000000 00000000 00000100 00000000 fa73e170 7f2eb263 1311bef6 4baf3de2
+ars4x32 10 00000000 00000000 00008000 00000000 00000000 00000000 00000100 00000000 24558d77 342b0b22 05e2209d a685912d
+ars4x32 10 00000000 00000000 00ff0000 00000000 00000000 00000000 00000100 00000000 6ffc1906 0b216795 cdb94b1f 5ad9f467
+ars4x32 10 00000000 00000000 00800000 00000000 00000000 00000000 00000100 00000000 971e896a 17cb24c0 947a56a9 673672b2
+ars4x32 10 00000000 00000000 ff000000 00000000 00000000 00000000 00000100 00000000 df0d5551 976050f4 4c71d944 5e915fb7
+ars4x32 10 00000000 00000000 80000000 00000000 00000000 00000000 00000100 00000000 2ff7a1b6 38c8dc6d 310a11a5 d31099c9
+ars4x32 10 00000000 00000000 00000000 000000ff 00000000 00000000 00000100 00000000 1afc0f34 d31c7a6d b8c9b481 c3df3411
+ars4x32 10 00000000 00000000 00000000 00000080 00000000 00000000 00000100 00000000 55e651a4 8f8c6480 a88be763 ee484349
+ars4x32 10 00000000 00000000 00000000 0000ff00 00000000 00000000 00000100 00000000 4841234e d38e02c2 7085b9af 5ae19921
+ars4x32 10 00000000 00000000 00000000 00008000 00000000 00000000 00000100 00000000 82a0524f 909836f1 2b37c0fd e8bb5a68
+ars4x32 10 00000000 00000000 00000000 00ff0000 00000000 00000000 00000100 00000000 5f601944 728c210c eec42500 8208d1ff
+ars4x32 10 00000000 00000000 00000000 00800000 00000000 00000000 00000100 00000000 cab60741 2c79f40f 48b6b6ee b05773ba
+ars4x32 10 00000000 00000000 00000000 ff000000 00000000 00000000 00000100 00000000 54f9db96 5da83c71 53e98128 5e1f3fed
+ars4x32 10 00000000 00000000 00000000 80000000 00000000 00000000 00000100 00000000 ede0c269 db58068f 1dad8f7e 31365754
+ars4x32 10 886a3f24 d308a385 2e8a1913 44737003 00000000 00000000 00000100 00000000 cccc3855 3b7250a3 c1ba834f 0f1971c2
+ars4x32 10 223809a4 d0319f29 98fa2e08 896c4eec 00000000 00000000 00000100 00000000 c0ecdb97 0bb47b83 78428cac 5508e403
+ars4x32 10 e6212845 7713d038 cf6654be 6c0ce934 00000000 00000000 00000100 00000000 9d0e088c 51aad17d b2e90098 c5701d31
+ars4x32 10 00000001 00000000 00000000 00000000 00000000 00000000 00010000 00000000 6d379196 f5a0e8b6 82ed605a 4261efd5
+ars4x32 10 00000100 00000000 00000000 00000000 00000000 00000000 00010000 00000000 470d64b7 4fb9e376 240377ba e087143a
+ars4x32 10 00010000 00000000 00000000 00000000 00000000 00000000 00010000 00000000 ed397e2a 62613728 8f945e67 bab73e70
+ars4x32 10 01000000 00000000 00000000 00000000 00000000 00000000 00010000 00000000 a0db8ab4 f81debf2 017d3c84 fd2b0967
+ars4x32 10 00000000 00000001 00000000 00000000 00000000 00000000 00010000 00000000 66344dc6 c5ed1455 1a6e0173 ecad0ae4
+ars4x32 10 00000000 00000100 00000000 00000000 00000000 00000000 00010000 00000000 2a0c8828 f3cf3ef6 e7c4f214 984a8b30
+ars4x32 10 00000000 00010000 00000000 00000000 00000000 00000000 00010000 00000000 138ca5fe 39f5acd0 f952cf2b 28f7b5b3
+ars4x32 10 00000000 01000000 00000000 00000000 00000000 00000000 00010000 00000000 e9206a90 413f58d9 1f13a5af 7bae6ce0
+ars4x32 10 00000000 00000000 00000001 00000000 00000000 00000000 00010000 00000000 f0cf39bb 3eb8befd a4fdd272 b270a992
+ars4x32 10 00000000 00000000 00000100 00000000 00000000 00000000 00010000 00000000 c67dd272 0f43e863 7b5a9044 5768b0af
+ars4x32 10 00000000 00000000 00010000 00000000 00000000 00000000 00010000 00000000 24b7ed0d 93483b55 807d858d 506f9e86
+ars4x32 10 00000000 00000000 01000000 00000000 00000000 00000000 00010000 00000000 2449ac5b fca945e7 af6736ec 1409d8b6
+ars4x32 10 00000000 00000000 00000000 00000001 00000000 00000000 00010000 00000000 e2808a62 d941c835 af8733f8 84cefd17
+ars4x32 10 00000000 00000000 00000000 00000100 00000000 00000000 00010000 00000000 38147605 70c6708f 98367389 125db73a
+ars4x32 10 00000000 00000000 00000000 00010000 00000000 00000000 00010000 00000000 6cc7b369 35124f77 d0f5b3f6 239298aa
+ars4x32 10 00000000 00000000 00000000 01000000 00000000 00000000 00010000 00000000 6649f539 a3603a3d 6e90e8d2 b060b7ed
+ars4x32 10 0000ff00 00000000 00000000 00000000 00000000 00000000 00010000 00000000 9f0d4dd5 466f7ab9 a2cb72ed 3b0eb515
+ars4x32 10 00008000 00000000 00000000 00000000 00000000 00000000 00010000 00000000 958bb39e 7b50f52f b19b5604 46fe8648
+ars4x32 10 00ff0000 00000000 00000000 00000000 00000000 00000000 00010000 00000000 f6f717d6 d7cae96e f805f6ae 03456c6c
+ars4x32 10 00800000 00000000 00000000 00000000 00000000 00000000 00010000 00000000 2aaea638 580972d2 54f9eac4 2af2139a
+ars4x32 10 ff000000 00000000 00000000 00000000 00000000 00000000 00010000 00000000 a45aad7b fe11c4db 71e5b90f 21d6bcaa
+ars4x32 10 80000000 00000000 00000000 00000000 00000000 00000000 00010000 00000000 30ebaa3b 08bae465 3b7f886e a65f14ab
+ars4x32 10 00000000 000000ff 00000000 00000000 00000000 00000000 00010000 00000000 b43540ef 6648506d e7b43f88 702e2168
+ars4x32 10 00000000 00000080 00000000 00000000 00000000 00000000 00010000 00000000 cd83b53f f1eabcd6 11e4cdd2 ecae04ab
+ars4x32 10 00000000 0000ff00 00000000 00000000 00000000 00000000 00010000 00000000 8109ccb1 b1e93308 98b6adb9 b4fd5869
+ars4x32 10 00000000 00008000 00000000 00000000 00000000 00000000 00010000 00000000 54a7f662 f010414a 66b9168a 316e7c96
+ars4x32 10 00000000 00ff0000 00000000 00000000 00000000 00000000 00010000 00000000 c6121cb3 46b010ee 66a7523a 4c78f6a3
+ars4x32 10 00000000 00800000 00000000 00000000 00000000 00000000 00010000 00000000 88b864a6 27410eee 232e3a98 01529469
+ars4x32 10 00000000 ff000000 00000000 00000000 00000000 00000000 00010000 00000000 91990f1f 26e916bf a13c7f8e 83bbc2d2
+ars4x32 10 00000000 80000000 00000000 00000000 00000000 00000000 00010000 00000000 82eae346 c786e1d6 2be9a5ab 6abab178
+ars4x32 10 00000000 00000000 000000ff 00000000 00000000 00000000 00010000 00000000 27cad9ef 39773de2 3187675d 700415eb
+ars4x32 10 00000000 00000000 00000080 00000000 00000000 00000000 00010000 00000000 8f115fb6 63fd3e7f 187eeca7 06825f02
+ars4x32 10 00000000 00000000 0000ff00 00000000 00000000 00000000 00010000 00000000 a167ba02 88faed26 5cfcddcc cf18ff60
+ars4x32 10 00000000 00000000 00008000 00000000 00000000 00000000 00010000 00000000 9a885cba de3c28e5 d37a61cd b573951f
+ars4x32 10 00000000 00000000 00ff0000 00000000 00000000 00000000 00010000 00000000 29b9480e 49de968c bbf6cf9c a18bc0c9
+ars4x32 10 00000000 00000000 00800000 00000000 00000000 00000000 00010000 00000000 06f5efa7 a2eecffd c2721b15 a1b2fba7
+ars4x32 10 00000000 00000000 ff000000 00000000 00000000 00000000 00010000 00000000 b6fd0d49 b5b677c8 85b4864d 90788bf5
+ars4x32 10 00000000 00000000 80000000 00000000 00000000 00000000 00010000 00000000 59628edd e69f3ba4 ab0a4400 2a11e765
+ars4x32 10 00000000 00000000 00000000 000000ff 00000000 00000000 00010000 00000000 c0ac8e76 288f5e66 97c3672e 8da77970
+ars4x32 10 00000000 00000000 00000000 00000080 00000000 00000000 00010000 00000000 b71d89a8 93b990e4 6a991646 71b48b74
+ars4x32 10 00000000 00000000 00000000 0000ff00 00000000 00000000 00010000 00000000 a46b95c1 1ae1bd2c 17dcb860 498671df
+ars4x32 10 00000000 00000000 00000000 00008000 00000000 00000000 00010000 00000000 1dae7ea4 12a1e229 acd13702 55c3fffa
+ars4x32 10 00000000 00000000 00000000 00ff0000 00000000 00000000 00010000 00000000 110dc0cc 43fb4477 abd9226c 17c2f80b
+ars4x32 10 00000000 00000000 00000000 00800000 00000000 00000000 00010000 00000000 206e4bd1 ff42717b a725faf8 20fd1253
+ars4x32 10 00000000 00000000 00000000 ff000000 00000000 00000000 00010000 00000000 1a43112d add402ad abbf9688 6cd0ea86
+ars4x32 10 00000000 00000000 00000000 80000000 00000000 00000000 00010000 00000000 80f6754c a5ddaa17 ec763fe2 79c7da96
+ars4x32 10 886a3f24 d308a385 2e8a1913 44737003 00000000 00000000 00010000 00000000 4cfa0a0b 2b01063a f2de8183 9b73a748
+ars4x32 10 223809a4 d0319f29 98fa2e08 896c4eec 00000000 00000000 00010000 00000000 a816a6ec b5c31283 09630670 68823347
+ars4x32 10 e6212845 7713d038 cf6654be 6c0ce934 00000000 00000000 00010000 00000000 4304806c 678427b0 590e73ee f01ef425
+ars4x32 10 00000001 00000000 00000000 00000000 00000000 00000000 01000000 00000000 f0ec9081 17439473 d35e62c7 565376dc
+ars4x32 10 00000100 00000000 00000000 00000000 00000000 00000000 01000000 00000000 29dff89a 5925e07c 1c9a36a9 1ff67d0c
+ars4x32 10 00010000 00000000 00000000 00000000 00000000 00000000 01000000 00000000 e327a201 72601fcb fa492724 594c8bde
+ars4x32 10 01000000 00000000 00000000 00000000 00000000 00000000 01000000 00000000 baab607a 46eeee26 f120ff0b de8aab05
+ars4x32 10 00000000 00000001 00000000 00000000 00000000 00000000 01000000 00000000 9df160a2 fea97302 6f09ee94 7af3592a
+ars4x32 10 00000000 00000100 00000000 00000000 00000000 00000000 01000000 00000000 f5e604aa 7b2b9b77 7be6665c 55f86568
+ars4x32 10 00000000 00010000 00000000 00000000 00000000 00000000 01000000 00000000 21d42295 e98eba48 3da4566b 63de1a1d
+ars4x32 10 00000000 01000000 00000000 00000000 00000000 00000000 01000000 00000000 81e31326 07dfeaef f9a3b35f 55b42e2a
+ars4x32 10 00000000 00000000 00000001 00000000 00000000 00000000 01000000 00000000 fe571b0a 2f3b0f85 3ae46c13 c147a031
+ars4x32 10 00000000 00000000 00000100 00000000 00000000 00000000 01000000 00000000 ad2055b9 fe4693eb 0cd23900 75c1cf16
+ars4x32 10 00000000 00000000 00010000 00000000 00000000 00000000 01000000 00000000 407a6ae1 aed41913 cc785e96 733d9574
+ars4x32 10 00000000 00000000 01000000 00000000 00000000 00000000 01000000 00000000 14790664 c31bd6c8 1006e243 6b8ba00c
+ars4x32 10 00000000 00000000 00000000 00000001 00000000 00000000 01000000 00000000 16341bb4 33f7c92a 7da857a4 54fa72d0
+ars4x32 10 00000000 00000000 00000000 00000100 00000000 00000000 01000000 00000000 b023abd5 4be29d0b c2ec8c44 4759f825
+ars4x32 10 00000000 00000000 00000000 00010000 00000000 00000000 01000000 00000000 ba7e678e 879b2090 20003b19 28ffbfbc
+ars4x32 10 00000000 00000000 00000000 01000000 00000000 00000000 01000000 00000000 9d613b98 e88c8bc9 f6cffe07 3ba558fa
+ars4x32 10 0000ff00 00000000 00000000 00000000 00000000 00000000 01000000 00000000 b17d2fb7 41de2a63 69f8477e b842b6c0
+ars4x32 10 00008000 00000000 00000000 00000000 00000000 00000000 01000000 00000000 d7c8c34d 72a728f5 90176d9d 12a20872
+ars4x32 10 00ff0000 00000000 00000000 00000000 00000000 00000000 01000000 00000000 060fceb2 dd0ae253 b5b055d3 80d3c814
+ars4x32 10 00800000 00000000 00000000 00000000 00000000 00000000 01000000 00000000 574dc142 6911237f 42f24703 dc367a60
+ars4x32 10 ff000000 00000000 00000000 00000000 00000000 00000000 01000000 00000000 58e90605 f7d04d30 09706766 e3c7dae1
+ars4x32 10 80000000 00000000 00000000 00000000 00000000 00000000 01000000 00000000 5f2fa382 8fc9965c 6101e8d0 1b0cb812
+ars4x32 10 00000000 000000ff 00000000 00000000 00000000 00000000 01000000 00000000 6f2c17f1 0ccabeb3 9b76af24 961159d3
+ars4x32 10 00000000 00000080 00000000 00000000 00000000 00000000 01000000 00000000 cd298400 24e18e72 d1e4806e ff4e590e
+ars4x32 10 00000000 0000ff00 00000000 00000000 00000000 00000000 01000000 00000000 07521109 ad6a1cc0 bb975e41 b95a35c7
+ars4x32 10 00000000 00008000 00000000 00000000 00000000 00000000 01000000 00000000 b70c2a80 671f5b84 680bbd42 f60c6c35
+ars4x32 10 00000000 00ff0000 00000000 00000000 00000000 00000000 01000000 00000000 4e338c5c 805e6304 8198670c 96775bcb
+ars4x32 10 00000000 00800000 00000000 00000000 00000000 00000000 01000000 00000000 f8ee10dc ceee3c76 85a48d75 fd91006d
+ars4x32 10 00000000 ff000000 00000000 00000000 00000000 00000000 01000000 00000000 57efb78c 4cb625e3 f92f2ec0 cd0e568b
+ars4x32 10 00000000 80000000 00000000 00000000 00000000 00000000 01000000 00000000 a491e191 3dda3454 1d1d7da2 b46f0381
+ars4x32 10 00000000 00000000 000000ff 00000000 00000000 00000000 01000000 00000000 3b9a15f6 9513a474 826060f1 fe2e12fe
+ars4x32 10 00000000 00000000 00000080 00000000 00000000 00000000 01000000 00000000 fce1af10 3ef65f2c 76c708ce a70a9d0b
+ars4x32 10 00000000 00000000 0000ff00 00000000 00000000 00000000 01000000 00000000 817cdaa6 05420d43 adf89b3b 6d876924
+ars4x32 10 00000000 00000000 00008000 00000000 00000000 00000000 01000000 00000000 2108e0ce be053b4b bee203c0 d3a3e45c
+ars4x32 10 00000000 00000000 00ff0000 00000000 00000000 00000000 01000000 00000000 164aa195 5b3c52da 4bc45866 a3c09427
+ars4x32 10 00000000 00000000 00800000 00000000 00000000 00000000 01000000 00000000 f0616dec ffce2c48 8ad61e07 bac6f5d8
+ars4x32 10 00000000 00000000 ff000000 00000000 00000000 00000000 01000000 00000000 e037c667 9caa836b b94643ed 4f29d7c2
+ars4x32 10 00000000 00000000 80000000 00000000 00000000 00000000 01000000 00000000 0cdcf979 9e0bbeb1 f1792602 9374d54a
+ars4x32 10 00000000 00000000 00000000 000000ff 00000000 00000000 01000000 00000000 97af39cc a96de874 54dcb078 f467d206
+ars4x32 10 00000000 00000000 00000000 00000080 00000000 00000000 01000000 00000000 dd6dc39b a93139a5 d333e43e 67716f60
+ars4x32 10 00000000 00000000 00000000 0000ff00 00000000 00000000 01000000 00000000 ae4636c5 1405a129 2b8668a6 d73d09d6
+ars4x32 10 00000000 00000000 00000000 00008000 00000000 00000000 01000000 00000000 636af1ce 6ee69d0f 15f452ee 3569ec72
+ars4x32 10 00000000 00000000 00000000 00ff0000 00000000 00000000 01000000 00000000 23906744 658f7afd 76d77c00 08a22245
+ars4x32 10 00000000 00000000 00000000 00800000 00000000 00000000 01000000 00000000 87f45225 6e2a65a8 f81a9808 03291042
+ars4x32 10 00000000 00000000 00000000 ff000000 00000000 00000000 01000000 00000000 67b56823 1c6edf37 cac0ce94 fc5b9375
+ars4x32 10 00000000 00000000 00000000 80000000 00000000 00000000 01000000 00000000 a9faac65 baeffe98 c47c0b67 6efd4c3d
+ars4x32 10 886a3f24 d308a385 2e8a1913 44737003 00000000 00000000 01000000 00000000 6d980bc2 6b28966d cc0edc5e 56029663
+ars4x32 10 223809a4 d0319f29 98fa2e08 896c4eec 00000000 00000000 01000000 00000000 c676b55f 8ad7487b 63bc0c7f 1379c4b5
+ars4x32 10 e6212845 7713d038 cf6654be 6c0ce934 00000000 00000000 01000000 00000000 c63e4e34 dda2ae11 6a4eea59 e2d735e4
+ars4x32 10 00000001 00000000 00000000 00000000 00000000 00000000 00000000 00000001 e030af51 f0c406ad cd31da3f 12daeb18
+ars4x32 10 00000100 00000000 00000000 00000000 00000000 00000000 00000000 00000001 d647af79 a5e0b9f7 d945e5a4 161fc4c8
+ars4x32 10 00010000 00000000 00000000 00000000 00000000 00000000 00000000 00000001 c6e78b9f 08760454 98f27570 17813501
+ars4x32 10 01000000 00000000 00000000 00000000 00000000 00000000 00000000 00000001 ba496ee9 da990d16 7612ca4c 3eae2911
+ars4x32 10 00000000 00000001 00000000 00000000 00000000 00000000 00000000 00000001 b5a0fbb3 a9766f8c 7af52349 4f04e26a
+ars4x32 10 00000000 00000100 00000000 00000000 00000000 00000000 00000000 00000001 aa093e55 b226f0a9 53afa070 569ab229
+ars4x32 10 00000000 00010000 00000000 00000000 00000000 00000000 00000000 00000001 4f47704d efa380e9 b5edad71 38aad304
+ars4x32 10 00000000 01000000 00000000 00000000 00000000 00000000 00000000 00000001 9e9853a0 082ef8bc 716329cb ddf155e8
+ars4x32 10 00000000 00000000 00000001 00000000 00000000 00000000 00000000 00000001 63461ac2 938b887a 56773d65 31df7347
+ars4x32 10 00000000 00000000 00000100 00000000 00000000 00000000 00000000 00000001 c1e6ce95 97e64ad4 bd0b383a 8ebf32f9
+ars4x32 10 00000000 00000000 00010000 00000000 00000000 00000000 00000000 00000001 5aca53c2 27e87b5a 97050794 c6d1ab5a
+ars4x32 10 00000000 00000000 01000000 00000000 00000000 00000000 00000000 00000001 a6e6df68 a16f4e57 ffad3462 51065696
+ars4x32 10 00000000 00000000 00000000 00000001 00000000 00000000 00000000 00000001 73845df4 e3f11542 363666c3 39e10bb6
+ars4x32 10 00000000 00000000 00000000 00000100 00000000 00000000 00000000 00000001 64a87348 7ec4d910 9e75213b 5914d9f9
+ars4x32 10 00000000 00000000 00000000 00010000 00000000 00000000 00000000 00000001 e4d6993c 77305999 46a765f5 ea1fbb4d
+ars4x32 10 00000000 00000000 00000000 01000000 00000000 00000000 00000000 00000001 068a65eb 6aea3a8c 343c1a47 f7560cf1
+ars4x32 10 0000ff00 00000000 00000000 00000000 00000000 00000000 00000000 00000001 ef3a2fc1 32b12ecd 31f46080 4856d695
+ars4x32 10 00008000 00000000 00000000 00000000 00000000 00000000 00000000 00000001 9e24d97a 238869ca 35a667a9 cac75660
+ars4x32 10 00ff0000 00000000 00000000 00000000 00000000 00000000 00000000 00000001 d078505b c444a93d 3c1d4687 fd299c5b
+ars4x32 10 00800000 00000000 00000000 00000000 00000000 00000000 00000000 00000001 455a18e0 8b25ee8a 9eb52d70 0a2406f6
+ars4x32 10 ff000000 00000000 00000000 00000000 00000000 00000000 00000000 00000001 e42be7a5 10e8344b 8a841e2a 76866124
+ars4x32 10 80000000 00000000 00000000 00000000 00000000 00000000 00000000 00000001 40dd0d34 a1083f9b 54e94679 f24cb157
+ars4x32 10 00000000 000000ff 00000000 00000000 00000000 00000000 00000000 00000001 f76ee81e 3f8e191c 7ace5e54 686c78a9
+ars4x32 10 00000000 00000080 00000000 00000000 00000000 00000000 00000000 00000001 7b0e0ea5 626bb09b a3084fed 1e1ea262
+ars4x32 10 00000000 0000ff00 00000000 00000000 00000000 00000000 00000000 00000001 6c35e2e4 4b116ac4 7c76ccce 6bb9a4a7
+ars4x32 10 00000000 00008000 00000000 00000000 00000000 00000000 00000000 00000001 9f4d1018 414a8cf5 6baee5d1 f7c0f074
+ars4x32 10 00000000 00ff0000 00000000 00000000 00000000 00000000 00000000 00000001 e663febc 5aff1931 fba5f61c 11210a8b
+ars4x32 10 00000000 00800000 00000000 00000000 00000000 00000000 00000000 00000001 1dda1386 c427a4f4 da7de3be ca6d898e
+ars4x32 10 00000000 ff000000 00000000 00000000 00000000 00000000 00000000 00000001 e5136b72 9c9a2b25 e6212dd9 11b59216
+ars4x32 10 00000000 80000000 00000000 00000000 00000000 00000000 00000000 00000001 b5f6c242 16eee9c4 5d9f2224 3ee53567
+ars4x32 10 00000000 00000000 000000ff 00000000 00000000 00000000 00000000 00000001 998d7220 94aab55c 675ec4d4 751d8763
+ars4x32 10 00000000 00000000 00000080 00000000 00000000 00000000 00000000 00000001 3065eb46 14dd6ecc 56227cda 656756d6
+ars4x32 10 00000000 00000000 0000ff00 00000000 00000000 00000000 00000000 00000001 c8e3c4e8 d5a754f1 ce7a3b8c 145d41a5
+ars4x32 10 00000000 00000000 00008000 00000000 00000000 00000000 00000000 00000001 bc8ee1a1 1efad7f8 cca32205 f25ecce9
+ars4x32 10 00000000 00000000 00ff0000 00000000 00000000 00000000 00000000 00000001 999d4322 09f63cba 401bf5f5 dfa94671
+ars4x32 10 00000000 00000000 00800000 00000000 00000000 00000000 00000000 00000001 2bcdfd5d 9cc3f21e f2e4ffa4 de8da739
+ars4x32 10 00000000 00000000 ff000000 00000000 00000000 00000000 00000000 00000001 ae20c6a7 1f6a5d18 a46ca51e 536b01fa
+ars4x32 10 00000000 00000000 80000000 00000000 00000000 00000000 00000000 00000001 0d6e2690 54582cd4 a409c539 8d61509c
+ars4x32 10 00000000 00000000 00000000 000000ff 00000000 00000000 00000000 00000001 0b56a479 ac382ffd 8ff545ad 38bf0503
+ars4x32 10 00000000 00000000 00000000 00000080 00000000 00000000 00000000 00000001 976ac401 af2a5de7 4bc9f677 d4aef946
+ars4x32 10 00000000 00000000 00000000 0000ff00 00000000 00000000 00000000 00000001 12e13444 50ac2a67 ca356633 e03b7d2f
+ars4x32 10 00000000 00000000 00000000 00008000 00000000 00000000 00000000 00000001 5e649cc6 ef0f17a5 94798230 08e834c1
+ars4x32 10 00000000 00000000 00000000 00ff0000 00000000 00000000 00000000 00000001 66a13df1 5a5dcbd0 0508d339 bc651029
+ars4x32 10 00000000 00000000 00000000 00800000 00000000 00000000 00000000 00000001 14bb05b6 6b7fa5a4 1055f28f 77cc28f2
+ars4x32 10 00000000 00000000 00000000 ff000000 00000000 00000000 00000000 00000001 69db4f0a 2f946efd a984980b b9faa3ac
+ars4x32 10 00000000 00000000 00000000 80000000 00000000 00000000 00000000 00000001 d62eb4ff 35cfdc17 cd4a1c41 14d50043
+ars4x32 10 886a3f24 d308a385 2e8a1913 44737003 00000000 00000000 00000000 00000001 ef824629 1cba14e7 49ed4950 ffb38246
+ars4x32 10 223809a4 d0319f29 98fa2e08 896c4eec 00000000 00000000 00000000 00000001 a34ee7af 7f2fd010 664fda60 38af05b1
+ars4x32 10 e6212845 7713d038 cf6654be 6c0ce934 00000000 00000000 00000000 00000001 1d54c792 869cb843 fbd24ccd ad3de6b3
+ars4x32 10 00000001 00000000 00000000 00000000 00000000 00000000 00000000 00000100 f1df58a4 1ed53375 7bb78ef4 4e11dbab
+ars4x32 10 00000100 00000000 00000000 00000000 00000000 00000000 00000000 00000100 e6ee2dee 3b5880ed 942efd6f 91f43b8f
+ars4x32 10 00010000 00000000 00000000 00000000 00000000 00000000 00000000 00000100 7c21e72b a288390d f96c436d 0d20b4e0
+ars4x32 10 01000000 00000000 00000000 00000000 00000000 00000000 00000000 00000100 807067d5 212fec9b 88c0801b 5a85aff9
+ars4x32 10 00000000 00000001 00000000 00000000 00000000 00000000 00000000 00000100 1b0be5cb 29d0b95d 372985b6 48e76f44
+ars4x32 10 00000000 00000100 00000000 00000000 00000000 00000000 00000000 00000100 93c509e1 e718172c 7f883cb2 c21639ce
+ars4x32 10 00000000 00010000 00000000 00000000 00000000 00000000 00000000 00000100 06cfde2e fa591c7f cd70f744 7757851b
+ars4x32 10 00000000 01000000 00000000 00000000 00000000 00000000 00000000 00000100 1864201c 9f652d37 09547c97 4d881d90
+ars4x32 10 00000000 00000000 00000001 00000000 00000000 00000000 00000000 00000100 7fbb915f 552c9bb0 3c7a3c8b ce644482
+ars4x32 10 00000000 00000000 00000100 00000000 00000000 00000000 00000000 00000100 ed0e5f89 9e74bab0 97043f39 7f18a3f2
+ars4x32 10 00000000 00000000 00010000 00000000 00000000 00000000 00000000 00000100 65258d2d ab2d98a6 242de7be 0e5a2536
+ars4x32 10 00000000 00000000 01000000 00000000 00000000 00000000 00000000 00000100 792c4707 16b18391 e007d7f4 c4cbeb22
+ars4x32 10 00000000 00000000 00000000 00000001 00000000 00000000 00000000 00000100 02c8ef7e a739a692 2421e133 69219eed
+ars4x32 10 00000000 00000000 00000000 00000100 00000000 00000000 00000000 00000100 6e3cc3e1 25db43ec 96727f77 21ed7496
+ars4x32 10 00000000 00000000 00000000 00010000 00000000 00000000 00000000 00000100 747d8e1e 932a1db3 a88a3850 f4da36b5
+ars4x32 10 00000000 00000000 00000000 01000000 00000000 00000000 00000000 00000100 628b9a9e 258e5f68 65ee127b 5303581e
+ars4x32 10 0000ff00 00000000 00000000 00000000 00000000 00000000 00000000 00000100 b67af349 02f4b3e4 6e4f30ce 61bfc6f4
+ars4x32 10 00008000 00000000 00000000 00000000 00000000 00000000 00000000 00000100 f791fead 0377ddf6 bdc314ba f0671471
+ars4x32 10 00ff0000 00000000 00000000 00000000 00000000 00000000 00000000 00000100 637910a8 bbdcc060 a1c08936 7a710668
+ars4x32 10 00800000 00000000 00000000 00000000 00000000 00000000 00000000 00000100 dcae14d3 6776e33d 7766d0ce 408f15fa
+ars4x32 10 ff000000 00000000 00000000 00000000 00000000 00000000 00000000 00000100 c93ba8e6 7435c567 845dc071 d02ca702
+ars4x32 10 80000000 00000000 00000000 00000000 00000000 00000000 00000000 00000100 fa54a9fa 8e7465b9 77d395ce c43bd5a4
+ars4x32 10 00000000 000000ff 00000000 00000000 00000000 00000000 00000000 00000100 79523499 349f6079 c3461163 179aec9f
+ars4x32 10 00000000 00000080 00000000 00000000 00000000 00000000 00000000 00000100 95d8e848 6aa64376 9d703e91 fab6988a
+ars4x32 10 00000000 0000ff00 00000000 00000000 00000000 00000000 00000000 00000100 c53dd017 99b3e749 3ef4f8d8 7d752c89
+ars4x32 10 00000000 00008000 00000000 00000000 00000000 00000000 00000000 00000100 43ab57e1 4789da5f 87033eb8 e7ad3a50
+ars4x32 10 00000000 00ff0000 00000000 00000000 00000000 00000000 00000000 00000100 faedf924 7a650192 147d4b09 9ac01939
+ars4x32 10 00000000 00800000 00000000 00000000 00000000 00000000 00000000 00000100 e2042db4 dca05c16 827d333c 9251e5da
+ars4x32 10 00000000 ff000000 00000000 00000000 00000000 00000000 00000000 00000100 d1603183 18130362 9d2c9608 818ac71e
+ars4x32 10 00000000 80000000 00000000 00000000 00000000 00000000 00000000 00000100 33147cbe e7b079be fc1189f5 5887bb9d
+ars4x32 10 00000000 00000000 000000ff 00000000 00000000 00000000 00000000 00000100 29b1e630 8f1af85b d903d2ed 1a082d77
+ars4x32 10 00000000 00000000 00000080 00000000 00000000 00000000 00000000 00000100 c6b5525a 81d234f0 48a17017 8351d3b5
+ars4x32 10 00000000 00000000 0000ff00 00000000 00000000 00000000 00000000 00000100 b8187e65 b2cb6954 e3c23052 69f5b5b4
+ars4x32 10 00000000 00000000 00008000 00000000 00000000 00000000 00000000 00000100 2e87227e 7dfabedb f2933574 e7b37365
+ars4x32 10 00000000 00000000 00ff0000 00000000 00000000 00000000 00000000 00000100 e3486e92 1fc15025 16d75fe1 547641e7
+ars4x32 10 00000000 00000000 00800000 00000000 00000000 00000000 00000000 00000100 f8d61ae3 62f626ae 92910a34 bffbc7cc
+ars4x32 10 00000000 00000000 ff000000 00000000 00000000 00000000 00000000 00000100 5d335465 e2b59668 6f89fa9f d4e30427
+ars4x32 10 00000000 00000000 80000000 00000000 00000000 00000000 00000000 00000100 52320fe3 28ba865c 883302fc 476e34d7
+ars4x32 10 00000000 00000000 00000000 000000ff 00000000 00000000 00000000 00000100 228b94db 37aa6dc2 da959a01 7d123017
+ars4x32 10 00000000 00000000 00000000 00000080 00000000 00000000 00000000 00000100 5b4eee21 8252a042 21b5ed99 e08dbf9c
+ars4x32 10 00000000 00000000 00000000 0000ff00 00000000 00000000 00000000 00000100 38050743 c31e8259 983e032e 713cf089
+ars4x32 10 00000000 00000000 00000000 00008000 00000000 00000000 00000000 00000100 94beb06e 10012caf 03832d81 51bd03a3
+ars4x32 10 00000000 00000000 00000000 00ff0000 00000000 00000000 00000000 00000100 d98e9d5e 0c316ae4 a8670426 8d941618
+ars4x32 10 00000000 00000000 00000000 00800000 00000000 00000000 00000000 00000100 66e4d621 a3795a49 ac79c7d4 b3011d67
+ars4x32 10 00000000 00000000 00000000 ff000000 00000000 00000000 00000000 00000100 b6c8fb40 c1da803d 08588e78 ae5fcfad
+ars4x32 10 00000000 00000000 00000000 80000000 00000000 00000000 00000000 00000100 8ae97e4b 1f8b6a28 0f7b192c b7ae7931
+ars4x32 10 886a3f24 d308a385 2e8a1913 44737003 00000000 00000000 00000000 00000100 683e01ea 87f5779a aef054a4 8e33cb06
+ars4x32 10 223809a4 d0319f29 98fa2e08 896c4eec 00000000 00000000 00000000 00000100 0dfab3ca a7ba9e3f 9c954ad6 6b613c27
+ars4x32 10 e6212845 7713d038 cf6654be 6c0ce934 00000000 00000000 00000000 00000100 6c5aea28 7690beb2 4c79a7b5 760f532a
+ars4x32 10 00000001 00000000 00000000 00000000 00000000 00000000 00000000 00010000 a9b35b10 a375ea94 9808b6c1 e50acdf9
+ars4x32 10 00000100 00000000 00000000 00000000 00000000 00000000 00000000 00010000 d97b580a 1d94d0f0 7d7c8d8a 438197d1
+ars4x32 10 00010000 00000000 00000000 00000000 00000000 00000000 00000000 00010000 9a9c2bc3 2e00bd2f 68f86d66 fda84482
+ars4x32 10 01000000 00000000 00000000 00000000 00000000 00000000 00000000 00010000 1c0e722c d39ac81c 32fce64e 2c076b46
+ars4x32 10 00000000 00000001 00000000 00000000 00000000 00000000 00000000 00010000 fb05a984 a71de6a4 009f985b 6d29c01a
+ars4x32 10 00000000 00000100 00000000 00000000 00000000 00000000 00000000 00010000 a4696ee0 5c0abe77 77ab1ca0 de73318b
+ars4x32 10 00000000 00010000 00000000 00000000 00000000 00000000 00000000 00010000 514becd2 01d352ed 31b84f0f 5d2e8628
+ars4x32 10 00000000 01000000 00000000 00000000 00000000 00000000 00000000 00010000 4b514f06 7566afa1 c6c71798 e0d25cda
+ars4x32 10 00000000 00000000 00000001 00000000 00000000 00000000 00000000 00010000 186f64bd 87b56de6 aba3c4bc 4d812602
+ars4x32 10 00000000 00000000 00000100 00000000 00000000 00000000 00000000 00010000 44119056 89cbd5be d7e979ab c2d59c40
+ars4x32 10 00000000 00000000 00010000 00000000 00000000 00000000 00000000 00010000 316066d3 9e963405 f0c6436d 941c5dc4
+ars4x32 10 00000000 00000000 01000000 00000000 00000000 00000000 00000000 00010000 6c79b3f9 0a16685c b27b9a10 85170546
+ars4x32 10 00000000 00000000 00000000 00000001 00000000 00000000 00000000 00010000 8e2a93a1 aab9e1dd b6b102a4 4c18cbc6
+ars4x32 10 00000000 00000000 00000000 00000100 00000000 00000000 00000000 00010000 782a17be 532c720d 2e96d480 285a912a
+ars4x32 10 00000000 00000000 00000000 00010000 00000000 00000000 00000000 00010000 89ca671f a89507f3 2eb97463 c1a49f17
+ars4x32 10 00000000 00000000 00000000 01000000 00000000 00000000 00000000 00010000 17ec9935 79683783 a11238fb 4c608198
+ars4x32 10 0000ff00 00000000 00000000 00000000 00000000 00000000 00000000 00010000 52de9adf 1fa60534 58b426b4 8609be54
+ars4x32 10 00008000 00000000 00000000 00000000 00000000 00000000 00000000 00010000 ee86cc4b 116cc1dc e7e039bf 47088901
+ars4x32 10 00ff0000 00000000 00000000 00000000 00000000 00000000 00000000 00010000 7fabcc11 9cb66a47 5fb49fab 5fc996a7
+ars4x32 10 00800000 00000000 00000000 00000000 00000000 00000000 00000000 00010000 caa700a6 0325b0d7 a7cb3251 6e979ea8
+ars4x32 10 ff000000 00000000 00000000 00000000 00000000 00000000 00000000 00010000 56317ad6 505ed872 57947af4 aac1b4fa
+ars4x32 10 80000000 00000000 00000000 00000000 00000000 00000000 00000000 00010000 46e441bc 37cf2022 d17d4e60 486c4b33
+ars4x32 10 00000000 000000ff 00000000 00000000 00000000 00000000 00000000 00010000 2faee6c2 7fd2e177 c9f9c395 281f73ee
+ars4x32 10 00000000 00000080 00000000 00000000 00000000 00000000 00000000 00010000 7e5e29a7 c156a39e 30e3276b 250a765d
+ars4x32 10 00000000 0000ff00 00000000 00000000 00000000 00000000 00000000 00010000 426b7127 b2aab7c7 a3e000e3 0e222cd3
+ars4x32 10 00000000 00008000 00000000 00000000 00000000 00000000 00000000 00010000 5a46397c 3dcbe508 db679125 8af9502f
+ars4x32 10 00000000 00ff0000 00000000 00000000 00000000 00000000 00000000 00010000 e177c2d6 e6882c0b 7fe501d5 1955b56d
+ars4x32 10 00000000 00800000 00000000 00000000 00000000 00000000 00000000 00010000 c40d3950 8dff35f0 ca567139 f0b23503
+ars4x32 10 00000000 ff000000 00000000 00000000 00000000 00000000 00000000 00010000 b8b7824f 583c476a 9d7a73ea f640b07f
+ars4x32 10 00000000 80000000 00000000 00000000 00000000 00000000 00000000 00010000 dbe1caa4 9c7508b7 19b89657 6975a0b1
+ars4x32 10 00000000 00000000 000000ff 00000000 00000000 00000000 00000000 00010000 b9894675 fc9dbef6 8b9f01e3 35b679f8
+ars4x32 10 00000000 00000000 00000080 00000000 00000000 00000000 00000000 00010000 c04646d9 ff304cee 2563d09e c70b493c
+ars4x32 10 00000000 00000000 0000ff00 00000000 00000000 00000000 00000000 00010000 0c9b3b1f 378faf60 53a737c3 8f7d0f98
+ars4x32 10 00000000 00000000 00008000 00000000 00000000 00000000 00000000 00010000 afd60479 e8d33be6 3c5d1a86 37683214
+ars4x32 10 00000000 00000000 00ff0000 00000000 00000000 00000000 00000000 00010000 9f88f7c7 31ad8d98 007e7d53 647f473b
+ars4x32 10 00000000 00000000 00800000 00000000 00000000 00000000 00000000 00010000 70b61e10 af6eaf82 5ea450af b4165ed2
+ars4x32 10 00000000 00000000 ff000000 00000000 00000000 00000000 00000000 00010000 d38acb23 16435559 3c751c68 d0268fa8
+ars4x32 10 00000000 00000000 80000000 00000000 00000000 00000000 00000000 00010000 0d8f8b91 c6cbc3e8 82d1ae4b e4da5cc4
+ars4x32 10 00000000 00000000 00000000 000000ff 00000000 00000000 00000000 00010000 bf6c742e a95e65c9 ce7dc48e ff90ffc8
+ars4x32 10 00000000 00000000 00000000 00000080 00000000 00000000 00000000 00010000 d91f6594 9c18a30c 445657a6 7066d6bf
+ars4x32 10 00000000 00000000 00000000 0000ff00 00000000 00000000 00000000 00010000 b9817a19 15cf8179 e39085d4 f31e8cf5
+ars4x32 10 00000000 00000000 00000000 00008000 00000000 00000000 00000000 00010000 60f6a78b 38c4d698 b09432f1 3cea4a6e
+ars4x32 10 00000000 00000000 00000000 00ff0000 00000000 00000000 00000000 00010000 1cd61bb4 49c0cb69 f1d31578 16fc57df
+ars4x32 10 00000000 00000000 00000000 00800000 00000000 00000000 00000000 00010000 377e16e6 442c4847 da18f00c 0beed65c
+ars4x32 10 00000000 00000000 00000000 ff000000 00000000 00000000 00000000 00010000 24a1351d d340c934 0d24242b 8c777c1c
+ars4x32 10 00000000 00000000 00000000 80000000 00000000 00000000 00000000 00010000 b1521cc5 83135c99 97176e37 c90058e5
+ars4x32 10 886a3f24 d308a385 2e8a1913 44737003 00000000 00000000 00000000 00010000 672ae628 5567ee43 e1836c02 2e4c17eb
+ars4x32 10 223809a4 d0319f29 98fa2e08 896c4eec 00000000 00000000 00000000 00010000 6b9c636d acb17505 985e650b 5e7f69ae
+ars4x32 10 e6212845 7713d038 cf6654be 6c0ce934 00000000 00000000 00000000 00010000 25e22335 13360180 3230dd73 63916012
+ars4x32 10 00000001 00000000 00000000 00000000 00000000 00000000 00000000 01000000 247f0514 bf305a96 52a1a2a3 e57040fd
+ars4x32 10 00000100 00000000 00000000 00000000 00000000 00000000 00000000 01000000 998b05e4 d36d64aa c626aeaf f2753c2c
+ars4x32 10 00010000 00000000 00000000 00000000 00000000 00000000 00000000 01000000 cfcf8e8d 09c75787 71eb8a35 4ca0901c
+ars4x32 10 01000000 00000000 00000000 00000000 00000000 00000000 00000000 01000000 9fe0465a 29a6fa34 b863a0b8 248d9b96
+ars4x32 10 00000000 00000001 00000000 00000000 00000000 00000000 00000000 01000000 8a389ee3 1a46f0fa 79591b16 965cf03d
+ars4x32 10 00000000 00000100 00000000 00000000 00000000 00000000 00000000 01000000 d8afe7dc 8f28277b ab017f0f e657d755
+ars4x32 10 00000000 00010000 00000000 00000000 00000000 00000000 00000000 01000000 c0c9741f d01806cc cc3a9052 1b735f2e
+ars4x32 10 00000000 01000000 00000000 00000000 00000000 00000000 00000000 01000000 cafb62e7 0bcab19b 830ea094 ceaa9892
+ars4x32 10 00000000 00000000 00000001 00000000 00000000 00000000 00000000 01000000 ab9dfe3b 91d056cc 802cc19a b0b86070
+ars4x32 10 00000000 00000000 00000100 00000000 00000000 00000000 00000000 01000000 1cea55b5 0de9fb2f 22ae0d0f da5d677c
+ars4x32 10 00000000 00000000 00010000 00000000 00000000 00000000 00000000 01000000 6d12c1fd 88aa8db1 15feaaff 34881817
+ars4x32 10 00000000 00000000 01000000 00000000 00000000 00000000 00000000 01000000 5ddba2e1 61a25b12 78f177c2 545a617c
+ars4x32 10 00000000 00000000 00000000 00000001 00000000 00000000 00000000 01000000 06fae575 4f5fd1a2 46823be1 9daa0f27
+ars4x32 10 00000000 00000000 00000000 00000100 00000000 00000000 00000000 01000000 c5ecca74 0c27e77b 5f8d6f60 1954e0e8
+ars4x32 10 00000000 00000000 00000000 00010000 00000000 00000000 00000000 01000000 00df0908 fd4f181c a59ca029 3b64c3d5
+ars4x32 10 00000000 00000000 00000000 01000000 00000000 00000000 00000000 01000000 fbba385e 31fadaba 7cb9fb23 d890b40a
+ars4x32 10 0000ff00 00000000 00000000 00000000 00000000 00000000 00000000 01000000 51c44a4a d23387f2 6a4868ec 143e6914
+ars4x32 10 00008000 00000000 00000000 00000000 00000000 00000000 00000000 01000000 73c9215a 067421dc a47ba7df ed17441c
+ars4x32 10 00ff0000 00000000 00000000 00000000 00000000 00000000 00000000 01000000 05223e30 99614b1f 824558a0 77def08f
+ars4x32 10 00800000 00000000 00000000 00000000 00000000 00000000 00000000 01000000 ff8ffbdf dbf27d95 656aa8de 20c486f3
+ars4x32 10 ff000000 00000000 00000000 00000000 00000000 00000000 00000000 01000000 20f060fa 5a681df4 8a74aa57 0d312560
+ars4x32 10 80000000 00000000 00000000 00000000 00000000 00000000 00000000 01000000 c4cc387a f116d76d c73534c7 721c66fb
+ars4x32 10 00000000 000000ff 00000000 00000000 00000000 00000000 00000000 01000000 1062de7a 87531b12 0e4268ee 105fdc0c
+ars4x32 10 00000000 00000080 00000000 00000000 00000000 00000000 00000000 01000000 6f28d09d a8f2e77b 3dd54948 728f0b06
+ars4x32 10 00000000 0000ff00 00000000 00000000 00000000 00000000 00000000 01000000 03768c53 0e08e96f bb9532f7 c81f7a6e
+ars4x32 10 00000000 00008000 00000000 00000000 00000000 00000000 00000000 01000000 232b442e 1ecc54b5 47fd72c5 660c1ed0
+ars4x32 10 00000000 00ff0000 00000000 00000000 00000000 00000000 00000000 01000000 37bf7ae2 aae1c68d 6107992e 279634c8
+ars4x32 10 00000000 00800000 00000000 00000000 00000000 00000000 00000000 01000000 d79665d2 0f079047 379ce9c3 f25e6799
+ars4x32 10 00000000 ff000000 00000000 00000000 00000000 00000000 00000000 01000000 b84df59b a7682678 3d61af8b 84eebdbd
+ars4x32 10 00000000 80000000 00000000 00000000 00000000 00000000 00000000 01000000 f9c59ee0 b4be9850 4bb861f3 e67d08d1
+ars4x32 10 00000000 00000000 000000ff 00000000 00000000 00000000 00000000 01000000 9c521252 d6a8c73c e379f086 f89ab41a
+ars4x32 10 00000000 00000000 00000080 00000000 00000000 00000000 00000000 01000000 b7b31df0 accc7692 f4fbaa8d 64fd8874
+ars4x32 10 00000000 00000000 0000ff00 00000000 00000000 00000000 00000000 01000000 9a717564 a0cb7cdc 438b7552 b91b7820
+ars4x32 10 00000000 00000000 00008000 00000000 00000000 00000000 00000000 01000000 918c06f2 75f0076d ce870444 c5d9860d
+ars4x32 10 00000000 00000000 00ff0000 00000000 00000000 00000000 00000000 01000000 f88f9930 afb8ce53 f1a97c5a 25d31efe
+ars4x32 10 00000000 00000000 00800000 00000000 00000000 00000000 00000000 01000000 8fd66e4c ffd160cf 2cc93b1d 2dce4692
+ars4x32 10 00000000 00000000 ff000000 00000000 00000000 00000000 00000000 01000000 5524dcaf 40762d39 d69e3b7b baba1676
+ars4x32 10 00000000 00000000 80000000 00000000 00000000 00000000 00000000 01000000 7a7c7737 6057b9fe 7a76e3c8 b574f8fb
+ars4x32 10 00000000 00000000 00000000 000000ff 00000000 00000000 00000000 01000000 954ba403 6ba1c264 b6aed22d ee859bc4
+ars4x32 10 00000000 00000000 00000000 00000080 00000000 00000000 00000000 01000000 14f8612e 3726a4ec c611176d ed092f61
+ars4x32 10 00000000 00000000 00000000 0000ff00 00000000 00000000 00000000 01000000 e632d378 c397c684 d32f3508 a394057b
+ars4x32 10 00000000 00000000 00000000 00008000 00000000 00000000 00000000 01000000 55a364eb 570a271b b75dda1c 0e45b60d
+ars4x32 10 00000000 00000000 00000000 00ff0000 00000000 00000000 00000000 01000000 c6d6b2ce e913f457 60d4c582 7441c07a
+ars4x32 10 00000000 00000000 00000000 00800000 00000000 00000000 00000000 01000000 57ee42ec 960b74ca 972ea934 8654c107
+ars4x32 10 00000000 00000000 00000000 ff000000 00000000 00000000 00000000 01000000 6a795ce7 a720649b 1296b189 d4e4697f
+ars4x32 10 00000000 00000000 00000000 80000000 00000000 00000000 00000000 01000000 703f3bd8 138b897b ede3087f 43fa7a1b
+ars4x32 10 886a3f24 d308a385 2e8a1913 44737003 00000000 00000000 00000000 01000000 879c7e5a 7b9cf65f 447c0371 08a9687b
+ars4x32 10 223809a4 d0319f29 98fa2e08 896c4eec 00000000 00000000 00000000 01000000 79702e82 a0689d80 3e967f90 b48255d3
+ars4x32 10 e6212845 7713d038 cf6654be 6c0ce934 00000000 00000000 00000000 01000000 4e9a3827 89deff2a 7578177a b2856db2
+ars4x32 10 00000001 00000000 00000000 00000000 0000ff00 00000000 00000000 00000000 fcae6333 bd01b7df b770e892 9cb16292
+ars4x32 10 00000100 00000000 00000000 00000000 0000ff00 00000000 00000000 00000000 e5087d42 c37b8481 e34a0bf2 ffc5218b
+ars4x32 10 00010000 00000000 00000000 00000000 0000ff00 00000000 00000000 00000000 a5b4b75e 76b71d55 3ce3f901 7cb7c270
+ars4x32 10 01000000 00000000 00000000 00000000 0000ff00 00000000 00000000 00000000 b8572a88 3ea486ca a4297626 8aa5f727
+ars4x32 10 00000000 00000001 00000000 00000000 0000ff00 00000000 00000000 00000000 25004d41 354bfbd5 cb0d6d2a ce2866fe
+ars4x32 10 00000000 00000100 00000000 00000000 0000ff00 00000000 00000000 00000000 ce1f43dc 9476d233 173e2431 1bf36ea2
+ars4x32 10 00000000 00010000 00000000 00000000 0000ff00 00000000 00000000 00000000 94216c8e 9b501d69 1b832695 c13ab5f9
+ars4x32 10 00000000 01000000 00000000 00000000 0000ff00 00000000 00000000 00000000 6a5c2f12 060bf87e 5a077a17 ae024bc6
+ars4x32 10 00000000 00000000 00000001 00000000 0000ff00 00000000 00000000 00000000 94252aa8 0444a04d dfac6fd6 977b6c1a
+ars4x32 10 00000000 00000000 00000100 00000000 0000ff00 00000000 00000000 00000000 9506aa8c 6ee40879 138836aa 509ac569
+ars4x32 10 00000000 00000000 00010000 00000000 0000ff00 00000000 00000000 00000000 536fbd48 217a89ec c2476fc1 b649b851
+ars4x32 10 00000000 00000000 01000000 00000000 0000ff00 00000000 00000000 00000000 2bc4b6af 3b94ba32 67bdea20 ec9488d7
+ars4x32 10 00000000 00000000 00000000 00000001 0000ff00 00000000 00000000 00000000 23753cdb 5909cafa 72e4a6b1 03f47730
+ars4x32 10 00000000 00000000 00000000 00000100 0000ff00 00000000 00000000 00000000 990ddfe7 152ed393 eb0d9f13 2e4ea32a
+ars4x32 10 00000000 00000000 00000000 00010000 0000ff00 00000000 00000000 00000000 e016741b 3783a4c4 bce1590f f08190de
+ars4x32 10 00000000 00000000 00000000 01000000 0000ff00 00000000 00000000 00000000 c8c35ede 248aa584 5a0f85c9 00b3fd5b
+ars4x32 10 0000ff00 00000000 00000000 00000000 0000ff00 00000000 00000000 00000000 0d087d6b 615667d8 51c24c95 048f31a8
+ars4x32 10 00008000 00000000 00000000 00000000 0000ff00 00000000 00000000 00000000 8594974a 10c70d1f 5ff39e10 74e7b83b
+ars4x32 10 00ff0000 00000000 00000000 00000000 0000ff00 00000000 00000000 00000000 340e3607 f971005f e562dcac a8a8958d
+ars4x32 10 00800000 00000000 00000000 00000000 0000ff00 00000000 00000000 00000000 044ac5c0 b36dbf67 56089195 c3e407cf
+ars4x32 10 ff000000 00000000 00000000 00000000 0000ff00 00000000 00000000 00000000 56567ace 4d5b1686 a544562d 3cc18ba8
+ars4x32 10 80000000 00000000 00000000 00000000 0000ff00 00000000 00000000 00000000 3ca2b293 a5d66ea0 31831459 926ea2fa
+ars4x32 10 00000000 000000ff 00000000 00000000 0000ff00 00000000 00000000 00000000 0fcd4b44 1577f2bb 8d4ee07d bc8d9195
+ars4x32 10 00000000 00000080 00000000 00000000 0000ff00 00000000 00000000 00000000 941d2950 d634b468 69c05b83 e09a08ba
+ars4x32 10 00000000 0000ff00 00000000 00000000 0000ff00 00000000 00000000 00000000 45dd8a83 d1a6fcf6 f366a1cd dc96484f
+ars4x32 10 00000000 00008000 00000000 00000000 0000ff00 00000000 00000000 00000000 e840f688 55b214ad d57918bb cc7161d0
+ars4x32 10 00000000 00ff0000 00000000 00000000 0000ff00 00000000 00000000 00000000 dffddb1d 119bcb50 3312aa05 647a03de
+ars4x32 10 00000000 00800000 00000000 00000000 0000ff00 00000000 00000000 00000000 f6b1de15 8fffc880 78fde489 c28e8cb6
+ars4x32 10 00000000 ff000000 00000000 00000000 0000ff00 00000000 00000000 00000000 a9140b47 b30e6b6d 409d0abe eb61b360
+ars4x32 10 00000000 80000000 00000000 00000000 0000ff00 00000000 00000000 00000000 f886b0ab 70e2290f 5eeda35a 1b3e2f9e
+ars4x32 10 00000000 00000000 000000ff 00000000 0000ff00 00000000 00000000 00000000 d9f03545 5211f8b3 2a76c051 97266bf0
+ars4x32 10 00000000 00000000 00000080 00000000 0000ff00 00000000 00000000 00000000 9bbe9abe db095dd8 1b808527 9f28fee9
+ars4x32 10 00000000 00000000 0000ff00 00000000 0000ff00 00000000 00000000 00000000 7857bb35 9aa27628 ba02455a 81ef8e54
+ars4x32 10 00000000 00000000 00008000 00000000 0000ff00 00000000 00000000 00000000 99d67194 60448862 83329032 3f23d5dc
+ars4x32 10 00000000 00000000 00ff0000 00000000 0000ff00 00000000 00000000 00000000 901bc81a 26ee2082 290f81f2 578edbf2
+ars4x32 10 00000000 00000000 00800000 00000000 0000ff00 00000000 00000000 00000000 a0a3f116 1511d5f8 b1e6eb53 258c6f33
+ars4x32 10 00000000 00000000 ff000000 00000000 0000ff00 00000000 00000000 00000000 a814f115 a68a1479 6f615e1e da260fc3
+ars4x32 10 00000000 00000000 80000000 00000000 0000ff00 00000000 00000000 00000000 2d4f25cc da7dc5a2 12b4d343 6d004435
+ars4x32 10 00000000 00000000 00000000 000000ff 0000ff00 00000000 00000000 00000000 d6cd5c8e 70a36b18 a224f39a 74d7d2c6
+ars4x32 10 00000000 00000000 00000000 00000080 0000ff00 00000000 00000000 00000000 18dc79b1 736119d4 a52be882 78e23f3d
+ars4x32 10 00000000 00000000 00000000 0000ff00 0000ff00 00000000 00000000 00000000 042ba503 6d4bc33d 530de6b6 46c83dbc
+ars4x32 10 00000000 00000000 00000000 00008000 0000ff00 00000000 00000000 00000000 ac2bcf2e 6d1831d7 e748da2a 66618176
+ars4x32 10 00000000 00000000 00000000 00ff0000 0000ff00 00000000 00000000 00000000 b8177d4a 8f058469 d2d72992 7c56821a
+ars4x32 10 00000000 00000000 00000000 00800000 0000ff00 00000000 00000000 00000000 cc92440a 08a79c7c b6203a24 8e81c8fa
+ars4x32 10 00000000 00000000 00000000 ff000000 0000ff00 00000000 00000000 00000000 60891aaf d01bf76a 166dd985 4a59c676
+ars4x32 10 00000000 00000000 00000000 80000000 0000ff00 00000000 00000000 00000000 3b8dc262 9a3c487a b9f621ae 532cce23
+ars4x32 10 886a3f24 d308a385 2e8a1913 44737003 0000ff00 00000000 00000000 00000000 a588c9fb 84c80f49 85617392 f28ffb9e
+ars4x32 10 223809a4 d0319f29 98fa2e08 896c4eec 0000ff00 00000000 00000000 00000000 1d9391f8 d9c48b01 2015ae55 66beca09
+ars4x32 10 e6212845 7713d038 cf6654be 6c0ce934 0000ff00 00000000 00000000 00000000 33721436 1ddc703e 7d53720c 06616c78
+ars4x32 10 00000001 00000000 00000000 00000000 00008000 00000000 00000000 00000000 2c1fb260 4b9d3357 b5e32c52 e4d4a547
+ars4x32 10 00000100 00000000 00000000 00000000 00008000 00000000 00000000 00000000 86f801b8 5661adcd f033c12a bdecffd1
+ars4x32 10 00010000 00000000 00000000 00000000 00008000 00000000 00000000 00000000 828a289c 779a00a0 0a4fca07 f55832eb
+ars4x32 10 01000000 00000000 00000000 00000000 00008000 00000000 00000000 00000000 a8158b87 8b117489 a0163d43 4bde76fb
+ars4x32 10 00000000 00000001 00000000 00000000 00008000 00000000 00000000 00000000 b649633d 8edf2b2e 224d0043 b110e51c
+ars4x32 10 00000000 00000100 00000000 00000000 00008000 00000000 00000000 00000000 1a2b5294 a32ca0ed ebaad815 51e9bdf6
+ars4x32 10 00000000 00010000 00000000 00000000 00008000 00000000 00000000 00000000 5e641b42 f4e3e74c 83c74cd5 a807a6b1
+ars4x32 10 00000000 01000000 00000000 00000000 00008000 00000000 00000000 00000000 580fc53f 36b7fec4 855dab97 60157c73
+ars4x32 10 00000000 00000000 00000001 00000000 00008000 00000000 00000000 00000000 70233efb 1fba478b 8bfd17d5 2ba33d17
+ars4x32 10 00000000 00000000 00000100 00000000 00008000 00000000 00000000 00000000 289fff80 c6c4462a 50aa8868 fb07aacd
+ars4x32 10 00000000 00000000 00010000 00000000 00008000 00000000 00000000 00000000 f95b9940 6de46d1d 090a417b eb7b9b22
+ars4x32 10 00000000 00000000 01000000 00000000 00008000 00000000 00000000 00000000 8693b12b 5605ca40 3639dbb6 773154ea
+ars4x32 10 00000000 00000000 00000000 00000001 00008000 00000000 00000000 00000000 b4f37059 b7c5e71a 976e0084 ce535b06
+ars4x32 10 00000000 00000000 00000000 00000100 00008000 00000000 00000000 00000000 67089a5f 0f7499d4 ba3e5df8 65b5d616
+ars4x32 10 00000000 00000000 00000000 00010000 00008000 00000000 00000000 00000000 3030083c 44c4fc9c de89336a 56c3d028
+ars4x32 10 00000000 00000000 00000000 01000000 00008000 00000000 00000000 00000000 98e4d84d 0aa677ed 7eef5d57 8ec60064
+ars4x32 10 0000ff00 00000000 00000000 00000000 00008000 00000000 00000000 00000000 ead6b0d8 15c4a87c 9fd307c5 c59222ba
+ars4x32 10 00008000 00000000 00000000 00000000 00008000 00000000 00000000 00000000 40067896 8c980481 dd9b28cc 1fe0a1d7
+ars4x32 10 00ff0000 00000000 00000000 00000000 00008000 00000000 00000000 00000000 a7530620 85baf1ab f8554105 3f28debf
+ars4x32 10 00800000 00000000 00000000 00000000 00008000 00000000 00000000 00000000 c3e96d56 3528f63e 69745e92 093df66a
+ars4x32 10 ff000000 00000000 00000000 00000000 00008000 00000000 00000000 00000000 0a7b4073 2d90e83d 5c6403ce 9138f700
+ars4x32 10 80000000 00000000 00000000 00000000 00008000 00000000 00000000 00000000 48cda39c cf436caa 256ce979 42e2007e
+ars4x32 10 00000000 000000ff 00000000 00000000 00008000 00000000 00000000 00000000 28c02311 f61730f1 f777e987 6633e363
+ars4x32 10 00000000 00000080 00000000 00000000 00008000 00000000 00000000 00000000 36c60b34 95849f47 be3eadd5 15621908
+ars4x32 10 00000000 0000ff00 00000000 00000000 00008000 00000000 00000000 00000000 ad9c0e68 d937938e d51ff077 d9248807
+ars4x32 10 00000000 00008000 00000000 00000000 00008000 00000000 00000000 00000000 8ed38874 e59f5903 4637afa1 9385dc8f
+ars4x32 10 00000000 00ff0000 00000000 00000000 00008000 00000000 00000000 00000000 c6329fb2 c441156d 431cd7e6 acbf16dc
+ars4x32 10 00000000 00800000 00000000 00000000 00008000 00000000 00000000 00000000 7ac3e4e4 fb235550 28eef786 5973a922
+ars4x32 10 00000000 ff000000 00000000 00000000 00008000 00000000 00000000 00000000 1bf649d1 22e1d20f 909dac92 a0841b86
+ars4x32 10 00000000 80000000 00000000 00000000 00008000 00000000 00000000 00000000 038df3cf a92f5ed0 d9d9b196 7e30dc75
+ars4x32 10 00000000 00000000 000000ff 00000000 00008000 00000000 00000000 00000000 ae62b3e4 8f7fd299 3e8a3331 dfbf97cf
+ars4x32 10 00000000 00000000 00000080 00000000 00008000 00000000 00000000 00000000 6e8b36ac 00312a90 0627f1b4 830909ec
+ars4x32 10 00000000 00000000 0000ff00 00000000 00008000 00000000 00000000 00000000 d5f57993 ba3427b2 494662f7 1540d20c
+ars4x32 10 00000000 00000000 00008000 00000000 00008000 00000000 00000000 00000000 77336a3b 29db5f6e 14c3529f 2fe84106
+ars4x32 10 00000000 00000000 00ff0000 00000000 00008000 00000000 00000000 00000000 69f5c5d1 74e9e964 b34f84ea 33c005f7
+ars4x32 10 00000000 00000000 00800000 00000000 00008000 00000000 00000000 00000000 4169325f a27e38d6 a840fdab f6e263c4
+ars4x32 10 00000000 00000000 ff000000 00000000 00008000 00000000 00000000 00000000 6ba6529c 060468f4 f75739df d14b414a
+ars4x32 10 00000000 00000000 80000000 00000000 00008000 00000000 00000000 00000000 f9e1dbfa 4629392b 40c440ae b150dc10
+ars4x32 10 00000000 00000000 00000000 000000ff 00008000 00000000 00000000 00000000 c3bfd4e5 49f163df 982dc34d 3ea45d73
+ars4x32 10 00000000 00000000 00000000 00000080 00008000 00000000 00000000 00000000 0b1d46a4 0dc87e22 51b31851 e67a0640
+ars4x32 10 00000000 00000000 00000000 0000ff00 00008000 00000000 00000000 00000000 b3947949 cda68ed4 5b41245a fec3cc4d
+ars4x32 10 00000000 00000000 00000000 00008000 00008000 00000000 00000000 00000000 f0b14a4d 9d6bc368 41291f18 c7732ebb
+ars4x32 10 00000000 00000000 00000000 00ff0000 00008000 00000000 00000000 00000000 5d14a04a 5fd91a6c 24f2daa6 9e5bee56
+ars4x32 10 00000000 00000000 00000000 00800000 00008000 00000000 00000000 00000000 e1da803f f714cd82 86c69275 fa85929a
+ars4x32 10 00000000 00000000 00000000 ff000000 00008000 00000000 00000000 00000000 24e1c392 e0687318 b80eda4b 4d779c7a
+ars4x32 10 00000000 00000000 00000000 80000000 00008000 00000000 00000000 00000000 229b4480 a8d51c8f aea527fd 2061cf50
+ars4x32 10 886a3f24 d308a385 2e8a1913 44737003 00008000 00000000 00000000 00000000 1541fd48 266479ea d562ddaf b046946a
+ars4x32 10 223809a4 d0319f29 98fa2e08 896c4eec 00008000 00000000 00000000 00000000 51e6885b d82e4842 6bc6f3ef 84348129
+ars4x32 10 e6212845 7713d038 cf6654be 6c0ce934 00008000 00000000 00000000 00000000 5069213d c381cd8d 6636cc72 f4661fd7
+ars4x32 10 00000001 00000000 00000000 00000000 00ff0000 00000000 00000000 00000000 e88443ad 68c1e6a7 1bcf3aec 1dd200a7
+ars4x32 10 00000100 00000000 00000000 00000000 00ff0000 00000000 00000000 00000000 cae83bfa 673e52f0 678d80ac 703c57b3
+ars4x32 10 00010000 00000000 00000000 00000000 00ff0000 00000000 00000000 00000000 93656c91 ebe4c141 94d82984 dbe7b4c1
+ars4x32 10 01000000 00000000 00000000 00000000 00ff0000 00000000 00000000 00000000 46ce0ab3 e697a69b de54a604 18a05322
+ars4x32 10 00000000 00000001 00000000 00000000 00ff0000 00000000 00000000 00000000 7b659b84 7ac2102a 0ef11f37 fb9226a2
+ars4x32 10 00000000 00000100 00000000 00000000 00ff0000 00000000 00000000 00000000 cdba9d6e a28a10f0 bd9118b9 fbcc0c7b
+ars4x32 10 00000000 00010000 00000000 00000000 00ff0000 00000000 00000000 00000000 933021e6 11537841 93256204 e191ed2c
+ars4x32 10 00000000 01000000 00000000 00000000 00ff0000 00000000 00000000 00000000 0fb34cf4 a9f8bfc8 32abc499 66ba599c
+ars4x32 10 00000000 00000000 00000001 00000000 00ff0000 00000000 00000000 00000000 c3b56dd9 1150aa54 9f5fad4f 996e43d9
+ars4x32 10 00000000 00000000 00000100 00000000 00ff0000 00000000 00000000 00000000 76c3605b e31e707c 34408c3e 1c06c78e
+ars4x32 10 00000000 00000000 00010000 00000000 00ff0000 00000000 00000000 00000000 233e3c15 fae95405 f3cb0fd7 4906d997
+ars4x32 10 00000000 00000000 01000000 00000000 00ff0000 00000000 00000000 00000000 704b0da7 f6b4e9f5 ac79ea80 5d2b16d4
+ars4x32 10 00000000 00000000 00000000 00000001 00ff0000 00000000 00000000 00000000 52e9c5c4 bdea19d5 f9f4130b 82c74a8b
+ars4x32 10 00000000 00000000 00000000 00000100 00ff0000 00000000 00000000 00000000 28250c8e 091815d9 f9440858 ba50a1bb
+ars4x32 10 00000000 00000000 00000000 00010000 00ff0000 00000000 00000000 00000000 00aa3398 1593c82b 01f90307 4da20b88
+ars4x32 10 00000000 00000000 00000000 01000000 00ff0000 00000000 00000000 00000000 14d27e46 c6e0deee 6246a1ab 544ae3c5
+ars4x32 10 0000ff00 00000000 00000000 00000000 00ff0000 00000000 00000000 00000000 38ad9717 fbede586 a6fb65ed df1c9f5b
+ars4x32 10 00008000 00000000 00000000 00000000 00ff0000 00000000 00000000 00000000 9b6c7482 25032317 b78aa504 5045caf2
+ars4x32 10 00ff0000 00000000 00000000 00000000 00ff0000 00000000 00000000 00000000 7252d59d f4f4d769 b9149134 3d4684c9
+ars4x32 10 00800000 00000000 00000000 00000000 00ff0000 00000000 00000000 00000000 873abe0e 5201f3f1 30cdb3cc 8e715ac2
+ars4x32 10 ff000000 00000000 00000000 00000000 00ff0000 00000000 00000000 00000000 0cd9f4b7 5e3f61b3 c2bbe84a ed11a097
+ars4x32 10 80000000 00000000 00000000 00000000 00ff0000 00000000 00000000 00000000 9168e4e8 a189d9cc 4a788569 d53b415a
+ars4x32 10 00000000 000000ff 00000000 00000000 00ff0000 00000000 00000000 00000000 9f99a1d1 b9f6076b 05a627e8 b064124d
+ars4x32 10 00000000 00000080 00000000 00000000 00ff0000 00000000 00000000 00000000 b5891ac7 98593d8a 5f966b3c 466c6ae3
+ars4x32 10 00000000 0000ff00 00000000 00000000 00ff0000 00000000 00000000 00000000 7f8d8a7a 037a7275 cbb4f9bf a61e2b9c
+ars4x32 10 00000000 00008000 00000000 00000000 00ff0000 00000000 00000000 00000000 b3b7b20d 2d87fe1d b98016a3 ae8e4ce1
+ars4x32 10 00000000 00ff0000 00000000 00000000 00ff0000 00000000 00000000 00000000 534bd7f1 72934711 4171cfcb 81ddaad3
+ars4x32 10 00000000 00800000 00000000 00000000 00ff0000 00000000 00000000 00000000 42d534bd bcae68e8 dea7289e 1ccc31d3
+ars4x32 10 00000000 ff000000 00000000 00000000 00ff0000 00000000 00000000 00000000 c51854f1 ef3fb610 aab3ddc8 06cd29a6
+ars4x32 10 00000000 80000000 00000000 00000000 00ff0000 00000000 00000000 00000000 a6f81ddd f812ed3f 0b14cb66 2d74d5af
+ars4x32 10 00000000 00000000 000000ff 00000000 00ff0000 00000000 00000000 00000000 02b9e693 e2daeb40 38c3c0d1 b6e1b678
+ars4x32 10 00000000 00000000 00000080 00000000 00ff0000 00000000 00000000 00000000 619299f7 5d418257 05a4b287 7d64ec86
+ars4x32 10 00000000 00000000 0000ff00 00000000 00ff0000 00000000 00000000 00000000 54abe441 1e0ca52c 9697d390 ec49403c
+ars4x32 10 00000000 00000000 00008000 00000000 00ff0000 00000000 00000000 00000000 45f4cd80 081e315a 7642ae2a 759b45c1
+ars4x32 10 00000000 00000000 00ff0000 00000000 00ff0000 00000000 00000000 00000000 12aa95e9 ce20986d 7736572f 632973d1
+ars4x32 10 00000000 00000000 00800000 00000000 00ff0000 00000000 00000000 00000000 0c51b3d6 bfd21432 720ef22f a8eb9b11
+ars4x32 10 00000000 00000000 ff000000 00000000 00ff0000 00000000 00000000 00000000 e5d77df0 cc30d6f1 90a45f1a e82f6893
+ars4x32 10 00000000 00000000 80000000 00000000 00ff0000 00000000 00000000 00000000 6ad6d549 22c09b7e 11252c9e 952d6aff
+ars4x32 10 00000000 00000000 00000000 000000ff 00ff0000 00000000 00000000 00000000 ee477839 37c32d1a 48552f71 b890ec4b
+ars4x32 10 00000000 00000000 00000000 00000080 00ff0000 00000000 00000000 00000000 4f7f8639 5db444c4 ef8f4605 f1556a83
+ars4x32 10 00000000 00000000 00000000 0000ff00 00ff0000 00000000 00000000 00000000 b7661dc6 4d43a593 549d1cfe cfc04369
+ars4x32 10 00000000 00000000 00000000 00008000 00ff0000 00000000 00000000 00000000 de625f52 02b261c4 effc7c7b 91cb13e7
+ars4x32 10 00000000 00000000 00000000 00ff0000 00ff0000 00000000 00000000 00000000 a1c7b8bd 6d64b2f8 d1298c96 e130ab7b
+ars4x32 10 00000000 00000000 00000000 00800000 00ff0000 00000000 00000000 00000000 662f82fa 1800add6 f8312469 4736a74f
+ars4x32 10 00000000 00000000 00000000 ff000000 00ff0000 00000000 00000000 00000000 5911e758 97dae4b4 6af2b7bf 150f6d1b
+ars4x32 10 00000000 00000000 00000000 80000000 00ff0000 00000000 00000000 00000000 3488d858 3e2bbad6 40c64989 bab1e0e5
+ars4x32 10 886a3f24 d308a385 2e8a1913 44737003 00ff0000 00000000 00000000 00000000 dbe2cf83 80c2228c 2c1e363d e5d927c0
+ars4x32 10 223809a4 d0319f29 98fa2e08 896c4eec 00ff0000 00000000 00000000 00000000 847c9587 c42cd2d6 451f9848 6c289780
+ars4x32 10 e6212845 7713d038 cf6654be 6c0ce934 00ff0000 00000000 00000000 00000000 9efd8b55 0a5d400e 3a07864b db6eed91
+ars4x32 10 00000001 00000000 00000000 00000000 00800000 00000000 00000000 00000000 db5ef4e1 e16048d4 78b14d68 33a970c7
+ars4x32 10 00000100 00000000 00000000 00000000 00800000 00000000 00000000 00000000 1b61f324 2fa9127a daf45f23 2281de23
+ars4x32 10 00010000 00000000 00000000 00000000 00800000 00000000 00000000 00000000 e527ad88 66072a45 cb92483c 5bca41c9
+ars4x32 10 01000000 00000000 00000000 00000000 00800000 00000000 00000000 00000000 0df61f3f b1b08c54 c7570612 1103be2c
+ars4x32 10 00000000 00000001 00000000 00000000 00800000 00000000 00000000 00000000 e4ec6165 605e55f8 44fff6e8 b971033f
+ars4x32 10 00000000 00000100 00000000 00000000 00800000 00000000 00000000 00000000 c2569c0f 04a96b58 b4eac11f 6f477e54
+ars4x32 10 00000000 00010000 00000000 00000000 00800000 00000000 00000000 00000000 9867ce58 13167afc 3259d630 73b5cb83
+ars4x32 10 00000000 01000000 00000000 00000000 00800000 00000000 00000000 00000000 06ba859e b8d588e4 ea7f3b8e 3b1d1b79
+ars4x32 10 00000000 00000000 00000001 00000000 00800000 00000000 00000000 00000000 c04d021b 3518ba1e 3f729c0a 2cb2d2f2
+ars4x32 10 00000000 00000000 00000100 00000000 00800000 00000000 00000000 00000000 830e7ae7 eadc30a7 4d9812dc 6b43aa06
+ars4x32 10 00000000 00000000 00010000 00000000 00800000 00000000 00000000 00000000 b08691da 09b5e267 73cbee0d 57194cef
+ars4x32 10 00000000 00000000 01000000 00000000 00800000 00000000 00000000 00000000 e03fbf4a eaaf4354 a5f21afc 0b24275a
+ars4x32 10 00000000 00000000 00000000 00000001 00800000 00000000 00000000 00000000 4085411e 55ddeccd 11721c28 61944ef3
+ars4x32 10 00000000 00000000 00000000 00000100 00800000 00000000 00000000 00000000 31d2bb4c db351c79 ed94d0e6 b06757ac
+ars4x32 10 00000000 00000000 00000000 00010000 00800000 00000000 00000000 00000000 b948086e 5a94b824 1dab6a09 7ab43abb
+ars4x32 10 00000000 00000000 00000000 01000000 00800000 00000000 00000000 00000000 c2d6fbef 6f1ad683 6e50b436 8f6e0473
+ars4x32 10 0000ff00 00000000 00000000 00000000 00800000 00000000 00000000 00000000 7c0ff76b c44db90a c7495841 3d14b195
+ars4x32 10 00008000 00000000 00000000 00000000 00800000 00000000 00000000 00000000 646271c9 b5f201f1 6a854d67 50292d43
+ars4x32 10 00ff0000 00000000 00000000 00000000 00800000 00000000 00000000 00000000 d45d3917 70ffcfb0 2ff6010e 9af9b891
+ars4x32 10 00800000 00000000 00000000 00000000 00800000 00000000 00000000 00000000 cf7aac1c 76b5a514 fcfcbe40 2bbc5b50
+ars4x32 10 ff000000 00000000 00000000 00000000 00800000 00000000 00000000 00000000 fca66d94 0f4feb3f e0ab1b45 536472a3
+ars4x32 10 80000000 00000000 00000000 00000000 00800000 00000000 00000000 00000000 2090d2e1 fe76252c 0a3241d7 1898c552
+ars4x32 10 00000000 000000ff 00000000 00000000 00800000 00000000 00000000 00000000 8f1a05f3 eb0d950f 5e10ac82 d7d98359
+ars4x32 10 00000000 00000080 00000000 00000000 00800000 00000000 00000000 00000000 e9c204bf bb484da9 7025ed88 c41eb824
+ars4x32 10 00000000 0000ff00 00000000 00000000 00800000 00000000 00000000 00000000 e3f0c873 0632085c fc75c879 88318a3d
+ars4x32 10 00000000 00008000 00000000 00000000 00800000 00000000 00000000 00000000 bcfed823 8ee4cee9 78d39ab7 f915b651
+ars4x32 10 00000000 00ff0000 00000000 00000000 00800000 00000000 00000000 00000000 95f99dbd 2abddccb 6ac36720 2ac62033
+ars4x32 10 00000000 00800000 00000000 00000000 00800000 00000000 00000000 00000000 f46eca4a 488c1f4d fce17f35 0e29f371
+ars4x32 10 00000000 ff000000 00000000 00000000 00800000 00000000 00000000 00000000 ed90442c 193ae115 c99d70af 9dbae328
+ars4x32 10 00000000 80000000 00000000 00000000 00800000 00000000 00000000 00000000 004e80fe 9b3a9cf4 1ace505d aec4050b
+ars4x32 10 00000000 00000000 000000ff 00000000 00800000 00000000 00000000 00000000 859f6028 433d3b58 85f84904 609079a2
+ars4x32 10 00000000 00000000 00000080 00000000 00800000 00000000 00000000 00000000 37ab8b47 fd603f7d b3f51703 1df6faee
+ars4x32 10 00000000 00000000 0000ff00 00000000 00800000 00000000 00000000 00000000 d12ca292 4e8eafd6 7720d20b afe3dc6d
+ars4x32 10 00000000 00000000 00008000 00000000 00800000 00000000 00000000 00000000 3958d33c 251761e9 2a2508e8 3ad41a75
+ars4x32 10 00000000 00000000 00ff0000 00000000 00800000 00000000 00000000 00000000 63b226bc 9f57beb8 0a08b6d2 deb4184f
+ars4x32 10 00000000 00000000 00800000 00000000 00800000 00000000 00000000 00000000 f1762304 babb3dad 9e68f4d9 ede3754a
+ars4x32 10 00000000 00000000 ff000000 00000000 00800000 00000000 00000000 00000000 459d968c 6566e40b 42960e14 d220224b
+ars4x32 10 00000000 00000000 80000000 00000000 00800000 00000000 00000000 00000000 bc82e8db 4745f1f7 834f9f5f 423b69b5
+ars4x32 10 00000000 00000000 00000000 000000ff 00800000 00000000 00000000 00000000 d4ac8f96 1e5ce164 202b2891 c1f1cb85
+ars4x32 10 00000000 00000000 00000000 00000080 00800000 00000000 00000000 00000000 555a3182 851f8f14 840f6e67 ff50f9bd
+ars4x32 10 00000000 00000000 00000000 0000ff00 00800000 00000000 00000000 00000000 c81cd8cf 39a0b6d9 707fb56c 14e285e5
+ars4x32 10 00000000 00000000 00000000 00008000 00800000 00000000 00000000 00000000 703f8143 6a9d4f17 1ce6b2d1 8a5a82ae
+ars4x32 10 00000000 00000000 00000000 00ff0000 00800000 00000000 00000000 00000000 bd3214ef 868380c4 90c06b8a 67ce86ef
+ars4x32 10 00000000 00000000 00000000 00800000 00800000 00000000 00000000 00000000 b49e71ab 6320e3ef 54ed49fd fe98e25e
+ars4x32 10 00000000 00000000 00000000 ff000000 00800000 00000000 00000000 00000000 ab7c9f9a 309cd4ef 72c641eb 8aaf2ef4
+ars4x32 10 00000000 00000000 00000000 80000000 00800000 00000000 00000000 00000000 97cc0d1a 620b1043 84c6dfe1 931f395e
+ars4x32 10 886a3f24 d308a385 2e8a1913 44737003 00800000 00000000 00000000 00000000 b7ca7f47 66e13159 047c8bec a45d8db0
+ars4x32 10 223809a4 d0319f29 98fa2e08 896c4eec 00800000 00000000 00000000 00000000 67e23eb6 be4231c7 3fa98062 fe04bd78
+ars4x32 10 e6212845 7713d038 cf6654be 6c0ce934 00800000 00000000 00000000 00000000 5fa8976f f69a3512 1774b3f4 80395e73
+ars4x32 10 00000001 00000000 00000000 00000000 ff000000 00000000 00000000 00000000 f7d2aa28 e640a1ec c2d8b754 41848c0e
+ars4x32 10 00000100 00000000 00000000 00000000 ff000000 00000000 00000000 00000000 410b55c1 7bf60178 37d78113 db9f0b23
+ars4x32 10 00010000 00000000 00000000 00000000 ff000000 00000000 00000000 00000000 69feb9d9 7ddb8fee 793d78d1 cd2aeb75
+ars4x32 10 01000000 00000000 00000000 00000000 ff000000 00000000 00000000 00000000 3b6e6059 c910b0f8 7a39c697 41336a36
+ars4x32 10 00000000 00000001 00000000 00000000 ff000000 00000000 00000000 00000000 fd1b6a45 cb542c48 02229b0d 290a52ba
+ars4x32 10 00000000 00000100 00000000 00000000 ff000000 00000000 00000000 00000000 c3d2e857 0441fd33 973d189f 0f2e74cd
+ars4x32 10 00000000 00010000 00000000 00000000 ff000000 00000000 00000000 00000000 409d2af9 5b3bf6c6 67242f7d 0a4ac554
+ars4x32 10 00000000 01000000 00000000 00000000 ff000000 00000000 00000000 00000000 ce3e9c59 6f490eef af582f73 466d8fc3
+ars4x32 10 00000000 00000000 00000001 00000000 ff000000 00000000 00000000 00000000 c63a6987 171d2147 0a028b8a 9357d8da
+ars4x32 10 00000000 00000000 00000100 00000000 ff000000 00000000 00000000 00000000 457d09fb ad6adc96 cf7e989a 18de088a
+ars4x32 10 00000000 00000000 00010000 00000000 ff000000 00000000 00000000 00000000 ca559ca2 a52c8634 b9f259f0 eb45d905
+ars4x32 10 00000000 00000000 01000000 00000000 ff000000 00000000 00000000 00000000 6d9c800b 96db29c0 68997d47 85629ce3
+ars4x32 10 00000000 00000000 00000000 00000001 ff000000 00000000 00000000 00000000 385760c0 d16f0faa 23cb7b10 5b7684fa
+ars4x32 10 00000000 00000000 00000000 00000100 ff000000 00000000 00000000 00000000 030f70d6 a2276f19 aa0303a5 9fff9373
+ars4x32 10 00000000 00000000 00000000 00010000 ff000000 00000000 00000000 00000000 a32dd276 66689272 7c93a697 5535e13e
+ars4x32 10 00000000 00000000 00000000 01000000 ff000000 00000000 00000000 00000000 4c882120 42e1caa4 77d94eaa 40fb7d85
+ars4x32 10 0000ff00 00000000 00000000 00000000 ff000000 00000000 00000000 00000000 68af87e5 736298dc ffd70c1e cd7fdc20
+ars4x32 10 00008000 00000000 00000000 00000000 ff000000 00000000 00000000 00000000 06877113 0f14e185 97f9e55a b4eaa91f
+ars4x32 10 00ff0000 00000000 00000000 00000000 ff000000 00000000 00000000 00000000 b7a90a79 29557e2e 2859cc17 a9342fcb
+ars4x32 10 00800000 00000000 00000000 00000000 ff000000 00000000 00000000 00000000 124f8d4f 9db2acdf ca0bbb11 3d23283a
+ars4x32 10 ff000000 00000000 00000000 00000000 ff000000 00000000 00000000 00000000 5df2a345 ca3497ca 637ff8f2 42ce8160
+ars4x32 10 80000000 00000000 00000000 00000000 ff000000 00000000 00000000 00000000 4c9688b5 de560a88 153c9b25 6de2906c
+ars4x32 10 00000000 000000ff 00000000 00000000 ff000000 00000000 00000000 00000000 a4894ec2 b445b0d1 5ce41862 80de31ec
+ars4x32 10 00000000 00000080 00000000 00000000 ff000000 00000000 00000000 00000000 7ce5a59c 61f94b72 6cbf8c5d 5ab5b2bd
+ars4x32 10 00000000 0000ff00 00000000 00000000 ff000000 00000000 00000000 00000000 4ebc3279 09240e4b a07646df 005db721
+ars4x32 10 00000000 00008000 00000000 00000000 ff000000 00000000 00000000 00000000 387cd8ae ec75b073 76f47ec8 fcd3bde8
+ars4x32 10 00000000 00ff0000 00000000 00000000 ff000000 00000000 00000000 00000000 042a366e 12677620 bb39008c 14397c4a
+ars4x32 10 00000000 00800000 00000000 00000000 ff000000 00000000 00000000 00000000 b5da689c 879191e2 57b3b2dc cceba406
+ars4x32 10 00000000 ff000000 00000000 00000000 ff000000 00000000 00000000 00000000 93d66392 592f6cc4 95102dad f11423e0
+ars4x32 10 00000000 80000000 00000000 00000000 ff000000 00000000 00000000 00000000 efdb58c1 669ba5f2 63e548f7 4fd85d31
+ars4x32 10 00000000 00000000 000000ff 00000000 ff000000 00000000 00000000 00000000 c55a255a 6bb3527f 36f5bd81 b732a889
+ars4x32 10 00000000 00000000 00000080 00000000 ff000000 00000000 00000000 00000000 9642acba 516b0c77 6616d37a 38363d9b
+ars4x32 10 00000000 00000000 0000ff00 00000000 ff000000 00000000 00000000 00000000 fec0b5c5 e1eb7b36 d67dbc8d ed6b2fcc
+ars4x32 10 00000000 00000000 00008000 00000000 ff000000 00000000 00000000 00000000 ceaafa67 bb785bf6 db255932 f5fce949
+ars4x32 10 00000000 00000000 00ff0000 00000000 ff000000 00000000 00000000 00000000 81ca13cf 1c5aa438 5fbf0aeb f8ea76de
+ars4x32 10 00000000 00000000 00800000 00000000 ff000000 00000000 00000000 00000000 ba833116 fe7eaaa0 3fe9eff9 0de94178
+ars4x32 10 00000000 00000000 ff000000 00000000 ff000000 00000000 00000000 00000000 4e586f11 1e4a7a42 111fae69 d48e5612
+ars4x32 10 00000000 00000000 80000000 00000000 ff000000 00000000 00000000 00000000 44c18d42 65604a51 a44b5072 8641ca7a
+ars4x32 10 00000000 00000000 00000000 000000ff ff000000 00000000 00000000 00000000 ce91dd77 a6a45786 ea5cf870 a8de2c9f
+ars4x32 10 00000000 00000000 00000000 00000080 ff000000 00000000 00000000 00000000 f05bd698 29284180 78c6f669 1b5cf6e5
+ars4x32 10 00000000 00000000 00000000 0000ff00 ff000000 00000000 00000000 00000000 13a510c1 7ec43c0a 51e6456c 2fb6d9b8
+ars4x32 10 00000000 00000000 00000000 00008000 ff000000 00000000 00000000 00000000 34b3f6ad e44fda40 74d440b8 cb8b80d0
+ars4x32 10 00000000 00000000 00000000 00ff0000 ff000000 00000000 00000000 00000000 16bfac7f ba4437e0 c8aa863a 6bc8b15f
+ars4x32 10 00000000 00000000 00000000 00800000 ff000000 00000000 00000000 00000000 4da07234 8f72fe3d a4c2e8dc 94bdd3ac
+ars4x32 10 00000000 00000000 00000000 ff000000 ff000000 00000000 00000000 00000000 f468dfc1 6e0f1e95 26798846 5154122e
+ars4x32 10 00000000 00000000 00000000 80000000 ff000000 00000000 00000000 00000000 5fe2c6c1 af61ba83 457a3f73 a14a3fad
+ars4x32 10 886a3f24 d308a385 2e8a1913 44737003 ff000000 00000000 00000000 00000000 b68c8a72 adb26d11 56ac3f0b 0ff6bd07
+ars4x32 10 223809a4 d0319f29 98fa2e08 896c4eec ff000000 00000000 00000000 00000000 7791be90 afae34fe 929d2b8e b154905a
+ars4x32 10 e6212845 7713d038 cf6654be 6c0ce934 ff000000 00000000 00000000 00000000 d9c97667 c152434b dc1464bd e178171a
+ars4x32 10 00000001 00000000 00000000 00000000 80000000 00000000 00000000 00000000 97ff5cd8 4861db8c 56b30095 393ea1b2
+ars4x32 10 00000100 00000000 00000000 00000000 80000000 00000000 00000000 00000000 d79f27d2 8c0b82f2 032b61a7 325736af
+ars4x32 10 00010000 00000000 00000000 00000000 80000000 00000000 00000000 00000000 6d8a2815 12c7ae92 c104fdf1 cffe9065
+ars4x32 10 01000000 00000000 00000000 00000000 80000000 00000000 00000000 00000000 4a2e289e 6022c434 a9d05f0f b6164120
+ars4x32 10 00000000 00000001 00000000 00000000 80000000 00000000 00000000 00000000 a242a3c1 2d12adde 35c2700c 381ac0cb
+ars4x32 10 00000000 00000100 00000000 00000000 80000000 00000000 00000000 00000000 e0570553 5f8edf6c a744ed01 9b38eefd
+ars4x32 10 00000000 00010000 00000000 00000000 80000000 00000000 00000000 00000000 c278a1e4 30fdb3e6 87758dc9 407e25fc
+ars4x32 10 00000000 01000000 00000000 00000000 80000000 00000000 00000000 00000000 780d148b 118fcdea b603d27f 02207e40
+ars4x32 10 00000000 00000000 00000001 00000000 80000000 00000000 00000000 00000000 a2bda148 cc53600a 1726339f 72104df8
+ars4x32 10 00000000 00000000 00000100 00000000 80000000 00000000 00000000 00000000 0729f5bd cd715d46 76d7deb7 319cffb6
+ars4x32 10 00000000 00000000 00010000 00000000 80000000 00000000 00000000 00000000 8accf3dc 9cf6976f 95f4991a 366a0b57
+ars4x32 10 00000000 00000000 01000000 00000000 80000000 00000000 00000000 00000000 d9f99c22 aba10b6f 409410a4 46579319
+ars4x32 10 00000000 00000000 00000000 00000001 80000000 00000000 00000000 00000000 909887b1 6f7554d8 37e260c5 daa0f112
+ars4x32 10 00000000 00000000 00000000 00000100 80000000 00000000 00000000 00000000 f74bd90d 935d6769 0251c6dc 8c756b12
+ars4x32 10 00000000 00000000 00000000 00010000 80000000 00000000 00000000 00000000 36c4bb4a 068834b6 8658e86e e63b17c5
+ars4x32 10 00000000 00000000 00000000 01000000 80000000 00000000 00000000 00000000 fff5db04 c71a6e74 6fef623c 8cbd1065
+ars4x32 10 0000ff00 00000000 00000000 00000000 80000000 00000000 00000000 00000000 5494ff8e b037ba29 79cc7007 586b197a
+ars4x32 10 00008000 00000000 00000000 00000000 80000000 00000000 00000000 00000000 00ec0fcb 778eb20e aab8faf1 e35ac3cf
+ars4x32 10 00ff0000 00000000 00000000 00000000 80000000 00000000 00000000 00000000 a917f1ed 8159329a de9788bf 97e4bbe8
+ars4x32 10 00800000 00000000 00000000 00000000 80000000 00000000 00000000 00000000 25906cb3 7d803d3f 4ba100f5 e89d9852
+ars4x32 10 ff000000 00000000 00000000 00000000 80000000 00000000 00000000 00000000 d82188ad 229109e3 b4981afa 5ab8891d
+ars4x32 10 80000000 00000000 00000000 00000000 80000000 00000000 00000000 00000000 adbdf443 3fb1ffa4 1fa26427 d492932f
+ars4x32 10 00000000 000000ff 00000000 00000000 80000000 00000000 00000000 00000000 e8fa0690 193087aa f5ed6379 c99b78ba
+ars4x32 10 00000000 00000080 00000000 00000000 80000000 00000000 00000000 00000000 c967dfa9 e083aa64 ead2c7b7 d9ea26b1
+ars4x32 10 00000000 0000ff00 00000000 00000000 80000000 00000000 00000000 00000000 5dcf7365 5afcb957 df110c18 cbbeb426
+ars4x32 10 00000000 00008000 00000000 00000000 80000000 00000000 00000000 00000000 d5e940e2 434e3b1e 2f128f6f 5451dfc3
+ars4x32 10 00000000 00ff0000 00000000 00000000 80000000 00000000 00000000 00000000 f1794662 b301ae7d a2f464e6 997dd9f6
+ars4x32 10 00000000 00800000 00000000 00000000 80000000 00000000 00000000 00000000 c3aef88e f1d5ac85 d42a0f21 7cb0f3c9
+ars4x32 10 00000000 ff000000 00000000 00000000 80000000 00000000 00000000 00000000 92c61834 8ea5053f 102d04af 61223c6b
+ars4x32 10 00000000 80000000 00000000 00000000 80000000 00000000 00000000 00000000 89182370 ca6696b6 cd760b2c e0a3a674
+ars4x32 10 00000000 00000000 000000ff 00000000 80000000 00000000 00000000 00000000 da2c51c8 364eaf31 254fe3c1 ac396019
+ars4x32 10 00000000 00000000 00000080 00000000 80000000 00000000 00000000 00000000 a07f2985 6feb731a af6bbb05 aee2e670
+ars4x32 10 00000000 00000000 0000ff00 00000000 80000000 00000000 00000000 00000000 0ed8bd0b d0b7bd3c 516bad61 c187b5d2
+ars4x32 10 00000000 00000000 00008000 00000000 80000000 00000000 00000000 00000000 e2fdfa30 5630a1f2 2d4cba2f a04055ef
+ars4x32 10 00000000 00000000 00ff0000 00000000 80000000 00000000 00000000 00000000 fa4f81be 84a8f047 770751fe 6a4c9e83
+ars4x32 10 00000000 00000000 00800000 00000000 80000000 00000000 00000000 00000000 879c5ee9 c172703d fbbdcac4 03a9c0e3
+ars4x32 10 00000000 00000000 ff000000 00000000 80000000 00000000 00000000 00000000 6ae3fe71 5adb4c66 79a32ba4 f4be6b5e
+ars4x32 10 00000000 00000000 80000000 00000000 80000000 00000000 00000000 00000000 f40b0b8e eba53eb5 d8c08069 e2927be8
+ars4x32 10 00000000 00000000 00000000 000000ff 80000000 00000000 00000000 00000000 53d9cee3 cece393c ed6574f2 ebe560ef
+ars4x32 10 00000000 00000000 00000000 00000080 80000000 00000000 00000000 00000000 f78c13c7 8c0b88e3 c3173a73 929c7e82
+ars4x32 10 00000000 00000000 00000000 0000ff00 80000000 00000000 00000000 00000000 ec276a98 a5c64f44 ad7dfa39 47bc1a2d
+ars4x32 10 00000000 00000000 00000000 00008000 80000000 00000000 00000000 00000000 cc98cd21 2513088c 1ff85f6d 9dddd2af
+ars4x32 10 00000000 00000000 00000000 00ff0000 80000000 00000000 00000000 00000000 1b445988 88b28e58 1f32ac9f d878b6b6
+ars4x32 10 00000000 00000000 00000000 00800000 80000000 00000000 00000000 00000000 906819f6 9f13ac1c 776dee54 23b41c34
+ars4x32 10 00000000 00000000 00000000 ff000000 80000000 00000000 00000000 00000000 57489a6c 3a733797 a402c7c6 f7072556
+ars4x32 10 00000000 00000000 00000000 80000000 80000000 00000000 00000000 00000000 a978be96 d415dec9 0c39bc27 3042b2f9
+ars4x32 10 886a3f24 d308a385 2e8a1913 44737003 80000000 00000000 00000000 00000000 4760415d 0a8eb41e e617271e ce05bbb2
+ars4x32 10 223809a4 d0319f29 98fa2e08 896c4eec 80000000 00000000 00000000 00000000 a1ae2eab 1339f173 ed81008d b1f714e0
+ars4x32 10 e6212845 7713d038 cf6654be 6c0ce934 80000000 00000000 00000000 00000000 18c45445 15a58d99 fdb3876d eb1f5c04
+ars4x32 10 00000001 00000000 00000000 00000000 00000000 000000ff 00000000 00000000 1fa1e630 4d2f894e 6ba89d45 96dc9df0
+ars4x32 10 00000100 00000000 00000000 00000000 00000000 000000ff 00000000 00000000 1516864d 4eb88d23 b222d70e 6fb68e8b
+ars4x32 10 00010000 00000000 00000000 00000000 00000000 000000ff 00000000 00000000 5ce4a88a 23da0556 daac7f67 ed800fd1
+ars4x32 10 01000000 00000000 00000000 00000000 00000000 000000ff 00000000 00000000 828cc9d2 fb57de07 e8de59fb 2f90cec1
+ars4x32 10 00000000 00000001 00000000 00000000 00000000 000000ff 00000000 00000000 77b148c1 ed3007c2 0651b6d7 b722ec45
+ars4x32 10 00000000 00000100 00000000 00000000 00000000 000000ff 00000000 00000000 b6c6c579 e5d1451f 640dd587 fa5ae330
+ars4x32 10 00000000 00010000 00000000 00000000 00000000 000000ff 00000000 00000000 5a28db11 36678ef2 930bbcf1 23cd2392
+ars4x32 10 00000000 01000000 00000000 00000000 00000000 000000ff 00000000 00000000 59760264 41199d8c efbdd3c5 966525d3
+ars4x32 10 00000000 00000000 00000001 00000000 00000000 000000ff 00000000 00000000 a2077d7d 8ae1cee9 14205b74 90e49ed9
+ars4x32 10 00000000 00000000 00000100 00000000 00000000 000000ff 00000000 00000000 a34202b9 02f0238b 48f1f511 f4b9ae4e
+ars4x32 10 00000000 00000000 00010000 00000000 00000000 000000ff 00000000 00000000 b8c1c0ea 3330fb90 f9947b9c a4a72574
+ars4x32 10 00000000 00000000 01000000 00000000 00000000 000000ff 00000000 00000000 e1f71d06 65fbb183 99769e9c eac7f1e4
+ars4x32 10 00000000 00000000 00000000 00000001 00000000 000000ff 00000000 00000000 c16e3334 d796c741 eb5bb0dd 8a879ac3
+ars4x32 10 00000000 00000000 00000000 00000100 00000000 000000ff 00000000 00000000 f53b562d 1dfbd78f d3d968db fc5401be
+ars4x32 10 00000000 00000000 00000000 00010000 00000000 000000ff 00000000 00000000 b441bfb3 540c411d e0bc213c db49576d
+ars4x32 10 00000000 00000000 00000000 01000000 00000000 000000ff 00000000 00000000 a768eabd d0a8a1d9 8d9f363f 4ddf49ff
+ars4x32 10 0000ff00 00000000 00000000 00000000 00000000 000000ff 00000000 00000000 2b692d50 cddf4bd2 6930bca7 0e0d70fc
+ars4x32 10 00008000 00000000 00000000 00000000 00000000 000000ff 00000000 00000000 b33c77e3 14c35ce1 52c76d19 7f569a77
+ars4x32 10 00ff0000 00000000 00000000 00000000 00000000 000000ff 00000000 00000000 e68e0fa7 8d78692c 613fd85d b6e15efd
+ars4x32 10 00800000 00000000 00000000 00000000 00000000 000000ff 00000000 00000000 abbe0880 b1cd7217 7d55ce46 797a0862
+ars4x32 10 ff000000 00000000 00000000 00000000 00000000 000000ff 00000000 00000000 dae5f10d 4ec8e1fc 3f268cf4 8c2c2ad4
+ars4x32 10 80000000 00000000 00000000 00000000 00000000 000000ff 00000000 00000000 84686cd0 a7ae82ec ff25ac79 f1dc3088
+ars4x32 10 00000000 000000ff 00000000 00000000 00000000 000000ff 00000000 00000000 b93e4064 9a91e466 07e0e82b b1117cde
+ars4x32 10 00000000 00000080 00000000 00000000 00000000 000000ff 00000000 00000000 10db4555 815d4eb3 5d25295e f2a4f297
+ars4x32 10 00000000 0000ff00 00000000 00000000 00000000 000000ff 00000000 00000000 703414c0 cc52320c b66fcfe8 7ccf471f
+ars4x32 10 00000000 00008000 00000000 00000000 00000000 000000ff 00000000 00000000 a6a4b22b 0957d232 ebcafef3 476f5f82
+ars4x32 10 00000000 00ff0000 00000000 00000000 00000000 000000ff 00000000 00000000 3e79b79a 29b72295 0aac8aab 1df135ca
+ars4x32 10 00000000 00800000 00000000 00000000 00000000 000000ff 00000000 00000000 6c25c4a2 ded9637d b0062115 6f168a11
+ars4x32 10 00000000 ff000000 00000000 00000000 00000000 000000ff 00000000 00000000 c0268b28 4baf1fd9 75522421 c70141be
+ars4x32 10 00000000 80000000 00000000 00000000 00000000 000000ff 00000000 00000000 2b0db51a e6e972fa c3db0c71 cf011a1b
+ars4x32 10 00000000 00000000 000000ff 00000000 00000000 000000ff 00000000 00000000 526dcc62 57cc3103 5325c82d 8d0d2443
+ars4x32 10 00000000 00000000 00000080 00000000 00000000 000000ff 00000000 00000000 4d40d69f 70795c84 43806a1a 026f7148
+ars4x32 10 00000000 00000000 0000ff00 00000000 00000000 000000ff 00000000 00000000 fc9ec47e 9da0186c 690fbed9 e779d32d
+ars4x32 10 00000000 00000000 00008000 00000000 00000000 000000ff 00000000 00000000 adc1e763 48657940 f821733b 94466063
+ars4x32 10 00000000 00000000 00ff0000 00000000 00000000 000000ff 00000000 00000000 88313a3b 434321fd 704c3a37 1de3ff37
+ars4x32 10 00000000 00000000 00800000 00000000 00000000 000000ff 00000000 00000000 f8bb1fee 069fbde8 aea1be43 7bdfc1ea
+ars4x32 10 00000000 00000000 ff000000 00000000 00000000 000000ff 00000000 00000000 fcf27c4c 51054364 a2e8947c 4fe3d72d
+ars4x32 10 00000000 00000000 80000000 00000000 00000000 000000ff 00000000 00000000 d0f8f28a f8816738 3c514ce7 6c34bb66
+ars4x32 10 00000000 00000000 00000000 000000ff 00000000 000000ff 00000000 00000000 fd2c89e4 f10f1080 a4ae9678 a4d6d514
+ars4x32 10 00000000 00000000 00000000 00000080 00000000 000000ff 00000000 00000000 b9947f21 66735588 8fb143dc e7cc086c
+ars4x32 10 00000000 00000000 00000000 0000ff00 00000000 000000ff 00000000 00000000 bc57f7b9 fbdd225d 327ce0ad fa0057f8
+ars4x32 10 00000000 00000000 00000000 00008000 00000000 000000ff 00000000 00000000 d330aa24 d9b8c90c f33a9aea dcce91d0
+ars4x32 10 00000000 00000000 00000000 00ff0000 00000000 000000ff 00000000 00000000 cce8a8bd e6d58698 ff2ef9ed 45c0ec86
+ars4x32 10 00000000 00000000 00000000 00800000 00000000 000000ff 00000000 00000000 1c2a1a5c a03f2a9a 90488834 d9d22878
+ars4x32 10 00000000 00000000 00000000 ff000000 00000000 000000ff 00000000 00000000 f50918b0 1abc837e 63f787ca 4c3d21b0
+ars4x32 10 00000000 00000000 00000000 80000000 00000000 000000ff 00000000 00000000 d3b48412 00431173 fc381c89 92f0d299
+ars4x32 10 886a3f24 d308a385 2e8a1913 44737003 00000000 000000ff 00000000 00000000 59e6ed04 e72dee88 43a0c869 f80b6f82
+ars4x32 10 223809a4 d0319f29 98fa2e08 896c4eec 00000000 000000ff 00000000 00000000 8ba8b541 1e8abc5e 2fb4912b 4d0f6dc1
+ars4x32 10 e6212845 7713d038 cf6654be 6c0ce934 00000000 000000ff 00000000 00000000 8b10b9c9 b977f852 d9bd28bf 12d77e54
+ars4x32 10 00000001 00000000 00000000 00000000 00000000 00000080 00000000 00000000 110d6be7 a16da48b a3f265d0 b0569d26
+ars4x32 10 00000100 00000000 00000000 00000000 00000000 00000080 00000000 00000000 52ca46a7 a18bb1f4 20ea22e7 128f8393
+ars4x32 10 00010000 00000000 00000000 00000000 00000000 00000080 00000000 00000000 8c87ef25 27cba360 f0a8fc01 40c75256
+ars4x32 10 01000000 00000000 00000000 00000000 00000000 00000080 00000000 00000000 5a5b8507 eb4ffb4b 398550d2 48ddd688
+ars4x32 10 00000000 00000001 00000000 00000000 00000000 00000080 00000000 00000000 b33cee09 c18b0735 b1498f38 d5398d27
+ars4x32 10 00000000 00000100 00000000 00000000 00000000 00000080 00000000 00000000 a17c32c1 8c2671c0 b2015ac4 209eabe2
+ars4x32 10 00000000 00010000 00000000 00000000 00000000 00000080 00000000 00000000 688f798b 46fbe8bf 9dee92d7 054dffbd
+ars4x32 10 00000000 01000000 00000000 00000000 00000000 00000080 00000000 00000000 bb8c5b61 041a0b85 c4560614 8c04ec9d
+ars4x32 10 00000000 00000000 00000001 00000000 00000000 00000080 00000000 00000000 213669a9 29989053 7223d88d 000e3388
+ars4x32 10 00000000 00000000 00000100 00000000 00000000 00000080 00000000 00000000 6832e31a 2bb5aa98 94ec72d5 84dabefe
+ars4x32 10 00000000 00000000 00010000 00000000 00000000 00000080 00000000 00000000 aa365f18 72a90916 7b72d26a 94d8b664
+ars4x32 10 00000000 00000000 01000000 00000000 00000000 00000080 00000000 00000000 ad54e76b 62d5fa01 c1d1575d 0b65f816
+ars4x32 10 00000000 00000000 00000000 00000001 00000000 00000080 00000000 00000000 c233074c f26bc2e3 848a0d7f 50133fbb
+ars4x32 10 00000000 00000000 00000000 00000100 00000000 00000080 00000000 00000000 70ebbaf0 4f6e7229 782f099f 2b72b631
+ars4x32 10 00000000 00000000 00000000 00010000 00000000 00000080 00000000 00000000 33a62ae4 7c6eac1e b920fb8a 74f74c1d
+ars4x32 10 00000000 00000000 00000000 01000000 00000000 00000080 00000000 00000000 af0a5b7d 43519cd0 ea3cda2f f740241e
+ars4x32 10 0000ff00 00000000 00000000 00000000 00000000 00000080 00000000 00000000 e47439e6 ba0ebd9a ec544e8f 10895388
+ars4x32 10 00008000 00000000 00000000 00000000 00000000 00000080 00000000 00000000 33f4223d 998b9cee 918cbcd8 bdc679c9
+ars4x32 10 00ff0000 00000000 00000000 00000000 00000000 00000080 00000000 00000000 8e93e529 ae3eec51 464b8779 bf89010e
+ars4x32 10 00800000 00000000 00000000 00000000 00000000 00000080 00000000 00000000 0abcea55 2b8b74d1 eec1f021 3446b5a7
+ars4x32 10 ff000000 00000000 00000000 00000000 00000000 00000080 00000000 00000000 e774b3db e0d8f2cb 684b504b 8ba60f5f
+ars4x32 10 80000000 00000000 00000000 00000000 00000000 00000080 00000000 00000000 3b05baca afc7aaa9 9b3892d1 9abe1d26
+ars4x32 10 00000000 000000ff 00000000 00000000 00000000 00000080 00000000 00000000 2f6c73a2 972ed4cc 41d15bbf bc036df0
+ars4x32 10 00000000 00000080 00000000 00000000 00000000 00000080 00000000 00000000 3f401a57 c43fd94c d3e0d78e 7994b848
+ars4x32 10 00000000 0000ff00 00000000 00000000 00000000 00000080 00000000 00000000 1bbc1c53 2bb7665a 338c238d ff975267
+ars4x32 10 00000000 00008000 00000000 00000000 00000000 00000080 00000000 00000000 2cdd6893 02156110 1c814ecf 6ec3f330
+ars4x32 10 00000000 00ff0000 00000000 00000000 00000000 00000080 00000000 00000000 4ce62ccd 7f6a5d2e da2c1c9b 1ce2b248
+ars4x32 10 00000000 00800000 00000000 00000000 00000000 00000080 00000000 00000000 220c8cad a5af436f 64e11e9f 391581d9
+ars4x32 10 00000000 ff000000 00000000 00000000 00000000 00000080 00000000 00000000 48b5dabf df94481a 6ed3bcf6 34ad0952
+ars4x32 10 00000000 80000000 00000000 00000000 00000000 00000080 00000000 00000000 9f17100b 3f5315e4 793b6995 11cc7178
+ars4x32 10 00000000 00000000 000000ff 00000000 00000000 00000080 00000000 00000000 2e6da599 a33aa282 a52c8fe8 82d587cc
+ars4x32 10 00000000 00000000 00000080 00000000 00000000 00000080 00000000 00000000 961099d8 a3e1ea0f d1c06f29 3576caf6
+ars4x32 10 00000000 00000000 0000ff00 00000000 00000000 00000080 00000000 00000000 f3f8264a 0f8812fd 72cec900 4d46f983
+ars4x32 10 00000000 00000000 00008000 00000000 00000000 00000080 00000000 00000000 150b661c d645dc30 58cee969 ffc65955
+ars4x32 10 00000000 00000000 00ff0000 00000000 00000000 00000080 00000000 00000000 497d867a 04f9bdc0 01fdb685 b54bff6f
+ars4x32 10 00000000 00000000 00800000 00000000 00000000 00000080 00000000 00000000 7c2e189a 58781269 a87399db 364b24ee
+ars4x32 10 00000000 00000000 ff000000 00000000 00000000 00000080 00000000 00000000 7ec65f86 adc1d28f bb957d72 d9e41689
+ars4x32 10 00000000 00000000 80000000 00000000 00000000 00000080 00000000 00000000 87448d14 3b1715c9 586b3fe5 61b33657
+ars4x32 10 00000000 00000000 00000000 000000ff 00000000 00000080 00000000 00000000 3ca3750f 41213709 b4a9c050 a2802c9d
+ars4x32 10 00000000 00000000 00000000 00000080 00000000 00000080 00000000 00000000 3e7d1880 846ca7a8 5b4d718b ec3c4b4e
+ars4x32 10 00000000 00000000 00000000 0000ff00 00000000 00000080 00000000 00000000 aa65a024 a1f6e3e1 1e50300b 81b2fe34
+ars4x32 10 00000000 00000000 00000000 00008000 00000000 00000080 00000000 00000000 6ea04ddf 68274c2d 00e8fe18 1e72c32a
+ars4x32 10 00000000 00000000 00000000 00ff0000 00000000 00000080 00000000 00000000 091763e9 95c787c6 795f2454 7cde8a2b
+ars4x32 10 00000000 00000000 00000000 00800000 00000000 00000080 00000000 00000000 f7eeae5f 4741b188 fce905e1 135baaa7
+ars4x32 10 00000000 00000000 00000000 ff000000 00000000 00000080 00000000 00000000 b1f3bfc9 6cb39ec6 a3c738ea a04985eb
+ars4x32 10 00000000 00000000 00000000 80000000 00000000 00000080 00000000 00000000 590a08dd 916022c4 adc06097 48303077
+ars4x32 10 886a3f24 d308a385 2e8a1913 44737003 00000000 00000080 00000000 00000000 64e7b5b9 33179a7e 4ca06cc0 5d956f58
+ars4x32 10 223809a4 d0319f29 98fa2e08 896c4eec 00000000 00000080 00000000 00000000 dd4830eb 1314366c 600a1334 b68aa44f
+ars4x32 10 e6212845 7713d038 cf6654be 6c0ce934 00000000 00000080 00000000 00000000 a99d55a9 7cf8940a a70f0281 d233a206
+ars4x32 10 00000001 00000000 00000000 00000000 00000000 0000ff00 00000000 00000000 2dc6c14a 01f7b3e4 e269700c 8039a0fe
+ars4x32 10 00000100 00000000 00000000 00000000 00000000 0000ff00 00000000 00000000 cf32bd13 c75e8c63 337a5b1c 8b874719
+ars4x32 10 00010000 00000000 00000000 00000000 00000000 0000ff00 00000000 00000000 bd30d45c 846cf3e2 0f784607 5180e999
+ars4x32 10 01000000 00000000 00000000 00000000 00000000 0000ff00 00000000 00000000 24c4748b 5ff9410b 1638e715 317f5646
+ars4x32 10 00000000 00000001 00000000 00000000 00000000 0000ff00 00000000 00000000 fa857c4e f695a8fa ba5a3fa2 f6231137
+ars4x32 10 00000000 00000100 00000000 00000000 00000000 0000ff00 00000000 00000000 e9ffd90d 50b3ab34 f829bd63 9df6a93d
+ars4x32 10 00000000 00010000 00000000 00000000 00000000 0000ff00 00000000 00000000 fda8b1ac 2efbcda8 9f4d4ed0 f39d01c2
+ars4x32 10 00000000 01000000 00000000 00000000 00000000 0000ff00 00000000 00000000 3f4e231d 9e776fa6 32c5e943 06362122
+ars4x32 10 00000000 00000000 00000001 00000000 00000000 0000ff00 00000000 00000000 bb71ca48 14cf1dd1 84cc6c3d 0a99871f
+ars4x32 10 00000000 00000000 00000100 00000000 00000000 0000ff00 00000000 00000000 cfb0ef9a a2df536a b732ae38 1823beab
+ars4x32 10 00000000 00000000 00010000 00000000 00000000 0000ff00 00000000 00000000 e2e28037 172a132b 6e060aa8 2fc0c9e3
+ars4x32 10 00000000 00000000 01000000 00000000 00000000 0000ff00 00000000 00000000 f0981cf0 88e1084e 4c41f8c0 74505114
+ars4x32 10 00000000 00000000 00000000 00000001 00000000 0000ff00 00000000 00000000 9b618c4c d158e039 45ddb8c4 4b0fdf24
+ars4x32 10 00000000 00000000 00000000 00000100 00000000 0000ff00 00000000 00000000 52ac216a 053b9443 2b9c9b4a a5fb6faa
+ars4x32 10 00000000 00000000 00000000 00010000 00000000 0000ff00 00000000 00000000 bee39c93 93b0301a 8910637e 23c3611c
+ars4x32 10 00000000 00000000 00000000 01000000 00000000 0000ff00 00000000 00000000 650c2e58 7fd8bcf2 b846d4cb 5c5c5896
+ars4x32 10 0000ff00 00000000 00000000 00000000 00000000 0000ff00 00000000 00000000 27f00b01 e912ea67 025dbccf 216e777f
+ars4x32 10 00008000 00000000 00000000 00000000 00000000 0000ff00 00000000 00000000 95188c09 e7abd1db f318be66 d1165daf
+ars4x32 10 00ff0000 00000000 00000000 00000000 00000000 0000ff00 00000000 00000000 faa73165 0abe4f13 ec553c37 448f1e74
+ars4x32 10 00800000 00000000 00000000 00000000 00000000 0000ff00 00000000 00000000 d32c5d3b 0af1158c 2bc4a9f8 ee58b025
+ars4x32 10 ff000000 00000000 00000000 00000000 00000000 0000ff00 00000000 00000000 482b2f4f 77e2bd55 29e72d52 a7d60f91
+ars4x32 10 80000000 00000000 00000000 00000000 00000000 0000ff00 00000000 00000000 fa179af1 9a4fb273 da522d39 f1dc01a7
+ars4x32 10 00000000 000000ff 00000000 00000000 00000000 0000ff00 00000000 00000000 a3fed363 4fc44ec9 a06b8195 38126587
+ars4x32 10 00000000 00000080 00000000 00000000 00000000 0000ff00 00000000 00000000 01cf1c5d a676e82d bfcba095 5b90a259
+ars4x32 10 00000000 0000ff00 00000000 00000000 00000000 0000ff00 00000000 00000000 aeb20d4c ea634ae9 1b8be6b3 6df7b85d
+ars4x32 10 00000000 00008000 00000000 00000000 00000000 0000ff00 00000000 00000000 afa063b7 8902017c dd482f4e 59a11ca9
+ars4x32 10 00000000 00ff0000 00000000 00000000 00000000 0000ff00 00000000 00000000 96f72228 034dacbf 8bee6910 b56b2d20
+ars4x32 10 00000000 00800000 00000000 00000000 00000000 0000ff00 00000000 00000000 80c2cc73 1f725523 61f67069 17059dfd
+ars4x32 10 00000000 ff000000 00000000 00000000 00000000 0000ff00 00000000 00000000 8a19cd22 d8e8238c a1159618 cf0e9fe9
+ars4x32 10 00000000 80000000 00000000 00000000 00000000 0000ff00 00000000 00000000 a0be8a6c 1290d8e5 ccba2020 258bd01f
+ars4x32 10 00000000 00000000 000000ff 00000000 00000000 0000ff00 00000000 00000000 c28cf28c 6d2d75ae b6aec62d b6fa4e89
+ars4x32 10 00000000 00000000 00000080 00000000 00000000 0000ff00 00000000 00000000 d065ba13 013ae0ff e9c4c8c8 c52e46cf
+ars4x32 10 00000000 00000000 0000ff00 00000000 00000000 0000ff00 00000000 00000000 be88f8ac b839f2f3 f3af303c 63895958
+ars4x32 10 00000000 00000000 00008000 00000000 00000000 0000ff00 00000000 00000000 4fd07277 958637fc 6a3b8e1d a3b8dcb2
+ars4x32 10 00000000 00000000 00ff0000 00000000 00000000 0000ff00 00000000 00000000 6a829f35 7fb7d017 371bb7ff 4adfa760
+ars4x32 10 00000000 00000000 00800000 00000000 00000000 0000ff00 00000000 00000000 67018fc1 0e251c19 6223f775 1eb72c0e
+ars4x32 10 00000000 00000000 ff000000 00000000 00000000 0000ff00 00000000 00000000 d460bcde da2c1ea7 4e6158f8 0dcca4a8
+ars4x32 10 00000000 00000000 80000000 00000000 00000000 0000ff00 00000000 00000000 4a97d4c6 ce1fad90 29297407 ad396e77
+ars4x32 10 00000000 00000000 00000000 000000ff 00000000 0000ff00 00000000 00000000 d4f4091c a3c2580f 8e58289a 0075b40e
+ars4x32 10 00000000 00000000 00000000 00000080 00000000 0000ff00 00000000 00000000 234a4361 27a4a0b9 af6ccd19 28133313
+ars4x32 10 00000000 00000000 00000000 0000ff00 00000000 0000ff00 00000000 00000000 eba3fbea c112d76a 4d32c5e6 9a8e9651
+ars4x32 10 00000000 00000000 00000000 00008000 00000000 0000ff00 00000000 00000000 45e5faa9 c2277e0a a73963b9 8a75f7e8
+ars4x32 10 00000000 00000000 00000000 00ff0000 00000000 0000ff00 00000000 00000000 1bab678d 9901717a 60d037ec aeddc874
+ars4x32 10 00000000 00000000 00000000 00800000 00000000 0000ff00 00000000 00000000 fa19c967 6830b351 347d854e c4b9f813
+ars4x32 10 00000000 00000000 00000000 ff000000 00000000 0000ff00 00000000 00000000 7ba2449d 32520ac1 d9d16688 0add41f0
+ars4x32 10 00000000 00000000 00000000 80000000 00000000 0000ff00 00000000 00000000 a33f8984 e8d72811 711888e1 f5fbe028
+ars4x32 10 886a3f24 d308a385 2e8a1913 44737003 00000000 0000ff00 00000000 00000000 cb545f23 5ca091cc 08a6a333 4a2921e1
+ars4x32 10 223809a4 d0319f29 98fa2e08 896c4eec 00000000 0000ff00 00000000 00000000 2307f427 f289a5c6 396b854e c89338d7
+ars4x32 10 e6212845 7713d038 cf6654be 6c0ce934 00000000 0000ff00 00000000 00000000 aaf76d9a 28743c55 708931a0 b700e2cb
+ars4x32 10 00000001 00000000 00000000 00000000 00000000 00008000 00000000 00000000 11b2c798 52af64ac 5e86f95a add1345d
+ars4x32 10 00000100 00000000 00000000 00000000 00000000 00008000 00000000 00000000 89ef1d94 7516434d 8b76d4f5 51bb21d9
+ars4x32 10 00010000 00000000 00000000 00000000 00000000 00008000 00000000 00000000 b8344e5d 861a5367 85e0d288 d52a6203
+ars4x32 10 01000000 00000000 00000000 00000000 00000000 00008000 00000000 00000000 1e234bac 544cb733 74336b9a 34b1db37
+ars4x32 10 00000000 00000001 00000000 00000000 00000000 00008000 00000000 00000000 c0babd76 90c70187 1688183d 457dba82
+ars4x32 10 00000000 00000100 00000000 00000000 00000000 00008000 00000000 00000000 b58786b8 09807b2f c6886e95 d9fffcf5
+ars4x32 10 00000000 00010000 00000000 00000000 00000000 00008000 00000000 00000000 fdb0253b 138d16ba 4e9fef71 99813f71
+ars4x32 10 00000000 01000000 00000000 00000000 00000000 00008000 00000000 00000000 c39a5f5a 90c42202 e41ce57e 25d838f5
+ars4x32 10 00000000 00000000 00000001 00000000 00000000 00008000 00000000 00000000 bf7138c2 2db613f3 979e46d2 15b04dbe
+ars4x32 10 00000000 00000000 00000100 00000000 00000000 00008000 00000000 00000000 37dbe9ae fb1acad6 6d44734c 3169b3f7
+ars4x32 10 00000000 00000000 00010000 00000000 00000000 00008000 00000000 00000000 efb0b715 8ea1b1d7 30607b3a 6cbfa6e6
+ars4x32 10 00000000 00000000 01000000 00000000 00000000 00008000 00000000 00000000 b9943661 5b9b8b69 09758f3f 53b808e7
+ars4x32 10 00000000 00000000 00000000 00000001 00000000 00008000 00000000 00000000 f3770661 9d9b9d0c 5484af6b aa8d4ae6
+ars4x32 10 00000000 00000000 00000000 00000100 00000000 00008000 00000000 00000000 10aeb57b bed162e9 61e1ec21 875c02ba
+ars4x32 10 00000000 00000000 00000000 00010000 00000000 00008000 00000000 00000000 7eb11039 8be0d22b 973f2195 339f4e7d
+ars4x32 10 00000000 00000000 00000000 01000000 00000000 00008000 00000000 00000000 bf9e158c f594dea2 163f71b5 cf4625ab
+ars4x32 10 0000ff00 00000000 00000000 00000000 00000000 00008000 00000000 00000000 c5c9e699 44b05450 220e2be6 b3fbafaa
+ars4x32 10 00008000 00000000 00000000 00000000 00000000 00008000 00000000 00000000 7a702519 770065c5 7da1ac78 42975dfc
+ars4x32 10 00ff0000 00000000 00000000 00000000 00000000 00008000 00000000 00000000 e45e79b9 c1d70b6b e58d50da e25b8a3a
+ars4x32 10 00800000 00000000 00000000 00000000 00000000 00008000 00000000 00000000 bb8017f6 c2dcd9ca 438b0414 da0afe0e
+ars4x32 10 ff000000 00000000 00000000 00000000 00000000 00008000 00000000 00000000 001d26fb e5cd3e68 2eb855d5 cede37aa
+ars4x32 10 80000000 00000000 00000000 00000000 00000000 00008000 00000000 00000000 26caf5a6 c643f329 e8607db7 d9c43796
+ars4x32 10 00000000 000000ff 00000000 00000000 00000000 00008000 00000000 00000000 4f70d0bb cb90e2e1 deae178a a69ff4ca
+ars4x32 10 00000000 00000080 00000000 00000000 00000000 00008000 00000000 00000000 04e23895 30380ec2 ecc92d37 e56ff7ff
+ars4x32 10 00000000 0000ff00 00000000 00000000 00000000 00008000 00000000 00000000 384cd0f8 f6fb584d 34653a8a 233ccfbd
+ars4x32 10 00000000 00008000 00000000 00000000 00000000 00008000 00000000 00000000 0b8bf352 9216ef4f 671c47f0 40d679ed
+ars4x32 10 00000000 00ff0000 00000000 00000000 00000000 00008000 00000000 00000000 384b01f1 cf053f61 0ee822fc d0eb61a0
+ars4x32 10 00000000 00800000 00000000 00000000 00000000 00008000 00000000 00000000 a73319dd d1dca02f 849e2935 362de084
+ars4x32 10 00000000 ff000000 00000000 00000000 00000000 00008000 00000000 00000000 126fe0b7 14eccfee 3dd0d096 0cc3db10
+ars4x32 10 00000000 80000000 00000000 00000000 00000000 00008000 00000000 00000000 c19242ba 0ff36b65 5bdd3942 75c188a2
+ars4x32 10 00000000 00000000 000000ff 00000000 00000000 00008000 00000000 00000000 62024504 6cd94d16 bd1dba48 21bda41b
+ars4x32 10 00000000 00000000 00000080 00000000 00000000 00008000 00000000 00000000 f3833739 6d37801f 73b528bb fcb1ddc9
+ars4x32 10 00000000 00000000 0000ff00 00000000 00000000 00008000 00000000 00000000 90f44c11 9b3cd3e3 4df59a4c f8fbe502
+ars4x32 10 00000000 00000000 00008000 00000000 00000000 00008000 00000000 00000000 db6477d1 e733e1ed b8aab516 5cc31604
+ars4x32 10 00000000 00000000 00ff0000 00000000 00000000 00008000 00000000 00000000 903253e6 055dc1c5 eaea3cc4 7a424462
+ars4x32 10 00000000 00000000 00800000 00000000 00000000 00008000 00000000 00000000 547f2be9 3242aee5 b9a90db3 9a29a381
+ars4x32 10 00000000 00000000 ff000000 00000000 00000000 00008000 00000000 00000000 daef34c4 45aed485 41ca2065 db079e0c
+ars4x32 10 00000000 00000000 80000000 00000000 00000000 00008000 00000000 00000000 4e1631d6 5c7b4cf3 73a62ac9 741a6062
+ars4x32 10 00000000 00000000 00000000 000000ff 00000000 00008000 00000000 00000000 13bb6593 dcba39fe 373f2594 4fdadf7e
+ars4x32 10 00000000 00000000 00000000 00000080 00000000 00008000 00000000 00000000 e2aa5355 6565f485 e856d8b6 1d7adba8
+ars4x32 10 00000000 00000000 00000000 0000ff00 00000000 00008000 00000000 00000000 093b963e 4f1add3c 1901fe1b 368971d9
+ars4x32 10 00000000 00000000 00000000 00008000 00000000 00008000 00000000 00000000 04214948 1dfe8a9e 840c1e7d d34065ba
+ars4x32 10 00000000 00000000 00000000 00ff0000 00000000 00008000 00000000 00000000 d587f9f9 16e41aba 3081e5ae 3f13668d
+ars4x32 10 00000000 00000000 00000000 00800000 00000000 00008000 00000000 00000000 d359dc0d 04af3b91 af74a3ed 87abd08a
+ars4x32 10 00000000 00000000 00000000 ff000000 00000000 00008000 00000000 00000000 183c4d47 496bda9c 2733d10b cea402e3
+ars4x32 10 00000000 00000000 00000000 80000000 00000000 00008000 00000000 00000000 314c5626 49d1dee8 5d50e64f fda22ca1
+ars4x32 10 886a3f24 d308a385 2e8a1913 44737003 00000000 00008000 00000000 00000000 d407159d ad5b77e9 6c1f5f7c 35e4de8e
+ars4x32 10 223809a4 d0319f29 98fa2e08 896c4eec 00000000 00008000 00000000 00000000 699f5f9d 9fa89518 c13cdb55 4d965dc1
+ars4x32 10 e6212845 7713d038 cf6654be 6c0ce934 00000000 00008000 00000000 00000000 7b10eb91 66941760 e17ccee9 0cb270ca
+ars4x32 10 00000001 00000000 00000000 00000000 00000000 00ff0000 00000000 00000000 8b271a26 3cded4fd cb377902 7f99f502
+ars4x32 10 00000100 00000000 00000000 00000000 00000000 00ff0000 00000000 00000000 792d2c87 5be9b0d5 f50624e0 620eddef
+ars4x32 10 00010000 00000000 00000000 00000000 00000000 00ff0000 00000000 00000000 cb87c293 5ef3b0ac 4a0b069a fa524a9c
+ars4x32 10 01000000 00000000 00000000 00000000 00000000 00ff0000 00000000 00000000 73af0176 f2d557b5 f6cb2d33 0910883d
+ars4x32 10 00000000 00000001 00000000 00000000 00000000 00ff0000 00000000 00000000 a95baffc 8692d41d 45e878b2 5a37e6ec
+ars4x32 10 00000000 00000100 00000000 00000000 00000000 00ff0000 00000000 00000000 58ad47c0 9ea46109 aa939c1d f1070142
+ars4x32 10 00000000 00010000 00000000 00000000 00000000 00ff0000 00000000 00000000 fe9eec24 d63ae788 42cb27a1 2a4809ac
+ars4x32 10 00000000 01000000 00000000 00000000 00000000 00ff0000 00000000 00000000 e1d90779 d0cf9e8e 2d18a333 93524d17
+ars4x32 10 00000000 00000000 00000001 00000000 00000000 00ff0000 00000000 00000000 b0d45209 bb6959ea 981747e1 43f39533
+ars4x32 10 00000000 00000000 00000100 00000000 00000000 00ff0000 00000000 00000000 54ed87ce 97c97497 2ab91c56 c619b886
+ars4x32 10 00000000 00000000 00010000 00000000 00000000 00ff0000 00000000 00000000 d03ca0a5 1e7da6e8 e6f15ee7 f595e3e9
+ars4x32 10 00000000 00000000 01000000 00000000 00000000 00ff0000 00000000 00000000 a69eddec a62433ad 00a9b200 f12e415f
+ars4x32 10 00000000 00000000 00000000 00000001 00000000 00ff0000 00000000 00000000 f41434d3 322159d1 f6877d95 8c5beada
+ars4x32 10 00000000 00000000 00000000 00000100 00000000 00ff0000 00000000 00000000 499f4f32 9fc76c64 bea7af15 11fb6c62
+ars4x32 10 00000000 00000000 00000000 00010000 00000000 00ff0000 00000000 00000000 d7602848 995411e1 ff54159c 4d1f597f
+ars4x32 10 00000000 00000000 00000000 01000000 00000000 00ff0000 00000000 00000000 4fcb1a1a 68d49cb9 0b816bf9 8ab2995a
+ars4x32 10 0000ff00 00000000 00000000 00000000 00000000 00ff0000 00000000 00000000 92b3435b 68231e7f 34d0496d 835a905e
+ars4x32 10 00008000 00000000 00000000 00000000 00000000 00ff0000 00000000 00000000 6e257524 3131909f 14c26282 f39bb71c
+ars4x32 10 00ff0000 00000000 00000000 00000000 00000000 00ff0000 00000000 00000000 e2ea1171 5bce8a8d 9dc3143a 7f73794b
+ars4x32 10 00800000 00000000 00000000 00000000 00000000 00ff0000 00000000 00000000 3bc194f4 7f08a721 90d50d8c 8c4d558d
+ars4x32 10 ff000000 00000000 00000000 00000000 00000000 00ff0000 00000000 00000000 4274cbd9 5f814654 d63ae4b6 991a1bb2
+ars4x32 10 80000000 00000000 00000000 00000000 00000000 00ff0000 00000000 00000000 73f15782 8ee7bbd4 b2698492 3d28ce62
+ars4x32 10 00000000 000000ff 00000000 00000000 00000000 00ff0000 00000000 00000000 60ee2bc1 df5d201b cb3f1ce6 01174504
+ars4x32 10 00000000 00000080 00000000 00000000 00000000 00ff0000 00000000 00000000 de375b32 20f72567 d341c3bc 96fb7b71
+ars4x32 10 00000000 0000ff00 00000000 00000000 00000000 00ff0000 00000000 00000000 2b9f1dc7 28521207 662164d9 814fb941
+ars4x32 10 00000000 00008000 00000000 00000000 00000000 00ff0000 00000000 00000000 9a46ea69 93255817 9462f4ca a1e7a299
+ars4x32 10 00000000 00ff0000 00000000 00000000 00000000 00ff0000 00000000 00000000 aca5f032 54df27d4 90e4397f a25907b4
+ars4x32 10 00000000 00800000 00000000 00000000 00000000 00ff0000 00000000 00000000 437b6f99 61aa8c4d 53d08872 1f945ba7
+ars4x32 10 00000000 ff000000 00000000 00000000 00000000 00ff0000 00000000 00000000 9fff0f99 1e866f3e 4bb9588b 65e8a528
+ars4x32 10 00000000 80000000 00000000 00000000 00000000 00ff0000 00000000 00000000 1f4c2477 506b421f 76562a09 4b19fb3f
+ars4x32 10 00000000 00000000 000000ff 00000000 00000000 00ff0000 00000000 00000000 4d7d6752 85f4d2e6 5ea98a87 a9932a8b
+ars4x32 10 00000000 00000000 00000080 00000000 00000000 00ff0000 00000000 00000000 a1e478bc 62bbb1c1 f31f526a f707e9d8
+ars4x32 10 00000000 00000000 0000ff00 00000000 00000000 00ff0000 00000000 00000000 a2e8713b 9fd9843c 35f213da 69535ab7
+ars4x32 10 00000000 00000000 00008000 00000000 00000000 00ff0000 00000000 00000000 f6e3e374 c4182263 185a28ec 3fb22ed7
+ars4x32 10 00000000 00000000 00ff0000 00000000 00000000 00ff0000 00000000 00000000 1ab188cc 3c24b734 8b7fdfa6 34651748
+ars4x32 10 00000000 00000000 00800000 00000000 00000000 00ff0000 00000000 00000000 b73485bb f616a467 b941b4f8 ba301c08
+ars4x32 10 00000000 00000000 ff000000 00000000 00000000 00ff0000 00000000 00000000 5fc90eb0 38749554 9ad52075 be7e9fd3
+ars4x32 10 00000000 00000000 80000000 00000000 00000000 00ff0000 00000000 00000000 6e82d5f4 44b9bfb9 68d69727 0f1af38f
+ars4x32 10 00000000 00000000 00000000 000000ff 00000000 00ff0000 00000000 00000000 26a5309e 92459c89 13e8246a 8a1debce
+ars4x32 10 00000000 00000000 00000000 00000080 00000000 00ff0000 00000000 00000000 9f30a96d 8fb8d407 bd1ae374 fc6a2e7c
+ars4x32 10 00000000 00000000 00000000 0000ff00 00000000 00ff0000 00000000 00000000 8d886bcb 2dfd8d6d b9821758 dc461d09
+ars4x32 10 00000000 00000000 00000000 00008000 00000000 00ff0000 00000000 00000000 f695ecbc 86558726 aea04b27 47007ed8
+ars4x32 10 00000000 00000000 00000000 00ff0000 00000000 00ff0000 00000000 00000000 b95435b3 ea82ec28 8c211929 10117636
+ars4x32 10 00000000 00000000 00000000 00800000 00000000 00ff0000 00000000 00000000 537efb9f b4bb37d9 11b135be 59cb6b94
+ars4x32 10 00000000 00000000 00000000 ff000000 00000000 00ff0000 00000000 00000000 f13bf67e a9633301 bfe65b6f 3ecb9167
+ars4x32 10 00000000 00000000 00000000 80000000 00000000 00ff0000 00000000 00000000 6b0a6693 db1fc14f fb49596d 7dbc3ca4
+ars4x32 10 886a3f24 d308a385 2e8a1913 44737003 00000000 00ff0000 00000000 00000000 b99ff4bb 8b706e5b 33e937b1 c89eb4f3
+ars4x32 10 223809a4 d0319f29 98fa2e08 896c4eec 00000000 00ff0000 00000000 00000000 0c5f68b3 e13e35d2 97b3e761 1d05ec2c
+ars4x32 10 e6212845 7713d038 cf6654be 6c0ce934 00000000 00ff0000 00000000 00000000 fa437e41 baa6d495 31e4651b 065a40bc
+ars4x32 10 00000001 00000000 00000000 00000000 00000000 00800000 00000000 00000000 a9614f77 e878adfc d1644771 bb7e1f0f
+ars4x32 10 00000100 00000000 00000000 00000000 00000000 00800000 00000000 00000000 51c98f25 4dfb61b1 72070d1b 2b4bce7b
+ars4x32 10 00010000 00000000 00000000 00000000 00000000 00800000 00000000 00000000 a6dcee11 fd2c4c13 35b3c08e a74ee6f3
+ars4x32 10 01000000 00000000 00000000 00000000 00000000 00800000 00000000 00000000 ea476d7f af214625 ad771422 28c1ba87
+ars4x32 10 00000000 00000001 00000000 00000000 00000000 00800000 00000000 00000000 d844d6cc a557cf23 3df42836 978a7ef0
+ars4x32 10 00000000 00000100 00000000 00000000 00000000 00800000 00000000 00000000 c2a296d8 9b211cd1 02e4c488 2d2f36fd
+ars4x32 10 00000000 00010000 00000000 00000000 00000000 00800000 00000000 00000000 8ac56a48 dc10e356 42515a3f 7a8c383f
+ars4x32 10 00000000 01000000 00000000 00000000 00000000 00800000 00000000 00000000 d8a88471 4823d9b8 3cde01cc 54187f20
+ars4x32 10 00000000 00000000 00000001 00000000 00000000 00800000 00000000 00000000 77dde11a 0f88c85f eb5e4013 051f7868
+ars4x32 10 00000000 00000000 00000100 00000000 00000000 00800000 00000000 00000000 65798694 72d38e68 bbc713fd cb3c43dd
+ars4x32 10 00000000 00000000 00010000 00000000 00000000 00800000 00000000 00000000 86b0f28e 68bafab0 fdac32b9 83f28341
+ars4x32 10 00000000 00000000 01000000 00000000 00000000 00800000 00000000 00000000 3af3ac1e a60e19c1 91532c03 482276ae
+ars4x32 10 00000000 00000000 00000000 00000001 00000000 00800000 00000000 00000000 f3a77866 84a6ac92 50873f5b bea502e7
+ars4x32 10 00000000 00000000 00000000 00000100 00000000 00800000 00000000 00000000 c3ff6aca b19189cd 41e7fd41 1f8019ab
+ars4x32 10 00000000 00000000 00000000 00010000 00000000 00800000 00000000 00000000 84cf9d48 8d6a83a1 3f3b1cb0 68da841b
+ars4x32 10 00000000 00000000 00000000 01000000 00000000 00800000 00000000 00000000 06042f2c b5c52213 9b0f3804 ba68d96d
+ars4x32 10 0000ff00 00000000 00000000 00000000 00000000 00800000 00000000 00000000 c864f8e8 9f323c3d ccb036d2 1fc4944f
+ars4x32 10 00008000 00000000 00000000 00000000 00000000 00800000 00000000 00000000 7127d03b b6cf6400 87b36419 24dd6bbe
+ars4x32 10 00ff0000 00000000 00000000 00000000 00000000 00800000 00000000 00000000 c75b4203 ff4b9dbc 411a33e7 6657b609
+ars4x32 10 00800000 00000000 00000000 00000000 00000000 00800000 00000000 00000000 72f5ea73 c633bba0 da9d45fb d8118c29
+ars4x32 10 ff000000 00000000 00000000 00000000 00000000 00800000 00000000 00000000 40bac872 417af0e8 18491dda d6c616f5
+ars4x32 10 80000000 00000000 00000000 00000000 00000000 00800000 00000000 00000000 c919dc63 1328fdc9 21353f9c 5cdf89e6
+ars4x32 10 00000000 000000ff 00000000 00000000 00000000 00800000 00000000 00000000 c1fabb73 39e038ac 98726be3 88ffb110
+ars4x32 10 00000000 00000080 00000000 00000000 00000000 00800000 00000000 00000000 4fe2ea59 757d88c1 fd1bd554 291f1d12
+ars4x32 10 00000000 0000ff00 00000000 00000000 00000000 00800000 00000000 00000000 6625392c bd116176 393d082e 1c65e979
+ars4x32 10 00000000 00008000 00000000 00000000 00000000 00800000 00000000 00000000 de7824ee 41930dbf 0297daf7 b5b44e94
+ars4x32 10 00000000 00ff0000 00000000 00000000 00000000 00800000 00000000 00000000 6d8582de efb21c49 06bdf0cf 1ef8ed63
+ars4x32 10 00000000 00800000 00000000 00000000 00000000 00800000 00000000 00000000 95e325a9 c9452803 1b92d70a 36290e55
+ars4x32 10 00000000 ff000000 00000000 00000000 00000000 00800000 00000000 00000000 b40e1c7f 51359e8a c545965c 4f94d4bb
+ars4x32 10 00000000 80000000 00000000 00000000 00000000 00800000 00000000 00000000 0d156b55 447f4959 0f62f99e 87c94668
+ars4x32 10 00000000 00000000 000000ff 00000000 00000000 00800000 00000000 00000000 7031d465 15587368 4c2efc4b 7e9a28fd
+ars4x32 10 00000000 00000000 00000080 00000000 00000000 00800000 00000000 00000000 ebfe358d 0d8cf82a ac6b7fef 3f690b9c
+ars4x32 10 00000000 00000000 0000ff00 00000000 00000000 00800000 00000000 00000000 951be3d0 919ee902 0ab9ed0f 32308e60
+ars4x32 10 00000000 00000000 00008000 00000000 00000000 00800000 00000000 00000000 0bbe6a6f 56b38c2a 36a4517d d19eb168
+ars4x32 10 00000000 00000000 00ff0000 00000000 00000000 00800000 00000000 00000000 76b0a5b9 166ef9de 3c20e1c9 f32192b0
+ars4x32 10 00000000 00000000 00800000 00000000 00000000 00800000 00000000 00000000 84f90e94 ba62b185 b8a9b3a8 e2ad2df7
+ars4x32 10 00000000 00000000 ff000000 00000000 00000000 00800000 00000000 00000000 0ca1105d 39d85068 f21fd86d e1b17585
+ars4x32 10 00000000 00000000 80000000 00000000 00000000 00800000 00000000 00000000 0a0398e8 de216909 5afb1040 b39b650f
+ars4x32 10 00000000 00000000 00000000 000000ff 00000000 00800000 00000000 00000000 e3a13c42 d7980183 c885a470 385b36f1
+ars4x32 10 00000000 00000000 00000000 00000080 00000000 00800000 00000000 00000000 f7bc487f ab0e715f af9319bc abd0bc9e
+ars4x32 10 00000000 00000000 00000000 0000ff00 00000000 00800000 00000000 00000000 7917a5e2 3a2c501e e65446be 39701909
+ars4x32 10 00000000 00000000 00000000 00008000 00000000 00800000 00000000 00000000 082ca32d 5f7316a6 724c27f8 14a1186a
+ars4x32 10 00000000 00000000 00000000 00ff0000 00000000 00800000 00000000 00000000 67f5ae30 4e872d21 3b7ee342 2678784d
+ars4x32 10 00000000 00000000 00000000 00800000 00000000 00800000 00000000 00000000 facba4fa ca4ab7ec 5404231f 490e3bac
+ars4x32 10 00000000 00000000 00000000 ff000000 00000000 00800000 00000000 00000000 d49a718f 8017f588 d2493f0c b711a6d6
+ars4x32 10 00000000 00000000 00000000 80000000 00000000 00800000 00000000 00000000 3720a7ab bab9748e 9716bb16 81c698b5
+ars4x32 10 886a3f24 d308a385 2e8a1913 44737003 00000000 00800000 00000000 00000000 ab3cabe1 89b3bb6a 688f9d93 04122cca
+ars4x32 10 223809a4 d0319f29 98fa2e08 896c4eec 00000000 00800000 00000000 00000000 e673f8a9 1a1349ea 1bce935c 129c5a05
+ars4x32 10 e6212845 7713d038 cf6654be 6c0ce934 00000000 00800000 00000000 00000000 3218b830 3acfac5b 8e1f2094 cdafe481
+ars4x32 10 00000001 00000000 00000000 00000000 00000000 ff000000 00000000 00000000 a0f9adc0 50a0a405 0792e60b d250490e
+ars4x32 10 00000100 00000000 00000000 00000000 00000000 ff000000 00000000 00000000 710201b7 f4fad272 4a0f4d05 13bfce15
+ars4x32 10 00010000 00000000 00000000 00000000 00000000 ff000000 00000000 00000000 ba8fe932 b074d0a1 5a22c96a f5177348
+ars4x32 10 01000000 00000000 00000000 00000000 00000000 ff000000 00000000 00000000 80aa7b57 ebb4e0ec ed281947 7e20fbae
+ars4x32 10 00000000 00000001 00000000 00000000 00000000 ff000000 00000000 00000000 24c99b1f 28c1fefd 9b09c683 268f3683
+ars4x32 10 00000000 00000100 00000000 00000000 00000000 ff000000 00000000 00000000 2937c5fb 75f9242d c218d7b0 e21da5c3
+ars4x32 10 00000000 00010000 00000000 00000000 00000000 ff000000 00000000 00000000 5d9cdbde ffd2ed18 7a29659d 0a8490c1
+ars4x32 10 00000000 01000000 00000000 00000000 00000000 ff000000 00000000 00000000 83a9ccf6 e3e5f3eb 92d33f24 f29d26a9
+ars4x32 10 00000000 00000000 00000001 00000000 00000000 ff000000 00000000 00000000 b9502d2a 9b7e2edb cb7007a3 e3e1bf84
+ars4x32 10 00000000 00000000 00000100 00000000 00000000 ff000000 00000000 00000000 a7ce23fb a1da063b ccbc80c9 f204b7b8
+ars4x32 10 00000000 00000000 00010000 00000000 00000000 ff000000 00000000 00000000 f44fb029 f88edbe5 767663ae 76159c73
+ars4x32 10 00000000 00000000 01000000 00000000 00000000 ff000000 00000000 00000000 88b1e3c5 ac6bf6d4 9b8ede00 1d50be01
+ars4x32 10 00000000 00000000 00000000 00000001 00000000 ff000000 00000000 00000000 a06872b0 2115765f 71e5f5b0 06c72b76
+ars4x32 10 00000000 00000000 00000000 00000100 00000000 ff000000 00000000 00000000 fb5d18df 8769ff31 e1e17123 72d6d1b7
+ars4x32 10 00000000 00000000 00000000 00010000 00000000 ff000000 00000000 00000000 3932a248 c79313a9 1cc7dff0 d35e3f26
+ars4x32 10 00000000 00000000 00000000 01000000 00000000 ff000000 00000000 00000000 87d2e8e9 994264a9 2c55677c 198990a8
+ars4x32 10 0000ff00 00000000 00000000 00000000 00000000 ff000000 00000000 00000000 53f0b4bf 13c9f83c 640030e8 6096a3ef
+ars4x32 10 00008000 00000000 00000000 00000000 00000000 ff000000 00000000 00000000 69349340 084b9ee1 1847b60a ecf1129b
+ars4x32 10 00ff0000 00000000 00000000 00000000 00000000 ff000000 00000000 00000000 5a979080 ac599f32 82e9f866 dfea36fe
+ars4x32 10 00800000 00000000 00000000 00000000 00000000 ff000000 00000000 00000000 fe136d46 a8948301 8e29eb3e 4ca702df
+ars4x32 10 ff000000 00000000 00000000 00000000 00000000 ff000000 00000000 00000000 fa1eea01 a4d4f372 a2a6abeb e056b959
+ars4x32 10 80000000 00000000 00000000 00000000 00000000 ff000000 00000000 00000000 1c5f9175 40fe7227 a1cc702a 03716ea4
+ars4x32 10 00000000 000000ff 00000000 00000000 00000000 ff000000 00000000 00000000 682d8534 5ba4cd55 b3598b72 debffe0a
+ars4x32 10 00000000 00000080 00000000 00000000 00000000 ff000000 00000000 00000000 e807a95c eb8bf49c 7081ada2 76fa7315
+ars4x32 10 00000000 0000ff00 00000000 00000000 00000000 ff000000 00000000 00000000 a03a73e9 15f9785f 8f2f449a d9951353
+ars4x32 10 00000000 00008000 00000000 00000000 00000000 ff000000 00000000 00000000 9a68b1db a743b0e5 4bd12457 facc0d2a
+ars4x32 10 00000000 00ff0000 00000000 00000000 00000000 ff000000 00000000 00000000 5e491c36 7b79cc5e 030fb10f fd830c30
+ars4x32 10 00000000 00800000 00000000 00000000 00000000 ff000000 00000000 00000000 3a4897b0 dd519314 4770822f 00b8d259
+ars4x32 10 00000000 ff000000 00000000 00000000 00000000 ff000000 00000000 00000000 b675f977 2e1ab2e3 7d185337 d4dc0d49
+ars4x32 10 00000000 80000000 00000000 00000000 00000000 ff000000 00000000 00000000 2e36a555 c3c707e5 ffc6d799 f24d4311
+ars4x32 10 00000000 00000000 000000ff 00000000 00000000 ff000000 00000000 00000000 609b8e18 b6d3fd60 86d71136 bbeae13a
+ars4x32 10 00000000 00000000 00000080 00000000 00000000 ff000000 00000000 00000000 fac5b1be 656786cb 58a1c095 6a46aa21
+ars4x32 10 00000000 00000000 0000ff00 00000000 00000000 ff000000 00000000 00000000 d646323b af4b3751 9bb77dba ef0ca0fb
+ars4x32 10 00000000 00000000 00008000 00000000 00000000 ff000000 00000000 00000000 b9b127ad 2d4dfe40 5aa49be3 ff1b6897
+ars4x32 10 00000000 00000000 00ff0000 00000000 00000000 ff000000 00000000 00000000 45661465 1cf012c0 9497666a 6173081c
+ars4x32 10 00000000 00000000 00800000 00000000 00000000 ff000000 00000000 00000000 9d20cc22 9814ce73 83510e87 b16f59c6
+ars4x32 10 00000000 00000000 ff000000 00000000 00000000 ff000000 00000000 00000000 2959ebf8 44c6d75e 5c7bf4ba bc1ff850
+ars4x32 10 00000000 00000000 80000000 00000000 00000000 ff000000 00000000 00000000 f6192614 5bdc0dfd 9a5f5825 caa993ed
+ars4x32 10 00000000 00000000 00000000 000000ff 00000000 ff000000 00000000 00000000 0aa7844c a3aab8b1 2278de65 22b828ab
+ars4x32 10 00000000 00000000 00000000 00000080 00000000 ff000000 00000000 00000000 7c17e752 b8419c18 fcb21d8e 1ebbb101
+ars4x32 10 00000000 00000000 00000000 0000ff00 00000000 ff000000 00000000 00000000 b1d26e4d dc7af8fe 7895d10f c4eede45
+ars4x32 10 00000000 00000000 00000000 00008000 00000000 ff000000 00000000 00000000 c1410777 2d3248f8 269c2836 2e7cd461
+ars4x32 10 00000000 00000000 00000000 00ff0000 00000000 ff000000 00000000 00000000 5c861f6e 6c4386b1 5f03c53c 377e35fc
+ars4x32 10 00000000 00000000 00000000 00800000 00000000 ff000000 00000000 00000000 d36721d4 9ef3c8d7 311f374e 0048acf5
+ars4x32 10 00000000 00000000 00000000 ff000000 00000000 ff000000 00000000 00000000 04060dcc b0eff4b7 1d1357d8 d953f14f
+ars4x32 10 00000000 00000000 00000000 80000000 00000000 ff000000 00000000 00000000 3da29869 87c1cba7 0a83b037 c2bc2f74
+ars4x32 10 886a3f24 d308a385 2e8a1913 44737003 00000000 ff000000 00000000 00000000 cd2ce71d 484fc862 51f2b487 7d8fb164
+ars4x32 10 223809a4 d0319f29 98fa2e08 896c4eec 00000000 ff000000 00000000 00000000 a8b834d7 97503406 ed40d6b6 a131a359
+ars4x32 10 e6212845 7713d038 cf6654be 6c0ce934 00000000 ff000000 00000000 00000000 a5bd4941 390f6b85 5450dc68 c053a7a1
+ars4x32 10 00000001 00000000 00000000 00000000 00000000 80000000 00000000 00000000 35490912 57d0e7d9 ca875369 3cfd04f0
+ars4x32 10 00000100 00000000 00000000 00000000 00000000 80000000 00000000 00000000 f0bda856 42764679 19fbda68 8172da2f
+ars4x32 10 00010000 00000000 00000000 00000000 00000000 80000000 00000000 00000000 31f324d9 96d79123 5252fdcb f32ecd0e
+ars4x32 10 01000000 00000000 00000000 00000000 00000000 80000000 00000000 00000000 22905cd3 18dd2f62 0e30a1cf 41ede49e
+ars4x32 10 00000000 00000001 00000000 00000000 00000000 80000000 00000000 00000000 942d9e5c 4d5d4e1a 8efa50d7 57f2b95a
+ars4x32 10 00000000 00000100 00000000 00000000 00000000 80000000 00000000 00000000 2ff68685 317f6334 769179f1 769f811e
+ars4x32 10 00000000 00010000 00000000 00000000 00000000 80000000 00000000 00000000 cda3bc71 f45c0efe cf9c8392 f6c63745
+ars4x32 10 00000000 01000000 00000000 00000000 00000000 80000000 00000000 00000000 74cd0365 ef908ab9 cc4d4637 1db9ebd2
+ars4x32 10 00000000 00000000 00000001 00000000 00000000 80000000 00000000 00000000 cd891f47 607c8990 d9b38f3b 44e7cea5
+ars4x32 10 00000000 00000000 00000100 00000000 00000000 80000000 00000000 00000000 4e9ce7a4 88224aa0 699f58de b44e5acf
+ars4x32 10 00000000 00000000 00010000 00000000 00000000 80000000 00000000 00000000 28661024 afadeba7 d0f8222e 81218a10
+ars4x32 10 00000000 00000000 01000000 00000000 00000000 80000000 00000000 00000000 659799ca bafffae3 a6473f39 4dffdcc2
+ars4x32 10 00000000 00000000 00000000 00000001 00000000 80000000 00000000 00000000 8d352b3e e95d257e 2b3add91 4614e45f
+ars4x32 10 00000000 00000000 00000000 00000100 00000000 80000000 00000000 00000000 49ad8464 0aa772a7 52a8ea18 c8eac568
+ars4x32 10 00000000 00000000 00000000 00010000 00000000 80000000 00000000 00000000 f778e9ec d9e60399 e7db0012 8ecc888e
+ars4x32 10 00000000 00000000 00000000 01000000 00000000 80000000 00000000 00000000 f2303c41 733bbc2b fcd5d8e4 73dac3aa
+ars4x32 10 0000ff00 00000000 00000000 00000000 00000000 80000000 00000000 00000000 bf8290cf 4f386e9d 98e26227 4b71c30b
+ars4x32 10 00008000 00000000 00000000 00000000 00000000 80000000 00000000 00000000 99b92605 b5b8407d ce9a264a efc77316
+ars4x32 10 00ff0000 00000000 00000000 00000000 00000000 80000000 00000000 00000000 cea8f1d7 b6bf885b 02fa6423 0cc90195
+ars4x32 10 00800000 00000000 00000000 00000000 00000000 80000000 00000000 00000000 d1d0debb 1e26cda5 234e1eb6 9f053dd5
+ars4x32 10 ff000000 00000000 00000000 00000000 00000000 80000000 00000000 00000000 4ac84af4 9e2bcf7b c92400c7 425abf64
+ars4x32 10 80000000 00000000 00000000 00000000 00000000 80000000 00000000 00000000 63f4d549 0b5b9f93 4f1dcd5a 17d2efe7
+ars4x32 10 00000000 000000ff 00000000 00000000 00000000 80000000 00000000 00000000 55cf4ef9 5cd578ea fd9aeeb8 22aeb44f
+ars4x32 10 00000000 00000080 00000000 00000000 00000000 80000000 00000000 00000000 a369eb36 0ce5a066 359b0d2f 7394e4ce
+ars4x32 10 00000000 0000ff00 00000000 00000000 00000000 80000000 00000000 00000000 8d9ccef5 64949cd7 ff5bdc17 799f01a8
+ars4x32 10 00000000 00008000 00000000 00000000 00000000 80000000 00000000 00000000 0851a190 2f6c3516 06d9b4ad d16e22fa
+ars4x32 10 00000000 00ff0000 00000000 00000000 00000000 80000000 00000000 00000000 5d2bc951 5ef057fe ef7adfd1 3e1020ae
+ars4x32 10 00000000 00800000 00000000 00000000 00000000 80000000 00000000 00000000 a9191c15 4e461234 1f53bfb2 1017eed9
+ars4x32 10 00000000 ff000000 00000000 00000000 00000000 80000000 00000000 00000000 29eb1d58 906ebd03 3884c6a5 a653e529
+ars4x32 10 00000000 80000000 00000000 00000000 00000000 80000000 00000000 00000000 fc52f6ac e2be16cf 1a91efd2 8f2c9ef4
+ars4x32 10 00000000 00000000 000000ff 00000000 00000000 80000000 00000000 00000000 a19f9e8f e02661b2 87f70d0a 270420c8
+ars4x32 10 00000000 00000000 00000080 00000000 00000000 80000000 00000000 00000000 50f7f407 0a83c5d1 ea15a99e de1fc8f2
+ars4x32 10 00000000 00000000 0000ff00 00000000 00000000 80000000 00000000 00000000 abae9972 c9b62db1 d5a35a15 78bf031c
+ars4x32 10 00000000 00000000 00008000 00000000 00000000 80000000 00000000 00000000 ae290b57 22620c16 8c4e3380 8f98f719
+ars4x32 10 00000000 00000000 00ff0000 00000000 00000000 80000000 00000000 00000000 f53616a7 898e1293 5f8a4e1e 6557c24c
+ars4x32 10 00000000 00000000 00800000 00000000 00000000 80000000 00000000 00000000 7203fec5 a32613dc b91c159b ffad3ccb
+ars4x32 10 00000000 00000000 ff000000 00000000 00000000 80000000 00000000 00000000 f108b0e0 3984cf10 0c2759ed a3a43c0d
+ars4x32 10 00000000 00000000 80000000 00000000 00000000 80000000 00000000 00000000 5c6810ea d797869a 6ec81def 9bbc3fbf
+ars4x32 10 00000000 00000000 00000000 000000ff 00000000 80000000 00000000 00000000 8ce8b903 2356b275 84691e6e 8d2efe08
+ars4x32 10 00000000 00000000 00000000 00000080 00000000 80000000 00000000 00000000 26c9b894 ced52c49 b1f1b094 e156101e
+ars4x32 10 00000000 00000000 00000000 0000ff00 00000000 80000000 00000000 00000000 105c7c88 609d2997 81304651 8338a0ca
+ars4x32 10 00000000 00000000 00000000 00008000 00000000 80000000 00000000 00000000 2b093dd5 fca6899f 6b275645 45d06e83
+ars4x32 10 00000000 00000000 00000000 00ff0000 00000000 80000000 00000000 00000000 c7199cdb 1342290b dcb9eb77 1dc71da7
+ars4x32 10 00000000 00000000 00000000 00800000 00000000 80000000 00000000 00000000 7b1b1236 2ce34af7 e02ef933 ea984440
+ars4x32 10 00000000 00000000 00000000 ff000000 00000000 80000000 00000000 00000000 6cb3b476 d12819f6 959504d0 ccc2f276
+ars4x32 10 00000000 00000000 00000000 80000000 00000000 80000000 00000000 00000000 3edff8c0 a6187c02 4a1d2177 cb169a0d
+ars4x32 10 886a3f24 d308a385 2e8a1913 44737003 00000000 80000000 00000000 00000000 f382422b 3d3dc13c 6d45a473 af756ca8
+ars4x32 10 223809a4 d0319f29 98fa2e08 896c4eec 00000000 80000000 00000000 00000000 31d99cd0 d6b7e2d9 1ebcea94 e1a748f7
+ars4x32 10 e6212845 7713d038 cf6654be 6c0ce934 00000000 80000000 00000000 00000000 a4e64916 cd15299d 5e26d12b 48de37f0
+ars4x32 10 00000001 00000000 00000000 00000000 00000000 00000000 000000ff 00000000 9f5d80d4 794a5486 29019ab6 472dc4b2
+ars4x32 10 00000100 00000000 00000000 00000000 00000000 00000000 000000ff 00000000 4ea72aa2 24ace57c 65343fe2 6141fd36
+ars4x32 10 00010000 00000000 00000000 00000000 00000000 00000000 000000ff 00000000 9f2ff8a9 7c05765c 452bc993 56084006
+ars4x32 10 01000000 00000000 00000000 00000000 00000000 00000000 000000ff 00000000 45aaeca8 27b057aa 2dc113b2 3702518c
+ars4x32 10 00000000 00000001 00000000 00000000 00000000 00000000 000000ff 00000000 66e88052 7dc51f2e 9c389d67 1183e665
+ars4x32 10 00000000 00000100 00000000 00000000 00000000 00000000 000000ff 00000000 be2afa22 a59d5538 b472a507 29dfae20
+ars4x32 10 00000000 00010000 00000000 00000000 00000000 00000000 000000ff 00000000 a8e52eb3 142aa6f6 15539351 b2712232
+ars4x32 10 00000000 01000000 00000000 00000000 00000000 00000000 000000ff 00000000 c06bec00 a6ceb148 e5f5fa07 63d33156
+ars4x32 10 00000000 00000000 00000001 00000000 00000000 00000000 000000ff 00000000 9ce5471a 1b3a598e 147d0066 d43b3db6
+ars4x32 10 00000000 00000000 00000100 00000000 00000000 00000000 000000ff 00000000 ddda7a40 55624a27 ff7f26a6 e9d75f26
+ars4x32 10 00000000 00000000 00010000 00000000 00000000 00000000 000000ff 00000000 c436bd96 912fa0a4 60c27280 1cdcfda9
+ars4x32 10 00000000 00000000 01000000 00000000 00000000 00000000 000000ff 00000000 c04e5b29 51991d05 ada54c6a cc68206a
+ars4x32 10 00000000 00000000 00000000 00000001 00000000 00000000 000000ff 00000000 978b5998 d111a2be 502869aa 05f16b73
+ars4x32 10 00000000 00000000 00000000 00000100 00000000 00000000 000000ff 00000000 0de53a91 0aa5a806 085092d5 1105944d
+ars4x32 10 00000000 00000000 00000000 00010000 00000000 00000000 000000ff 00000000 09cb6199 f40eb188 1c0b8c0e b6185e6f
+ars4x32 10 00000000 00000000 00000000 01000000 00000000 00000000 000000ff 00000000 8bb1801f 28cbb5eb 942bb8ed 712f8a30
+ars4x32 10 0000ff00 00000000 00000000 00000000 00000000 00000000 000000ff 00000000 d5860ee1 1fffabfc 739c6d0f 652fe6f2
+ars4x32 10 00008000 00000000 00000000 00000000 00000000 00000000 000000ff 00000000 74fb0c2b 8f24decd e948fd90 5230ee0d
+ars4x32 10 00ff0000 00000000 00000000 00000000 00000000 00000000 000000ff 00000000 3df7bada 01abdad5 56eeea05 45442205
+ars4x32 10 00800000 00000000 00000000 00000000 00000000 00000000 000000ff 00000000 d4674c3f c89c765b 82857074 32763d4d
+ars4x32 10 ff000000 00000000 00000000 00000000 00000000 00000000 000000ff 00000000 219a795f bf1f73ca 80a4661f 7b03cea8
+ars4x32 10 80000000 00000000 00000000 00000000 00000000 00000000 000000ff 00000000 07f88686 9cbf736a 90fa5537 bdc78d0f
+ars4x32 10 00000000 000000ff 00000000 00000000 00000000 00000000 000000ff 00000000 31c48afb 47e6fdc1 bfab3797 9911a653
+ars4x32 10 00000000 00000080 00000000 00000000 00000000 00000000 000000ff 00000000 bd931b49 d549608e 341743d5 d33a2785
+ars4x32 10 00000000 0000ff00 00000000 00000000 00000000 00000000 000000ff 00000000 71e6c352 95ffd8d4 087423a2 57d38421
+ars4x32 10 00000000 00008000 00000000 00000000 00000000 00000000 000000ff 00000000 6a889c62 4cc200b8 443378a4 024a49a6
+ars4x32 10 00000000 00ff0000 00000000 00000000 00000000 00000000 000000ff 00000000 15854a4e 399eab8c fa1bddf2 31bb7730
+ars4x32 10 00000000 00800000 00000000 00000000 00000000 00000000 000000ff 00000000 deec5aca a4e0cd6f ca050a65 d8e94063
+ars4x32 10 00000000 ff000000 00000000 00000000 00000000 00000000 000000ff 00000000 3bb81a8d 57466caf 04414319 0e2b8c4a
+ars4x32 10 00000000 80000000 00000000 00000000 00000000 00000000 000000ff 00000000 ed59a3a3 d755a575 589bee5d 5cb05c14
+ars4x32 10 00000000 00000000 000000ff 00000000 00000000 00000000 000000ff 00000000 4597e89c 63d67111 e9b252a1 9a190af6
+ars4x32 10 00000000 00000000 00000080 00000000 00000000 00000000 000000ff 00000000 f8eb267a 0e8e0dc1 c8366e23 758f6f30
+ars4x32 10 00000000 00000000 0000ff00 00000000 00000000 00000000 000000ff 00000000 991dc2fc a2782037 3f421cf7 c6b03740
+ars4x32 10 00000000 00000000 00008000 00000000 00000000 00000000 000000ff 00000000 a226fe9c ad602184 9140c643 4129ca3d
+ars4x32 10 00000000 00000000 00ff0000 00000000 00000000 00000000 000000ff 00000000 1bdeb639 53b985ee c0bcb078 b892c4e2
+ars4x32 10 00000000 00000000 00800000 00000000 00000000 00000000 000000ff 00000000 172511c8 c2a169b2 fb123cef 32417c29
+ars4x32 10 00000000 00000000 ff000000 00000000 00000000 00000000 000000ff 00000000 8efe1d11 d5be5fa6 be816827 904558d6
+ars4x32 10 00000000 00000000 80000000 00000000 00000000 00000000 000000ff 00000000 5889a990 36b0fcb6 26ad5e11 8f3bbf66
+ars4x32 10 00000000 00000000 00000000 000000ff 00000000 00000000 000000ff 00000000 349e8c58 73a53b65 29d1ed42 4616e7a4
+ars4x32 10 00000000 00000000 00000000 00000080 00000000 00000000 000000ff 00000000 a2aaf3eb 9347b26a 1917022d de2dffee
+ars4x32 10 00000000 00000000 00000000 0000ff00 00000000 00000000 000000ff 00000000 8c757a87 587c4cf9 1b5c1bf9 0c3616c5
+ars4x32 10 00000000 00000000 00000000 00008000 00000000 00000000 000000ff 00000000 6760e16f 93b03b74 a7de3a80 8fa93309
+ars4x32 10 00000000 00000000 00000000 00ff0000 00000000 00000000 000000ff 00000000 ff278b74 d430f96e de8e472f 0ab8a7d0
+ars4x32 10 00000000 00000000 00000000 00800000 00000000 00000000 000000ff 00000000 e8e4f94a 345f8d70 a38fd32a 5c726aea
+ars4x32 10 00000000 00000000 00000000 ff000000 00000000 00000000 000000ff 00000000 c2a23dd0 7011b1e2 332c7423 b35056ee
+ars4x32 10 00000000 00000000 00000000 80000000 00000000 00000000 000000ff 00000000 251b5804 ba885efb 577759f8 543e0e84
+ars4x32 10 886a3f24 d308a385 2e8a1913 44737003 00000000 00000000 000000ff 00000000 7fd4d23b 15b8edfc fee03fe5 a12f94a2
+ars4x32 10 223809a4 d0319f29 98fa2e08 896c4eec 00000000 00000000 000000ff 00000000 1049d92e 7b4b996e 99541c8d 087efad4
+ars4x32 10 e6212845 7713d038 cf6654be 6c0ce934 00000000 00000000 000000ff 00000000 9d0ded71 e435dccb 164901af 34fc1baf
+ars4x32 10 00000001 00000000 00000000 00000000 00000000 00000000 00000080 00000000 78edb96a 6908c8de 14f55ef2 9f0fae04
+ars4x32 10 00000100 00000000 00000000 00000000 00000000 00000000 00000080 00000000 de37fe97 cf28bbb9 b661da5b 2a13c7ee
+ars4x32 10 00010000 00000000 00000000 00000000 00000000 00000000 00000080 00000000 6e861f75 1c7655a4 daa779f7 1021c8ff
+ars4x32 10 01000000 00000000 00000000 00000000 00000000 00000000 00000080 00000000 44313b42 a77b3f2a 2fe551e6 0540dfd3
+ars4x32 10 00000000 00000001 00000000 00000000 00000000 00000000 00000080 00000000 03dd5293 61edd733 c5ed88da a6cab8b2
+ars4x32 10 00000000 00000100 00000000 00000000 00000000 00000000 00000080 00000000 ed06f5a9 5568a8cc cc6cc793 3ed98f1f
+ars4x32 10 00000000 00010000 00000000 00000000 00000000 00000000 00000080 00000000 24b74d8a b47dc602 eb1c91a6 9f4ed8e6
+ars4x32 10 00000000 01000000 00000000 00000000 00000000 00000000 00000080 00000000 7d802fde a6e88144 599f7e11 8a4d5f68
+ars4x32 10 00000000 00000000 00000001 00000000 00000000 00000000 00000080 00000000 32a71211 59b38cc0 b4f2b31a b2136232
+ars4x32 10 00000000 00000000 00000100 00000000 00000000 00000000 00000080 00000000 ced9a35f 763e924f 69fd7268 33d411de
+ars4x32 10 00000000 00000000 00010000 00000000 00000000 00000000 00000080 00000000 8e5b8b9f 94f47d85 57251d28 f0b25ce9
+ars4x32 10 00000000 00000000 01000000 00000000 00000000 00000000 00000080 00000000 97591c5d 87e8713d 3cc50903 d1e27c7a
+ars4x32 10 00000000 00000000 00000000 00000001 00000000 00000000 00000080 00000000 3f7b1e5e 2aba4203 5a55d1ff ab7ed0fc
+ars4x32 10 00000000 00000000 00000000 00000100 00000000 00000000 00000080 00000000 5d0fcbcd 06665fed 3757cff9 d810791a
+ars4x32 10 00000000 00000000 00000000 00010000 00000000 00000000 00000080 00000000 728af58d 5781eff8 8864c0f9 3b75ee85
+ars4x32 10 00000000 00000000 00000000 01000000 00000000 00000000 00000080 00000000 967523e3 f9c4a057 c35a6daa 6151a76a
+ars4x32 10 0000ff00 00000000 00000000 00000000 00000000 00000000 00000080 00000000 1933314b ee335886 0ed15ef6 5e42982a
+ars4x32 10 00008000 00000000 00000000 00000000 00000000 00000000 00000080 00000000 decd3a83 4501177d 54b8c3ab c59dd6e3
+ars4x32 10 00ff0000 00000000 00000000 00000000 00000000 00000000 00000080 00000000 5b445f94 312e247b 2ab3cd23 fd412c8b
+ars4x32 10 00800000 00000000 00000000 00000000 00000000 00000000 00000080 00000000 010df58d 380f8c53 0cfc4871 e3cd6daa
+ars4x32 10 ff000000 00000000 00000000 00000000 00000000 00000000 00000080 00000000 699b519e 09f8e4c8 266de62a 9f7f6722
+ars4x32 10 80000000 00000000 00000000 00000000 00000000 00000000 00000080 00000000 9286df5b 4acb9c6a 6796ae21 66c4b0f9
+ars4x32 10 00000000 000000ff 00000000 00000000 00000000 00000000 00000080 00000000 257bb931 15374ecc 84e3bc37 00b3a497
+ars4x32 10 00000000 00000080 00000000 00000000 00000000 00000000 00000080 00000000 34212381 2c5363ee 2576da5e e6cc37a2
+ars4x32 10 00000000 0000ff00 00000000 00000000 00000000 00000000 00000080 00000000 3433f8db 4cb05ac7 f0607702 38136951
+ars4x32 10 00000000 00008000 00000000 00000000 00000000 00000000 00000080 00000000 635503bf a1954b79 2cf926f5 980ca587
+ars4x32 10 00000000 00ff0000 00000000 00000000 00000000 00000000 00000080 00000000 d39d7534 afcc457b 098e9a43 4a456000
+ars4x32 10 00000000 00800000 00000000 00000000 00000000 00000000 00000080 00000000 4519de79 96f80024 24d07cbd 4c0b7795
+ars4x32 10 00000000 ff000000 00000000 00000000 00000000 00000000 00000080 00000000 d29296cd 6dc750a2 fd383b84 64755f9c
+ars4x32 10 00000000 80000000 00000000 00000000 00000000 00000000 00000080 00000000 49c5803d 9fcf9542 6c79ea07 49261f84
+ars4x32 10 00000000 00000000 000000ff 00000000 00000000 00000000 00000080 00000000 e273b4b5 6b136ebe 533957ea 77e304bb
+ars4x32 10 00000000 00000000 00000080 00000000 00000000 00000000 00000080 00000000 1c44d927 538b6c83 e363d0cf 00a77f62
+ars4x32 10 00000000 00000000 0000ff00 00000000 00000000 00000000 00000080 00000000 b61ee82d e2655b38 3db27ab2 cd94f34e
+ars4x32 10 00000000 00000000 00008000 00000000 00000000 00000000 00000080 00000000 eda4f5e2 47d08f95 8bfc833c cdbd697a
+ars4x32 10 00000000 00000000 00ff0000 00000000 00000000 00000000 00000080 00000000 f5d9cdc2 4f91c004 27391e7d 199b276e
+ars4x32 10 00000000 00000000 00800000 00000000 00000000 00000000 00000080 00000000 d23978f4 ab233254 f611ca0b 7fbc8460
+ars4x32 10 00000000 00000000 ff000000 00000000 00000000 00000000 00000080 00000000 2bc6f4ac 6d6b8451 19b58a65 c84fb4c9
+ars4x32 10 00000000 00000000 80000000 00000000 00000000 00000000 00000080 00000000 8a84549b c251bb70 e7cfff88 5f71c7d0
+ars4x32 10 00000000 00000000 00000000 000000ff 00000000 00000000 00000080 00000000 08b2e46c dbfe2c11 8b6ea6da 3aa1fbfd
+ars4x32 10 00000000 00000000 00000000 00000080 00000000 00000000 00000080 00000000 75f8eee7 418fb421 e6d0d4a0 c638e3b3
+ars4x32 10 00000000 00000000 00000000 0000ff00 00000000 00000000 00000080 00000000 b892d231 e09b1b98 a8285831 74b2ed09
+ars4x32 10 00000000 00000000 00000000 00008000 00000000 00000000 00000080 00000000 2cbdeaa2 c85de50d d999dbac ba322240
+ars4x32 10 00000000 00000000 00000000 00ff0000 00000000 00000000 00000080 00000000 9066074a d3f2b6eb bf997c56 6e2fc3e1
+ars4x32 10 00000000 00000000 00000000 00800000 00000000 00000000 00000080 00000000 c1dab9a7 02680c69 69bc280a ef506afe
+ars4x32 10 00000000 00000000 00000000 ff000000 00000000 00000000 00000080 00000000 6b4503ea 3dd88f9a a64e9edf 54e5101f
+ars4x32 10 00000000 00000000 00000000 80000000 00000000 00000000 00000080 00000000 e2e930df bc0f222b ced19097 52071260
+ars4x32 10 886a3f24 d308a385 2e8a1913 44737003 00000000 00000000 00000080 00000000 b4e5e606 35b7286f 950de5c6 c2f1a652
+ars4x32 10 223809a4 d0319f29 98fa2e08 896c4eec 00000000 00000000 00000080 00000000 dc194b8a 448447bc c7374ed0 9980536e
+ars4x32 10 e6212845 7713d038 cf6654be 6c0ce934 00000000 00000000 00000080 00000000 aa838c05 e22ba715 6918cc5c dc292da8
+ars4x32 10 00000001 00000000 00000000 00000000 00000000 00000000 0000ff00 00000000 4f895e3e 72b5a8f9 41c531be 63caf21f
+ars4x32 10 00000100 00000000 00000000 00000000 00000000 00000000 0000ff00 00000000 e1814add 46b78185 5a794602 c5cbb81f
+ars4x32 10 00010000 00000000 00000000 00000000 00000000 00000000 0000ff00 00000000 b2c797be f07a5e58 4aaeb2d5 34d77337
+ars4x32 10 01000000 00000000 00000000 00000000 00000000 00000000 0000ff00 00000000 79a0ffd9 48780199 0705054e 49350ed4
+ars4x32 10 00000000 00000001 00000000 00000000 00000000 00000000 0000ff00 00000000 ea92d127 fc1a95df 273c0510 b61e10e8
+ars4x32 10 00000000 00000100 00000000 00000000 00000000 00000000 0000ff00 00000000 465c4daa 7959cac3 580b5939 5cade546
+ars4x32 10 00000000 00010000 00000000 00000000 00000000 00000000 0000ff00 00000000 40d94049 f73cb9ac 745cffa6 59f76ec5
+ars4x32 10 00000000 01000000 00000000 00000000 00000000 00000000 0000ff00 00000000 cf703f5b cd3f4549 97b731f1 a76acffc
+ars4x32 10 00000000 00000000 00000001 00000000 00000000 00000000 0000ff00 00000000 601682a7 ff3352a6 f51767ca 67c505cb
+ars4x32 10 00000000 00000000 00000100 00000000 00000000 00000000 0000ff00 00000000 064a4fd5 acf56790 fc2f77c6 542e7a7b
+ars4x32 10 00000000 00000000 00010000 00000000 00000000 00000000 0000ff00 00000000 07dd2141 a9e2457c debae6fc ddd06c68
+ars4x32 10 00000000 00000000 01000000 00000000 00000000 00000000 0000ff00 00000000 5a7b064d c5639457 f259c9bf c8070244
+ars4x32 10 00000000 00000000 00000000 00000001 00000000 00000000 0000ff00 00000000 d197cd70 1ef3538c db127a4b a3a1bb87
+ars4x32 10 00000000 00000000 00000000 00000100 00000000 00000000 0000ff00 00000000 4b404fd6 ad1b745e 6a8c294b 5df0c9d4
+ars4x32 10 00000000 00000000 00000000 00010000 00000000 00000000 0000ff00 00000000 9578bf95 49e2728e 56c2e4ae 3ae95323
+ars4x32 10 00000000 00000000 00000000 01000000 00000000 00000000 0000ff00 00000000 45839f9c c7f0e13d f1a64680 3aeac951
+ars4x32 10 0000ff00 00000000 00000000 00000000 00000000 00000000 0000ff00 00000000 be685e6a 35d02b3f 65b1fab0 1a9b817c
+ars4x32 10 00008000 00000000 00000000 00000000 00000000 00000000 0000ff00 00000000 8b23624f c777cdc2 17ba7e26 91e2d3ab
+ars4x32 10 00ff0000 00000000 00000000 00000000 00000000 00000000 0000ff00 00000000 7475aab9 7f315b43 bc2b96c3 00242add
+ars4x32 10 00800000 00000000 00000000 00000000 00000000 00000000 0000ff00 00000000 109a90ca 965c5269 7430bab4 a3889c75
+ars4x32 10 ff000000 00000000 00000000 00000000 00000000 00000000 0000ff00 00000000 fe582027 bef70e59 8a9b2847 5c0df86c
+ars4x32 10 80000000 00000000 00000000 00000000 00000000 00000000 0000ff00 00000000 3e3f8f0f 1734ab81 33f4d2ea 300b3b8b
+ars4x32 10 00000000 000000ff 00000000 00000000 00000000 00000000 0000ff00 00000000 ff63a226 41021a29 82485198 8c15a717
+ars4x32 10 00000000 00000080 00000000 00000000 00000000 00000000 0000ff00 00000000 e27a093e c263725a de05cc61 86e501c0
+ars4x32 10 00000000 0000ff00 00000000 00000000 00000000 00000000 0000ff00 00000000 b06ada3e 32f43fc1 f617a8d4 05404006
+ars4x32 10 00000000 00008000 00000000 00000000 00000000 00000000 0000ff00 00000000 98361f5a c454edae c9d73afa e3eef15b
+ars4x32 10 00000000 00ff0000 00000000 00000000 00000000 00000000 0000ff00 00000000 43f847d0 0c32ef55 6b7d8ca5 b2e06275
+ars4x32 10 00000000 00800000 00000000 00000000 00000000 00000000 0000ff00 00000000 59daf278 4e717bc6 bac4cd52 19ad0428
+ars4x32 10 00000000 ff000000 00000000 00000000 00000000 00000000 0000ff00 00000000 515a9cd5 6a818e6d ca4261cc e40fa439
+ars4x32 10 00000000 80000000 00000000 00000000 00000000 00000000 0000ff00 00000000 9c190df3 635b6902 e957b24e 6df51f6e
+ars4x32 10 00000000 00000000 000000ff 00000000 00000000 00000000 0000ff00 00000000 afb4979c 19bf132f 235e7a66 379823d2
+ars4x32 10 00000000 00000000 00000080 00000000 00000000 00000000 0000ff00 00000000 fab801f4 7d8403c4 213946e6 bf26cfa1
+ars4x32 10 00000000 00000000 0000ff00 00000000 00000000 00000000 0000ff00 00000000 2bff30c5 dc2724dd 276b8f10 293035ae
+ars4x32 10 00000000 00000000 00008000 00000000 00000000 00000000 0000ff00 00000000 bd535fc6 d0996f9d 0b279e9a 198ca5ac
+ars4x32 10 00000000 00000000 00ff0000 00000000 00000000 00000000 0000ff00 00000000 082570f6 f137eed9 82f8e840 a5190121
+ars4x32 10 00000000 00000000 00800000 00000000 00000000 00000000 0000ff00 00000000 ea45c747 936587e8 2f8ad187 95ea35d0
+ars4x32 10 00000000 00000000 ff000000 00000000 00000000 00000000 0000ff00 00000000 1bd18a60 b0d73ea8 e1966b10 2eac853b
+ars4x32 10 00000000 00000000 80000000 00000000 00000000 00000000 0000ff00 00000000 5236a302 62972607 e3c01714 0b62be49
+ars4x32 10 00000000 00000000 00000000 000000ff 00000000 00000000 0000ff00 00000000 efb10eeb acd85f80 99fba3e7 47b3c363
+ars4x32 10 00000000 00000000 00000000 00000080 00000000 00000000 0000ff00 00000000 41722b57 d4ac5a7a acd93feb 753133f3
+ars4x32 10 00000000 00000000 00000000 0000ff00 00000000 00000000 0000ff00 00000000 11d3138c c2a57d61 aa7af870 055f2d4e
+ars4x32 10 00000000 00000000 00000000 00008000 00000000 00000000 0000ff00 00000000 2b9fb6aa f71d55a2 f2792824 edb7f27f
+ars4x32 10 00000000 00000000 00000000 00ff0000 00000000 00000000 0000ff00 00000000 d4778713 5e30a88a 062e6325 be4add84
+ars4x32 10 00000000 00000000 00000000 00800000 00000000 00000000 0000ff00 00000000 b5a55af2 1be5b52b 12f81646 0e07d277
+ars4x32 10 00000000 00000000 00000000 ff000000 00000000 00000000 0000ff00 00000000 45a08cc5 57c9c115 f8e385c0 a36320f8
+ars4x32 10 00000000 00000000 00000000 80000000 00000000 00000000 0000ff00 00000000 612339f4 86580243 459c100b 850bd33d
+ars4x32 10 886a3f24 d308a385 2e8a1913 44737003 00000000 00000000 0000ff00 00000000 39bd7725 10cbed46 51577369 8acdda6c
+ars4x32 10 223809a4 d0319f29 98fa2e08 896c4eec 00000000 00000000 0000ff00 00000000 c5650896 57b105b1 dc6cceb4 73d682b0
+ars4x32 10 e6212845 7713d038 cf6654be 6c0ce934 00000000 00000000 0000ff00 00000000 6f5b19b1 da5bbfef b31787b4 e1b68bc1
+ars4x32 10 00000001 00000000 00000000 00000000 00000000 00000000 00008000 00000000 24d1487f 158e76bd 8f4625e2 1e4540ed
+ars4x32 10 00000100 00000000 00000000 00000000 00000000 00000000 00008000 00000000 fdc7999b 7bf57a2f 01436def 8b61b237
+ars4x32 10 00010000 00000000 00000000 00000000 00000000 00000000 00008000 00000000 686e0027 1feb6da1 c12824a4 7c2b0f28
+ars4x32 10 01000000 00000000 00000000 00000000 00000000 00000000 00008000 00000000 33836406 9f2ab550 562389cc 95d88501
+ars4x32 10 00000000 00000001 00000000 00000000 00000000 00000000 00008000 00000000 6cfc5fce 5c5bb94e b6ecef73 69459223
+ars4x32 10 00000000 00000100 00000000 00000000 00000000 00000000 00008000 00000000 3421e4bb 62cff9de 6aadbe7f 5402a3e1
+ars4x32 10 00000000 00010000 00000000 00000000 00000000 00000000 00008000 00000000 6c9c37e8 700b2ff4 8814305d fafff619
+ars4x32 10 00000000 01000000 00000000 00000000 00000000 00000000 00008000 00000000 c9a01dff c0d0754d c7746621 10487b7c
+ars4x32 10 00000000 00000000 00000001 00000000 00000000 00000000 00008000 00000000 261f4c1a 558a7d91 69228368 ca5bb4e3
+ars4x32 10 00000000 00000000 00000100 00000000 00000000 00000000 00008000 00000000 41535347 2881b818 bae2d203 472f8fe7
+ars4x32 10 00000000 00000000 00010000 00000000 00000000 00000000 00008000 00000000 7eb52b1a 195c1451 be6a546d c97ab66a
+ars4x32 10 00000000 00000000 01000000 00000000 00000000 00000000 00008000 00000000 7d3f7f8c 6de137ff d4250a82 2ced4b04
+ars4x32 10 00000000 00000000 00000000 00000001 00000000 00000000 00008000 00000000 01d2065f a5e190c7 b6966627 9f26e06c
+ars4x32 10 00000000 00000000 00000000 00000100 00000000 00000000 00008000 00000000 64fa9a54 d9e965d1 eb21155c e55453cf
+ars4x32 10 00000000 00000000 00000000 00010000 00000000 00000000 00008000 00000000 cd61bd9d 992e6f20 722cb30e 8d88b06d
+ars4x32 10 00000000 00000000 00000000 01000000 00000000 00000000 00008000 00000000 b6d727bd ff9b0a17 cda0c38a 3cc5d2cb
+ars4x32 10 0000ff00 00000000 00000000 00000000 00000000 00000000 00008000 00000000 7c6a0872 3e6f25d4 92970934 dcabecfc
+ars4x32 10 00008000 00000000 00000000 00000000 00000000 00000000 00008000 00000000 5e22281e 0b94307d e9db296b 2cf95249
+ars4x32 10 00ff0000 00000000 00000000 00000000 00000000 00000000 00008000 00000000 011bac44 666d7197 a5e1c544 c75e1c6d
+ars4x32 10 00800000 00000000 00000000 00000000 00000000 00000000 00008000 00000000 abbe39f4 52d30bab 991053f6 4b4ed4cf
+ars4x32 10 ff000000 00000000 00000000 00000000 00000000 00000000 00008000 00000000 f3e85902 a7c0dbb2 bd9d9c94 6b3042fb
+ars4x32 10 80000000 00000000 00000000 00000000 00000000 00000000 00008000 00000000 a723461e 951ecf6d ab3f8dc8 4c05d117
+ars4x32 10 00000000 000000ff 00000000 00000000 00000000 00000000 00008000 00000000 ee5355b5 32725efa 61b14b48 e353a242
+ars4x32 10 00000000 00000080 00000000 00000000 00000000 00000000 00008000 00000000 11f078cc 605038a9 68376309 10032ad2
+ars4x32 10 00000000 0000ff00 00000000 00000000 00000000 00000000 00008000 00000000 0900e5ff 0f45e7e0 d8fd1655 5a726ff7
+ars4x32 10 00000000 00008000 00000000 00000000 00000000 00000000 00008000 00000000 2aaa22f3 ab0c292e ecbf2fa5 bbe1420c
+ars4x32 10 00000000 00ff0000 00000000 00000000 00000000 00000000 00008000 00000000 0ce0d376 233941c7 e7362e05 2d05628d
+ars4x32 10 00000000 00800000 00000000 00000000 00000000 00000000 00008000 00000000 3e176017 54200793 d514e4e8 3eb412a7
+ars4x32 10 00000000 ff000000 00000000 00000000 00000000 00000000 00008000 00000000 48f2869b 3845ef22 5e1901ea 4a859734
+ars4x32 10 00000000 80000000 00000000 00000000 00000000 00000000 00008000 00000000 b7418462 d1f9ac07 3c055a85 8e0f3ea1
+ars4x32 10 00000000 00000000 000000ff 00000000 00000000 00000000 00008000 00000000 e8d41de4 a8874978 46a24e6c 62ca3cfc
+ars4x32 10 00000000 00000000 00000080 00000000 00000000 00000000 00008000 00000000 1532c522 6ddf05a4 c2066e0d 4bcd4299
+ars4x32 10 00000000 00000000 0000ff00 00000000 00000000 00000000 00008000 00000000 85e164d1 abc06722 d1d9c63f d7c77859
+ars4x32 10 00000000 00000000 00008000 00000000 00000000 00000000 00008000 00000000 1a82806a 5a3f2a6b f64ab142 8f9dcbfe
+ars4x32 10 00000000 00000000 00ff0000 00000000 00000000 00000000 00008000 00000000 3b79de87 7c00eab3 f24513c2 3dd85d75
+ars4x32 10 00000000 00000000 00800000 00000000 00000000 00000000 00008000 00000000 4ba6fbb8 6103aaa6 9b5bd1ab 82501d69
+ars4x32 10 00000000 00000000 ff000000 00000000 00000000 00000000 00008000 00000000 f5753d5b b7ba337b cb34b53a d8ab23ed
+ars4x32 10 00000000 00000000 80000000 00000000 00000000 00000000 00008000 00000000 f8c29746 c96595dd 2a7e4df6 c4f15e03
+ars4x32 10 00000000 00000000 00000000 000000ff 00000000 00000000 00008000 00000000 5e5bf243 43201ef2 b2b56cdf 2606e3c1
+ars4x32 10 00000000 00000000 00000000 00000080 00000000 00000000 00008000 00000000 5b7b8240 9c0dbf33 3cd7526b d88092c4
+ars4x32 10 00000000 00000000 00000000 0000ff00 00000000 00000000 00008000 00000000 5cd72157 3bf89f8d 4308c0af acdd1a5f
+ars4x32 10 00000000 00000000 00000000 00008000 00000000 00000000 00008000 00000000 d2c67dca 081c3b2b 3971d46f 1aa33642
+ars4x32 10 00000000 00000000 00000000 00ff0000 00000000 00000000 00008000 00000000 b37023cb 70133c8f 50dcbba4 b0ec5a98
+ars4x32 10 00000000 00000000 00000000 00800000 00000000 00000000 00008000 00000000 66d1ab9e c8000dc4 6bf78454 f5967ab4
+ars4x32 10 00000000 00000000 00000000 ff000000 00000000 00000000 00008000 00000000 8cdee45a 0a564a1c 247a57b6 7d76dd5c
+ars4x32 10 00000000 00000000 00000000 80000000 00000000 00000000 00008000 00000000 9d950cfc 48245225 e2f6ce41 e18bbb3d
+ars4x32 10 886a3f24 d308a385 2e8a1913 44737003 00000000 00000000 00008000 00000000 8726cb58 4b596fcc d85ccd2d ea5c1b86
+ars4x32 10 223809a4 d0319f29 98fa2e08 896c4eec 00000000 00000000 00008000 00000000 b5bbbd24 af621eff eb71ad90 3963eda2
+ars4x32 10 e6212845 7713d038 cf6654be 6c0ce934 00000000 00000000 00008000 00000000 7e8c5d35 b01f4357 1d4da01a 349d9308
+ars4x32 10 00000001 00000000 00000000 00000000 00000000 00000000 00ff0000 00000000 150100c1 8d8bf7c0 1c7d1deb ea2ff94f
+ars4x32 10 00000100 00000000 00000000 00000000 00000000 00000000 00ff0000 00000000 994d5250 c83dc66c e341426f bb32bccb
+ars4x32 10 00010000 00000000 00000000 00000000 00000000 00000000 00ff0000 00000000 8ac076c6 b28157c7 823ddb74 5d555ba4
+ars4x32 10 01000000 00000000 00000000 00000000 00000000 00000000 00ff0000 00000000 912496a3 26ef9bae afd546a9 6ad2f1f1
+ars4x32 10 00000000 00000001 00000000 00000000 00000000 00000000 00ff0000 00000000 17bfc356 ba77656f 0f46d315 8fc83394
+ars4x32 10 00000000 00000100 00000000 00000000 00000000 00000000 00ff0000 00000000 30ca7dd6 e2b05be4 c3d7d1be d450f616
+ars4x32 10 00000000 00010000 00000000 00000000 00000000 00000000 00ff0000 00000000 5857a46b 9ccfbe40 2b669fa2 9abc43b5
+ars4x32 10 00000000 01000000 00000000 00000000 00000000 00000000 00ff0000 00000000 d062d457 d657a39e 23313e22 00fe8983
+ars4x32 10 00000000 00000000 00000001 00000000 00000000 00000000 00ff0000 00000000 6a2a8e8c fa721dd3 5569b7a8 7047dffc
+ars4x32 10 00000000 00000000 00000100 00000000 00000000 00000000 00ff0000 00000000 8a8ed781 7cf1b536 87ec6941 c4e4c20f
+ars4x32 10 00000000 00000000 00010000 00000000 00000000 00000000 00ff0000 00000000 4d954fc9 836102fa fb3944b2 d1b5a7e9
+ars4x32 10 00000000 00000000 01000000 00000000 00000000 00000000 00ff0000 00000000 79a5718b b154c479 a77f8db1 adb57436
+ars4x32 10 00000000 00000000 00000000 00000001 00000000 00000000 00ff0000 00000000 43642543 c3937039 9f582b56 19f7d08b
+ars4x32 10 00000000 00000000 00000000 00000100 00000000 00000000 00ff0000 00000000 675c5fbe f10a35e8 f11bcf82 d576b00e
+ars4x32 10 00000000 00000000 00000000 00010000 00000000 00000000 00ff0000 00000000 049552f7 68df840f 7cb4f5f2 6d19b3a0
+ars4x32 10 00000000 00000000 00000000 01000000 00000000 00000000 00ff0000 00000000 831c604c 0e4000c8 4bc6c406 6962eaea
+ars4x32 10 0000ff00 00000000 00000000 00000000 00000000 00000000 00ff0000 00000000 d0f5ceb6 19226e67 265c3f6e 50007b66
+ars4x32 10 00008000 00000000 00000000 00000000 00000000 00000000 00ff0000 00000000 c519f53c f413fac7 436b8242 f48c31b2
+ars4x32 10 00ff0000 00000000 00000000 00000000 00000000 00000000 00ff0000 00000000 d4b94661 5822fc35 7d5f5827 88fbc576
+ars4x32 10 00800000 00000000 00000000 00000000 00000000 00000000 00ff0000 00000000 39661f90 f3148a86 85deba9a 6a320b8b
+ars4x32 10 ff000000 00000000 00000000 00000000 00000000 00000000 00ff0000 00000000 8f57ce6e f6391458 ecc348bf bb6f94e1
+ars4x32 10 80000000 00000000 00000000 00000000 00000000 00000000 00ff0000 00000000 76cb2978 8e67c88d 950a1a6a a62e2213
+ars4x32 10 00000000 000000ff 00000000 00000000 00000000 00000000 00ff0000 00000000 1ae699eb 3cbca167 39775a0e 146b9cc6
+ars4x32 10 00000000 00000080 00000000 00000000 00000000 00000000 00ff0000 00000000 a98821cc 51579bf1 e844a285 39fa3044
+ars4x32 10 00000000 0000ff00 00000000 00000000 00000000 00000000 00ff0000 00000000 4be5b753 8f56938b 3d6cc3da 86ecba90
+ars4x32 10 00000000 00008000 00000000 00000000 00000000 00000000 00ff0000 00000000 198172c3 800e20da be07ee33 a8560a99
+ars4x32 10 00000000 00ff0000 00000000 00000000 00000000 00000000 00ff0000 00000000 ff2b7003 d5983fe4 1309cf3c 74333dd4
+ars4x32 10 00000000 00800000 00000000 00000000 00000000 00000000 00ff0000 00000000 771bf320 5a91a69a 25e85234 6b44483d
+ars4x32 10 00000000 ff000000 00000000 00000000 00000000 00000000 00ff0000 00000000 cad80ab5 243a85d6 746d94c3 14288f35
+ars4x32 10 00000000 80000000 00000000 00000000 00000000 00000000 00ff0000 00000000 af6409e0 7b2e97e1 61dc66cc daf91138
+ars4x32 10 00000000 00000000 000000ff 00000000 00000000 00000000 00ff0000 00000000 72f34dba 42ea306f ab2dbb1c f89d0e52
+ars4x32 10 00000000 00000000 00000080 00000000 00000000 00000000 00ff0000 00000000 de0425e6 b0711cbe a1f06647 1d22420d
+ars4x32 10 00000000 00000000 0000ff00 00000000 00000000 00000000 00ff0000 00000000 2c4547fb 290dc51b f05b6832 367d1247
+ars4x32 10 00000000 00000000 00008000 00000000 00000000 00000000 00ff0000 00000000 8c9ba4ff 28b80719 bae6c186 2961fbb2
+ars4x32 10 00000000 00000000 00ff0000 00000000 00000000 00000000 00ff0000 00000000 f4d1a124 8dd06f6e b60ad992 a75bb575
+ars4x32 10 00000000 00000000 00800000 00000000 00000000 00000000 00ff0000 00000000 1d264180 0d82de2f f7ad28d1 6de99d88
+ars4x32 10 00000000 00000000 ff000000 00000000 00000000 00000000 00ff0000 00000000 e8d546e4 f436aa12 d9ea6b9b 1e8293d8
+ars4x32 10 00000000 00000000 80000000 00000000 00000000 00000000 00ff0000 00000000 c68b533b 0c2f5dca ee1f618f dac2795c
+ars4x32 10 00000000 00000000 00000000 000000ff 00000000 00000000 00ff0000 00000000 b0231ad0 d9f78969 e9a7f2fa 57a7d045
+ars4x32 10 00000000 00000000 00000000 00000080 00000000 00000000 00ff0000 00000000 66222670 31459874 e598e3a8 1a4bde92
+ars4x32 10 00000000 00000000 00000000 0000ff00 00000000 00000000 00ff0000 00000000 b6d2196d db3851bd 516ae69b 06225b81
+ars4x32 10 00000000 00000000 00000000 00008000 00000000 00000000 00ff0000 00000000 bdc0eebb bfa3e06f 92d8d0ae bd8cf1c3
+ars4x32 10 00000000 00000000 00000000 00ff0000 00000000 00000000 00ff0000 00000000 62aa92f2 f195369f 42e7ce55 30d5680a
+ars4x32 10 00000000 00000000 00000000 00800000 00000000 00000000 00ff0000 00000000 bd9e04a8 227be90d 097430ac 878fd8a8
+ars4x32 10 00000000 00000000 00000000 ff000000 00000000 00000000 00ff0000 00000000 40930095 69a60863 56535b7c 1db91864
+ars4x32 10 00000000 00000000 00000000 80000000 00000000 00000000 00ff0000 00000000 3fe5270e 13485418 5b672b74 4a4d1bce
+ars4x32 10 886a3f24 d308a385 2e8a1913 44737003 00000000 00000000 00ff0000 00000000 ac577578 1f84fd44 033a5861 779c8365
+ars4x32 10 223809a4 d0319f29 98fa2e08 896c4eec 00000000 00000000 00ff0000 00000000 a8a3b667 0c5cbf5b caccc1bd 734b447b
+ars4x32 10 e6212845 7713d038 cf6654be 6c0ce934 00000000 00000000 00ff0000 00000000 e5d8935f 0661e012 1b98bb8d a2055553
+ars4x32 10 00000001 00000000 00000000 00000000 00000000 00000000 00800000 00000000 68e72e13 266b1949 abca7cd0 d1d4a3cd
+ars4x32 10 00000100 00000000 00000000 00000000 00000000 00000000 00800000 00000000 705dbcb8 95696c45 d61cf801 3c1b2b7e
+ars4x32 10 00010000 00000000 00000000 00000000 00000000 00000000 00800000 00000000 0ab694e0 2a73e296 0075cb87 e3e64788
+ars4x32 10 01000000 00000000 00000000 00000000 00000000 00000000 00800000 00000000 c8c39af7 2c85aa23 7658b885 0a9b9ceb
+ars4x32 10 00000000 00000001 00000000 00000000 00000000 00000000 00800000 00000000 adae304e c04bff5e dc073076 326c6db4
+ars4x32 10 00000000 00000100 00000000 00000000 00000000 00000000 00800000 00000000 9f18f947 2e6324bb 63a1cbf3 70b3c520
+ars4x32 10 00000000 00010000 00000000 00000000 00000000 00000000 00800000 00000000 85f625f9 42888c8a 3ba60d3a 4b775425
+ars4x32 10 00000000 01000000 00000000 00000000 00000000 00000000 00800000 00000000 f1ff4973 f55b9ef0 92ece024 a4eecd95
+ars4x32 10 00000000 00000000 00000001 00000000 00000000 00000000 00800000 00000000 66193413 cb44934e 0286e084 30f50630
+ars4x32 10 00000000 00000000 00000100 00000000 00000000 00000000 00800000 00000000 4a3c0db1 e14e905d 19af9847 74a6bab5
+ars4x32 10 00000000 00000000 00010000 00000000 00000000 00000000 00800000 00000000 360c0993 a7e6d53c 6545bd83 3d1e73a3
+ars4x32 10 00000000 00000000 01000000 00000000 00000000 00000000 00800000 00000000 562cf033 253dcff5 4a402904 fa8abff9
+ars4x32 10 00000000 00000000 00000000 00000001 00000000 00000000 00800000 00000000 436a432f 11dbdb14 05e49a83 9993339e
+ars4x32 10 00000000 00000000 00000000 00000100 00000000 00000000 00800000 00000000 58d08506 40633f84 56a1a0f8 660b48aa
+ars4x32 10 00000000 00000000 00000000 00010000 00000000 00000000 00800000 00000000 02c240f0 8d2fc6dd 5a8c1a84 aab3284f
+ars4x32 10 00000000 00000000 00000000 01000000 00000000 00000000 00800000 00000000 2864f59a 6edf90a5 ce976842 915798b4
+ars4x32 10 0000ff00 00000000 00000000 00000000 00000000 00000000 00800000 00000000 825a70ce 7c5cd2df 26b9286b 7e663990
+ars4x32 10 00008000 00000000 00000000 00000000 00000000 00000000 00800000 00000000 d2582afe 7ce7356c 61af9992 76e40957
+ars4x32 10 00ff0000 00000000 00000000 00000000 00000000 00000000 00800000 00000000 cabcada6 6adfef01 8d0f0341 3e913f9d
+ars4x32 10 00800000 00000000 00000000 00000000 00000000 00000000 00800000 00000000 a5980f69 9d59ac3a 1948d421 7b5f876c
+ars4x32 10 ff000000 00000000 00000000 00000000 00000000 00000000 00800000 00000000 22263e0b 847009f1 534a770e d3bee5ee
+ars4x32 10 80000000 00000000 00000000 00000000 00000000 00000000 00800000 00000000 6cb180d5 1a7fe928 c78f1ad4 2a5f82b2
+ars4x32 10 00000000 000000ff 00000000 00000000 00000000 00000000 00800000 00000000 901f9239 d8682cf2 9f1aef9d de8af58c
+ars4x32 10 00000000 00000080 00000000 00000000 00000000 00000000 00800000 00000000 a2068588 a97aa456 a42ed8a0 431234e4
+ars4x32 10 00000000 0000ff00 00000000 00000000 00000000 00000000 00800000 00000000 3b1d0a13 0049dcf1 60b9cdbb 9beedcb5
+ars4x32 10 00000000 00008000 00000000 00000000 00000000 00000000 00800000 00000000 18a1aba6 4403bbca 967481e5 7e6554e1
+ars4x32 10 00000000 00ff0000 00000000 00000000 00000000 00000000 00800000 00000000 482ceb52 af4d0143 55c736db aebb6425
+ars4x32 10 00000000 00800000 00000000 00000000 00000000 00000000 00800000 00000000 f6cf72fb 4d6640d9 35a977f1 7096cc36
+ars4x32 10 00000000 ff000000 00000000 00000000 00000000 00000000 00800000 00000000 d21cb48e 36311bae 3221e8d1 4ba5719f
+ars4x32 10 00000000 80000000 00000000 00000000 00000000 00000000 00800000 00000000 13086d02 660d0a2d e0962f43 b0fa1d6e
+ars4x32 10 00000000 00000000 000000ff 00000000 00000000 00000000 00800000 00000000 f04d666c 30ff59f4 7502022c 3cfc80a4
+ars4x32 10 00000000 00000000 00000080 00000000 00000000 00000000 00800000 00000000 d5114c63 b5d76336 b8b67146 02867d09
+ars4x32 10 00000000 00000000 0000ff00 00000000 00000000 00000000 00800000 00000000 953c28e4 4ae01f34 8ed0dc6e 7789cb86
+ars4x32 10 00000000 00000000 00008000 00000000 00000000 00000000 00800000 00000000 1be4f6a6 f44a275b 1d943bf8 c0a290f1
+ars4x32 10 00000000 00000000 00ff0000 00000000 00000000 00000000 00800000 00000000 dd31a5da 05be7bd6 a167d78e 7d08f34c
+ars4x32 10 00000000 00000000 00800000 00000000 00000000 00000000 00800000 00000000 d5dcf493 3b152044 3d432a8f 775976d2
+ars4x32 10 00000000 00000000 ff000000 00000000 00000000 00000000 00800000 00000000 80e0584e a682ae00 0fcc317d 405dd7b8
+ars4x32 10 00000000 00000000 80000000 00000000 00000000 00000000 00800000 00000000 b328592e 23fdb9a2 cc0a0b5a c9e4691c
+ars4x32 10 00000000 00000000 00000000 000000ff 00000000 00000000 00800000 00000000 472a4c24 b385afbd 4dfd4a54 c97f647a
+ars4x32 10 00000000 00000000 00000000 00000080 00000000 00000000 00800000 00000000 f94146fb 0d22e6f0 56ecd3a4 208e570e
+ars4x32 10 00000000 00000000 00000000 0000ff00 00000000 00000000 00800000 00000000 5b6370ef 423622fc be86d2ba 442a8110
+ars4x32 10 00000000 00000000 00000000 00008000 00000000 00000000 00800000 00000000 3f27be64 7d2df841 441029aa 8a19787e
+ars4x32 10 00000000 00000000 00000000 00ff0000 00000000 00000000 00800000 00000000 1151638b 08a6c2ca 14f24afa 0e840c78
+ars4x32 10 00000000 00000000 00000000 00800000 00000000 00000000 00800000 00000000 8112fcc5 e7bae10f 737e7764 05a503e4
+ars4x32 10 00000000 00000000 00000000 ff000000 00000000 00000000 00800000 00000000 37694239 bdd5f12f c3534fd0 42a4a9c2
+ars4x32 10 00000000 00000000 00000000 80000000 00000000 00000000 00800000 00000000 15288d81 c5011e00 64e4df7d c6fe95d1
+ars4x32 10 886a3f24 d308a385 2e8a1913 44737003 00000000 00000000 00800000 00000000 3244478c 4ffda7c7 530422c7 833a4081
+ars4x32 10 223809a4 d0319f29 98fa2e08 896c4eec 00000000 00000000 00800000 00000000 1f6b2595 f19ea03d 12612526 3e202d62
+ars4x32 10 e6212845 7713d038 cf6654be 6c0ce934 00000000 00000000 00800000 00000000 6bec8130 ae19560b 5c138b96 3fcb10a4
+ars4x32 10 00000001 00000000 00000000 00000000 00000000 00000000 ff000000 00000000 58efaae8 908f42d9 e4a5adeb 800f20f0
+ars4x32 10 00000100 00000000 00000000 00000000 00000000 00000000 ff000000 00000000 1b5bd8ef 4c71ab0a 4361587e e736be48
+ars4x32 10 00010000 00000000 00000000 00000000 00000000 00000000 ff000000 00000000 e7fa3d88 ed05f2ad a1f51a03 8019547e
+ars4x32 10 01000000 00000000 00000000 00000000 00000000 00000000 ff000000 00000000 a84250a7 481c99b6 ad206e2d f7cfc759
+ars4x32 10 00000000 00000001 00000000 00000000 00000000 00000000 ff000000 00000000 83828d08 1ed9dd9b 8370a4da 87770b65
+ars4x32 10 00000000 00000100 00000000 00000000 00000000 00000000 ff000000 00000000 70bc4d50 e5d389ce 0d1ed6bf 5cb66f96
+ars4x32 10 00000000 00010000 00000000 00000000 00000000 00000000 ff000000 00000000 d011df96 62a24fd2 862bdb89 51673aff
+ars4x32 10 00000000 01000000 00000000 00000000 00000000 00000000 ff000000 00000000 b5951541 117d9964 7bbc4552 d46c6108
+ars4x32 10 00000000 00000000 00000001 00000000 00000000 00000000 ff000000 00000000 895d27ea dc118488 14108089 c64316d5
+ars4x32 10 00000000 00000000 00000100 00000000 00000000 00000000 ff000000 00000000 77515b74 8ea060d8 aeb9258e 29210aff
+ars4x32 10 00000000 00000000 00010000 00000000 00000000 00000000 ff000000 00000000 98894204 5953a99d 98611732 cc2a318a
+ars4x32 10 00000000 00000000 01000000 00000000 00000000 00000000 ff000000 00000000 4015a871 701ca798 3e27d956 1ad8e87d
+ars4x32 10 00000000 00000000 00000000 00000001 00000000 00000000 ff000000 00000000 20823b8c 3c0e0feb b35a9f82 811604a4
+ars4x32 10 00000000 00000000 00000000 00000100 00000000 00000000 ff000000 00000000 15144119 2ce37c74 7e392f1a 9e35c7cb
+ars4x32 10 00000000 00000000 00000000 00010000 00000000 00000000 ff000000 00000000 bb159130 24c7e73e 0829a1e6 dd30133b
+ars4x32 10 00000000 00000000 00000000 01000000 00000000 00000000 ff000000 00000000 fca4d0ca f03c677f 70ba8d66 a1adfb79
+ars4x32 10 0000ff00 00000000 00000000 00000000 00000000 00000000 ff000000 00000000 f0a7207b 5f3d4137 65cde2ab 886b68a4
+ars4x32 10 00008000 00000000 00000000 00000000 00000000 00000000 ff000000 00000000 687ed791 369f293a 1d55e60b 2b9402fa
+ars4x32 10 00ff0000 00000000 00000000 00000000 00000000 00000000 ff000000 00000000 02044399 a8ee0e4b 4df92ff7 84f2d2e0
+ars4x32 10 00800000 00000000 00000000 00000000 00000000 00000000 ff000000 00000000 ba9ba0b4 6d8a660a 38361200 3a68ba1b
+ars4x32 10 ff000000 00000000 00000000 00000000 00000000 00000000 ff000000 00000000 411ff0c5 6c9435a8 75df0544 d8aab3a1
+ars4x32 10 80000000 00000000 00000000 00000000 00000000 00000000 ff000000 00000000 819b4329 41031a9c d55552cd da3cd070
+ars4x32 10 00000000 000000ff 00000000 00000000 00000000 00000000 ff000000 00000000 3b3b48b5 8ef2dd6a eff89bd0 ca2f9b84
+ars4x32 10 00000000 00000080 00000000 00000000 00000000 00000000 ff000000 00000000 e2dbbab9 f08aee93 b7f69de6 3d049a17
+ars4x32 10 00000000 0000ff00 00000000 00000000 00000000 00000000 ff000000 00000000 5017bc10 55fad779 44fa7a36 0118e600
+ars4x32 10 00000000 00008000 00000000 00000000 00000000 00000000 ff000000 00000000 fcb470e5 66cf1e2c cd667359 ab002923
+ars4x32 10 00000000 00ff0000 00000000 00000000 00000000 00000000 ff000000 00000000 5a3bcb0d 7171d784 87adcf0f 48815634
+ars4x32 10 00000000 00800000 00000000 00000000 00000000 00000000 ff000000 00000000 581967fb 3a31f5eb 56eb2845 0c4664fb
+ars4x32 10 00000000 ff000000 00000000 00000000 00000000 00000000 ff000000 00000000 bcb2b6db 5bb1b54c 8aeec711 3de3aaed
+ars4x32 10 00000000 80000000 00000000 00000000 00000000 00000000 ff000000 00000000 82f23d44 c05a76ae fd053b09 4811f26c
+ars4x32 10 00000000 00000000 000000ff 00000000 00000000 00000000 ff000000 00000000 60e4c1b3 a9cbe94b 5a1bf944 af1cc907
+ars4x32 10 00000000 00000000 00000080 00000000 00000000 00000000 ff000000 00000000 579e0bed 17c5f429 5d523ca2 083c228e
+ars4x32 10 00000000 00000000 0000ff00 00000000 00000000 00000000 ff000000 00000000 4d08ca02 f93a8353 d942c66f 14e89ccf
+ars4x32 10 00000000 00000000 00008000 00000000 00000000 00000000 ff000000 00000000 c437ef90 b3e6c4f8 5c96cd27 c9eb6193
+ars4x32 10 00000000 00000000 00ff0000 00000000 00000000 00000000 ff000000 00000000 97e2cfff 7fb4a4d8 711f5d3a 30ddd82c
+ars4x32 10 00000000 00000000 00800000 00000000 00000000 00000000 ff000000 00000000 2a7de2c3 9b2b4963 b35c6f87 5c6224a5
+ars4x32 10 00000000 00000000 ff000000 00000000 00000000 00000000 ff000000 00000000 fbafd6b1 0a2cde19 ffc1b1db fb4475e9
+ars4x32 10 00000000 00000000 80000000 00000000 00000000 00000000 ff000000 00000000 a209fecb 74698947 efe93434 9247b5ee
+ars4x32 10 00000000 00000000 00000000 000000ff 00000000 00000000 ff000000 00000000 9c680acb 3a32a953 be5c11a4 7c443198
+ars4x32 10 00000000 00000000 00000000 00000080 00000000 00000000 ff000000 00000000 6d2fe0c4 2cd7c774 a1108e79 30e00da1
+ars4x32 10 00000000 00000000 00000000 0000ff00 00000000 00000000 ff000000 00000000 a7bf2fb6 d8745ced 3689002d dd18f2d4
+ars4x32 10 00000000 00000000 00000000 00008000 00000000 00000000 ff000000 00000000 d96b2959 c77aae07 6eb557df 804209f0
+ars4x32 10 00000000 00000000 00000000 00ff0000 00000000 00000000 ff000000 00000000 fe919ceb 31d0dc56 e872a4a1 eba61bf8
+ars4x32 10 00000000 00000000 00000000 00800000 00000000 00000000 ff000000 00000000 25d41591 6eeb72bf 5a9b8eed d69fafbe
+ars4x32 10 00000000 00000000 00000000 ff000000 00000000 00000000 ff000000 00000000 14fe134c c16f5762 9fbe3991 3fd1124d
+ars4x32 10 00000000 00000000 00000000 80000000 00000000 00000000 ff000000 00000000 db8829be c1f8712e da644ea2 27a8390c
+ars4x32 10 886a3f24 d308a385 2e8a1913 44737003 00000000 00000000 ff000000 00000000 80d8415d 43b257fb 31703e65 24616f8a
+ars4x32 10 223809a4 d0319f29 98fa2e08 896c4eec 00000000 00000000 ff000000 00000000 057dc2d7 5ae3fa5a f95a7de3 f9808716
+ars4x32 10 e6212845 7713d038 cf6654be 6c0ce934 00000000 00000000 ff000000 00000000 88e51669 eadba2c2 09cf3da5 d5f0465c
+ars4x32 10 00000001 00000000 00000000 00000000 00000000 00000000 80000000 00000000 83d8298c cf50434e 604c644b 085b2b3a
+ars4x32 10 00000100 00000000 00000000 00000000 00000000 00000000 80000000 00000000 c31c0ee3 a3e4013f 929d7a3a 251cef6b
+ars4x32 10 00010000 00000000 00000000 00000000 00000000 00000000 80000000 00000000 b2958cdc adf2ca56 298655aa 38dfb0bd
+ars4x32 10 01000000 00000000 00000000 00000000 00000000 00000000 80000000 00000000 8b666be5 6691a603 becb6f7c 4e518093
+ars4x32 10 00000000 00000001 00000000 00000000 00000000 00000000 80000000 00000000 a28133df c529f5e6 cd5f91f9 7d10f299
+ars4x32 10 00000000 00000100 00000000 00000000 00000000 00000000 80000000 00000000 ab9f6d47 eacf9e26 4d2f0c18 a35abd5c
+ars4x32 10 00000000 00010000 00000000 00000000 00000000 00000000 80000000 00000000 abb330b6 de59b743 50f267d1 aad6a67a
+ars4x32 10 00000000 01000000 00000000 00000000 00000000 00000000 80000000 00000000 fb1d5547 79fbc7c9 4e8d3ab8 8250e91c
+ars4x32 10 00000000 00000000 00000001 00000000 00000000 00000000 80000000 00000000 7d0a1025 4c3269bf bb67303f 1443062e
+ars4x32 10 00000000 00000000 00000100 00000000 00000000 00000000 80000000 00000000 c3772324 636a13a2 818cc7da 8e61b8aa
+ars4x32 10 00000000 00000000 00010000 00000000 00000000 00000000 80000000 00000000 0fac38e2 b1f0c476 e266440c f91503a1
+ars4x32 10 00000000 00000000 01000000 00000000 00000000 00000000 80000000 00000000 9547f705 ad06ba30 85e1496f 17ebf7f5
+ars4x32 10 00000000 00000000 00000000 00000001 00000000 00000000 80000000 00000000 26f2e248 bb626483 6cc9da1e 3935acb5
+ars4x32 10 00000000 00000000 00000000 00000100 00000000 00000000 80000000 00000000 6193ea72 dd9179f9 11d5fb2b b3f582f5
+ars4x32 10 00000000 00000000 00000000 00010000 00000000 00000000 80000000 00000000 daa78425 2b6a189a f60338b6 1b561a4f
+ars4x32 10 00000000 00000000 00000000 01000000 00000000 00000000 80000000 00000000 83642eba a4210779 c8e5bedc b835e990
+ars4x32 10 0000ff00 00000000 00000000 00000000 00000000 00000000 80000000 00000000 20989bb9 ced2018e b11a2efb a2c28fe8
+ars4x32 10 00008000 00000000 00000000 00000000 00000000 00000000 80000000 00000000 fbe11e8e 51f48068 2efe8e0c 3ead3383
+ars4x32 10 00ff0000 00000000 00000000 00000000 00000000 00000000 80000000 00000000 2312ca53 57298d29 b524128a 78103575
+ars4x32 10 00800000 00000000 00000000 00000000 00000000 00000000 80000000 00000000 9ce0f6ba 2bef00f8 36c91af0 170c8f5f
+ars4x32 10 ff000000 00000000 00000000 00000000 00000000 00000000 80000000 00000000 92167ad7 7e9e298f f8a3b57c 37f5d192
+ars4x32 10 80000000 00000000 00000000 00000000 00000000 00000000 80000000 00000000 65b750a7 2cf2e7d2 180b35f8 8b26a303
+ars4x32 10 00000000 000000ff 00000000 00000000 00000000 00000000 80000000 00000000 0b38e8b0 5a2c26ae 7e18dc14 ca613f02
+ars4x32 10 00000000 00000080 00000000 00000000 00000000 00000000 80000000 00000000 36c55fa7 649d1c12 f0a73818 660ea1de
+ars4x32 10 00000000 0000ff00 00000000 00000000 00000000 00000000 80000000 00000000 336a6fb3 99c55a04 9c57b111 09cd84fd
+ars4x32 10 00000000 00008000 00000000 00000000 00000000 00000000 80000000 00000000 927aa646 be0db63e 45794f89 d4712587
+ars4x32 10 00000000 00ff0000 00000000 00000000 00000000 00000000 80000000 00000000 85488bc3 6cad29d3 d25bb760 94f43c28
+ars4x32 10 00000000 00800000 00000000 00000000 00000000 00000000 80000000 00000000 3fc3414f d6d0b06b 4c01b8e3 30e2e6de
+ars4x32 10 00000000 ff000000 00000000 00000000 00000000 00000000 80000000 00000000 cdc351e1 db319290 6211914b e9ce9b56
+ars4x32 10 00000000 80000000 00000000 00000000 00000000 00000000 80000000 00000000 12235426 f00d95e3 0350c5b6 f0660a18
+ars4x32 10 00000000 00000000 000000ff 00000000 00000000 00000000 80000000 00000000 907152eb 78604841 c96f8ea5 7031759b
+ars4x32 10 00000000 00000000 00000080 00000000 00000000 00000000 80000000 00000000 6c0eb5d6 9772bd42 6dccfed2 53db859c
+ars4x32 10 00000000 00000000 0000ff00 00000000 00000000 00000000 80000000 00000000 6e69e34c 29510fff 3fe90368 87329159
+ars4x32 10 00000000 00000000 00008000 00000000 00000000 00000000 80000000 00000000 e327d823 6b2d3ecd 544a284b 79686d75
+ars4x32 10 00000000 00000000 00ff0000 00000000 00000000 00000000 80000000 00000000 9ba8cef6 e7f80e0c 4136bed0 12362d9a
+ars4x32 10 00000000 00000000 00800000 00000000 00000000 00000000 80000000 00000000 c0eed7ce 6eaf676a 66cf3cd4 20ee1258
+ars4x32 10 00000000 00000000 ff000000 00000000 00000000 00000000 80000000 00000000 e2a102ed 1306dfbd 18088d73 2ad203b3
+ars4x32 10 00000000 00000000 80000000 00000000 00000000 00000000 80000000 00000000 1f530db1 45344f8c e782dbd5 1a9e476f
+ars4x32 10 00000000 00000000 00000000 000000ff 00000000 00000000 80000000 00000000 4088a06b 4986fe43 0a37c474 99853bc9
+ars4x32 10 00000000 00000000 00000000 00000080 00000000 00000000 80000000 00000000 4a0bfe2d 6d38c858 71d3170e 871c4c6b
+ars4x32 10 00000000 00000000 00000000 0000ff00 00000000 00000000 80000000 00000000 a44728cf 99964d4e 6c11ef52 f261d9b1
+ars4x32 10 00000000 00000000 00000000 00008000 00000000 00000000 80000000 00000000 b7be56a8 29b7eb27 d0713407 1c015d45
+ars4x32 10 00000000 00000000 00000000 00ff0000 00000000 00000000 80000000 00000000 720f816b fc240128 6cf925c1 718ab1cd
+ars4x32 10 00000000 00000000 00000000 00800000 00000000 00000000 80000000 00000000 8d9b5126 ca07da70 04d57bbe 1bdc146f
+ars4x32 10 00000000 00000000 00000000 ff000000 00000000 00000000 80000000 00000000 f209882a cb81e957 d97f320f 03635b68
+ars4x32 10 00000000 00000000 00000000 80000000 00000000 00000000 80000000 00000000 63b7f67b 35533d6a acff5c1d e3c9e3d9
+ars4x32 10 886a3f24 d308a385 2e8a1913 44737003 00000000 00000000 80000000 00000000 7a532752 8f6680af 0db9bfab 0d33bcaa
+ars4x32 10 223809a4 d0319f29 98fa2e08 896c4eec 00000000 00000000 80000000 00000000 595aeda6 b34e1b64 0c119a13 00834623
+ars4x32 10 e6212845 7713d038 cf6654be 6c0ce934 00000000 00000000 80000000 00000000 cad2076a 85890ca8 c59dac90 549d1fce
+ars4x32 10 00000001 00000000 00000000 00000000 00000000 00000000 00000000 000000ff 33ffd0ef 0c0babaa 08eb61d8 976b28d3
+ars4x32 10 00000100 00000000 00000000 00000000 00000000 00000000 00000000 000000ff f7e104ab be0b3491 2397b283 b5a861b3
+ars4x32 10 00010000 00000000 00000000 00000000 00000000 00000000 00000000 000000ff 21816f54 5725716b 202fad3e 26c0da69
+ars4x32 10 01000000 00000000 00000000 00000000 00000000 00000000 00000000 000000ff a95bdf5a b791e42f dba8f277 cdaff870
+ars4x32 10 00000000 00000001 00000000 00000000 00000000 00000000 00000000 000000ff 74c668e6 295aa836 671e0057 809aac97
+ars4x32 10 00000000 00000100 00000000 00000000 00000000 00000000 00000000 000000ff 6c80bd64 1cf9a282 e07ae71a b7659073
+ars4x32 10 00000000 00010000 00000000 00000000 00000000 00000000 00000000 000000ff 99c28353 d7142627 6298578b c78e1cb5
+ars4x32 10 00000000 01000000 00000000 00000000 00000000 00000000 00000000 000000ff 4d150fd5 c4c7937e f8eaf05c 47c5de1f
+ars4x32 10 00000000 00000000 00000001 00000000 00000000 00000000 00000000 000000ff bef0c095 25d06762 ea140336 4033cc83
+ars4x32 10 00000000 00000000 00000100 00000000 00000000 00000000 00000000 000000ff 9ab8f614 5f5f8717 53a45bb0 b961b14b
+ars4x32 10 00000000 00000000 00010000 00000000 00000000 00000000 00000000 000000ff b9cc0441 c291dc7b 125608d4 a5e48b9a
+ars4x32 10 00000000 00000000 01000000 00000000 00000000 00000000 00000000 000000ff b20b345f b53497d8 98d069af fdc6ff85
+ars4x32 10 00000000 00000000 00000000 00000001 00000000 00000000 00000000 000000ff 6f4126ba d37262eb 948fc600 e0ad87db
+ars4x32 10 00000000 00000000 00000000 00000100 00000000 00000000 00000000 000000ff ee0a121c e2605764 b4441611 2f6213f9
+ars4x32 10 00000000 00000000 00000000 00010000 00000000 00000000 00000000 000000ff 3ecf3a05 fa6c6c61 e595463f 1dccb524
+ars4x32 10 00000000 00000000 00000000 01000000 00000000 00000000 00000000 000000ff 639dbb7f 92f573e3 fcbf4d49 d9b8a651
+ars4x32 10 0000ff00 00000000 00000000 00000000 00000000 00000000 00000000 000000ff edb11662 f32ccdb4 59b654a0 b4c156d2
+ars4x32 10 00008000 00000000 00000000 00000000 00000000 00000000 00000000 000000ff aab94b97 e10e41b8 caf908ba 26000a72
+ars4x32 10 00ff0000 00000000 00000000 00000000 00000000 00000000 00000000 000000ff 9e14dc32 072a4e95 907bafb9 1d7c7e56
+ars4x32 10 00800000 00000000 00000000 00000000 00000000 00000000 00000000 000000ff 8c8f6c05 2dd2144f 7b4b1890 2d33cd21
+ars4x32 10 ff000000 00000000 00000000 00000000 00000000 00000000 00000000 000000ff 2d70ad73 d2936e08 023a5229 27024f69
+ars4x32 10 80000000 00000000 00000000 00000000 00000000 00000000 00000000 000000ff d198566a 956e9f11 aff6033c b7a1e0d9
+ars4x32 10 00000000 000000ff 00000000 00000000 00000000 00000000 00000000 000000ff 8396e64c f66b5c04 2b3c5067 4984eca2
+ars4x32 10 00000000 00000080 00000000 00000000 00000000 00000000 00000000 000000ff 27a41963 ab27c91b 651acdf0 54996ecc
+ars4x32 10 00000000 0000ff00 00000000 00000000 00000000 00000000 00000000 000000ff 81109c08 9da13963 e6ce44b5 8ebc1ec0
+ars4x32 10 00000000 00008000 00000000 00000000 00000000 00000000 00000000 000000ff 893684a4 c76671cb 5ff2b138 26f596fc
+ars4x32 10 00000000 00ff0000 00000000 00000000 00000000 00000000 00000000 000000ff f270746c 8a659b14 2597b05b b41b8ac6
+ars4x32 10 00000000 00800000 00000000 00000000 00000000 00000000 00000000 000000ff 6fc87a80 b9b202a6 14861218 39aa8048
+ars4x32 10 00000000 ff000000 00000000 00000000 00000000 00000000 00000000 000000ff a3692a84 fd8f8dfa ce1ff290 16f88d25
+ars4x32 10 00000000 80000000 00000000 00000000 00000000 00000000 00000000 000000ff fbb888a1 4e8b803c 6cc94bef ddbef818
+ars4x32 10 00000000 00000000 000000ff 00000000 00000000 00000000 00000000 000000ff c7c4c6a9 c1bf2778 279d1ba1 7960de94
+ars4x32 10 00000000 00000000 00000080 00000000 00000000 00000000 00000000 000000ff 695878ca 94719854 9dd8d82d 99c457d5
+ars4x32 10 00000000 00000000 0000ff00 00000000 00000000 00000000 00000000 000000ff 41445324 58ecb758 96f36169 90bad6e1
+ars4x32 10 00000000 00000000 00008000 00000000 00000000 00000000 00000000 000000ff 260ffa79 d230efab a95ced9a afd4b25c
+ars4x32 10 00000000 00000000 00ff0000 00000000 00000000 00000000 00000000 000000ff 8fdb4fdc de0ca0da 72e24082 764ee577
+ars4x32 10 00000000 00000000 00800000 00000000 00000000 00000000 00000000 000000ff a59adf40 317e08bb 1099c6b6 aa74f87d
+ars4x32 10 00000000 00000000 ff000000 00000000 00000000 00000000 00000000 000000ff 36f8f5dc 512092ae c300df3a 45d4ddab
+ars4x32 10 00000000 00000000 80000000 00000000 00000000 00000000 00000000 000000ff 662321c2 2dc580ec f8c30280 ab2e2d6b
+ars4x32 10 00000000 00000000 00000000 000000ff 00000000 00000000 00000000 000000ff 198bc760 6fd7ee4e 8d5a18fc 49c316be
+ars4x32 10 00000000 00000000 00000000 00000080 00000000 00000000 00000000 000000ff a713a3f0 00daaee4 e3e8d3ec 7a7d7056
+ars4x32 10 00000000 00000000 00000000 0000ff00 00000000 00000000 00000000 000000ff d3633eb7 892b2455 19b1b392 569daedf
+ars4x32 10 00000000 00000000 00000000 00008000 00000000 00000000 00000000 000000ff 7694f06f ffca196c 92b6fcd1 ec177846
+ars4x32 10 00000000 00000000 00000000 00ff0000 00000000 00000000 00000000 000000ff 1c0e34f5 4eee2d80 65980ae9 732c4be2
+ars4x32 10 00000000 00000000 00000000 00800000 00000000 00000000 00000000 000000ff 6c83d21b e14ac358 0d1c78c2 78668cfa
+ars4x32 10 00000000 00000000 00000000 ff000000 00000000 00000000 00000000 000000ff c7b701c2 d2c32a77 fb9f7760 4f5157db
+ars4x32 10 00000000 00000000 00000000 80000000 00000000 00000000 00000000 000000ff 0454b442 2c74a5e4 945a81ac 7f9c1f7b
+ars4x32 10 886a3f24 d308a385 2e8a1913 44737003 00000000 00000000 00000000 000000ff cfdf7117 5c542fd4 92d2a507 81b674aa
+ars4x32 10 223809a4 d0319f29 98fa2e08 896c4eec 00000000 00000000 00000000 000000ff 19e70495 cfd13d17 35586663 1249a4ee
+ars4x32 10 e6212845 7713d038 cf6654be 6c0ce934 00000000 00000000 00000000 000000ff df69d37a 0c16d3a1 6b06175c 5c346c58
+ars4x32 10 00000001 00000000 00000000 00000000 00000000 00000000 00000000 00000080 441f8846 7805ddde 01d6501c 66965a55
+ars4x32 10 00000100 00000000 00000000 00000000 00000000 00000000 00000000 00000080 a4ea924d 9333f022 4c005326 811ad481
+ars4x32 10 00010000 00000000 00000000 00000000 00000000 00000000 00000000 00000080 1fff4f86 30488a15 3473582f 24afed44
+ars4x32 10 01000000 00000000 00000000 00000000 00000000 00000000 00000000 00000080 5b178f62 eccaa1aa 4dacef8b e120ecf3
+ars4x32 10 00000000 00000001 00000000 00000000 00000000 00000000 00000000 00000080 888cabaa e962affe d6b811e0 da8998cf
+ars4x32 10 00000000 00000100 00000000 00000000 00000000 00000000 00000000 00000080 01f6e1fa bcfe755b 59f405cb d3b9595d
+ars4x32 10 00000000 00010000 00000000 00000000 00000000 00000000 00000000 00000080 a92c805a 07f594c6 82b56f52 fd277e6c
+ars4x32 10 00000000 01000000 00000000 00000000 00000000 00000000 00000000 00000080 2814dfbf ef7a2f15 a63f540e 951ffd5f
+ars4x32 10 00000000 00000000 00000001 00000000 00000000 00000000 00000000 00000080 916a6b19 5c6539d6 2e042e51 f1067340
+ars4x32 10 00000000 00000000 00000100 00000000 00000000 00000000 00000000 00000080 61bf8f15 b1655376 2e585680 1910fb8d
+ars4x32 10 00000000 00000000 00010000 00000000 00000000 00000000 00000000 00000080 d823be54 c018af09 c83c8aa4 1acb9df7
+ars4x32 10 00000000 00000000 01000000 00000000 00000000 00000000 00000000 00000080 e475a6ec c5af66b1 9728aa88 3f22ffb6
+ars4x32 10 00000000 00000000 00000000 00000001 00000000 00000000 00000000 00000080 0d9f50c5 63a94f4b a5c20fb8 eac1b9c8
+ars4x32 10 00000000 00000000 00000000 00000100 00000000 00000000 00000000 00000080 6668bdc0 ac5a23df 080bc7fa bfdf8622
+ars4x32 10 00000000 00000000 00000000 00010000 00000000 00000000 00000000 00000080 d19d9045 2e79a915 94922bdd 1259c766
+ars4x32 10 00000000 00000000 00000000 01000000 00000000 00000000 00000000 00000080 bceba0f0 68947c27 0161f941 7de2146a
+ars4x32 10 0000ff00 00000000 00000000 00000000 00000000 00000000 00000000 00000080 efc230aa 41961f4d 12330650 a5b27be1
+ars4x32 10 00008000 00000000 00000000 00000000 00000000 00000000 00000000 00000080 438dc33d 39b01218 a0330845 93780676
+ars4x32 10 00ff0000 00000000 00000000 00000000 00000000 00000000 00000000 00000080 38e5e94b 259b59dd f0f5f46a fdb2ea7f
+ars4x32 10 00800000 00000000 00000000 00000000 00000000 00000000 00000000 00000080 e8cef36d 2b604c05 43b6c2a9 26d94cc6
+ars4x32 10 ff000000 00000000 00000000 00000000 00000000 00000000 00000000 00000080 106647b8 cfd28eb1 fd243ed7 89279207
+ars4x32 10 80000000 00000000 00000000 00000000 00000000 00000000 00000000 00000080 cfd7caf8 aa1dc211 f9ceba3f 09b3dde3
+ars4x32 10 00000000 000000ff 00000000 00000000 00000000 00000000 00000000 00000080 b80ba363 35897d3d bd0b0ae1 4a29e020
+ars4x32 10 00000000 00000080 00000000 00000000 00000000 00000000 00000000 00000080 454c62b8 04123d8b 53456512 a9c6eafa
+ars4x32 10 00000000 0000ff00 00000000 00000000 00000000 00000000 00000000 00000080 0d875fd4 3799d4b3 1ef0689a 19775936
+ars4x32 10 00000000 00008000 00000000 00000000 00000000 00000000 00000000 00000080 32793f33 3690320d fc0d04b9 45949259
+ars4x32 10 00000000 00ff0000 00000000 00000000 00000000 00000000 00000000 00000080 bb3e2980 a0b65de2 15bb7894 1c1624d5
+ars4x32 10 00000000 00800000 00000000 00000000 00000000 00000000 00000000 00000080 ee3efec8 3f12e6d5 3856536f 27d8042e
+ars4x32 10 00000000 ff000000 00000000 00000000 00000000 00000000 00000000 00000080 f951b734 5532181d c7e1f51c 3fa0c656
+ars4x32 10 00000000 80000000 00000000 00000000 00000000 00000000 00000000 00000080 0ca4b22f f7dbf66f a5920bf6 b23cf0b5
+ars4x32 10 00000000 00000000 000000ff 00000000 00000000 00000000 00000000 00000080 65e54190 2e8a5593 d8a9213e d5dfc748
+ars4x32 10 00000000 00000000 00000080 00000000 00000000 00000000 00000000 00000080 bee6b5b8 43957076 a6a35191 e559fdbb
+ars4x32 10 00000000 00000000 0000ff00 00000000 00000000 00000000 00000000 00000080 8012169a 0778bf27 46b2b0bd cbab0500
+ars4x32 10 00000000 00000000 00008000 00000000 00000000 00000000 00000000 00000080 9367dea7 e05cf125 dd1e32e1 3b33f515
+ars4x32 10 00000000 00000000 00ff0000 00000000 00000000 00000000 00000000 00000080 dd095a3b b2e80097 1541b57e 963aa5a9
+ars4x32 10 00000000 00000000 00800000 00000000 00000000 00000000 00000000 00000080 d6ec3e16 94364668 5237e175 c07a4ae7
+ars4x32 10 00000000 00000000 ff000000 00000000 00000000 00000000 00000000 00000080 c6479866 eda003f0 c72af0cf 8996bd8d
+ars4x32 10 00000000 00000000 80000000 00000000 00000000 00000000 00000000 00000080 fd76301e d114c666 eaabe38e a2ee1acf
+ars4x32 10 00000000 00000000 00000000 000000ff 00000000 00000000 00000000 00000080 cde36b1a 4bd149c4 49b4af8c bf6ad382
+ars4x32 10 00000000 00000000 00000000 00000080 00000000 00000000 00000000 00000080 e18c881c 7236049b 86ab2a17 7741d079
+ars4x32 10 00000000 00000000 00000000 0000ff00 00000000 00000000 00000000 00000080 a2b1485b 2d362f5d 70e37119 9dfe9263
+ars4x32 10 00000000 00000000 00000000 00008000 00000000 00000000 00000000 00000080 36ac4fcd 0f724248 457ec24f 7e7b9a01
+ars4x32 10 00000000 00000000 00000000 00ff0000 00000000 00000000 00000000 00000080 8a320fae a0ee0eb8 bee52539 d49ca440
+ars4x32 10 00000000 00000000 00000000 00800000 00000000 00000000 00000000 00000080 288480d9 073d5371 23cdb186 7061f0b1
+ars4x32 10 00000000 00000000 00000000 ff000000 00000000 00000000 00000000 00000080 04676afe 9bea090f aa0cf401 25ce78af
+ars4x32 10 00000000 00000000 00000000 80000000 00000000 00000000 00000000 00000080 373bddf2 dc759e42 06e04841 d7933fff
+ars4x32 10 886a3f24 d308a385 2e8a1913 44737003 00000000 00000000 00000000 00000080 0e2f4a16 f57c7ca6 fb4e4e01 bb68b93c
+ars4x32 10 223809a4 d0319f29 98fa2e08 896c4eec 00000000 00000000 00000000 00000080 9b3bf539 5e0f2816 95f0b29c b4388b10
+ars4x32 10 e6212845 7713d038 cf6654be 6c0ce934 00000000 00000000 00000000 00000080 36cbd4d4 53867fd4 c5414655 f86902e6
+ars4x32 10 00000001 00000000 00000000 00000000 00000000 00000000 00000000 0000ff00 2980bb5e 3c4ff48b cad6d110 93e28c48
+ars4x32 10 00000100 00000000 00000000 00000000 00000000 00000000 00000000 0000ff00 312e0c21 66863de4 38c7d0c3 0ff3214a
+ars4x32 10 00010000 00000000 00000000 00000000 00000000 00000000 00000000 0000ff00 95b94d16 e22e1a1f 9aa4d3a0 b054e524
+ars4x32 10 01000000 00000000 00000000 00000000 00000000 00000000 00000000 0000ff00 b28a787b bc920c57 3c391390 281e9428
+ars4x32 10 00000000 00000001 00000000 00000000 00000000 00000000 00000000 0000ff00 214588d9 9e5ecced a8fb6fba be9e731b
+ars4x32 10 00000000 00000100 00000000 00000000 00000000 00000000 00000000 0000ff00 eff22c55 84357d81 d153dcd8 bf81cca7
+ars4x32 10 00000000 00010000 00000000 00000000 00000000 00000000 00000000 0000ff00 61c77b2a 98dc4d28 01635a07 616bac16
+ars4x32 10 00000000 01000000 00000000 00000000 00000000 00000000 00000000 0000ff00 5d487e87 4fad2564 633ac064 9ffb8ccf
+ars4x32 10 00000000 00000000 00000001 00000000 00000000 00000000 00000000 0000ff00 a716fa17 d0fdb0e1 0332c62c ae3de920
+ars4x32 10 00000000 00000000 00000100 00000000 00000000 00000000 00000000 0000ff00 34eab877 9414be2a cb17472f f1559987
+ars4x32 10 00000000 00000000 00010000 00000000 00000000 00000000 00000000 0000ff00 46ec8cb1 8ed57197 e14dab1d 71fd3de5
+ars4x32 10 00000000 00000000 01000000 00000000 00000000 00000000 00000000 0000ff00 de09d251 890dbcbe 91552c2f 0969f34e
+ars4x32 10 00000000 00000000 00000000 00000001 00000000 00000000 00000000 0000ff00 c632f05c 217c5375 71edcdba 1f903697
+ars4x32 10 00000000 00000000 00000000 00000100 00000000 00000000 00000000 0000ff00 ad5f4d61 275baa40 837a4ba9 f9bc3b63
+ars4x32 10 00000000 00000000 00000000 00010000 00000000 00000000 00000000 0000ff00 7f9b6db4 cbdb9890 a4e63f50 dbcacc9d
+ars4x32 10 00000000 00000000 00000000 01000000 00000000 00000000 00000000 0000ff00 2a0094a1 23e30b4a 04bb601e bbd3cd3e
+ars4x32 10 0000ff00 00000000 00000000 00000000 00000000 00000000 00000000 0000ff00 f5724c8a 5056e5dc de3df5cd 8b0f7208
+ars4x32 10 00008000 00000000 00000000 00000000 00000000 00000000 00000000 0000ff00 3f47da17 060bf755 978efcee dc6ec630
+ars4x32 10 00ff0000 00000000 00000000 00000000 00000000 00000000 00000000 0000ff00 b166b082 d5fc1935 412a33cc 7fe5bdeb
+ars4x32 10 00800000 00000000 00000000 00000000 00000000 00000000 00000000 0000ff00 ec675656 0518c33b 5724d6d9 2a989266
+ars4x32 10 ff000000 00000000 00000000 00000000 00000000 00000000 00000000 0000ff00 0df3c708 be07f0ea 8736897c 46654b90
+ars4x32 10 80000000 00000000 00000000 00000000 00000000 00000000 00000000 0000ff00 4cdb44f2 4eb10192 85ed84e8 6fed9533
+ars4x32 10 00000000 000000ff 00000000 00000000 00000000 00000000 00000000 0000ff00 5b6ab4a6 8322cd4f 0256450b 250c608f
+ars4x32 10 00000000 00000080 00000000 00000000 00000000 00000000 00000000 0000ff00 f82a8df0 17a68ce6 57e4a9d3 3dd1575f
+ars4x32 10 00000000 0000ff00 00000000 00000000 00000000 00000000 00000000 0000ff00 1cc8256a 95df59dc 63098fae 7866ccc8
+ars4x32 10 00000000 00008000 00000000 00000000 00000000 00000000 00000000 0000ff00 e865b08e 7ddd6871 e3c02bef cd1893f4
+ars4x32 10 00000000 00ff0000 00000000 00000000 00000000 00000000 00000000 0000ff00 2b384e63 a9d3e4d6 ee7258cd e31778f1
+ars4x32 10 00000000 00800000 00000000 00000000 00000000 00000000 00000000 0000ff00 5db3377c e4475048 d82ad1c0 b0ccc4c6
+ars4x32 10 00000000 ff000000 00000000 00000000 00000000 00000000 00000000 0000ff00 25330c24 3fe84857 7a1a5f33 975eaa32
+ars4x32 10 00000000 80000000 00000000 00000000 00000000 00000000 00000000 0000ff00 f4db2e62 af485e1d 4f03d243 c668ad02
+ars4x32 10 00000000 00000000 000000ff 00000000 00000000 00000000 00000000 0000ff00 7ac0fcd2 81cea5e7 a9c50d20 cc6f3d71
+ars4x32 10 00000000 00000000 00000080 00000000 00000000 00000000 00000000 0000ff00 08e5ad77 fcd190c5 ee22854d bb3dbdaa
+ars4x32 10 00000000 00000000 0000ff00 00000000 00000000 00000000 00000000 0000ff00 1cf237e1 ed803394 31ad06dd b9d3def7
+ars4x32 10 00000000 00000000 00008000 00000000 00000000 00000000 00000000 0000ff00 63b7d290 da9032c0 9fa386bf 170e735f
+ars4x32 10 00000000 00000000 00ff0000 00000000 00000000 00000000 00000000 0000ff00 0c9db5ca d9b700e0 9633e409 32e90ccf
+ars4x32 10 00000000 00000000 00800000 00000000 00000000 00000000 00000000 0000ff00 a3596eb4 03a8793a d2046a69 f524015a
+ars4x32 10 00000000 00000000 ff000000 00000000 00000000 00000000 00000000 0000ff00 ce9c088d cac32294 1dcea918 70c68754
+ars4x32 10 00000000 00000000 80000000 00000000 00000000 00000000 00000000 0000ff00 30bf1275 033f5ce0 e5a937cc b8a92a63
+ars4x32 10 00000000 00000000 00000000 000000ff 00000000 00000000 00000000 0000ff00 00f4eadb 2c7de0ff 8cbddde5 100e5989
+ars4x32 10 00000000 00000000 00000000 00000080 00000000 00000000 00000000 0000ff00 07731ecf 8b9e331a 703f296e fec62773
+ars4x32 10 00000000 00000000 00000000 0000ff00 00000000 00000000 00000000 0000ff00 5a5857fe 540171a0 46420351 21377428
+ars4x32 10 00000000 00000000 00000000 00008000 00000000 00000000 00000000 0000ff00 bd1fb099 803e090a 6eae74e5 a6306414
+ars4x32 10 00000000 00000000 00000000 00ff0000 00000000 00000000 00000000 0000ff00 679a91e1 130b9bb9 c4149fe9 3cd42b79
+ars4x32 10 00000000 00000000 00000000 00800000 00000000 00000000 00000000 0000ff00 aa99531d cb58591d 5b8311c6 73dc851d
+ars4x32 10 00000000 00000000 00000000 ff000000 00000000 00000000 00000000 0000ff00 e468fa6d 537601a5 0736eb73 00cdfaf6
+ars4x32 10 00000000 00000000 00000000 80000000 00000000 00000000 00000000 0000ff00 5fea58d2 ffbe434a 6e460b2c f0da2415
+ars4x32 10 886a3f24 d308a385 2e8a1913 44737003 00000000 00000000 00000000 0000ff00 5d9c00e5 0a20546d 438080b5 ac7259a5
+ars4x32 10 223809a4 d0319f29 98fa2e08 896c4eec 00000000 00000000 00000000 0000ff00 ed43dcf1 29c33a47 8dc88e14 99a62820
+ars4x32 10 e6212845 7713d038 cf6654be 6c0ce934 00000000 00000000 00000000 0000ff00 c2d4e578 cd384c4d 320ac18d 60eefb71
+ars4x32 10 00000001 00000000 00000000 00000000 00000000 00000000 00000000 00008000 dc5b2a9a 0afef152 4cc6ce2b e496280e
+ars4x32 10 00000100 00000000 00000000 00000000 00000000 00000000 00000000 00008000 ce2452c9 d8746b9c 5fa4b592 676c01f6
+ars4x32 10 00010000 00000000 00000000 00000000 00000000 00000000 00000000 00008000 b2e83580 93092e6f 832452f0 9b71e0ec
+ars4x32 10 01000000 00000000 00000000 00000000 00000000 00000000 00000000 00008000 359a248d e0717f2f 966b85aa 1c3edbae
+ars4x32 10 00000000 00000001 00000000 00000000 00000000 00000000 00000000 00008000 c1498c85 1c5caa7d 927cfa28 c06b49ca
+ars4x32 10 00000000 00000100 00000000 00000000 00000000 00000000 00000000 00008000 bb49de96 49b1c65a 9f592b56 4b9e518a
+ars4x32 10 00000000 00010000 00000000 00000000 00000000 00000000 00000000 00008000 1818ca8d 5f7d9737 1c27d3b0 78dc7efa
+ars4x32 10 00000000 01000000 00000000 00000000 00000000 00000000 00000000 00008000 8e697715 f204f264 3ddbef0f b4d6acf4
+ars4x32 10 00000000 00000000 00000001 00000000 00000000 00000000 00000000 00008000 33792d55 6f3b4039 107ca94d faeb84ad
+ars4x32 10 00000000 00000000 00000100 00000000 00000000 00000000 00000000 00008000 8a1365ce a5573d6b 0d3dca48 70c61ecd
+ars4x32 10 00000000 00000000 00010000 00000000 00000000 00000000 00000000 00008000 3f92ba86 82d9540d 8ccf984e 6af3e6b3
+ars4x32 10 00000000 00000000 01000000 00000000 00000000 00000000 00000000 00008000 257fb510 2f8721de 4fd1b056 3b60363e
+ars4x32 10 00000000 00000000 00000000 00000001 00000000 00000000 00000000 00008000 bb700f86 7bdb19b3 9e11db4a 9beea8a4
+ars4x32 10 00000000 00000000 00000000 00000100 00000000 00000000 00000000 00008000 7ca7cb18 cdb73ae0 b3f297f1 aa17ae2f
+ars4x32 10 00000000 00000000 00000000 00010000 00000000 00000000 00000000 00008000 af439f17 1f7c8397 11fbac69 44eb3140
+ars4x32 10 00000000 00000000 00000000 01000000 00000000 00000000 00000000 00008000 3057672f 5d1f5c34 0f169cc5 a5e63f71
+ars4x32 10 0000ff00 00000000 00000000 00000000 00000000 00000000 00000000 00008000 56544e93 500aece7 58e47d5e f1a52735
+ars4x32 10 00008000 00000000 00000000 00000000 00000000 00000000 00000000 00008000 96b33f5d a134b4bc 91a8ebe8 7b23e4f0
+ars4x32 10 00ff0000 00000000 00000000 00000000 00000000 00000000 00000000 00008000 58c3c3ea 00fe987a cafbc39d d9c48178
+ars4x32 10 00800000 00000000 00000000 00000000 00000000 00000000 00000000 00008000 e420e4dd 6f693315 ac6f48be 9ef6d10c
+ars4x32 10 ff000000 00000000 00000000 00000000 00000000 00000000 00000000 00008000 86df5e20 f9559125 215f0b08 f5d3929e
+ars4x32 10 80000000 00000000 00000000 00000000 00000000 00000000 00000000 00008000 bb31badd c2618da6 d23fb278 b4bd3d10
+ars4x32 10 00000000 000000ff 00000000 00000000 00000000 00000000 00000000 00008000 8bac757b 5a3083a8 069c44d6 9174a0d0
+ars4x32 10 00000000 00000080 00000000 00000000 00000000 00000000 00000000 00008000 fe734946 d39c1fba 7f1ff519 15307785
+ars4x32 10 00000000 0000ff00 00000000 00000000 00000000 00000000 00000000 00008000 8a37c599 ec59f39b 44998ae3 0d5a394f
+ars4x32 10 00000000 00008000 00000000 00000000 00000000 00000000 00000000 00008000 4efca554 eb7e76b7 cd2d9623 36f0afe2
+ars4x32 10 00000000 00ff0000 00000000 00000000 00000000 00000000 00000000 00008000 8333d78e 5737cb50 1a0885ac c203ece1
+ars4x32 10 00000000 00800000 00000000 00000000 00000000 00000000 00000000 00008000 fc690244 15cf363a 503e643d 69a79d4d
+ars4x32 10 00000000 ff000000 00000000 00000000 00000000 00000000 00000000 00008000 31b20472 166c52bc 5b63968a 47133bce
+ars4x32 10 00000000 80000000 00000000 00000000 00000000 00000000 00000000 00008000 cd8574d8 1b115532 65daa911 706930fb
+ars4x32 10 00000000 00000000 000000ff 00000000 00000000 00000000 00000000 00008000 09ab4d96 2da926c6 e65bd1bd e1880ac9
+ars4x32 10 00000000 00000000 00000080 00000000 00000000 00000000 00000000 00008000 6dcb3eed 584a0e60 96dd3d0f 16fcef9b
+ars4x32 10 00000000 00000000 0000ff00 00000000 00000000 00000000 00000000 00008000 e3b63fa1 394cfae6 31d34bef ea6c7ba0
+ars4x32 10 00000000 00000000 00008000 00000000 00000000 00000000 00000000 00008000 51cb0477 5d484017 9e5a14ab e071ad23
+ars4x32 10 00000000 00000000 00ff0000 00000000 00000000 00000000 00000000 00008000 e7245aaf 0cd8556a 94525c59 cc84d991
+ars4x32 10 00000000 00000000 00800000 00000000 00000000 00000000 00000000 00008000 8561b8e7 af8a34ce f8be98d5 a68da87d
+ars4x32 10 00000000 00000000 ff000000 00000000 00000000 00000000 00000000 00008000 df20f930 275651ce a922c02b 4600bae3
+ars4x32 10 00000000 00000000 80000000 00000000 00000000 00000000 00000000 00008000 c067bc44 05061760 bf3b3abb 5f40267d
+ars4x32 10 00000000 00000000 00000000 000000ff 00000000 00000000 00000000 00008000 414f2d26 020e128c 4baea3f5 8bf858bf
+ars4x32 10 00000000 00000000 00000000 00000080 00000000 00000000 00000000 00008000 68c2b324 825c48dd 9a314db8 d03c0fbc
+ars4x32 10 00000000 00000000 00000000 0000ff00 00000000 00000000 00000000 00008000 81fc8b30 4c30c6f9 8c1303e7 1ce78a18
+ars4x32 10 00000000 00000000 00000000 00008000 00000000 00000000 00000000 00008000 31b85719 f187d654 09b1e0f6 b24a59aa
+ars4x32 10 00000000 00000000 00000000 00ff0000 00000000 00000000 00000000 00008000 ce669498 81c6a9b3 b7decc86 0568f8a7
+ars4x32 10 00000000 00000000 00000000 00800000 00000000 00000000 00000000 00008000 24293624 33cf83ee c99ade5a 4f6dbc01
+ars4x32 10 00000000 00000000 00000000 ff000000 00000000 00000000 00000000 00008000 699467f0 602914f1 73dba5fd 6e518a1a
+ars4x32 10 00000000 00000000 00000000 80000000 00000000 00000000 00000000 00008000 6e06bb5b 94088181 b8d7177c 8817e9c1
+ars4x32 10 886a3f24 d308a385 2e8a1913 44737003 00000000 00000000 00000000 00008000 2042d92e 54aa35dd 35ce06ee 5d805f84
+ars4x32 10 223809a4 d0319f29 98fa2e08 896c4eec 00000000 00000000 00000000 00008000 ef8a0eb8 d41d547f 0b2f495d 97f37acd
+ars4x32 10 e6212845 7713d038 cf6654be 6c0ce934 00000000 00000000 00000000 00008000 3933029f d9cf9fe5 59ce01da d11c35c8
+ars4x32 10 00000001 00000000 00000000 00000000 00000000 00000000 00000000 00ff0000 f3f46196 d11cae53 af61b8ee b22e6b3b
+ars4x32 10 00000100 00000000 00000000 00000000 00000000 00000000 00000000 00ff0000 6f3d9f29 76c3e022 e3727918 d589dc6d
+ars4x32 10 00010000 00000000 00000000 00000000 00000000 00000000 00000000 00ff0000 6b0e18a2 5ac5b5df 25fb5583 e3bf3c7c
+ars4x32 10 01000000 00000000 00000000 00000000 00000000 00000000 00000000 00ff0000 5b4c73fe 0b3f41ed 9ac98d5c baa8d82e
+ars4x32 10 00000000 00000001 00000000 00000000 00000000 00000000 00000000 00ff0000 a7049b58 deb285fc fc21d230 5f1c6147
+ars4x32 10 00000000 00000100 00000000 00000000 00000000 00000000 00000000 00ff0000 bfac55f9 02b0f828 807285e5 0376257a
+ars4x32 10 00000000 00010000 00000000 00000000 00000000 00000000 00000000 00ff0000 6c736849 eec20a20 77b2b107 55fa1de7
+ars4x32 10 00000000 01000000 00000000 00000000 00000000 00000000 00000000 00ff0000 d27272c1 85c6ff05 8567961f 74443e44
+ars4x32 10 00000000 00000000 00000001 00000000 00000000 00000000 00000000 00ff0000 da91acd2 71d9a6be 033ac1c4 12f26984
+ars4x32 10 00000000 00000000 00000100 00000000 00000000 00000000 00000000 00ff0000 626813a9 ce47f3d6 96d92c2d fa083734
+ars4x32 10 00000000 00000000 00010000 00000000 00000000 00000000 00000000 00ff0000 6225c1f8 1d45b19f 5176e440 b3ca458e
+ars4x32 10 00000000 00000000 01000000 00000000 00000000 00000000 00000000 00ff0000 5460ea28 b640c053 77469753 bee6cff7
+ars4x32 10 00000000 00000000 00000000 00000001 00000000 00000000 00000000 00ff0000 d2c422dd 3010efc5 b202f5d0 be05c6dd
+ars4x32 10 00000000 00000000 00000000 00000100 00000000 00000000 00000000 00ff0000 be9431a7 0911a5a4 bd2abe83 612f8586
+ars4x32 10 00000000 00000000 00000000 00010000 00000000 00000000 00000000 00ff0000 fb686a25 4ff2114c deb1c3b9 854ee3db
+ars4x32 10 00000000 00000000 00000000 01000000 00000000 00000000 00000000 00ff0000 61791f3a eda4ed85 0fef769c 8cb219ab
+ars4x32 10 0000ff00 00000000 00000000 00000000 00000000 00000000 00000000 00ff0000 662d6593 0dd2a51f 3df30975 881ae692
+ars4x32 10 00008000 00000000 00000000 00000000 00000000 00000000 00000000 00ff0000 b572dd2f b403b910 ddade016 68524bf8
+ars4x32 10 00ff0000 00000000 00000000 00000000 00000000 00000000 00000000 00ff0000 02df66b2 6844e2d4 c6a601ad 678e8471
+ars4x32 10 00800000 00000000 00000000 00000000 00000000 00000000 00000000 00ff0000 965e9a17 6141df53 2472c9e7 a2e94bb7
+ars4x32 10 ff000000 00000000 00000000 00000000 00000000 00000000 00000000 00ff0000 f7cfcaac f631f03d 78328e33 6c26b793
+ars4x32 10 80000000 00000000 00000000 00000000 00000000 00000000 00000000 00ff0000 93788181 6d25b373 cead0033 6ff7a44e
+ars4x32 10 00000000 000000ff 00000000 00000000 00000000 00000000 00000000 00ff0000 ae37fdd7 fdc156be 92955610 b13722b1
+ars4x32 10 00000000 00000080 00000000 00000000 00000000 00000000 00000000 00ff0000 4fce4684 22a96286 952f4e4b 974e97b3
+ars4x32 10 00000000 0000ff00 00000000 00000000 00000000 00000000 00000000 00ff0000 c6b16976 fd2c1fd0 b86c0899 d95ed223
+ars4x32 10 00000000 00008000 00000000 00000000 00000000 00000000 00000000 00ff0000 65129760 4c61b126 df0dd04d 8322c305
+ars4x32 10 00000000 00ff0000 00000000 00000000 00000000 00000000 00000000 00ff0000 04764b97 84f92827 1d8e42ab 162444fe
+ars4x32 10 00000000 00800000 00000000 00000000 00000000 00000000 00000000 00ff0000 8d08195b 8c7198d2 31d048ae df36c78e
+ars4x32 10 00000000 ff000000 00000000 00000000 00000000 00000000 00000000 00ff0000 7935ec55 74893e0a a38f531e e93402af
+ars4x32 10 00000000 80000000 00000000 00000000 00000000 00000000 00000000 00ff0000 c699a874 35cc0a22 acfd92ad 15dc044d
+ars4x32 10 00000000 00000000 000000ff 00000000 00000000 00000000 00000000 00ff0000 36fdddcc c9359a1d c2ac1dda 0db7e34f
+ars4x32 10 00000000 00000000 00000080 00000000 00000000 00000000 00000000 00ff0000 0e96dfbd 0f307501 8e70f586 dcf688d7
+ars4x32 10 00000000 00000000 0000ff00 00000000 00000000 00000000 00000000 00ff0000 8c821ea2 8f488d76 4f271e49 74890070
+ars4x32 10 00000000 00000000 00008000 00000000 00000000 00000000 00000000 00ff0000 d7c029b3 94aaf818 dbfa13c3 b7d8435c
+ars4x32 10 00000000 00000000 00ff0000 00000000 00000000 00000000 00000000 00ff0000 851d7dfc b9cb6acb cc3bda81 056f06ea
+ars4x32 10 00000000 00000000 00800000 00000000 00000000 00000000 00000000 00ff0000 86837cdc d5bba7d9 938abbda e8ab258d
+ars4x32 10 00000000 00000000 ff000000 00000000 00000000 00000000 00000000 00ff0000 ef8a2b6d 2bd164f7 ee06fc74 203fc944
+ars4x32 10 00000000 00000000 80000000 00000000 00000000 00000000 00000000 00ff0000 6f19f017 3b4ef67c 7be9a3c8 f858e684
+ars4x32 10 00000000 00000000 00000000 000000ff 00000000 00000000 00000000 00ff0000 f50a6906 d1d32a39 dc3756c6 c36cadad
+ars4x32 10 00000000 00000000 00000000 00000080 00000000 00000000 00000000 00ff0000 0842f1d8 db7fffdc def8c50c 6693b706
+ars4x32 10 00000000 00000000 00000000 0000ff00 00000000 00000000 00000000 00ff0000 bdf4fcbd 8bc60f49 55d3d3f5 bc6333cc
+ars4x32 10 00000000 00000000 00000000 00008000 00000000 00000000 00000000 00ff0000 7105df6e f5ffee84 b5137ddf 6aef0f35
+ars4x32 10 00000000 00000000 00000000 00ff0000 00000000 00000000 00000000 00ff0000 c1f4a96d cadeb327 221fba3b c64dc031
+ars4x32 10 00000000 00000000 00000000 00800000 00000000 00000000 00000000 00ff0000 442c7b1b 65ce7736 338602d5 5cabab3f
+ars4x32 10 00000000 00000000 00000000 ff000000 00000000 00000000 00000000 00ff0000 be3e7800 996bba5f 58e5821e 4e4924e3
+ars4x32 10 00000000 00000000 00000000 80000000 00000000 00000000 00000000 00ff0000 7d1317c5 2d1e0b31 2bd4b871 a4cf6b92
+ars4x32 10 886a3f24 d308a385 2e8a1913 44737003 00000000 00000000 00000000 00ff0000 53c36f2d 8d53f6ef 53113e46 04a659e0
+ars4x32 10 223809a4 d0319f29 98fa2e08 896c4eec 00000000 00000000 00000000 00ff0000 3c543e7c 261edcd4 726dfbf3 c8d99a69
+ars4x32 10 e6212845 7713d038 cf6654be 6c0ce934 00000000 00000000 00000000 00ff0000 ea418a97 139c31e5 ac9b19ba aa538a8e
+ars4x32 10 00000001 00000000 00000000 00000000 00000000 00000000 00000000 00800000 42046aaf b91498a5 6a259a16 b3eb3a2e
+ars4x32 10 00000100 00000000 00000000 00000000 00000000 00000000 00000000 00800000 fd625108 b17ba275 97886513 21ad40a9
+ars4x32 10 00010000 00000000 00000000 00000000 00000000 00000000 00000000 00800000 aafef5bb 62b249f9 8b0aa44f 45e468f8
+ars4x32 10 01000000 00000000 00000000 00000000 00000000 00000000 00000000 00800000 ec330007 44aa0288 25be9228 d5f8e13f
+ars4x32 10 00000000 00000001 00000000 00000000 00000000 00000000 00000000 00800000 673aceb7 7ca9ae9f d83907e6 7e9256bc
+ars4x32 10 00000000 00000100 00000000 00000000 00000000 00000000 00000000 00800000 5676e018 edcf0a72 bea8a741 f795cda6
+ars4x32 10 00000000 00010000 00000000 00000000 00000000 00000000 00000000 00800000 6d5d7593 d401b974 6a0f1bba ed12286c
+ars4x32 10 00000000 01000000 00000000 00000000 00000000 00000000 00000000 00800000 0ae1d756 b94312b5 5675a578 5b4a46c4
+ars4x32 10 00000000 00000000 00000001 00000000 00000000 00000000 00000000 00800000 1bd24cc0 e8080a9d 0ecbb72b f3a76d57
+ars4x32 10 00000000 00000000 00000100 00000000 00000000 00000000 00000000 00800000 3966784c 7dc969a3 44eb558b 8961e6dd
+ars4x32 10 00000000 00000000 00010000 00000000 00000000 00000000 00000000 00800000 73b4879c eace0901 4cc1cafb 8553c489
+ars4x32 10 00000000 00000000 01000000 00000000 00000000 00000000 00000000 00800000 e80a74ba 362da2ef ef2d5659 e533ba90
+ars4x32 10 00000000 00000000 00000000 00000001 00000000 00000000 00000000 00800000 5e55ee55 3f4e0282 031ca33c 21b48f8e
+ars4x32 10 00000000 00000000 00000000 00000100 00000000 00000000 00000000 00800000 93f70128 e5821be3 50409b66 0897ccad
+ars4x32 10 00000000 00000000 00000000 00010000 00000000 00000000 00000000 00800000 bd19830e a5960c21 7fd3aa66 147d3108
+ars4x32 10 00000000 00000000 00000000 01000000 00000000 00000000 00000000 00800000 91808867 737d2300 62bfc781 9de2d107
+ars4x32 10 0000ff00 00000000 00000000 00000000 00000000 00000000 00000000 00800000 3771eb8b c3b77eed e250ecf5 5c5eb4fd
+ars4x32 10 00008000 00000000 00000000 00000000 00000000 00000000 00000000 00800000 f09b7b64 56f85b75 f6bf2b80 9b0cc239
+ars4x32 10 00ff0000 00000000 00000000 00000000 00000000 00000000 00000000 00800000 93139c5c 96ccedb3 8b7391ff d0119d20
+ars4x32 10 00800000 00000000 00000000 00000000 00000000 00000000 00000000 00800000 a59252d0 3c860eaf b7ad1fc4 f978a8d1
+ars4x32 10 ff000000 00000000 00000000 00000000 00000000 00000000 00000000 00800000 159c5ad0 8d3752f2 5e4e902d c0e4e886
+ars4x32 10 80000000 00000000 00000000 00000000 00000000 00000000 00000000 00800000 8aa631f8 069ae5ab 0008b3f9 60404759
+ars4x32 10 00000000 000000ff 00000000 00000000 00000000 00000000 00000000 00800000 a34f31cb 506b2397 89f24851 e15455d3
+ars4x32 10 00000000 00000080 00000000 00000000 00000000 00000000 00000000 00800000 aa3133ac 1e2abffd ba03d968 7fd7861c
+ars4x32 10 00000000 0000ff00 00000000 00000000 00000000 00000000 00000000 00800000 19d0a84f f97c0cec b2524039 aaffe800
+ars4x32 10 00000000 00008000 00000000 00000000 00000000 00000000 00000000 00800000 c2ea9b6d 27c10f71 a6896dfd 2050fcac
+ars4x32 10 00000000 00ff0000 00000000 00000000 00000000 00000000 00000000 00800000 ec8aa5b3 cb97a73e 7aaf19c1 035d9258
+ars4x32 10 00000000 00800000 00000000 00000000 00000000 00000000 00000000 00800000 50da963d 0e7a7178 5953710a b025b96f
+ars4x32 10 00000000 ff000000 00000000 00000000 00000000 00000000 00000000 00800000 b4b91bc5 628a3b09 8187bf2c d218b973
+ars4x32 10 00000000 80000000 00000000 00000000 00000000 00000000 00000000 00800000 e701a2de fe5f816a 76ae8ffa f5e8a4d7
+ars4x32 10 00000000 00000000 000000ff 00000000 00000000 00000000 00000000 00800000 c851d186 92d4ae9d 8ebd58d4 beb32d60
+ars4x32 10 00000000 00000000 00000080 00000000 00000000 00000000 00000000 00800000 44b837e3 8f5d1220 465dce59 4beb067f
+ars4x32 10 00000000 00000000 0000ff00 00000000 00000000 00000000 00000000 00800000 312dfdd7 dc15914d d3365f15 bae1edcb
+ars4x32 10 00000000 00000000 00008000 00000000 00000000 00000000 00000000 00800000 ae8c17d8 1a855cba 066ecafc abd9a392
+ars4x32 10 00000000 00000000 00ff0000 00000000 00000000 00000000 00000000 00800000 35caf6a0 b779a7e5 963fd0f5 530f640c
+ars4x32 10 00000000 00000000 00800000 00000000 00000000 00000000 00000000 00800000 44ec39e9 1b7bc783 34a68e2a 216e372c
+ars4x32 10 00000000 00000000 ff000000 00000000 00000000 00000000 00000000 00800000 b92eb27e e15ccf20 df0da553 3d94e19b
+ars4x32 10 00000000 00000000 80000000 00000000 00000000 00000000 00000000 00800000 e9f64c3a fe517c12 13b493f4 606fbfbb
+ars4x32 10 00000000 00000000 00000000 000000ff 00000000 00000000 00000000 00800000 d4ae37ff b9d776d0 7dd5d17b 1c692adc
+ars4x32 10 00000000 00000000 00000000 00000080 00000000 00000000 00000000 00800000 18d6c6fc 95ca9ec2 efbb03cd 45efbadf
+ars4x32 10 00000000 00000000 00000000 0000ff00 00000000 00000000 00000000 00800000 5cdc4bd5 ad3f779d 2e66cd6e 3d02b112
+ars4x32 10 00000000 00000000 00000000 00008000 00000000 00000000 00000000 00800000 02baadd8 220a382f 810b2330 81b9b93c
+ars4x32 10 00000000 00000000 00000000 00ff0000 00000000 00000000 00000000 00800000 37e2e70a ee2871ac 2a5a8ac9 cc44e32b
+ars4x32 10 00000000 00000000 00000000 00800000 00000000 00000000 00000000 00800000 3eceab21 6056d03c 8c05d55e e088c124
+ars4x32 10 00000000 00000000 00000000 ff000000 00000000 00000000 00000000 00800000 4fc8c7bc 3d1c046d 275bc435 81346eab
+ars4x32 10 00000000 00000000 00000000 80000000 00000000 00000000 00000000 00800000 6659edac 26290dd5 0a3e3455 b31a2be3
+ars4x32 10 886a3f24 d308a385 2e8a1913 44737003 00000000 00000000 00000000 00800000 e6c0191d 261dcebc d41bbe82 8e6e9730
+ars4x32 10 223809a4 d0319f29 98fa2e08 896c4eec 00000000 00000000 00000000 00800000 197b4a3b ef928010 96e75bd3 a2d1e856
+ars4x32 10 e6212845 7713d038 cf6654be 6c0ce934 00000000 00000000 00000000 00800000 e7b8e74d 038826eb 03a47ad1 4ac33455
+ars4x32 10 00000001 00000000 00000000 00000000 00000000 00000000 00000000 ff000000 27b00d10 76eeb5fe 30fea418 02742412
+ars4x32 10 00000100 00000000 00000000 00000000 00000000 00000000 00000000 ff000000 fd72843d 364facaf 6f610ab5 a3b54a17
+ars4x32 10 00010000 00000000 00000000 00000000 00000000 00000000 00000000 ff000000 77e3bb3f 612cad81 f7568471 a28cf424
+ars4x32 10 01000000 00000000 00000000 00000000 00000000 00000000 00000000 ff000000 c516b0a8 c9b2ac37 8386050b 7ab691ff
+ars4x32 10 00000000 00000001 00000000 00000000 00000000 00000000 00000000 ff000000 35c207f6 29adeb17 53c324da 2ee41036
+ars4x32 10 00000000 00000100 00000000 00000000 00000000 00000000 00000000 ff000000 64d4c6f5 51a9f791 99290f8e 5dadfe9f
+ars4x32 10 00000000 00010000 00000000 00000000 00000000 00000000 00000000 ff000000 06395df1 78ef47c2 3611e5d3 c858d573
+ars4x32 10 00000000 01000000 00000000 00000000 00000000 00000000 00000000 ff000000 2db4b9d2 48766956 84e31755 75eff4b7
+ars4x32 10 00000000 00000000 00000001 00000000 00000000 00000000 00000000 ff000000 f7a2dafc 4227e584 db7eb815 fc23888e
+ars4x32 10 00000000 00000000 00000100 00000000 00000000 00000000 00000000 ff000000 8241b04f 294be7c6 77da5fbc 1d297fe7
+ars4x32 10 00000000 00000000 00010000 00000000 00000000 00000000 00000000 ff000000 9f195b14 d92996f6 ccf2d097 282d3d82
+ars4x32 10 00000000 00000000 01000000 00000000 00000000 00000000 00000000 ff000000 8c03f471 c325a44e af4cf54d 818945ac
+ars4x32 10 00000000 00000000 00000000 00000001 00000000 00000000 00000000 ff000000 538b8502 3da680b4 4ba5207a ff17a65e
+ars4x32 10 00000000 00000000 00000000 00000100 00000000 00000000 00000000 ff000000 0bbf6ebf 277560b4 ebcbc2eb 62cf1bd2
+ars4x32 10 00000000 00000000 00000000 00010000 00000000 00000000 00000000 ff000000 00e77ac0 277dc0dc 2323de1e c4d15453
+ars4x32 10 00000000 00000000 00000000 01000000 00000000 00000000 00000000 ff000000 e679e1e6 78b4356b d50ac033 7ba1b8ef
+ars4x32 10 0000ff00 00000000 00000000 00000000 00000000 00000000 00000000 ff000000 76d2f408 b92d7e94 15ef11ff fc6057c4
+ars4x32 10 00008000 00000000 00000000 00000000 00000000 00000000 00000000 ff000000 c69cb78e 69407a3c 4fe5a98a b278c6b9
+ars4x32 10 00ff0000 00000000 00000000 00000000 00000000 00000000 00000000 ff000000 4952fdd0 05239ddb b842ce7d f3707c1f
+ars4x32 10 00800000 00000000 00000000 00000000 00000000 00000000 00000000 ff000000 e93dbade d6ad32cd 0cedc6e8 dbe27d0d
+ars4x32 10 ff000000 00000000 00000000 00000000 00000000 00000000 00000000 ff000000 d418902a e8718bef 411592de 89d0b3f6
+ars4x32 10 80000000 00000000 00000000 00000000 00000000 00000000 00000000 ff000000 f0c0139a 4cecb0b3 3dd22f10 82a32996
+ars4x32 10 00000000 000000ff 00000000 00000000 00000000 00000000 00000000 ff000000 6879fd3b dcd3090c cd76e918 9763aa16
+ars4x32 10 00000000 00000080 00000000 00000000 00000000 00000000 00000000 ff000000 006ca0cb 05501fdb 5b52dd6d 659411d8
+ars4x32 10 00000000 0000ff00 00000000 00000000 00000000 00000000 00000000 ff000000 0148bb9c dd798f1a 510eb47b 20046ca7
+ars4x32 10 00000000 00008000 00000000 00000000 00000000 00000000 00000000 ff000000 b8bd5381 14cda4be 07e491e2 36e08dc9
+ars4x32 10 00000000 00ff0000 00000000 00000000 00000000 00000000 00000000 ff000000 882d166f f0c359dc b21dc4a4 053a5ee3
+ars4x32 10 00000000 00800000 00000000 00000000 00000000 00000000 00000000 ff000000 301a4295 e655143d 6dd028ad fedda3ac
+ars4x32 10 00000000 ff000000 00000000 00000000 00000000 00000000 00000000 ff000000 688a4524 7aaabc09 25b5a1b5 08088fa9
+ars4x32 10 00000000 80000000 00000000 00000000 00000000 00000000 00000000 ff000000 c17b1d49 cc5607a9 21ee2dfe 95a99bff
+ars4x32 10 00000000 00000000 000000ff 00000000 00000000 00000000 00000000 ff000000 2aced990 38892fc6 49e2b4c6 3a52a56f
+ars4x32 10 00000000 00000000 00000080 00000000 00000000 00000000 00000000 ff000000 0fa8f694 e50536aa 8b05a5ea 30391e50
+ars4x32 10 00000000 00000000 0000ff00 00000000 00000000 00000000 00000000 ff000000 ede36e48 e2d7501d 0fbdb070 d7611f60
+ars4x32 10 00000000 00000000 00008000 00000000 00000000 00000000 00000000 ff000000 ed6e7836 13d33ce8 2ec70ea2 4b7458e3
+ars4x32 10 00000000 00000000 00ff0000 00000000 00000000 00000000 00000000 ff000000 6180aae3 f456e639 31a87e11 c85999b0
+ars4x32 10 00000000 00000000 00800000 00000000 00000000 00000000 00000000 ff000000 b0f72296 b437656f 0c6c13af 42269ae3
+ars4x32 10 00000000 00000000 ff000000 00000000 00000000 00000000 00000000 ff000000 8992f96a 38f12202 b145b3e0 4b22b7df
+ars4x32 10 00000000 00000000 80000000 00000000 00000000 00000000 00000000 ff000000 e3266f68 75e172c8 4e627e57 2f18974e
+ars4x32 10 00000000 00000000 00000000 000000ff 00000000 00000000 00000000 ff000000 43f0eb04 f210d529 0a8bf0ce 38681023
+ars4x32 10 00000000 00000000 00000000 00000080 00000000 00000000 00000000 ff000000 8bc32dfc 73fda05d 6150a6a3 55f1806c
+ars4x32 10 00000000 00000000 00000000 0000ff00 00000000 00000000 00000000 ff000000 cc8357d2 581e8348 460a644c 509d3ec2
+ars4x32 10 00000000 00000000 00000000 00008000 00000000 00000000 00000000 ff000000 3e3698b8 c03b8b6f 1fca337d e8290c22
+ars4x32 10 00000000 00000000 00000000 00ff0000 00000000 00000000 00000000 ff000000 cf661d8e f1adc07c c6751ffb 2b670e1e
+ars4x32 10 00000000 00000000 00000000 00800000 00000000 00000000 00000000 ff000000 8b05dbd5 3cb2ff22 fdd8ce3b f863a7e6
+ars4x32 10 00000000 00000000 00000000 ff000000 00000000 00000000 00000000 ff000000 8cb4ba53 7ed4b1f4 75c5c0b3 2df76a1a
+ars4x32 10 00000000 00000000 00000000 80000000 00000000 00000000 00000000 ff000000 3eef466a 0224052f acd47be6 9aba9889
+ars4x32 10 886a3f24 d308a385 2e8a1913 44737003 00000000 00000000 00000000 ff000000 73fb0705 020ccd4e 85f36527 d8c79692
+ars4x32 10 223809a4 d0319f29 98fa2e08 896c4eec 00000000 00000000 00000000 ff000000 2c3fe25f 3a57e7ee bc1827bd 6b3d18b0
+ars4x32 10 e6212845 7713d038 cf6654be 6c0ce934 00000000 00000000 00000000 ff000000 8bbcd0b2 6ee1140a 73e65601 21fb1ba7
+ars4x32 10 00000001 00000000 00000000 00000000 00000000 00000000 00000000 80000000 fb029bde c66dcda0 d5e37e9e b16153f4
+ars4x32 10 00000100 00000000 00000000 00000000 00000000 00000000 00000000 80000000 c8628b14 65dd32ad 9df2d576 84590ee0
+ars4x32 10 00010000 00000000 00000000 00000000 00000000 00000000 00000000 80000000 56abd8fd 08eb9fbe c7c0e3ef 7ebe6a02
+ars4x32 10 01000000 00000000 00000000 00000000 00000000 00000000 00000000 80000000 86d7ca0a 10293363 a91e2acf 41cb60cd
+ars4x32 10 00000000 00000001 00000000 00000000 00000000 00000000 00000000 80000000 2cbc07ec 78f6ebc0 e178d485 e1bd2a79
+ars4x32 10 00000000 00000100 00000000 00000000 00000000 00000000 00000000 80000000 fc0dd527 5525a559 b82ec796 3fce8b27
+ars4x32 10 00000000 00010000 00000000 00000000 00000000 00000000 00000000 80000000 35f94c49 dcec4494 b32b5591 607c35ae
+ars4x32 10 00000000 01000000 00000000 00000000 00000000 00000000 00000000 80000000 223ecea6 9c6b82b9 8cda2ead fbdb3669
+ars4x32 10 00000000 00000000 00000001 00000000 00000000 00000000 00000000 80000000 60302545 19be4945 ed1f61af 47ed7642
+ars4x32 10 00000000 00000000 00000100 00000000 00000000 00000000 00000000 80000000 1e3c6ed3 1a6d28f8 e927216b 6983fe5f
+ars4x32 10 00000000 00000000 00010000 00000000 00000000 00000000 00000000 80000000 64ec8748 bc735a79 154db177 98d6e304
+ars4x32 10 00000000 00000000 01000000 00000000 00000000 00000000 00000000 80000000 eb8dbaaa c8d657ba 157635c4 cd8027b1
+ars4x32 10 00000000 00000000 00000000 00000001 00000000 00000000 00000000 80000000 006d78b1 3240f565 1591df9a 3920f3a9
+ars4x32 10 00000000 00000000 00000000 00000100 00000000 00000000 00000000 80000000 e63ae4b3 f4a20e6a b06cb99c ab9ebae3
+ars4x32 10 00000000 00000000 00000000 00010000 00000000 00000000 00000000 80000000 0d0a1f5f 8b52c922 b655a04d 154509fb
+ars4x32 10 00000000 00000000 00000000 01000000 00000000 00000000 00000000 80000000 4f955239 57ea76d1 2ed261e8 6665c61f
+ars4x32 10 0000ff00 00000000 00000000 00000000 00000000 00000000 00000000 80000000 167a4885 bdd9d560 44901710 a1db3fef
+ars4x32 10 00008000 00000000 00000000 00000000 00000000 00000000 00000000 80000000 01303e4d cc35c236 602a988b 67b25d16
+ars4x32 10 00ff0000 00000000 00000000 00000000 00000000 00000000 00000000 80000000 d59d1ae1 201cf528 ca644f98 c863c919
+ars4x32 10 00800000 00000000 00000000 00000000 00000000 00000000 00000000 80000000 a64ddf44 b9181f8f 08467b4c 0bddb7e5
+ars4x32 10 ff000000 00000000 00000000 00000000 00000000 00000000 00000000 80000000 1803efc8 007c2e15 25833640 8e7345c3
+ars4x32 10 80000000 00000000 00000000 00000000 00000000 00000000 00000000 80000000 5a9b7d60 6ea2901e 78003e60 8942fbf4
+ars4x32 10 00000000 000000ff 00000000 00000000 00000000 00000000 00000000 80000000 29d3113a 43eaba4a 2758c58e 8fff4986
+ars4x32 10 00000000 00000080 00000000 00000000 00000000 00000000 00000000 80000000 c403cb6c b87ce89f ddc5a406 eb5c0ea4
+ars4x32 10 00000000 0000ff00 00000000 00000000 00000000 00000000 00000000 80000000 e7c4b1fa b544220c f4049712 84c85034
+ars4x32 10 00000000 00008000 00000000 00000000 00000000 00000000 00000000 80000000 dea49ca5 785d289e f24509fb 37a561d4
+ars4x32 10 00000000 00ff0000 00000000 00000000 00000000 00000000 00000000 80000000 39a9c229 b37e81f3 25136a6b 31f8df5d
+ars4x32 10 00000000 00800000 00000000 00000000 00000000 00000000 00000000 80000000 c6a48363 d638f93c 0f7e20a0 2aa2107f
+ars4x32 10 00000000 ff000000 00000000 00000000 00000000 00000000 00000000 80000000 6e32daa1 77487aa8 981c7542 45c89ac2
+ars4x32 10 00000000 80000000 00000000 00000000 00000000 00000000 00000000 80000000 24b7ff04 54a379cd 54105878 5e699328
+ars4x32 10 00000000 00000000 000000ff 00000000 00000000 00000000 00000000 80000000 4a217568 5ab95f01 c470dd0e cc312296
+ars4x32 10 00000000 00000000 00000080 00000000 00000000 00000000 00000000 80000000 59f4e457 b3b2944d 2db60de7 5d6596c5
+ars4x32 10 00000000 00000000 0000ff00 00000000 00000000 00000000 00000000 80000000 6291ff37 e4ec1241 2c6b7ea5 070f2af3
+ars4x32 10 00000000 00000000 00008000 00000000 00000000 00000000 00000000 80000000 c52c541e 96b8b03e 29020434 07b8b52e
+ars4x32 10 00000000 00000000 00ff0000 00000000 00000000 00000000 00000000 80000000 1d9ca290 d22df559 677b4219 211115fd
+ars4x32 10 00000000 00000000 00800000 00000000 00000000 00000000 00000000 80000000 8b22d574 a1cffe3d 9c70e4c4 4d39249d
+ars4x32 10 00000000 00000000 ff000000 00000000 00000000 00000000 00000000 80000000 198c7bbb c5fc8419 46ddb6b8 f63f407b
+ars4x32 10 00000000 00000000 80000000 00000000 00000000 00000000 00000000 80000000 f07ea702 360cb148 72e5e1fa e903112e
+ars4x32 10 00000000 00000000 00000000 000000ff 00000000 00000000 00000000 80000000 b117d222 cb3f5001 c5eb6c25 7440f4e5
+ars4x32 10 00000000 00000000 00000000 00000080 00000000 00000000 00000000 80000000 f062efce 07b8dae5 6e487b3c ee17a039
+ars4x32 10 00000000 00000000 00000000 0000ff00 00000000 00000000 00000000 80000000 93345860 df9ce586 7c8b5ff3 1028ea8a
+ars4x32 10 00000000 00000000 00000000 00008000 00000000 00000000 00000000 80000000 f7ae5400 234e6d34 aa1e51c0 cdf51bd4
+ars4x32 10 00000000 00000000 00000000 00ff0000 00000000 00000000 00000000 80000000 df755c0e 4842b68b a3d26d09 b1e5d506
+ars4x32 10 00000000 00000000 00000000 00800000 00000000 00000000 00000000 80000000 dc546bee be2edfda 2887d5b6 39e817e9
+ars4x32 10 00000000 00000000 00000000 ff000000 00000000 00000000 00000000 80000000 e9375d82 8c142da5 cdf4bffe 421e1845
+ars4x32 10 00000000 00000000 00000000 80000000 00000000 00000000 00000000 80000000 a0e70327 7caee527 6a428c61 3c4f3840
+ars4x32 10 886a3f24 d308a385 2e8a1913 44737003 00000000 00000000 00000000 80000000 b80e41ea 4a1fa670 348659dd ee801943
+ars4x32 10 223809a4 d0319f29 98fa2e08 896c4eec 00000000 00000000 00000000 80000000 020ddcdd 4a5fbd4f 03373d33 9415f871
+ars4x32 10 e6212845 7713d038 cf6654be 6c0ce934 00000000 00000000 00000000 80000000 d45af446 218fe8d8 47653a38 a1d863e2
diff --git a/examples/pi_aes.cpp b/examples/pi_aes.cpp
new file mode 100644
index 0000000..6b1b2cc
--- /dev/null
+++ b/examples/pi_aes.cpp
@@ -0,0 +1,83 @@
+/*
+Copyright 2010-2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#include <Random123/aes.h>
+#include <stdio.h>
+#include <assert.h>
+using namespace r123;
+
+// Everyone's favorite PRNG example: calculate pi/4 by throwing darts
+// at a square board and counting the fraction that are inside the
+// inscribed circle.
+
+// This version uses the C++ API to AESNI.
+
+#include "pi_check.h"
+
+int main(int, char **){
+#if R123_USE_AES_NI
+    unsigned long hits = 0, tries = 0;
+    const int64_t two_to_the_62 = ((int64_t)1)<<62;
+
+    if (!haveAESNI()) {
+	std::cerr << "AES-NI instructions not available on this hardware, skipping the pi_aes test." << std::endl;
+        return 0;
+    }
+    typedef AESNI4x32 G;
+    G generator;
+    G::ukey_type ukey = {{0x11111111, 0x22222222, 0x33333333, 0x44444444}};
+    // The key_type constructor transforms the 128bit AES ukey_type to an expanded (1408bit) form.
+    G::key_type key = ukey;
+    G::ctr_type ctr = {{0xdeadbeef, 0xbeadcafe, 0x12345678, 0x90abcdef}};
+
+    printf("Throwing %lu darts at a square board using AESNI4x32\n", NTRIES);
+    std::cout << "Initializing AES key with userkey: " << std::hex << ukey << " ctr: " << ctr << std::endl;
+
+    while(tries < NTRIES){
+        ctr.incr();
+        G::ctr_type r = generator(ctr, key);
+	if (tries == 0) {
+	    std::cout << "first random from AESNI is " << std::hex << r << std::endl;;
+	}
+        for(size_t j=0; j<r.size(); j+=2){
+            int64_t x = (int32_t)r[j];
+            int64_t y = (int32_t)r[j+1];
+            if( (x*x + y*y) < two_to_the_62 )
+                hits++;
+            tries++;
+        }
+    }
+    return pi_check(hits, tries);
+#else
+    std::cout << "AESNI RNG not compiled into this binary, skipping the pi_aes test.\n";
+    return 0;	// Not a failure to not have AESNI compiled into this.
+#endif
+}
diff --git a/examples/pi_capi.c b/examples/pi_capi.c
new file mode 100644
index 0000000..78d34e5
--- /dev/null
+++ b/examples/pi_capi.c
@@ -0,0 +1,78 @@
+/*
+Copyright 2010-2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#include <Random123/threefry.h>
+#include <stdio.h>
+#include <assert.h>
+
+/* Everyone's favorite PRNG example: calculate pi/4 by throwing darts
+// at a square board and counting the fraction that are inside the
+// inscribed circle.
+
+// This version uses the C API to threefry2x64. */
+
+#include "pi_check.h"
+
+int main(int argc, char **argv){
+    unsigned long hits = 0, tries = 0;
+    const int64_t two_to_the_62 = ((int64_t)1)<<62;
+
+    threefry2x64_key_t key = {{0, 0}};
+    threefry2x64_ctr_t ctr = {{0, 0}};
+    enum { int32s_per_counter = sizeof(ctr)/sizeof(int32_t) };
+    (void)argc;(void)argv; /* unused  */
+
+    printf("Throwing %lu darts at a square board using threefry2x64\n", NTRIES);
+
+    /* make the most of each bijection by looping over as many
+       int32_t's as we can find in the ctr_type. */
+    assert( int32s_per_counter%2 == 0 );
+    while(tries < NTRIES){
+        /* Use a union to avoid strict aliasing issues. */
+        union{
+            threefry2x64_ctr_t ct;
+            int32_t i32[int32s_per_counter];
+        }u;
+        size_t j;
+        /* Don't worry about the 'carry'.  We're not going to loop
+           more than 2^64 times. */
+        ctr.v[0]++;
+        u.ct = threefry2x64(ctr, key);
+        for(j=0; j<int32s_per_counter; j+=2){
+            int64_t x = u.i32[j];
+            int64_t y = u.i32[j+1];
+            if( (x*x + y*y) < two_to_the_62 )
+                hits++;
+            tries++;
+        }
+    }
+    return pi_check(hits, tries);
+}
diff --git a/examples/pi_check.h b/examples/pi_check.h
new file mode 100644
index 0000000..f34290f
--- /dev/null
+++ b/examples/pi_check.h
@@ -0,0 +1,67 @@
+/*
+Copyright 2010-2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#ifndef PI_CHECK_H__
+#define PI_CHECK_H__ 1
+
+#include <stdio.h>
+
+const unsigned long NTRIES = 10000000UL;
+
+/* XX Cannot make this static, is included in some files that only use it
+   under ifdef-conditionally, and we do not want to ifdef this to match. */
+int pi_check(unsigned long hits, unsigned long tries)
+{
+    const double PI = 3.14159265358979323846;
+    double ourpi, mean, var, delta, chisq;
+    printf("%lu out of %lu darts thrown at a square board hit the inscribed circle\n",
+           hits, tries);
+    ourpi = 4.*hits/tries;
+    printf("pi is approximately %.8g (diff = %.2g %%)\n", ourpi, (ourpi - PI)*100./PI);
+    mean = tries*(PI/4.);
+    var = tries * (PI/4.)*(1. - (PI/4.));
+    delta = hits - mean;
+    chisq = delta*delta/var;
+    /*  Sigh.  Jump through hoops so we don't want to link with -lm for sqrt */
+    if( chisq < 1. )
+        printf("OK, # of hits is less than one 'sigma' away from expectation\n(chisquared = %.2g)\n", chisq);
+    else if(chisq < 4.)
+        printf("OK, # of hits is between one and two 'sigma' away from expectation\n(chisquared = %.2g)\n", chisq);
+    else if(chisq < 9.)
+        printf("Maybe OK, # of hits is between two and three 'sigma' away from expectation\n(chisquared = %.2g)\n", chisq);
+    else {
+        printf("May not be OK, # of hits is more than three 'sigma'.  Worth looking into.\n(chisquared = %.2g)\n", chisq);
+	return 1;
+    }
+    return 0;
+}
+
+#endif /* PI_CHECK_H__ */
diff --git a/examples/pi_cppapi.cpp b/examples/pi_cppapi.cpp
new file mode 100644
index 0000000..1f0a407
--- /dev/null
+++ b/examples/pi_cppapi.cpp
@@ -0,0 +1,78 @@
+/*
+Copyright 2010-2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#include <Random123/threefry.h>
+#include <Random123/ReinterpretCtr.hpp>
+#include <stdio.h>
+#include <assert.h>
+
+// Everyone's favorite PRNG example: calculate pi/4 by throwing darts
+// at a square board and counting the fraction that are inside the
+// inscribed circle.
+
+// This version uses the C++ API to Threefry4x64, and the
+// ReinterpretCtr template to get 32-bit values.  
+
+// Note - by using ReinterpretCtr, the result depends on the
+// endianness of the hardware it runs on even though the underlying
+// generator is endian-independent.  An easy way to make the result
+// endian-independent would be to eliminate ReinterpretCtr and to use
+// a generator that works natively with 32-bit quantities, e.g.,
+// Threefry4x32 or Philox4x32.
+
+using namespace r123;
+
+#include "pi_check.h"
+
+int main(int, char **){
+    unsigned long hits = 0, tries = 0;
+    const int64_t two_to_the_62 = ((int64_t)1)<<62;
+
+    typedef ReinterpretCtr<r123array8x32, Threefry4x64> G;
+    G generator;
+    G::key_type key = {{}}; // initialize with zeros
+    G::ctr_type ctr = {{}};
+
+    printf("Throwing %lu darts at a square board using Threefry4x64\n", NTRIES);
+
+    while(tries < NTRIES){
+        ctr.incr();
+        G::ctr_type r = generator(ctr, key);
+        for(size_t j=0; j<r.size(); j+=2){
+            int64_t x = (int32_t)r[j];
+            int64_t y = (int32_t)r[j+1];
+            if( (x*x + y*y) < two_to_the_62 )
+                hits++;
+            tries++;
+        }
+    }
+    return pi_check(hits, tries);
+}
diff --git a/examples/pi_cuda.cu b/examples/pi_cuda.cu
new file mode 100644
index 0000000..fd2f5c5
--- /dev/null
+++ b/examples/pi_cuda.cu
@@ -0,0 +1,119 @@
+/*
+Copyright 2010-2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+// Simple CUDA device kernel and host main program to
+// compute pi via random darts at a square
+
+// functions for boilerplate CUDA init and done
+#include "util_cuda.h"
+
+#include <Random123/philox.h>
+
+int debug = 0;
+const char *progname;
+
+// CUDA Kernel:
+// generates n x,y points and returns hits[tid] with the count of number
+// of those points within the unit circle on each thread.
+__global__ void counthits(unsigned n, uint2 *hitsp)
+{
+    unsigned tid = blockDim.x * blockIdx.x + threadIdx.x;
+    unsigned hits = 0, tries = 0;
+    philox4x32_key_t k = {{tid, 0xdecafbad}};
+    philox4x32_ctr_t c = {{0, 0xf00dcafe, 0xdeadbeef, 0xbeeff00d}};
+
+    while (tries < n) {
+	union {
+	    philox4x32_ctr_t c;
+	    int4 i;
+	}u;
+	c.v[0] = tries;
+	u.c = philox4x32(c, k);
+	int64_t x1 = u.i.x, y1 = u.i.y;
+	int64_t x2 = u.i.z, y2 = u.i.w;
+	if ((x1*x1 + y1*y1) < (1LL<<62)) {
+	    hits++;
+	}
+	tries++;
+	if ((x2*x2 + y2*y2) < (1LL<<62)) {
+	    hits++;
+	}
+	tries++;
+    }
+    hitsp[tid] = make_uint2(hits, tries);
+}
+
+#include "pi_check.h"
+
+int
+main(int argc, char **argv)
+{
+    CUDAInfo *infop;
+    uint2 *hits_host, *hits_dev;
+    size_t hits_sz;
+    unsigned nthreads;
+    unsigned count = argc > 1 ? atoi(argv[1]) : 0;
+    double d  = 0.;
+
+    d = timer(&d);
+    progname = argv[0];
+    debug = argc > 2 ? atoi(argv[2]): 0;
+
+    infop = cuda_init(argc > 3 ? argv[3] : NULL);
+    nthreads =  infop->blocks_per_grid * infop->threads_per_block;
+    if (count == 0)
+	count = NTRIES/nthreads;
+
+    hits_sz = nthreads * sizeof(hits_host[0]);
+    CHECKCALL(cudaMalloc(&hits_dev, hits_sz));
+    CHECKNOTZERO((hits_host = (uint2 *)malloc(hits_sz)));
+
+    printf("starting %u blocks with %u threads/block for %u points each\n",
+	   infop->blocks_per_grid, infop->threads_per_block, count);
+    fflush(stdout);
+
+    counthits<<<infop->blocks_per_grid, infop->threads_per_block>>>(count, hits_dev);
+
+    CHECKCALL(cudaThreadSynchronize());
+    CHECKCALL(cudaMemcpy(hits_host, hits_dev, hits_sz, cudaMemcpyDeviceToHost));
+
+    unsigned long hits = 0, tries = 0;
+    for (unsigned i = 0; i < nthreads; i++) {
+	if (debug)
+	    printf("%u %u %u\n", i, hits_host[i].x, hits_host[i].y);
+	hits += hits_host[i].x;
+	tries += hits_host[i].y;
+    }
+    CHECKCALL(cudaFree(hits_dev));
+    free(hits_host);
+    cuda_done(infop);
+    return pi_check(hits, tries);
+}
diff --git a/examples/pi_cudapp.cu b/examples/pi_cudapp.cu
new file mode 100644
index 0000000..0d7ec75
--- /dev/null
+++ b/examples/pi_cudapp.cu
@@ -0,0 +1,125 @@
+/*
+Copyright 2010-2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+// Simple CUDA device kernel and host main program to
+// compute pi via random darts at a square
+
+// functions for boilerplate CUDA init and done
+#include "util_cuda.h"
+
+#include <Random123/philox.h>
+
+using namespace r123;
+
+int debug = 0;
+const char *progname;
+
+
+// CUDA Kernel:
+// generates n x,y points and returns hits[tid] with the count of number
+// of those points within the unit circle on each thread.
+__global__ void counthits(unsigned n, uint2 *hitsp)
+{
+    unsigned tid = blockDim.x * blockIdx.x + threadIdx.x;
+    unsigned hits = 0, tries = 0;
+    typedef Philox4x32 G;
+    G rng;
+    G::key_type k = {{tid, 0xdecafbad}};
+    G::ctr_type c = {{}};
+
+    while (tries < n) {
+	union {
+	    G::ctr_type c;
+	    int4 i;
+	}u;
+	c.incr();
+	u.c = rng(c, k);
+	int64_t x1 = u.i.x, y1 = u.i.y;
+	int64_t x2 = u.i.z, y2 = u.i.w;
+	if ((x1*x1 + y1*y1) < (1LL<<62)) {
+	    hits++;
+	}
+	tries++;
+	if ((x2*x2 + y2*y2) < (1LL<<62)) {
+	    hits++;
+	}
+	tries++;
+    }
+    hitsp[tid] = make_uint2(hits, tries);
+}
+
+#include "pi_check.h"
+
+int
+main(int argc, char **argv)
+{
+    CUDAInfo *infop;
+    uint2 *hits_host, *hits_dev;
+    size_t hits_sz;
+    unsigned nthreads;
+    unsigned count = argc > 1 ? atoi(argv[1]) : 0;
+    double d  = 0.;
+
+    d = timer(&d);
+    progname = argv[0];
+    debug = argc > 2 ? atoi(argv[2]): 0;
+
+    infop = cuda_init(argc > 3 ? argv[3] : NULL);
+    nthreads =  infop->blocks_per_grid * infop->threads_per_block;
+    if (count == 0)
+	count = NTRIES/nthreads;
+
+    hits_sz = nthreads * sizeof(hits_host[0]);
+    CHECKCALL(cudaMalloc(&hits_dev, hits_sz));
+    CHECKNOTZERO((hits_host = (uint2 *)malloc(hits_sz)));
+
+    printf("starting %u blocks with %u threads/block for %u points each\n",
+	   infop->blocks_per_grid, infop->threads_per_block, count);
+    fflush(stdout);
+
+    counthits<<<infop->blocks_per_grid, infop->threads_per_block>>>(count, hits_dev);
+
+    CHECKCALL(cudaThreadSynchronize());
+    CHECKCALL(cudaMemcpy(hits_host, hits_dev, nthreads*sizeof(hits_dev[0]),
+		   cudaMemcpyDeviceToHost));
+
+    unsigned long hits = 0, tries = 0;
+    for (unsigned i = 0; i < nthreads; i++) {
+	if (debug)
+	    printf("%u %u %u\n", i, hits_host[i].x, hits_host[i].y);
+	hits += hits_host[i].x;
+	tries += hits_host[i].y;
+    }
+    CHECKCALL(cudaFree(hits_dev));
+    free(hits_host);
+    cuda_done(infop);
+    return pi_check(hits, tries);
+}
diff --git a/examples/pi_gsl.c b/examples/pi_gsl.c
new file mode 100644
index 0000000..9f50979
--- /dev/null
+++ b/examples/pi_gsl.c
@@ -0,0 +1,67 @@
+/*
+Copyright 2010-2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#include <gsl/gsl_randist.h>
+#include <stdio.h>
+#include "Random123/philox.h"
+#include "Random123/threefry.h"
+#include "Random123/gsl_microrng.h"
+
+/* Compute pi, using the gsl_ran_flat distribution with
+   an underlying threefry4x64 counter-based rng (cbrng).
+   We can call cbrng 8 times between calls to cbrng_reset */
+
+GSL_MICRORNG(cbrng, threefry4x64); /* creates gsl_rng_cbrng */
+
+#include "pi_check.h"
+
+int main(int argc, char **argv){
+    unsigned long hits = 0, tries = 0;
+    gsl_rng *r;
+    (void)argc; (void)argv; /* unused */
+
+    threefry4x64_ctr_t c = {{0}};
+    threefry4x64_key_t k = {{0}};
+    r = gsl_rng_alloc(gsl_rng_cbrng);
+    printf("%lu uniforms from %s\n", NTRIES, gsl_rng_name(r));
+    while (tries < NTRIES) {
+            double x, y;
+            c.v[0]++; /* increment the counter */
+            cbrng_reset(r, c, k); /* reset the rng to the new counter */
+            x = gsl_ran_flat (r, -1.0, 1.0);
+            y = gsl_ran_flat (r, -1.0, 1.0);
+            if( x*x + y*y < 1.0 )
+                hits++;
+	    tries++;
+    }
+    gsl_rng_free (r);
+    return pi_check(hits, tries);
+}
diff --git a/examples/pi_microurng.cpp b/examples/pi_microurng.cpp
new file mode 100644
index 0000000..7dac9a4
--- /dev/null
+++ b/examples/pi_microurng.cpp
@@ -0,0 +1,108 @@
+/*
+Copyright 2010-2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+// Everyone's favorite PRNG example: calculate pi/4 by throwing darts
+// at a square board and counting the fraction that are inside the
+// inscribed circle.
+
+// This version uses Philox4x32 with a MicroURNG and the C++0x standard
+// library std::uniform_real distribution to generate floats in [-1..1]
+
+// N.B.  The results are hardware dependent even though the underlying
+// counter based RNG is hardware and endian-invariant.  On x86,
+// floating point temporaries, e.g., x, y, x*x, etc., are stored in
+// 80-bit extended precision registers.  On x86-64 (and other IEEE-754
+// systems), temporaries are stored in 32-bit SSE registers.
+
+#include <Random123/philox.h>
+#include <Random123/MicroURNG.hpp>
+#include <Random123/ReinterpretCtr.hpp>
+#if R123_USE_CXX11_RANDOM
+#include <random>
+#endif
+#include <iostream>
+#include <iomanip>
+#include "pi_check.h"
+
+using namespace r123;
+
+int main(int, char**){
+    typedef Philox4x32 RNG;
+    RNG::ctr_type c = {{}};
+    RNG::key_type k = {{}};
+    MicroURNG<RNG> longmurng(c.incr(), k);
+#if R123_USE_STD_RANDOM
+    std::uniform_real_distribution<float> u(-1., 1.);
+
+    // First, compute pi with a nice long MicroURNG that we cancall
+    // billions of times (2^31) before it runs out of state:
+    unsigned long hits=0;
+    std::cout << "Calling a single MicroURNG " << NTRIES << " times" << std::endl;
+    for(unsigned long i=0; i<NTRIES; ++i){
+        float x = u(longmurng);
+        float y = u(longmurng);
+        if( (x*x + y*y) < 1.0f )
+            hits++;
+    }
+    if (pi_check(hits, NTRIES) != 0) {
+	return 1;
+    }
+    // MicroURNGs are very light-weight.  It shouldn't be
+    // too expensive to create a new one every time through the loop:
+    std::cout << "Creating and calling a new MicroURNG " << NTRIES << " times" << std::endl;
+    hits=0;
+    for(unsigned long i=0; i<NTRIES; ++i){
+        MicroURNG<RNG> shorturng(c.incr(), k);
+        float x = u(shorturng);
+        float y = u(shorturng);
+        if( (x*x + y*y) < 1.0f )
+            hits++;
+    }
+    return pi_check(hits, NTRIES);
+#else
+    // MicroURNG's are interesting because they allow us to use std::distributions,
+    // as in the above code.  Std::distributions are nice, but if all we need is
+    // a uniform integer, we can do without such fancy C++0x features:
+    unsigned long hits=0;
+    std::cout << "Calling a single MicroURNG " << NTRIES << " times" << std::endl;
+    for(unsigned long i=0; i<NTRIES; ++i){
+        float x = 2.*longmurng()/(double)std::numeric_limits<uint32_t>::max() - 1.;
+        float y = 2.*longmurng()/(double)std::numeric_limits<uint32_t>::max() - 1.;
+        if( (x*x + y*y) < 1.0f )
+            hits++;
+    }
+    if (pi_check(hits, NTRIES) != 0) {
+	return 1;
+    }
+#endif
+    
+
+}
diff --git a/examples/pi_opencl.c b/examples/pi_opencl.c
new file mode 100644
index 0000000..7a14a15
--- /dev/null
+++ b/examples/pi_opencl.c
@@ -0,0 +1,92 @@
+/*
+Copyright 2010-2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+// Simple OpenCL device kernel and host main program to
+// compute pi via random darts at a square
+
+// functions to do boilerplate OpenCL begin and end
+#include "util_opencl.h"
+#include "pi_check.h"
+
+// Include preprocessed kernel declaration for the array src 
+// The GNUmakefile will create pi_opencl_kernel.i in the build
+// directory, and then compile this with -I., so use #include <angle> .
+#include <pi_opencl_kernel.i>
+
+const char *progname;
+int verbose = 0;
+int debug = 0;
+
+int
+main(int argc, char **argv)
+{
+    unsigned count = argc > 1 ? atoi(argv[1]) : 0;
+    UCLInfo *infop;
+    size_t i, nthreads, hits_sz;
+    cl_mem hits_dev;
+    cl_uint2 *hits_host;
+    const char *kernelname = "counthits";
+    cl_int err;
+    cl_kernel kern;
+    double d = 0.;
+
+    d = timer(&d);
+    progname = argv[0];
+    verbose = debug = argc > 2 ? atoi(argv[2]): 0;
+    infop = opencl_init(argc > 3 ? argv[3] : NULL, opencl_src, argc > 4 ? argv[4] : "");
+    CHECKERR(kern = clCreateKernel(infop->prog, kernelname, &err));
+    if (infop->wgsize > 64) infop->wgsize /= 2;
+    nthreads = infop->cores * infop->wgsize;
+    if (count == 0)
+	count = NTRIES/nthreads;
+    hits_sz = nthreads * sizeof(hits_host[0]);
+    CHECKNOTZERO(hits_host = (cl_uint2 *)malloc(hits_sz));
+    CHECKERR(hits_dev = clCreateBuffer(infop->ctx, CL_MEM_WRITE_ONLY, hits_sz, 0, &err));
+    CHECK(clSetKernelArg(kern, 0, sizeof(cl_uint), (void*)&count));
+    CHECK(clSetKernelArg(kern, 1, sizeof(cl_mem), (void*)&hits_dev));
+    printf("queuing kernel for %lu threads with %lu work group size, %u points\n",
+	   (unsigned long)nthreads, (unsigned long)infop->wgsize, count);
+    CHECK(clEnqueueNDRangeKernel(infop->cmdq, kern, 1, 0, &nthreads, &infop->wgsize, 0, 0, 0));
+    CHECK(clFinish(infop->cmdq));
+    CHECK(clEnqueueReadBuffer(infop->cmdq, hits_dev, CL_TRUE, 0, hits_sz, hits_host, 0, 0, 0));
+
+    unsigned long hits = 0, tries = 0;
+    for (i = 0; i < nthreads; i++) {
+	if (debug)
+	    printf("%lu %u %u\n", (unsigned long)i, hits_host[i].x, hits_host[i].y);
+	hits += hits_host[i].x;
+	tries += hits_host[i].y;
+    }
+    CHECK(clReleaseMemObject(hits_dev));
+    CHECK(clReleaseKernel(kern));
+    opencl_done(infop);
+    return pi_check(hits, tries);
+}
diff --git a/examples/pi_opencl_kernel.ocl b/examples/pi_opencl_kernel.ocl
new file mode 100644
index 0000000..20a2931
--- /dev/null
+++ b/examples/pi_opencl_kernel.ocl
@@ -0,0 +1,71 @@
+/*
+Copyright 2010-2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+/*
+ * This file is the OpenCL kernel.  It gets preprocessed, munged
+ * into a C string declaration and included in pi_opencl, so that
+ * running the compiled pi_opencl does not depend on any include
+ * files, paths etc.
+ */
+
+#include <Random123/threefry.h>
+
+/*
+ * counthits generates n x,y points and returns hits[tid] with
+ * the count of number of those points within the unit circle on
+ * each thread.
+ */
+__kernel void counthits(unsigned n, __global uint2 *hitsp) {
+    unsigned tid = get_global_id(0);
+    unsigned hits = 0, tries = 0;
+    threefry4x32_key_t k = {{tid, 0xdecafbad, 0xfacebead, 0x12345678}};
+    threefry4x32_ctr_t c = {{0, 0xf00dcafe, 0xdeadbeef, 0xbeeff00d}};
+    while (tries < n) {
+	union {
+	    threefry4x32_ctr_t c;
+	    int4 i;
+	} u;
+	c.v[0]++;
+	u.c = threefry4x32(c, k);
+	long x1 = u.i.x, y1 = u.i.y;
+	long x2 = u.i.z, y2 = u.i.w;
+	if ((x1*x1 + y1*y1) < (1L<<62)) {
+	    hits++;
+	}
+	tries++;
+	if ((x2*x2 + y2*y2) < (1L<<62)) {
+	    hits++;
+	}
+	tries++;
+    }
+    hitsp[tid].x = hits;
+    hitsp[tid].y = tries;
+}
diff --git a/examples/pi_uniform.cpp b/examples/pi_uniform.cpp
new file mode 100644
index 0000000..9160b86
--- /dev/null
+++ b/examples/pi_uniform.cpp
@@ -0,0 +1,136 @@
+/*
+Copyright 2010-2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#include <stdio.h>
+#include <Random123/threefry.h>
+#include "uniform.hpp"
+
+/* Compute pi, using the u01 conversion with threefry2x64 and threefry2x32 */
+
+#include "pi_check.h"
+
+using namespace r123;
+
+template<typename Ftype, typename CBRNG>
+void pi(typename CBRNG::key_type k);
+
+int errs = 0;
+int main(int, char **){
+    unsigned long hits = 0, tries = 0;
+
+    // First, we demonstrate how to compute pi
+    // using uneg11 to convert the integer output
+    // of threefry2x64 to a double in (-1, 1).
+    Threefry2x64::ctr_type c = {{0}}, r;
+    Threefry2x64::ukey_type uk = {{R123_64BIT(0xdeadbeef12345678)}};
+    Threefry2x64::key_type k = uk;
+    printf("%lu uniform doubles from threefry2x64\n", NTRIES);
+    while (tries < NTRIES) {
+            double x, y;
+            c.v[0]++; /* increment the counter */
+	    r = threefry2x64(c, k);
+            x = uneg11<double>(r.v[0]);
+            y = uneg11<double>(r.v[1]);
+            if( x*x + y*y < 1.0 )
+                hits++;
+	    tries++;
+    }
+    errs += pi_check(hits, tries);
+
+    // Extra credit: use some template hackery to exercise various
+    // combinations of float, double and long double, unit64_t and
+    // uint32_t and the conversion functions u01, uneg11 and ufixed01.
+    // This provides minimal testing of the conversion functions.
+    pi<float, Threefry2x64>(k);
+    pi<double, Threefry2x64>(k);
+    pi<long double, Threefry2x64>(k);
+
+    Threefry2x32::ukey_type ukh = {{0xdecafbad}};
+    Threefry2x32::key_type kh = ukh;
+    pi<float, Threefry2x32>(kh);
+    pi<double, Threefry2x32>(kh);
+    pi<long double, Threefry2x32>(kh);
+
+    return errs;
+}
+
+template<typename Ftype, typename CBRNG>
+void pi(typename CBRNG::key_type k){
+    unsigned long hits = 0, tries = 0;
+    CBRNG rng;
+
+    printf("Compute pi with uneg11:\n");
+    typename CBRNG::ctr_type c = {{0}}, r;
+    hits = tries = 0;
+    while (tries < NTRIES) {
+        Ftype x, y;
+        c.v[0]++; /* increment the counter */
+        r = rng(c, k);
+        // x and y in the entire square from (-1,-1) to (1,1)
+        x = uneg11<Ftype>(r.v[0]);
+        y = uneg11<Ftype>(r.v[1]);
+        if( x*x + y*y < 1.0 )
+            hits++;
+        tries++;
+    }
+    errs += pi_check(hits, tries);
+
+    printf("Compute pi with u01:\n");
+    hits = tries = 0;
+    while (tries < NTRIES) {
+            Ftype x, y;
+            c.v[0]++; /* increment the counter */
+	    r = rng(c, k);
+            // generate x and y in the first quadrant from (0,0) to (1,1)
+            x = u01<Ftype>(r.v[0]);
+            y = u01<Ftype>(r.v[1]);
+            if( x*x + y*y < 1.0 )
+                hits++;
+	    tries++;
+    }
+    errs += pi_check(hits, tries);
+
+    printf("Compute pi with u01fixedpt:\n");
+    hits = tries = 0;
+    while (tries < NTRIES) {
+            Ftype x, y;
+            c.v[0]++; /* increment the counter */
+	    r = rng(c, k);
+            // generate x and y in the first quadrant from (0,0) to (1,1)
+            x = u01fixedpt<Ftype>(r.v[0]);
+            y = u01fixedpt<Ftype>(r.v[1]);
+            if( x*x + y*y < 1.0 )
+                hits++;
+	    tries++;
+    }
+    errs += pi_check(hits, tries);
+ }
+
diff --git a/examples/rngNxW.h b/examples/rngNxW.h
new file mode 100644
index 0000000..1bd62d4
--- /dev/null
+++ b/examples/rngNxW.h
@@ -0,0 +1,46 @@
+/*
+Copyright 2010-2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+RNGNxW_TPL(philox, 2, 32)
+RNGNxW_TPL(philox, 4, 32)
+#if R123_USE_PHILOX_64BIT
+RNGNxW_TPL(philox, 2, 64)
+RNGNxW_TPL(philox, 4, 64)
+#endif
+RNGNxW_TPL(threefry, 2, 32)
+RNGNxW_TPL(threefry, 2, 64)
+RNGNxW_TPL(threefry, 4, 32)
+RNGNxW_TPL(threefry, 4, 64)
+#if R123_USE_AES_NI
+RNGNxW_TPL(ars, 4, 32)
+RNGNxW_TPL(aesni, 4, 32)
+#endif
diff --git a/examples/simple.c b/examples/simple.c
new file mode 100644
index 0000000..eeccc4e
--- /dev/null
+++ b/examples/simple.c
@@ -0,0 +1,52 @@
+/*
+Copyright 2010-2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#include <Random123/threefry.h>
+#include <stdio.h>
+
+int main(int argc, char **argv){
+    int i;
+    threefry2x64_ctr_t  ctr = {{0,0}};
+    threefry2x64_key_t key = {{0xdeadbeef, 0xbadcafe}};
+    (void)argc; (void)argv; /* unused */
+    printf( "The first few randoms with key %llx %llx\n",
+	   (unsigned long long)key.v[0], (unsigned long long)key.v[1]);
+    for(i=0; i<10; ++i){
+        ctr.v[0] = i;
+	{
+          threefry2x64_ctr_t rand = threefry2x64(ctr, key);
+          printf("ctr: %llx %llx threefry2x64(20, ctr, key): %llx %llx\n",
+                 (unsigned long long)ctr.v[0], (unsigned long long)ctr.v[1],
+                 (unsigned long long)rand.v[0], (unsigned long long)rand.v[1]);
+	}
+    }
+    return 0;
+}
diff --git a/examples/simplepp.cpp b/examples/simplepp.cpp
new file mode 100644
index 0000000..a930390
--- /dev/null
+++ b/examples/simplepp.cpp
@@ -0,0 +1,47 @@
+/*
+Copyright 2010-2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#include <Random123/threefry.h>
+#include <iostream>
+
+int main(int, char **){
+    typedef r123::Threefry2x64 CBRNG;
+    CBRNG g;
+    CBRNG::ctr_type  ctr = {{0,0}};
+    CBRNG::key_type key = {{0xdeadbeef}};
+    std::cout << std::hex << "The first few 2x64 randoms from Threefry2x64 with key " << key << "\n";
+    for(int i=0; i<10; ++i){
+        ctr[0] = i;
+        CBRNG::ctr_type rand = g(ctr, key);
+        std::cout << "ctr: " << ctr << " Threefry2x64<>(ctr, key): " << rand << "\n";
+    }
+    return 0;
+}
diff --git a/examples/time_boxmuller.cpp b/examples/time_boxmuller.cpp
new file mode 100644
index 0000000..2da4044
--- /dev/null
+++ b/examples/time_boxmuller.cpp
@@ -0,0 +1,132 @@
+// Test for boxmuller.h on CPU
+#include <Random123/philox.h>
+#include <Random123/threefry.h>
+#include "boxmuller.hpp"
+#include "util.h"   // for timer()
+
+typedef r123::Philox4x32 CBRNGF;
+typedef r123::Threefry2x64 CBRNGD;
+
+const char *progname = "time_boxmuller";
+
+// Each call to boxmuller() returns a pair of values in the .x and .y
+// members, which we add up into sum just to avoid being optimized away.
+template <typename CBRNG, typename F, typename F2>
+F timedloop(typename CBRNG::ukey_type k, size_t Ntry){
+    F sum = 0.f;
+    typename CBRNG::ctr_type ctr = {{}};
+    const size_t csize = sizeof(ctr)/sizeof(ctr[0]);
+    CBRNG rng;
+
+    for(size_t i=0; i<Ntry; i+=csize){
+        ctr.incr();
+        typename CBRNG::ctr_type u = rng(ctr, k);
+	F2 f2;
+	switch(csize) {
+	case 8: f2 = r123::boxmuller(u[6], u[7]); sum += f2.x + f2.y;
+                f2 = r123::boxmuller(u[4], u[5]); sum += f2.x + f2.y;
+	case 4: f2 = r123::boxmuller(u[2], u[3]); sum += f2.x + f2.y;
+	case 2: f2 = r123::boxmuller(u[0], u[1]); sum += f2.x + f2.y;
+                break;
+	default:
+	        R123_ASSERT(0);
+	}
+    }
+    return sum;
+}
+
+template <typename CBRNG, typename F2>
+void dumploop(FILE *fp, typename CBRNG::ukey_type k, size_t Ntry){
+    typename CBRNG::ctr_type ctr = {{}};
+    const size_t csize = sizeof(ctr)/sizeof(ctr[0]);
+    CBRNG rng;
+
+    for(size_t i=0; i<Ntry; i+=csize){
+        ctr.incr();
+        typename CBRNG::ctr_type u = rng(ctr, k);
+	F2 f2;
+	switch(csize) {
+	case 8: f2 = r123::boxmuller(u[6], u[7]); fprintf(fp, "%g\n%g\n", f2.x, f2.y);
+                f2 = r123::boxmuller(u[4], u[5]); fprintf(fp, "%g\n%g\n", f2.x, f2.y);
+	case 4: f2 = r123::boxmuller(u[2], u[3]); fprintf(fp, "%g\n%g\n", f2.x, f2.y);
+	case 2: f2 = r123::boxmuller(u[0], u[1]); fprintf(fp, "%g\n%g\n", f2.x, f2.y); break;
+	default:
+	    R123_ASSERT(0);
+	}
+    }
+}
+
+#define NREPEAT 20
+
+template <typename CBRNG, typename F, typename F2>
+void timedcall(const char *tname, typename CBRNG::ukey_type k, size_t Ntry, char *out_fname) {
+    double cur_time, dt;
+    F sums[NREPEAT];
+    int i;
+    FILE *fp;
+    char *fname;
+    if (out_fname) {
+	fname = (char *) malloc(strlen(out_fname) + strlen(tname) + 2);
+	CHECKNOTZERO(fname);
+	sprintf(fname, "%s-%s", out_fname, tname);
+	fp = fopen(fname, "w");
+	CHECKNOTZERO(fp);
+    } else {
+	fname = NULL;
+	fp = NULL;
+    }
+    (void) timer(&cur_time);
+    /*
+     * we call timedloop NREPEAT times so that it is easy to keep
+     * Ntry the same for boxmuller.cu and boxmuller.cpp, so sum[0]
+     * can be checked.
+     */
+    for (i = 0; i < NREPEAT; i++) {
+	k.v[sizeof(k)/sizeof(k.v[0])-1] = i;
+	if (fp)
+	    dumploop<CBRNG, F2>(fp, k, Ntry);
+	else
+	    sums[i] = timedloop<CBRNG, F, F2>(k, Ntry);
+    }
+    dt = timer(&cur_time);
+    if (fp) {
+	printf("%s %lu written to %s in %g sec: %gM/sec\n", tname, (unsigned long)(Ntry*NREPEAT), fname, dt, Ntry*NREPEAT*1.e-6/dt);
+	fclose(fp);
+	free(fname);
+    } else {
+	printf("%s %lu in %g sec: %gM/sec, sum = %g\n", tname, (unsigned long)(Ntry*NREPEAT), dt, Ntry*NREPEAT*1.e-6/dt, sums[0]);
+	for (i = 1; i < NREPEAT; i++) {
+	    printf(" %g", sums[i]);
+	}
+	printf("\n");
+    }
+}
+
+const size_t DEF_N = 200000;
+
+int main(int argc, char **argv){
+    CBRNGF::ukey_type keyf = {{}};
+    CBRNGD::ukey_type keyd = {{}};
+    size_t Ntry = DEF_N;
+    char *dumpfname;
+    
+    dumpfname = getenv("BOXMULLER_DUMPFILE");
+    if(argc>1) {
+	if (argv[1][0] == '-') {
+	    fprintf(stderr, "Usage: %s [iterations_per_thread [key0 [key1]]]\n", argv[0]);
+	    exit(1);
+	}
+        Ntry = atol(argv[1]);
+    }
+    for (int i = 0; i < (int)(sizeof(keyf)/sizeof(keyf[0])-1) && 2+i < argc; i++) {
+	keyf.v[i] = atol(argv[2+i]);
+    }
+    for (int i = 0; i < (int)(sizeof(keyd)/sizeof(keyd[0])-1) && 2+i < argc; i++) {
+	keyd.v[i] = atol(argv[2+i]);
+    }
+
+    timedcall<CBRNGF,float,r123::float2>("float", keyf, Ntry, dumpfname);
+    timedcall<CBRNGD,double,r123::double2>("double", keyd, Ntry, dumpfname);
+    return 0;
+}
+    
diff --git a/examples/time_boxmuller_cuda.cu b/examples/time_boxmuller_cuda.cu
new file mode 100644
index 0000000..4554b14
--- /dev/null
+++ b/examples/time_boxmuller_cuda.cu
@@ -0,0 +1,181 @@
+// Test for boxmuller.h on CUDA
+#include <Random123/philox.h>
+#include <Random123/threefry.h>
+#include "util.h"   // for timer()
+#include "util_cuda.h"	// for cuda_init, CHECKCALL
+#include "boxmuller.hpp"
+
+typedef r123::Philox4x32 CBRNGF;
+typedef r123::Threefry2x64 CBRNGD;
+int debug = 0;
+const char *progname = "time_boxmuller_cuda";
+
+// Sometimes warnings are A LOT more trouble than they're worth.
+// if we just write u[6], we get warnings
+// so we write u[(csize>n)?6:0].
+#define UGLY(n) (csize>n)?n:0
+
+// The timedloop kernel sums N randoms per thread for timing and
+// records that sum in out[tid] (mainly to ensure that
+// the random generation process does not get optimized away)
+template <typename CBRNG, typename F, typename F2>
+__global__ void timedloop(F *out, typename CBRNG::ukey_type k, size_t N){
+    unsigned tid = blockDim.x * blockIdx.x + threadIdx.x;
+    const size_t klast = sizeof(k)/sizeof(k[0]) - 1;
+    R123_ASSERT(k[klast] == 0); // uses last element of key to
+    k[klast] = tid;		// ensure unique key per thread
+    F sum = 0.f;
+    typename CBRNG::ctr_type ctr = {};
+    const size_t csize = sizeof(ctr)/sizeof(ctr[0]);
+    CBRNG rng;
+
+    for(size_t i=0; i<N; i+=csize){
+        ctr.incr();
+        typename CBRNG::ctr_type u = rng(ctr, k);
+	F2 f2;
+	// Using a loop instead of the Duff device here costs 10%,
+	// at least in CUDA4.2 circa Jan 2013 on a Tesla C2050!
+	switch(csize) {
+	case 8: f2 = r123::boxmuller(u[UGLY(6)], u[UGLY(7)]); sum += f2.x + f2.y;
+		f2 = r123::boxmuller(u[UGLY(4)], u[UGLY(5)]); sum += f2.x + f2.y;
+	case 4: f2 = r123::boxmuller(u[UGLY(2)], u[UGLY(3)]); sum += f2.x + f2.y;
+	case 2: f2 = r123::boxmuller(u[0], u[1]); sum += f2.x + f2.y;
+	        break;
+	default:
+	        R123_ASSERT(0);
+	}
+    }
+    out[tid] = sum;
+}
+
+// The dumploop kernel records all the normal randoms individually in out,
+// so it produces N randoms per thread.  Each thread records
+// its randoms in tid, NTHREADS+tid, NTHREAD*2+tid, ..., NTHREADS*(N-1)+tid
+// which hopefully results in nicely coalesced writes from each warp.
+template <typename CBRNG, typename F, typename F2>
+__global__ void dumploop(F *out, typename CBRNG::ukey_type k, size_t N){
+    unsigned tid = blockDim.x * blockIdx.x + threadIdx.x;
+    const size_t klast = sizeof(k)/sizeof(k[0]) - 1;
+    R123_ASSERT(k[klast] == 0); // uses last element of key to
+    k[klast] = tid;		// ensure unique key per thread
+    typename CBRNG::ctr_type ctr = {};
+    const size_t csize = sizeof(ctr)/sizeof(ctr[0]);
+    CBRNG rng;
+
+    for(size_t i=0; i<N;){
+        ctr.incr();
+        typename CBRNG::ctr_type u = rng(ctr, k);
+	F2 f2;
+	// Using a loop instead of the Duff device here costs 10%,
+	// at least in CUDA4.2 circa Jan 2013 on a Tesla C2050!
+	switch(csize) {
+	case 8: f2 = r123::boxmuller(u[UGLY(6)], u[UGLY(7)]);
+		out[blockDim.x*gridDim.x*i + tid] = f2.x;
+		i++;
+		out[blockDim.x*gridDim.x*i + tid] = f2.y;
+		i++;
+		f2 = r123::boxmuller(u[UGLY(4)], u[UGLY(5)]);
+		out[blockDim.x*gridDim.x*i + tid] = f2.x;
+		i++;
+		out[blockDim.x*gridDim.x*i + tid] = f2.y;
+		i++;
+	case 4: f2 = r123::boxmuller(u[UGLY(2)], u[UGLY(3)]);
+#undef UGLY
+		out[blockDim.x*gridDim.x*i + tid] = f2.x;
+		i++;
+		out[blockDim.x*gridDim.x*i + tid] = f2.y;
+		i++;
+	case 2: f2 = r123::boxmuller(u[0], u[1]);
+		out[blockDim.x*gridDim.x*i + tid] = f2.x;
+		i++;
+		out[blockDim.x*gridDim.x*i + tid] = f2.y;
+		i++;
+		break;
+	default:
+		asm("trap;");
+	}
+    }
+}
+
+template <typename CBRNG, typename F, typename F2>
+void timedcall(const char *tname, const char *out_fname, CUDAInfo *infop, typename CBRNG::ukey_type k, size_t N) {
+    double cur_time, dt;
+    const int nthreads = infop->blocks_per_grid*infop->threads_per_block;
+    const size_t nrand = out_fname ? N * nthreads : nthreads;
+    const size_t out_size = nrand*sizeof(F);
+    F *d_out, *h_out = (F *) malloc(out_size);
+    CHECKNOTZERO(h_out);
+    CHECKCALL(cudaMalloc(&d_out, out_size));
+    (void) timer(&cur_time);
+    if (out_fname)
+	dumploop<CBRNG,F,F2> <<<infop->blocks_per_grid, infop->threads_per_block>>> (d_out, k, N);
+    else
+	timedloop<CBRNG,F,F2> <<<infop->blocks_per_grid, infop->threads_per_block>>> (d_out, k, N);
+    CHECKCALL(cudaThreadSynchronize());
+    CHECKCALL(cudaMemcpy(h_out, d_out, out_size, cudaMemcpyDeviceToHost));
+    dt = timer(&cur_time);
+    printf("%s %zd in %g sec: %gM/sec\n", tname, N*nthreads, dt, N*nthreads*1.e-6/dt);
+    if (out_fname) {
+	char *fname = (char *) malloc(strlen(out_fname) + strlen(tname) + 2);
+	CHECKNOTZERO(fname);
+	sprintf(fname, "%s-%s", out_fname, tname);
+	FILE *fp = fopen(fname, "w");
+	CHECKNOTZERO(fp);
+	for (size_t i = 0; i < nrand; i++){
+	    fprintf(fp, "%g\n", h_out[i]);
+	}
+	fclose(fp);
+	free(fname);
+    } else {
+	int nwoops = 0;
+	printf("%s h_out[0] = %g\n", tname, h_out[0]);
+	for (size_t i = 0; i < nrand; i++){
+	    if(h_out[i] == 0.f){
+		if(nwoops++<10)
+		    printf("Woops %s h_out[%zd] = %g\n", tname, i, h_out[i]);
+
+	    }
+	}
+	if(nwoops>10){
+	    printf("Woops %s %d times\n", tname, nwoops);
+	}
+    }
+    CHECKCALL(cudaFree(d_out));
+    free(h_out);
+}
+
+const size_t DEF_N = 200000;
+
+int main(int argc, char **argv){
+    CBRNGF::ukey_type keyf = {};
+    CBRNGD::ukey_type keyd = {};
+    size_t Ntry = DEF_N;
+    char *cp = getenv("R123_DEBUG");
+    if (cp)
+	debug = atoi(cp);
+    if ((cp = getenv("BOXMULLER_DUMPFILE")) != NULL) {
+	Ntry = 8;
+    } else {
+	Ntry = DEF_N;
+    }
+    if(argc>1) {
+	if (argv[1][0] == '-') {
+	    fprintf(stderr, "Usage: %s [iterations_per_thread [key0 [key1]]]\n", argv[0]);
+	    exit(1);
+	}
+        Ntry = atol(argv[1]);
+    }
+    // XXX cannot use keyf.size in host code, only in device code
+    for (int i = 0; i < (int)(sizeof(keyf)/sizeof(keyf[0])-1) && 2+i < argc; i++) {
+	keyf.v[i] = atol(argv[2+i]);
+    }
+    for (int i = 0; i < (int)(sizeof(keyd)/sizeof(keyd[0])-1) && 2+i < argc; i++) {
+	keyd.v[i] = atol(argv[2+i]);
+    }
+    CUDAInfo *infop = cuda_init(getenv("R123_CUDA_DEVICE"));
+    timedcall<CBRNGF,float,r123::float2>("float", cp, infop, keyf, Ntry);
+    timedcall<CBRNGD,double,r123::double2>("double",cp, infop, keyd, Ntry);
+    cuda_done(infop);
+    return 0;
+}
+    
diff --git a/examples/time_cuda.cu b/examples/time_cuda.cu
new file mode 100644
index 0000000..9644333
--- /dev/null
+++ b/examples/time_cuda.cu
@@ -0,0 +1,175 @@
+/*
+Copyright 2010-2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+/*
+ * CUDA test and timing harness for Random123 RNGs.  Uses macros
+ * and util_expandtpl.h to "templatize" over all the different
+ * permutations of RNGs and NxW and R.
+ */
+
+#include "util_cuda.h"
+
+#include "Random123/philox.h"
+#include "Random123/threefry.h"
+
+#include "time_misc.h"
+#include "util_print.h"
+
+#define KERNEL __global__
+#define get_global_id(i) (blockDim.x * blockIdx.x + threadIdx.x)
+#include "time_random123.h"
+
+#define TEST_TPL(NAME, N, W, R) \
+void NAME##N##x##W##_##R(NAME##N##x##W##_ukey_t ukey, NAME##N##x##W##_ctr_t ctr, NAME##N##x##W##_ctr_t kactr, uint count, CUDAInfo *tp) \
+{ \
+    const char *kernelname = PREFIX #NAME #N "x" #W "_" #R; \
+    NAME##N##x##W##_ctr_t *hC, *dC; \
+    int n, niterations = numtrials; /* we make niterations + 2 (warmup, overhead) calls to the kernel */ \
+    double cur_time; \
+    size_t i; \
+    const size_t nworkitems = tp->blocks_per_grid * tp->threads_per_block; \
+    const size_t szC = nworkitems*sizeof(hC[0]); \
+    \
+    /* allocate vector of counters in device memory, initialize to zero */ \
+    CHECKCALL(cudaMalloc(&dC, szC)); \
+    CHECKCALL(cudaMemset((void *)dC, 0, szC)); \
+    /* allocate and initialize vector of counters in host memory */ \
+    CHECKNOTZERO(hC = (NAME##N##x##W##_ctr_t *)malloc(szC)); \
+    for (i = 0; i < nworkitems; i++) { \
+	size_t xi; \
+	for (xi = 0; xi < N; xi++) { \
+	    hC[i].v[xi] = 0; \
+	} \
+    } \
+    uint kcount = 0; \
+    double basetime = 0., dt = 0., mindt = 0.; \
+    for (n = -2; n < niterations; n++) { \
+	if (n == -2) { \
+	    if (count == 0) { \
+		/* try to set a good guess for count */ \
+		count = (uint)(tp->cycles ? tp->cycles * 1e-8 : 10000); \
+		dprintf(("starting with count = %u\n", count)); \
+	    } \
+	    kcount = count; \
+	} else if (n == -1) { \
+	    /* use first iteration time to calibrate count to get approximately sec_per_trial */ \
+	    if (count > 1) { \
+		count = (uint)(count * sec_per_trial / dt); \
+		dprintf(("scaled count = %u\n", count)); \
+	    } \
+	    /* second iteration is to calculate overhead after warmup */ \
+	    kcount = 1; \
+	} else if (n == 0) { \
+	    int xj; \
+	    /* Check that we got the expected value */ \
+	    for (xj = 0; xj < N; xj++) { \
+		if (kactr.v[xj] != hC[0].v[xj]) { \
+		    printf("%s mismatch: xj = %d, expected\n", kernelname, xj); \
+		    printline_##NAME##N##x##W##_##R(ukey, ctr, &kactr, 1); \
+		    printf("    but got\n"); \
+		    printline_##NAME##N##x##W##_##R(ukey, ctr, hC, 1); \
+                    if(!debug) exit(1); \
+                    else break; \
+		} else { \
+		    dprintf(("%s matched word %d\n", kernelname, xj)); \
+		} \
+	    } \
+	    basetime = dt; \
+	    if (debug||verbose) { \
+		dprintf(("%s %.3f secs for %lu workitems test on device %d (%s)\n", \
+		       kernelname, basetime, (unsigned long) nworkitems, \
+		       tp->devnum, tp->dev.name)); \
+		printline_##NAME##N##x##W##_##R(ukey, ctr, hC, (verbose < 2) ? 1 : nworkitems); \
+	    } \
+	    kcount = count + 1; \
+	} \
+	dprintf(("launch %s\n", kernelname)); \
+	(void)timer(&cur_time); \
+	test_##NAME##N##x##W##_##R<<<tp->blocks_per_grid, tp->threads_per_block>>>(kcount, ukey, ctr, dC); \
+	dprintf(("synchronize\n")); \
+	CHECKCALL(cudaThreadSynchronize()); \
+	dprintf(("copy results back from device to host\n")); \
+	CHECKCALL(cudaMemcpy(hC, dC, szC, cudaMemcpyDeviceToHost)); \
+	dt = timer(&cur_time); \
+	dprintf(("iteration %d took %.3f secs\n", n, dt)); \
+	ALLZEROS(hC, nworkitems, N); \
+	if (n == 0 || dt < mindt) mindt = dt; \
+    } \
+    if (count > 1) { \
+	double tpB = (mindt - basetime) / ( (kcount - 1.) * nworkitems * (N * W / 8.) ); \
+	printf("%-17s %#5.3g cpB, %#5.3g GB/s on dev %d %u B granularity (best %u in %.3f s - %.6f s)\n", \
+	       kernelname + sizeof(PREFIX) - 1, \
+	       tpB * tp->cycles , 1e-9/tpB, \
+	       tp->devnum, (uint)(N*W/8), kcount, mindt, basetime ); \
+	fflush(stdout); \
+    } \
+    /* free host and device memory */ \
+    free(hC); \
+    CHECKCALL(cudaFree(dC)); \
+}
+
+#include "util_expandtpl.h"
+
+int main(int argc, char **argv)
+{
+    char *cp;
+    uint count = 0;
+    CUDAInfo *infop;
+    int keyctroffset = 0;
+    
+    progname = argv[0];
+    if (argc > 3|| (argv[1] && argv[1][0] == '-')) {
+	fprintf(stderr, "Usage: %s [COUNT [DEVICESTRING]]\n", progname);
+	exit(1);
+    }
+    if (argc  > 1)
+	count = atoi(argv[1]);
+    if ((cp = getenv("TIME_CUDA_VERBOSE")) != NULL) {
+	verbose = atoi(cp);
+    }
+    if ((cp = getenv("TIME_CUDA_DEBUG")) != NULL) {
+	debug = atoi(cp);
+    }
+    if ((cp = getenv("TIME_CUDA_OFFSET")) != NULL) {
+	keyctroffset = atoi(cp);
+    }
+    if ((cp = getenv("TIME_CUDA_NUMTRIALS")) != NULL) {
+        numtrials = atoi(cp);
+    }
+    if ((cp = getenv("TIME_CUDA_SEC_PER_TRIAL")) != NULL) {
+        sec_per_trial = atof(cp);
+    }
+    infop = cuda_init(argc > 2 ? argv[2] : NULL);
+    /* define macro to initialize and call the kernels */
+#   include "time_initkeyctr.h"
+    cuda_done(infop);
+    return 0;
+}
diff --git a/examples/time_initkeyctr.h b/examples/time_initkeyctr.h
new file mode 100644
index 0000000..8f0a7ba
--- /dev/null
+++ b/examples/time_initkeyctr.h
@@ -0,0 +1,99 @@
+/*
+Copyright 2010-2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#ifndef TIME_INITKEYCTR_H__
+#define TIME_INITKEYCTR_H__ 1
+
+#if TRY_OTHER
+static mrg1x32_ctr_t good_mrg1x32_1 = {{0x4b2cd7ee}};
+static mt1x32_ctr_t good_mt1x32_1 = {{0x39037a7d}};
+static mtsmall1x32_ctr_t good_mtsmall1x32_1 = {{0x7afd2a98}};
+static cmrg1x32_ctr_t good_cmrg1x32_1 = {{0x032b54e2}};
+static xorwow1x32_ctr_t good_xorwow1x32_1 = {{0xed1b6264}};
+#endif
+#if R123_USE_PHILOX_64BIT
+static philox2x64_ctr_t good_philox2x64_6 = {{R123_64BIT(0xdd40cdb81af968d2),R123_64BIT(0x0cb57d6d5f7b68dc)}};
+static philox2x64_ctr_t good_philox2x64_10 = {{R123_64BIT(0x539e5b3d18faf5da),R123_64BIT(0x838ca1328d07d3ba)}};
+static philox4x64_ctr_t good_philox4x64_7 = {{R123_64BIT(0xcf492074862957a2),R123_64BIT(0x7057627260938584),R123_64BIT(0x676e23214a14901d),R123_64BIT(0xefa2c5df3848e3fe)}};
+static philox4x64_ctr_t good_philox4x64_10 = {{R123_64BIT(0x1b64f56b381a5a89),R123_64BIT(0x940a282a8add45e1),R123_64BIT(0x53c936376ac7d5df),R123_64BIT(0x6147e87ec9bd9caa)}};
+#endif
+static philox4x32_ctr_t good_philox4x32_7 = {{0x40ba6a95,0x799e6a43,0x7dcabe10,0xa7a81636}};
+static philox4x32_ctr_t good_philox4x32_10 = {{0xf16d828e,0xa1c5962d,0xacac820c,0x58113d7a}};
+static threefry2x64_ctr_t good_threefry2x64_13 = {{R123_64BIT(0xdf0f096c179ad798),R123_64BIT(0x077862fbaa1a0d11)}};
+static threefry2x64_ctr_t good_threefry2x64_20 = {{R123_64BIT(0xb91153d59815d50e),R123_64BIT(0xdb0dd45e5b0eab81)}};
+static threefry4x64_ctr_t good_threefry4x64_12 = {{R123_64BIT(0x416d1802da0a4a0f),R123_64BIT(0xabd4d80749306281),R123_64BIT(0x62c6b120b542bff0),R123_64BIT(0xefb28dc80c6fc36c)}};
+static threefry4x64_ctr_t good_threefry4x64_20 = {{R123_64BIT(0xad8f0b8c18ed5187),R123_64BIT(0xd80146a6961e1880),R123_64BIT(0x7fce9d950d8acbc4),R123_64BIT(0x782948d5203519f1)}};
+static threefry4x32_ctr_t good_threefry4x32_12 = {{0xe461db1c,0xfdfa62a7,0x0b10cd2a,0xa3679758}};
+static threefry4x32_ctr_t good_threefry4x32_20 = {{0xf82cf576,0x162ca116,0x3afefe23,0x54cc64ac}};
+static threefry4x64_ctr_t good_threefry4x64_72 = {{R123_64BIT(0x73ff3f7a0b878f68),R123_64BIT(0x6668f6bbaba83f31),R123_64BIT(0x088eb85d40fbdb56),R123_64BIT(0xd1f39136adc96552)}};
+
+#if R123_USE_AES_NI
+static ars4x32_ctr_t good_ars4x32_5 = {{0x279f6b0b, 0xd0b1edf6, 0x6044b433, 0x66c06817}};
+static ars4x32_ctr_t good_ars4x32_7 = {{0xa9cd8055, 0x80272a47, 0x4b7ab914, 0x5351d78e}};
+static aesni4x32_ctr_t good_aesni4x32_10 = {{0x1e68c9fd, 0x347b0858, 0x503d8d91, 0x9e73460a}};
+#endif
+
+/*
+ * Initializes a ukey and counter to known values with a known
+ * offset and calls the test function with that ukey, ctr and a
+ * count and closure.  keyctroffset should be a variable
+ * initialized from the environment to avoid compiler
+ * optimization from known constants (after inlining).
+ */
+#define TEST_TPL(NAME, N, W, R) \
+if ((strncmp(#NAME, "aes", 3) == 0 || strncmp(#NAME, "ars", 3) == 0) && !haveAESNI()) { \
+    printf("AESNI not available on this hardware\n"); \
+} else { \
+    NAME##N##x##W##_ukey_t ukey={{0}};            \
+    NAME##N##x##W##_ctr_t ctr={{0}};            \
+    size_t xi; \
+    for (xi = 0; xi < sizeof(ukey)/sizeof(ukey.v[0]); xi++) { \
+	switch (xi) { \
+	    case 0: ukey.v[xi] = 0xdeadbeef+keyctroffset; break; \
+	    case 1: ukey.v[xi] = 0x12345678+keyctroffset; break; \
+	    case 2: ukey.v[xi] = 0xc0debad1+keyctroffset; break; \
+	    case 3: ukey.v[xi] = 0x31415926+keyctroffset; break; \
+	} \
+    } \
+    for (xi = 0; xi < N; xi++) { \
+	switch (xi) { \
+	    case 0: ctr.v[xi] = 0x00000000+keyctroffset; break; \
+	    case 1: ctr.v[xi] = 0x10000000+keyctroffset; break; \
+	    case 2: ctr.v[xi] = 0x20000000+keyctroffset; break; \
+	    case 3: ctr.v[xi] = 0x30000000+keyctroffset; break; \
+	} \
+    } \
+    NAME##N##x##W##_##R(ukey, ctr, good_##NAME##N##x##W##_##R, count, infop); \
+}
+
+#include "util_expandtpl.h"
+
+#endif /* TIME_INITKEYCTR_H__ */
diff --git a/examples/time_misc.h b/examples/time_misc.h
new file mode 100644
index 0000000..5ca0768
--- /dev/null
+++ b/examples/time_misc.h
@@ -0,0 +1,53 @@
+/*
+Copyright 2010-2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#ifndef TIME_MISC_H__
+#define TIME_MISC_H__ 1
+/* Miscellaneous common definitions for time_*.c */
+
+#if TRY_OTHER
+/*
+ * Compare with some other conventional RNGs for timing
+ * performance.  We do not distribute those RNGs or
+ * their timing code.
+ */
+# include "util_other.h"
+#endif
+
+const char *progname;
+int verbose = 0;
+int debug = 0;
+int numtrials = 5;
+double sec_per_trial = 0.2;
+
+#define PREFIX "test_"
+
+#endif /* TIME_MISC_H__ */
diff --git a/examples/time_opencl.c b/examples/time_opencl.c
new file mode 100644
index 0000000..939d0a0
--- /dev/null
+++ b/examples/time_opencl.c
@@ -0,0 +1,199 @@
+/*
+Copyright 2010-2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+/*
+ * OpenCL test and timing harness for Random123 RNGs.  Uses macros
+ * and util_expandtpl.h to "templatize" over all the different
+ * permutations of RNGs and NxW and R.
+ */
+
+#define R123_USE_AES_NI	0 /* never use this for OpenCL */
+
+#include "util_opencl.h"
+
+#include "Random123/philox.h"
+#include "Random123/threefry.h"
+
+#include "time_misc.h"
+#include "util_print.h"
+
+#define TEST_TPL(NAME, N, W, R) \
+void NAME##N##x##W##_##R(NAME##N##x##W##_ukey_t ukey, NAME##N##x##W##_ctr_t ctr, NAME##N##x##W##_ctr_t kactr, uint count, UCLInfo *tp) \
+{ \
+    const char *kernelname = PREFIX #NAME #N "x" #W "_" #R; \
+    NAME##N##x##W##_ctr_t *hC; \
+    int n, niterations = numtrials; /* we make niterations + 2 (warmup, overhead) calls to the kernel */ \
+    int narg; \
+    double cur_time; \
+    size_t i; \
+    cl_int err; \
+    cl_mem dC; \
+    cl_kernel kern; \
+    \
+    /* create handle to kernel in program */ \
+    dprintf(("%s kernel\n", kernelname)); \
+    CHECKERR(kern = clCreateKernel(tp->prog, kernelname, &err)); \
+    const size_t nworkitems = tp->wgsize * tp->cores; \
+    const size_t szC = nworkitems*sizeof(hC[0]); \
+    /* allocate and initialize vector of counters in host memory */ \
+    CHECKNOTZERO(hC = (NAME##N##x##W##_ctr_t *) malloc(szC)); \
+    for (i = 0; i < nworkitems; i++) { \
+	int xi; \
+	for (xi = 0; xi < N; xi++) \
+	    hC[i].v[xi] = 0; \
+    } \
+    /* allocate vector of counters in device memory, initialize from current host memory */ \
+    CHECKERR(dC = clCreateBuffer(tp->ctx, CL_MEM_READ_WRITE | CL_MEM_COPY_HOST_PTR, szC, hC, &err)); \
+    /* see comment in time_random123.h for why this is cl_ulong */ \
+    cl_ulong kcount = 0;                                                    \
+    double basetime = 0., dt = 0., mindt = 0.; \
+    /* first two iterations are for warmup & baseline */ \
+    for (n = -2; n < niterations; n++) { \
+	if (n == -2) { \
+	    if (count == 0) { \
+		/* try to set a good guess for count */ \
+		count = (uint)(tp->cycles ? tp->cycles * 1e-8 : 10000); \
+		dprintf(("starting with count = %u\n", count)); \
+	    } \
+	    kcount = count; \
+	} else if (n == -1) { \
+	    /* use first iteration time to calibrate count to get approximately sec_per_trial */ \
+	    if (count > 1) { \
+		count = (uint)(count * sec_per_trial / dt); \
+		dprintf(("scaled count = %u\n", count)); \
+	    } \
+	    /* second iteration is to calculate overhead after warmup */ \
+	    kcount = 1; \
+	} else if (n == 0) { \
+	    int xj; \
+	    /* Check that we got the expected value */ \
+	    for (xj = 0; xj < N; xj++) { \
+		if (kactr.v[xj] != hC[0].v[xj]) { \
+		    printf("%s mismatch: xj = %d, expected\n", kernelname, xj); \
+		    printline_##NAME##N##x##W##_##R(ukey, ctr, &kactr, 1); \
+		    printf("    but got\n"); \
+		    printline_##NAME##N##x##W##_##R(ukey, ctr, hC, 1); \
+		    if(!debug) exit(1);                                 \
+                    else break;                                         \
+		} else { \
+		    dprintf(("%s matched word %d\n", kernelname, xj)); \
+		} \
+	    } \
+	    basetime = dt; \
+	    if (debug||verbose) { \
+		dprintf(("%s %.3f secs for %lu workitems test on device %s\n", \
+		       kernelname, basetime, (unsigned long) nworkitems, \
+		       tp->devname)); \
+		printline_##NAME##N##x##W##_##R(ukey, ctr, hC, (verbose < 2) ? 1 : nworkitems); \
+	    } \
+	    kcount = count + 1; \
+	} \
+	(void)timer(&cur_time); \
+	dprintf(("setup arguments to kernel function %s\n", kernelname)); \
+	narg = 0; \
+	CHECK(clSetKernelArg(kern, narg, sizeof(kcount), (void *)&kcount)); \
+	narg++; \
+	CHECK(clSetKernelArg(kern, narg, sizeof(ukey), (void *)&ukey)); \
+	narg++; \
+	CHECK(clSetKernelArg(kern, narg, sizeof(ctr), (void *)&ctr)); \
+	narg++; \
+	CHECK(clSetKernelArg(kern, narg, sizeof(cl_mem), (void *)&dC)); \
+	dprintf(("queue kernel for execution on device %s\n", tp->devname)); \
+	CHECK(clEnqueueNDRangeKernel(tp->cmdq, kern, 1, 0, &nworkitems, &tp->wgsize, 0, 0, 0)); \
+	CHECK(clFlush(tp->cmdq)); \
+	dprintf(("copy results from device memory to host memory\n")); \
+	CHECK(clEnqueueReadBuffer(tp->cmdq, dC, CL_FALSE, 0, szC, hC, 0, 0, 0)); \
+	CHECK(clFlush(tp->cmdq)); \
+	dprintf(("synchronize\n")); \
+	CHECK(clFinish(tp->cmdq)); \
+	dt = timer(&cur_time); \
+	dprintf(("iteration %d took %.3f secs\n", n, dt)); \
+	ALLZEROS(hC, nworkitems, N); \
+	if (n == 0 || dt < mindt) mindt = dt; \
+    } \
+    if (count > 1) { \
+	double tpB = (mindt - basetime) / ( (count - 1.) * nworkitems * (N * W / 8.) ); \
+	printf("%-17s %#5.3g cpB, %#5.3g GB/s %u B granularity (best %u in %.3f s - %.6f s)\n", \
+	       kernelname + sizeof(PREFIX) - 1, \
+	       tpB * tp->cycles , 1e-9/tpB, \
+	       (uint)(N*W/8), count, mindt, basetime ); \
+	fflush(stdout); \
+    } \
+    /* free host and device memory */ \
+    free(hC); \
+    CHECK(clReleaseMemObject(dC)); \
+    /* free the kernel */ \
+    CHECK(clReleaseKernel(kern)); \
+}
+
+#include "util_expandtpl.h"
+
+/* Include the preprocessed source code, stashed in a literal string */
+#include "time_opencl_kernel.i"
+
+int main(int argc, char **argv)
+{
+    const char *cp;
+    uint count = 0;
+    UCLInfo *infop;
+    int keyctroffset = 0;
+    
+    progname = argv[0];
+    if (argc > 3|| (argv[1] && argv[1][0] == '-')) {
+	fprintf(stderr, "Usage: %s [COUNT [DEVICESTRING]]\n", progname);
+	exit(1);
+    }
+    if (argc  > 1)
+	count = atoi(argv[1]);
+    if ((cp = getenv("TIME_OPENCL_VERBOSE")) != NULL) {
+	verbose = atoi(cp);
+    }
+    if ((cp = getenv("TIME_OPENCL_DEBUG")) != NULL) {
+	debug = atoi(cp);
+    }
+    if ((cp = getenv("TIME_OPENCL_OFFSET")) != NULL) {
+	keyctroffset = atoi(cp);
+    }
+    if ((cp = getenv("TIME_OPENCL_NUMTRIALS")) != NULL) {
+        numtrials = atoi(cp);
+    }
+    if ((cp = getenv("TIME_OPENCL_SEC_PER_TRIAL")) != NULL) {
+        sec_per_trial = atof(cp);
+    }
+    if ((cp = getenv("TIME_OPENCL_BUILD_OPTIONS")) == NULL) {
+	cp = "";
+    }
+    infop = opencl_init(argc > 2 ? argv[2] : NULL, opencl_src, cp);
+    /* define macro to initialize and call the kernels */
+#   include "time_initkeyctr.h"
+    opencl_done(infop);
+    return 0;
+}
diff --git a/examples/time_opencl_kernel.ocl b/examples/time_opencl_kernel.ocl
new file mode 100644
index 0000000..dda7728
--- /dev/null
+++ b/examples/time_opencl_kernel.ocl
@@ -0,0 +1,35 @@
+/*
+Copyright 2010-2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#ifndef __OPENCL_VERSION__
+#define __OPENCL_VERSION__ 1
+#endif
+#include "time_random123.h"
diff --git a/examples/time_random123.h b/examples/time_random123.h
new file mode 100644
index 0000000..2457494
--- /dev/null
+++ b/examples/time_random123.h
@@ -0,0 +1,135 @@
+/*
+Copyright 2010-2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#ifndef TIME_RANDOM123_H__
+#define TIME_RANDOM123_H__ 1
+
+/*
+ * This file contains the performance timing kernels for Random123
+ * RNGs and a few conventional PRNGs, which have been hacked into
+ * this framework.  This code should NOT be considered as an
+ * example of using PRNGs.  A few macros try to keep it
+ * cross-platform across C (serial or threads), CUDA and OpenCL.
+ * The TEST_TPL + include util_expandtpl trick is used to
+ * template-generate kernels for all the different RNGs across
+ * NxW.
+ */
+
+#include <Random123/philox.h>
+#include <Random123/threefry.h>
+
+#ifdef __OPENCL_VERSION__
+#define KERNEL __kernel
+#define MEMTYPE __global
+#endif
+
+#ifndef KERNEL
+#define KERNEL
+#endif
+
+#ifndef MEMTYPE
+#define MEMTYPE
+#endif
+
+/* LOOK_AT forces the compiler to actually produce the code that
+   computes the elements of A.  Without it, optimizing compilers can
+   elide some or all of the computation of A (i.e., the RNG we're
+   trying to get timings for).  There are many ways to do this.  A
+   perhaps more natural way would be to keep a running sum of all the
+   results so far, but we found that gcc 4.5 and 4.6 could unroll that
+   code into a fully SSE-ized loop, which appears to be
+   unrepresentative of the kinds of optimizations that are possible in
+   practice.  I.e., we could not find any "real" use of the output of
+   the RNG that permitted SSE-ization of the RNG. */
+#define LOOK_AT(A, I, N) do{                                            \
+    if (N==4) if(R123_BUILTIN_EXPECT(!(A.v[N>2?3:0]^A.v[N>2?2:0]^A.v[N>1?1:0]^A.v[0]), 0)) ++I; \
+    if (N==2) if(R123_BUILTIN_EXPECT(!(A.v[N>1?1:0]^A.v[0]), 0)) ++I;   \
+    if (N==1) if(R123_BUILTIN_EXPECT(!(A.v[0]), 0)) ++I;                \
+    }while(0)
+
+
+/* Macro that will expand later into all the Random123 PRNGs for NxW_R */
+/* Note that making the first argument uint seems to expose some
+   argument marshalling bugs in version 2.4 of the AMDAPPSDK.  Passing
+   a 64-bit (ulong) seems to fix things, but since we know the value
+   fits in 32 bits, we assign it to a 32-bit (uint) to reduce loop
+   overhead.
+*/
+#define TEST_TPL(NAME, N, W, R)                                         \
+KERNEL void test_##NAME##N##x##W##_##R(uint64_t n64, NAME##N##x##W##_ukey_t uk, NAME##N##x##W##_ctr_t ctrinit, MEMTYPE NAME##N##x##W##_ctr_t *ctr) \
+{                                                                       \
+    uint n = (uint)n64;                                                 \
+    unsigned tid = get_global_id(0);                                    \
+    uint i;                                                             \
+    NAME##N##x##W##_ctr_t c, v={{0}};                                   \
+    NAME##N##x##W##_key_t k=NAME##N##x##W##keyinit(uk);                 \
+    c = ctrinit;                                                        \
+    if( R == NAME##N##x##W##_rounds ){                                  \
+        for (i = 0; i < n; ++i) {                                       \
+	    v = NAME##N##x##W(c, k);                                    \
+	    LOOK_AT(v, i, N);                                           \
+            c.v[0]++;                                                   \
+        }                                                               \
+    }else {                                                             \
+        for (i = 0; i < n; ++i) {                                       \
+            v = NAME##N##x##W##_R(R, c, k);                             \
+	    LOOK_AT(v, i, N);                                           \
+            c.v[0]++;                                                   \
+        }                                                               \
+    }                                                                   \
+    ctr[tid] = v;                                                       \
+}
+
+/*
+ * Hackery to time GSL and XORWOW in the same framework, they can
+ * be made to look somewhat like Random123, but not with TEST_TPL
+ * above, so we undefine TRY_OTHER before including
+ * util_expandtpl.  Ugh.
+ */
+#if TRY_OTHER
+# include "time_other.h"
+# define RESTORE_OTHER 1
+#endif
+
+/* Now expand TEST_TPL for all the relevant RNGs */
+#include "util_expandtpl.h"
+
+/*
+ * Now restore TRY_OTHER if needed to that subsequent
+ * expandtpl (e.g. for time_keyctrinit) will work.
+ */
+#if RESTORE_OTHER
+# undef TRY_OTHER
+# define TRY_OTHER 1
+# undef RESTORE_OTHER
+#endif
+
+#endif /* TIME_RANDOM123_H__ */
diff --git a/examples/time_serial.c b/examples/time_serial.c
new file mode 100644
index 0000000..523cdce
--- /dev/null
+++ b/examples/time_serial.c
@@ -0,0 +1,154 @@
+/*
+Copyright 2010-2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+/*
+ * Single-core CPU test and timing harness for Random123 RNGs.
+ * Uses macros and util_expandtpl.h to "templatize" over all the
+ * different permutations of RNGs and NxW and R.
+ */
+#include "util.h"
+
+#include "Random123/philox.h"
+#include "Random123/threefry.h"
+#include "Random123/ars.h"
+#include "Random123/aes.h"
+
+#include "time_misc.h"
+#include "util_print.h"
+
+#include "util_cpu.h"
+#define KERNEL R123_STATIC_INLINE
+#define get_global_id(i)    (i)
+#include "time_random123.h"
+
+#define TEST_TPL(NAME, N, W, R) \
+void NAME##N##x##W##_##R(NAME##N##x##W##_ukey_t ukey, NAME##N##x##W##_ctr_t ctr, NAME##N##x##W##_ctr_t kactr, uint count, CPUInfo *tp) \
+{ \
+    const char *kernelname = #NAME #N "x" #W "_" #R; \
+    double cur_time; \
+    int n, niterations = numtrials; /* we make niterations + 2 (warmup, overhead) calls to the kernel */ \
+    uint kcount = 0; \
+    double basetime = 0., dt = 0., mindt = 0.; \
+    NAME##N##x##W##_ctr_t C, *hC = &C; \
+    \
+    for (n = -2; n < niterations; n++) { \
+	if (n == -2) { \
+	    if (count == 0) { \
+		/* try to set a good guess for count */ \
+		count = (uint)(tp->hz ? tp->hz * 1e-5 : 100000); \
+		dprintf(("starting with count = %u\n", count)); \
+	    } \
+	    kcount = count; \
+	} else if (n == -1) { \
+	    /* use first iteration time to calibrate count to get approximately sec_per_trial */ \
+	    if (count > 1) { \
+		count = (uint)(count * sec_per_trial / dt); \
+		dprintf(("scaled count = %u\n", count)); \
+	    } \
+	    /* second iteration is to calculate overhead after warmup */ \
+	    kcount = 1; \
+	} else if (n == 0) { \
+	    int xj; \
+	    /* Check that we got the expected value */ \
+	    for (xj = 0; xj < N; xj++) { \
+		if (kactr.v[xj] != hC[0].v[xj]) { \
+		    printf("%s mismatch: xj = %d, expected\n", kernelname, xj); \
+		    printline_##NAME##N##x##W##_##R(ukey, ctr, &kactr, 1); \
+		    printf("    but got\n"); \
+		    printline_##NAME##N##x##W##_##R(ukey, ctr, hC, 1); \
+		    if(!debug) exit(1);                                 \
+                    else break;                                         \
+		} else { \
+		    dprintf(("%s matched word %d\n", kernelname, xj)); \
+		} \
+	    } \
+	    basetime = dt; \
+	    if (debug||verbose) { \
+		dprintf(("%s %.3f secs\n", kernelname, basetime)); \
+		printline_##NAME##N##x##W##_##R(ukey, ctr, hC, 1); \
+	    } \
+	    kcount = count + 1; \
+	} \
+	dprintf(("call function %s\n", kernelname)); \
+	(void)timer(&cur_time); \
+	test_##NAME##N##x##W##_##R(kcount, ukey, ctr, hC); \
+	dt = timer(&cur_time); \
+	dprintf(("iteration %d took %.3f secs\n", n, dt)); \
+	ALLZEROS(hC, 1, N); \
+	if (n == 0 || dt < mindt) mindt = dt; \
+    } \
+    if (count > 1) { \
+	double tpB = (mindt - basetime) / ( (kcount - 1.) * (N * W / 8.) ); \
+	printf("%-17s %#5.3g cpB %#5.3g GB/s %u B granularity (best %u in %.3f s - %.6f s)\n", \
+	       kernelname, tpB * tp->hz, 1e-9/tpB, \
+	       (uint)(N*W/8), kcount, mindt, basetime ); \
+	fflush(stdout); \
+    } \
+}
+
+#include "util_expandtpl.h"
+
+int main(int argc, char **argv)
+{
+    char *cp;
+    uint count = 0;
+    CPUInfo *infop;
+    int keyctroffset = 0;
+    
+    progname = argv[0];
+    if (argc > 3|| (argv[1] && argv[1][0] == '-')) {
+	fprintf(stderr, "Usage: %s [COUNT]]\n", progname);
+	exit(1);
+    }
+    if (argc > 1)
+	count = atoi(argv[1]);
+    if ((cp = getenv("TIME_SERIAL_VERBOSE")) != NULL) {
+	verbose = atoi(cp);
+    }
+    if ((cp = getenv("TIME_SERIAL_DEBUG")) != NULL) {
+	debug = atoi(cp);
+    }
+    if ((cp = getenv("TIME_SERIAL_OFFSET")) != NULL) {
+	keyctroffset = atoi(cp);
+    }
+    if ((cp = getenv("TIME_SERIAL_NUMTRIALS")) != NULL) {
+        numtrials = atoi(cp);
+    }
+    if ((cp = getenv("TIME_SERIAL_SEC_PER_TRIAL")) != NULL) {
+        sec_per_trial = atof(cp);
+    }
+    infop = cpu_init("1"); /* This is time_serial.c.  Use only one core. */
+    {
+#   include "time_initkeyctr.h"
+    cpu_done(infop);
+    }
+    return 0;
+}
diff --git a/examples/time_thread.c b/examples/time_thread.c
new file mode 100644
index 0000000..2159fe2
--- /dev/null
+++ b/examples/time_thread.c
@@ -0,0 +1,240 @@
+/*
+Copyright 2010-2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+/*
+ * Pthreads test and timing harness for Random123 RNGs.
+ * Uses macros and util_expandtpl.h to "templatize" over all the
+ * different permutations of RNGs and NxW and R.
+ */
+
+#include "util.h"
+#include <sys/stat.h>
+
+#include "Random123/philox.h"
+#include "Random123/threefry.h"
+#include "Random123/ars.h"
+#include "Random123/aes.h"
+
+#include "time_misc.h"
+#include "util_print.h"
+#include "util_cpu.h"
+#include <pthread.h>
+
+/*
+ * Main thread initializes thread_info[i].started to zero, .tid to its own
+ * pthread_self() as a placeholder.
+ * Child #i sets thread_info[i].tid to pthread_self() and then
+ * sets .started.  Only child #i ever writes to thread_info[i], and
+ * does so only once.  So searching through thread_info is race-free
+ * for get_global_id, since it only ever looking for its own pthread_self
+ * anyway.  The write to started needs to be atomic.
+ * This is all so that we can use the same kernel as OpenCL/CUDA.
+ * Note that parent keeps its own copy of thread ids returned
+ * by pthread_create in tids[] to avoid any races with thread_info.
+ */
+typedef struct {
+    int started; /* started == 1 means tid contains pthread_self() of thread */
+    pthread_t tid;
+} ThreadInfo;
+static volatile ThreadInfo *thread_info; /* thread_id state, one per thread */ \
+static int thread_count;
+
+/* Linear search should be fast enough for small thread count... */
+R123_STATIC_INLINE int get_global_id(int x)
+{
+    int i;
+    pthread_t me = pthread_self();
+    (void)x; /* why is this an arg? */
+    for (i = 0; i < thread_count; i++) {
+	if (thread_info[i].started && pthread_equal(me, thread_info[i].tid))
+	    return i;
+    }
+    fprintf(stderr, "could not find thread %lu\n", (unsigned long) me);
+    pthread_exit(NULL);
+}
+
+#define KERNEL R123_STATIC_INLINE
+#include "time_random123.h"
+
+#define TEST_TPL(NAME, N, W, R) \
+typedef struct { \
+    uint kcount; \
+    NAME##N##x##W##_ukey_t ukey; \
+    NAME##N##x##W##_ctr_t ctr; \
+    NAME##N##x##W##_ctr_t *octrs; \
+} ThreadData_##NAME##N##x##W##_##R; \
+\
+typedef struct { \
+    ThreadData_##NAME##N##x##W##_##R *tp; \
+    volatile ThreadInfo *tip; \
+} ThreadArg_##NAME##N##x##W##_##R; \
+\
+/* thread_run is launched in a new thread by pthread_create */ \
+void *thread_run_##NAME##N##x##W##_##R(void *p) \
+{ \
+    ThreadArg_##NAME##N##x##W##_##R *ta = p; \
+    ThreadData_##NAME##N##x##W##_##R *tp = ta->tp; \
+    volatile ThreadInfo *tip = ta->tip; \
+    /* store our thread id for use by get_global_info */ \
+    tip->tid = pthread_self(); \
+    tip->started = 1; \
+    test_##NAME##N##x##W##_##R(tp->kcount, tp->ukey, tp->ctr, tp->octrs); \
+    return tp; \
+}\
+void NAME##N##x##W##_##R(NAME##N##x##W##_ukey_t ukey, NAME##N##x##W##_ctr_t ctr, NAME##N##x##W##_ctr_t kactr, uint count, CPUInfo *tp) \
+{ \
+    const char *kernelname = #NAME #N "x" #W "_" #R; \
+    double cur_time; \
+    int i, n, niterations = numtrials; /* we make niterations + 2 (warmup, overhead) calls to the kernel */ \
+    double basetime = 0., dt = 0., mindt = 0.; \
+    ThreadData_##NAME##N##x##W##_##R td; /* same for all threads */ \
+    ThreadArg_##NAME##N##x##W##_##R *tap; /* args for thread_run, 1 per thread */ \
+    pthread_t me = pthread_self(); /* parent thread id */ \
+    pthread_t *tids; /* array of child thread ids */ \
+    void *vp; /* return from join */ \
+    CHECKNOTZERO(thread_info = (ThreadInfo *) malloc(sizeof(thread_info[0])*tp->ncores)); \
+    CHECKNOTZERO(tap = (ThreadArg_##NAME##N##x##W##_##R *) malloc(sizeof(tap[0])*tp->ncores)); \
+    CHECKNOTZERO(tids = (pthread_t *) malloc(sizeof(tids[0])*tp->ncores)); \
+    for (i = 0; i < tp->ncores; i++) { \
+	thread_info[i].started = 0; \
+	thread_info[i].tid = me; \
+	tap[i].tip = &thread_info[i]; \
+	tap[i].tp = &td; \
+    } \
+    thread_count = tp->ncores; \
+    CHECKNOTZERO(td.octrs = (NAME##N##x##W##_ctr_t *) malloc(sizeof(td.octrs[0])*tp->ncores)); \
+    td.ukey = ukey; \
+    td.ctr = ctr; \
+    td.kcount = 0; \
+    for (n = -2; n < niterations; n++) { \
+	if (n == -2) { \
+	    if (count == 0) { \
+		/* try to set a good guess for count */ \
+		count = (uint)(tp->hz ? tp->hz * 1e-3 : 100000); \
+		dprintf(("starting with count = %u\n", count)); \
+	    } \
+	    td.kcount = count; \
+	} else if (n == -1) { \
+	    /* use first iteration time to calibrate count to get approximately sec_per_trial */ \
+	    if (count > 1) { \
+		count = (uint)(count * sec_per_trial / dt); \
+		dprintf(("scaled count = %u\n", count)); \
+	    } \
+	    /* second iteration is to calculate overhead after warmup */ \
+	    td.kcount = 1; \
+	} else if (n == 0) { \
+	    int xj; \
+	    /* Check that we got the expected value */ \
+	    for (xj = 0; xj < N; xj++) { \
+		if (kactr.v[xj] != td.octrs[0].v[xj]) { \
+		    printf("%s mismatch: xj = %d, expected\n", kernelname, xj); \
+		    printline_##NAME##N##x##W##_##R(ukey, ctr, &kactr, 1); \
+		    printf("    but got\n"); \
+		    printline_##NAME##N##x##W##_##R(ukey, ctr, td.octrs, 1); \
+                    if(!debug) exit(1);                                 \
+                    else break;                                         \
+		} else { \
+		    dprintf(("%s matched word %d\n", kernelname, xj)); \
+		} \
+	    } \
+	    basetime = dt; \
+	    if (verbose) { \
+		dprintf(("%s %.3f secs\n", kernelname, basetime)); \
+		printline_##NAME##N##x##W##_##R(ukey, ctr, td.octrs, tp->ncores); \
+	    } \
+	    td.kcount = count + 1; \
+	} \
+	dprintf(("call function %s\n", kernelname)); \
+	(void)timer(&cur_time); \
+	for (i = 0; i < tp->ncores; i++) { \
+	    CHECKZERO(pthread_create(&tids[i], NULL, thread_run_##NAME##N##x##W##_##R, &tap[i])); \
+	    dprintf(("thread %d started\n", i)); \
+	} \
+	for (i = 0; i < thread_count; i++) { \
+	    CHECKZERO(pthread_join(tids[i], &vp)); \
+	    dprintf(("thread %d done\n", i)); \
+	} \
+	dt = timer(&cur_time); \
+	dprintf(("iteration %d took %.3f secs\n", n, dt)); \
+	ALLZEROS(td.octrs, tp->ncores, N); \
+	if (n == 0 || dt < mindt) mindt = dt; \
+    } \
+    if (count > 1) { \
+	double tpB = (mindt - basetime) / ( (td.kcount - 1.) * tp->ncores * (N * W / 8.) ); \
+	printf("%-17s %#5.3g cpB %#5.3g GB/s %u B granularity (best %u in %.3f s - %.6f s)\n", \
+	       kernelname, tpB * tp->hz * tp->ncores, 1e-9/tpB, \
+	       (uint)(N*W/8), td.kcount, mindt, basetime ); \
+	fflush(stdout); \
+    } \
+    thread_count = 0; \
+    free((void *) thread_info); \
+    thread_info = NULL; \
+    free(td.octrs); \
+    free(tap); \
+    free(tids); \
+}
+
+#include "util_expandtpl.h"
+
+int main(int argc, char **argv)
+{
+    char *cp;
+    uint count = 0;
+    CPUInfo *infop;
+    int keyctroffset = 0;
+    
+    progname = argv[0];
+    if (argc > 3|| (argv[1] && argv[1][0] == '-')) {
+	fprintf(stderr, "Usage: %s [COUNT [NCORES]]\n", progname);
+	exit(1);
+    }
+    if (argc > 1)
+	count = atoi(argv[1]);
+    if ((cp = getenv("TIME_THREAD_VERBOSE")) != NULL) {
+	verbose = atoi(cp);
+    }
+    if ((cp = getenv("TIME_THREAD_DEBUG")) != NULL) {
+	debug = atoi(cp);
+    }
+    if ((cp = getenv("TIME_THREAD_OFFSET")) != NULL) {
+	keyctroffset = atoi(cp);
+    }
+    if ((cp = getenv("TIME_THREAD_NUMTRIALS")) != NULL) {
+        numtrials = atoi(cp);
+    }
+    if ((cp = getenv("TIME_THREAD_SEC_PER_TRIAL")) != NULL) {
+        sec_per_trial = atof(cp);
+    }
+    infop = cpu_init(argc > 2 ? argv[2] : NULL);
+#   include "time_initkeyctr.h"
+    cpu_done(infop);
+    return 0;
+}
diff --git a/examples/timers.cpp b/examples/timers.cpp
new file mode 100644
index 0000000..9150613
--- /dev/null
+++ b/examples/timers.cpp
@@ -0,0 +1,238 @@
+/*
+Copyright 2010-2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include "util.h"
+
+#include <Random123/philox.h>
+#include <Random123/threefry.h>
+#include <Random123/aes.h>
+#include <Random123/ars.h>
+#include <cstdio>
+#include <cmath>
+#include <string>
+#include <iostream>
+#include <sstream>
+#include <cstring>
+#if R123_USE_X86INTRIN_H
+#include <x86intrin.h>
+#endif
+#include "util_demangle.hpp"
+#include "util_cpu.h"
+
+using namespace r123;
+
+const char *progname;
+int debug = 0;
+
+using namespace std;
+
+namespace{
+    template <typename B> void timer();
+} // namespace <anon>
+
+int main(int argc, char **argv){
+    progname = argv[0];
+    debug = 0;
+#if R123_USE_AES_NI
+    if( argc == 1 || strcmp(argv[1], "ARS")==0 ){
+    if(haveAESNI()){
+        timer<ARS1xm128i_R<5> >();
+        timer<ARS4x32_R<5> >();
+        timer<ARS1xm128i_R<7> >();
+        timer<ARS4x32_R<7> >();
+        timer<ARS1xm128i_R<10> >();
+        timer<AESNI1xm128i >();
+    }else{
+        cout << "Skipping Bijections that use AES-NI instructions that are not available on this platform\n";
+    } 
+    }
+#else
+    cout << "This binary is not compiled with AES-NI support.  Skipping the ARS bijections\n";
+#endif // R123_USE_AES_NI
+
+    if( argc == 1 || strcmp(argv[1], "AES")==0 ){
+#if R123_USE_AES_OPENSSL
+    cout << "\n";
+    timer<AESOpenSSL16x8>();
+#endif
+    }
+
+    if( argc == 1 || strcmp(argv[1], "Threefry2x64")==0 ){
+    cout << "\n";
+    timer<Threefry2x64_R<13> >();
+    timer<Threefry2x64_R<20> >();
+    timer<Threefry2x64 >();
+    }
+
+    if( argc == 1 || strcmp(argv[1], "Threefry4x32")==0 ) {
+    cout << "\n";
+    timer<Threefry4x32_R<12> >();
+    timer<Threefry4x32_R<20> >();
+    timer<Threefry4x32 >();
+    }
+
+    if( argc == 1 || strcmp(argv[1], "Threefry4x64")==0 ){
+    cout << "\n";
+    timer<Threefry4x64_R<12> >();
+    timer<Threefry4x64_R<20> >();
+    timer<Threefry4x64 >();
+    timer<Threefry4x64_R<72> >();
+    }
+
+#if R123_USE_PHILOX_64BIT
+    if( argc == 1 || strcmp(argv[1], "Philox2x64") == 0 ){
+    cout << "\n";
+    timer<Philox2x64_R<6> >();
+    timer<Philox2x64_R<10> >();
+    }
+
+    if( argc == 1 || strcmp(argv[1], "Philox4x64") == 0 ){
+    cout << "\n";
+    timer<Philox4x64_R<7> >();
+    timer<Philox4x64_R<10> >();
+    }
+#else
+    cout << "\n64x64->128bit multiplication is not implmented.  Skipping Philox-Nx64 bijections\n";
+#endif
+
+    if( argc == 1 || strcmp(argv[1], "Philox4x32") == 0 ){
+    cout << "\n";
+    timer<Philox4x32_R<7> >();
+    timer<Philox4x32_R<10> >();
+    }
+
+    return 0;
+}
+
+    
+namespace{
+
+// To prevent the compiler from noticing that the result of the
+// bijection is never used and eliding the entire calculation, we
+// accumulate the output of millions of calls to the bijection.  All
+// the ctr_types are sufficiently container-like that we can just
+// loop over the contents, doing += on each value_type
+template <typename CtrType>
+CtrType& operator+=(CtrType& lhs, CtrType rhs){ 
+    typename CtrType::const_iterator rp = rhs.cbegin();
+    for(typename CtrType::iterator lp=lhs.begin(); lp!=lhs.end(); ++lp)
+            *lp ^= *rp++;
+        return lhs; 
+}
+
+// We've accumulated it, but we still have to use it.  A non-zero
+// test serves the purpose:
+template <typename CtrType>
+bool nz(const CtrType v){
+    for(typename CtrType::const_iterator vp=v.cbegin(); vp!=v.cend(); ++vp)
+        if( *vp ) return true;
+    return false;
+}
+
+#if R123_USE_AES_NI
+// The "obvious" solution for ctr_types whose value_type doesn't
+// have += defined (e.g., m128i) would be to overload += on the
+// value_type.  But we can't do that in gcc because m128i is typedefed
+// to a fancy compiler-specific builtin type, and you can only overload
+// += on classes and enums.  So instead we specialize += on the
+// array instead of on the value_type:
+template<> 
+r123array1xm128i& operator+=(r123array1xm128i& lhs, r123array1xm128i rhs){
+    typedef r123array1xm128i CtrType;
+    CtrType::const_iterator rp = rhs.cbegin();
+    for(CtrType::iterator lp=lhs.begin(); lp!=lhs.end(); ++lp)
+        lp->m = _mm_xor_si128(*lp, *rp++);
+    return lhs;
+}
+#endif
+
+template <typename B>
+void timer(){
+    typedef typename B::ctr_type ctr_type;
+    ctr_type sum = {{}};
+    uint_fast64_t N = 1000000;    // First try only a few thousand...
+    B b;
+    int bytes_per_call = sizeof(ctr_type);
+    cout << demangle(b) << ": gran: " << bytes_per_call;
+
+    ctr_type c0 = {{}};
+    const char *envp;
+    if((envp = getenv("TIMERS_COUNTER"))){
+        std::istringstream iss((std::string(envp)));
+        iss >> c0;
+    }
+     
+    typename B::ukey_type uk = {{}};
+    if( (envp = getenv("TIMERS_KEY"))){
+        std::istringstream iss((std::string(envp)));
+        iss >> uk;
+    }
+    typename B::key_type k(uk);
+   
+    ctr_type c = c0;
+    double clk;
+    ::timer(&clk);
+    for(uint_fast64_t i=0; i<N; ++i){
+        c.incr();
+        sum += b(c, k);
+    }
+    double dur = ::timer(&clk);
+    double clockspeed = clockspeedHz(0, 0);
+
+    double bestrate = 0.;
+    double bestdur = 0.;
+    uint_fast64_t bestN = 0;
+    for(size_t t=0; t<5; ++t){
+        ctr_type c = c0;
+        N = (uint_fast64_t)(N*(0.1/dur));
+        ::timer(&clk);
+        for(uint_fast64_t i=0; i<N; ++i){
+            c.incr();
+            sum += b(c, k);
+        }
+        dur = ::timer(&clk);
+        double rate = N*bytes_per_call/dur;
+        if( rate > bestrate ){
+            bestrate = rate;
+            bestN = N;
+            bestdur = dur;
+        }
+    }
+    cout << " (best of 5) " << bestN << " bijections in " << bestdur << " sec. rate: " << bestrate*1.e-9 << "GB/s  cpB: " << clockspeed/bestrate << endl;
+        
+    if(!nz(sum))
+        cout << "Don't let the compiler optimize it all away... sum==0.  That's a surprise!\n";
+}
+
+} // namespace <anonymous>
+
+
diff --git a/examples/u01fixedpt.h b/examples/u01fixedpt.h
new file mode 100644
index 0000000..f81895b
--- /dev/null
+++ b/examples/u01fixedpt.h
@@ -0,0 +1,201 @@
+/*
+Copyright 2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#ifndef _random123_ufixed01_dot_h_
+#define _random123_ufixed01_dot_h_
+
+#include "features/compilerfeatures.h"
+
+/** @defgroup u01fixedpt_closed_open_W_M The u01fixedpt conversion functions
+
+    These functions convert unsigned W-bit integers to uniformly
+    spaced real values (float or double) between 0.0 and 1.0 with
+    mantissas of M bits.
+
+    PLEASE THINK CAREFULLY BEFORE USING THESE FUNCTIONS.  THEY MAY
+    NOT BE WHAT YOU WANT.  YOU MAY BE MUCH BETTER SERVED BY THE
+    FUNCTIONS IN ./uniform.hpp.
+
+    These functions produce a finite number *uniformly spaced* values
+    in the range from 0.0 to 1.0 with uniform probability.  The price
+    of uniform spacing is that they may not utilize the entire space
+    of possible outputs.  E.g., u01fixedpt_closed_open_32_24 will never
+    produce a non-zero value less than 2^-24, even though such values
+    are representable in single-precision floating point.
+
+    There are 12 functions, corresponding to the following choices:
+
+     -  W = 32 or 64
+     -  M = 24 or 53 (float or double)
+     -  open0 or closed0 : whether the output is open or closed at 0.0
+     -  open1 or closed1 : whether the output is open or closed at 1.0 
+
+    The W=64 M=24 cases are not implemented.  To obtain an M=24 float
+    from a uint64_t, use a cast (possibly with right-shift and bitwise
+    and) to convert some of the bits of the uint64_t to a uint32_t and
+    then use u01fixedpt_x_y_32_24.  Note that the 64-bit random integers
+    produced by the Random123 library are random in "all the bits", so
+    with a little extra effort you can obtain two floats this way --
+    one from the high bits and one from the low bits of the 64-bit
+    value.
+
+    If the output is open at one end, then the extreme
+    value (0.0 or 1.0) will never be returned.  Conversely, if the output
+    is closed at one end, then the extreme value is a possible
+    return value.
+
+    The values returned are as follows.  All values are returned
+    with equal frequency, except as noted in the closed_closed case:
+
+     closed_open:  Let P=min(M,W)
+        there are 2^P possible output values:
+        {0, 1, 2, ..., 2^P-1}/2^P
+
+     open_closed:  Let P=min(M,W)
+        there are 2^P possible values:
+        {1, 2, ..., 2^P}/2^P
+
+     open_open:   Let P=min(M, W+1) 
+        there are 2^(P-1) possible values:
+        {1, 3, 5, ..., 2^P-1}/2^P
+
+     closed_closed:  Let P=min(M, W-1)
+        there are 1+2^P possible values:
+        {0, 1, 2, ... 2^P}/2^P
+        The extreme values (0.0 and 1.0) are
+        returned with half the frequency of
+        all others.
+    
+    On x86 hardware, especially on 32bit machines, the use of
+    internal 80bit x87-style floating point may result in
+    'bonus' precision, which may cause closed intervals to not
+    be really closed, i.e. the conversions below might not
+    convert UINT{32,64}_MAX to 1.0.  This sort of issue is
+    likely to occur when storing the output of a u01fixedpt_*_32_24
+    function in a double, though one can imagine getting extra
+    precision artifacts when going from 64_53 as well.  Other
+    artifacts may exist on some GPU hardware.  The tests in
+    kat_u01_main.h try to expose such issues, but caveat emptor.
+
+    @{
+    @cond HIDDEN_FROM_DOXYGEN
+ */
+
+/* Hex floats were standardized by C in 1999, but weren't standardized
+   by C++ until 2011.  So, we're obliged to write out our constants in
+   decimal, even though they're most naturally expressed in binary.
+   We cross our fingers and hope that the compiler does the compile-time
+   constant arithmetic properly.
+*/
+#define R123_0x1p_31f (1.f/(1024.f*1024.f*1024.f*2.f))
+#define R123_0x1p_24f (128.f*R123_0x1p_31f)
+#define R123_0x1p_23f (256.f*R123_0x1p_31f)
+#define R123_0x1p_32  (1./(1024.*1024.*1024.*4.))
+#define R123_0x1p_63 (2.*R123_0x1p_32*R123_0x1p_32)
+#define R123_0x1p_53 (1024.*R123_0x1p_63)
+#define R123_0x1p_52 (2048.*R123_0x1p_63)
+
+/** @endcond */
+
+#ifndef R123_USE_U01_DOUBLE
+#define R123_USE_U01_DOUBLE
+#endif
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+/* narrowing conversions:  uint32_t to float */
+R123_CUDA_DEVICE R123_STATIC_INLINE float u01fixedpt_closed_closed_32_24(uint32_t i){
+    /* N.B.  we ignore the high bit, so output is not monotonic */
+    return ((i&0x7fffffc0) + (i&0x40))*R123_0x1p_31f; /* 0x1.p-31f */
+}
+
+R123_CUDA_DEVICE R123_STATIC_INLINE float u01fixedpt_closed_open_32_24(uint32_t i){
+    return (i>>8)*R123_0x1p_24f; /* 0x1.0p-24f; */
+}
+
+R123_CUDA_DEVICE R123_STATIC_INLINE float u01fixedpt_open_closed_32_24(uint32_t i){
+    return (1+(i>>8))*R123_0x1p_24f; /* *0x1.0p-24f; */
+}
+
+R123_CUDA_DEVICE R123_STATIC_INLINE float u01fixedpt_open_open_32_24(uint32_t i){
+    return (0.5f+(i>>9))*R123_0x1p_23f; /* 0x1.p-23f; */
+}
+
+#if R123_USE_U01_DOUBLE
+/* narrowing conversions:  uint64_t to double */
+R123_CUDA_DEVICE R123_STATIC_INLINE double u01fixedpt_closed_closed_64_53(uint64_t i){
+    /* N.B.  we ignore the high bit, so output is not monotonic */
+    return ((i&R123_64BIT(0x7ffffffffffffe00)) + (i&0x200))*R123_0x1p_63; /* 0x1.p-63; */
+}
+
+R123_CUDA_DEVICE R123_STATIC_INLINE double u01fixedpt_closed_open_64_53(uint64_t i){
+    return (i>>11)*R123_0x1p_53; /* 0x1.0p-53; */
+}
+
+R123_CUDA_DEVICE R123_STATIC_INLINE double u01fixedpt_open_closed_64_53(uint64_t i){
+    return (1+(i>>11))*R123_0x1p_53; /* 0x1.0p-53; */
+}
+
+R123_CUDA_DEVICE R123_STATIC_INLINE double u01fixedpt_open_open_64_53(uint64_t i){
+    return (0.5+(i>>12))*R123_0x1p_52; /* 0x1.0p-52; */
+}
+
+/* widening conversions:  u32 to double */
+R123_CUDA_DEVICE R123_STATIC_INLINE double u01fixedpt_closed_closed_32_53(uint32_t i){
+    /* j = i+(i&1) takes on 2^31+1 possible values with a 'trapezoid' distribution:
+      p_j =  1 0 2 0 2 .... 2 0 2 0 1
+      j   =  0 1 2 3 4 ....        2^32
+      by converting to double *before* doing the add, we don't wrap the high bit.
+    */
+    return (((double)(i&1)) + i)*R123_0x1p_32; /* 0x1.p-32; */
+}
+
+R123_CUDA_DEVICE R123_STATIC_INLINE double u01fixedpt_closed_open_32_53(uint32_t i){
+    return i*R123_0x1p_32; /* 0x1.p-32; */
+}
+
+R123_CUDA_DEVICE R123_STATIC_INLINE double u01fixedpt_open_closed_32_53(uint32_t i){
+    return (1.+i)*R123_0x1p_32; /* 0x1.p-32; */
+}
+
+R123_CUDA_DEVICE R123_STATIC_INLINE double u01fixedpt_open_open_32_53(uint32_t i){
+    return (0.5+i)*R123_0x1p_32; /* 0x1.p-32; */
+}
+#endif /* R123_USE_U01_DOUBLE */
+
+#ifdef __cplusplus
+}
+#endif
+
+/** @} */
+#endif
diff --git a/examples/ua.hpp b/examples/ua.hpp
new file mode 100644
index 0000000..e3132d9
--- /dev/null
+++ b/examples/ua.hpp
@@ -0,0 +1,101 @@
+/*
+Copyright 2010-2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#if __cplusplus<201103L
+#error "This file uses C++11 features: <array> and <type_traits> and trailing return types"
+#endif
+
+#ifndef __r123_ua_dot_hpp
+#define __r123_ua_dot_hpp
+// uniform.hpp provides functions for converting single integers
+// to uniformly distributed reals.
+//
+// This file takes r123arrays of integers and converts them into
+// std::arrays of floating point type.  Why std::array and not
+// r123array?  Because with r123array, the size is baked into the name
+// and is not a template parameter.  Since it's not a template
+// parameter, we can't manufacture an r123array of the right size
+// during template instantiation.
+//
+// This file may not be as portable, and has not been tested as
+// rigorously as the files in the library itself, i.e., those in
+// ../include/Random123.  Nevertheless, we hope it is useful and we
+// encourage developers to copy it and modify it for their own
+// use.  We invite comments and improvements.
+
+#include <Random123/features/compilerfeatures.h>
+#include <array>
+#include "uniform.hpp"
+
+namespace r123{
+
+template <typename Ftype, typename IAtype>
+static inline auto ua01(IAtype in) -> 
+    std::array<Ftype, IAtype::static_size>
+{
+    std::array<Ftype, IAtype::static_size> ret;
+    size_t i=0;
+    for(auto e : in){
+        ret[i++] = u01<Ftype>(e);
+    }
+    return ret;
+}
+
+template <typename Ftype, typename IAtype>
+static inline auto uaneg11(IAtype in) -> 
+    std::array<Ftype, IAtype::static_size>
+{
+    std::array<Ftype, IAtype::static_size> ret;
+    size_t i=0;
+    for(auto e : in){
+        ret[i++] = uneg11<Ftype>(e);
+    }
+    return ret;
+}
+
+template <typename Ftype, typename IAtype>
+static inline auto ua01fixedpt(IAtype in) -> 
+    std::array<Ftype, IAtype::static_size>
+{
+    std::array<Ftype, IAtype::static_size> ret;
+    size_t i=0;
+    for(auto e : in){
+        ret[i++] = u01fixedpt<Ftype>(e);
+    }
+    return ret;
+}
+
+
+} // namespace r123
+
+#endif
+
diff --git a/examples/uniform.hpp b/examples/uniform.hpp
new file mode 100644
index 0000000..043091b
--- /dev/null
+++ b/examples/uniform.hpp
@@ -0,0 +1,210 @@
+/*
+Copyright 2010-2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#ifndef __r123_uniform_dot_hpp
+#define __r123_uniform_dot_hpp
+
+// This file provides some simple tools that can be used to convert
+// integers of various widths to floats and doubles with various
+// characteristics.  It can be used to generate real-valued, uniformly
+// distributed random variables from the random integers produced by
+// the Random123 CBRNGs.
+//
+// There are three templated functions:
+//
+//   u01:  output is as dense as possible in (0,1}, never 0.0.  May
+//     return 1.0 if and only if the number of output mantissa bits
+//     is less than the width of the input.
+//   uneg11:  output is as dense as possible in {-1,1}, never 0.0.  May
+//     return 1.0 or -1.0 if and only if the number of output mantissa bits
+//     is less than the width of the input.
+//   u01fixedpt:  output is "fixed point", equispaced, open at both ends, 
+//      and is never 0.0, 0.5 nor 1.0.
+//
+// The behavior of u01 and uneg11 depend on the pre-processor symbol:
+// R123_UNIFORM_FLOAT_STORE.  When #defined to a non-zero value, u01
+// and uneg11 declare a volatile intermediate result, with the
+// intention of forcing architectures that have "extra bits" in their
+// floating point registers to more closely conform to IEEE
+// arithmetic.  When compiled this way, u01 and uneg11 will be
+// significantly slower, as they will incur a memory write and read on
+// every call.  Without it, they may fail the "known answer test"
+// implemented in ut_uniform_IEEEkat.cpp even though they perform
+// perfectly reasonable int to float conversions.  We have used
+// this option to get 32-bit x86 to produce the same results as
+// 64-bit x86-64 code, but we do not recommend it for normal
+// use.
+//
+// This file may not be as portable, and has not been tested as
+// rigorously as the files in the library itself, i.e., those in
+// ../include/Random123.  Nevertheless, we hope it is useful and we
+// encourage developers to copy it and modify it for their own
+// use.  We invite comments and improvements.
+
+#include <Random123/features/compilerfeatures.h>
+#include <limits>
+#if R123_USE_CXX11_TYPE_TRAITS
+#include <type_traits>
+#endif
+
+
+namespace r123{
+
+#if R123_USE_CXX11_TYPE_TRAITS
+using std::make_signed;
+using std::make_unsigned;
+#else
+// Sigh... We could try to find another <type_traits>, e.g., from
+// boost or TR1.  Or we can do it ourselves in the r123 namespace.
+// It's not clear which will cause less headache...
+template <typename T> struct make_signed{};
+template <typename T> struct make_unsigned{};
+#define R123_MK_SIGNED_UNSIGNED(ST, UT)                 \
+template<> struct make_signed<ST>{ typedef ST type; }; \
+template<> struct make_signed<UT>{ typedef ST type; }; \
+template<> struct make_unsigned<ST>{ typedef UT type; }; \
+template<> struct make_unsigned<UT>{ typedef UT type; }
+
+R123_MK_SIGNED_UNSIGNED(int8_t, uint8_t);
+R123_MK_SIGNED_UNSIGNED(int16_t, uint16_t);
+R123_MK_SIGNED_UNSIGNED(int32_t, uint32_t);
+R123_MK_SIGNED_UNSIGNED(int64_t, uint64_t);
+#if R123_USE_GNU_UINT128
+R123_MK_SIGNED_UNSIGNED(__int128_t, __uint128_t);
+#endif
+#undef R123_MK_SIGNED_UNSIGNED
+#endif
+
+#if defined(__CUDACC__) || defined(_LIBCPP_HAS_NO_CONSTEXPR)
+// Amazing! cuda thinks numeric_limits::max() is a __host__ function, so
+// we can't use it in a device function.  
+//
+// The LIBCPP_HAS_NO_CONSTEXP test catches situations where the libc++
+// library thinks that the compiler doesn't support constexpr, but we
+// think it does.  As a consequence, the library declares
+// numeric_limits::max without constexpr.  This workaround should only
+// affect a narrow range of compiler/library pairings.
+// 
+// In both cases, we find max() by computing ~(unsigned)0 right-shifted
+// by is_signed.
+template <typename T>
+R123_CONSTEXPR R123_STATIC_INLINE R123_CUDA_DEVICE T maxTvalue(){
+    typedef typename make_unsigned<T>::type uT;
+    return (~uT(0)) >> std::numeric_limits<T>::is_signed;
+ }
+#else
+template <typename T>
+R123_CONSTEXPR R123_STATIC_INLINE T maxTvalue(){
+    return std::numeric_limits<T>::max();
+}
+#endif
+
+// u01: Input is a W-bit integer (signed or unsigned).  It is cast to
+//   a W-bit unsigned integer, multiplied by Ftype(2^-W) and added to
+//   Ftype(2^(-W-1)).  A good compiler should optimize it down to an
+//   int-to-float conversion followed by a multiply and an add, which
+//   might be fused, depending on the architecture.
+//
+//  If the input is a uniformly distributed integer, then the
+//  result is a uniformly distributed floating point number in [0, 1].
+//  The result is never exactly 0.0.  
+//  The smallest value returned is 2^-W.
+//  Let M be the number of mantissa bits in Ftype.
+//  If W>M  then the largest value retured is 1.0.
+//  If W<=M then the largest value returned is the largest Ftype less than 1.0.
+template <typename Ftype, typename Itype>
+R123_CUDA_DEVICE R123_STATIC_INLINE Ftype u01(Itype in){
+    typedef typename make_unsigned<Itype>::type Utype;
+    R123_CONSTEXPR Ftype factor = Ftype(1.)/(maxTvalue<Utype>() + Ftype(1.));
+    R123_CONSTEXPR Ftype halffactor = Ftype(0.5)*factor;
+#if R123_UNIFORM_FLOAT_STORE
+    volatile Ftype x = Utype(in)*factor; return x+halffactor;
+#else
+    return Utype(in)*factor + halffactor;
+#endif
+}
+
+// uneg11: Input is a W-bit integer (signed or unsigned).  It is cast
+//    to a W-bit signed integer, multiplied by Ftype(2^-(W-1)) and
+//    then added to Ftype(2^(-W-2)).  A good compiler should optimize
+//    it down to an int-to-float conversion followed by a multiply and
+//    an add, which might be fused, depending on the architecture.
+//
+//  If the input is a uniformly distributed integer, then the
+//  output is a uniformly distributed floating point number in [-1, 1].
+//  The result is never exactly 0.0.
+//  The smallest absolute value returned is 2^-(W-1)
+//  Let M be the number of mantissa bits in Ftype.
+//  If W>M  then the largest value retured is 1.0 and the smallest is -1.0.
+//  If W<=M then the largest value returned is the largest Ftype less than 1.0
+//    and the smallest value returned is the smallest Ftype greater than -1.0.
+template <typename Ftype, typename Itype>
+R123_CUDA_DEVICE R123_STATIC_INLINE Ftype uneg11(Itype in){
+    typedef typename make_signed<Itype>::type Stype;
+    R123_CONSTEXPR Ftype factor = Ftype(1.)/(maxTvalue<Stype>() + Ftype(1.));
+    R123_CONSTEXPR Ftype halffactor = Ftype(0.5)*factor;
+#if R123_UNIFORM_FLOAT_STORE
+    volatile Ftype x = Stype(in)*factor; return x+halffactor;
+#else
+    return Stype(in)*factor + halffactor;
+#endif
+}
+
+// u01fixedpt:  Return a "fixed point" number in (0,1).  Let:
+//   W = width of Itype, e.g., 32 or 64, regardless of signedness.
+//   M = mantissa bits of Ftype, e.g., 24, 53 or 64
+//   B = min(M, W)
+// Then the 2^(B-1) possible output values are:
+//    2^-B*{1, 3, 5, ..., 2^B - 1}
+// The smallest output is: 2^-B
+// The largest output is:  1 - 2^-B
+// The output is never exactly 0.0, nor 0.5, nor 1.0.
+// The 2^(B-1) possible outputs:
+//   - are equally likely,
+//   - are uniformly spaced by 2^-(B-1),
+//   - are balanced around 0.5
+template <typename Ftype, typename Itype>
+R123_CUDA_DEVICE R123_STATIC_INLINE Ftype u01fixedpt(Itype in){
+    typedef typename make_unsigned<Itype>::type Utype;
+    R123_CONSTEXPR int excess = std::numeric_limits<Utype>::digits - std::numeric_limits<Ftype>::digits;
+    if(excess>=0){
+        R123_CONSTEXPR int ex_nowarn = (excess>=0) ? excess : 0;
+        R123_CONSTEXPR Ftype factor = Ftype(1.)/(Ftype(1.) + ((maxTvalue<Utype>()>>ex_nowarn)));
+        return (1 | (Utype(in)>>ex_nowarn)) * factor;
+    }else
+        return u01<Ftype>(in);
+}
+
+} // namespace r123
+
+#endif
+
diff --git a/examples/ut_Engine.cpp b/examples/ut_Engine.cpp
new file mode 100644
index 0000000..6673d62
--- /dev/null
+++ b/examples/ut_Engine.cpp
@@ -0,0 +1,240 @@
+/*
+Copyright 2010-2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+// TODO - really do a thorough and complete set of tests.
+
+#ifdef _MSC_FULL_VER
+// Engines have multiple copy constructors, quite legal C++, disable MSVC complaint
+#pragma warning (disable : 4521)
+#endif
+
+#include <Random123/philox.h>
+#include <Random123/aes.h>
+#include <Random123/threefry.h>
+#include <Random123/ars.h>
+#include <Random123/conventional/Engine.hpp>
+#include <Random123/ReinterpretCtr.hpp>
+#if R123_USE_CXX11_RANDOM
+#include <random>
+#endif
+#include <cassert>
+#include <iostream>
+#include <sstream>
+#include "util_demangle.hpp"
+
+using namespace std;
+using namespace r123;
+
+template <typename EType>
+typename EType::result_type kat1000(){
+    // A zero return says that no KAT is known.  This makes
+    // sense for the ReniterpretCtr-based engines which are
+    // expected to produce endian-specific results, so we
+    // don't have known answers for them.
+    return 0;
+}
+
+#if R123_USE_PHILOX_64BIT
+template <> uint64_t kat1000<Engine<Philox2x64 > >(){ return R123_64BIT(10575809911605703474); }
+#endif
+template <> uint32_t kat1000<Engine<Philox4x32 > >(){ return 1721865298; }
+template <> uint64_t kat1000<Engine<Threefry2x64 > >(){ return R123_64BIT(17578122881062615727); }
+template <> uint32_t kat1000<Engine<Threefry4x32 > >(){ return 874101813; }
+#if R123_USE_AES_OPENSSL
+template <> uint8_t  kat1000<Engine<AESOpenSSL16x8> >(){ return 0237; }
+#endif
+
+#define ASSERTEQ(A, B) assert(A==B); assert(A()==B()); assert(A()==B()); assert(A()==B())
+
+struct DummySeedSeq{
+    template <typename ITER>
+    void generate(ITER b, ITER e){
+        std::fill(b, e, 1);
+    }
+};
+
+template <typename EType>
+void doit(){
+    EType e;
+    cout << "doit<" << demangle(e) << ">";
+    typedef typename EType::cbrng_type BType;
+    typedef typename EType::result_type rtype;
+    typedef typename BType::ctr_type ctype;
+    typedef typename BType::key_type ktype;
+
+    DummySeedSeq dummyss;
+    EType ess(dummyss);
+    assert(ess != e);
+
+    rtype r1 = e();
+    rtype r2 = e(); assert( r1 != r2 );
+    rtype r3 = e(); assert( r3 != r2 && r3 != r1 );
+
+    // We've elsewhere confirmed that the underlying bijections actually "work",
+    // e.g., that they pass the Known Answer Test for some set of test vectors.
+    // Here, we simply check that the output of the Engine corresponds, in the expected
+    // way to the output of the underlying bijection.
+    
+    // Check that the first few values out of the engine correspond
+    // to output from the underlying bijection.
+    BType b;
+    ctype c1 = {{}};
+    ktype k = e.getseed();
+    e.seed(); 
+    for(int i=0; i<100; ++i){
+        c1[0]++;
+        ctype rb = b(c1, k);
+        for(typename ctype::reverse_iterator p=rb.rbegin(); p!=rb.rend(); ++p){
+            rtype re = e();
+            assert( *p == re );
+        }
+    }
+
+    // Check that discard work as expected, i.e., we can keep two
+    // engines "in sync" by discarding from one and stepping the other.
+    EType e2;
+    assert(e2 != e);
+    e2.discard(100*c1.size());
+    ASSERTEQ(e2, e);
+    
+    for(int disc=1; disc<50; ++disc){
+        e.discard(disc);
+        assert( e != e2 );
+        for(int j=0; j<disc; ++j) e2();
+        ASSERTEQ(e2, e);
+    }
+
+    // Check that saving and restoring state and the copy constructor 
+    // works as expected.
+    ostringstream oss;
+    oss << e2;
+    string s2 = oss.str();
+    int fiftyfive = 55;
+#if R123_USE_CXX11_TYPE_TRAITS
+    // With CXX11, the library has type_traits to prevent
+    // undesirable type resolution against the templated SeedSeq constructor
+    EType e3(fiftyfive);
+#else
+    // Without CXX11, we have to be careful to pass in
+    // a bona fide rtype, and not just something that will promote
+    // to an rtype, if we want the rtype constructor.
+    EType e3((rtype(fiftyfive)));
+#endif
+    EType esave(e);
+    assert(e3 != e2);
+    {
+        istringstream iss(s2);
+        iss >> e3;
+    }
+    ASSERTEQ(e3, e2);
+    assert(e3 != esave );
+    {
+        istringstream iss(s2);
+        iss >> e3;
+    }
+    ASSERTEQ(e3, esave);
+    
+    // Check that the constructor-from-rvalue works.
+    EType e4((rtype)99);
+    EType e5;
+    assert(e4 != e5);
+    assert(e4 != e3);
+    e5.seed((rtype)99);
+    ASSERTEQ(e4, e5);
+
+#if R123_USE_STD_RANDOM
+    // Check that we can use an EType with a std::distribution.
+    // Obviously, this requires <random>
+    uniform_int_distribution<int> dieroller(1, 6);
+    vector<int> hist(7);
+    int NROLL = 10000;
+    for(int i=0; i<NROLL; ++i){
+        int roll = dieroller(e5);
+        hist[roll]++;
+    }
+    double chisq = 0.;
+    double expected = NROLL/6.;
+    double var = NROLL*5./36.;
+    for(int pips=1; pips<=6; ++pips){
+        double delta = hist[pips] - expected;
+        chisq += delta*delta/var;
+    }
+    // The critical value of chisq with 6 degrees of freedom
+    // for P=0.01 is 16.81.  For P=0.05, it is 12.59
+    const double chicrit = 12.59;
+    if( chisq > chicrit ){
+        printf("std::uniform_int_distribution doesn't look random.  Chisq = %g.  Does this look like the result of a fair set of dice rolls to you?\n", chisq);
+        for(int pips=1; pips<=6; ++pips){
+            printf("%d pips  %d times\n", pips, hist[pips]);
+        }
+        abort();  // a bit harsh, no?  It might just be a rare event at the 5% level...
+    }
+#endif
+
+    // Finally do a kat test.  
+    EType ekat;
+    ekat.discard(1000);
+    typename EType::result_type r = ekat();
+    typename EType::result_type knownanswer = kat1000<EType>();
+    if( knownanswer != 0 && r != knownanswer )
+        cerr << "KAT mismatch.  The 1000th random from " << demangle(ekat) << " is " << r << " it should be " << knownanswer << "\n";
+    assert( knownanswer==0 || r == knownanswer );
+    cout << " OK" << endl;
+}
+
+int main(int, char **){
+#if R123_USE_PHILOX_64BIT
+    doit<Engine<Philox2x64 > >();
+    doit<Engine<ReinterpretCtr<r123array4x32, Philox2x64 > > >();
+#endif
+    doit<Engine<Philox4x32 > >();
+    doit<Engine<Threefry2x64 > >();
+    doit<Engine<Threefry4x32 > >();
+    doit<Engine<ReinterpretCtr<r123array4x32, Threefry2x64 > > >();
+    doit<Engine<ReinterpretCtr<r123array2x64, Threefry4x32 > > >();
+
+#if R123_USE_AES_NI
+    if( haveAESNI() ){
+        doit<Engine<ARS4x32> >();
+        doit<Engine<ReinterpretCtr<r123array2x64, ARS4x32> > >();
+        doit<Engine<AESNI4x32> >();
+    }else{
+        cout << "AES is compiled into the binary, but is not available on this hardware\n";
+    }
+#endif
+#if R123_USE_AES_OPENSSL
+    doit<Engine<AESOpenSSL16x8> >();
+#endif
+
+    cout << "ut_Engine:  all OK" << endl;
+    return 0;
+}
+
diff --git a/examples/ut_M128.cpp b/examples/ut_M128.cpp
new file mode 100644
index 0000000..3e11859
--- /dev/null
+++ b/examples/ut_M128.cpp
@@ -0,0 +1,149 @@
+/*
+Copyright 2010-2016, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#include <Random123/features/compilerfeatures.h>
+#if !R123_USE_SSE
+#include <stdio.h>
+int main(){ printf("No SSE.  Nothing to check\n"); return 0; }
+#else
+
+#include <Random123/features/sse.h>
+#include <sstream>
+
+int main(int, char **){
+    r123m128i uninitialized;
+    __m128i zm = _mm_setzero_si128();
+#if R123_USE_CXX1X_UNRESTRICTED_UNIONS
+    r123m128i zM(zm);
+#else
+    r123m128i zM; zM.m = zm;
+#endif
+    uninitialized.m = _mm_setzero_si128();
+
+    // operator bool (or maybe void*)
+    assert(!uninitialized);
+    assert(!zM);
+
+    // operator=(__m128i)
+    // conversion to __m128i
+    __m128i one = _mm_set_epi32(0, 0, 0, 1);
+    __m128i two = _mm_set_epi32(0, 0, 0, 2);
+    r123m128i One, Two;
+    One = one;
+    Two = two;
+    assert(!!One);
+    assert(!!Two);
+    r123m128i AnotherOne;
+    AnotherOne = one;
+
+    assert( AnotherOne == One );
+    assert( Two != One );
+    __m128i m = One;
+    AnotherOne = m;
+    assert( AnotherOne ==  One );
+
+    // operator++ (prefix)
+    ++One;
+    assert( One == Two );
+    assert( One != AnotherOne );
+
+    // operator+=(R123_ULONG_LONG)
+    // operator==(R123_ULONG_LONG, r123m128i)
+    R123_ULONG_LONG ull = 2;
+    AnotherOne += 1;
+    for(int i=0; i<1000; ++i){
+        AnotherOne += i;
+        ull += i;
+        for(int j=0; j<i; ++j){
+            assert(One != AnotherOne);
+            ++One;
+        }
+        assert(One == AnotherOne);
+        assert(ull == AnotherOne);
+    }
+
+    // Do some additions that require carrying.
+    // Check the identity behavior of the streams
+    // as well
+    for(uint64_t i=0; i<1000; ++i){
+        uint64_t fff = (~((uint64_t)0)) - i;
+        AnotherOne += fff;
+        ull += fff; // will overflow
+        One += fff/2;
+        One += fff - fff/2;
+        assert(AnotherOne == One);
+        assert( !(ull == One) );
+        std::stringstream ss;
+        r123m128i YetAnother;
+        ss << AnotherOne;
+        ss >> YetAnother;
+
+        assert( YetAnother == AnotherOne );
+    }
+
+    // Sep 2011 - clang in the fink build of llvm-2.9.1 on MacOS 10.5.8
+    // fails to catch anything, and hence fails this test.  I suspect
+    // a problem with the packaging/installation rather than a bug
+    // in llvm.  However, if it shows up in other contexts, some
+    // kind of #ifndef might be appropriate.  N.B.  There's a similar
+    // exception test in ut_carray.cpp
+    bool caught;
+    caught = false;
+    try{
+        (void)(One < AnotherOne);
+    }catch(std::runtime_error& ){ caught = true; }
+    assert(caught);
+
+    caught = false;
+    try{
+        (void)(One <= AnotherOne);
+    }catch(std::runtime_error& ){ caught = true; }
+    assert(caught);
+
+    caught = false;
+    try{
+        (void)(One > AnotherOne);
+    }catch(std::runtime_error& ){ caught = true; }
+    assert(caught);
+
+    caught = false;
+    try{
+        (void)(One >= AnotherOne);
+    }catch(std::runtime_error& ){ caught = true; }
+    assert(caught);
+
+    // assemble_from_u32<r123m128i>
+
+    std::cout << "ut_M128: OK\n";
+    return 0;
+}
+
+#endif
diff --git a/examples/ut_ReinterpretCtr.cpp b/examples/ut_ReinterpretCtr.cpp
new file mode 100644
index 0000000..4dd05cd
--- /dev/null
+++ b/examples/ut_ReinterpretCtr.cpp
@@ -0,0 +1,47 @@
+/*
+Copyright 2010-2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#include <Random123/ReinterpretCtr.hpp>
+#include <Random123/threefry.h>
+#include <iostream>
+#include "util_demangle.hpp"
+
+using namespace r123;
+int main(int, char **){
+    r123array4x32 c = {{}};
+    r123array4x32 r;
+
+    ReinterpretCtr<r123array4x32, Threefry2x64> p;
+    Threefry2x64::key_type kp = {{}};
+    r = p(c, kp);
+    std::cout << demangle(p) << ": " << r << "\n";
+    return 0;
+}
diff --git a/examples/ut_aes.cpp b/examples/ut_aes.cpp
new file mode 100644
index 0000000..5cf04e1
--- /dev/null
+++ b/examples/ut_aes.cpp
@@ -0,0 +1,106 @@
+/*
+Copyright 2010-2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+// Check our AES implementation against the example in FIPS-197
+
+#include <Random123/aes.h>
+#include <Random123/ReinterpretCtr.hpp>
+#if R123_USE_AES_OPENSSL
+#include <openssl/aes.h>
+#endif
+#include <string>
+#include <cstdio>
+#include <iostream>
+#include <cstring>
+#include <cassert>
+
+using namespace std;
+using namespace r123;
+
+#if !R123_USE_SSE
+int main(int, char **){
+    std::cout << "No SSE support.  This test is not compiled\n";
+    return 0;
+}
+#else
+
+#include "util_m128.h"
+
+int main(int, char **){
+    r123array1xm128i IN, K;
+
+    K.v[0].m =  m128i_from_charbuf("0001020304050607 08090a0b0c0d0e0f");
+    IN.v[0].m = m128i_from_charbuf("0011223344556677 8899aabbccddeeff");
+    // From FIPS-197, this is the official "right answer"
+    r123array1xm128i right_answer;
+    right_answer[0] = m128i_from_charbuf("69c4 e0d8 6a7b 0430 d8cd b780 70b4 c55a");
+    (void)right_answer;  /* don't complain about an unused variable if neither NI nor OPENSSL are enabled. */
+#if R123_USE_AES_NI
+    if( haveAESNI() ){
+        AESNI1xm128i::key_type xk(K);
+        AESNI1xm128i bx;
+        AESNI1xm128i::ctr_type x = bx(IN, xk);
+
+        assert( x==right_answer );
+        cout << "IN: " << m128i_to_string(IN[0]) <<  "\n";
+        cout << "K : " << m128i_to_string(K[0])  << "\n";
+        cout << "AES:" << m128i_to_string(x[0])  << "\n";
+        cout << "Hooray!  AESNI1xm128i(IN, K) matches the published test vector!\n";
+    }else{
+        cout << "The AES-NI instructions are not available on this hardware.  Skipping AES-NI tests\n";
+    }
+#else
+    cout << "The AES-NI Bijections are not compiled into this binary.  Skipping AES-NI tests\n";
+#endif
+    
+    // And let's do it with AESOpenSSL.  But since AESOpenSSL has its own
+    // format for keys and counters we make a union for the key types and
+    // use ReinterpretCtr to wrap a union around the counter types.
+#if R123_USE_AES_OPENSSL
+#if R123_USE_AES_NI
+    typedef AESNI1xm128i::ctr_type nictype;
+#else
+    typedef r123array1xm128i nictype;
+#endif
+    AESOpenSSL16x8::ukey_type ouk;
+    _mm_storeu_si128((__m128i*)&ouk.v[0], K.v[0].m);
+    AESOpenSSL16x8::key_type okey(ouk);
+    ReinterpretCtr<nictype, AESOpenSSL16x8> osslb;
+    assert( osslb(IN, okey) == right_answer );
+    cout << "Hooray!  AESOpenSSL16x8(IN, K) matches the published test vector!\n";
+#else
+    cout << "The OpenSSL AES implementation is not linked with this binary.  Skipping the AESOpenSSL16x8\n";
+#endif // R123_USE_AES_OPENSSL
+
+    return 0;
+}
+
+#endif
diff --git a/examples/ut_ars.c b/examples/ut_ars.c
new file mode 100644
index 0000000..8eb10f7
--- /dev/null
+++ b/examples/ut_ars.c
@@ -0,0 +1,82 @@
+/*
+Copyright 2010-2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#include <Random123/ars.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+#if !R123_USE_SSE
+int main(int argc, char **argv){
+    (void)argc; (void)argv; /* unused */
+    printf("No SSE support.  This test is not compiled\n");
+    return 0;
+}
+#else
+#include "util_m128.h"
+
+int
+main(int argc, char **argv)
+{
+#if R123_USE_AES_NI
+    struct r123array1xm128i c, k, ret;
+    char m128str[M128_STR_SIZE], *kat;
+
+    if (haveAESNI()) {
+	c.v[0].m = m128i_from_charbuf("01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00");
+	k.v[0].m = m128i_from_charbuf("01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00");
+	ret = ars1xm128i_R(7, c, k);
+	kat = "2b1623350cd214dc 7740187993411872";
+	if (strcmp(m128i_to_charbuf(ret.v[0].m, m128str), kat) != 0) {
+	    fprintf(stderr, "%s: error, expected %s, got %s\n", argv[0], kat, m128str);
+	    exit(1);
+	}
+	printf("%s: OK, got %s\n", argv[0], kat);
+	c.v[0].m = m128i_from_charbuf("00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00");
+	k.v[0].m = m128i_from_charbuf("01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00");
+	ret = ars1xm128i_R(7, c, k);
+	kat = "2de6b66fa461b668 f380126f32b9cd22";
+	if (strcmp(m128i_to_charbuf(ret.v[0].m, m128str), kat) != 0) {
+	    fprintf(stderr, "%s: error, expected %s, got %s\n", argv[0], kat, m128str);
+	    exit(1);
+	}
+	printf("%s: OK, got %s\n", argv[0], kat);
+    } else {
+	printf("%s: no AES-NI on this machine\n", argv[0]);
+    }
+#else
+    printf("%s: no AES-NI compiled into this program\n", argv[0]);
+#endif
+    (void)argc; (void)argv; /* unused */
+    return 0;
+}
+
+#endif
diff --git a/examples/ut_carray.cpp b/examples/ut_carray.cpp
new file mode 100644
index 0000000..3c08f89
--- /dev/null
+++ b/examples/ut_carray.cpp
@@ -0,0 +1,317 @@
+/*
+Copyright 2010-2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#include <Random123/array.h>
+#include <iostream>
+#include <typeinfo>
+#include <sstream>
+#include <limits>
+#include <assert.h>
+#include <vector>
+#include "util_demangle.hpp"
+
+using namespace std;
+
+template<typename T>
+inline static T zero(){ return 0; }
+
+template<typename T>
+inline static T fff(){ return ~T(0); }
+
+template<typename T>
+inline R123_ULONG_LONG ull(const T& t){ return static_cast<R123_ULONG_LONG>(t); }
+
+template <typename T>
+inline uint32_t get32(const T& t, size_t n){
+    return t>>(n*32);
+}
+
+#if R123_USE_SSE
+template<>
+inline r123m128i zero<r123m128i>(){ r123m128i M; M.m=_mm_setzero_si128(); return M;}
+
+template<>
+inline r123m128i fff<r123m128i>(){ r123m128i M; M.m=_mm_set_epi32(~0, ~0, ~0, ~0); return M;}
+
+template<>
+inline R123_ULONG_LONG ull<r123m128i>(const r123m128i& t){ 
+    return _mm_extract_lo64(t.m);
+}
+
+template <>
+inline uint32_t get32<r123m128i>(const r123m128i& t, size_t n){
+    switch(n){
+    case 3: return _mm_cvtsi128_si32(_mm_srli_si128(t.m, 12));
+    case 2: return _mm_cvtsi128_si32(_mm_srli_si128(t.m, 8));
+    case 1: return _mm_cvtsi128_si32(_mm_srli_si128(t.m, 4));
+    }
+    return _mm_cvtsi128_si32(t.m);
+}
+#endif
+
+struct dummySeedSeq{
+    typedef uint32_t result_type;
+    template <typename ITER>
+    void generate(ITER b, ITER e){
+        uint32_t v = 0xdeadbeef;
+        for(; b!=e; ++b){
+            *b = v;
+            v += 0xbaddecaf;
+        }
+    }
+};
+
+template <typename AType>
+void doit(size_t N, size_t W){
+    AType uninitialized;
+    typedef AType atype;
+    typedef typename atype::value_type vtype;
+    typedef typename atype::iterator  itype;
+
+    assert( R123_W(AType) == W );
+
+    cout << "doit<" << demangle(uninitialized) << ">";
+    // size
+    assert(uninitialized.size() == N);
+
+    // width
+    assert(sizeof(vtype)*8 == W);
+    // data
+    assert(uninitialized.data() == &uninitialized.v[0]);
+
+    // front
+    assert(&uninitialized.front() == uninitialized.data());
+
+    // back
+    assert(&uninitialized.back() == uninitialized.data()+(N-1));
+
+    // The ut_carray Random123 unit test uses an empty initializer list to
+    // construct instances of different r123 arrays, in a test that's
+    // templated on array type.  This works fine for all of the r123 array
+    // types except r123array1xm128i---i.e., an "array" consisting of a single
+    // __m128i value.  GCC defines __m128i as a single long long,
+    //
+    // typedef long long __m128i __attribute__ ((__vector_size__ (16),
+    //                                           __may_alias__));
+    //
+    // while Intel defines it as a union,
+    //
+    // typedef union  _MMINTRIN_TYPE(16) __m128i {
+    // #if !defined(_MSC_VER)
+    //      /*
+    //       * To support GNU compatible intialization with initializers list,
+    //       * make first union member to be of int64 type.
+    //       */
+    //      __int64             m128i_gcc_compatibility[2];
+    // #endif
+    //     /*
+    //      * Although we do not recommend using these directly, they are here
+    //      * for better MS compatibility.
+    //      */
+    //     __int8              m128i_i8[16];
+    //     __int16             m128i_i16[8];
+    //     __int32             m128i_i32[4];
+    //     __int64             m128i_i64[2];
+    //     unsigned __int8     m128i_u8[16];
+    //     unsigned __int16    m128i_u16[8];
+    //     unsigned __int32    m128i_u32[4];
+    //     unsigned __int64    m128i_u64[2];
+    //
+    //     /*
+    //      * This is what we used to have here alone.
+    //      * Leave for backward compatibility.
+    //      */
+    //     char c[16];
+    // } __m128i;
+    //
+    // but PGI defines __m128i as a struct,
+    //
+    // typedef struct {
+    //   private: long long m128i_i64[2];
+    // } __attribute__((aligned(16))) __m128i;
+    //
+    // which can't be initialized with initializer lists before C++11.
+
+    // constructor with initializer.  [], at
+#ifndef __PGI
+    AType z = {{}};
+#else
+    AType z;
+    z.fill(zero<vtype>());
+#endif
+    for(unsigned i=0; i<N; ++i){
+        assert(!z[i]);
+        assert(!z.at(i));
+        uninitialized[i] = z[i];
+        uninitialized[i] += (i+1);
+    }
+
+    // Copy-assignment
+    atype iota = uninitialized;
+
+    // begin/end
+    for(itype p=iota.begin(); p!=iota.end(); ++p){
+        assert((int)ull(*p) == 1+ (p-iota.begin()));
+    }
+    // cbegin/cend
+    for(typename atype::const_iterator p=iota.cbegin(); p!=iota.cend(); ++p){
+        assert((int)ull(*p) == 1+ (p-iota.cbegin()));
+    }
+
+    // rbegin/rend
+    for(typename atype::reverse_iterator p=iota.rbegin(); p!=iota.rend(); ++p){
+        assert((int)ull(*p) == iota.rend()-p);
+    }
+
+    // crbegin/crend
+    for(typename atype::const_reverse_iterator p=iota.crbegin(); p!=iota.crend(); ++p){
+        assert((int)ull(*p) == iota.crend()-p);
+    }
+
+    // == and !=
+    assert(iota == uninitialized);
+    assert(!(iota != uninitialized));
+    
+    for(size_t i=0; i<N; ++i){
+        atype notequal = iota;
+        ++notequal[i];
+        assert(notequal != iota);
+        assert(!(notequal == iota));
+    }
+
+    // Sep 2011 - clang in the fink build of llvm-2.9.1 on MacOS 10.5.8
+    // fails to catch anything, and hence fails this test.  I suspect
+    // a problem with the packaging/installation rather than a bug
+    // in llvm.  However, if it shows up in other contexts, some
+    // kind of #ifndef might be appropriate.  N.B.  There's another
+    // exception test below and one in ut_M128.cpp
+    // check that at throws 
+    bool caught = false;
+    try{
+        iota.at(N);
+    }catch(std::out_of_range&){
+        caught = true;
+    }
+    assert(caught);
+
+    // fill
+    vtype one = zero<vtype>();
+    ++one;
+    atype aone;
+    aone.fill(one);
+    for(size_t i=0; i<N; ++i){
+        assert(aone[i] == one);
+    }
+
+    // swap
+    aone.swap(z);
+    for(size_t i=0; i<N; ++i){
+        assert(aone[i] == zero<vtype>());
+        assert(z[i] == one);
+    }
+
+    // seed
+    dummySeedSeq seedseq;
+    aone = atype::seed(seedseq);
+    vector<uint32_t> v32( N*((W+31)/32) );
+    seedseq.generate(v32.begin(), v32.end());
+    size_t jj=0;
+    uint32_t mask = 0xffffffff;
+    if( W < 32 )
+        mask >>= (32-W);
+    for(size_t i=0; i<N; ++i){
+        for(size_t j=0; j<W; j+=32){
+            uint32_t aj = get32(aone[i], j/32);
+            assert( aj == (mask&v32.at(jj)) );
+            jj++;
+        }
+    }
+
+    // incr 
+
+#ifndef __PGI
+    atype a = {{}};
+#else
+    atype a;
+    a.fill(zero<vtype>());
+#endif
+    a.incr();
+    a.incr();
+    a.incr();
+    a.incr();
+    assert( ull(a[0]) == 4u );
+    assert( N<2 || ull(a[1]) == 0u );
+
+    a.incr(0xbadcafe);
+    assert( ull(a[0]) == (mask&(4u+0xbadcafe)) );
+
+    // Set the zero'th entry to fff and then increment
+    a[0] = fff<vtype>();
+    a.incr();
+    assert( a[0] == zero<vtype>() );
+    assert( N<2 || ull(a[1]) == (W>8?1u:0xcc));
+
+    a.incr();
+    assert( ull(a[0]) == 1u );
+    assert( N<2 || ull(a[1]) == (W>8?1u:0xcc) );
+
+    R123_ULONG_LONG ulfff = ull(fff<vtype>());
+
+    a.incr(ulfff);
+    a.incr(ulfff - 5u);
+    a.incr(2);
+    a.incr(2);
+    a.incr(2);
+    a.incr(2);
+
+    // operator<< and operator>>
+
+    std::stringstream ss;
+    ss << a;
+    AType b;
+    ss >> b;
+    assert(a == b);
+    cout << " OK\n";
+}
+
+
+int main(int, char **){
+#if R123_USE_SSE
+    doit<r123array1xm128i>(1, 128);
+#endif
+    doit<r123array2x32>(2, 32);
+    doit<r123array4x32>(4, 32);
+    doit<r123array2x64>(2, 64);
+    doit<r123array4x64>(4, 64);
+    doit<r123array16x8>(16, 8);
+    return 0;
+}
+
diff --git a/examples/ut_features.cpp b/examples/ut_features.cpp
new file mode 100644
index 0000000..25b9f9f
--- /dev/null
+++ b/examples/ut_features.cpp
@@ -0,0 +1,458 @@
+/*
+Copyright 2010-2016, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+// This "unit test" is basically a test of the completeness
+// of compilerfeatures.hpp.  Each of the pp-symbols in compilerfeatures.hpp
+// is supposed to have a definition.  We check them all, and
+// in some cases, emit some appropriate code to check that
+// they reflect reality.
+#include <assert.h>
+#include <Random123/features/compilerfeatures.h>
+#include <iostream>
+
+struct Outputter{
+    Outputter(const char *name, int value){
+        std::cout << name << " " << value << std::endl;
+    }
+};
+
+// Many symbols rely on the pp-convention of
+// expanding undefined values in arithmetic expressions to 0.
+// Thus, we can't do something terse like:
+// #define Out(Sym) Outputter outputter##Sym(#Sym, Sym)
+// Instead, we have to force the preprocessor to evaluate
+// the symbol.
+// #if Sym
+// Otrue(Sym)
+// #else
+// Ofalse(Sym)
+// #endif
+#define Otrue(Sym) Outputter outputter##Sym(#Sym, true)
+#define Ofalse(Sym) Outputter outputter##Sym(#Sym, false)
+
+#ifndef R123_USE_X86INTRIN_H
+#error "No  R123_USE_X86INTRIN_H"
+#endif
+#if R123_USE_X86INTRIN_H
+#include <x86intrin.h>
+Otrue(R123_USE_X86INTRIN_H);
+#else
+Ofalse(R123_USE_X86INTRIN_H);
+#endif
+
+#ifndef R123_USE_IA32INTRIN_H
+#error "No  R123_USE_IA32INTRIN_H"
+#endif
+#if R123_USE_IA32INTRIN_H
+Otrue(R123_USE_IA32INTRIN_H);
+#include <ia32intrin.h>
+#else
+Ofalse(R123_USE_IA32INTRIN_H);
+#endif
+
+#ifndef R123_USE_XMMINTRIN_H
+#error "No  R123_USE_XMMINTRIN_H"
+#endif
+#if R123_USE_XMMINTRIN_H
+#include <xmmintrin.h>
+Otrue(R123_USE_XMMINTRIN_H);
+#else
+Ofalse(R123_USE_XMMINTRIN_H);
+#endif
+
+#ifndef R123_USE_EMMINTRIN_H
+#error "No  R123_USE_EMMINTRIN_H"
+#endif
+#if R123_USE_EMMINTRIN_H
+#include <emmintrin.h>
+Otrue(R123_USE_EMMINTRIN_H);
+#else
+Ofalse(R123_USE_EMMINTRIN_H);
+#endif
+
+#ifndef R123_USE_SMMINTRIN_H
+#error "No  R123_USE_SMMINTRIN_H"
+#endif
+#if R123_USE_SMMINTRIN_H
+Otrue(R123_USE_SMMINTRIN_H);
+#include <smmintrin.h>
+#else
+Ofalse(R123_USE_SMMINTRIN_H);
+#endif
+
+#ifndef R123_USE_WMMINTRIN_H
+#error "No  R123_USE_WMMINTRIN_H"
+#endif
+#if R123_USE_WMMINTRIN_H
+Otrue(R123_USE_WMMINTRIN_H);
+#include <wmmintrin.h>
+#else
+Ofalse(R123_USE_WMMINTRIN_H);
+#endif
+
+#ifndef R123_USE_INTRIN_H
+#error "No  R123_USE_INTRIN_H"
+#endif
+#if R123_USE_INTRIN_H
+Otrue(R123_USE_INTRIN_H);
+#include <intrin.h>
+#else
+Ofalse(R123_USE_INTRIN_H);
+#endif
+
+#ifndef R123_USE_SSE
+#error "No  R123_USE_SSE"
+#endif
+#if R123_USE_SSE
+Otrue(R123_USE_SSE);
+#include <Random123/features/sse.h>
+__m128i mm;
+#else
+Ofalse(R123_USE_SSE);
+#endif
+
+#ifndef R123_CUDA_DEVICE
+#error "No  R123_CUDA_DEVICE"
+#endif
+R123_CUDA_DEVICE void cuda_device_func(){}
+
+// C++11 features
+#ifndef R123_USE_CXX11_UNRESTRICTED_UNIONS
+#error "No  R123_USE_CXX11_UNRESTRICTED_UNIONS"
+#endif
+#if R123_USE_CXX11_UNRESTRICTED_UNIONS
+Otrue(R123_USE_CXX11_UNRESTRICTED_UNIONS);
+struct defaulted_ctor{
+    int i;
+    defaulted_ctor()=default;
+    defaulted_ctor(const defaulted_ctor& d) : i(d.i){}
+};
+union unrestricted{
+    int i;
+    defaulted_ctor dc;
+};
+#else
+Ofalse(R123_USE_CXX11_UNRESTRICTED_UNIONS);
+#endif
+
+#ifndef R123_USE_CXX11_STATIC_ASSERT
+#error "No  R123_USE_CXX11_STATIC_ASSERT"
+#endif
+#if R123_USE_CXX11_STATIC_ASSERT
+Otrue(R123_USE_CXX11_STATIC_ASSERT);
+static_assert(true, "this shouldn't be a problem");
+#else
+Ofalse(R123_USE_CXX11_STATIC_ASSERT);
+#endif
+
+#ifndef R123_USE_CXX11_CONSTEXPR
+#error "No  R123_USE_CXX11_CONSTEXPR"
+#endif
+#if R123_USE_CXX11_CONSTEXPR
+Otrue(R123_USE_CXX11_CONSTEXPR);
+constexpr int zero() {return 0;}
+#else
+Ofalse(R123_USE_CXX11_CONSTEXPR);
+#endif
+
+#ifndef R123_USE_CXX11_EXPLICIT_CONVERSIONS
+#error "No  R123_USE_CXX11_EXPLICIT_CONVERSIONS"
+#endif
+#if R123_USE_CXX11_EXPLICIT_CONVERSIONS
+Otrue(R123_USE_CXX11_EXPLICIT_CONVERSIONS);
+struct explicit_converter{
+    explicit operator bool() const {return true;}
+};
+#else
+Ofalse(R123_USE_CXX11_EXPLICIT_CONVERSIONS);
+#endif
+
+#ifndef R123_USE_CXX11_RANDOM
+#error "No   R123_USE_CXX11_RANDOM"
+#endif
+#if R123_USE_CXX11_RANDOM
+Otrue(R123_USE_CXX11_RANDOM);
+#include <random>
+#else
+Ofalse(R123_USE_CXX11_RANDOM);
+#endif
+
+#ifndef R123_USE_CXX11_TYPE_TRAITS
+#error "No  R123_USE_CXX11_TYPE_TRAITS"
+#endif
+#if R123_USE_CXX11_TYPE_TRAITS
+Otrue(R123_USE_CXX11_TYPE_TRAITS);
+#include <type_traits>
+#else
+Ofalse(R123_USE_CXX11_TYPE_TRAITS);
+#endif
+
+#ifndef R123_USE_CXX11_LONG_LONG
+#error "No  R123_USE_CXX11_LONG_LONG"
+#endif
+#if R123_USE_CXX11_LONG_LONG
+Otrue(R123_USE_CXX11_LONG_LONG);
+unsigned long long ull;
+#else
+Ofalse(R123_USE_CXX11_LONG_LONG);
+#endif
+
+#ifndef R123_FORCE_INLINE
+#error "No  R123_FORCE_INLINE"
+#endif
+inline R123_FORCE_INLINE(int forcibly_inlined(int i));
+inline int forcibly_inlined(int i){ return i+1;}
+
+#ifndef R123_USE_AES_NI
+#error "No  R123_USE_AES_NI"
+#endif
+#if R123_USE_AES_NI
+Otrue(R123_USE_AES_NI);
+__m128i aes(__m128i in){
+    if( haveAESNI() )
+        return _mm_aesenc_si128(in, in);
+    else
+        return _mm_setzero_si128();
+}
+#else
+Ofalse(R123_USE_AES_NI);
+#endif
+
+#ifndef R123_USE_SSE4_2
+#error "No  R123_USE_SSE4_2"
+#endif
+#if R123_USE_SSE4_2
+Otrue(R123_USE_SSE4_2);
+__m128i sse42(__m128i in){
+    return _mm_cmpgt_epi64(in, in);
+}
+#else
+Ofalse(R123_USE_SSE4_2);
+#endif
+
+#ifndef R123_USE_SSE4_1
+#error "No  R123_USE_SSE4_1"
+#endif
+#if R123_USE_SSE4_1
+Otrue(R123_USE_SSE4_1);
+int sse41(__m128i in){
+    return _mm_testz_si128(in, in);
+}
+#else
+Ofalse(R123_USE_SSE4_1);
+#endif
+
+#ifndef R123_USE_AES_OPENSSL
+#error "No  R123_USE_AES_OPENSSL"
+#endif
+#if R123_USE_AES_OPENSSL
+Otrue(R123_USE_AES_OPENSSL);
+#include <openssl/aes.h>
+#else
+Ofalse(R123_USE_AES_OPENSSL);
+#endif
+
+#ifndef R123_USE_GNU_UINT128
+#error "No  R123_USE_GNU_UINT128"
+#endif
+#if R123_USE_GNU_UINT128
+Otrue(R123_USE_GNU_UINT128);
+__uint128_t u128;
+#else
+Ofalse(R123_USE_GNU_UINT128);
+#endif
+
+#ifndef R123_USE_ASM_GNU
+#error "No  R123_USE_ASM_GNU"
+#endif
+#if R123_USE_ASM_GNU
+Otrue(R123_USE_ASM_GNU);
+#if defined(__x86_64__) || defined(__i386__)
+int use_gnu_asm(){
+    unsigned int eax, ebx, ecx, edx;
+    __asm__ __volatile__ ("cpuid": "=a" (eax), "=b" (ebx), "=c" (ecx), "=d" (edx) :
+                      "a" (1));
+    return (ecx>>25) & 1;
+}
+#else
+int use_gnu_asm(){ return 0; }
+#endif
+#else
+Ofalse(R123_USE_ASM_GNU);
+#endif
+
+#ifndef R123_USE_CPUID_MSVC
+#error "No  R123_USE_CPUID_MSVC"
+#endif
+#if R123_USE_CPUID_MSVC
+Otrue(R123_USE_CPUID_MSVC);
+int chkcpuid(){
+    int CPUInfo[4];
+    __cpuid(CPUInfo, 1);
+    return CPUInfo[2]&(1<<25);
+}
+#else
+Ofalse(R123_USE_CPUID_MSVC);
+#endif
+
+#ifndef R123_USE_MULHILO32_ASM
+#error "No  R123_USE_MULHILO32_ASM"
+#endif
+#if R123_USE_MULHILO32_ASM
+Otrue(R123_USE_MULHILO32_ASM);
+#else
+Ofalse(R123_USE_MULHILO32_ASM);
+#endif
+
+#ifndef R123_USE_MULHILO64_ASM
+#error "No  R123_USE_MULHILO64_ASM"
+#endif
+#if R123_USE_MULHILO64_ASM
+Otrue(R123_USE_MULHILO64_ASM);
+#else
+Ofalse(R123_USE_MULHILO64_ASM);
+#endif
+
+#ifndef R123_USE_MULHILO64_MSVC_INTRIN
+#error "No  R123_USE_MULHILO_MSVC_INTRIN"
+#endif
+#if R123_USE_MULHILO64_MSVC_INTRIN
+Otrue(R123_USE_MULHILO64_MSVC_INTRIN);
+#include <cstdint>
+void msvc64mul(){
+    uint64_t a=1000000000000000000;
+    uint64_t b=a;
+    uint64_t h, l;
+    l = _umul128(a, b, &h);
+    assert( l == a*b);
+    assert( h == 54210108624275221ULL );
+}
+#else
+Ofalse(R123_USE_MULHILO64_MSVC_INTRIN);
+#endif
+
+#ifndef R123_USE_MULHILO64_CUDA_INTRIN
+#error "No  R123_USE_MULHILO64_CUDA_INTRIN"
+#endif
+#if R123_USE_MULHILO64_CUDA_INTRIN
+Otrue(R123_USE_MULHILO64_CUDA_INTRIN);
+#else
+Ofalse(R123_USE_MULHILO64_CUDA_INTRIN);
+#endif
+
+#ifndef R123_USE_MULHILO64_OPENCL_INTRIN
+#error "No  R123_USE_MULHILO64_OPENCL_INTRIN"
+#endif
+#if R123_USE_MULHILO64_OPENCL_INTRIN
+Otrue(R123_USE_MULHILO64_OPENCL_INTRIN);
+#else
+Ofalse(R123_USE_MULHILO64_OPENCL_INTRIN);
+#endif
+
+#ifndef R123_USE_MULHILO64_MULHI_INTRIN
+#error "No  R123_USE_MULHILO64_MULHI_INTRIN"
+#endif
+#if R123_USE_MULHILO64_MULHI_INTRIN
+Otrue(R123_USE_MULHILO64_MULHI_INTRIN);
+static int test_mulhilo64_intrin(){
+    uint64_t a = R123_64BIT(0x1234567887654321);
+    uint64_t b = R123_64BIT(0x8765432112345678);
+    uint64_t c = R123_MULHILO64_MULHI_INTRIN(a, b);
+    assert( c == R123_64BIT(0x09A0CD05B99FE92E) );
+    return c == R123_64BIT(0x09A0CD05B99FE92E);
+}
+int mulhilo64_intrin_ok = test_mulhilo64_intrin();
+#else
+Ofalse(R123_USE_MULHILO64_MULHI_INTRIN);
+#endif
+
+#ifndef R123_USE_MULHILO32_MULHI_INTRIN
+#error "No  R123_USE_MULHILO32_MULHI_INTRIN"
+#endif
+#if R123_USE_MULHILO32_MULHI_INTRIN
+Otrue(R123_USE_MULHILO32_MULHI_INTRIN);
+static int test_mulhilo32_intrin(){
+    uint64_t a32 = 0x12345678;
+    uint64_t b32 = 0x87654321;
+    uint64_t c32 = R123_MULHILO32_MULHI_INTRIN(a32, b32);
+    assert( c32 == 0x09A0CD05 );
+    return c32 == 0x09A0CD05;
+}
+int mulhilo32_intrin_ok = test_mulhilo32_intrin();
+#else
+Ofalse(R123_USE_MULHILO32_MULHI_INTRIN);
+#endif
+
+#ifndef R123_USE_MULHILO64_C99
+#error "No  R123_USE_MULHILO64_C99"
+#endif
+#if R123_USE_MULHILO64_C99
+Otrue(R123_USE_MULHILO64_C99);
+#else
+Ofalse(R123_USE_MULHILO64_C99);
+#endif
+
+#ifndef R123_64BIT
+#error "No R123_64BIT"
+#else
+void xx() {
+    uint64_t a = R123_64BIT(0x1234567890abcdef);
+    assert ( (a >> 60) == 0x1 );
+}
+#endif
+
+#ifndef R123_USE_PHILOX_64BIT
+#error "No  R123_USE_PHILOX_64BIT"
+#endif
+#if R123_USE_PHILOX_64BIT
+Otrue(R123_USE_PHILOX_64BIT);
+#else
+Ofalse(R123_USE_PHILOX_64BIT);
+#endif
+
+#ifndef R123_ASSERT
+#error "No  R123_ASSERT"
+#else
+void chkassert(){
+    R123_ASSERT(1);
+}
+#endif
+
+#ifndef R123_STATIC_ASSERT
+#error "No  R123_STATIC_ASSERT"
+#else
+R123_STATIC_ASSERT(1, "looks true to me");
+void chkstaticassert(){
+    R123_STATIC_ASSERT(1, "it's ok inside a function too");
+}
+#endif
+
+int main(int , char **){return 0;}
diff --git a/examples/ut_gsl.c b/examples/ut_gsl.c
new file mode 100644
index 0000000..986de7c
--- /dev/null
+++ b/examples/ut_gsl.c
@@ -0,0 +1,112 @@
+/*
+Copyright 2010-2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#include <gsl/gsl_randist.h>
+#include <stdio.h>
+#include "Random123/philox.h"
+#include "Random123/threefry.h"
+#include "Random123/conventional/gsl_cbrng.h"
+#include <assert.h>
+
+/* Exercise the GSL_CBRNG macro */
+
+GSL_CBRNG(cbrng, threefry4x64); /* creates gsl_rng_cbrng */
+
+int main(int argc, char **argv){
+    int i;
+    gsl_rng *r;
+    gsl_rng *rcopy;
+    unsigned long save, x;
+    unsigned long saved[5];
+    double sum = 0.;
+    (void)argc; (void)argv; /* unused */
+
+    r = gsl_rng_alloc(gsl_rng_cbrng);
+    assert (gsl_rng_min(r) == 0);
+    assert (gsl_rng_max(r) == 0xffffffffUL); // Not necessarily ~0UL
+    assert (gsl_rng_size(r) > 0);
+
+    printf("%s\nulongs from %s in initial state\n", argv[0], gsl_rng_name(r));
+    for (i = 0; i < 5; i++) {
+	x = gsl_rng_get(r);
+        saved[i] = x;
+	printf("%d: 0x%lx\n", i, x);
+	assert(x != 0);
+    }
+    printf("uniforms from %s\n", gsl_rng_name(r));
+    for (i = 0; i < 5; i++) {
+        double z = gsl_rng_uniform(r);
+        sum += z;
+        printf("%d: %.4g\n", i, z);
+    }
+    assert( sum < 0.9*5 && sum > 0.1*5 && (long)"sum must be reasonably close  to 0.5*number of trials");
+    save = gsl_rng_get(r);
+
+    gsl_rng_set(r, 0xdeadbeef); /* set a non-zero seed */
+    printf("ulongs from %s after seed\n", gsl_rng_name(r));
+    for (i = 0; i < 5; i++) {
+	x = gsl_rng_get(r);
+	printf("%d: 0x%lx\n", i, x);
+	assert(x != 0);
+    }
+    /* make a copy of the total state */
+    rcopy = gsl_rng_alloc(gsl_rng_cbrng);
+    gsl_rng_memcpy(rcopy, r);
+    printf("uniforms from %s\n", gsl_rng_name(r));
+    sum = 0.;
+    for (i = 0; i < 5; i++) {
+        double x = gsl_rng_uniform(r);
+        double y = gsl_rng_uniform(rcopy);
+	printf("%d: %.4g\n", i, x);
+        sum += x;
+        assert(x == y);
+    }
+    assert(gsl_rng_get(r) != save);
+    assert( sum < 0.9*5 && sum > 0.1*5 && (long)"sum must be reasonably close  to 0.5*number of trials");
+
+    /* gsl_rng_set(*, 0) is supposed to recover the default seed */
+    gsl_rng_set(r, 0);
+    printf("ulongs from %s after restore to initial\n", gsl_rng_name(r));
+    for (i = 0; i < 5; i++) {
+	x = gsl_rng_get(r);
+        assert( x == saved[i] );
+	printf("%d: 0x%lx\n", i, x);
+	assert(x != 0);
+    }
+    printf("uniforms from %s\n", gsl_rng_name(r));
+    for (i = 0; i < 5; i++) {
+	printf("%d: %.4g\n", i, gsl_rng_uniform(r));
+    }
+    assert(gsl_rng_get(r) == save);
+    
+    gsl_rng_free (r);
+    return 0;
+}
diff --git a/examples/ut_ua.cpp b/examples/ut_ua.cpp
new file mode 100644
index 0000000..bfc342a
--- /dev/null
+++ b/examples/ut_ua.cpp
@@ -0,0 +1,63 @@
+/*
+Copyright 2013, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#if __cplusplus<201103L
+#include <iostream>
+int main(int, char**){
+    std::cout << "ua.hpp requires C++11.  No tests performed\n";
+    return 0;
+}
+#else
+
+#include <Random123/array.h>
+#include <Random123/threefry.h>
+#include "ua.hpp"
+
+using namespace r123;
+int main(int, char **){
+    Threefry4x64 rng;
+    Threefry4x64::ctr_type c = {{1, 2, 3, 4}};
+    Threefry4x64::ukey_type uk = {{5, 6, 7, 8}};
+    Threefry4x64::key_type k = uk;
+    auto a = ua01<float>(rng(c, k)); // returns std::array<float,4>
+    for(auto e : a){
+        std::cout << e << "\n";
+    }
+    c.incr();
+    auto b = ua01<double>(rng(c, k));
+    for(auto e : b){
+        std::cout << e << "\n";
+    }
+
+    return 0;
+}
+#endif
diff --git a/examples/ut_uniform.cpp b/examples/ut_uniform.cpp
new file mode 100644
index 0000000..a8eece6
--- /dev/null
+++ b/examples/ut_uniform.cpp
@@ -0,0 +1,167 @@
+/*
+Copyright 2013, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+ /* ut_uniform.cpp:   unit test for uniform.hpp.  
+
+    This is a "sanity test" of u01, uneg11 and u01fixedpt.  We confirm
+    that a histogram of few thousand calls to each of the functions
+    matches a reference histogram.  This verifies that the results are
+    generally sane i.e., they fall within the expected range, and that
+    they are close to a correct distribution.  It is *not* a foolproof
+    test of correctness, but it should catch portability issues
+    like errors in r123::make_signed or r123::make_unsigned
+    or r123::maxTvalue or misunderstandings about std::numeric_limits.
+
+    There is a "known answer test" for uniform.hpp in ut_uniform_IEEEkat.cpp,
+    but it is only expected to work on machines with strict IEEE arithmetic
+    and  no high-precicision intermediates.  See its own comments for
+    more details.
+ */
+
+#include "uniform.hpp"
+#include <Random123/threefry.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <map>
+#include <string>
+#include <sstream>
+
+using namespace r123;
+
+template <typename T>
+typename r123::make_unsigned<T>::type U(T x){ return x; }
+
+template <typename T>
+typename r123::make_signed<T>::type S(T x){ return x; }
+        
+#define Chk(u, Rng, Ftype) do{                            \
+        chk<Ftype, Rng>(#u, #Rng, #Ftype, &u<Ftype, Rng::ctr_type::value_type>); \
+    }while(0)
+
+std::map<std::string, std::string> refmap;
+
+void RefHist(const char* k, const char *v){
+    refmap[std::string(k)] = std::string(v);
+}
+
+void fillrefhist(){
+#include "ut_uniform_reference.hpp"
+}
+
+bool checking = true;
+int nfail = 0;
+
+template<typename Ftype, typename RNG, typename Utype>
+void chk(const std::string& fname, const std::string& rngname, const std::string& ftypename, Utype f){
+    std::string key = fname + " " + rngname + " " + ftypename;
+    RNG rng;
+    typedef typename RNG::ukey_type ukey_type;
+    typedef typename RNG::ctr_type ctr_type;
+    typedef typename RNG::key_type key_type;
+
+    ctr_type c = {{}};
+    ukey_type uk = {{}};
+    key_type k = uk;
+    // 26 bins - 13 greater than 0 and 13 less.  Why 13?  Because a
+    // prime number seems less likely to tickle the rounding-related
+    // corner cases, which is aruably both good and bad.
+    const int NBINS=26;
+    
+    int hist[NBINS] = {};
+    for(int i=0; i<1000; ++i){
+        c = c.incr();
+        ctr_type r = rng(c, k);
+        for(int j=0; j<ctr_type::static_size; ++j){
+            Ftype u = f(r[j]);
+            //printf("%s %llx, %.17g\n", key.c_str(), (long long)r[j], (double)u);
+            R123_ASSERT( u >= -1.);
+            R123_ASSERT( u <= 1.);
+            int idx = (int) ((u + Ftype(1.))*Ftype(NBINS/2));
+            hist[idx]++;
+        }
+    }
+    std::ostringstream oss;
+    for(int i=0; i<NBINS; ++i){
+        oss << " " << hist[i];
+    }
+    if(checking){
+        if( oss.str() != refmap[key] ){
+            printf("MISMATCH:  %s:\n\tcomputed histogram=%s\n\treference histogram=%s\n", 
+                   key.c_str(),
+                   oss.str().c_str(),
+                   refmap[key].c_str());
+            nfail++;
+        }
+    }else{
+        printf("RefHist(\"%s\", \"%s\");\n",  key.c_str(), oss.str().c_str());
+    }
+}
+
+int main(int argc, char **argv){
+    checking = (argc==1);
+    fillrefhist();
+
+    // 18 tests:  3 functions (u01, uneg11, u01fixedpt)
+    //          x 2 input sizes (32 bit or 64 bit)
+    //          x 3 output sizes (float, double, long double)
+    Chk(u01, Threefry4x32, float);
+    Chk(u01, Threefry4x32, double);
+    Chk(u01, Threefry4x32, long double);
+
+    Chk(u01, Threefry4x64, float);
+    Chk(u01, Threefry4x64, double);
+    Chk(u01, Threefry4x64, long double);
+
+    Chk(uneg11, Threefry4x32, float);
+    Chk(uneg11, Threefry4x32, double);
+    Chk(uneg11, Threefry4x32, long double);
+
+    Chk(uneg11, Threefry4x64, float);
+    Chk(uneg11, Threefry4x64, double);
+    Chk(uneg11, Threefry4x64, long double);
+    
+    Chk(u01fixedpt, Threefry4x32, float);
+    Chk(u01fixedpt, Threefry4x32, double);
+    Chk(u01fixedpt, Threefry4x32, long double);
+
+    Chk(u01fixedpt, Threefry4x64, float);
+    Chk(u01fixedpt, Threefry4x64, double);
+    Chk(u01fixedpt, Threefry4x64, long double);
+
+    if(nfail){
+        printf("// %s: FAILED %d Known-Answer-Tests failed\n", argv[0], nfail);
+    }else if(checking){
+        printf("%s: SUCCESS\n", argv[0]);
+    }
+
+    return !!nfail;
+}
diff --git a/examples/ut_uniform_IEEEkat.cpp b/examples/ut_uniform_IEEEkat.cpp
new file mode 100644
index 0000000..f7d9cf7
--- /dev/null
+++ b/examples/ut_uniform_IEEEkat.cpp
@@ -0,0 +1,293 @@
+/*
+Copyright 2013, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+ /* ut_uniform_IEEEkat.cpp - a "Known Answer Test" for uniform.hpp
+
+    This code tests that the compilation environment reproduces
+    exactly the behavior of u01, uneg11 and u01fixedpt on an x86-64
+    system with strict IEEE arithmetic.  It is likely to fail on
+    systems that use 80-bit internal registers (e.g., 32-bit x86), and
+    systems that are smart enough to fuse floating point multiply and
+    add into a single, rounded-only-once instruction (e.g., PowerPC,
+    Fermi, newer ARMs, Haswell, Itanium, etc.).  Failures in these
+    cases are *not* necessarily problematic. */
+
+#include "uniform.hpp"
+#include <stdio.h>
+#include <stdlib.h>
+#include <map>
+#include <string>
+
+using namespace r123;
+
+std::map<std::string, long double> katmap;
+
+// Don't inline this.  It's called thousands of times in fill_katmap
+// and blows out the optimizer in older versions of clang and open64
+// if it's inlined.
+void insert(const char *s, long double v){
+    katmap[std::string(s)] = v;
+}
+
+void fill_katmap(){
+#include "ut_uniform_IEEEkatvectors.hpp"
+#if 0  // helpful for debug,
+    for(std::map<std::string, long double>::iterator p=katmap.begin(); p!=katmap.end(); ++p){
+        fprintf(stderr, "%s -> %La\n", p->first.c_str(), p->second);
+    }
+#endif
+}
+
+template <typename T>
+typename r123::make_unsigned<T>::type U(T x){ return x; }
+
+template <typename T>
+typename r123::make_signed<T>::type S(T x){ return x; }
+        
+bool checking = true;
+int nfail = 0;
+int nuntested = 0;
+int notfound = 0;
+
+#define DO1(T, expr, astr) DoOne<T>(#expr, astr, expr)
+
+#define DO(i, astr) do{                                     \
+        ChkSignInvariance(#i, i);                      \
+        if(std::numeric_limits<float>::digits == 24){ \
+            DO1(float, u01<float>(i), astr);                  \
+            DO1(float, uneg11<float>(i), astr);                 \
+            DO1(float, u01fixedpt<float>(i), astr);              \
+        }else{                                          \
+            printf("UNTESTED: %s:  float does not have a 24 bit mantissa\n", #i); \
+            nuntested++;                                                \
+        }                                                       \
+        if(std::numeric_limits<double>::digits == 53){ \
+            DO1(double, u01<double>(i), astr);                 \
+            DO1(double, uneg11<double>(i), astr);                \
+            DO1(double, u01fixedpt<double>(i), astr);             \
+        }else{                                          \
+            printf("UNTESTED: %s:  double does not have a 53 bit mantissa\n", #i); \
+            nuntested++;                                                \
+        }                                                       \
+        if(std::numeric_limits<long double>::digits == 64){     \
+            DO1(long double, u01<long double>(i), astr);                \
+            DO1(long double, uneg11<long double>(i), astr);              \
+            DO1(long double, u01fixedpt<long double>(i), astr);          \
+        }else{                                          \
+            printf("UNTESTED: %s:  long double does not have a 64 bit mantissa\n", #i); \
+            nuntested++;                                                \
+        }                                                       \
+    } while(0)
+
+// u01, uneg11 and u01fixedpt should all depend on the bits, but not the
+// signedness of their argument.  The templated functions S(i) and U(i)
+// return their argument cast to an approprite signed and unsigned type.
+// ChkSignInvariance verifies that.
+template <typename IType>
+void ChkSignInvariance(const std::string& s, IType i){
+    if( u01<float>(S(i)) != u01<float>(U(i)) ){ 
+        printf("INVARIANT FAILURE:  u01<float>(Signed(x)) != u01<float>(Unsigned(x)) x=%s\n", s.c_str()); 
+        nfail++;                                                        
+    }                                                                   
+    if( uneg11<float>(S(i)) != uneg11<float>(U(i)) ){                   
+        printf("INVARIANT FAILURE:  uneg11<float>(Signed(x)) != uneg11<float>(Unsigned(x)) x=%s\n", s.c_str());
+        nfail++;                                                        
+    }                                                                   
+    if( u01fixedpt<float>(S(i)) != u01fixedpt<float>(U(i)) ){           
+        printf("INVARIANT FAILURE:  u01<float>(Signed(x)) != u01<float>(Unsigned(x)) x=%s\n", s.c_str()); 
+        nfail++;                                                        
+    }                                                                   
+
+    if( u01<double>(S(i)) != u01<double>(U(i)) ){ 
+        printf("INVARIANT FAILURE:  u01<double>(Signed(x)) != u01<double>(Unsigned(x)) x=%s\n", s.c_str()); 
+        nfail++;                                                        
+    }                                                                   
+    if( uneg11<double>(S(i)) != uneg11<double>(U(i)) ){                   
+        printf("INVARIANT FAILURE:  uneg11<double>(Signed(x)) != uneg11<double>(Unsigned(x)) x=%s\n", s.c_str());
+        nfail++;                                                        
+    }                                                                   
+    if( u01fixedpt<double>(S(i)) != u01fixedpt<double>(U(i)) ){           
+        printf("INVARIANT FAILURE:  u01<double>(Signed(x)) != u01<double>(Unsigned(x)) x=%s\n", s.c_str()); 
+        nfail++;                                                        
+    }                                                                   
+
+    if( u01<long double>(S(i)) != u01<long double>(U(i)) ){ 
+        printf("INVARIANT FAILURE:  u01<long double>(Signed(x)) != u01<long double>(Unsigned(x)) x=%s\n", s.c_str()); 
+        nfail++;                                                        
+    }                                                                   
+    if( uneg11<long double>(S(i)) != uneg11<long double>(U(i)) ){                   
+        printf("INVARIANT FAILURE:  uneg11<long double>(Signed(x)) != uneg11<long double>(Unsigned(x)) x=%s\n", s.c_str());
+        nfail++;                                                        
+    }                                                                   
+    if( u01fixedpt<long double>(S(i)) != u01fixedpt<long double>(U(i)) ){           
+        printf("INVARIANT FAILURE:  u01<long double>(Signed(x)) != u01<long double>(Unsigned(x)) x=%s\n", s.c_str()); 
+        nfail++;                                                        
+    }                                                                   
+}
+
+template <typename T>
+void DoOne(const std::string s, const char* astr, volatile T x){
+    std::string ss = s + " a=" + astr;
+    volatile long double ldx = x;
+    if(checking){                                 
+        if( katmap.find(ss) == katmap.end() ){   
+            printf("NOT FOUND: katmap[%s]\n", ss.c_str());
+            notfound++;                           
+        }else{                                    
+            if(ldx!=katmap[ss]){                  
+                printf("MISMATCH:  %s: computed=%.21Lg reference=%.21Lg\n", ss.c_str(), ldx, katmap[ss]); 
+                nfail++;                                                
+            }                                                           
+        }                                                               
+    }else{                                                              
+        printf("insert(\"%s\", %#.21LgL);\n", ss.c_str(), ldx);     
+    }
+}
+
+void DO3264(int a){
+    const uint32_t maxu32 = std::numeric_limits<uint32_t>::max();
+    const uint64_t maxu64 = std::numeric_limits<uint64_t>::max();
+    const uint32_t minu32 = std::numeric_limits<uint32_t>::min();
+    const uint64_t minu64 = std::numeric_limits<uint64_t>::min();
+
+    const int32_t maxi32 = std::numeric_limits<int32_t>::max();
+    const int64_t maxi64 = std::numeric_limits<int64_t>::max();
+    const int32_t mini32 = std::numeric_limits<int32_t>::min();
+    const int64_t mini64 = std::numeric_limits<int64_t>::min();
+
+    char astr[32];
+    sprintf(astr, "%d", a);
+
+    DO( minu32 + uint32_t(a), astr );
+    DO( minu64 + uint64_t(a), astr );
+    DO( mini32 + int32_t(a), astr ); 
+    DO( mini64 + int64_t(a), astr ); 
+
+    DO( maxu32 - uint32_t(a), astr );
+    DO( maxu64 - uint64_t(a), astr );
+    DO( maxi32 - int32_t(a), astr ); 
+    DO( maxi64 - int64_t(a), astr ); 
+}
+
+int main(int argc, char **argv){
+    if(argc>1){
+        checking = false;
+        printf("/* This file was created by '%s %s' on a reference\n"
+               "   platform, and is #included in the recompilation of %s\n"
+               "   on a target platform.  When %s is run with no arguments\n"
+               "   on the target platform, it asserts that the values computed\n"
+               "   on the target platform match the reference values recorded here.\n"
+               "   These reference values were computed on an x86_64 using 32-bit,\n"
+               "   64-bit and 80-bit IEEE arithmetic for float, double and long double\n"
+               "   respectively.  Other platforms with different representations of\n"
+               "   floating point values or different conventions for how intermediates\n"
+               "   are stored and rounded will almost certainly fail these tests\n"
+               "   even though their results might be perfectly valid.\n"
+               "*/\n", argv[0], argv[1], argv[0], argv[0]);
+    }
+    fill_katmap();
+    
+
+    DO3264(0);
+    DO3264(1);
+    DO3264(2);
+    DO3264(3);
+    DO3264(4);
+    DO3264(5);
+
+    DO3264(63);
+    DO3264(64);
+    DO3264(65);
+
+    DO3264(127);
+    DO3264(128);
+    DO3264(129);
+
+    DO3264(191);
+    DO3264(192);
+    DO3264(193);
+
+    DO3264(255);
+    DO3264(256);
+    DO3264(257);
+
+    DO3264(319);
+    DO3264(320);
+    DO3264(321);
+
+    DO3264(382);
+    DO3264(383);
+    DO3264(384);
+
+    DO3264(639);
+    DO3264(640);
+    DO3264(641);
+
+    DO3264(1023);
+    DO3264(1024);
+    DO3264(1025);
+
+    DO3264(3070);
+    DO3264(3071);
+    DO3264(3072);
+
+    DO3264(5119);
+    DO3264(5120);
+    DO3264(5121);
+
+    if(notfound){
+        printf("// %s: WARNING:  %d tests were not checked because reference values were not compiled in\n",
+               argv[0], notfound);
+    }
+    if(nuntested){
+        printf("// %s: WARNING:  %d tests were not performed because the floating point rep does not match the IEEE format used to compute reference values\n", 
+               argv[0], nuntested);
+    }
+    if(nfail){
+        printf("// %s: FAILED %d Known-Answer-Tests failed\n", argv[0], nfail);
+        printf("Such failures may be due to non-IEEE arithmetic on your platform.  In some \n"
+               "cases, you may be able to recover IEEE arithmetic by pre-defining the\n"
+               "pp-symbol R123_UNIFORM_FLOAT_STORE to a non-zero value, e.g., adding\n"
+               "-DR123_UNIFORM_FLOAT_STORE=1 to the compile command line.  On some\n"
+               "systems (notably, 32-bit x86 architectures) this will prevent use of\n"
+               "extra-wide internal floating point registers and will recover IEEE\n"
+               "arithmetic.  Unfortunately, this will make u01 and uneg11 significantly\n"
+               "slower, so you may not wish to define it in production code.  As far\n"
+               "as we know, the floating point values returned with the symbol unset\n"
+               "are perfectly reasonable.  They simply don't perfectly match the\n"
+               "values computed on our reference x86-64 platform with IEEE arithmetic\n");
+    }else{
+        printf("// %s: SUCCESS\n", argv[0]);
+    }
+
+    return !!nfail;
+}
diff --git a/examples/ut_uniform_IEEEkatvectors.hpp b/examples/ut_uniform_IEEEkatvectors.hpp
new file mode 100644
index 0000000..4246b60
--- /dev/null
+++ b/examples/ut_uniform_IEEEkatvectors.hpp
@@ -0,0 +1,2605 @@
+/* This file was created by './ut_uniform_IEEEkat 1' on a reference
+   platform, and is #included in the recompilation of ./ut_uniform_IEEEkat
+   on a target platform.  When ./ut_uniform_IEEEkat is run with no arguments
+   on the target platform, it asserts that the values computed
+   on the target platform match the reference values recorded here.
+   These reference values were computed on an x86_64 using 32-bit,
+   64-bit and 80-bit IEEE arithmetic for float, double and long double
+   respectively.  Other platforms with different representations of
+   floating point values or different conventions for how intermediates
+   are stored and rounded will almost certainly fail these tests
+   even though their results might be perfectly valid.
+*/
+insert("u01<float>(minu32 + uint32_t(a)) a=0", 1.16415321826934814453e-10L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=0", 2.32830643653869628906e-10L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=0", 5.96046447753906250000e-08L);
+insert("u01<double>(minu32 + uint32_t(a)) a=0", 1.16415321826934814453e-10L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=0", 2.32830643653869628906e-10L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=0", 1.16415321826934814453e-10L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=0", 1.16415321826934814453e-10L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=0", 2.32830643653869628906e-10L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=0", 1.16415321826934814453e-10L);
+insert("u01<float>(minu64 + uint64_t(a)) a=0", 2.71050543121376108502e-20L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=0", 5.42101086242752217004e-20L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=0", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=0", 2.71050543121376108502e-20L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=0", 5.42101086242752217004e-20L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=0", 1.11022302462515654042e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=0", 2.71050543121376108502e-20L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=0", 5.42101086242752217004e-20L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=0", 5.42101086242752217004e-20L);
+insert("u01<float>(mini32 + int32_t(a)) a=0", 0.500000000000000000000L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=0", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=0", 0.500000059604644775391L);
+insert("u01<double>(mini32 + int32_t(a)) a=0", 0.500000000116415321827L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=0", -0.999999999767169356346L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=0", 0.500000000116415321827L);
+insert("u01<long double>(mini32 + int32_t(a)) a=0", 0.500000000116415321827L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=0", -0.999999999767169356346L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=0", 0.500000000116415321827L);
+insert("u01<float>(mini64 + int64_t(a)) a=0", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=0", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=0", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=0", 0.500000000000000000000L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=0", -1.00000000000000000000L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=0", 0.500000000000000111022L);
+insert("u01<long double>(mini64 + int64_t(a)) a=0", 0.500000000000000000000L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=0", -0.999999999999999999946L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=0", 0.500000000000000000054L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=0", 1.00000000000000000000L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=0", -2.32830643653869628906e-10L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=0", 0.999999940395355224609L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=0", 0.999999999883584678173L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=0", -2.32830643653869628906e-10L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=0", 0.999999999883584678173L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=0", 0.999999999883584678173L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=0", -2.32830643653869628906e-10L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=0", 0.999999999883584678173L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=0", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=0", -5.42101086242752217004e-20L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=0", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=0", 1.00000000000000000000L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=0", -5.42101086242752217004e-20L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=0", 0.999999999999999888978L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=0", 1.00000000000000000000L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=0", -5.42101086242752217004e-20L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=0", 0.999999999999999999946L);
+insert("u01<float>(maxi32 - int32_t(a)) a=0", 0.500000000000000000000L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=0", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=0", 0.499999940395355224609L);
+insert("u01<double>(maxi32 - int32_t(a)) a=0", 0.499999999883584678173L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=0", 0.999999999767169356346L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=0", 0.499999999883584678173L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=0", 0.499999999883584678173L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=0", 0.999999999767169356346L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=0", 0.499999999883584678173L);
+insert("u01<float>(maxi64 - int64_t(a)) a=0", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=0", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=0", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=0", 0.500000000000000000000L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=0", 1.00000000000000000000L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=0", 0.499999999999999888978L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=0", 0.499999999999999999973L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=0", 0.999999999999999999946L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=0", 0.499999999999999999946L);
+insert("u01<float>(minu32 + uint32_t(a)) a=1", 3.49245965480804443359e-10L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=1", 6.98491930961608886719e-10L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=1", 5.96046447753906250000e-08L);
+insert("u01<double>(minu32 + uint32_t(a)) a=1", 3.49245965480804443359e-10L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=1", 6.98491930961608886719e-10L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=1", 3.49245965480804443359e-10L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=1", 3.49245965480804443359e-10L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=1", 6.98491930961608886719e-10L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=1", 3.49245965480804443359e-10L);
+insert("u01<float>(minu64 + uint64_t(a)) a=1", 8.13151629364128325506e-20L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=1", 1.62630325872825665101e-19L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=1", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=1", 8.13151629364128325506e-20L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=1", 1.62630325872825665101e-19L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=1", 1.11022302462515654042e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=1", 8.13151629364128325506e-20L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=1", 1.62630325872825665101e-19L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=1", 5.42101086242752217004e-20L);
+insert("u01<float>(mini32 + int32_t(a)) a=1", 0.500000000000000000000L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=1", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=1", 0.500000059604644775391L);
+insert("u01<double>(mini32 + int32_t(a)) a=1", 0.500000000349245965481L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=1", -0.999999999301508069038L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=1", 0.500000000349245965481L);
+insert("u01<long double>(mini32 + int32_t(a)) a=1", 0.500000000349245965481L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=1", -0.999999999301508069038L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=1", 0.500000000349245965481L);
+insert("u01<float>(mini64 + int64_t(a)) a=1", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=1", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=1", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=1", 0.500000000000000000000L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=1", -1.00000000000000000000L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=1", 0.500000000000000111022L);
+insert("u01<long double>(mini64 + int64_t(a)) a=1", 0.500000000000000000108L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=1", -0.999999999999999999837L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=1", 0.500000000000000000054L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=1", 1.00000000000000000000L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=1", -6.98491930961608886719e-10L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=1", 0.999999940395355224609L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=1", 0.999999999650754034519L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=1", -6.98491930961608886719e-10L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=1", 0.999999999650754034519L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=1", 0.999999999650754034519L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=1", -6.98491930961608886719e-10L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=1", 0.999999999650754034519L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=1", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=1", -1.62630325872825665101e-19L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=1", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=1", 1.00000000000000000000L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=1", -1.62630325872825665101e-19L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=1", 0.999999999999999888978L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=1", 0.999999999999999999892L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=1", -1.62630325872825665101e-19L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=1", 0.999999999999999999946L);
+insert("u01<float>(maxi32 - int32_t(a)) a=1", 0.500000000000000000000L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=1", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=1", 0.499999940395355224609L);
+insert("u01<double>(maxi32 - int32_t(a)) a=1", 0.499999999650754034519L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=1", 0.999999999301508069038L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=1", 0.499999999650754034519L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=1", 0.499999999650754034519L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=1", 0.999999999301508069038L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=1", 0.499999999650754034519L);
+insert("u01<float>(maxi64 - int64_t(a)) a=1", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=1", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=1", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=1", 0.500000000000000000000L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=1", 1.00000000000000000000L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=1", 0.499999999999999888978L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=1", 0.499999999999999999919L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=1", 0.999999999999999999837L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=1", 0.499999999999999999946L);
+insert("u01<float>(minu32 + uint32_t(a)) a=2", 5.82076609134674072266e-10L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=2", 1.16415321826934814453e-09L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=2", 5.96046447753906250000e-08L);
+insert("u01<double>(minu32 + uint32_t(a)) a=2", 5.82076609134674072266e-10L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=2", 1.16415321826934814453e-09L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=2", 5.82076609134674072266e-10L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=2", 5.82076609134674072266e-10L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=2", 1.16415321826934814453e-09L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=2", 5.82076609134674072266e-10L);
+insert("u01<float>(minu64 + uint64_t(a)) a=2", 1.35525271560688054251e-19L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=2", 2.71050543121376108502e-19L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=2", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=2", 1.35525271560688054251e-19L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=2", 2.71050543121376108502e-19L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=2", 1.11022302462515654042e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=2", 1.35525271560688054251e-19L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=2", 2.71050543121376108502e-19L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=2", 1.62630325872825665101e-19L);
+insert("u01<float>(mini32 + int32_t(a)) a=2", 0.500000000000000000000L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=2", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=2", 0.500000059604644775391L);
+insert("u01<double>(mini32 + int32_t(a)) a=2", 0.500000000582076609135L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=2", -0.999999998835846781731L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=2", 0.500000000582076609135L);
+insert("u01<long double>(mini32 + int32_t(a)) a=2", 0.500000000582076609135L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=2", -0.999999998835846781731L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=2", 0.500000000582076609135L);
+insert("u01<float>(mini64 + int64_t(a)) a=2", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=2", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=2", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=2", 0.500000000000000000000L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=2", -1.00000000000000000000L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=2", 0.500000000000000111022L);
+insert("u01<long double>(mini64 + int64_t(a)) a=2", 0.500000000000000000108L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=2", -0.999999999999999999729L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=2", 0.500000000000000000163L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=2", 1.00000000000000000000L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=2", -1.16415321826934814453e-09L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=2", 0.999999940395355224609L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=2", 0.999999999417923390865L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=2", -1.16415321826934814453e-09L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=2", 0.999999999417923390865L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=2", 0.999999999417923390865L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=2", -1.16415321826934814453e-09L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=2", 0.999999999417923390865L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=2", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=2", -2.71050543121376108502e-19L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=2", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=2", 1.00000000000000000000L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=2", -2.71050543121376108502e-19L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=2", 0.999999999999999888978L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=2", 0.999999999999999999892L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=2", -2.71050543121376108502e-19L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=2", 0.999999999999999999837L);
+insert("u01<float>(maxi32 - int32_t(a)) a=2", 0.500000000000000000000L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=2", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=2", 0.499999940395355224609L);
+insert("u01<double>(maxi32 - int32_t(a)) a=2", 0.499999999417923390865L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=2", 0.999999998835846781731L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=2", 0.499999999417923390865L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=2", 0.499999999417923390865L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=2", 0.999999998835846781731L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=2", 0.499999999417923390865L);
+insert("u01<float>(maxi64 - int64_t(a)) a=2", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=2", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=2", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=2", 0.500000000000000000000L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=2", 1.00000000000000000000L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=2", 0.499999999999999888978L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=2", 0.499999999999999999864L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=2", 0.999999999999999999729L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=2", 0.499999999999999999837L);
+insert("u01<float>(minu32 + uint32_t(a)) a=3", 8.14907252788543701172e-10L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=3", 1.62981450557708740234e-09L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=3", 5.96046447753906250000e-08L);
+insert("u01<double>(minu32 + uint32_t(a)) a=3", 8.14907252788543701172e-10L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=3", 1.62981450557708740234e-09L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=3", 8.14907252788543701172e-10L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=3", 8.14907252788543701172e-10L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=3", 1.62981450557708740234e-09L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=3", 8.14907252788543701172e-10L);
+insert("u01<float>(minu64 + uint64_t(a)) a=3", 1.89735380184963275951e-19L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=3", 3.79470760369926551903e-19L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=3", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=3", 1.89735380184963275951e-19L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=3", 3.79470760369926551903e-19L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=3", 1.11022302462515654042e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=3", 1.89735380184963275951e-19L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=3", 3.79470760369926551903e-19L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=3", 1.62630325872825665101e-19L);
+insert("u01<float>(mini32 + int32_t(a)) a=3", 0.500000000000000000000L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=3", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=3", 0.500000059604644775391L);
+insert("u01<double>(mini32 + int32_t(a)) a=3", 0.500000000814907252789L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=3", -0.999999998370185494423L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=3", 0.500000000814907252789L);
+insert("u01<long double>(mini32 + int32_t(a)) a=3", 0.500000000814907252789L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=3", -0.999999998370185494423L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=3", 0.500000000814907252789L);
+insert("u01<float>(mini64 + int64_t(a)) a=3", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=3", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=3", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=3", 0.500000000000000000000L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=3", -1.00000000000000000000L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=3", 0.500000000000000111022L);
+insert("u01<long double>(mini64 + int64_t(a)) a=3", 0.500000000000000000217L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=3", -0.999999999999999999621L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=3", 0.500000000000000000163L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=3", 1.00000000000000000000L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=3", -1.62981450557708740234e-09L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=3", 0.999999940395355224609L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=3", 0.999999999185092747211L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=3", -1.62981450557708740234e-09L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=3", 0.999999999185092747211L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=3", 0.999999999185092747211L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=3", -1.62981450557708740234e-09L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=3", 0.999999999185092747211L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=3", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=3", -3.79470760369926551903e-19L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=3", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=3", 1.00000000000000000000L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=3", -3.79470760369926551903e-19L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=3", 0.999999999999999888978L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=3", 0.999999999999999999783L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=3", -3.79470760369926551903e-19L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=3", 0.999999999999999999837L);
+insert("u01<float>(maxi32 - int32_t(a)) a=3", 0.500000000000000000000L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=3", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=3", 0.499999940395355224609L);
+insert("u01<double>(maxi32 - int32_t(a)) a=3", 0.499999999185092747211L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=3", 0.999999998370185494423L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=3", 0.499999999185092747211L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=3", 0.499999999185092747211L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=3", 0.999999998370185494423L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=3", 0.499999999185092747211L);
+insert("u01<float>(maxi64 - int64_t(a)) a=3", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=3", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=3", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=3", 0.500000000000000000000L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=3", 1.00000000000000000000L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=3", 0.499999999999999888978L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=3", 0.499999999999999999810L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=3", 0.999999999999999999621L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=3", 0.499999999999999999837L);
+insert("u01<float>(minu32 + uint32_t(a)) a=4", 1.04773789644241333008e-09L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=4", 2.09547579288482666016e-09L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=4", 5.96046447753906250000e-08L);
+insert("u01<double>(minu32 + uint32_t(a)) a=4", 1.04773789644241333008e-09L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=4", 2.09547579288482666016e-09L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=4", 1.04773789644241333008e-09L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=4", 1.04773789644241333008e-09L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=4", 2.09547579288482666016e-09L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=4", 1.04773789644241333008e-09L);
+insert("u01<float>(minu64 + uint64_t(a)) a=4", 2.43945488809238497652e-19L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=4", 4.87890977618476995303e-19L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=4", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=4", 2.43945488809238497652e-19L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=4", 4.87890977618476995303e-19L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=4", 1.11022302462515654042e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=4", 2.43945488809238497652e-19L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=4", 4.87890977618476995303e-19L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=4", 2.71050543121376108502e-19L);
+insert("u01<float>(mini32 + int32_t(a)) a=4", 0.500000000000000000000L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=4", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=4", 0.500000059604644775391L);
+insert("u01<double>(mini32 + int32_t(a)) a=4", 0.500000001047737896442L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=4", -0.999999997904524207115L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=4", 0.500000001047737896442L);
+insert("u01<long double>(mini32 + int32_t(a)) a=4", 0.500000001047737896442L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=4", -0.999999997904524207115L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=4", 0.500000001047737896442L);
+insert("u01<float>(mini64 + int64_t(a)) a=4", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=4", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=4", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=4", 0.500000000000000000000L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=4", -1.00000000000000000000L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=4", 0.500000000000000111022L);
+insert("u01<long double>(mini64 + int64_t(a)) a=4", 0.500000000000000000217L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=4", -0.999999999999999999512L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=4", 0.500000000000000000271L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=4", 1.00000000000000000000L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=4", -2.09547579288482666016e-09L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=4", 0.999999940395355224609L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=4", 0.999999998952262103558L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=4", -2.09547579288482666016e-09L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=4", 0.999999998952262103558L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=4", 0.999999998952262103558L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=4", -2.09547579288482666016e-09L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=4", 0.999999998952262103558L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=4", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=4", -4.87890977618476995303e-19L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=4", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=4", 1.00000000000000000000L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=4", -4.87890977618476995303e-19L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=4", 0.999999999999999888978L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=4", 0.999999999999999999783L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=4", -4.87890977618476995303e-19L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=4", 0.999999999999999999729L);
+insert("u01<float>(maxi32 - int32_t(a)) a=4", 0.500000000000000000000L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=4", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=4", 0.499999940395355224609L);
+insert("u01<double>(maxi32 - int32_t(a)) a=4", 0.499999998952262103558L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=4", 0.999999997904524207115L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=4", 0.499999998952262103558L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=4", 0.499999998952262103558L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=4", 0.999999997904524207115L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=4", 0.499999998952262103558L);
+insert("u01<float>(maxi64 - int64_t(a)) a=4", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=4", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=4", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=4", 0.500000000000000000000L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=4", 1.00000000000000000000L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=4", 0.499999999999999888978L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=4", 0.499999999999999999756L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=4", 0.999999999999999999512L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=4", 0.499999999999999999729L);
+insert("u01<float>(minu32 + uint32_t(a)) a=5", 1.28056854009628295898e-09L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=5", 2.56113708019256591797e-09L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=5", 5.96046447753906250000e-08L);
+insert("u01<double>(minu32 + uint32_t(a)) a=5", 1.28056854009628295898e-09L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=5", 2.56113708019256591797e-09L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=5", 1.28056854009628295898e-09L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=5", 1.28056854009628295898e-09L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=5", 2.56113708019256591797e-09L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=5", 1.28056854009628295898e-09L);
+insert("u01<float>(minu64 + uint64_t(a)) a=5", 2.98155597433513719352e-19L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=5", 5.96311194867027438704e-19L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=5", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=5", 2.98155597433513719352e-19L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=5", 5.96311194867027438704e-19L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=5", 1.11022302462515654042e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=5", 2.98155597433513719352e-19L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=5", 5.96311194867027438704e-19L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=5", 2.71050543121376108502e-19L);
+insert("u01<float>(mini32 + int32_t(a)) a=5", 0.500000000000000000000L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=5", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=5", 0.500000059604644775391L);
+insert("u01<double>(mini32 + int32_t(a)) a=5", 0.500000001280568540096L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=5", -0.999999997438862919807L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=5", 0.500000001280568540096L);
+insert("u01<long double>(mini32 + int32_t(a)) a=5", 0.500000001280568540096L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=5", -0.999999997438862919807L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=5", 0.500000001280568540096L);
+insert("u01<float>(mini64 + int64_t(a)) a=5", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=5", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=5", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=5", 0.500000000000000000000L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=5", -1.00000000000000000000L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=5", 0.500000000000000111022L);
+insert("u01<long double>(mini64 + int64_t(a)) a=5", 0.500000000000000000325L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=5", -0.999999999999999999404L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=5", 0.500000000000000000271L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=5", 1.00000000000000000000L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=5", -2.56113708019256591797e-09L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=5", 0.999999940395355224609L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=5", 0.999999998719431459904L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=5", -2.56113708019256591797e-09L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=5", 0.999999998719431459904L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=5", 0.999999998719431459904L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=5", -2.56113708019256591797e-09L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=5", 0.999999998719431459904L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=5", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=5", -5.96311194867027438704e-19L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=5", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=5", 1.00000000000000000000L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=5", -5.96311194867027438704e-19L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=5", 0.999999999999999888978L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=5", 0.999999999999999999675L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=5", -5.96311194867027438704e-19L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=5", 0.999999999999999999729L);
+insert("u01<float>(maxi32 - int32_t(a)) a=5", 0.500000000000000000000L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=5", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=5", 0.499999940395355224609L);
+insert("u01<double>(maxi32 - int32_t(a)) a=5", 0.499999998719431459904L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=5", 0.999999997438862919807L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=5", 0.499999998719431459904L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=5", 0.499999998719431459904L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=5", 0.999999997438862919807L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=5", 0.499999998719431459904L);
+insert("u01<float>(maxi64 - int64_t(a)) a=5", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=5", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=5", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=5", 0.500000000000000000000L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=5", 1.00000000000000000000L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=5", 0.499999999999999888978L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=5", 0.499999999999999999702L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=5", 0.999999999999999999404L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=5", 0.499999999999999999729L);
+insert("u01<float>(minu32 + uint32_t(a)) a=63", 1.47847458720207214355e-08L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=63", 2.95694917440414428711e-08L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=63", 5.96046447753906250000e-08L);
+insert("u01<double>(minu32 + uint32_t(a)) a=63", 1.47847458720207214355e-08L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=63", 2.95694917440414428711e-08L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=63", 1.47847458720207214355e-08L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=63", 1.47847458720207214355e-08L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=63", 2.95694917440414428711e-08L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=63", 1.47847458720207214355e-08L);
+insert("u01<float>(minu64 + uint64_t(a)) a=63", 3.44234189764147657797e-18L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=63", 6.88468379528295315595e-18L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=63", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=63", 3.44234189764147657797e-18L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=63", 6.88468379528295315595e-18L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=63", 1.11022302462515654042e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=63", 3.44234189764147657797e-18L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=63", 6.88468379528295315595e-18L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=63", 3.41523684332933896712e-18L);
+insert("u01<float>(mini32 + int32_t(a)) a=63", 0.500000000000000000000L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=63", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=63", 0.500000059604644775391L);
+insert("u01<double>(mini32 + int32_t(a)) a=63", 0.500000014784745872021L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=63", -0.999999970430508255959L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=63", 0.500000014784745872021L);
+insert("u01<long double>(mini32 + int32_t(a)) a=63", 0.500000014784745872021L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=63", -0.999999970430508255959L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=63", 0.500000014784745872021L);
+insert("u01<float>(mini64 + int64_t(a)) a=63", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=63", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=63", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=63", 0.500000000000000000000L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=63", -1.00000000000000000000L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=63", 0.500000000000000111022L);
+insert("u01<long double>(mini64 + int64_t(a)) a=63", 0.500000000000000003469L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=63", -0.999999999999999993115L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=63", 0.500000000000000003415L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=63", 1.00000000000000000000L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=63", -2.95694917440414428711e-08L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=63", 0.999999940395355224609L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=63", 0.999999985215254127979L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=63", -2.95694917440414428711e-08L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=63", 0.999999985215254127979L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=63", 0.999999985215254127979L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=63", -2.95694917440414428711e-08L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=63", 0.999999985215254127979L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=63", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=63", -6.88468379528295315595e-18L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=63", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=63", 1.00000000000000000000L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=63", -6.88468379528295315595e-18L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=63", 0.999999999999999888978L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=63", 0.999999999999999996531L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=63", -6.88468379528295315595e-18L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=63", 0.999999999999999996585L);
+insert("u01<float>(maxi32 - int32_t(a)) a=63", 0.500000000000000000000L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=63", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=63", 0.499999940395355224609L);
+insert("u01<double>(maxi32 - int32_t(a)) a=63", 0.499999985215254127979L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=63", 0.999999970430508255959L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=63", 0.499999985215254127979L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=63", 0.499999985215254127979L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=63", 0.999999970430508255959L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=63", 0.499999985215254127979L);
+insert("u01<float>(maxi64 - int64_t(a)) a=63", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=63", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=63", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=63", 0.500000000000000000000L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=63", 1.00000000000000000000L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=63", 0.499999999999999888978L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=63", 0.499999999999999996558L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=63", 0.999999999999999993115L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=63", 0.499999999999999996585L);
+insert("u01<float>(minu32 + uint32_t(a)) a=64", 1.50175765156745910645e-08L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=64", 3.00351530313491821289e-08L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=64", 5.96046447753906250000e-08L);
+insert("u01<double>(minu32 + uint32_t(a)) a=64", 1.50175765156745910645e-08L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=64", 3.00351530313491821289e-08L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=64", 1.50175765156745910645e-08L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=64", 1.50175765156745910645e-08L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=64", 3.00351530313491821289e-08L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=64", 1.50175765156745910645e-08L);
+insert("u01<float>(minu64 + uint64_t(a)) a=64", 3.49655200626575179967e-18L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=64", 6.99310401253150359935e-18L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=64", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=64", 3.49655200626575179967e-18L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=64", 6.99310401253150359935e-18L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=64", 1.11022302462515654042e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=64", 3.49655200626575179967e-18L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=64", 6.99310401253150359935e-18L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=64", 3.52365706057788941052e-18L);
+insert("u01<float>(mini32 + int32_t(a)) a=64", 0.500000000000000000000L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=64", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=64", 0.500000059604644775391L);
+insert("u01<double>(mini32 + int32_t(a)) a=64", 0.500000015017576515675L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=64", -0.999999969964846968651L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=64", 0.500000015017576515675L);
+insert("u01<long double>(mini32 + int32_t(a)) a=64", 0.500000015017576515675L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=64", -0.999999969964846968651L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=64", 0.500000015017576515675L);
+insert("u01<float>(mini64 + int64_t(a)) a=64", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=64", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=64", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=64", 0.500000000000000000000L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=64", -1.00000000000000000000L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=64", 0.500000000000000111022L);
+insert("u01<long double>(mini64 + int64_t(a)) a=64", 0.500000000000000003469L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=64", -0.999999999999999993007L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=64", 0.500000000000000003524L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=64", 1.00000000000000000000L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=64", -3.00351530313491821289e-08L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=64", 0.999999940395355224609L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=64", 0.999999984982423484325L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=64", -3.00351530313491821289e-08L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=64", 0.999999984982423484325L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=64", 0.999999984982423484325L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=64", -3.00351530313491821289e-08L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=64", 0.999999984982423484325L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=64", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=64", -6.99310401253150359935e-18L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=64", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=64", 1.00000000000000000000L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=64", -6.99310401253150359935e-18L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=64", 0.999999999999999888978L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=64", 0.999999999999999996531L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=64", -6.99310401253150359935e-18L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=64", 0.999999999999999996476L);
+insert("u01<float>(maxi32 - int32_t(a)) a=64", 0.499999970197677612305L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=64", 0.999999940395355224609L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=64", 0.499999940395355224609L);
+insert("u01<double>(maxi32 - int32_t(a)) a=64", 0.499999984982423484325L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=64", 0.999999969964846968651L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=64", 0.499999984982423484325L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=64", 0.499999984982423484325L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=64", 0.999999969964846968651L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=64", 0.499999984982423484325L);
+insert("u01<float>(maxi64 - int64_t(a)) a=64", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=64", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=64", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=64", 0.500000000000000000000L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=64", 1.00000000000000000000L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=64", 0.499999999999999888978L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=64", 0.499999999999999996503L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=64", 0.999999999999999993007L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=64", 0.499999999999999996476L);
+insert("u01<float>(minu32 + uint32_t(a)) a=65", 1.52504071593284606934e-08L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=65", 3.05008143186569213867e-08L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=65", 5.96046447753906250000e-08L);
+insert("u01<double>(minu32 + uint32_t(a)) a=65", 1.52504071593284606934e-08L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=65", 3.05008143186569213867e-08L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=65", 1.52504071593284606934e-08L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=65", 1.52504071593284606934e-08L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=65", 3.05008143186569213867e-08L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=65", 1.52504071593284606934e-08L);
+insert("u01<float>(minu64 + uint64_t(a)) a=65", 3.55076211489002702137e-18L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=65", 7.10152422978005404275e-18L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=65", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=65", 3.55076211489002702137e-18L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=65", 7.10152422978005404275e-18L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=65", 1.11022302462515654042e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=65", 3.55076211489002702137e-18L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=65", 7.10152422978005404275e-18L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=65", 3.52365706057788941052e-18L);
+insert("u01<float>(mini32 + int32_t(a)) a=65", 0.500000000000000000000L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=65", -0.999999940395355224609L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=65", 0.500000059604644775391L);
+insert("u01<double>(mini32 + int32_t(a)) a=65", 0.500000015250407159328L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=65", -0.999999969499185681343L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=65", 0.500000015250407159328L);
+insert("u01<long double>(mini32 + int32_t(a)) a=65", 0.500000015250407159328L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=65", -0.999999969499185681343L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=65", 0.500000015250407159328L);
+insert("u01<float>(mini64 + int64_t(a)) a=65", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=65", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=65", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=65", 0.500000000000000000000L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=65", -1.00000000000000000000L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=65", 0.500000000000000111022L);
+insert("u01<long double>(mini64 + int64_t(a)) a=65", 0.500000000000000003578L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=65", -0.999999999999999992898L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=65", 0.500000000000000003524L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=65", 1.00000000000000000000L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=65", -3.05008143186569213867e-08L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=65", 0.999999940395355224609L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=65", 0.999999984749592840672L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=65", -3.05008143186569213867e-08L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=65", 0.999999984749592840672L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=65", 0.999999984749592840672L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=65", -3.05008143186569213867e-08L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=65", 0.999999984749592840672L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=65", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=65", -7.10152422978005404275e-18L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=65", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=65", 1.00000000000000000000L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=65", -7.10152422978005404275e-18L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=65", 0.999999999999999888978L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=65", 0.999999999999999996422L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=65", -7.10152422978005404275e-18L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=65", 0.999999999999999996476L);
+insert("u01<float>(maxi32 - int32_t(a)) a=65", 0.499999970197677612305L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=65", 0.999999940395355224609L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=65", 0.499999940395355224609L);
+insert("u01<double>(maxi32 - int32_t(a)) a=65", 0.499999984749592840672L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=65", 0.999999969499185681343L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=65", 0.499999984749592840672L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=65", 0.499999984749592840672L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=65", 0.999999969499185681343L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=65", 0.499999984749592840672L);
+insert("u01<float>(maxi64 - int64_t(a)) a=65", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=65", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=65", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=65", 0.500000000000000000000L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=65", 1.00000000000000000000L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=65", 0.499999999999999888978L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=65", 0.499999999999999996449L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=65", 0.999999999999999992898L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=65", 0.499999999999999996476L);
+insert("u01<float>(minu32 + uint32_t(a)) a=127", 2.96859070658683776855e-08L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=127", 5.93718141317367553711e-08L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=127", 5.96046447753906250000e-08L);
+insert("u01<double>(minu32 + uint32_t(a)) a=127", 2.96859070658683776855e-08L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=127", 5.93718141317367553711e-08L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=127", 2.96859070658683776855e-08L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=127", 2.96859070658683776855e-08L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=127", 5.93718141317367553711e-08L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=127", 2.96859070658683776855e-08L);
+insert("u01<float>(minu64 + uint64_t(a)) a=127", 6.91178884959509076680e-18L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=127", 1.38235776991901815336e-17L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=127", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=127", 6.91178884959509076680e-18L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=127", 1.38235776991901815336e-17L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=127", 1.11022302462515654042e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=127", 6.91178884959509076680e-18L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=127", 1.38235776991901815336e-17L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=127", 6.88468379528295315595e-18L);
+insert("u01<float>(mini32 + int32_t(a)) a=127", 0.500000000000000000000L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=127", -0.999999940395355224609L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=127", 0.500000059604644775391L);
+insert("u01<double>(mini32 + int32_t(a)) a=127", 0.500000029685907065868L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=127", -0.999999940628185868263L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=127", 0.500000029685907065868L);
+insert("u01<long double>(mini32 + int32_t(a)) a=127", 0.500000029685907065868L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=127", -0.999999940628185868263L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=127", 0.500000029685907065868L);
+insert("u01<float>(mini64 + int64_t(a)) a=127", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=127", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=127", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=127", 0.500000000000000000000L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=127", -1.00000000000000000000L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=127", 0.500000000000000111022L);
+insert("u01<long double>(mini64 + int64_t(a)) a=127", 0.500000000000000006939L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=127", -0.999999999999999986176L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=127", 0.500000000000000006885L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=127", 1.00000000000000000000L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=127", -5.93718141317367553711e-08L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=127", 0.999999940395355224609L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=127", 0.999999970314092934132L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=127", -5.93718141317367553711e-08L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=127", 0.999999970314092934132L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=127", 0.999999970314092934132L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=127", -5.93718141317367553711e-08L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=127", 0.999999970314092934132L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=127", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=127", -1.38235776991901815336e-17L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=127", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=127", 1.00000000000000000000L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=127", -1.38235776991901815336e-17L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=127", 0.999999999999999888978L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=127", 0.999999999999999993061L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=127", -1.38235776991901815336e-17L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=127", 0.999999999999999993115L);
+insert("u01<float>(maxi32 - int32_t(a)) a=127", 0.499999970197677612305L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=127", 0.999999940395355224609L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=127", 0.499999940395355224609L);
+insert("u01<double>(maxi32 - int32_t(a)) a=127", 0.499999970314092934132L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=127", 0.999999940628185868263L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=127", 0.499999970314092934132L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=127", 0.499999970314092934132L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=127", 0.999999940628185868263L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=127", 0.499999970314092934132L);
+insert("u01<float>(maxi64 - int64_t(a)) a=127", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=127", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=127", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=127", 0.500000000000000000000L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=127", 1.00000000000000000000L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=127", 0.499999999999999888978L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=127", 0.499999999999999993088L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=127", 0.999999999999999986176L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=127", 0.499999999999999993115L);
+insert("u01<float>(minu32 + uint32_t(a)) a=128", 2.99187377095222473145e-08L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=128", 5.98374754190444946289e-08L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=128", 5.96046447753906250000e-08L);
+insert("u01<double>(minu32 + uint32_t(a)) a=128", 2.99187377095222473145e-08L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=128", 5.98374754190444946289e-08L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=128", 2.99187377095222473145e-08L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=128", 2.99187377095222473145e-08L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=128", 5.98374754190444946289e-08L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=128", 2.99187377095222473145e-08L);
+insert("u01<float>(minu64 + uint64_t(a)) a=128", 6.96599895821936598850e-18L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=128", 1.39319979164387319770e-17L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=128", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=128", 6.96599895821936598850e-18L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=128", 1.39319979164387319770e-17L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=128", 1.11022302462515654042e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=128", 6.96599895821936598850e-18L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=128", 1.39319979164387319770e-17L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=128", 6.99310401253150359935e-18L);
+insert("u01<float>(mini32 + int32_t(a)) a=128", 0.500000000000000000000L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=128", -0.999999940395355224609L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=128", 0.500000059604644775391L);
+insert("u01<double>(mini32 + int32_t(a)) a=128", 0.500000029918737709522L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=128", -0.999999940162524580956L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=128", 0.500000029918737709522L);
+insert("u01<long double>(mini32 + int32_t(a)) a=128", 0.500000029918737709522L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=128", -0.999999940162524580956L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=128", 0.500000029918737709522L);
+insert("u01<float>(mini64 + int64_t(a)) a=128", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=128", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=128", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=128", 0.500000000000000000000L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=128", -1.00000000000000000000L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=128", 0.500000000000000111022L);
+insert("u01<long double>(mini64 + int64_t(a)) a=128", 0.500000000000000006939L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=128", -0.999999999999999986068L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=128", 0.500000000000000006993L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=128", 0.999999940395355224609L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=128", -5.98374754190444946289e-08L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=128", 0.999999940395355224609L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=128", 0.999999970081262290478L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=128", -5.98374754190444946289e-08L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=128", 0.999999970081262290478L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=128", 0.999999970081262290478L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=128", -5.98374754190444946289e-08L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=128", 0.999999970081262290478L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=128", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=128", -1.39319979164387319770e-17L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=128", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=128", 1.00000000000000000000L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=128", -1.39319979164387319770e-17L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=128", 0.999999999999999888978L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=128", 0.999999999999999993061L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=128", -1.39319979164387319770e-17L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=128", 0.999999999999999993007L);
+insert("u01<float>(maxi32 - int32_t(a)) a=128", 0.499999970197677612305L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=128", 0.999999940395355224609L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=128", 0.499999940395355224609L);
+insert("u01<double>(maxi32 - int32_t(a)) a=128", 0.499999970081262290478L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=128", 0.999999940162524580956L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=128", 0.499999970081262290478L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=128", 0.499999970081262290478L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=128", 0.999999940162524580956L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=128", 0.499999970081262290478L);
+insert("u01<float>(maxi64 - int64_t(a)) a=128", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=128", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=128", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=128", 0.500000000000000000000L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=128", 1.00000000000000000000L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=128", 0.499999999999999888978L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=128", 0.499999999999999993034L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=128", 0.999999999999999986068L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=128", 0.499999999999999993007L);
+insert("u01<float>(minu32 + uint32_t(a)) a=129", 3.01515683531761169434e-08L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=129", 6.03031367063522338867e-08L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=129", 5.96046447753906250000e-08L);
+insert("u01<double>(minu32 + uint32_t(a)) a=129", 3.01515683531761169434e-08L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=129", 6.03031367063522338867e-08L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=129", 3.01515683531761169434e-08L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=129", 3.01515683531761169434e-08L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=129", 6.03031367063522338867e-08L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=129", 3.01515683531761169434e-08L);
+insert("u01<float>(minu64 + uint64_t(a)) a=129", 7.02020906684364121020e-18L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=129", 1.40404181336872824204e-17L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=129", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=129", 7.02020906684364121020e-18L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=129", 1.40404181336872824204e-17L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=129", 1.11022302462515654042e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=129", 7.02020906684364121020e-18L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=129", 1.40404181336872824204e-17L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=129", 6.99310401253150359935e-18L);
+insert("u01<float>(mini32 + int32_t(a)) a=129", 0.500000059604644775391L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=129", -0.999999940395355224609L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=129", 0.500000059604644775391L);
+insert("u01<double>(mini32 + int32_t(a)) a=129", 0.500000030151568353176L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=129", -0.999999939696863293648L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=129", 0.500000030151568353176L);
+insert("u01<long double>(mini32 + int32_t(a)) a=129", 0.500000030151568353176L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=129", -0.999999939696863293648L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=129", 0.500000030151568353176L);
+insert("u01<float>(mini64 + int64_t(a)) a=129", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=129", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=129", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=129", 0.500000000000000000000L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=129", -1.00000000000000000000L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=129", 0.500000000000000111022L);
+insert("u01<long double>(mini64 + int64_t(a)) a=129", 0.500000000000000007047L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=129", -0.999999999999999985960L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=129", 0.500000000000000006993L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=129", 0.999999940395355224609L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=129", -6.03031367063522338867e-08L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=129", 0.999999940395355224609L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=129", 0.999999969848431646824L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=129", -6.03031367063522338867e-08L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=129", 0.999999969848431646824L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=129", 0.999999969848431646824L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=129", -6.03031367063522338867e-08L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=129", 0.999999969848431646824L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=129", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=129", -1.40404181336872824204e-17L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=129", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=129", 1.00000000000000000000L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=129", -1.40404181336872824204e-17L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=129", 0.999999999999999888978L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=129", 0.999999999999999992953L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=129", -1.40404181336872824204e-17L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=129", 0.999999999999999993007L);
+insert("u01<float>(maxi32 - int32_t(a)) a=129", 0.499999970197677612305L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=129", 0.999999940395355224609L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=129", 0.499999940395355224609L);
+insert("u01<double>(maxi32 - int32_t(a)) a=129", 0.499999969848431646824L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=129", 0.999999939696863293648L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=129", 0.499999969848431646824L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=129", 0.499999969848431646824L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=129", 0.999999939696863293648L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=129", 0.499999969848431646824L);
+insert("u01<float>(maxi64 - int64_t(a)) a=129", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=129", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=129", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=129", 0.500000000000000000000L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=129", 1.00000000000000000000L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=129", 0.499999999999999888978L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=129", 0.499999999999999992980L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=129", 0.999999999999999985960L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=129", 0.499999999999999993007L);
+insert("u01<float>(minu32 + uint32_t(a)) a=191", 4.45870682597160339355e-08L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=191", 8.91741365194320678711e-08L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=191", 5.96046447753906250000e-08L);
+insert("u01<double>(minu32 + uint32_t(a)) a=191", 4.45870682597160339355e-08L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=191", 8.91741365194320678711e-08L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=191", 4.45870682597160339355e-08L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=191", 4.45870682597160339355e-08L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=191", 8.91741365194320678711e-08L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=191", 4.45870682597160339355e-08L);
+insert("u01<float>(minu64 + uint64_t(a)) a=191", 1.03812358015487049556e-17L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=191", 2.07624716030974099112e-17L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=191", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=191", 1.03812358015487049556e-17L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=191", 2.07624716030974099112e-17L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=191", 1.11022302462515654042e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=191", 1.03812358015487049556e-17L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=191", 2.07624716030974099112e-17L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=191", 1.03541307472365673448e-17L);
+insert("u01<float>(mini32 + int32_t(a)) a=191", 0.500000059604644775391L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=191", -0.999999940395355224609L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=191", 0.500000059604644775391L);
+insert("u01<double>(mini32 + int32_t(a)) a=191", 0.500000044587068259716L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=191", -0.999999910825863480568L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=191", 0.500000044587068259716L);
+insert("u01<long double>(mini32 + int32_t(a)) a=191", 0.500000044587068259716L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=191", -0.999999910825863480568L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=191", 0.500000044587068259716L);
+insert("u01<float>(mini64 + int64_t(a)) a=191", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=191", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=191", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=191", 0.500000000000000000000L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=191", -1.00000000000000000000L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=191", 0.500000000000000111022L);
+insert("u01<long double>(mini64 + int64_t(a)) a=191", 0.500000000000000010408L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=191", -0.999999999999999979238L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=191", 0.500000000000000010354L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=191", 0.999999940395355224609L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=191", -8.91741365194320678711e-08L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=191", 0.999999940395355224609L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=191", 0.999999955412931740284L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=191", -8.91741365194320678711e-08L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=191", 0.999999955412931740284L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=191", 0.999999955412931740284L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=191", -8.91741365194320678711e-08L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=191", 0.999999955412931740284L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=191", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=191", -2.07624716030974099112e-17L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=191", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=191", 1.00000000000000000000L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=191", -2.07624716030974099112e-17L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=191", 0.999999999999999888978L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=191", 0.999999999999999989592L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=191", -2.07624716030974099112e-17L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=191", 0.999999999999999989646L);
+insert("u01<float>(maxi32 - int32_t(a)) a=191", 0.499999940395355224609L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=191", 0.999999880790710449219L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=191", 0.499999940395355224609L);
+insert("u01<double>(maxi32 - int32_t(a)) a=191", 0.499999955412931740284L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=191", 0.999999910825863480568L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=191", 0.499999955412931740284L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=191", 0.499999955412931740284L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=191", 0.999999910825863480568L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=191", 0.499999955412931740284L);
+insert("u01<float>(maxi64 - int64_t(a)) a=191", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=191", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=191", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=191", 0.500000000000000000000L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=191", 1.00000000000000000000L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=191", 0.499999999999999888978L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=191", 0.499999999999999989619L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=191", 0.999999999999999979238L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=191", 0.499999999999999989646L);
+insert("u01<float>(minu32 + uint32_t(a)) a=192", 4.48198989033699035645e-08L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=192", 8.96397978067398071289e-08L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=192", 5.96046447753906250000e-08L);
+insert("u01<double>(minu32 + uint32_t(a)) a=192", 4.48198989033699035645e-08L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=192", 8.96397978067398071289e-08L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=192", 4.48198989033699035645e-08L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=192", 4.48198989033699035645e-08L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=192", 8.96397978067398071289e-08L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=192", 4.48198989033699035645e-08L);
+insert("u01<float>(minu64 + uint64_t(a)) a=192", 1.04354459101729801773e-17L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=192", 2.08708918203459603546e-17L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=192", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=192", 1.04354459101729801773e-17L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=192", 2.08708918203459603546e-17L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=192", 1.11022302462515654042e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=192", 1.04354459101729801773e-17L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=192", 2.08708918203459603546e-17L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=192", 1.04625509644851177882e-17L);
+insert("u01<float>(mini32 + int32_t(a)) a=192", 0.500000059604644775391L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=192", -0.999999880790710449219L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=192", 0.500000059604644775391L);
+insert("u01<double>(mini32 + int32_t(a)) a=192", 0.500000044819898903370L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=192", -0.999999910360202193260L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=192", 0.500000044819898903370L);
+insert("u01<long double>(mini32 + int32_t(a)) a=192", 0.500000044819898903370L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=192", -0.999999910360202193260L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=192", 0.500000044819898903370L);
+insert("u01<float>(mini64 + int64_t(a)) a=192", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=192", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=192", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=192", 0.500000000000000000000L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=192", -1.00000000000000000000L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=192", 0.500000000000000111022L);
+insert("u01<long double>(mini64 + int64_t(a)) a=192", 0.500000000000000010408L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=192", -0.999999999999999979129L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=192", 0.500000000000000010463L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=192", 0.999999940395355224609L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=192", -8.96397978067398071289e-08L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=192", 0.999999940395355224609L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=192", 0.999999955180101096630L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=192", -8.96397978067398071289e-08L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=192", 0.999999955180101096630L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=192", 0.999999955180101096630L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=192", -8.96397978067398071289e-08L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=192", 0.999999955180101096630L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=192", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=192", -2.08708918203459603546e-17L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=192", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=192", 1.00000000000000000000L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=192", -2.08708918203459603546e-17L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=192", 0.999999999999999888978L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=192", 0.999999999999999989592L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=192", -2.08708918203459603546e-17L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=192", 0.999999999999999989537L);
+insert("u01<float>(maxi32 - int32_t(a)) a=192", 0.499999940395355224609L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=192", 0.999999880790710449219L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=192", 0.499999940395355224609L);
+insert("u01<double>(maxi32 - int32_t(a)) a=192", 0.499999955180101096630L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=192", 0.999999910360202193260L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=192", 0.499999955180101096630L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=192", 0.499999955180101096630L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=192", 0.999999910360202193260L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=192", 0.499999955180101096630L);
+insert("u01<float>(maxi64 - int64_t(a)) a=192", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=192", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=192", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=192", 0.500000000000000000000L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=192", 1.00000000000000000000L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=192", 0.499999999999999888978L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=192", 0.499999999999999989565L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=192", 0.999999999999999979129L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=192", 0.499999999999999989537L);
+insert("u01<float>(minu32 + uint32_t(a)) a=193", 4.50527295470237731934e-08L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=193", 9.01054590940475463867e-08L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=193", 5.96046447753906250000e-08L);
+insert("u01<double>(minu32 + uint32_t(a)) a=193", 4.50527295470237731934e-08L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=193", 9.01054590940475463867e-08L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=193", 4.50527295470237731934e-08L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=193", 4.50527295470237731934e-08L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=193", 9.01054590940475463867e-08L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=193", 4.50527295470237731934e-08L);
+insert("u01<float>(minu64 + uint64_t(a)) a=193", 1.04896560187972553990e-17L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=193", 2.09793120375945107980e-17L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=193", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=193", 1.04896560187972553990e-17L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=193", 2.09793120375945107980e-17L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=193", 1.11022302462515654042e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=193", 1.04896560187972553990e-17L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=193", 2.09793120375945107980e-17L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=193", 1.04625509644851177882e-17L);
+insert("u01<float>(mini32 + int32_t(a)) a=193", 0.500000059604644775391L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=193", -0.999999880790710449219L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=193", 0.500000059604644775391L);
+insert("u01<double>(mini32 + int32_t(a)) a=193", 0.500000045052729547024L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=193", -0.999999909894540905952L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=193", 0.500000045052729547024L);
+insert("u01<long double>(mini32 + int32_t(a)) a=193", 0.500000045052729547024L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=193", -0.999999909894540905952L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=193", 0.500000045052729547024L);
+insert("u01<float>(mini64 + int64_t(a)) a=193", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=193", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=193", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=193", 0.500000000000000000000L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=193", -1.00000000000000000000L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=193", 0.500000000000000111022L);
+insert("u01<long double>(mini64 + int64_t(a)) a=193", 0.500000000000000010517L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=193", -0.999999999999999979021L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=193", 0.500000000000000010463L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=193", 0.999999940395355224609L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=193", -9.01054590940475463867e-08L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=193", 0.999999940395355224609L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=193", 0.999999954947270452976L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=193", -9.01054590940475463867e-08L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=193", 0.999999954947270452976L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=193", 0.999999954947270452976L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=193", -9.01054590940475463867e-08L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=193", 0.999999954947270452976L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=193", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=193", -2.09793120375945107980e-17L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=193", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=193", 1.00000000000000000000L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=193", -2.09793120375945107980e-17L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=193", 0.999999999999999888978L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=193", 0.999999999999999989483L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=193", -2.09793120375945107980e-17L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=193", 0.999999999999999989537L);
+insert("u01<float>(maxi32 - int32_t(a)) a=193", 0.499999940395355224609L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=193", 0.999999880790710449219L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=193", 0.499999940395355224609L);
+insert("u01<double>(maxi32 - int32_t(a)) a=193", 0.499999954947270452976L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=193", 0.999999909894540905952L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=193", 0.499999954947270452976L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=193", 0.499999954947270452976L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=193", 0.999999909894540905952L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=193", 0.499999954947270452976L);
+insert("u01<float>(maxi64 - int64_t(a)) a=193", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=193", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=193", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=193", 0.500000000000000000000L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=193", 1.00000000000000000000L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=193", 0.499999999999999888978L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=193", 0.499999999999999989510L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=193", 0.999999999999999979021L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=193", 0.499999999999999989537L);
+insert("u01<float>(minu32 + uint32_t(a)) a=255", 5.94882294535636901855e-08L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=255", 1.18976458907127380371e-07L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=255", 5.96046447753906250000e-08L);
+insert("u01<double>(minu32 + uint32_t(a)) a=255", 5.94882294535636901855e-08L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=255", 1.18976458907127380371e-07L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=255", 5.94882294535636901855e-08L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=255", 5.94882294535636901855e-08L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=255", 1.18976458907127380371e-07L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=255", 5.94882294535636901855e-08L);
+insert("u01<float>(minu64 + uint64_t(a)) a=255", 1.38506827535023191444e-17L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=255", 2.77013655070046382889e-17L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=255", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=255", 1.38506827535023191444e-17L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=255", 2.77013655070046382889e-17L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=255", 1.11022302462515654042e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=255", 1.38506827535023191444e-17L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=255", 2.77013655070046382889e-17L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=255", 1.38235776991901815336e-17L);
+insert("u01<float>(mini32 + int32_t(a)) a=255", 0.500000059604644775391L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=255", -0.999999880790710449219L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=255", 0.500000059604644775391L);
+insert("u01<double>(mini32 + int32_t(a)) a=255", 0.500000059488229453564L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=255", -0.999999881023541092873L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=255", 0.500000059488229453564L);
+insert("u01<long double>(mini32 + int32_t(a)) a=255", 0.500000059488229453564L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=255", -0.999999881023541092873L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=255", 0.500000059488229453564L);
+insert("u01<float>(mini64 + int64_t(a)) a=255", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=255", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=255", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=255", 0.500000000000000000000L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=255", -1.00000000000000000000L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=255", 0.500000000000000111022L);
+insert("u01<long double>(mini64 + int64_t(a)) a=255", 0.500000000000000013878L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=255", -0.999999999999999972299L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=255", 0.500000000000000013824L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=255", 0.999999940395355224609L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=255", -1.18976458907127380371e-07L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=255", 0.999999940395355224609L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=255", 0.999999940511770546436L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=255", -1.18976458907127380371e-07L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=255", 0.999999940511770546436L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=255", 0.999999940511770546436L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=255", -1.18976458907127380371e-07L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=255", 0.999999940511770546436L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=255", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=255", -2.77013655070046382889e-17L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=255", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=255", 1.00000000000000000000L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=255", -2.77013655070046382889e-17L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=255", 0.999999999999999888978L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=255", 0.999999999999999986122L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=255", -2.77013655070046382889e-17L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=255", 0.999999999999999986176L);
+insert("u01<float>(maxi32 - int32_t(a)) a=255", 0.499999940395355224609L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=255", 0.999999880790710449219L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=255", 0.499999940395355224609L);
+insert("u01<double>(maxi32 - int32_t(a)) a=255", 0.499999940511770546436L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=255", 0.999999881023541092873L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=255", 0.499999940511770546436L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=255", 0.499999940511770546436L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=255", 0.999999881023541092873L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=255", 0.499999940511770546436L);
+insert("u01<float>(maxi64 - int64_t(a)) a=255", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=255", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=255", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=255", 0.500000000000000000000L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=255", 1.00000000000000000000L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=255", 0.499999999999999888978L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=255", 0.499999999999999986149L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=255", 0.999999999999999972299L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=255", 0.499999999999999986176L);
+insert("u01<float>(minu32 + uint32_t(a)) a=256", 5.97210600972175598145e-08L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=256", 1.19442120194435119629e-07L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=256", 5.96046447753906250000e-08L);
+insert("u01<double>(minu32 + uint32_t(a)) a=256", 5.97210600972175598145e-08L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=256", 1.19442120194435119629e-07L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=256", 5.97210600972175598145e-08L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=256", 5.97210600972175598145e-08L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=256", 1.19442120194435119629e-07L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=256", 5.97210600972175598145e-08L);
+insert("u01<float>(minu64 + uint64_t(a)) a=256", 1.39048928621265943661e-17L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=256", 2.78097857242531887323e-17L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=256", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=256", 1.39048928621265943661e-17L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=256", 2.78097857242531887323e-17L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=256", 1.11022302462515654042e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=256", 1.39048928621265943661e-17L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=256", 2.78097857242531887323e-17L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=256", 1.39319979164387319770e-17L);
+insert("u01<float>(mini32 + int32_t(a)) a=256", 0.500000059604644775391L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=256", -0.999999880790710449219L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=256", 0.500000059604644775391L);
+insert("u01<double>(mini32 + int32_t(a)) a=256", 0.500000059721060097218L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=256", -0.999999880557879805565L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=256", 0.500000059721060097218L);
+insert("u01<long double>(mini32 + int32_t(a)) a=256", 0.500000059721060097218L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=256", -0.999999880557879805565L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=256", 0.500000059721060097218L);
+insert("u01<float>(mini64 + int64_t(a)) a=256", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=256", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=256", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=256", 0.500000000000000000000L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=256", -1.00000000000000000000L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=256", 0.500000000000000111022L);
+insert("u01<long double>(mini64 + int64_t(a)) a=256", 0.500000000000000013878L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=256", -0.999999999999999972190L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=256", 0.500000000000000013932L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=256", 0.999999940395355224609L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=256", -1.19442120194435119629e-07L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=256", 0.999999940395355224609L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=256", 0.999999940278939902782L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=256", -1.19442120194435119629e-07L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=256", 0.999999940278939902782L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=256", 0.999999940278939902782L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=256", -1.19442120194435119629e-07L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=256", 0.999999940278939902782L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=256", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=256", -2.78097857242531887323e-17L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=256", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=256", 1.00000000000000000000L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=256", -2.78097857242531887323e-17L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=256", 0.999999999999999888978L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=256", 0.999999999999999986122L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=256", -2.78097857242531887323e-17L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=256", 0.999999999999999986068L);
+insert("u01<float>(maxi32 - int32_t(a)) a=256", 0.499999940395355224609L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=256", 0.999999880790710449219L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=256", 0.499999940395355224609L);
+insert("u01<double>(maxi32 - int32_t(a)) a=256", 0.499999940278939902782L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=256", 0.999999880557879805565L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=256", 0.499999940278939902782L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=256", 0.499999940278939902782L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=256", 0.999999880557879805565L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=256", 0.499999940278939902782L);
+insert("u01<float>(maxi64 - int64_t(a)) a=256", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=256", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=256", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=256", 0.500000000000000000000L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=256", 1.00000000000000000000L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=256", 0.499999999999999888978L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=256", 0.499999999999999986095L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=256", 0.999999999999999972190L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=256", 0.499999999999999986068L);
+insert("u01<float>(minu32 + uint32_t(a)) a=257", 5.99538907408714294434e-08L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=257", 1.19907781481742858887e-07L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=257", 5.96046447753906250000e-08L);
+insert("u01<double>(minu32 + uint32_t(a)) a=257", 5.99538907408714294434e-08L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=257", 1.19907781481742858887e-07L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=257", 5.99538907408714294434e-08L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=257", 5.99538907408714294434e-08L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=257", 1.19907781481742858887e-07L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=257", 5.99538907408714294434e-08L);
+insert("u01<float>(minu64 + uint64_t(a)) a=257", 1.39591029707508695878e-17L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=257", 2.79182059415017391757e-17L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=257", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=257", 1.39591029707508695878e-17L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=257", 2.79182059415017391757e-17L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=257", 1.11022302462515654042e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=257", 1.39591029707508695878e-17L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=257", 2.79182059415017391757e-17L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=257", 1.39319979164387319770e-17L);
+insert("u01<float>(mini32 + int32_t(a)) a=257", 0.500000059604644775391L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=257", -0.999999880790710449219L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=257", 0.500000059604644775391L);
+insert("u01<double>(mini32 + int32_t(a)) a=257", 0.500000059953890740871L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=257", -0.999999880092218518257L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=257", 0.500000059953890740871L);
+insert("u01<long double>(mini32 + int32_t(a)) a=257", 0.500000059953890740871L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=257", -0.999999880092218518257L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=257", 0.500000059953890740871L);
+insert("u01<float>(mini64 + int64_t(a)) a=257", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=257", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=257", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=257", 0.500000000000000000000L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=257", -1.00000000000000000000L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=257", 0.500000000000000111022L);
+insert("u01<long double>(mini64 + int64_t(a)) a=257", 0.500000000000000013986L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=257", -0.999999999999999972082L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=257", 0.500000000000000013932L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=257", 0.999999940395355224609L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=257", -1.19907781481742858887e-07L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=257", 0.999999940395355224609L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=257", 0.999999940046109259129L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=257", -1.19907781481742858887e-07L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=257", 0.999999940046109259129L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=257", 0.999999940046109259129L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=257", -1.19907781481742858887e-07L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=257", 0.999999940046109259129L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=257", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=257", -2.79182059415017391757e-17L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=257", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=257", 1.00000000000000000000L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=257", -2.79182059415017391757e-17L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=257", 0.999999999999999888978L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=257", 0.999999999999999986014L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=257", -2.79182059415017391757e-17L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=257", 0.999999999999999986068L);
+insert("u01<float>(maxi32 - int32_t(a)) a=257", 0.499999940395355224609L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=257", 0.999999880790710449219L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=257", 0.499999940395355224609L);
+insert("u01<double>(maxi32 - int32_t(a)) a=257", 0.499999940046109259129L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=257", 0.999999880092218518257L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=257", 0.499999940046109259129L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=257", 0.499999940046109259129L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=257", 0.999999880092218518257L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=257", 0.499999940046109259129L);
+insert("u01<float>(maxi64 - int64_t(a)) a=257", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=257", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=257", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=257", 0.500000000000000000000L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=257", 1.00000000000000000000L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=257", 0.499999999999999888978L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=257", 0.499999999999999986041L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=257", 0.999999999999999972082L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=257", 0.499999999999999986068L);
+insert("u01<float>(minu32 + uint32_t(a)) a=319", 7.43893906474113464355e-08L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=319", 1.48778781294822692871e-07L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=319", 5.96046447753906250000e-08L);
+insert("u01<double>(minu32 + uint32_t(a)) a=319", 7.43893906474113464355e-08L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=319", 1.48778781294822692871e-07L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=319", 7.43893906474113464355e-08L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=319", 7.43893906474113464355e-08L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=319", 1.48778781294822692871e-07L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=319", 7.43893906474113464355e-08L);
+insert("u01<float>(minu64 + uint64_t(a)) a=319", 1.73201297054559333333e-17L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=319", 3.46402594109118666665e-17L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=319", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=319", 1.73201297054559333333e-17L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=319", 3.46402594109118666665e-17L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=319", 1.11022302462515654042e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=319", 1.73201297054559333333e-17L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=319", 3.46402594109118666665e-17L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=319", 1.72930246511437957224e-17L);
+insert("u01<float>(mini32 + int32_t(a)) a=319", 0.500000059604644775391L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=319", -0.999999880790710449219L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=319", 0.500000059604644775391L);
+insert("u01<double>(mini32 + int32_t(a)) a=319", 0.500000074389390647411L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=319", -0.999999851221218705177L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=319", 0.500000074389390647411L);
+insert("u01<long double>(mini32 + int32_t(a)) a=319", 0.500000074389390647411L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=319", -0.999999851221218705177L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=319", 0.500000074389390647411L);
+insert("u01<float>(mini64 + int64_t(a)) a=319", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=319", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=319", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=319", 0.500000000000000000000L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=319", -1.00000000000000000000L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=319", 0.500000000000000111022L);
+insert("u01<long double>(mini64 + int64_t(a)) a=319", 0.500000000000000017347L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=319", -0.999999999999999965360L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=319", 0.500000000000000017293L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=319", 0.999999940395355224609L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=319", -1.48778781294822692871e-07L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=319", 0.999999940395355224609L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=319", 0.999999925610609352589L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=319", -1.48778781294822692871e-07L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=319", 0.999999925610609352589L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=319", 0.999999925610609352589L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=319", -1.48778781294822692871e-07L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=319", 0.999999925610609352589L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=319", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=319", -3.46402594109118666665e-17L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=319", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=319", 1.00000000000000000000L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=319", -3.46402594109118666665e-17L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=319", 0.999999999999999888978L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=319", 0.999999999999999982653L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=319", -3.46402594109118666665e-17L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=319", 0.999999999999999982707L);
+insert("u01<float>(maxi32 - int32_t(a)) a=319", 0.499999940395355224609L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=319", 0.999999880790710449219L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=319", 0.499999940395355224609L);
+insert("u01<double>(maxi32 - int32_t(a)) a=319", 0.499999925610609352589L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=319", 0.999999851221218705177L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=319", 0.499999925610609352589L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=319", 0.499999925610609352589L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=319", 0.999999851221218705177L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=319", 0.499999925610609352589L);
+insert("u01<float>(maxi64 - int64_t(a)) a=319", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=319", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=319", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=319", 0.500000000000000000000L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=319", 1.00000000000000000000L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=319", 0.499999999999999888978L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=319", 0.499999999999999982680L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=319", 0.999999999999999965360L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=319", 0.499999999999999982707L);
+insert("u01<float>(minu32 + uint32_t(a)) a=320", 7.46222212910652160645e-08L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=320", 1.49244442582130432129e-07L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=320", 5.96046447753906250000e-08L);
+insert("u01<double>(minu32 + uint32_t(a)) a=320", 7.46222212910652160645e-08L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=320", 1.49244442582130432129e-07L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=320", 7.46222212910652160645e-08L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=320", 7.46222212910652160645e-08L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=320", 1.49244442582130432129e-07L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=320", 7.46222212910652160645e-08L);
+insert("u01<float>(minu64 + uint64_t(a)) a=320", 1.73743398140802085550e-17L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=320", 3.47486796281604171099e-17L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=320", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=320", 1.73743398140802085550e-17L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=320", 3.47486796281604171099e-17L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=320", 1.11022302462515654042e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=320", 1.73743398140802085550e-17L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=320", 3.47486796281604171099e-17L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=320", 1.74014448683923461658e-17L);
+insert("u01<float>(mini32 + int32_t(a)) a=320", 0.500000059604644775391L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=320", -0.999999880790710449219L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=320", 0.500000059604644775391L);
+insert("u01<double>(mini32 + int32_t(a)) a=320", 0.500000074622221291065L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=320", -0.999999850755557417870L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=320", 0.500000074622221291065L);
+insert("u01<long double>(mini32 + int32_t(a)) a=320", 0.500000074622221291065L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=320", -0.999999850755557417870L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=320", 0.500000074622221291065L);
+insert("u01<float>(mini64 + int64_t(a)) a=320", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=320", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=320", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=320", 0.500000000000000000000L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=320", -1.00000000000000000000L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=320", 0.500000000000000111022L);
+insert("u01<long double>(mini64 + int64_t(a)) a=320", 0.500000000000000017347L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=320", -0.999999999999999965251L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=320", 0.500000000000000017401L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=320", 0.999999940395355224609L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=320", -1.49244442582130432129e-07L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=320", 0.999999940395355224609L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=320", 0.999999925377778708935L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=320", -1.49244442582130432129e-07L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=320", 0.999999925377778708935L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=320", 0.999999925377778708935L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=320", -1.49244442582130432129e-07L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=320", 0.999999925377778708935L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=320", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=320", -3.47486796281604171099e-17L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=320", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=320", 1.00000000000000000000L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=320", -3.47486796281604171099e-17L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=320", 0.999999999999999888978L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=320", 0.999999999999999982653L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=320", -3.47486796281604171099e-17L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=320", 0.999999999999999982599L);
+insert("u01<float>(maxi32 - int32_t(a)) a=320", 0.499999910593032836914L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=320", 0.999999821186065673828L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=320", 0.499999940395355224609L);
+insert("u01<double>(maxi32 - int32_t(a)) a=320", 0.499999925377778708935L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=320", 0.999999850755557417870L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=320", 0.499999925377778708935L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=320", 0.499999925377778708935L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=320", 0.999999850755557417870L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=320", 0.499999925377778708935L);
+insert("u01<float>(maxi64 - int64_t(a)) a=320", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=320", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=320", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=320", 0.500000000000000000000L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=320", 1.00000000000000000000L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=320", 0.499999999999999888978L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=320", 0.499999999999999982626L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=320", 0.999999999999999965251L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=320", 0.499999999999999982599L);
+insert("u01<float>(minu32 + uint32_t(a)) a=321", 7.48550519347190856934e-08L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=321", 1.49710103869438171387e-07L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=321", 5.96046447753906250000e-08L);
+insert("u01<double>(minu32 + uint32_t(a)) a=321", 7.48550519347190856934e-08L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=321", 1.49710103869438171387e-07L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=321", 7.48550519347190856934e-08L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=321", 7.48550519347190856934e-08L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=321", 1.49710103869438171387e-07L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=321", 7.48550519347190856934e-08L);
+insert("u01<float>(minu64 + uint64_t(a)) a=321", 1.74285499227044837767e-17L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=321", 3.48570998454089675533e-17L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=321", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=321", 1.74285499227044837767e-17L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=321", 3.48570998454089675533e-17L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=321", 1.11022302462515654042e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=321", 1.74285499227044837767e-17L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=321", 3.48570998454089675533e-17L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=321", 1.74014448683923461658e-17L);
+insert("u01<float>(mini32 + int32_t(a)) a=321", 0.500000059604644775391L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=321", -0.999999821186065673828L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=321", 0.500000059604644775391L);
+insert("u01<double>(mini32 + int32_t(a)) a=321", 0.500000074855051934719L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=321", -0.999999850289896130562L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=321", 0.500000074855051934719L);
+insert("u01<long double>(mini32 + int32_t(a)) a=321", 0.500000074855051934719L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=321", -0.999999850289896130562L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=321", 0.500000074855051934719L);
+insert("u01<float>(mini64 + int64_t(a)) a=321", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=321", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=321", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=321", 0.500000000000000000000L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=321", -1.00000000000000000000L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=321", 0.500000000000000111022L);
+insert("u01<long double>(mini64 + int64_t(a)) a=321", 0.500000000000000017456L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=321", -0.999999999999999965143L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=321", 0.500000000000000017401L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=321", 0.999999940395355224609L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=321", -1.49710103869438171387e-07L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=321", 0.999999940395355224609L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=321", 0.999999925144948065281L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=321", -1.49710103869438171387e-07L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=321", 0.999999925144948065281L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=321", 0.999999925144948065281L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=321", -1.49710103869438171387e-07L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=321", 0.999999925144948065281L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=321", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=321", -3.48570998454089675533e-17L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=321", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=321", 1.00000000000000000000L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=321", -3.48570998454089675533e-17L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=321", 0.999999999999999888978L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=321", 0.999999999999999982544L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=321", -3.48570998454089675533e-17L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=321", 0.999999999999999982599L);
+insert("u01<float>(maxi32 - int32_t(a)) a=321", 0.499999910593032836914L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=321", 0.999999821186065673828L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=321", 0.499999940395355224609L);
+insert("u01<double>(maxi32 - int32_t(a)) a=321", 0.499999925144948065281L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=321", 0.999999850289896130562L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=321", 0.499999925144948065281L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=321", 0.499999925144948065281L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=321", 0.999999850289896130562L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=321", 0.499999925144948065281L);
+insert("u01<float>(maxi64 - int64_t(a)) a=321", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=321", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=321", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=321", 0.500000000000000000000L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=321", 1.00000000000000000000L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=321", 0.499999999999999888978L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=321", 0.499999999999999982571L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=321", 0.999999999999999965143L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=321", 0.499999999999999982599L);
+insert("u01<float>(minu32 + uint32_t(a)) a=382", 8.90577211976051330566e-08L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=382", 1.78115442395210266113e-07L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=382", 5.96046447753906250000e-08L);
+insert("u01<double>(minu32 + uint32_t(a)) a=382", 8.90577211976051330566e-08L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=382", 1.78115442395210266113e-07L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=382", 8.90577211976051330566e-08L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=382", 8.90577211976051330566e-08L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=382", 1.78115442395210266113e-07L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=382", 8.90577211976051330566e-08L);
+insert("u01<float>(minu64 + uint64_t(a)) a=382", 2.07353665487852723004e-17L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=382", 4.14707330975705446008e-17L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=382", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=382", 2.07353665487852723004e-17L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=382", 4.14707330975705446008e-17L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=382", 1.11022302462515654042e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=382", 2.07353665487852723004e-17L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=382", 4.14707330975705446008e-17L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=382", 2.07624716030974099112e-17L);
+insert("u01<float>(mini32 + int32_t(a)) a=382", 0.500000059604644775391L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=382", -0.999999821186065673828L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=382", 0.500000059604644775391L);
+insert("u01<double>(mini32 + int32_t(a)) a=382", 0.500000089057721197605L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=382", -0.999999821884557604790L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=382", 0.500000089057721197605L);
+insert("u01<long double>(mini32 + int32_t(a)) a=382", 0.500000089057721197605L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=382", -0.999999821884557604790L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=382", 0.500000089057721197605L);
+insert("u01<float>(mini64 + int64_t(a)) a=382", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=382", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=382", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=382", 0.500000000000000000000L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=382", -1.00000000000000000000L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=382", 0.500000000000000111022L);
+insert("u01<long double>(mini64 + int64_t(a)) a=382", 0.500000000000000020708L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=382", -0.999999999999999958529L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=382", 0.500000000000000020762L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=382", 0.999999940395355224609L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=382", -1.78115442395210266113e-07L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=382", 0.999999940395355224609L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=382", 0.999999910942278802395L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=382", -1.78115442395210266113e-07L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=382", 0.999999910942278802395L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=382", 0.999999910942278802395L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=382", -1.78115442395210266113e-07L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=382", 0.999999910942278802395L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=382", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=382", -4.14707330975705446008e-17L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=382", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=382", 1.00000000000000000000L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=382", -4.14707330975705446008e-17L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=382", 0.999999999999999888978L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=382", 0.999999999999999979292L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=382", -4.14707330975705446008e-17L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=382", 0.999999999999999979238L);
+insert("u01<float>(maxi32 - int32_t(a)) a=382", 0.499999910593032836914L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=382", 0.999999821186065673828L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=382", 0.499999940395355224609L);
+insert("u01<double>(maxi32 - int32_t(a)) a=382", 0.499999910942278802395L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=382", 0.999999821884557604790L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=382", 0.499999910942278802395L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=382", 0.499999910942278802395L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=382", 0.999999821884557604790L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=382", 0.499999910942278802395L);
+insert("u01<float>(maxi64 - int64_t(a)) a=382", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=382", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=382", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=382", 0.500000000000000000000L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=382", 1.00000000000000000000L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=382", 0.499999999999999888978L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=382", 0.499999999999999979265L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=382", 0.999999999999999958529L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=382", 0.499999999999999979238L);
+insert("u01<float>(minu32 + uint32_t(a)) a=383", 8.92905518412590026855e-08L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=383", 1.78581103682518005371e-07L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=383", 5.96046447753906250000e-08L);
+insert("u01<double>(minu32 + uint32_t(a)) a=383", 8.92905518412590026855e-08L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=383", 1.78581103682518005371e-07L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=383", 8.92905518412590026855e-08L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=383", 8.92905518412590026855e-08L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=383", 1.78581103682518005371e-07L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=383", 8.92905518412590026855e-08L);
+insert("u01<float>(minu64 + uint64_t(a)) a=383", 2.07895766574095475221e-17L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=383", 4.15791533148190950442e-17L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=383", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=383", 2.07895766574095475221e-17L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=383", 4.15791533148190950442e-17L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=383", 1.11022302462515654042e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=383", 2.07895766574095475221e-17L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=383", 4.15791533148190950442e-17L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=383", 2.07624716030974099112e-17L);
+insert("u01<float>(mini32 + int32_t(a)) a=383", 0.500000059604644775391L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=383", -0.999999821186065673828L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=383", 0.500000059604644775391L);
+insert("u01<double>(mini32 + int32_t(a)) a=383", 0.500000089290551841259L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=383", -0.999999821418896317482L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=383", 0.500000089290551841259L);
+insert("u01<long double>(mini32 + int32_t(a)) a=383", 0.500000089290551841259L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=383", -0.999999821418896317482L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=383", 0.500000089290551841259L);
+insert("u01<float>(mini64 + int64_t(a)) a=383", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=383", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=383", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=383", 0.500000000000000000000L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=383", -1.00000000000000000000L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=383", 0.500000000000000111022L);
+insert("u01<long double>(mini64 + int64_t(a)) a=383", 0.500000000000000020817L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=383", -0.999999999999999958421L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=383", 0.500000000000000020762L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=383", 0.999999880790710449219L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=383", -1.78581103682518005371e-07L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=383", 0.999999940395355224609L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=383", 0.999999910709448158741L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=383", -1.78581103682518005371e-07L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=383", 0.999999910709448158741L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=383", 0.999999910709448158741L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=383", -1.78581103682518005371e-07L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=383", 0.999999910709448158741L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=383", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=383", -4.15791533148190950442e-17L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=383", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=383", 1.00000000000000000000L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=383", -4.15791533148190950442e-17L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=383", 0.999999999999999888978L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=383", 0.999999999999999979183L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=383", -4.15791533148190950442e-17L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=383", 0.999999999999999979238L);
+insert("u01<float>(maxi32 - int32_t(a)) a=383", 0.499999910593032836914L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=383", 0.999999821186065673828L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=383", 0.499999940395355224609L);
+insert("u01<double>(maxi32 - int32_t(a)) a=383", 0.499999910709448158741L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=383", 0.999999821418896317482L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=383", 0.499999910709448158741L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=383", 0.499999910709448158741L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=383", 0.999999821418896317482L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=383", 0.499999910709448158741L);
+insert("u01<float>(maxi64 - int64_t(a)) a=383", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=383", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=383", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=383", 0.500000000000000000000L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=383", 1.00000000000000000000L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=383", 0.499999999999999888978L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=383", 0.499999999999999979210L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=383", 0.999999999999999958421L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=383", 0.499999999999999979238L);
+insert("u01<float>(minu32 + uint32_t(a)) a=384", 8.95233824849128723145e-08L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=384", 1.79046764969825744629e-07L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=384", 5.96046447753906250000e-08L);
+insert("u01<double>(minu32 + uint32_t(a)) a=384", 8.95233824849128723145e-08L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=384", 1.79046764969825744629e-07L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=384", 8.95233824849128723145e-08L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=384", 8.95233824849128723145e-08L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=384", 1.79046764969825744629e-07L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=384", 8.95233824849128723145e-08L);
+insert("u01<float>(minu64 + uint64_t(a)) a=384", 2.08437867660338227438e-17L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=384", 4.16875735320676454876e-17L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=384", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=384", 2.08437867660338227438e-17L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=384", 4.16875735320676454876e-17L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=384", 1.11022302462515654042e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=384", 2.08437867660338227438e-17L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=384", 4.16875735320676454876e-17L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=384", 2.08708918203459603546e-17L);
+insert("u01<float>(mini32 + int32_t(a)) a=384", 0.500000119209289550781L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=384", -0.999999821186065673828L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=384", 0.500000059604644775391L);
+insert("u01<double>(mini32 + int32_t(a)) a=384", 0.500000089523382484913L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=384", -0.999999820953235030174L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=384", 0.500000089523382484913L);
+insert("u01<long double>(mini32 + int32_t(a)) a=384", 0.500000089523382484913L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=384", -0.999999820953235030174L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=384", 0.500000089523382484913L);
+insert("u01<float>(mini64 + int64_t(a)) a=384", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=384", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=384", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=384", 0.500000000000000000000L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=384", -1.00000000000000000000L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=384", 0.500000000000000111022L);
+insert("u01<long double>(mini64 + int64_t(a)) a=384", 0.500000000000000020817L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=384", -0.999999999999999958312L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=384", 0.500000000000000020871L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=384", 0.999999880790710449219L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=384", -1.79046764969825744629e-07L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=384", 0.999999940395355224609L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=384", 0.999999910476617515087L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=384", -1.79046764969825744629e-07L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=384", 0.999999910476617515087L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=384", 0.999999910476617515087L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=384", -1.79046764969825744629e-07L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=384", 0.999999910476617515087L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=384", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=384", -4.16875735320676454876e-17L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=384", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=384", 1.00000000000000000000L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=384", -4.16875735320676454876e-17L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=384", 0.999999999999999888978L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=384", 0.999999999999999979183L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=384", -4.16875735320676454876e-17L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=384", 0.999999999999999979129L);
+insert("u01<float>(maxi32 - int32_t(a)) a=384", 0.499999910593032836914L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=384", 0.999999821186065673828L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=384", 0.499999940395355224609L);
+insert("u01<double>(maxi32 - int32_t(a)) a=384", 0.499999910476617515087L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=384", 0.999999820953235030174L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=384", 0.499999910476617515087L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=384", 0.499999910476617515087L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=384", 0.999999820953235030174L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=384", 0.499999910476617515087L);
+insert("u01<float>(maxi64 - int64_t(a)) a=384", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=384", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=384", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=384", 0.500000000000000000000L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=384", 1.00000000000000000000L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=384", 0.499999999999999888978L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=384", 0.499999999999999979156L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=384", 0.999999999999999958312L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=384", 0.499999999999999979129L);
+insert("u01<float>(minu32 + uint32_t(a)) a=639", 1.48895196616649627686e-07L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=639", 2.97790393233299255371e-07L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=639", 1.78813934326171875000e-07L);
+insert("u01<double>(minu32 + uint32_t(a)) a=639", 1.48895196616649627686e-07L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=639", 2.97790393233299255371e-07L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=639", 1.48895196616649627686e-07L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=639", 1.48895196616649627686e-07L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=639", 2.97790393233299255371e-07L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=639", 1.48895196616649627686e-07L);
+insert("u01<float>(minu64 + uint64_t(a)) a=639", 3.46673644652240042774e-17L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=639", 6.93347289304480085548e-17L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=639", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=639", 3.46673644652240042774e-17L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=639", 6.93347289304480085548e-17L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=639", 1.11022302462515654042e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=639", 3.46673644652240042774e-17L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=639", 6.93347289304480085548e-17L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=639", 3.46402594109118666665e-17L);
+insert("u01<float>(mini32 + int32_t(a)) a=639", 0.500000119209289550781L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=639", -0.999999701976776123047L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=639", 0.500000178813934326172L);
+insert("u01<double>(mini32 + int32_t(a)) a=639", 0.500000148895196616650L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=639", -0.999999702209606766701L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=639", 0.500000148895196616650L);
+insert("u01<long double>(mini32 + int32_t(a)) a=639", 0.500000148895196616650L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=639", -0.999999702209606766701L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=639", 0.500000148895196616650L);
+insert("u01<float>(mini64 + int64_t(a)) a=639", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=639", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=639", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=639", 0.500000000000000000000L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=639", -0.999999999999999888978L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=639", 0.500000000000000111022L);
+insert("u01<long double>(mini64 + int64_t(a)) a=639", 0.500000000000000034694L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=639", -0.999999999999999930665L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=639", 0.500000000000000034640L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=639", 0.999999880790710449219L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=639", -2.97790393233299255371e-07L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=639", 0.999999821186065673828L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=639", 0.999999851104803383350L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=639", -2.97790393233299255371e-07L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=639", 0.999999851104803383350L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=639", 0.999999851104803383350L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=639", -2.97790393233299255371e-07L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=639", 0.999999851104803383350L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=639", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=639", -6.93347289304480085548e-17L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=639", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=639", 1.00000000000000000000L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=639", -6.93347289304480085548e-17L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=639", 0.999999999999999888978L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=639", 0.999999999999999965306L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=639", -6.93347289304480085548e-17L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=639", 0.999999999999999965360L);
+insert("u01<float>(maxi32 - int32_t(a)) a=639", 0.499999850988388061523L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=639", 0.999999701976776123047L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=639", 0.499999821186065673828L);
+insert("u01<double>(maxi32 - int32_t(a)) a=639", 0.499999851104803383350L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=639", 0.999999702209606766701L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=639", 0.499999851104803383350L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=639", 0.499999851104803383350L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=639", 0.999999702209606766701L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=639", 0.499999851104803383350L);
+insert("u01<float>(maxi64 - int64_t(a)) a=639", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=639", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=639", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=639", 0.499999999999999944489L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=639", 0.999999999999999888978L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=639", 0.499999999999999888978L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=639", 0.499999999999999965333L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=639", 0.999999999999999930665L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=639", 0.499999999999999965360L);
+insert("u01<float>(minu32 + uint32_t(a)) a=640", 1.49128027260303497314e-07L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=640", 2.98256054520606994629e-07L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=640", 1.78813934326171875000e-07L);
+insert("u01<double>(minu32 + uint32_t(a)) a=640", 1.49128027260303497314e-07L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=640", 2.98256054520606994629e-07L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=640", 1.49128027260303497314e-07L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=640", 1.49128027260303497314e-07L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=640", 2.98256054520606994629e-07L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=640", 1.49128027260303497314e-07L);
+insert("u01<float>(minu64 + uint64_t(a)) a=640", 3.47215745738482794991e-17L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=640", 6.94431491476965589982e-17L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=640", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=640", 3.47215745738482794991e-17L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=640", 6.94431491476965589982e-17L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=640", 1.11022302462515654042e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=640", 3.47215745738482794991e-17L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=640", 6.94431491476965589982e-17L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=640", 3.47486796281604171099e-17L);
+insert("u01<float>(mini32 + int32_t(a)) a=640", 0.500000119209289550781L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=640", -0.999999701976776123047L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=640", 0.500000178813934326172L);
+insert("u01<double>(mini32 + int32_t(a)) a=640", 0.500000149128027260303L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=640", -0.999999701743945479393L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=640", 0.500000149128027260303L);
+insert("u01<long double>(mini32 + int32_t(a)) a=640", 0.500000149128027260303L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=640", -0.999999701743945479393L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=640", 0.500000149128027260303L);
+insert("u01<float>(mini64 + int64_t(a)) a=640", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=640", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=640", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=640", 0.500000000000000000000L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=640", -0.999999999999999888978L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=640", 0.500000000000000111022L);
+insert("u01<long double>(mini64 + int64_t(a)) a=640", 0.500000000000000034694L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=640", -0.999999999999999930557L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=640", 0.500000000000000034749L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=640", 0.999999821186065673828L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=640", -2.98256054520606994629e-07L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=640", 0.999999821186065673828L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=640", 0.999999850871972739697L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=640", -2.98256054520606994629e-07L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=640", 0.999999850871972739697L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=640", 0.999999850871972739697L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=640", -2.98256054520606994629e-07L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=640", 0.999999850871972739697L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=640", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=640", -6.94431491476965589982e-17L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=640", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=640", 1.00000000000000000000L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=640", -6.94431491476965589982e-17L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=640", 0.999999999999999888978L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=640", 0.999999999999999965306L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=640", -6.94431491476965589982e-17L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=640", 0.999999999999999965251L);
+insert("u01<float>(maxi32 - int32_t(a)) a=640", 0.499999850988388061523L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=640", 0.999999701976776123047L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=640", 0.499999821186065673828L);
+insert("u01<double>(maxi32 - int32_t(a)) a=640", 0.499999850871972739697L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=640", 0.999999701743945479393L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=640", 0.499999850871972739697L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=640", 0.499999850871972739697L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=640", 0.999999701743945479393L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=640", 0.499999850871972739697L);
+insert("u01<float>(maxi64 - int64_t(a)) a=640", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=640", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=640", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=640", 0.499999999999999944489L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=640", 0.999999999999999888978L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=640", 0.499999999999999888978L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=640", 0.499999999999999965278L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=640", 0.999999999999999930557L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=640", 0.499999999999999965251L);
+insert("u01<float>(minu32 + uint32_t(a)) a=641", 1.49360857903957366943e-07L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=641", 2.98721715807914733887e-07L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=641", 1.78813934326171875000e-07L);
+insert("u01<double>(minu32 + uint32_t(a)) a=641", 1.49360857903957366943e-07L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=641", 2.98721715807914733887e-07L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=641", 1.49360857903957366943e-07L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=641", 1.49360857903957366943e-07L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=641", 2.98721715807914733887e-07L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=641", 1.49360857903957366943e-07L);
+insert("u01<float>(minu64 + uint64_t(a)) a=641", 3.47757846824725547208e-17L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=641", 6.95515693649451094416e-17L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=641", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=641", 3.47757846824725547208e-17L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=641", 6.95515693649451094416e-17L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=641", 1.11022302462515654042e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=641", 3.47757846824725547208e-17L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=641", 6.95515693649451094416e-17L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=641", 3.47486796281604171099e-17L);
+insert("u01<float>(mini32 + int32_t(a)) a=641", 0.500000178813934326172L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=641", -0.999999701976776123047L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=641", 0.500000178813934326172L);
+insert("u01<double>(mini32 + int32_t(a)) a=641", 0.500000149360857903957L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=641", -0.999999701278284192085L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=641", 0.500000149360857903957L);
+insert("u01<long double>(mini32 + int32_t(a)) a=641", 0.500000149360857903957L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=641", -0.999999701278284192085L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=641", 0.500000149360857903957L);
+insert("u01<float>(mini64 + int64_t(a)) a=641", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=641", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=641", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=641", 0.500000000000000000000L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=641", -0.999999999999999888978L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=641", 0.500000000000000111022L);
+insert("u01<long double>(mini64 + int64_t(a)) a=641", 0.500000000000000034803L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=641", -0.999999999999999930448L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=641", 0.500000000000000034749L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=641", 0.999999821186065673828L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=641", -2.98721715807914733887e-07L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=641", 0.999999821186065673828L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=641", 0.999999850639142096043L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=641", -2.98721715807914733887e-07L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=641", 0.999999850639142096043L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=641", 0.999999850639142096043L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=641", -2.98721715807914733887e-07L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=641", 0.999999850639142096043L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=641", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=641", -6.95515693649451094416e-17L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=641", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=641", 1.00000000000000000000L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=641", -6.95515693649451094416e-17L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=641", 0.999999999999999888978L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=641", 0.999999999999999965197L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=641", -6.95515693649451094416e-17L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=641", 0.999999999999999965251L);
+insert("u01<float>(maxi32 - int32_t(a)) a=641", 0.499999850988388061523L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=641", 0.999999701976776123047L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=641", 0.499999821186065673828L);
+insert("u01<double>(maxi32 - int32_t(a)) a=641", 0.499999850639142096043L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=641", 0.999999701278284192085L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=641", 0.499999850639142096043L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=641", 0.499999850639142096043L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=641", 0.999999701278284192085L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=641", 0.499999850639142096043L);
+insert("u01<float>(maxi64 - int64_t(a)) a=641", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=641", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=641", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=641", 0.499999999999999944489L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=641", 0.999999999999999888978L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=641", 0.499999999999999888978L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=641", 0.499999999999999965224L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=641", 0.999999999999999930448L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=641", 0.499999999999999965251L);
+insert("u01<float>(minu32 + uint32_t(a)) a=1023", 2.38302163779735565186e-07L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=1023", 4.76604327559471130371e-07L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=1023", 1.78813934326171875000e-07L);
+insert("u01<double>(minu32 + uint32_t(a)) a=1023", 2.38302163779735565186e-07L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=1023", 4.76604327559471130371e-07L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=1023", 2.38302163779735565186e-07L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=1023", 2.38302163779735565186e-07L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=1023", 4.76604327559471130371e-07L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=1023", 2.38302163779735565186e-07L);
+insert("u01<float>(minu64 + uint64_t(a)) a=1023", 5.54840461769456894103e-17L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=1023", 1.10968092353891378821e-16L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=1023", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=1023", 5.54840461769456894103e-17L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=1023", 1.10968092353891378821e-16L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=1023", 1.11022302462515654042e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=1023", 5.54840461769456894103e-17L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=1023", 1.10968092353891378821e-16L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=1023", 5.54569411226335517995e-17L);
+insert("u01<float>(mini32 + int32_t(a)) a=1023", 0.500000238418579101562L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=1023", -0.999999523162841796875L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=1023", 0.500000178813934326172L);
+insert("u01<double>(mini32 + int32_t(a)) a=1023", 0.500000238302163779736L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=1023", -0.999999523395672440529L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=1023", 0.500000238302163779736L);
+insert("u01<long double>(mini32 + int32_t(a)) a=1023", 0.500000238302163779736L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=1023", -0.999999523395672440529L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=1023", 0.500000238302163779736L);
+insert("u01<float>(mini64 + int64_t(a)) a=1023", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=1023", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=1023", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=1023", 0.500000000000000000000L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=1023", -0.999999999999999888978L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=1023", 0.500000000000000111022L);
+insert("u01<long double>(mini64 + int64_t(a)) a=1023", 0.500000000000000055511L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=1023", -0.999999999999999889032L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=1023", 0.500000000000000055457L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=1023", 0.999999761581420898438L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=1023", -4.76604327559471130371e-07L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=1023", 0.999999821186065673828L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=1023", 0.999999761697836220264L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=1023", -4.76604327559471130371e-07L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=1023", 0.999999761697836220264L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=1023", 0.999999761697836220264L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=1023", -4.76604327559471130371e-07L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=1023", 0.999999761697836220264L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=1023", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=1023", -1.10968092353891378821e-16L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=1023", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=1023", 1.00000000000000000000L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=1023", -1.10968092353891378821e-16L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=1023", 0.999999999999999888978L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=1023", 0.999999999999999944489L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=1023", -1.10968092353891378821e-16L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=1023", 0.999999999999999944543L);
+insert("u01<float>(maxi32 - int32_t(a)) a=1023", 0.499999761581420898438L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=1023", 0.999999523162841796875L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=1023", 0.499999821186065673828L);
+insert("u01<double>(maxi32 - int32_t(a)) a=1023", 0.499999761697836220264L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=1023", 0.999999523395672440529L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=1023", 0.499999761697836220264L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=1023", 0.499999761697836220264L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=1023", 0.999999523395672440529L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=1023", 0.499999761697836220264L);
+insert("u01<float>(maxi64 - int64_t(a)) a=1023", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=1023", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=1023", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=1023", 0.499999999999999944489L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=1023", 0.999999999999999888978L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=1023", 0.499999999999999888978L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=1023", 0.499999999999999944516L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=1023", 0.999999999999999889032L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=1023", 0.499999999999999944543L);
+insert("u01<float>(minu32 + uint32_t(a)) a=1024", 2.38534994423389434814e-07L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=1024", 4.77069988846778869629e-07L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=1024", 2.98023223876953125000e-07L);
+insert("u01<double>(minu32 + uint32_t(a)) a=1024", 2.38534994423389434814e-07L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=1024", 4.77069988846778869629e-07L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=1024", 2.38534994423389434814e-07L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=1024", 2.38534994423389434814e-07L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=1024", 4.77069988846778869629e-07L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=1024", 2.38534994423389434814e-07L);
+insert("u01<float>(minu64 + uint64_t(a)) a=1024", 5.55382562855699646320e-17L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=1024", 1.11076512571139929264e-16L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=1024", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=1024", 5.55382562855699646320e-17L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=1024", 1.11076512571139929264e-16L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=1024", 1.11022302462515654042e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=1024", 5.55382562855699646320e-17L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=1024", 1.11076512571139929264e-16L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=1024", 5.55653613398821022429e-17L);
+insert("u01<float>(mini32 + int32_t(a)) a=1024", 0.500000238418579101562L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=1024", -0.999999523162841796875L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=1024", 0.500000298023223876953L);
+insert("u01<double>(mini32 + int32_t(a)) a=1024", 0.500000238534994423389L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=1024", -0.999999522930011153221L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=1024", 0.500000238534994423389L);
+insert("u01<long double>(mini32 + int32_t(a)) a=1024", 0.500000238534994423389L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=1024", -0.999999522930011153221L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=1024", 0.500000238534994423389L);
+insert("u01<float>(mini64 + int64_t(a)) a=1024", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=1024", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=1024", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=1024", 0.500000000000000000000L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=1024", -0.999999999999999888978L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=1024", 0.500000000000000111022L);
+insert("u01<long double>(mini64 + int64_t(a)) a=1024", 0.500000000000000055511L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=1024", -0.999999999999999888923L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=1024", 0.500000000000000055565L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=1024", 0.999999761581420898438L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=1024", -4.77069988846778869629e-07L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=1024", 0.999999701976776123047L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=1024", 0.999999761465005576611L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=1024", -4.77069988846778869629e-07L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=1024", 0.999999761465005576611L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=1024", 0.999999761465005576611L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=1024", -4.77069988846778869629e-07L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=1024", 0.999999761465005576611L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=1024", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=1024", -1.11076512571139929264e-16L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=1024", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=1024", 0.999999999999999888978L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=1024", -1.11076512571139929264e-16L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=1024", 0.999999999999999888978L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=1024", 0.999999999999999944489L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=1024", -1.11076512571139929264e-16L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=1024", 0.999999999999999944435L);
+insert("u01<float>(maxi32 - int32_t(a)) a=1024", 0.499999761581420898438L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=1024", 0.999999523162841796875L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=1024", 0.499999701976776123047L);
+insert("u01<double>(maxi32 - int32_t(a)) a=1024", 0.499999761465005576611L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=1024", 0.999999522930011153221L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=1024", 0.499999761465005576611L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=1024", 0.499999761465005576611L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=1024", 0.999999522930011153221L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=1024", 0.499999761465005576611L);
+insert("u01<float>(maxi64 - int64_t(a)) a=1024", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=1024", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=1024", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=1024", 0.499999999999999944489L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=1024", 0.999999999999999888978L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=1024", 0.499999999999999888978L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=1024", 0.499999999999999944462L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=1024", 0.999999999999999888923L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=1024", 0.499999999999999944435L);
+insert("u01<float>(minu32 + uint32_t(a)) a=1025", 2.38767825067043304443e-07L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=1025", 4.77535650134086608887e-07L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=1025", 2.98023223876953125000e-07L);
+insert("u01<double>(minu32 + uint32_t(a)) a=1025", 2.38767825067043304443e-07L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=1025", 4.77535650134086608887e-07L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=1025", 2.38767825067043304443e-07L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=1025", 2.38767825067043304443e-07L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=1025", 4.77535650134086608887e-07L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=1025", 2.38767825067043304443e-07L);
+insert("u01<float>(minu64 + uint64_t(a)) a=1025", 5.55924663941942398537e-17L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=1025", 1.11184932788388479707e-16L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=1025", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=1025", 5.55924663941942398537e-17L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=1025", 1.11184932788388479707e-16L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=1025", 1.11022302462515654042e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=1025", 5.55924663941942398537e-17L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=1025", 1.11184932788388479707e-16L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=1025", 5.55653613398821022429e-17L);
+insert("u01<float>(mini32 + int32_t(a)) a=1025", 0.500000238418579101562L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=1025", -0.999999523162841796875L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=1025", 0.500000298023223876953L);
+insert("u01<double>(mini32 + int32_t(a)) a=1025", 0.500000238767825067043L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=1025", -0.999999522464349865913L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=1025", 0.500000238767825067043L);
+insert("u01<long double>(mini32 + int32_t(a)) a=1025", 0.500000238767825067043L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=1025", -0.999999522464349865913L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=1025", 0.500000238767825067043L);
+insert("u01<float>(mini64 + int64_t(a)) a=1025", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=1025", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=1025", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=1025", 0.500000000000000111022L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=1025", -0.999999999999999888978L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=1025", 0.500000000000000111022L);
+insert("u01<long double>(mini64 + int64_t(a)) a=1025", 0.500000000000000055620L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=1025", -0.999999999999999888815L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=1025", 0.500000000000000055565L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=1025", 0.999999761581420898438L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=1025", -4.77535650134086608887e-07L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=1025", 0.999999701976776123047L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=1025", 0.999999761232174932957L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=1025", -4.77535650134086608887e-07L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=1025", 0.999999761232174932957L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=1025", 0.999999761232174932957L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=1025", -4.77535650134086608887e-07L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=1025", 0.999999761232174932957L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=1025", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=1025", -1.11184932788388479707e-16L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=1025", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=1025", 0.999999999999999888978L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=1025", -1.11184932788388479707e-16L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=1025", 0.999999999999999888978L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=1025", 0.999999999999999944380L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=1025", -1.11184932788388479707e-16L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=1025", 0.999999999999999944435L);
+insert("u01<float>(maxi32 - int32_t(a)) a=1025", 0.499999761581420898438L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=1025", 0.999999523162841796875L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=1025", 0.499999701976776123047L);
+insert("u01<double>(maxi32 - int32_t(a)) a=1025", 0.499999761232174932957L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=1025", 0.999999522464349865913L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=1025", 0.499999761232174932957L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=1025", 0.499999761232174932957L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=1025", 0.999999522464349865913L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=1025", 0.499999761232174932957L);
+insert("u01<float>(maxi64 - int64_t(a)) a=1025", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=1025", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=1025", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=1025", 0.499999999999999944489L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=1025", 0.999999999999999888978L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=1025", 0.499999999999999888978L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=1025", 0.499999999999999944408L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=1025", 0.999999999999999888815L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=1025", 0.499999999999999944435L);
+insert("u01<float>(minu32 + uint32_t(a)) a=3070", 7.14906491339206695557e-07L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=3070", 1.42981298267841339111e-06L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=3070", 6.55651092529296875000e-07L);
+insert("u01<double>(minu32 + uint32_t(a)) a=3070", 7.14906491339206695557e-07L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=3070", 1.42981298267841339111e-06L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=3070", 7.14906491339206695557e-07L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=3070", 7.14906491339206695557e-07L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=3070", 1.42981298267841339111e-06L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=3070", 7.14906491339206695557e-07L);
+insert("u01<float>(minu64 + uint64_t(a)) a=3070", 1.66452138530837068231e-16L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=3070", 3.32904277061674136462e-16L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=3070", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=3070", 1.66452138530837068231e-16L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=3070", 3.32904277061674136462e-16L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=3070", 1.11022302462515654042e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=3070", 1.66452138530837068231e-16L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=3070", 3.32904277061674136462e-16L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=3070", 1.66479243585149205842e-16L);
+insert("u01<float>(mini32 + int32_t(a)) a=3070", 0.500000715255737304688L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=3070", -0.999998569488525390625L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=3070", 0.500000655651092529297L);
+insert("u01<double>(mini32 + int32_t(a)) a=3070", 0.500000714906491339207L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=3070", -0.999998570187017321587L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=3070", 0.500000714906491339207L);
+insert("u01<long double>(mini32 + int32_t(a)) a=3070", 0.500000714906491339207L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=3070", -0.999998570187017321587L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=3070", 0.500000714906491339207L);
+insert("u01<float>(mini64 + int64_t(a)) a=3070", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=3070", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=3070", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=3070", 0.500000000000000111022L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=3070", -0.999999999999999666933L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=3070", 0.500000000000000111022L);
+insert("u01<long double>(mini64 + int64_t(a)) a=3070", 0.500000000000000166425L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=3070", -0.999999999999999667096L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=3070", 0.500000000000000166479L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=3070", 0.999999284744262695312L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=3070", -1.42981298267841339111e-06L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=3070", 0.999999344348907470703L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=3070", 0.999999285093508660793L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=3070", -1.42981298267841339111e-06L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=3070", 0.999999285093508660793L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=3070", 0.999999285093508660793L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=3070", -1.42981298267841339111e-06L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=3070", 0.999999285093508660793L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=3070", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=3070", -3.32904277061674136462e-16L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=3070", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=3070", 0.999999999999999888978L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=3070", -3.32904277061674136462e-16L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=3070", 0.999999999999999888978L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=3070", 0.999999999999999833575L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=3070", -3.32904277061674136462e-16L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=3070", 0.999999999999999833521L);
+insert("u01<float>(maxi32 - int32_t(a)) a=3070", 0.499999284744262695312L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=3070", 0.999998569488525390625L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=3070", 0.499999344348907470703L);
+insert("u01<double>(maxi32 - int32_t(a)) a=3070", 0.499999285093508660793L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=3070", 0.999998570187017321587L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=3070", 0.499999285093508660793L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=3070", 0.499999285093508660793L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=3070", 0.999998570187017321587L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=3070", 0.499999285093508660793L);
+insert("u01<float>(maxi64 - int64_t(a)) a=3070", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=3070", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=3070", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=3070", 0.499999999999999833467L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=3070", 0.999999999999999666933L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=3070", 0.499999999999999888978L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=3070", 0.499999999999999833548L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=3070", 0.999999999999999667096L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=3070", 0.499999999999999833521L);
+insert("u01<float>(minu32 + uint32_t(a)) a=3071", 7.15139321982860565186e-07L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=3071", 1.43027864396572113037e-06L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=3071", 6.55651092529296875000e-07L);
+insert("u01<double>(minu32 + uint32_t(a)) a=3071", 7.15139321982860565186e-07L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=3071", 1.43027864396572113037e-06L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=3071", 7.15139321982860565186e-07L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=3071", 7.15139321982860565186e-07L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=3071", 1.43027864396572113037e-06L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=3071", 7.15139321982860565186e-07L);
+insert("u01<float>(minu64 + uint64_t(a)) a=3071", 1.66506348639461343453e-16L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=3071", 3.33012697278922686905e-16L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=3071", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=3071", 1.66506348639461343453e-16L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=3071", 3.33012697278922686905e-16L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=3071", 1.11022302462515654042e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=3071", 1.66506348639461343453e-16L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=3071", 3.33012697278922686905e-16L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=3071", 1.66479243585149205842e-16L);
+insert("u01<float>(mini32 + int32_t(a)) a=3071", 0.500000715255737304688L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=3071", -0.999998569488525390625L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=3071", 0.500000655651092529297L);
+insert("u01<double>(mini32 + int32_t(a)) a=3071", 0.500000715139321982861L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=3071", -0.999998569721356034279L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=3071", 0.500000715139321982861L);
+insert("u01<long double>(mini32 + int32_t(a)) a=3071", 0.500000715139321982861L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=3071", -0.999998569721356034279L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=3071", 0.500000715139321982861L);
+insert("u01<float>(mini64 + int64_t(a)) a=3071", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=3071", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=3071", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=3071", 0.500000000000000111022L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=3071", -0.999999999999999666933L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=3071", 0.500000000000000111022L);
+insert("u01<long double>(mini64 + int64_t(a)) a=3071", 0.500000000000000166533L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=3071", -0.999999999999999666987L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=3071", 0.500000000000000166479L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=3071", 0.999999284744262695312L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=3071", -1.43027864396572113037e-06L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=3071", 0.999999344348907470703L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=3071", 0.999999284860678017139L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=3071", -1.43027864396572113037e-06L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=3071", 0.999999284860678017139L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=3071", 0.999999284860678017139L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=3071", -1.43027864396572113037e-06L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=3071", 0.999999284860678017139L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=3071", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=3071", -3.33012697278922686905e-16L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=3071", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=3071", 0.999999999999999777955L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=3071", -3.33012697278922686905e-16L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=3071", 0.999999999999999888978L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=3071", 0.999999999999999833467L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=3071", -3.33012697278922686905e-16L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=3071", 0.999999999999999833521L);
+insert("u01<float>(maxi32 - int32_t(a)) a=3071", 0.499999284744262695312L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=3071", 0.999998569488525390625L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=3071", 0.499999344348907470703L);
+insert("u01<double>(maxi32 - int32_t(a)) a=3071", 0.499999284860678017139L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=3071", 0.999998569721356034279L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=3071", 0.499999284860678017139L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=3071", 0.499999284860678017139L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=3071", 0.999998569721356034279L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=3071", 0.499999284860678017139L);
+insert("u01<float>(maxi64 - int64_t(a)) a=3071", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=3071", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=3071", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=3071", 0.499999999999999833467L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=3071", 0.999999999999999666933L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=3071", 0.499999999999999888978L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=3071", 0.499999999999999833494L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=3071", 0.999999999999999666987L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=3071", 0.499999999999999833521L);
+insert("u01<float>(minu32 + uint32_t(a)) a=3072", 7.15372152626514434814e-07L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=3072", 1.43074430525302886963e-06L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=3072", 7.74860382080078125000e-07L);
+insert("u01<double>(minu32 + uint32_t(a)) a=3072", 7.15372152626514434814e-07L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=3072", 1.43074430525302886963e-06L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=3072", 7.15372152626514434814e-07L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=3072", 7.15372152626514434814e-07L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=3072", 1.43074430525302886963e-06L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=3072", 7.15372152626514434814e-07L);
+insert("u01<float>(minu64 + uint64_t(a)) a=3072", 1.66560558748085618674e-16L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=3072", 3.33121117496171237349e-16L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=3072", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=3072", 1.66560558748085618674e-16L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=3072", 3.33121117496171237349e-16L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=3072", 1.11022302462515654042e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=3072", 1.66560558748085618674e-16L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=3072", 3.33121117496171237349e-16L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=3072", 1.66587663802397756285e-16L);
+insert("u01<float>(mini32 + int32_t(a)) a=3072", 0.500000715255737304688L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=3072", -0.999998569488525390625L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=3072", 0.500000774860382080078L);
+insert("u01<double>(mini32 + int32_t(a)) a=3072", 0.500000715372152626514L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=3072", -0.999998569255694746971L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=3072", 0.500000715372152626514L);
+insert("u01<long double>(mini32 + int32_t(a)) a=3072", 0.500000715372152626514L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=3072", -0.999998569255694746971L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=3072", 0.500000715372152626514L);
+insert("u01<float>(mini64 + int64_t(a)) a=3072", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=3072", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=3072", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=3072", 0.500000000000000222045L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=3072", -0.999999999999999666933L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=3072", 0.500000000000000111022L);
+insert("u01<long double>(mini64 + int64_t(a)) a=3072", 0.500000000000000166533L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=3072", -0.999999999999999666879L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=3072", 0.500000000000000166588L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=3072", 0.999999284744262695312L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=3072", -1.43074430525302886963e-06L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=3072", 0.999999225139617919922L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=3072", 0.999999284627847373486L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=3072", -1.43074430525302886963e-06L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=3072", 0.999999284627847373486L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=3072", 0.999999284627847373486L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=3072", -1.43074430525302886963e-06L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=3072", 0.999999284627847373486L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=3072", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=3072", -3.33121117496171237349e-16L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=3072", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=3072", 0.999999999999999777955L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=3072", -3.33121117496171237349e-16L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=3072", 0.999999999999999888978L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=3072", 0.999999999999999833467L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=3072", -3.33121117496171237349e-16L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=3072", 0.999999999999999833412L);
+insert("u01<float>(maxi32 - int32_t(a)) a=3072", 0.499999284744262695312L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=3072", 0.999998569488525390625L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=3072", 0.499999225139617919922L);
+insert("u01<double>(maxi32 - int32_t(a)) a=3072", 0.499999284627847373486L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=3072", 0.999998569255694746971L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=3072", 0.499999284627847373486L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=3072", 0.499999284627847373486L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=3072", 0.999998569255694746971L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=3072", 0.499999284627847373486L);
+insert("u01<float>(maxi64 - int64_t(a)) a=3072", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=3072", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=3072", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=3072", 0.499999999999999833467L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=3072", 0.999999999999999666933L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=3072", 0.499999999999999888978L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=3072", 0.499999999999999833439L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=3072", 0.999999999999999666879L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=3072", 0.499999999999999833412L);
+insert("u01<float>(minu32 + uint32_t(a)) a=5119", 1.19197648018598556519e-06L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=5119", 2.38395296037197113037e-06L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=5119", 1.13248825073242187500e-06L);
+insert("u01<double>(minu32 + uint32_t(a)) a=5119", 1.19197648018598556519e-06L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=5119", 2.38395296037197113037e-06L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=5119", 1.19197648018598556519e-06L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=5119", 1.19197648018598556519e-06L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=5119", 2.38395296037197113037e-06L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=5119", 1.19197648018598556519e-06L);
+insert("u01<float>(minu64 + uint64_t(a)) a=5119", 2.77528651101976997495e-16L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=5119", 5.55057302203953994990e-16L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=5119", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=5119", 2.77528651101976997495e-16L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=5119", 5.55057302203953994990e-16L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=5119", 3.33066907387546962127e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=5119", 2.77528651101976997495e-16L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=5119", 5.55057302203953994990e-16L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=5119", 2.77501546047664859884e-16L);
+insert("u01<float>(mini32 + int32_t(a)) a=5119", 0.500001192092895507812L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=5119", -0.999997615814208984375L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=5119", 0.500001132488250732422L);
+insert("u01<double>(mini32 + int32_t(a)) a=5119", 0.500001191976480185986L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=5119", -0.999997616047039628029L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=5119", 0.500001191976480185986L);
+insert("u01<long double>(mini32 + int32_t(a)) a=5119", 0.500001191976480185986L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=5119", -0.999997616047039628029L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=5119", 0.500001191976480185986L);
+insert("u01<float>(mini64 + int64_t(a)) a=5119", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=5119", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=5119", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=5119", 0.500000000000000222045L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=5119", -0.999999999999999444888L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=5119", 0.500000000000000333067L);
+insert("u01<long double>(mini64 + int64_t(a)) a=5119", 0.500000000000000277556L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=5119", -0.999999999999999444943L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=5119", 0.500000000000000277502L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=5119", 0.999998807907104492188L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=5119", -2.38395296037197113037e-06L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=5119", 0.999998867511749267578L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=5119", 0.999998808023519814014L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=5119", -2.38395296037197113037e-06L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=5119", 0.999998808023519814014L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=5119", 0.999998808023519814014L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=5119", -2.38395296037197113037e-06L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=5119", 0.999998808023519814014L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=5119", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=5119", -5.55057302203953994990e-16L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=5119", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=5119", 0.999999999999999777955L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=5119", -5.55057302203953994990e-16L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=5119", 0.999999999999999666933L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=5119", 0.999999999999999722444L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=5119", -5.55057302203953994990e-16L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=5119", 0.999999999999999722498L);
+insert("u01<float>(maxi32 - int32_t(a)) a=5119", 0.499998807907104492188L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=5119", 0.999997615814208984375L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=5119", 0.499998867511749267578L);
+insert("u01<double>(maxi32 - int32_t(a)) a=5119", 0.499998808023519814014L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=5119", 0.999997616047039628029L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=5119", 0.499998808023519814014L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=5119", 0.499998808023519814014L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=5119", 0.999997616047039628029L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=5119", 0.499998808023519814014L);
+insert("u01<float>(maxi64 - int64_t(a)) a=5119", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=5119", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=5119", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=5119", 0.499999999999999722444L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=5119", 0.999999999999999444888L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=5119", 0.499999999999999666933L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=5119", 0.499999999999999722471L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=5119", 0.999999999999999444943L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=5119", 0.499999999999999722498L);
+insert("u01<float>(minu32 + uint32_t(a)) a=5120", 1.19220931082963943481e-06L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=5120", 2.38441862165927886963e-06L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=5120", 1.25169754028320312500e-06L);
+insert("u01<double>(minu32 + uint32_t(a)) a=5120", 1.19220931082963943481e-06L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=5120", 2.38441862165927886963e-06L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=5120", 1.19220931082963943481e-06L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=5120", 1.19220931082963943481e-06L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=5120", 2.38441862165927886963e-06L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=5120", 1.19220931082963943481e-06L);
+insert("u01<float>(minu64 + uint64_t(a)) a=5120", 2.77582861210601272717e-16L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=5120", 5.55165722421202545434e-16L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=5120", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=5120", 2.77582861210601272717e-16L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=5120", 5.55165722421202545434e-16L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=5120", 3.33066907387546962127e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=5120", 2.77582861210601272717e-16L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=5120", 5.55165722421202545434e-16L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=5120", 2.77609966264913410328e-16L);
+insert("u01<float>(mini32 + int32_t(a)) a=5120", 0.500001192092895507812L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=5120", -0.999997615814208984375L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=5120", 0.500001251697540283203L);
+insert("u01<double>(mini32 + int32_t(a)) a=5120", 0.500001192209310829639L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=5120", -0.999997615581378340721L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=5120", 0.500001192209310829639L);
+insert("u01<long double>(mini32 + int32_t(a)) a=5120", 0.500001192209310829639L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=5120", -0.999997615581378340721L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=5120", 0.500001192209310829639L);
+insert("u01<float>(mini64 + int64_t(a)) a=5120", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=5120", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=5120", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=5120", 0.500000000000000222045L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=5120", -0.999999999999999444888L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=5120", 0.500000000000000333067L);
+insert("u01<long double>(mini64 + int64_t(a)) a=5120", 0.500000000000000277556L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=5120", -0.999999999999999444834L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=5120", 0.500000000000000277610L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=5120", 0.999998807907104492188L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=5120", -2.38441862165927886963e-06L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=5120", 0.999998748302459716797L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=5120", 0.999998807790689170361L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=5120", -2.38441862165927886963e-06L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=5120", 0.999998807790689170361L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=5120", 0.999998807790689170361L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=5120", -2.38441862165927886963e-06L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=5120", 0.999998807790689170361L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=5120", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=5120", -5.55165722421202545434e-16L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=5120", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=5120", 0.999999999999999666933L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=5120", -5.55165722421202545434e-16L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=5120", 0.999999999999999666933L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=5120", 0.999999999999999722444L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=5120", -5.55165722421202545434e-16L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=5120", 0.999999999999999722390L);
+insert("u01<float>(maxi32 - int32_t(a)) a=5120", 0.499998807907104492188L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=5120", 0.999997615814208984375L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=5120", 0.499998748302459716797L);
+insert("u01<double>(maxi32 - int32_t(a)) a=5120", 0.499998807790689170361L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=5120", 0.999997615581378340721L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=5120", 0.499998807790689170361L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=5120", 0.499998807790689170361L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=5120", 0.999997615581378340721L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=5120", 0.499998807790689170361L);
+insert("u01<float>(maxi64 - int64_t(a)) a=5120", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=5120", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=5120", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=5120", 0.499999999999999722444L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=5120", 0.999999999999999444888L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=5120", 0.499999999999999666933L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=5120", 0.499999999999999722417L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=5120", 0.999999999999999444834L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=5120", 0.499999999999999722390L);
+insert("u01<float>(minu32 + uint32_t(a)) a=5121", 1.19244214147329330444e-06L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=5121", 2.38488428294658660889e-06L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=5121", 1.25169754028320312500e-06L);
+insert("u01<double>(minu32 + uint32_t(a)) a=5121", 1.19244214147329330444e-06L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=5121", 2.38488428294658660889e-06L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=5121", 1.19244214147329330444e-06L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=5121", 1.19244214147329330444e-06L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=5121", 2.38488428294658660889e-06L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=5121", 1.19244214147329330444e-06L);
+insert("u01<float>(minu64 + uint64_t(a)) a=5121", 2.77637071319225547938e-16L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=5121", 5.55274142638451095877e-16L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=5121", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=5121", 2.77637071319225547938e-16L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=5121", 5.55274142638451095877e-16L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=5121", 3.33066907387546962127e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=5121", 2.77637071319225547938e-16L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=5121", 5.55274142638451095877e-16L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=5121", 2.77609966264913410328e-16L);
+insert("u01<float>(mini32 + int32_t(a)) a=5121", 0.500001192092895507812L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=5121", -0.999997615814208984375L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=5121", 0.500001251697540283203L);
+insert("u01<double>(mini32 + int32_t(a)) a=5121", 0.500001192442141473293L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=5121", -0.999997615115717053413L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=5121", 0.500001192442141473293L);
+insert("u01<long double>(mini32 + int32_t(a)) a=5121", 0.500001192442141473293L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=5121", -0.999997615115717053413L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=5121", 0.500001192442141473293L);
+insert("u01<float>(mini64 + int64_t(a)) a=5121", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=5121", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=5121", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=5121", 0.500000000000000333067L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=5121", -0.999999999999999444888L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=5121", 0.500000000000000333067L);
+insert("u01<long double>(mini64 + int64_t(a)) a=5121", 0.500000000000000277664L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=5121", -0.999999999999999444726L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=5121", 0.500000000000000277610L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=5121", 0.999998807907104492188L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=5121", -2.38488428294658660889e-06L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=5121", 0.999998748302459716797L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=5121", 0.999998807557858526707L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=5121", -2.38488428294658660889e-06L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=5121", 0.999998807557858526707L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=5121", 0.999998807557858526707L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=5121", -2.38488428294658660889e-06L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=5121", 0.999998807557858526707L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=5121", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=5121", -5.55274142638451095877e-16L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=5121", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=5121", 0.999999999999999666933L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=5121", -5.55274142638451095877e-16L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=5121", 0.999999999999999666933L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=5121", 0.999999999999999722336L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=5121", -5.55274142638451095877e-16L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=5121", 0.999999999999999722390L);
+insert("u01<float>(maxi32 - int32_t(a)) a=5121", 0.499998807907104492188L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=5121", 0.999997615814208984375L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=5121", 0.499998748302459716797L);
+insert("u01<double>(maxi32 - int32_t(a)) a=5121", 0.499998807557858526707L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=5121", 0.999997615115717053413L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=5121", 0.499998807557858526707L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=5121", 0.499998807557858526707L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=5121", 0.999997615115717053413L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=5121", 0.499998807557858526707L);
+insert("u01<float>(maxi64 - int64_t(a)) a=5121", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=5121", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=5121", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=5121", 0.499999999999999722444L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=5121", 0.999999999999999444888L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=5121", 0.499999999999999666933L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=5121", 0.499999999999999722363L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=5121", 0.999999999999999444726L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=5121", 0.499999999999999722390L);
+// ./ut_uniform_IEEEkat: SUCCESS
diff --git a/examples/ut_uniform_kat_vectors.dat b/examples/ut_uniform_kat_vectors.dat
new file mode 100644
index 0000000..ae6bd13
--- /dev/null
+++ b/examples/ut_uniform_kat_vectors.dat
@@ -0,0 +1,2604 @@
+/* This file was created by 'ut_uniform with-arg' on a reference
+   platform, and is #included in the recompilation of ut_uniform
+   on a target platform.  When ut_uniform is run with no arguments
+   on the target platform, it asserts that the values computed
+   on the target platform match the reference values recorded here.
+   These reference values were computed on an x86_64 using 32-bit,
+   64-bit and 80-bit IEEE arithmetic for float, double and long double
+   respectively.  Other platforms with different representations of
+   floating point values will almost certainly fail these tests
+   even though their results might be perfectly valid.
+*/
+insert("u01<float>(minu32 + uint32_t(a)) a=0", 1.16415321826934814453e-10L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=0", 2.32830643653869628906e-10L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=0", 5.96046447753906250000e-08L);
+insert("u01<double>(minu32 + uint32_t(a)) a=0", 1.16415321826934814453e-10L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=0", 2.32830643653869628906e-10L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=0", 1.16415321826934814453e-10L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=0", 1.16415321826934814453e-10L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=0", 2.32830643653869628906e-10L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=0", 1.16415321826934814453e-10L);
+insert("u01<float>(minu64 + uint64_t(a)) a=0", 2.71050543121376108502e-20L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=0", 5.42101086242752217004e-20L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=0", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=0", 2.71050543121376108502e-20L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=0", 5.42101086242752217004e-20L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=0", 1.11022302462515654042e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=0", 2.71050543121376108502e-20L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=0", 5.42101086242752217004e-20L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=0", 5.42101086242752217004e-20L);
+insert("u01<float>(mini32 + int32_t(a)) a=0", 0.500000000000000000000L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=0", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=0", 0.500000059604644775391L);
+insert("u01<double>(mini32 + int32_t(a)) a=0", 0.500000000116415321827L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=0", -0.999999999767169356346L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=0", 0.500000000116415321827L);
+insert("u01<long double>(mini32 + int32_t(a)) a=0", 0.500000000116415321827L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=0", -0.999999999767169356346L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=0", 0.500000000116415321827L);
+insert("u01<float>(mini64 + int64_t(a)) a=0", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=0", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=0", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=0", 0.500000000000000000000L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=0", -1.00000000000000000000L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=0", 0.500000000000000111022L);
+insert("u01<long double>(mini64 + int64_t(a)) a=0", 0.500000000000000000000L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=0", -0.999999999999999999946L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=0", 0.500000000000000000054L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=0", 1.00000000000000000000L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=0", -2.32830643653869628906e-10L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=0", 0.999999940395355224609L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=0", 0.999999999883584678173L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=0", -2.32830643653869628906e-10L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=0", 0.999999999883584678173L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=0", 0.999999999883584678173L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=0", -2.32830643653869628906e-10L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=0", 0.999999999883584678173L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=0", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=0", -5.42101086242752217004e-20L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=0", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=0", 1.00000000000000000000L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=0", -5.42101086242752217004e-20L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=0", 0.999999999999999888978L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=0", 1.00000000000000000000L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=0", -5.42101086242752217004e-20L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=0", 0.999999999999999999946L);
+insert("u01<float>(maxi32 - int32_t(a)) a=0", 0.500000000000000000000L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=0", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=0", 0.499999940395355224609L);
+insert("u01<double>(maxi32 - int32_t(a)) a=0", 0.499999999883584678173L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=0", 0.999999999767169356346L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=0", 0.499999999883584678173L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=0", 0.499999999883584678173L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=0", 0.999999999767169356346L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=0", 0.499999999883584678173L);
+insert("u01<float>(maxi64 - int64_t(a)) a=0", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=0", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=0", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=0", 0.500000000000000000000L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=0", 1.00000000000000000000L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=0", 0.499999999999999888978L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=0", 0.499999999999999999973L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=0", 0.999999999999999999946L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=0", 0.499999999999999999946L);
+insert("u01<float>(minu32 + uint32_t(a)) a=1", 3.49245965480804443359e-10L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=1", 6.98491930961608886719e-10L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=1", 5.96046447753906250000e-08L);
+insert("u01<double>(minu32 + uint32_t(a)) a=1", 3.49245965480804443359e-10L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=1", 6.98491930961608886719e-10L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=1", 3.49245965480804443359e-10L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=1", 3.49245965480804443359e-10L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=1", 6.98491930961608886719e-10L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=1", 3.49245965480804443359e-10L);
+insert("u01<float>(minu64 + uint64_t(a)) a=1", 8.13151629364128325506e-20L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=1", 1.62630325872825665101e-19L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=1", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=1", 8.13151629364128325506e-20L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=1", 1.62630325872825665101e-19L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=1", 1.11022302462515654042e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=1", 8.13151629364128325506e-20L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=1", 1.62630325872825665101e-19L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=1", 5.42101086242752217004e-20L);
+insert("u01<float>(mini32 + int32_t(a)) a=1", 0.500000000000000000000L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=1", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=1", 0.500000059604644775391L);
+insert("u01<double>(mini32 + int32_t(a)) a=1", 0.500000000349245965481L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=1", -0.999999999301508069038L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=1", 0.500000000349245965481L);
+insert("u01<long double>(mini32 + int32_t(a)) a=1", 0.500000000349245965481L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=1", -0.999999999301508069038L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=1", 0.500000000349245965481L);
+insert("u01<float>(mini64 + int64_t(a)) a=1", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=1", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=1", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=1", 0.500000000000000000000L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=1", -1.00000000000000000000L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=1", 0.500000000000000111022L);
+insert("u01<long double>(mini64 + int64_t(a)) a=1", 0.500000000000000000108L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=1", -0.999999999999999999837L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=1", 0.500000000000000000054L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=1", 1.00000000000000000000L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=1", -6.98491930961608886719e-10L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=1", 0.999999940395355224609L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=1", 0.999999999650754034519L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=1", -6.98491930961608886719e-10L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=1", 0.999999999650754034519L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=1", 0.999999999650754034519L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=1", -6.98491930961608886719e-10L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=1", 0.999999999650754034519L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=1", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=1", -1.62630325872825665101e-19L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=1", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=1", 1.00000000000000000000L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=1", -1.62630325872825665101e-19L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=1", 0.999999999999999888978L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=1", 0.999999999999999999892L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=1", -1.62630325872825665101e-19L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=1", 0.999999999999999999946L);
+insert("u01<float>(maxi32 - int32_t(a)) a=1", 0.500000000000000000000L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=1", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=1", 0.499999940395355224609L);
+insert("u01<double>(maxi32 - int32_t(a)) a=1", 0.499999999650754034519L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=1", 0.999999999301508069038L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=1", 0.499999999650754034519L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=1", 0.499999999650754034519L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=1", 0.999999999301508069038L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=1", 0.499999999650754034519L);
+insert("u01<float>(maxi64 - int64_t(a)) a=1", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=1", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=1", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=1", 0.500000000000000000000L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=1", 1.00000000000000000000L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=1", 0.499999999999999888978L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=1", 0.499999999999999999919L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=1", 0.999999999999999999837L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=1", 0.499999999999999999946L);
+insert("u01<float>(minu32 + uint32_t(a)) a=2", 5.82076609134674072266e-10L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=2", 1.16415321826934814453e-09L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=2", 5.96046447753906250000e-08L);
+insert("u01<double>(minu32 + uint32_t(a)) a=2", 5.82076609134674072266e-10L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=2", 1.16415321826934814453e-09L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=2", 5.82076609134674072266e-10L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=2", 5.82076609134674072266e-10L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=2", 1.16415321826934814453e-09L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=2", 5.82076609134674072266e-10L);
+insert("u01<float>(minu64 + uint64_t(a)) a=2", 1.35525271560688054251e-19L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=2", 2.71050543121376108502e-19L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=2", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=2", 1.35525271560688054251e-19L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=2", 2.71050543121376108502e-19L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=2", 1.11022302462515654042e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=2", 1.35525271560688054251e-19L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=2", 2.71050543121376108502e-19L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=2", 1.62630325872825665101e-19L);
+insert("u01<float>(mini32 + int32_t(a)) a=2", 0.500000000000000000000L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=2", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=2", 0.500000059604644775391L);
+insert("u01<double>(mini32 + int32_t(a)) a=2", 0.500000000582076609135L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=2", -0.999999998835846781731L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=2", 0.500000000582076609135L);
+insert("u01<long double>(mini32 + int32_t(a)) a=2", 0.500000000582076609135L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=2", -0.999999998835846781731L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=2", 0.500000000582076609135L);
+insert("u01<float>(mini64 + int64_t(a)) a=2", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=2", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=2", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=2", 0.500000000000000000000L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=2", -1.00000000000000000000L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=2", 0.500000000000000111022L);
+insert("u01<long double>(mini64 + int64_t(a)) a=2", 0.500000000000000000108L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=2", -0.999999999999999999729L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=2", 0.500000000000000000163L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=2", 1.00000000000000000000L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=2", -1.16415321826934814453e-09L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=2", 0.999999940395355224609L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=2", 0.999999999417923390865L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=2", -1.16415321826934814453e-09L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=2", 0.999999999417923390865L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=2", 0.999999999417923390865L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=2", -1.16415321826934814453e-09L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=2", 0.999999999417923390865L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=2", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=2", -2.71050543121376108502e-19L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=2", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=2", 1.00000000000000000000L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=2", -2.71050543121376108502e-19L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=2", 0.999999999999999888978L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=2", 0.999999999999999999892L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=2", -2.71050543121376108502e-19L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=2", 0.999999999999999999837L);
+insert("u01<float>(maxi32 - int32_t(a)) a=2", 0.500000000000000000000L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=2", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=2", 0.499999940395355224609L);
+insert("u01<double>(maxi32 - int32_t(a)) a=2", 0.499999999417923390865L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=2", 0.999999998835846781731L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=2", 0.499999999417923390865L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=2", 0.499999999417923390865L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=2", 0.999999998835846781731L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=2", 0.499999999417923390865L);
+insert("u01<float>(maxi64 - int64_t(a)) a=2", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=2", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=2", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=2", 0.500000000000000000000L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=2", 1.00000000000000000000L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=2", 0.499999999999999888978L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=2", 0.499999999999999999864L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=2", 0.999999999999999999729L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=2", 0.499999999999999999837L);
+insert("u01<float>(minu32 + uint32_t(a)) a=3", 8.14907252788543701172e-10L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=3", 1.62981450557708740234e-09L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=3", 5.96046447753906250000e-08L);
+insert("u01<double>(minu32 + uint32_t(a)) a=3", 8.14907252788543701172e-10L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=3", 1.62981450557708740234e-09L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=3", 8.14907252788543701172e-10L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=3", 8.14907252788543701172e-10L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=3", 1.62981450557708740234e-09L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=3", 8.14907252788543701172e-10L);
+insert("u01<float>(minu64 + uint64_t(a)) a=3", 1.89735380184963275951e-19L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=3", 3.79470760369926551903e-19L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=3", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=3", 1.89735380184963275951e-19L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=3", 3.79470760369926551903e-19L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=3", 1.11022302462515654042e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=3", 1.89735380184963275951e-19L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=3", 3.79470760369926551903e-19L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=3", 1.62630325872825665101e-19L);
+insert("u01<float>(mini32 + int32_t(a)) a=3", 0.500000000000000000000L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=3", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=3", 0.500000059604644775391L);
+insert("u01<double>(mini32 + int32_t(a)) a=3", 0.500000000814907252789L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=3", -0.999999998370185494423L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=3", 0.500000000814907252789L);
+insert("u01<long double>(mini32 + int32_t(a)) a=3", 0.500000000814907252789L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=3", -0.999999998370185494423L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=3", 0.500000000814907252789L);
+insert("u01<float>(mini64 + int64_t(a)) a=3", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=3", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=3", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=3", 0.500000000000000000000L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=3", -1.00000000000000000000L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=3", 0.500000000000000111022L);
+insert("u01<long double>(mini64 + int64_t(a)) a=3", 0.500000000000000000217L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=3", -0.999999999999999999621L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=3", 0.500000000000000000163L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=3", 1.00000000000000000000L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=3", -1.62981450557708740234e-09L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=3", 0.999999940395355224609L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=3", 0.999999999185092747211L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=3", -1.62981450557708740234e-09L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=3", 0.999999999185092747211L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=3", 0.999999999185092747211L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=3", -1.62981450557708740234e-09L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=3", 0.999999999185092747211L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=3", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=3", -3.79470760369926551903e-19L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=3", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=3", 1.00000000000000000000L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=3", -3.79470760369926551903e-19L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=3", 0.999999999999999888978L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=3", 0.999999999999999999783L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=3", -3.79470760369926551903e-19L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=3", 0.999999999999999999837L);
+insert("u01<float>(maxi32 - int32_t(a)) a=3", 0.500000000000000000000L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=3", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=3", 0.499999940395355224609L);
+insert("u01<double>(maxi32 - int32_t(a)) a=3", 0.499999999185092747211L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=3", 0.999999998370185494423L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=3", 0.499999999185092747211L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=3", 0.499999999185092747211L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=3", 0.999999998370185494423L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=3", 0.499999999185092747211L);
+insert("u01<float>(maxi64 - int64_t(a)) a=3", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=3", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=3", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=3", 0.500000000000000000000L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=3", 1.00000000000000000000L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=3", 0.499999999999999888978L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=3", 0.499999999999999999810L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=3", 0.999999999999999999621L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=3", 0.499999999999999999837L);
+insert("u01<float>(minu32 + uint32_t(a)) a=4", 1.04773789644241333008e-09L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=4", 2.09547579288482666016e-09L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=4", 5.96046447753906250000e-08L);
+insert("u01<double>(minu32 + uint32_t(a)) a=4", 1.04773789644241333008e-09L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=4", 2.09547579288482666016e-09L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=4", 1.04773789644241333008e-09L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=4", 1.04773789644241333008e-09L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=4", 2.09547579288482666016e-09L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=4", 1.04773789644241333008e-09L);
+insert("u01<float>(minu64 + uint64_t(a)) a=4", 2.43945488809238497652e-19L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=4", 4.87890977618476995303e-19L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=4", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=4", 2.43945488809238497652e-19L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=4", 4.87890977618476995303e-19L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=4", 1.11022302462515654042e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=4", 2.43945488809238497652e-19L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=4", 4.87890977618476995303e-19L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=4", 2.71050543121376108502e-19L);
+insert("u01<float>(mini32 + int32_t(a)) a=4", 0.500000000000000000000L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=4", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=4", 0.500000059604644775391L);
+insert("u01<double>(mini32 + int32_t(a)) a=4", 0.500000001047737896442L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=4", -0.999999997904524207115L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=4", 0.500000001047737896442L);
+insert("u01<long double>(mini32 + int32_t(a)) a=4", 0.500000001047737896442L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=4", -0.999999997904524207115L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=4", 0.500000001047737896442L);
+insert("u01<float>(mini64 + int64_t(a)) a=4", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=4", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=4", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=4", 0.500000000000000000000L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=4", -1.00000000000000000000L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=4", 0.500000000000000111022L);
+insert("u01<long double>(mini64 + int64_t(a)) a=4", 0.500000000000000000217L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=4", -0.999999999999999999512L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=4", 0.500000000000000000271L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=4", 1.00000000000000000000L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=4", -2.09547579288482666016e-09L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=4", 0.999999940395355224609L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=4", 0.999999998952262103558L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=4", -2.09547579288482666016e-09L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=4", 0.999999998952262103558L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=4", 0.999999998952262103558L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=4", -2.09547579288482666016e-09L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=4", 0.999999998952262103558L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=4", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=4", -4.87890977618476995303e-19L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=4", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=4", 1.00000000000000000000L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=4", -4.87890977618476995303e-19L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=4", 0.999999999999999888978L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=4", 0.999999999999999999783L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=4", -4.87890977618476995303e-19L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=4", 0.999999999999999999729L);
+insert("u01<float>(maxi32 - int32_t(a)) a=4", 0.500000000000000000000L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=4", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=4", 0.499999940395355224609L);
+insert("u01<double>(maxi32 - int32_t(a)) a=4", 0.499999998952262103558L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=4", 0.999999997904524207115L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=4", 0.499999998952262103558L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=4", 0.499999998952262103558L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=4", 0.999999997904524207115L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=4", 0.499999998952262103558L);
+insert("u01<float>(maxi64 - int64_t(a)) a=4", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=4", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=4", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=4", 0.500000000000000000000L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=4", 1.00000000000000000000L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=4", 0.499999999999999888978L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=4", 0.499999999999999999756L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=4", 0.999999999999999999512L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=4", 0.499999999999999999729L);
+insert("u01<float>(minu32 + uint32_t(a)) a=5", 1.28056854009628295898e-09L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=5", 2.56113708019256591797e-09L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=5", 5.96046447753906250000e-08L);
+insert("u01<double>(minu32 + uint32_t(a)) a=5", 1.28056854009628295898e-09L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=5", 2.56113708019256591797e-09L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=5", 1.28056854009628295898e-09L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=5", 1.28056854009628295898e-09L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=5", 2.56113708019256591797e-09L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=5", 1.28056854009628295898e-09L);
+insert("u01<float>(minu64 + uint64_t(a)) a=5", 2.98155597433513719352e-19L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=5", 5.96311194867027438704e-19L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=5", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=5", 2.98155597433513719352e-19L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=5", 5.96311194867027438704e-19L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=5", 1.11022302462515654042e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=5", 2.98155597433513719352e-19L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=5", 5.96311194867027438704e-19L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=5", 2.71050543121376108502e-19L);
+insert("u01<float>(mini32 + int32_t(a)) a=5", 0.500000000000000000000L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=5", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=5", 0.500000059604644775391L);
+insert("u01<double>(mini32 + int32_t(a)) a=5", 0.500000001280568540096L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=5", -0.999999997438862919807L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=5", 0.500000001280568540096L);
+insert("u01<long double>(mini32 + int32_t(a)) a=5", 0.500000001280568540096L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=5", -0.999999997438862919807L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=5", 0.500000001280568540096L);
+insert("u01<float>(mini64 + int64_t(a)) a=5", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=5", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=5", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=5", 0.500000000000000000000L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=5", -1.00000000000000000000L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=5", 0.500000000000000111022L);
+insert("u01<long double>(mini64 + int64_t(a)) a=5", 0.500000000000000000325L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=5", -0.999999999999999999404L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=5", 0.500000000000000000271L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=5", 1.00000000000000000000L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=5", -2.56113708019256591797e-09L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=5", 0.999999940395355224609L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=5", 0.999999998719431459904L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=5", -2.56113708019256591797e-09L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=5", 0.999999998719431459904L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=5", 0.999999998719431459904L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=5", -2.56113708019256591797e-09L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=5", 0.999999998719431459904L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=5", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=5", -5.96311194867027438704e-19L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=5", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=5", 1.00000000000000000000L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=5", -5.96311194867027438704e-19L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=5", 0.999999999999999888978L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=5", 0.999999999999999999675L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=5", -5.96311194867027438704e-19L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=5", 0.999999999999999999729L);
+insert("u01<float>(maxi32 - int32_t(a)) a=5", 0.500000000000000000000L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=5", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=5", 0.499999940395355224609L);
+insert("u01<double>(maxi32 - int32_t(a)) a=5", 0.499999998719431459904L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=5", 0.999999997438862919807L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=5", 0.499999998719431459904L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=5", 0.499999998719431459904L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=5", 0.999999997438862919807L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=5", 0.499999998719431459904L);
+insert("u01<float>(maxi64 - int64_t(a)) a=5", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=5", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=5", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=5", 0.500000000000000000000L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=5", 1.00000000000000000000L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=5", 0.499999999999999888978L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=5", 0.499999999999999999702L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=5", 0.999999999999999999404L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=5", 0.499999999999999999729L);
+insert("u01<float>(minu32 + uint32_t(a)) a=63", 1.47847458720207214355e-08L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=63", 2.95694917440414428711e-08L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=63", 5.96046447753906250000e-08L);
+insert("u01<double>(minu32 + uint32_t(a)) a=63", 1.47847458720207214355e-08L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=63", 2.95694917440414428711e-08L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=63", 1.47847458720207214355e-08L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=63", 1.47847458720207214355e-08L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=63", 2.95694917440414428711e-08L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=63", 1.47847458720207214355e-08L);
+insert("u01<float>(minu64 + uint64_t(a)) a=63", 3.44234189764147657797e-18L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=63", 6.88468379528295315595e-18L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=63", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=63", 3.44234189764147657797e-18L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=63", 6.88468379528295315595e-18L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=63", 1.11022302462515654042e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=63", 3.44234189764147657797e-18L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=63", 6.88468379528295315595e-18L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=63", 3.41523684332933896712e-18L);
+insert("u01<float>(mini32 + int32_t(a)) a=63", 0.500000000000000000000L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=63", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=63", 0.500000059604644775391L);
+insert("u01<double>(mini32 + int32_t(a)) a=63", 0.500000014784745872021L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=63", -0.999999970430508255959L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=63", 0.500000014784745872021L);
+insert("u01<long double>(mini32 + int32_t(a)) a=63", 0.500000014784745872021L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=63", -0.999999970430508255959L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=63", 0.500000014784745872021L);
+insert("u01<float>(mini64 + int64_t(a)) a=63", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=63", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=63", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=63", 0.500000000000000000000L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=63", -1.00000000000000000000L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=63", 0.500000000000000111022L);
+insert("u01<long double>(mini64 + int64_t(a)) a=63", 0.500000000000000003469L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=63", -0.999999999999999993115L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=63", 0.500000000000000003415L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=63", 1.00000000000000000000L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=63", -2.95694917440414428711e-08L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=63", 0.999999940395355224609L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=63", 0.999999985215254127979L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=63", -2.95694917440414428711e-08L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=63", 0.999999985215254127979L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=63", 0.999999985215254127979L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=63", -2.95694917440414428711e-08L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=63", 0.999999985215254127979L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=63", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=63", -6.88468379528295315595e-18L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=63", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=63", 1.00000000000000000000L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=63", -6.88468379528295315595e-18L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=63", 0.999999999999999888978L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=63", 0.999999999999999996531L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=63", -6.88468379528295315595e-18L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=63", 0.999999999999999996585L);
+insert("u01<float>(maxi32 - int32_t(a)) a=63", 0.500000000000000000000L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=63", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=63", 0.499999940395355224609L);
+insert("u01<double>(maxi32 - int32_t(a)) a=63", 0.499999985215254127979L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=63", 0.999999970430508255959L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=63", 0.499999985215254127979L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=63", 0.499999985215254127979L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=63", 0.999999970430508255959L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=63", 0.499999985215254127979L);
+insert("u01<float>(maxi64 - int64_t(a)) a=63", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=63", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=63", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=63", 0.500000000000000000000L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=63", 1.00000000000000000000L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=63", 0.499999999999999888978L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=63", 0.499999999999999996558L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=63", 0.999999999999999993115L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=63", 0.499999999999999996585L);
+insert("u01<float>(minu32 + uint32_t(a)) a=64", 1.50175765156745910645e-08L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=64", 3.00351530313491821289e-08L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=64", 5.96046447753906250000e-08L);
+insert("u01<double>(minu32 + uint32_t(a)) a=64", 1.50175765156745910645e-08L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=64", 3.00351530313491821289e-08L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=64", 1.50175765156745910645e-08L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=64", 1.50175765156745910645e-08L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=64", 3.00351530313491821289e-08L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=64", 1.50175765156745910645e-08L);
+insert("u01<float>(minu64 + uint64_t(a)) a=64", 3.49655200626575179967e-18L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=64", 6.99310401253150359935e-18L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=64", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=64", 3.49655200626575179967e-18L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=64", 6.99310401253150359935e-18L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=64", 1.11022302462515654042e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=64", 3.49655200626575179967e-18L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=64", 6.99310401253150359935e-18L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=64", 3.52365706057788941052e-18L);
+insert("u01<float>(mini32 + int32_t(a)) a=64", 0.500000000000000000000L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=64", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=64", 0.500000059604644775391L);
+insert("u01<double>(mini32 + int32_t(a)) a=64", 0.500000015017576515675L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=64", -0.999999969964846968651L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=64", 0.500000015017576515675L);
+insert("u01<long double>(mini32 + int32_t(a)) a=64", 0.500000015017576515675L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=64", -0.999999969964846968651L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=64", 0.500000015017576515675L);
+insert("u01<float>(mini64 + int64_t(a)) a=64", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=64", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=64", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=64", 0.500000000000000000000L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=64", -1.00000000000000000000L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=64", 0.500000000000000111022L);
+insert("u01<long double>(mini64 + int64_t(a)) a=64", 0.500000000000000003469L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=64", -0.999999999999999993007L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=64", 0.500000000000000003524L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=64", 1.00000000000000000000L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=64", -3.00351530313491821289e-08L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=64", 0.999999940395355224609L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=64", 0.999999984982423484325L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=64", -3.00351530313491821289e-08L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=64", 0.999999984982423484325L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=64", 0.999999984982423484325L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=64", -3.00351530313491821289e-08L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=64", 0.999999984982423484325L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=64", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=64", -6.99310401253150359935e-18L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=64", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=64", 1.00000000000000000000L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=64", -6.99310401253150359935e-18L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=64", 0.999999999999999888978L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=64", 0.999999999999999996531L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=64", -6.99310401253150359935e-18L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=64", 0.999999999999999996476L);
+insert("u01<float>(maxi32 - int32_t(a)) a=64", 0.499999970197677612305L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=64", 0.999999940395355224609L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=64", 0.499999940395355224609L);
+insert("u01<double>(maxi32 - int32_t(a)) a=64", 0.499999984982423484325L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=64", 0.999999969964846968651L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=64", 0.499999984982423484325L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=64", 0.499999984982423484325L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=64", 0.999999969964846968651L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=64", 0.499999984982423484325L);
+insert("u01<float>(maxi64 - int64_t(a)) a=64", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=64", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=64", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=64", 0.500000000000000000000L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=64", 1.00000000000000000000L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=64", 0.499999999999999888978L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=64", 0.499999999999999996503L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=64", 0.999999999999999993007L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=64", 0.499999999999999996476L);
+insert("u01<float>(minu32 + uint32_t(a)) a=65", 1.52504071593284606934e-08L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=65", 3.05008143186569213867e-08L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=65", 5.96046447753906250000e-08L);
+insert("u01<double>(minu32 + uint32_t(a)) a=65", 1.52504071593284606934e-08L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=65", 3.05008143186569213867e-08L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=65", 1.52504071593284606934e-08L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=65", 1.52504071593284606934e-08L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=65", 3.05008143186569213867e-08L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=65", 1.52504071593284606934e-08L);
+insert("u01<float>(minu64 + uint64_t(a)) a=65", 3.55076211489002702137e-18L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=65", 7.10152422978005404275e-18L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=65", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=65", 3.55076211489002702137e-18L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=65", 7.10152422978005404275e-18L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=65", 1.11022302462515654042e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=65", 3.55076211489002702137e-18L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=65", 7.10152422978005404275e-18L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=65", 3.52365706057788941052e-18L);
+insert("u01<float>(mini32 + int32_t(a)) a=65", 0.500000000000000000000L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=65", -0.999999940395355224609L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=65", 0.500000059604644775391L);
+insert("u01<double>(mini32 + int32_t(a)) a=65", 0.500000015250407159328L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=65", -0.999999969499185681343L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=65", 0.500000015250407159328L);
+insert("u01<long double>(mini32 + int32_t(a)) a=65", 0.500000015250407159328L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=65", -0.999999969499185681343L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=65", 0.500000015250407159328L);
+insert("u01<float>(mini64 + int64_t(a)) a=65", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=65", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=65", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=65", 0.500000000000000000000L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=65", -1.00000000000000000000L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=65", 0.500000000000000111022L);
+insert("u01<long double>(mini64 + int64_t(a)) a=65", 0.500000000000000003578L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=65", -0.999999999999999992898L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=65", 0.500000000000000003524L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=65", 1.00000000000000000000L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=65", -3.05008143186569213867e-08L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=65", 0.999999940395355224609L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=65", 0.999999984749592840672L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=65", -3.05008143186569213867e-08L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=65", 0.999999984749592840672L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=65", 0.999999984749592840672L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=65", -3.05008143186569213867e-08L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=65", 0.999999984749592840672L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=65", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=65", -7.10152422978005404275e-18L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=65", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=65", 1.00000000000000000000L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=65", -7.10152422978005404275e-18L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=65", 0.999999999999999888978L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=65", 0.999999999999999996422L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=65", -7.10152422978005404275e-18L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=65", 0.999999999999999996476L);
+insert("u01<float>(maxi32 - int32_t(a)) a=65", 0.499999970197677612305L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=65", 0.999999940395355224609L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=65", 0.499999940395355224609L);
+insert("u01<double>(maxi32 - int32_t(a)) a=65", 0.499999984749592840672L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=65", 0.999999969499185681343L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=65", 0.499999984749592840672L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=65", 0.499999984749592840672L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=65", 0.999999969499185681343L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=65", 0.499999984749592840672L);
+insert("u01<float>(maxi64 - int64_t(a)) a=65", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=65", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=65", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=65", 0.500000000000000000000L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=65", 1.00000000000000000000L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=65", 0.499999999999999888978L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=65", 0.499999999999999996449L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=65", 0.999999999999999992898L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=65", 0.499999999999999996476L);
+insert("u01<float>(minu32 + uint32_t(a)) a=127", 2.96859070658683776855e-08L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=127", 5.93718141317367553711e-08L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=127", 5.96046447753906250000e-08L);
+insert("u01<double>(minu32 + uint32_t(a)) a=127", 2.96859070658683776855e-08L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=127", 5.93718141317367553711e-08L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=127", 2.96859070658683776855e-08L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=127", 2.96859070658683776855e-08L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=127", 5.93718141317367553711e-08L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=127", 2.96859070658683776855e-08L);
+insert("u01<float>(minu64 + uint64_t(a)) a=127", 6.91178884959509076680e-18L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=127", 1.38235776991901815336e-17L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=127", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=127", 6.91178884959509076680e-18L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=127", 1.38235776991901815336e-17L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=127", 1.11022302462515654042e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=127", 6.91178884959509076680e-18L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=127", 1.38235776991901815336e-17L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=127", 6.88468379528295315595e-18L);
+insert("u01<float>(mini32 + int32_t(a)) a=127", 0.500000000000000000000L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=127", -0.999999940395355224609L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=127", 0.500000059604644775391L);
+insert("u01<double>(mini32 + int32_t(a)) a=127", 0.500000029685907065868L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=127", -0.999999940628185868263L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=127", 0.500000029685907065868L);
+insert("u01<long double>(mini32 + int32_t(a)) a=127", 0.500000029685907065868L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=127", -0.999999940628185868263L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=127", 0.500000029685907065868L);
+insert("u01<float>(mini64 + int64_t(a)) a=127", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=127", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=127", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=127", 0.500000000000000000000L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=127", -1.00000000000000000000L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=127", 0.500000000000000111022L);
+insert("u01<long double>(mini64 + int64_t(a)) a=127", 0.500000000000000006939L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=127", -0.999999999999999986176L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=127", 0.500000000000000006885L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=127", 1.00000000000000000000L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=127", -5.93718141317367553711e-08L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=127", 0.999999940395355224609L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=127", 0.999999970314092934132L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=127", -5.93718141317367553711e-08L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=127", 0.999999970314092934132L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=127", 0.999999970314092934132L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=127", -5.93718141317367553711e-08L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=127", 0.999999970314092934132L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=127", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=127", -1.38235776991901815336e-17L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=127", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=127", 1.00000000000000000000L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=127", -1.38235776991901815336e-17L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=127", 0.999999999999999888978L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=127", 0.999999999999999993061L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=127", -1.38235776991901815336e-17L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=127", 0.999999999999999993115L);
+insert("u01<float>(maxi32 - int32_t(a)) a=127", 0.499999970197677612305L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=127", 0.999999940395355224609L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=127", 0.499999940395355224609L);
+insert("u01<double>(maxi32 - int32_t(a)) a=127", 0.499999970314092934132L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=127", 0.999999940628185868263L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=127", 0.499999970314092934132L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=127", 0.499999970314092934132L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=127", 0.999999940628185868263L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=127", 0.499999970314092934132L);
+insert("u01<float>(maxi64 - int64_t(a)) a=127", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=127", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=127", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=127", 0.500000000000000000000L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=127", 1.00000000000000000000L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=127", 0.499999999999999888978L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=127", 0.499999999999999993088L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=127", 0.999999999999999986176L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=127", 0.499999999999999993115L);
+insert("u01<float>(minu32 + uint32_t(a)) a=128", 2.99187377095222473145e-08L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=128", 5.98374754190444946289e-08L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=128", 5.96046447753906250000e-08L);
+insert("u01<double>(minu32 + uint32_t(a)) a=128", 2.99187377095222473145e-08L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=128", 5.98374754190444946289e-08L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=128", 2.99187377095222473145e-08L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=128", 2.99187377095222473145e-08L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=128", 5.98374754190444946289e-08L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=128", 2.99187377095222473145e-08L);
+insert("u01<float>(minu64 + uint64_t(a)) a=128", 6.96599895821936598850e-18L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=128", 1.39319979164387319770e-17L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=128", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=128", 6.96599895821936598850e-18L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=128", 1.39319979164387319770e-17L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=128", 1.11022302462515654042e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=128", 6.96599895821936598850e-18L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=128", 1.39319979164387319770e-17L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=128", 6.99310401253150359935e-18L);
+insert("u01<float>(mini32 + int32_t(a)) a=128", 0.500000000000000000000L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=128", -0.999999940395355224609L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=128", 0.500000059604644775391L);
+insert("u01<double>(mini32 + int32_t(a)) a=128", 0.500000029918737709522L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=128", -0.999999940162524580956L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=128", 0.500000029918737709522L);
+insert("u01<long double>(mini32 + int32_t(a)) a=128", 0.500000029918737709522L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=128", -0.999999940162524580956L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=128", 0.500000029918737709522L);
+insert("u01<float>(mini64 + int64_t(a)) a=128", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=128", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=128", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=128", 0.500000000000000000000L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=128", -1.00000000000000000000L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=128", 0.500000000000000111022L);
+insert("u01<long double>(mini64 + int64_t(a)) a=128", 0.500000000000000006939L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=128", -0.999999999999999986068L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=128", 0.500000000000000006993L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=128", 0.999999940395355224609L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=128", -5.98374754190444946289e-08L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=128", 0.999999940395355224609L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=128", 0.999999970081262290478L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=128", -5.98374754190444946289e-08L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=128", 0.999999970081262290478L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=128", 0.999999970081262290478L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=128", -5.98374754190444946289e-08L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=128", 0.999999970081262290478L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=128", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=128", -1.39319979164387319770e-17L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=128", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=128", 1.00000000000000000000L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=128", -1.39319979164387319770e-17L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=128", 0.999999999999999888978L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=128", 0.999999999999999993061L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=128", -1.39319979164387319770e-17L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=128", 0.999999999999999993007L);
+insert("u01<float>(maxi32 - int32_t(a)) a=128", 0.499999970197677612305L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=128", 0.999999940395355224609L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=128", 0.499999940395355224609L);
+insert("u01<double>(maxi32 - int32_t(a)) a=128", 0.499999970081262290478L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=128", 0.999999940162524580956L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=128", 0.499999970081262290478L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=128", 0.499999970081262290478L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=128", 0.999999940162524580956L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=128", 0.499999970081262290478L);
+insert("u01<float>(maxi64 - int64_t(a)) a=128", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=128", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=128", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=128", 0.500000000000000000000L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=128", 1.00000000000000000000L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=128", 0.499999999999999888978L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=128", 0.499999999999999993034L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=128", 0.999999999999999986068L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=128", 0.499999999999999993007L);
+insert("u01<float>(minu32 + uint32_t(a)) a=129", 3.01515683531761169434e-08L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=129", 6.03031367063522338867e-08L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=129", 5.96046447753906250000e-08L);
+insert("u01<double>(minu32 + uint32_t(a)) a=129", 3.01515683531761169434e-08L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=129", 6.03031367063522338867e-08L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=129", 3.01515683531761169434e-08L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=129", 3.01515683531761169434e-08L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=129", 6.03031367063522338867e-08L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=129", 3.01515683531761169434e-08L);
+insert("u01<float>(minu64 + uint64_t(a)) a=129", 7.02020906684364121020e-18L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=129", 1.40404181336872824204e-17L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=129", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=129", 7.02020906684364121020e-18L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=129", 1.40404181336872824204e-17L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=129", 1.11022302462515654042e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=129", 7.02020906684364121020e-18L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=129", 1.40404181336872824204e-17L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=129", 6.99310401253150359935e-18L);
+insert("u01<float>(mini32 + int32_t(a)) a=129", 0.500000059604644775391L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=129", -0.999999940395355224609L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=129", 0.500000059604644775391L);
+insert("u01<double>(mini32 + int32_t(a)) a=129", 0.500000030151568353176L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=129", -0.999999939696863293648L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=129", 0.500000030151568353176L);
+insert("u01<long double>(mini32 + int32_t(a)) a=129", 0.500000030151568353176L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=129", -0.999999939696863293648L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=129", 0.500000030151568353176L);
+insert("u01<float>(mini64 + int64_t(a)) a=129", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=129", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=129", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=129", 0.500000000000000000000L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=129", -1.00000000000000000000L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=129", 0.500000000000000111022L);
+insert("u01<long double>(mini64 + int64_t(a)) a=129", 0.500000000000000007047L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=129", -0.999999999999999985960L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=129", 0.500000000000000006993L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=129", 0.999999940395355224609L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=129", -6.03031367063522338867e-08L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=129", 0.999999940395355224609L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=129", 0.999999969848431646824L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=129", -6.03031367063522338867e-08L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=129", 0.999999969848431646824L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=129", 0.999999969848431646824L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=129", -6.03031367063522338867e-08L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=129", 0.999999969848431646824L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=129", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=129", -1.40404181336872824204e-17L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=129", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=129", 1.00000000000000000000L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=129", -1.40404181336872824204e-17L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=129", 0.999999999999999888978L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=129", 0.999999999999999992953L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=129", -1.40404181336872824204e-17L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=129", 0.999999999999999993007L);
+insert("u01<float>(maxi32 - int32_t(a)) a=129", 0.499999970197677612305L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=129", 0.999999940395355224609L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=129", 0.499999940395355224609L);
+insert("u01<double>(maxi32 - int32_t(a)) a=129", 0.499999969848431646824L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=129", 0.999999939696863293648L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=129", 0.499999969848431646824L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=129", 0.499999969848431646824L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=129", 0.999999939696863293648L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=129", 0.499999969848431646824L);
+insert("u01<float>(maxi64 - int64_t(a)) a=129", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=129", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=129", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=129", 0.500000000000000000000L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=129", 1.00000000000000000000L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=129", 0.499999999999999888978L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=129", 0.499999999999999992980L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=129", 0.999999999999999985960L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=129", 0.499999999999999993007L);
+insert("u01<float>(minu32 + uint32_t(a)) a=191", 4.45870682597160339355e-08L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=191", 8.91741365194320678711e-08L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=191", 5.96046447753906250000e-08L);
+insert("u01<double>(minu32 + uint32_t(a)) a=191", 4.45870682597160339355e-08L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=191", 8.91741365194320678711e-08L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=191", 4.45870682597160339355e-08L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=191", 4.45870682597160339355e-08L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=191", 8.91741365194320678711e-08L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=191", 4.45870682597160339355e-08L);
+insert("u01<float>(minu64 + uint64_t(a)) a=191", 1.03812358015487049556e-17L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=191", 2.07624716030974099112e-17L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=191", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=191", 1.03812358015487049556e-17L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=191", 2.07624716030974099112e-17L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=191", 1.11022302462515654042e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=191", 1.03812358015487049556e-17L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=191", 2.07624716030974099112e-17L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=191", 1.03541307472365673448e-17L);
+insert("u01<float>(mini32 + int32_t(a)) a=191", 0.500000059604644775391L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=191", -0.999999940395355224609L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=191", 0.500000059604644775391L);
+insert("u01<double>(mini32 + int32_t(a)) a=191", 0.500000044587068259716L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=191", -0.999999910825863480568L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=191", 0.500000044587068259716L);
+insert("u01<long double>(mini32 + int32_t(a)) a=191", 0.500000044587068259716L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=191", -0.999999910825863480568L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=191", 0.500000044587068259716L);
+insert("u01<float>(mini64 + int64_t(a)) a=191", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=191", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=191", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=191", 0.500000000000000000000L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=191", -1.00000000000000000000L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=191", 0.500000000000000111022L);
+insert("u01<long double>(mini64 + int64_t(a)) a=191", 0.500000000000000010408L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=191", -0.999999999999999979238L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=191", 0.500000000000000010354L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=191", 0.999999940395355224609L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=191", -8.91741365194320678711e-08L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=191", 0.999999940395355224609L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=191", 0.999999955412931740284L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=191", -8.91741365194320678711e-08L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=191", 0.999999955412931740284L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=191", 0.999999955412931740284L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=191", -8.91741365194320678711e-08L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=191", 0.999999955412931740284L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=191", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=191", -2.07624716030974099112e-17L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=191", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=191", 1.00000000000000000000L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=191", -2.07624716030974099112e-17L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=191", 0.999999999999999888978L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=191", 0.999999999999999989592L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=191", -2.07624716030974099112e-17L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=191", 0.999999999999999989646L);
+insert("u01<float>(maxi32 - int32_t(a)) a=191", 0.499999940395355224609L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=191", 0.999999880790710449219L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=191", 0.499999940395355224609L);
+insert("u01<double>(maxi32 - int32_t(a)) a=191", 0.499999955412931740284L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=191", 0.999999910825863480568L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=191", 0.499999955412931740284L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=191", 0.499999955412931740284L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=191", 0.999999910825863480568L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=191", 0.499999955412931740284L);
+insert("u01<float>(maxi64 - int64_t(a)) a=191", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=191", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=191", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=191", 0.500000000000000000000L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=191", 1.00000000000000000000L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=191", 0.499999999999999888978L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=191", 0.499999999999999989619L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=191", 0.999999999999999979238L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=191", 0.499999999999999989646L);
+insert("u01<float>(minu32 + uint32_t(a)) a=192", 4.48198989033699035645e-08L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=192", 8.96397978067398071289e-08L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=192", 5.96046447753906250000e-08L);
+insert("u01<double>(minu32 + uint32_t(a)) a=192", 4.48198989033699035645e-08L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=192", 8.96397978067398071289e-08L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=192", 4.48198989033699035645e-08L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=192", 4.48198989033699035645e-08L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=192", 8.96397978067398071289e-08L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=192", 4.48198989033699035645e-08L);
+insert("u01<float>(minu64 + uint64_t(a)) a=192", 1.04354459101729801773e-17L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=192", 2.08708918203459603546e-17L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=192", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=192", 1.04354459101729801773e-17L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=192", 2.08708918203459603546e-17L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=192", 1.11022302462515654042e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=192", 1.04354459101729801773e-17L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=192", 2.08708918203459603546e-17L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=192", 1.04625509644851177882e-17L);
+insert("u01<float>(mini32 + int32_t(a)) a=192", 0.500000059604644775391L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=192", -0.999999880790710449219L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=192", 0.500000059604644775391L);
+insert("u01<double>(mini32 + int32_t(a)) a=192", 0.500000044819898903370L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=192", -0.999999910360202193260L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=192", 0.500000044819898903370L);
+insert("u01<long double>(mini32 + int32_t(a)) a=192", 0.500000044819898903370L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=192", -0.999999910360202193260L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=192", 0.500000044819898903370L);
+insert("u01<float>(mini64 + int64_t(a)) a=192", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=192", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=192", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=192", 0.500000000000000000000L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=192", -1.00000000000000000000L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=192", 0.500000000000000111022L);
+insert("u01<long double>(mini64 + int64_t(a)) a=192", 0.500000000000000010408L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=192", -0.999999999999999979129L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=192", 0.500000000000000010463L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=192", 0.999999940395355224609L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=192", -8.96397978067398071289e-08L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=192", 0.999999940395355224609L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=192", 0.999999955180101096630L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=192", -8.96397978067398071289e-08L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=192", 0.999999955180101096630L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=192", 0.999999955180101096630L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=192", -8.96397978067398071289e-08L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=192", 0.999999955180101096630L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=192", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=192", -2.08708918203459603546e-17L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=192", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=192", 1.00000000000000000000L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=192", -2.08708918203459603546e-17L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=192", 0.999999999999999888978L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=192", 0.999999999999999989592L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=192", -2.08708918203459603546e-17L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=192", 0.999999999999999989537L);
+insert("u01<float>(maxi32 - int32_t(a)) a=192", 0.499999940395355224609L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=192", 0.999999880790710449219L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=192", 0.499999940395355224609L);
+insert("u01<double>(maxi32 - int32_t(a)) a=192", 0.499999955180101096630L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=192", 0.999999910360202193260L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=192", 0.499999955180101096630L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=192", 0.499999955180101096630L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=192", 0.999999910360202193260L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=192", 0.499999955180101096630L);
+insert("u01<float>(maxi64 - int64_t(a)) a=192", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=192", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=192", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=192", 0.500000000000000000000L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=192", 1.00000000000000000000L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=192", 0.499999999999999888978L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=192", 0.499999999999999989565L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=192", 0.999999999999999979129L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=192", 0.499999999999999989537L);
+insert("u01<float>(minu32 + uint32_t(a)) a=193", 4.50527295470237731934e-08L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=193", 9.01054590940475463867e-08L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=193", 5.96046447753906250000e-08L);
+insert("u01<double>(minu32 + uint32_t(a)) a=193", 4.50527295470237731934e-08L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=193", 9.01054590940475463867e-08L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=193", 4.50527295470237731934e-08L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=193", 4.50527295470237731934e-08L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=193", 9.01054590940475463867e-08L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=193", 4.50527295470237731934e-08L);
+insert("u01<float>(minu64 + uint64_t(a)) a=193", 1.04896560187972553990e-17L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=193", 2.09793120375945107980e-17L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=193", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=193", 1.04896560187972553990e-17L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=193", 2.09793120375945107980e-17L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=193", 1.11022302462515654042e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=193", 1.04896560187972553990e-17L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=193", 2.09793120375945107980e-17L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=193", 1.04625509644851177882e-17L);
+insert("u01<float>(mini32 + int32_t(a)) a=193", 0.500000059604644775391L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=193", -0.999999880790710449219L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=193", 0.500000059604644775391L);
+insert("u01<double>(mini32 + int32_t(a)) a=193", 0.500000045052729547024L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=193", -0.999999909894540905952L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=193", 0.500000045052729547024L);
+insert("u01<long double>(mini32 + int32_t(a)) a=193", 0.500000045052729547024L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=193", -0.999999909894540905952L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=193", 0.500000045052729547024L);
+insert("u01<float>(mini64 + int64_t(a)) a=193", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=193", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=193", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=193", 0.500000000000000000000L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=193", -1.00000000000000000000L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=193", 0.500000000000000111022L);
+insert("u01<long double>(mini64 + int64_t(a)) a=193", 0.500000000000000010517L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=193", -0.999999999999999979021L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=193", 0.500000000000000010463L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=193", 0.999999940395355224609L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=193", -9.01054590940475463867e-08L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=193", 0.999999940395355224609L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=193", 0.999999954947270452976L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=193", -9.01054590940475463867e-08L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=193", 0.999999954947270452976L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=193", 0.999999954947270452976L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=193", -9.01054590940475463867e-08L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=193", 0.999999954947270452976L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=193", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=193", -2.09793120375945107980e-17L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=193", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=193", 1.00000000000000000000L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=193", -2.09793120375945107980e-17L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=193", 0.999999999999999888978L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=193", 0.999999999999999989483L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=193", -2.09793120375945107980e-17L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=193", 0.999999999999999989537L);
+insert("u01<float>(maxi32 - int32_t(a)) a=193", 0.499999940395355224609L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=193", 0.999999880790710449219L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=193", 0.499999940395355224609L);
+insert("u01<double>(maxi32 - int32_t(a)) a=193", 0.499999954947270452976L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=193", 0.999999909894540905952L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=193", 0.499999954947270452976L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=193", 0.499999954947270452976L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=193", 0.999999909894540905952L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=193", 0.499999954947270452976L);
+insert("u01<float>(maxi64 - int64_t(a)) a=193", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=193", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=193", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=193", 0.500000000000000000000L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=193", 1.00000000000000000000L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=193", 0.499999999999999888978L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=193", 0.499999999999999989510L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=193", 0.999999999999999979021L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=193", 0.499999999999999989537L);
+insert("u01<float>(minu32 + uint32_t(a)) a=255", 5.94882294535636901855e-08L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=255", 1.18976458907127380371e-07L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=255", 5.96046447753906250000e-08L);
+insert("u01<double>(minu32 + uint32_t(a)) a=255", 5.94882294535636901855e-08L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=255", 1.18976458907127380371e-07L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=255", 5.94882294535636901855e-08L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=255", 5.94882294535636901855e-08L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=255", 1.18976458907127380371e-07L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=255", 5.94882294535636901855e-08L);
+insert("u01<float>(minu64 + uint64_t(a)) a=255", 1.38506827535023191444e-17L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=255", 2.77013655070046382889e-17L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=255", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=255", 1.38506827535023191444e-17L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=255", 2.77013655070046382889e-17L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=255", 1.11022302462515654042e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=255", 1.38506827535023191444e-17L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=255", 2.77013655070046382889e-17L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=255", 1.38235776991901815336e-17L);
+insert("u01<float>(mini32 + int32_t(a)) a=255", 0.500000059604644775391L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=255", -0.999999880790710449219L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=255", 0.500000059604644775391L);
+insert("u01<double>(mini32 + int32_t(a)) a=255", 0.500000059488229453564L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=255", -0.999999881023541092873L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=255", 0.500000059488229453564L);
+insert("u01<long double>(mini32 + int32_t(a)) a=255", 0.500000059488229453564L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=255", -0.999999881023541092873L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=255", 0.500000059488229453564L);
+insert("u01<float>(mini64 + int64_t(a)) a=255", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=255", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=255", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=255", 0.500000000000000000000L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=255", -1.00000000000000000000L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=255", 0.500000000000000111022L);
+insert("u01<long double>(mini64 + int64_t(a)) a=255", 0.500000000000000013878L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=255", -0.999999999999999972299L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=255", 0.500000000000000013824L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=255", 0.999999940395355224609L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=255", -1.18976458907127380371e-07L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=255", 0.999999940395355224609L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=255", 0.999999940511770546436L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=255", -1.18976458907127380371e-07L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=255", 0.999999940511770546436L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=255", 0.999999940511770546436L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=255", -1.18976458907127380371e-07L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=255", 0.999999940511770546436L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=255", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=255", -2.77013655070046382889e-17L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=255", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=255", 1.00000000000000000000L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=255", -2.77013655070046382889e-17L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=255", 0.999999999999999888978L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=255", 0.999999999999999986122L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=255", -2.77013655070046382889e-17L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=255", 0.999999999999999986176L);
+insert("u01<float>(maxi32 - int32_t(a)) a=255", 0.499999940395355224609L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=255", 0.999999880790710449219L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=255", 0.499999940395355224609L);
+insert("u01<double>(maxi32 - int32_t(a)) a=255", 0.499999940511770546436L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=255", 0.999999881023541092873L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=255", 0.499999940511770546436L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=255", 0.499999940511770546436L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=255", 0.999999881023541092873L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=255", 0.499999940511770546436L);
+insert("u01<float>(maxi64 - int64_t(a)) a=255", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=255", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=255", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=255", 0.500000000000000000000L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=255", 1.00000000000000000000L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=255", 0.499999999999999888978L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=255", 0.499999999999999986149L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=255", 0.999999999999999972299L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=255", 0.499999999999999986176L);
+insert("u01<float>(minu32 + uint32_t(a)) a=256", 5.97210600972175598145e-08L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=256", 1.19442120194435119629e-07L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=256", 5.96046447753906250000e-08L);
+insert("u01<double>(minu32 + uint32_t(a)) a=256", 5.97210600972175598145e-08L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=256", 1.19442120194435119629e-07L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=256", 5.97210600972175598145e-08L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=256", 5.97210600972175598145e-08L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=256", 1.19442120194435119629e-07L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=256", 5.97210600972175598145e-08L);
+insert("u01<float>(minu64 + uint64_t(a)) a=256", 1.39048928621265943661e-17L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=256", 2.78097857242531887323e-17L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=256", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=256", 1.39048928621265943661e-17L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=256", 2.78097857242531887323e-17L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=256", 1.11022302462515654042e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=256", 1.39048928621265943661e-17L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=256", 2.78097857242531887323e-17L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=256", 1.39319979164387319770e-17L);
+insert("u01<float>(mini32 + int32_t(a)) a=256", 0.500000059604644775391L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=256", -0.999999880790710449219L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=256", 0.500000059604644775391L);
+insert("u01<double>(mini32 + int32_t(a)) a=256", 0.500000059721060097218L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=256", -0.999999880557879805565L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=256", 0.500000059721060097218L);
+insert("u01<long double>(mini32 + int32_t(a)) a=256", 0.500000059721060097218L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=256", -0.999999880557879805565L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=256", 0.500000059721060097218L);
+insert("u01<float>(mini64 + int64_t(a)) a=256", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=256", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=256", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=256", 0.500000000000000000000L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=256", -1.00000000000000000000L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=256", 0.500000000000000111022L);
+insert("u01<long double>(mini64 + int64_t(a)) a=256", 0.500000000000000013878L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=256", -0.999999999999999972190L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=256", 0.500000000000000013932L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=256", 0.999999940395355224609L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=256", -1.19442120194435119629e-07L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=256", 0.999999940395355224609L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=256", 0.999999940278939902782L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=256", -1.19442120194435119629e-07L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=256", 0.999999940278939902782L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=256", 0.999999940278939902782L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=256", -1.19442120194435119629e-07L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=256", 0.999999940278939902782L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=256", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=256", -2.78097857242531887323e-17L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=256", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=256", 1.00000000000000000000L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=256", -2.78097857242531887323e-17L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=256", 0.999999999999999888978L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=256", 0.999999999999999986122L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=256", -2.78097857242531887323e-17L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=256", 0.999999999999999986068L);
+insert("u01<float>(maxi32 - int32_t(a)) a=256", 0.499999940395355224609L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=256", 0.999999880790710449219L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=256", 0.499999940395355224609L);
+insert("u01<double>(maxi32 - int32_t(a)) a=256", 0.499999940278939902782L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=256", 0.999999880557879805565L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=256", 0.499999940278939902782L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=256", 0.499999940278939902782L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=256", 0.999999880557879805565L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=256", 0.499999940278939902782L);
+insert("u01<float>(maxi64 - int64_t(a)) a=256", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=256", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=256", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=256", 0.500000000000000000000L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=256", 1.00000000000000000000L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=256", 0.499999999999999888978L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=256", 0.499999999999999986095L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=256", 0.999999999999999972190L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=256", 0.499999999999999986068L);
+insert("u01<float>(minu32 + uint32_t(a)) a=257", 5.99538907408714294434e-08L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=257", 1.19907781481742858887e-07L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=257", 5.96046447753906250000e-08L);
+insert("u01<double>(minu32 + uint32_t(a)) a=257", 5.99538907408714294434e-08L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=257", 1.19907781481742858887e-07L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=257", 5.99538907408714294434e-08L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=257", 5.99538907408714294434e-08L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=257", 1.19907781481742858887e-07L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=257", 5.99538907408714294434e-08L);
+insert("u01<float>(minu64 + uint64_t(a)) a=257", 1.39591029707508695878e-17L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=257", 2.79182059415017391757e-17L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=257", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=257", 1.39591029707508695878e-17L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=257", 2.79182059415017391757e-17L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=257", 1.11022302462515654042e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=257", 1.39591029707508695878e-17L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=257", 2.79182059415017391757e-17L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=257", 1.39319979164387319770e-17L);
+insert("u01<float>(mini32 + int32_t(a)) a=257", 0.500000059604644775391L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=257", -0.999999880790710449219L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=257", 0.500000059604644775391L);
+insert("u01<double>(mini32 + int32_t(a)) a=257", 0.500000059953890740871L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=257", -0.999999880092218518257L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=257", 0.500000059953890740871L);
+insert("u01<long double>(mini32 + int32_t(a)) a=257", 0.500000059953890740871L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=257", -0.999999880092218518257L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=257", 0.500000059953890740871L);
+insert("u01<float>(mini64 + int64_t(a)) a=257", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=257", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=257", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=257", 0.500000000000000000000L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=257", -1.00000000000000000000L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=257", 0.500000000000000111022L);
+insert("u01<long double>(mini64 + int64_t(a)) a=257", 0.500000000000000013986L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=257", -0.999999999999999972082L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=257", 0.500000000000000013932L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=257", 0.999999940395355224609L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=257", -1.19907781481742858887e-07L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=257", 0.999999940395355224609L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=257", 0.999999940046109259129L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=257", -1.19907781481742858887e-07L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=257", 0.999999940046109259129L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=257", 0.999999940046109259129L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=257", -1.19907781481742858887e-07L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=257", 0.999999940046109259129L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=257", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=257", -2.79182059415017391757e-17L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=257", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=257", 1.00000000000000000000L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=257", -2.79182059415017391757e-17L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=257", 0.999999999999999888978L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=257", 0.999999999999999986014L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=257", -2.79182059415017391757e-17L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=257", 0.999999999999999986068L);
+insert("u01<float>(maxi32 - int32_t(a)) a=257", 0.499999940395355224609L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=257", 0.999999880790710449219L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=257", 0.499999940395355224609L);
+insert("u01<double>(maxi32 - int32_t(a)) a=257", 0.499999940046109259129L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=257", 0.999999880092218518257L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=257", 0.499999940046109259129L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=257", 0.499999940046109259129L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=257", 0.999999880092218518257L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=257", 0.499999940046109259129L);
+insert("u01<float>(maxi64 - int64_t(a)) a=257", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=257", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=257", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=257", 0.500000000000000000000L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=257", 1.00000000000000000000L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=257", 0.499999999999999888978L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=257", 0.499999999999999986041L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=257", 0.999999999999999972082L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=257", 0.499999999999999986068L);
+insert("u01<float>(minu32 + uint32_t(a)) a=319", 7.43893906474113464355e-08L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=319", 1.48778781294822692871e-07L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=319", 5.96046447753906250000e-08L);
+insert("u01<double>(minu32 + uint32_t(a)) a=319", 7.43893906474113464355e-08L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=319", 1.48778781294822692871e-07L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=319", 7.43893906474113464355e-08L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=319", 7.43893906474113464355e-08L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=319", 1.48778781294822692871e-07L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=319", 7.43893906474113464355e-08L);
+insert("u01<float>(minu64 + uint64_t(a)) a=319", 1.73201297054559333333e-17L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=319", 3.46402594109118666665e-17L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=319", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=319", 1.73201297054559333333e-17L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=319", 3.46402594109118666665e-17L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=319", 1.11022302462515654042e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=319", 1.73201297054559333333e-17L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=319", 3.46402594109118666665e-17L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=319", 1.72930246511437957224e-17L);
+insert("u01<float>(mini32 + int32_t(a)) a=319", 0.500000059604644775391L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=319", -0.999999880790710449219L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=319", 0.500000059604644775391L);
+insert("u01<double>(mini32 + int32_t(a)) a=319", 0.500000074389390647411L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=319", -0.999999851221218705177L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=319", 0.500000074389390647411L);
+insert("u01<long double>(mini32 + int32_t(a)) a=319", 0.500000074389390647411L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=319", -0.999999851221218705177L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=319", 0.500000074389390647411L);
+insert("u01<float>(mini64 + int64_t(a)) a=319", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=319", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=319", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=319", 0.500000000000000000000L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=319", -1.00000000000000000000L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=319", 0.500000000000000111022L);
+insert("u01<long double>(mini64 + int64_t(a)) a=319", 0.500000000000000017347L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=319", -0.999999999999999965360L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=319", 0.500000000000000017293L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=319", 0.999999940395355224609L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=319", -1.48778781294822692871e-07L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=319", 0.999999940395355224609L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=319", 0.999999925610609352589L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=319", -1.48778781294822692871e-07L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=319", 0.999999925610609352589L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=319", 0.999999925610609352589L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=319", -1.48778781294822692871e-07L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=319", 0.999999925610609352589L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=319", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=319", -3.46402594109118666665e-17L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=319", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=319", 1.00000000000000000000L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=319", -3.46402594109118666665e-17L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=319", 0.999999999999999888978L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=319", 0.999999999999999982653L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=319", -3.46402594109118666665e-17L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=319", 0.999999999999999982707L);
+insert("u01<float>(maxi32 - int32_t(a)) a=319", 0.499999940395355224609L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=319", 0.999999880790710449219L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=319", 0.499999940395355224609L);
+insert("u01<double>(maxi32 - int32_t(a)) a=319", 0.499999925610609352589L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=319", 0.999999851221218705177L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=319", 0.499999925610609352589L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=319", 0.499999925610609352589L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=319", 0.999999851221218705177L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=319", 0.499999925610609352589L);
+insert("u01<float>(maxi64 - int64_t(a)) a=319", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=319", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=319", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=319", 0.500000000000000000000L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=319", 1.00000000000000000000L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=319", 0.499999999999999888978L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=319", 0.499999999999999982680L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=319", 0.999999999999999965360L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=319", 0.499999999999999982707L);
+insert("u01<float>(minu32 + uint32_t(a)) a=320", 7.46222212910652160645e-08L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=320", 1.49244442582130432129e-07L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=320", 5.96046447753906250000e-08L);
+insert("u01<double>(minu32 + uint32_t(a)) a=320", 7.46222212910652160645e-08L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=320", 1.49244442582130432129e-07L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=320", 7.46222212910652160645e-08L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=320", 7.46222212910652160645e-08L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=320", 1.49244442582130432129e-07L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=320", 7.46222212910652160645e-08L);
+insert("u01<float>(minu64 + uint64_t(a)) a=320", 1.73743398140802085550e-17L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=320", 3.47486796281604171099e-17L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=320", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=320", 1.73743398140802085550e-17L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=320", 3.47486796281604171099e-17L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=320", 1.11022302462515654042e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=320", 1.73743398140802085550e-17L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=320", 3.47486796281604171099e-17L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=320", 1.74014448683923461658e-17L);
+insert("u01<float>(mini32 + int32_t(a)) a=320", 0.500000059604644775391L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=320", -0.999999880790710449219L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=320", 0.500000059604644775391L);
+insert("u01<double>(mini32 + int32_t(a)) a=320", 0.500000074622221291065L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=320", -0.999999850755557417870L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=320", 0.500000074622221291065L);
+insert("u01<long double>(mini32 + int32_t(a)) a=320", 0.500000074622221291065L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=320", -0.999999850755557417870L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=320", 0.500000074622221291065L);
+insert("u01<float>(mini64 + int64_t(a)) a=320", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=320", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=320", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=320", 0.500000000000000000000L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=320", -1.00000000000000000000L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=320", 0.500000000000000111022L);
+insert("u01<long double>(mini64 + int64_t(a)) a=320", 0.500000000000000017347L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=320", -0.999999999999999965251L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=320", 0.500000000000000017401L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=320", 0.999999940395355224609L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=320", -1.49244442582130432129e-07L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=320", 0.999999940395355224609L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=320", 0.999999925377778708935L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=320", -1.49244442582130432129e-07L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=320", 0.999999925377778708935L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=320", 0.999999925377778708935L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=320", -1.49244442582130432129e-07L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=320", 0.999999925377778708935L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=320", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=320", -3.47486796281604171099e-17L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=320", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=320", 1.00000000000000000000L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=320", -3.47486796281604171099e-17L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=320", 0.999999999999999888978L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=320", 0.999999999999999982653L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=320", -3.47486796281604171099e-17L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=320", 0.999999999999999982599L);
+insert("u01<float>(maxi32 - int32_t(a)) a=320", 0.499999910593032836914L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=320", 0.999999821186065673828L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=320", 0.499999940395355224609L);
+insert("u01<double>(maxi32 - int32_t(a)) a=320", 0.499999925377778708935L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=320", 0.999999850755557417870L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=320", 0.499999925377778708935L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=320", 0.499999925377778708935L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=320", 0.999999850755557417870L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=320", 0.499999925377778708935L);
+insert("u01<float>(maxi64 - int64_t(a)) a=320", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=320", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=320", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=320", 0.500000000000000000000L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=320", 1.00000000000000000000L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=320", 0.499999999999999888978L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=320", 0.499999999999999982626L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=320", 0.999999999999999965251L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=320", 0.499999999999999982599L);
+insert("u01<float>(minu32 + uint32_t(a)) a=321", 7.48550519347190856934e-08L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=321", 1.49710103869438171387e-07L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=321", 5.96046447753906250000e-08L);
+insert("u01<double>(minu32 + uint32_t(a)) a=321", 7.48550519347190856934e-08L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=321", 1.49710103869438171387e-07L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=321", 7.48550519347190856934e-08L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=321", 7.48550519347190856934e-08L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=321", 1.49710103869438171387e-07L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=321", 7.48550519347190856934e-08L);
+insert("u01<float>(minu64 + uint64_t(a)) a=321", 1.74285499227044837767e-17L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=321", 3.48570998454089675533e-17L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=321", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=321", 1.74285499227044837767e-17L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=321", 3.48570998454089675533e-17L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=321", 1.11022302462515654042e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=321", 1.74285499227044837767e-17L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=321", 3.48570998454089675533e-17L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=321", 1.74014448683923461658e-17L);
+insert("u01<float>(mini32 + int32_t(a)) a=321", 0.500000059604644775391L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=321", -0.999999821186065673828L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=321", 0.500000059604644775391L);
+insert("u01<double>(mini32 + int32_t(a)) a=321", 0.500000074855051934719L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=321", -0.999999850289896130562L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=321", 0.500000074855051934719L);
+insert("u01<long double>(mini32 + int32_t(a)) a=321", 0.500000074855051934719L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=321", -0.999999850289896130562L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=321", 0.500000074855051934719L);
+insert("u01<float>(mini64 + int64_t(a)) a=321", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=321", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=321", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=321", 0.500000000000000000000L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=321", -1.00000000000000000000L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=321", 0.500000000000000111022L);
+insert("u01<long double>(mini64 + int64_t(a)) a=321", 0.500000000000000017456L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=321", -0.999999999999999965143L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=321", 0.500000000000000017401L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=321", 0.999999940395355224609L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=321", -1.49710103869438171387e-07L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=321", 0.999999940395355224609L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=321", 0.999999925144948065281L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=321", -1.49710103869438171387e-07L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=321", 0.999999925144948065281L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=321", 0.999999925144948065281L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=321", -1.49710103869438171387e-07L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=321", 0.999999925144948065281L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=321", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=321", -3.48570998454089675533e-17L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=321", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=321", 1.00000000000000000000L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=321", -3.48570998454089675533e-17L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=321", 0.999999999999999888978L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=321", 0.999999999999999982544L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=321", -3.48570998454089675533e-17L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=321", 0.999999999999999982599L);
+insert("u01<float>(maxi32 - int32_t(a)) a=321", 0.499999910593032836914L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=321", 0.999999821186065673828L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=321", 0.499999940395355224609L);
+insert("u01<double>(maxi32 - int32_t(a)) a=321", 0.499999925144948065281L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=321", 0.999999850289896130562L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=321", 0.499999925144948065281L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=321", 0.499999925144948065281L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=321", 0.999999850289896130562L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=321", 0.499999925144948065281L);
+insert("u01<float>(maxi64 - int64_t(a)) a=321", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=321", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=321", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=321", 0.500000000000000000000L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=321", 1.00000000000000000000L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=321", 0.499999999999999888978L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=321", 0.499999999999999982571L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=321", 0.999999999999999965143L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=321", 0.499999999999999982599L);
+insert("u01<float>(minu32 + uint32_t(a)) a=382", 8.90577211976051330566e-08L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=382", 1.78115442395210266113e-07L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=382", 5.96046447753906250000e-08L);
+insert("u01<double>(minu32 + uint32_t(a)) a=382", 8.90577211976051330566e-08L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=382", 1.78115442395210266113e-07L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=382", 8.90577211976051330566e-08L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=382", 8.90577211976051330566e-08L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=382", 1.78115442395210266113e-07L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=382", 8.90577211976051330566e-08L);
+insert("u01<float>(minu64 + uint64_t(a)) a=382", 2.07353665487852723004e-17L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=382", 4.14707330975705446008e-17L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=382", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=382", 2.07353665487852723004e-17L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=382", 4.14707330975705446008e-17L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=382", 1.11022302462515654042e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=382", 2.07353665487852723004e-17L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=382", 4.14707330975705446008e-17L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=382", 2.07624716030974099112e-17L);
+insert("u01<float>(mini32 + int32_t(a)) a=382", 0.500000059604644775391L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=382", -0.999999821186065673828L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=382", 0.500000059604644775391L);
+insert("u01<double>(mini32 + int32_t(a)) a=382", 0.500000089057721197605L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=382", -0.999999821884557604790L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=382", 0.500000089057721197605L);
+insert("u01<long double>(mini32 + int32_t(a)) a=382", 0.500000089057721197605L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=382", -0.999999821884557604790L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=382", 0.500000089057721197605L);
+insert("u01<float>(mini64 + int64_t(a)) a=382", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=382", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=382", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=382", 0.500000000000000000000L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=382", -1.00000000000000000000L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=382", 0.500000000000000111022L);
+insert("u01<long double>(mini64 + int64_t(a)) a=382", 0.500000000000000020708L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=382", -0.999999999999999958529L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=382", 0.500000000000000020762L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=382", 0.999999940395355224609L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=382", -1.78115442395210266113e-07L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=382", 0.999999940395355224609L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=382", 0.999999910942278802395L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=382", -1.78115442395210266113e-07L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=382", 0.999999910942278802395L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=382", 0.999999910942278802395L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=382", -1.78115442395210266113e-07L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=382", 0.999999910942278802395L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=382", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=382", -4.14707330975705446008e-17L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=382", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=382", 1.00000000000000000000L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=382", -4.14707330975705446008e-17L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=382", 0.999999999999999888978L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=382", 0.999999999999999979292L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=382", -4.14707330975705446008e-17L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=382", 0.999999999999999979238L);
+insert("u01<float>(maxi32 - int32_t(a)) a=382", 0.499999910593032836914L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=382", 0.999999821186065673828L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=382", 0.499999940395355224609L);
+insert("u01<double>(maxi32 - int32_t(a)) a=382", 0.499999910942278802395L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=382", 0.999999821884557604790L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=382", 0.499999910942278802395L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=382", 0.499999910942278802395L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=382", 0.999999821884557604790L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=382", 0.499999910942278802395L);
+insert("u01<float>(maxi64 - int64_t(a)) a=382", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=382", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=382", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=382", 0.500000000000000000000L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=382", 1.00000000000000000000L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=382", 0.499999999999999888978L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=382", 0.499999999999999979265L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=382", 0.999999999999999958529L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=382", 0.499999999999999979238L);
+insert("u01<float>(minu32 + uint32_t(a)) a=383", 8.92905518412590026855e-08L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=383", 1.78581103682518005371e-07L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=383", 5.96046447753906250000e-08L);
+insert("u01<double>(minu32 + uint32_t(a)) a=383", 8.92905518412590026855e-08L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=383", 1.78581103682518005371e-07L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=383", 8.92905518412590026855e-08L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=383", 8.92905518412590026855e-08L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=383", 1.78581103682518005371e-07L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=383", 8.92905518412590026855e-08L);
+insert("u01<float>(minu64 + uint64_t(a)) a=383", 2.07895766574095475221e-17L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=383", 4.15791533148190950442e-17L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=383", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=383", 2.07895766574095475221e-17L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=383", 4.15791533148190950442e-17L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=383", 1.11022302462515654042e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=383", 2.07895766574095475221e-17L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=383", 4.15791533148190950442e-17L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=383", 2.07624716030974099112e-17L);
+insert("u01<float>(mini32 + int32_t(a)) a=383", 0.500000059604644775391L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=383", -0.999999821186065673828L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=383", 0.500000059604644775391L);
+insert("u01<double>(mini32 + int32_t(a)) a=383", 0.500000089290551841259L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=383", -0.999999821418896317482L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=383", 0.500000089290551841259L);
+insert("u01<long double>(mini32 + int32_t(a)) a=383", 0.500000089290551841259L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=383", -0.999999821418896317482L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=383", 0.500000089290551841259L);
+insert("u01<float>(mini64 + int64_t(a)) a=383", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=383", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=383", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=383", 0.500000000000000000000L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=383", -1.00000000000000000000L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=383", 0.500000000000000111022L);
+insert("u01<long double>(mini64 + int64_t(a)) a=383", 0.500000000000000020817L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=383", -0.999999999999999958421L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=383", 0.500000000000000020762L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=383", 0.999999880790710449219L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=383", -1.78581103682518005371e-07L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=383", 0.999999940395355224609L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=383", 0.999999910709448158741L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=383", -1.78581103682518005371e-07L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=383", 0.999999910709448158741L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=383", 0.999999910709448158741L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=383", -1.78581103682518005371e-07L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=383", 0.999999910709448158741L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=383", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=383", -4.15791533148190950442e-17L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=383", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=383", 1.00000000000000000000L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=383", -4.15791533148190950442e-17L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=383", 0.999999999999999888978L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=383", 0.999999999999999979183L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=383", -4.15791533148190950442e-17L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=383", 0.999999999999999979238L);
+insert("u01<float>(maxi32 - int32_t(a)) a=383", 0.499999910593032836914L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=383", 0.999999821186065673828L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=383", 0.499999940395355224609L);
+insert("u01<double>(maxi32 - int32_t(a)) a=383", 0.499999910709448158741L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=383", 0.999999821418896317482L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=383", 0.499999910709448158741L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=383", 0.499999910709448158741L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=383", 0.999999821418896317482L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=383", 0.499999910709448158741L);
+insert("u01<float>(maxi64 - int64_t(a)) a=383", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=383", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=383", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=383", 0.500000000000000000000L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=383", 1.00000000000000000000L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=383", 0.499999999999999888978L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=383", 0.499999999999999979210L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=383", 0.999999999999999958421L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=383", 0.499999999999999979238L);
+insert("u01<float>(minu32 + uint32_t(a)) a=384", 8.95233824849128723145e-08L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=384", 1.79046764969825744629e-07L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=384", 5.96046447753906250000e-08L);
+insert("u01<double>(minu32 + uint32_t(a)) a=384", 8.95233824849128723145e-08L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=384", 1.79046764969825744629e-07L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=384", 8.95233824849128723145e-08L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=384", 8.95233824849128723145e-08L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=384", 1.79046764969825744629e-07L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=384", 8.95233824849128723145e-08L);
+insert("u01<float>(minu64 + uint64_t(a)) a=384", 2.08437867660338227438e-17L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=384", 4.16875735320676454876e-17L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=384", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=384", 2.08437867660338227438e-17L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=384", 4.16875735320676454876e-17L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=384", 1.11022302462515654042e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=384", 2.08437867660338227438e-17L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=384", 4.16875735320676454876e-17L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=384", 2.08708918203459603546e-17L);
+insert("u01<float>(mini32 + int32_t(a)) a=384", 0.500000119209289550781L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=384", -0.999999821186065673828L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=384", 0.500000059604644775391L);
+insert("u01<double>(mini32 + int32_t(a)) a=384", 0.500000089523382484913L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=384", -0.999999820953235030174L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=384", 0.500000089523382484913L);
+insert("u01<long double>(mini32 + int32_t(a)) a=384", 0.500000089523382484913L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=384", -0.999999820953235030174L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=384", 0.500000089523382484913L);
+insert("u01<float>(mini64 + int64_t(a)) a=384", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=384", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=384", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=384", 0.500000000000000000000L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=384", -1.00000000000000000000L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=384", 0.500000000000000111022L);
+insert("u01<long double>(mini64 + int64_t(a)) a=384", 0.500000000000000020817L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=384", -0.999999999999999958312L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=384", 0.500000000000000020871L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=384", 0.999999880790710449219L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=384", -1.79046764969825744629e-07L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=384", 0.999999940395355224609L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=384", 0.999999910476617515087L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=384", -1.79046764969825744629e-07L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=384", 0.999999910476617515087L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=384", 0.999999910476617515087L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=384", -1.79046764969825744629e-07L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=384", 0.999999910476617515087L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=384", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=384", -4.16875735320676454876e-17L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=384", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=384", 1.00000000000000000000L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=384", -4.16875735320676454876e-17L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=384", 0.999999999999999888978L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=384", 0.999999999999999979183L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=384", -4.16875735320676454876e-17L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=384", 0.999999999999999979129L);
+insert("u01<float>(maxi32 - int32_t(a)) a=384", 0.499999910593032836914L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=384", 0.999999821186065673828L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=384", 0.499999940395355224609L);
+insert("u01<double>(maxi32 - int32_t(a)) a=384", 0.499999910476617515087L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=384", 0.999999820953235030174L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=384", 0.499999910476617515087L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=384", 0.499999910476617515087L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=384", 0.999999820953235030174L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=384", 0.499999910476617515087L);
+insert("u01<float>(maxi64 - int64_t(a)) a=384", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=384", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=384", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=384", 0.500000000000000000000L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=384", 1.00000000000000000000L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=384", 0.499999999999999888978L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=384", 0.499999999999999979156L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=384", 0.999999999999999958312L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=384", 0.499999999999999979129L);
+insert("u01<float>(minu32 + uint32_t(a)) a=639", 1.48895196616649627686e-07L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=639", 2.97790393233299255371e-07L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=639", 1.78813934326171875000e-07L);
+insert("u01<double>(minu32 + uint32_t(a)) a=639", 1.48895196616649627686e-07L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=639", 2.97790393233299255371e-07L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=639", 1.48895196616649627686e-07L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=639", 1.48895196616649627686e-07L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=639", 2.97790393233299255371e-07L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=639", 1.48895196616649627686e-07L);
+insert("u01<float>(minu64 + uint64_t(a)) a=639", 3.46673644652240042774e-17L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=639", 6.93347289304480085548e-17L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=639", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=639", 3.46673644652240042774e-17L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=639", 6.93347289304480085548e-17L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=639", 1.11022302462515654042e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=639", 3.46673644652240042774e-17L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=639", 6.93347289304480085548e-17L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=639", 3.46402594109118666665e-17L);
+insert("u01<float>(mini32 + int32_t(a)) a=639", 0.500000119209289550781L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=639", -0.999999701976776123047L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=639", 0.500000178813934326172L);
+insert("u01<double>(mini32 + int32_t(a)) a=639", 0.500000148895196616650L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=639", -0.999999702209606766701L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=639", 0.500000148895196616650L);
+insert("u01<long double>(mini32 + int32_t(a)) a=639", 0.500000148895196616650L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=639", -0.999999702209606766701L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=639", 0.500000148895196616650L);
+insert("u01<float>(mini64 + int64_t(a)) a=639", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=639", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=639", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=639", 0.500000000000000000000L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=639", -0.999999999999999888978L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=639", 0.500000000000000111022L);
+insert("u01<long double>(mini64 + int64_t(a)) a=639", 0.500000000000000034694L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=639", -0.999999999999999930665L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=639", 0.500000000000000034640L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=639", 0.999999880790710449219L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=639", -2.97790393233299255371e-07L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=639", 0.999999821186065673828L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=639", 0.999999851104803383350L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=639", -2.97790393233299255371e-07L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=639", 0.999999851104803383350L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=639", 0.999999851104803383350L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=639", -2.97790393233299255371e-07L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=639", 0.999999851104803383350L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=639", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=639", -6.93347289304480085548e-17L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=639", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=639", 1.00000000000000000000L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=639", -6.93347289304480085548e-17L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=639", 0.999999999999999888978L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=639", 0.999999999999999965306L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=639", -6.93347289304480085548e-17L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=639", 0.999999999999999965360L);
+insert("u01<float>(maxi32 - int32_t(a)) a=639", 0.499999850988388061523L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=639", 0.999999701976776123047L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=639", 0.499999821186065673828L);
+insert("u01<double>(maxi32 - int32_t(a)) a=639", 0.499999851104803383350L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=639", 0.999999702209606766701L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=639", 0.499999851104803383350L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=639", 0.499999851104803383350L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=639", 0.999999702209606766701L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=639", 0.499999851104803383350L);
+insert("u01<float>(maxi64 - int64_t(a)) a=639", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=639", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=639", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=639", 0.499999999999999944489L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=639", 0.999999999999999888978L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=639", 0.499999999999999888978L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=639", 0.499999999999999965333L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=639", 0.999999999999999930665L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=639", 0.499999999999999965360L);
+insert("u01<float>(minu32 + uint32_t(a)) a=640", 1.49128027260303497314e-07L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=640", 2.98256054520606994629e-07L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=640", 1.78813934326171875000e-07L);
+insert("u01<double>(minu32 + uint32_t(a)) a=640", 1.49128027260303497314e-07L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=640", 2.98256054520606994629e-07L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=640", 1.49128027260303497314e-07L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=640", 1.49128027260303497314e-07L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=640", 2.98256054520606994629e-07L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=640", 1.49128027260303497314e-07L);
+insert("u01<float>(minu64 + uint64_t(a)) a=640", 3.47215745738482794991e-17L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=640", 6.94431491476965589982e-17L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=640", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=640", 3.47215745738482794991e-17L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=640", 6.94431491476965589982e-17L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=640", 1.11022302462515654042e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=640", 3.47215745738482794991e-17L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=640", 6.94431491476965589982e-17L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=640", 3.47486796281604171099e-17L);
+insert("u01<float>(mini32 + int32_t(a)) a=640", 0.500000119209289550781L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=640", -0.999999701976776123047L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=640", 0.500000178813934326172L);
+insert("u01<double>(mini32 + int32_t(a)) a=640", 0.500000149128027260303L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=640", -0.999999701743945479393L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=640", 0.500000149128027260303L);
+insert("u01<long double>(mini32 + int32_t(a)) a=640", 0.500000149128027260303L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=640", -0.999999701743945479393L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=640", 0.500000149128027260303L);
+insert("u01<float>(mini64 + int64_t(a)) a=640", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=640", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=640", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=640", 0.500000000000000000000L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=640", -0.999999999999999888978L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=640", 0.500000000000000111022L);
+insert("u01<long double>(mini64 + int64_t(a)) a=640", 0.500000000000000034694L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=640", -0.999999999999999930557L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=640", 0.500000000000000034749L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=640", 0.999999821186065673828L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=640", -2.98256054520606994629e-07L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=640", 0.999999821186065673828L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=640", 0.999999850871972739697L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=640", -2.98256054520606994629e-07L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=640", 0.999999850871972739697L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=640", 0.999999850871972739697L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=640", -2.98256054520606994629e-07L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=640", 0.999999850871972739697L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=640", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=640", -6.94431491476965589982e-17L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=640", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=640", 1.00000000000000000000L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=640", -6.94431491476965589982e-17L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=640", 0.999999999999999888978L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=640", 0.999999999999999965306L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=640", -6.94431491476965589982e-17L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=640", 0.999999999999999965251L);
+insert("u01<float>(maxi32 - int32_t(a)) a=640", 0.499999850988388061523L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=640", 0.999999701976776123047L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=640", 0.499999821186065673828L);
+insert("u01<double>(maxi32 - int32_t(a)) a=640", 0.499999850871972739697L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=640", 0.999999701743945479393L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=640", 0.499999850871972739697L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=640", 0.499999850871972739697L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=640", 0.999999701743945479393L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=640", 0.499999850871972739697L);
+insert("u01<float>(maxi64 - int64_t(a)) a=640", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=640", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=640", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=640", 0.499999999999999944489L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=640", 0.999999999999999888978L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=640", 0.499999999999999888978L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=640", 0.499999999999999965278L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=640", 0.999999999999999930557L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=640", 0.499999999999999965251L);
+insert("u01<float>(minu32 + uint32_t(a)) a=641", 1.49360857903957366943e-07L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=641", 2.98721715807914733887e-07L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=641", 1.78813934326171875000e-07L);
+insert("u01<double>(minu32 + uint32_t(a)) a=641", 1.49360857903957366943e-07L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=641", 2.98721715807914733887e-07L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=641", 1.49360857903957366943e-07L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=641", 1.49360857903957366943e-07L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=641", 2.98721715807914733887e-07L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=641", 1.49360857903957366943e-07L);
+insert("u01<float>(minu64 + uint64_t(a)) a=641", 3.47757846824725547208e-17L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=641", 6.95515693649451094416e-17L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=641", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=641", 3.47757846824725547208e-17L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=641", 6.95515693649451094416e-17L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=641", 1.11022302462515654042e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=641", 3.47757846824725547208e-17L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=641", 6.95515693649451094416e-17L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=641", 3.47486796281604171099e-17L);
+insert("u01<float>(mini32 + int32_t(a)) a=641", 0.500000178813934326172L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=641", -0.999999701976776123047L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=641", 0.500000178813934326172L);
+insert("u01<double>(mini32 + int32_t(a)) a=641", 0.500000149360857903957L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=641", -0.999999701278284192085L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=641", 0.500000149360857903957L);
+insert("u01<long double>(mini32 + int32_t(a)) a=641", 0.500000149360857903957L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=641", -0.999999701278284192085L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=641", 0.500000149360857903957L);
+insert("u01<float>(mini64 + int64_t(a)) a=641", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=641", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=641", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=641", 0.500000000000000000000L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=641", -0.999999999999999888978L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=641", 0.500000000000000111022L);
+insert("u01<long double>(mini64 + int64_t(a)) a=641", 0.500000000000000034803L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=641", -0.999999999999999930448L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=641", 0.500000000000000034749L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=641", 0.999999821186065673828L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=641", -2.98721715807914733887e-07L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=641", 0.999999821186065673828L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=641", 0.999999850639142096043L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=641", -2.98721715807914733887e-07L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=641", 0.999999850639142096043L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=641", 0.999999850639142096043L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=641", -2.98721715807914733887e-07L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=641", 0.999999850639142096043L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=641", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=641", -6.95515693649451094416e-17L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=641", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=641", 1.00000000000000000000L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=641", -6.95515693649451094416e-17L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=641", 0.999999999999999888978L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=641", 0.999999999999999965197L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=641", -6.95515693649451094416e-17L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=641", 0.999999999999999965251L);
+insert("u01<float>(maxi32 - int32_t(a)) a=641", 0.499999850988388061523L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=641", 0.999999701976776123047L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=641", 0.499999821186065673828L);
+insert("u01<double>(maxi32 - int32_t(a)) a=641", 0.499999850639142096043L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=641", 0.999999701278284192085L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=641", 0.499999850639142096043L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=641", 0.499999850639142096043L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=641", 0.999999701278284192085L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=641", 0.499999850639142096043L);
+insert("u01<float>(maxi64 - int64_t(a)) a=641", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=641", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=641", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=641", 0.499999999999999944489L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=641", 0.999999999999999888978L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=641", 0.499999999999999888978L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=641", 0.499999999999999965224L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=641", 0.999999999999999930448L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=641", 0.499999999999999965251L);
+insert("u01<float>(minu32 + uint32_t(a)) a=1023", 2.38302163779735565186e-07L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=1023", 4.76604327559471130371e-07L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=1023", 1.78813934326171875000e-07L);
+insert("u01<double>(minu32 + uint32_t(a)) a=1023", 2.38302163779735565186e-07L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=1023", 4.76604327559471130371e-07L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=1023", 2.38302163779735565186e-07L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=1023", 2.38302163779735565186e-07L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=1023", 4.76604327559471130371e-07L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=1023", 2.38302163779735565186e-07L);
+insert("u01<float>(minu64 + uint64_t(a)) a=1023", 5.54840461769456894103e-17L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=1023", 1.10968092353891378821e-16L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=1023", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=1023", 5.54840461769456894103e-17L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=1023", 1.10968092353891378821e-16L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=1023", 1.11022302462515654042e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=1023", 5.54840461769456894103e-17L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=1023", 1.10968092353891378821e-16L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=1023", 5.54569411226335517995e-17L);
+insert("u01<float>(mini32 + int32_t(a)) a=1023", 0.500000238418579101562L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=1023", -0.999999523162841796875L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=1023", 0.500000178813934326172L);
+insert("u01<double>(mini32 + int32_t(a)) a=1023", 0.500000238302163779736L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=1023", -0.999999523395672440529L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=1023", 0.500000238302163779736L);
+insert("u01<long double>(mini32 + int32_t(a)) a=1023", 0.500000238302163779736L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=1023", -0.999999523395672440529L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=1023", 0.500000238302163779736L);
+insert("u01<float>(mini64 + int64_t(a)) a=1023", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=1023", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=1023", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=1023", 0.500000000000000000000L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=1023", -0.999999999999999888978L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=1023", 0.500000000000000111022L);
+insert("u01<long double>(mini64 + int64_t(a)) a=1023", 0.500000000000000055511L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=1023", -0.999999999999999889032L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=1023", 0.500000000000000055457L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=1023", 0.999999761581420898438L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=1023", -4.76604327559471130371e-07L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=1023", 0.999999821186065673828L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=1023", 0.999999761697836220264L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=1023", -4.76604327559471130371e-07L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=1023", 0.999999761697836220264L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=1023", 0.999999761697836220264L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=1023", -4.76604327559471130371e-07L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=1023", 0.999999761697836220264L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=1023", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=1023", -1.10968092353891378821e-16L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=1023", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=1023", 1.00000000000000000000L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=1023", -1.10968092353891378821e-16L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=1023", 0.999999999999999888978L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=1023", 0.999999999999999944489L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=1023", -1.10968092353891378821e-16L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=1023", 0.999999999999999944543L);
+insert("u01<float>(maxi32 - int32_t(a)) a=1023", 0.499999761581420898438L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=1023", 0.999999523162841796875L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=1023", 0.499999821186065673828L);
+insert("u01<double>(maxi32 - int32_t(a)) a=1023", 0.499999761697836220264L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=1023", 0.999999523395672440529L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=1023", 0.499999761697836220264L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=1023", 0.499999761697836220264L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=1023", 0.999999523395672440529L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=1023", 0.499999761697836220264L);
+insert("u01<float>(maxi64 - int64_t(a)) a=1023", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=1023", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=1023", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=1023", 0.499999999999999944489L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=1023", 0.999999999999999888978L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=1023", 0.499999999999999888978L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=1023", 0.499999999999999944516L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=1023", 0.999999999999999889032L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=1023", 0.499999999999999944543L);
+insert("u01<float>(minu32 + uint32_t(a)) a=1024", 2.38534994423389434814e-07L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=1024", 4.77069988846778869629e-07L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=1024", 2.98023223876953125000e-07L);
+insert("u01<double>(minu32 + uint32_t(a)) a=1024", 2.38534994423389434814e-07L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=1024", 4.77069988846778869629e-07L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=1024", 2.38534994423389434814e-07L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=1024", 2.38534994423389434814e-07L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=1024", 4.77069988846778869629e-07L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=1024", 2.38534994423389434814e-07L);
+insert("u01<float>(minu64 + uint64_t(a)) a=1024", 5.55382562855699646320e-17L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=1024", 1.11076512571139929264e-16L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=1024", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=1024", 5.55382562855699646320e-17L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=1024", 1.11076512571139929264e-16L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=1024", 1.11022302462515654042e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=1024", 5.55382562855699646320e-17L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=1024", 1.11076512571139929264e-16L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=1024", 5.55653613398821022429e-17L);
+insert("u01<float>(mini32 + int32_t(a)) a=1024", 0.500000238418579101562L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=1024", -0.999999523162841796875L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=1024", 0.500000298023223876953L);
+insert("u01<double>(mini32 + int32_t(a)) a=1024", 0.500000238534994423389L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=1024", -0.999999522930011153221L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=1024", 0.500000238534994423389L);
+insert("u01<long double>(mini32 + int32_t(a)) a=1024", 0.500000238534994423389L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=1024", -0.999999522930011153221L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=1024", 0.500000238534994423389L);
+insert("u01<float>(mini64 + int64_t(a)) a=1024", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=1024", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=1024", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=1024", 0.500000000000000000000L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=1024", -0.999999999999999888978L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=1024", 0.500000000000000111022L);
+insert("u01<long double>(mini64 + int64_t(a)) a=1024", 0.500000000000000055511L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=1024", -0.999999999999999888923L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=1024", 0.500000000000000055565L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=1024", 0.999999761581420898438L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=1024", -4.77069988846778869629e-07L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=1024", 0.999999701976776123047L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=1024", 0.999999761465005576611L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=1024", -4.77069988846778869629e-07L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=1024", 0.999999761465005576611L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=1024", 0.999999761465005576611L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=1024", -4.77069988846778869629e-07L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=1024", 0.999999761465005576611L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=1024", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=1024", -1.11076512571139929264e-16L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=1024", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=1024", 0.999999999999999888978L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=1024", -1.11076512571139929264e-16L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=1024", 0.999999999999999888978L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=1024", 0.999999999999999944489L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=1024", -1.11076512571139929264e-16L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=1024", 0.999999999999999944435L);
+insert("u01<float>(maxi32 - int32_t(a)) a=1024", 0.499999761581420898438L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=1024", 0.999999523162841796875L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=1024", 0.499999701976776123047L);
+insert("u01<double>(maxi32 - int32_t(a)) a=1024", 0.499999761465005576611L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=1024", 0.999999522930011153221L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=1024", 0.499999761465005576611L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=1024", 0.499999761465005576611L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=1024", 0.999999522930011153221L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=1024", 0.499999761465005576611L);
+insert("u01<float>(maxi64 - int64_t(a)) a=1024", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=1024", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=1024", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=1024", 0.499999999999999944489L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=1024", 0.999999999999999888978L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=1024", 0.499999999999999888978L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=1024", 0.499999999999999944462L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=1024", 0.999999999999999888923L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=1024", 0.499999999999999944435L);
+insert("u01<float>(minu32 + uint32_t(a)) a=1025", 2.38767825067043304443e-07L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=1025", 4.77535650134086608887e-07L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=1025", 2.98023223876953125000e-07L);
+insert("u01<double>(minu32 + uint32_t(a)) a=1025", 2.38767825067043304443e-07L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=1025", 4.77535650134086608887e-07L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=1025", 2.38767825067043304443e-07L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=1025", 2.38767825067043304443e-07L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=1025", 4.77535650134086608887e-07L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=1025", 2.38767825067043304443e-07L);
+insert("u01<float>(minu64 + uint64_t(a)) a=1025", 5.55924663941942398537e-17L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=1025", 1.11184932788388479707e-16L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=1025", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=1025", 5.55924663941942398537e-17L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=1025", 1.11184932788388479707e-16L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=1025", 1.11022302462515654042e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=1025", 5.55924663941942398537e-17L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=1025", 1.11184932788388479707e-16L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=1025", 5.55653613398821022429e-17L);
+insert("u01<float>(mini32 + int32_t(a)) a=1025", 0.500000238418579101562L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=1025", -0.999999523162841796875L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=1025", 0.500000298023223876953L);
+insert("u01<double>(mini32 + int32_t(a)) a=1025", 0.500000238767825067043L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=1025", -0.999999522464349865913L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=1025", 0.500000238767825067043L);
+insert("u01<long double>(mini32 + int32_t(a)) a=1025", 0.500000238767825067043L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=1025", -0.999999522464349865913L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=1025", 0.500000238767825067043L);
+insert("u01<float>(mini64 + int64_t(a)) a=1025", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=1025", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=1025", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=1025", 0.500000000000000111022L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=1025", -0.999999999999999888978L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=1025", 0.500000000000000111022L);
+insert("u01<long double>(mini64 + int64_t(a)) a=1025", 0.500000000000000055620L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=1025", -0.999999999999999888815L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=1025", 0.500000000000000055565L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=1025", 0.999999761581420898438L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=1025", -4.77535650134086608887e-07L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=1025", 0.999999701976776123047L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=1025", 0.999999761232174932957L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=1025", -4.77535650134086608887e-07L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=1025", 0.999999761232174932957L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=1025", 0.999999761232174932957L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=1025", -4.77535650134086608887e-07L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=1025", 0.999999761232174932957L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=1025", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=1025", -1.11184932788388479707e-16L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=1025", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=1025", 0.999999999999999888978L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=1025", -1.11184932788388479707e-16L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=1025", 0.999999999999999888978L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=1025", 0.999999999999999944380L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=1025", -1.11184932788388479707e-16L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=1025", 0.999999999999999944435L);
+insert("u01<float>(maxi32 - int32_t(a)) a=1025", 0.499999761581420898438L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=1025", 0.999999523162841796875L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=1025", 0.499999701976776123047L);
+insert("u01<double>(maxi32 - int32_t(a)) a=1025", 0.499999761232174932957L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=1025", 0.999999522464349865913L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=1025", 0.499999761232174932957L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=1025", 0.499999761232174932957L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=1025", 0.999999522464349865913L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=1025", 0.499999761232174932957L);
+insert("u01<float>(maxi64 - int64_t(a)) a=1025", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=1025", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=1025", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=1025", 0.499999999999999944489L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=1025", 0.999999999999999888978L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=1025", 0.499999999999999888978L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=1025", 0.499999999999999944408L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=1025", 0.999999999999999888815L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=1025", 0.499999999999999944435L);
+insert("u01<float>(minu32 + uint32_t(a)) a=3070", 7.14906491339206695557e-07L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=3070", 1.42981298267841339111e-06L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=3070", 6.55651092529296875000e-07L);
+insert("u01<double>(minu32 + uint32_t(a)) a=3070", 7.14906491339206695557e-07L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=3070", 1.42981298267841339111e-06L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=3070", 7.14906491339206695557e-07L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=3070", 7.14906491339206695557e-07L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=3070", 1.42981298267841339111e-06L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=3070", 7.14906491339206695557e-07L);
+insert("u01<float>(minu64 + uint64_t(a)) a=3070", 1.66452138530837068231e-16L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=3070", 3.32904277061674136462e-16L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=3070", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=3070", 1.66452138530837068231e-16L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=3070", 3.32904277061674136462e-16L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=3070", 1.11022302462515654042e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=3070", 1.66452138530837068231e-16L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=3070", 3.32904277061674136462e-16L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=3070", 1.66479243585149205842e-16L);
+insert("u01<float>(mini32 + int32_t(a)) a=3070", 0.500000715255737304688L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=3070", -0.999998569488525390625L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=3070", 0.500000655651092529297L);
+insert("u01<double>(mini32 + int32_t(a)) a=3070", 0.500000714906491339207L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=3070", -0.999998570187017321587L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=3070", 0.500000714906491339207L);
+insert("u01<long double>(mini32 + int32_t(a)) a=3070", 0.500000714906491339207L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=3070", -0.999998570187017321587L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=3070", 0.500000714906491339207L);
+insert("u01<float>(mini64 + int64_t(a)) a=3070", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=3070", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=3070", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=3070", 0.500000000000000111022L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=3070", -0.999999999999999666933L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=3070", 0.500000000000000111022L);
+insert("u01<long double>(mini64 + int64_t(a)) a=3070", 0.500000000000000166425L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=3070", -0.999999999999999667096L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=3070", 0.500000000000000166479L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=3070", 0.999999284744262695312L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=3070", -1.42981298267841339111e-06L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=3070", 0.999999344348907470703L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=3070", 0.999999285093508660793L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=3070", -1.42981298267841339111e-06L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=3070", 0.999999285093508660793L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=3070", 0.999999285093508660793L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=3070", -1.42981298267841339111e-06L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=3070", 0.999999285093508660793L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=3070", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=3070", -3.32904277061674136462e-16L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=3070", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=3070", 0.999999999999999888978L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=3070", -3.32904277061674136462e-16L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=3070", 0.999999999999999888978L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=3070", 0.999999999999999833575L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=3070", -3.32904277061674136462e-16L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=3070", 0.999999999999999833521L);
+insert("u01<float>(maxi32 - int32_t(a)) a=3070", 0.499999284744262695312L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=3070", 0.999998569488525390625L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=3070", 0.499999344348907470703L);
+insert("u01<double>(maxi32 - int32_t(a)) a=3070", 0.499999285093508660793L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=3070", 0.999998570187017321587L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=3070", 0.499999285093508660793L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=3070", 0.499999285093508660793L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=3070", 0.999998570187017321587L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=3070", 0.499999285093508660793L);
+insert("u01<float>(maxi64 - int64_t(a)) a=3070", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=3070", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=3070", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=3070", 0.499999999999999833467L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=3070", 0.999999999999999666933L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=3070", 0.499999999999999888978L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=3070", 0.499999999999999833548L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=3070", 0.999999999999999667096L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=3070", 0.499999999999999833521L);
+insert("u01<float>(minu32 + uint32_t(a)) a=3071", 7.15139321982860565186e-07L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=3071", 1.43027864396572113037e-06L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=3071", 6.55651092529296875000e-07L);
+insert("u01<double>(minu32 + uint32_t(a)) a=3071", 7.15139321982860565186e-07L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=3071", 1.43027864396572113037e-06L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=3071", 7.15139321982860565186e-07L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=3071", 7.15139321982860565186e-07L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=3071", 1.43027864396572113037e-06L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=3071", 7.15139321982860565186e-07L);
+insert("u01<float>(minu64 + uint64_t(a)) a=3071", 1.66506348639461343453e-16L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=3071", 3.33012697278922686905e-16L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=3071", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=3071", 1.66506348639461343453e-16L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=3071", 3.33012697278922686905e-16L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=3071", 1.11022302462515654042e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=3071", 1.66506348639461343453e-16L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=3071", 3.33012697278922686905e-16L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=3071", 1.66479243585149205842e-16L);
+insert("u01<float>(mini32 + int32_t(a)) a=3071", 0.500000715255737304688L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=3071", -0.999998569488525390625L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=3071", 0.500000655651092529297L);
+insert("u01<double>(mini32 + int32_t(a)) a=3071", 0.500000715139321982861L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=3071", -0.999998569721356034279L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=3071", 0.500000715139321982861L);
+insert("u01<long double>(mini32 + int32_t(a)) a=3071", 0.500000715139321982861L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=3071", -0.999998569721356034279L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=3071", 0.500000715139321982861L);
+insert("u01<float>(mini64 + int64_t(a)) a=3071", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=3071", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=3071", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=3071", 0.500000000000000111022L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=3071", -0.999999999999999666933L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=3071", 0.500000000000000111022L);
+insert("u01<long double>(mini64 + int64_t(a)) a=3071", 0.500000000000000166533L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=3071", -0.999999999999999666987L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=3071", 0.500000000000000166479L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=3071", 0.999999284744262695312L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=3071", -1.43027864396572113037e-06L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=3071", 0.999999344348907470703L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=3071", 0.999999284860678017139L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=3071", -1.43027864396572113037e-06L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=3071", 0.999999284860678017139L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=3071", 0.999999284860678017139L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=3071", -1.43027864396572113037e-06L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=3071", 0.999999284860678017139L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=3071", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=3071", -3.33012697278922686905e-16L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=3071", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=3071", 0.999999999999999777955L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=3071", -3.33012697278922686905e-16L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=3071", 0.999999999999999888978L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=3071", 0.999999999999999833467L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=3071", -3.33012697278922686905e-16L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=3071", 0.999999999999999833521L);
+insert("u01<float>(maxi32 - int32_t(a)) a=3071", 0.499999284744262695312L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=3071", 0.999998569488525390625L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=3071", 0.499999344348907470703L);
+insert("u01<double>(maxi32 - int32_t(a)) a=3071", 0.499999284860678017139L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=3071", 0.999998569721356034279L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=3071", 0.499999284860678017139L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=3071", 0.499999284860678017139L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=3071", 0.999998569721356034279L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=3071", 0.499999284860678017139L);
+insert("u01<float>(maxi64 - int64_t(a)) a=3071", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=3071", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=3071", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=3071", 0.499999999999999833467L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=3071", 0.999999999999999666933L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=3071", 0.499999999999999888978L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=3071", 0.499999999999999833494L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=3071", 0.999999999999999666987L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=3071", 0.499999999999999833521L);
+insert("u01<float>(minu32 + uint32_t(a)) a=3072", 7.15372152626514434814e-07L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=3072", 1.43074430525302886963e-06L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=3072", 7.74860382080078125000e-07L);
+insert("u01<double>(minu32 + uint32_t(a)) a=3072", 7.15372152626514434814e-07L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=3072", 1.43074430525302886963e-06L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=3072", 7.15372152626514434814e-07L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=3072", 7.15372152626514434814e-07L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=3072", 1.43074430525302886963e-06L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=3072", 7.15372152626514434814e-07L);
+insert("u01<float>(minu64 + uint64_t(a)) a=3072", 1.66560558748085618674e-16L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=3072", 3.33121117496171237349e-16L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=3072", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=3072", 1.66560558748085618674e-16L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=3072", 3.33121117496171237349e-16L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=3072", 1.11022302462515654042e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=3072", 1.66560558748085618674e-16L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=3072", 3.33121117496171237349e-16L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=3072", 1.66587663802397756285e-16L);
+insert("u01<float>(mini32 + int32_t(a)) a=3072", 0.500000715255737304688L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=3072", -0.999998569488525390625L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=3072", 0.500000774860382080078L);
+insert("u01<double>(mini32 + int32_t(a)) a=3072", 0.500000715372152626514L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=3072", -0.999998569255694746971L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=3072", 0.500000715372152626514L);
+insert("u01<long double>(mini32 + int32_t(a)) a=3072", 0.500000715372152626514L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=3072", -0.999998569255694746971L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=3072", 0.500000715372152626514L);
+insert("u01<float>(mini64 + int64_t(a)) a=3072", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=3072", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=3072", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=3072", 0.500000000000000222045L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=3072", -0.999999999999999666933L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=3072", 0.500000000000000111022L);
+insert("u01<long double>(mini64 + int64_t(a)) a=3072", 0.500000000000000166533L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=3072", -0.999999999999999666879L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=3072", 0.500000000000000166588L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=3072", 0.999999284744262695312L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=3072", -1.43074430525302886963e-06L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=3072", 0.999999225139617919922L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=3072", 0.999999284627847373486L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=3072", -1.43074430525302886963e-06L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=3072", 0.999999284627847373486L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=3072", 0.999999284627847373486L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=3072", -1.43074430525302886963e-06L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=3072", 0.999999284627847373486L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=3072", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=3072", -3.33121117496171237349e-16L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=3072", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=3072", 0.999999999999999777955L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=3072", -3.33121117496171237349e-16L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=3072", 0.999999999999999888978L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=3072", 0.999999999999999833467L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=3072", -3.33121117496171237349e-16L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=3072", 0.999999999999999833412L);
+insert("u01<float>(maxi32 - int32_t(a)) a=3072", 0.499999284744262695312L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=3072", 0.999998569488525390625L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=3072", 0.499999225139617919922L);
+insert("u01<double>(maxi32 - int32_t(a)) a=3072", 0.499999284627847373486L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=3072", 0.999998569255694746971L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=3072", 0.499999284627847373486L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=3072", 0.499999284627847373486L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=3072", 0.999998569255694746971L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=3072", 0.499999284627847373486L);
+insert("u01<float>(maxi64 - int64_t(a)) a=3072", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=3072", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=3072", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=3072", 0.499999999999999833467L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=3072", 0.999999999999999666933L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=3072", 0.499999999999999888978L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=3072", 0.499999999999999833439L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=3072", 0.999999999999999666879L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=3072", 0.499999999999999833412L);
+insert("u01<float>(minu32 + uint32_t(a)) a=5119", 1.19197648018598556519e-06L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=5119", 2.38395296037197113037e-06L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=5119", 1.13248825073242187500e-06L);
+insert("u01<double>(minu32 + uint32_t(a)) a=5119", 1.19197648018598556519e-06L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=5119", 2.38395296037197113037e-06L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=5119", 1.19197648018598556519e-06L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=5119", 1.19197648018598556519e-06L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=5119", 2.38395296037197113037e-06L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=5119", 1.19197648018598556519e-06L);
+insert("u01<float>(minu64 + uint64_t(a)) a=5119", 2.77528651101976997495e-16L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=5119", 5.55057302203953994990e-16L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=5119", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=5119", 2.77528651101976997495e-16L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=5119", 5.55057302203953994990e-16L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=5119", 3.33066907387546962127e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=5119", 2.77528651101976997495e-16L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=5119", 5.55057302203953994990e-16L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=5119", 2.77501546047664859884e-16L);
+insert("u01<float>(mini32 + int32_t(a)) a=5119", 0.500001192092895507812L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=5119", -0.999997615814208984375L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=5119", 0.500001132488250732422L);
+insert("u01<double>(mini32 + int32_t(a)) a=5119", 0.500001191976480185986L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=5119", -0.999997616047039628029L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=5119", 0.500001191976480185986L);
+insert("u01<long double>(mini32 + int32_t(a)) a=5119", 0.500001191976480185986L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=5119", -0.999997616047039628029L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=5119", 0.500001191976480185986L);
+insert("u01<float>(mini64 + int64_t(a)) a=5119", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=5119", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=5119", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=5119", 0.500000000000000222045L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=5119", -0.999999999999999444888L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=5119", 0.500000000000000333067L);
+insert("u01<long double>(mini64 + int64_t(a)) a=5119", 0.500000000000000277556L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=5119", -0.999999999999999444943L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=5119", 0.500000000000000277502L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=5119", 0.999998807907104492188L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=5119", -2.38395296037197113037e-06L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=5119", 0.999998867511749267578L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=5119", 0.999998808023519814014L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=5119", -2.38395296037197113037e-06L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=5119", 0.999998808023519814014L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=5119", 0.999998808023519814014L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=5119", -2.38395296037197113037e-06L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=5119", 0.999998808023519814014L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=5119", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=5119", -5.55057302203953994990e-16L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=5119", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=5119", 0.999999999999999777955L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=5119", -5.55057302203953994990e-16L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=5119", 0.999999999999999666933L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=5119", 0.999999999999999722444L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=5119", -5.55057302203953994990e-16L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=5119", 0.999999999999999722498L);
+insert("u01<float>(maxi32 - int32_t(a)) a=5119", 0.499998807907104492188L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=5119", 0.999997615814208984375L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=5119", 0.499998867511749267578L);
+insert("u01<double>(maxi32 - int32_t(a)) a=5119", 0.499998808023519814014L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=5119", 0.999997616047039628029L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=5119", 0.499998808023519814014L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=5119", 0.499998808023519814014L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=5119", 0.999997616047039628029L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=5119", 0.499998808023519814014L);
+insert("u01<float>(maxi64 - int64_t(a)) a=5119", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=5119", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=5119", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=5119", 0.499999999999999722444L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=5119", 0.999999999999999444888L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=5119", 0.499999999999999666933L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=5119", 0.499999999999999722471L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=5119", 0.999999999999999444943L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=5119", 0.499999999999999722498L);
+insert("u01<float>(minu32 + uint32_t(a)) a=5120", 1.19220931082963943481e-06L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=5120", 2.38441862165927886963e-06L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=5120", 1.25169754028320312500e-06L);
+insert("u01<double>(minu32 + uint32_t(a)) a=5120", 1.19220931082963943481e-06L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=5120", 2.38441862165927886963e-06L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=5120", 1.19220931082963943481e-06L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=5120", 1.19220931082963943481e-06L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=5120", 2.38441862165927886963e-06L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=5120", 1.19220931082963943481e-06L);
+insert("u01<float>(minu64 + uint64_t(a)) a=5120", 2.77582861210601272717e-16L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=5120", 5.55165722421202545434e-16L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=5120", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=5120", 2.77582861210601272717e-16L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=5120", 5.55165722421202545434e-16L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=5120", 3.33066907387546962127e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=5120", 2.77582861210601272717e-16L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=5120", 5.55165722421202545434e-16L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=5120", 2.77609966264913410328e-16L);
+insert("u01<float>(mini32 + int32_t(a)) a=5120", 0.500001192092895507812L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=5120", -0.999997615814208984375L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=5120", 0.500001251697540283203L);
+insert("u01<double>(mini32 + int32_t(a)) a=5120", 0.500001192209310829639L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=5120", -0.999997615581378340721L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=5120", 0.500001192209310829639L);
+insert("u01<long double>(mini32 + int32_t(a)) a=5120", 0.500001192209310829639L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=5120", -0.999997615581378340721L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=5120", 0.500001192209310829639L);
+insert("u01<float>(mini64 + int64_t(a)) a=5120", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=5120", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=5120", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=5120", 0.500000000000000222045L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=5120", -0.999999999999999444888L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=5120", 0.500000000000000333067L);
+insert("u01<long double>(mini64 + int64_t(a)) a=5120", 0.500000000000000277556L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=5120", -0.999999999999999444834L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=5120", 0.500000000000000277610L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=5120", 0.999998807907104492188L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=5120", -2.38441862165927886963e-06L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=5120", 0.999998748302459716797L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=5120", 0.999998807790689170361L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=5120", -2.38441862165927886963e-06L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=5120", 0.999998807790689170361L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=5120", 0.999998807790689170361L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=5120", -2.38441862165927886963e-06L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=5120", 0.999998807790689170361L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=5120", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=5120", -5.55165722421202545434e-16L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=5120", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=5120", 0.999999999999999666933L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=5120", -5.55165722421202545434e-16L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=5120", 0.999999999999999666933L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=5120", 0.999999999999999722444L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=5120", -5.55165722421202545434e-16L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=5120", 0.999999999999999722390L);
+insert("u01<float>(maxi32 - int32_t(a)) a=5120", 0.499998807907104492188L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=5120", 0.999997615814208984375L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=5120", 0.499998748302459716797L);
+insert("u01<double>(maxi32 - int32_t(a)) a=5120", 0.499998807790689170361L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=5120", 0.999997615581378340721L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=5120", 0.499998807790689170361L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=5120", 0.499998807790689170361L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=5120", 0.999997615581378340721L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=5120", 0.499998807790689170361L);
+insert("u01<float>(maxi64 - int64_t(a)) a=5120", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=5120", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=5120", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=5120", 0.499999999999999722444L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=5120", 0.999999999999999444888L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=5120", 0.499999999999999666933L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=5120", 0.499999999999999722417L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=5120", 0.999999999999999444834L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=5120", 0.499999999999999722390L);
+insert("u01<float>(minu32 + uint32_t(a)) a=5121", 1.19244214147329330444e-06L);
+insert("uneg11<float>(minu32 + uint32_t(a)) a=5121", 2.38488428294658660889e-06L);
+insert("u01fixedpt<float>(minu32 + uint32_t(a)) a=5121", 1.25169754028320312500e-06L);
+insert("u01<double>(minu32 + uint32_t(a)) a=5121", 1.19244214147329330444e-06L);
+insert("uneg11<double>(minu32 + uint32_t(a)) a=5121", 2.38488428294658660889e-06L);
+insert("u01fixedpt<double>(minu32 + uint32_t(a)) a=5121", 1.19244214147329330444e-06L);
+insert("u01<long double>(minu32 + uint32_t(a)) a=5121", 1.19244214147329330444e-06L);
+insert("uneg11<long double>(minu32 + uint32_t(a)) a=5121", 2.38488428294658660889e-06L);
+insert("u01fixedpt<long double>(minu32 + uint32_t(a)) a=5121", 1.19244214147329330444e-06L);
+insert("u01<float>(minu64 + uint64_t(a)) a=5121", 2.77637071319225547938e-16L);
+insert("uneg11<float>(minu64 + uint64_t(a)) a=5121", 5.55274142638451095877e-16L);
+insert("u01fixedpt<float>(minu64 + uint64_t(a)) a=5121", 5.96046447753906250000e-08L);
+insert("u01<double>(minu64 + uint64_t(a)) a=5121", 2.77637071319225547938e-16L);
+insert("uneg11<double>(minu64 + uint64_t(a)) a=5121", 5.55274142638451095877e-16L);
+insert("u01fixedpt<double>(minu64 + uint64_t(a)) a=5121", 3.33066907387546962127e-16L);
+insert("u01<long double>(minu64 + uint64_t(a)) a=5121", 2.77637071319225547938e-16L);
+insert("uneg11<long double>(minu64 + uint64_t(a)) a=5121", 5.55274142638451095877e-16L);
+insert("u01fixedpt<long double>(minu64 + uint64_t(a)) a=5121", 2.77609966264913410328e-16L);
+insert("u01<float>(mini32 + int32_t(a)) a=5121", 0.500001192092895507812L);
+insert("uneg11<float>(mini32 + int32_t(a)) a=5121", -0.999997615814208984375L);
+insert("u01fixedpt<float>(mini32 + int32_t(a)) a=5121", 0.500001251697540283203L);
+insert("u01<double>(mini32 + int32_t(a)) a=5121", 0.500001192442141473293L);
+insert("uneg11<double>(mini32 + int32_t(a)) a=5121", -0.999997615115717053413L);
+insert("u01fixedpt<double>(mini32 + int32_t(a)) a=5121", 0.500001192442141473293L);
+insert("u01<long double>(mini32 + int32_t(a)) a=5121", 0.500001192442141473293L);
+insert("uneg11<long double>(mini32 + int32_t(a)) a=5121", -0.999997615115717053413L);
+insert("u01fixedpt<long double>(mini32 + int32_t(a)) a=5121", 0.500001192442141473293L);
+insert("u01<float>(mini64 + int64_t(a)) a=5121", 0.500000000000000000000L);
+insert("uneg11<float>(mini64 + int64_t(a)) a=5121", -1.00000000000000000000L);
+insert("u01fixedpt<float>(mini64 + int64_t(a)) a=5121", 0.500000059604644775391L);
+insert("u01<double>(mini64 + int64_t(a)) a=5121", 0.500000000000000333067L);
+insert("uneg11<double>(mini64 + int64_t(a)) a=5121", -0.999999999999999444888L);
+insert("u01fixedpt<double>(mini64 + int64_t(a)) a=5121", 0.500000000000000333067L);
+insert("u01<long double>(mini64 + int64_t(a)) a=5121", 0.500000000000000277664L);
+insert("uneg11<long double>(mini64 + int64_t(a)) a=5121", -0.999999999999999444726L);
+insert("u01fixedpt<long double>(mini64 + int64_t(a)) a=5121", 0.500000000000000277610L);
+insert("u01<float>(maxu32 - uint32_t(a)) a=5121", 0.999998807907104492188L);
+insert("uneg11<float>(maxu32 - uint32_t(a)) a=5121", -2.38488428294658660889e-06L);
+insert("u01fixedpt<float>(maxu32 - uint32_t(a)) a=5121", 0.999998748302459716797L);
+insert("u01<double>(maxu32 - uint32_t(a)) a=5121", 0.999998807557858526707L);
+insert("uneg11<double>(maxu32 - uint32_t(a)) a=5121", -2.38488428294658660889e-06L);
+insert("u01fixedpt<double>(maxu32 - uint32_t(a)) a=5121", 0.999998807557858526707L);
+insert("u01<long double>(maxu32 - uint32_t(a)) a=5121", 0.999998807557858526707L);
+insert("uneg11<long double>(maxu32 - uint32_t(a)) a=5121", -2.38488428294658660889e-06L);
+insert("u01fixedpt<long double>(maxu32 - uint32_t(a)) a=5121", 0.999998807557858526707L);
+insert("u01<float>(maxu64 - uint64_t(a)) a=5121", 1.00000000000000000000L);
+insert("uneg11<float>(maxu64 - uint64_t(a)) a=5121", -5.55274142638451095877e-16L);
+insert("u01fixedpt<float>(maxu64 - uint64_t(a)) a=5121", 0.999999940395355224609L);
+insert("u01<double>(maxu64 - uint64_t(a)) a=5121", 0.999999999999999666933L);
+insert("uneg11<double>(maxu64 - uint64_t(a)) a=5121", -5.55274142638451095877e-16L);
+insert("u01fixedpt<double>(maxu64 - uint64_t(a)) a=5121", 0.999999999999999666933L);
+insert("u01<long double>(maxu64 - uint64_t(a)) a=5121", 0.999999999999999722336L);
+insert("uneg11<long double>(maxu64 - uint64_t(a)) a=5121", -5.55274142638451095877e-16L);
+insert("u01fixedpt<long double>(maxu64 - uint64_t(a)) a=5121", 0.999999999999999722390L);
+insert("u01<float>(maxi32 - int32_t(a)) a=5121", 0.499998807907104492188L);
+insert("uneg11<float>(maxi32 - int32_t(a)) a=5121", 0.999997615814208984375L);
+insert("u01fixedpt<float>(maxi32 - int32_t(a)) a=5121", 0.499998748302459716797L);
+insert("u01<double>(maxi32 - int32_t(a)) a=5121", 0.499998807557858526707L);
+insert("uneg11<double>(maxi32 - int32_t(a)) a=5121", 0.999997615115717053413L);
+insert("u01fixedpt<double>(maxi32 - int32_t(a)) a=5121", 0.499998807557858526707L);
+insert("u01<long double>(maxi32 - int32_t(a)) a=5121", 0.499998807557858526707L);
+insert("uneg11<long double>(maxi32 - int32_t(a)) a=5121", 0.999997615115717053413L);
+insert("u01fixedpt<long double>(maxi32 - int32_t(a)) a=5121", 0.499998807557858526707L);
+insert("u01<float>(maxi64 - int64_t(a)) a=5121", 0.500000000000000000000L);
+insert("uneg11<float>(maxi64 - int64_t(a)) a=5121", 1.00000000000000000000L);
+insert("u01fixedpt<float>(maxi64 - int64_t(a)) a=5121", 0.499999940395355224609L);
+insert("u01<double>(maxi64 - int64_t(a)) a=5121", 0.499999999999999722444L);
+insert("uneg11<double>(maxi64 - int64_t(a)) a=5121", 0.999999999999999444888L);
+insert("u01fixedpt<double>(maxi64 - int64_t(a)) a=5121", 0.499999999999999666933L);
+insert("u01<long double>(maxi64 - int64_t(a)) a=5121", 0.499999999999999722363L);
+insert("uneg11<long double>(maxi64 - int64_t(a)) a=5121", 0.999999999999999444726L);
+insert("u01fixedpt<long double>(maxi64 - int64_t(a)) a=5121", 0.499999999999999722390L);
+// ./ut_uniform: SUCCESS
diff --git a/examples/ut_uniform_reference.hpp b/examples/ut_uniform_reference.hpp
new file mode 100644
index 0000000..d53d959
--- /dev/null
+++ b/examples/ut_uniform_reference.hpp
@@ -0,0 +1,19 @@
+RefHist("u01 Threefry4x32 float", " 0 0 0 0 0 0 0 0 0 0 0 0 0 301 330 326 320 295 291 298 287 305 307 310 316 314");
+RefHist("u01 Threefry4x32 double", " 0 0 0 0 0 0 0 0 0 0 0 0 0 301 330 326 320 295 291 298 287 305 307 310 316 314");
+RefHist("u01 Threefry4x32 long double", " 0 0 0 0 0 0 0 0 0 0 0 0 0 301 330 326 320 295 291 298 287 305 307 310 316 314");
+RefHist("u01 Threefry4x64 float", " 0 0 0 0 0 0 0 0 0 0 0 0 0 308 295 322 300 316 291 311 289 346 297 310 340 275");
+RefHist("u01 Threefry4x64 double", " 0 0 0 0 0 0 0 0 0 0 0 0 0 308 295 322 300 316 291 311 289 346 297 310 340 275");
+RefHist("u01 Threefry4x64 long double", " 0 0 0 0 0 0 0 0 0 0 0 0 0 308 295 322 300 316 291 311 289 346 297 310 340 275");
+RefHist("uneg11 Threefry4x32 float", " 156 139 148 146 159 148 159 168 142 160 156 161 153 143 158 150 180 174 152 163 157 129 166 151 140 142");
+RefHist("uneg11 Threefry4x32 double", " 156 139 148 146 159 148 159 168 142 160 156 161 153 143 158 150 180 174 152 163 157 129 166 151 140 142");
+RefHist("uneg11 Threefry4x32 long double", " 156 139 148 146 159 148 159 168 142 160 156 161 153 143 158 150 180 174 152 163 157 129 166 151 140 142");
+RefHist("uneg11 Threefry4x64 float", " 159 141 148 184 162 142 155 137 173 187 153 140 135 164 144 146 149 151 171 152 148 137 179 146 145 152");
+RefHist("uneg11 Threefry4x64 double", " 159 141 148 184 162 142 155 137 173 187 153 140 135 164 144 146 149 151 171 152 148 137 179 146 145 152");
+RefHist("uneg11 Threefry4x64 long double", " 159 141 148 184 162 142 155 137 173 187 153 140 135 164 144 146 149 151 171 152 148 137 179 146 145 152");
+RefHist("u01fixedpt Threefry4x32 float", " 0 0 0 0 0 0 0 0 0 0 0 0 0 301 330 326 320 295 291 298 287 305 307 310 316 314");
+RefHist("u01fixedpt Threefry4x32 double", " 0 0 0 0 0 0 0 0 0 0 0 0 0 301 330 326 320 295 291 298 287 305 307 310 316 314");
+RefHist("u01fixedpt Threefry4x32 long double", " 0 0 0 0 0 0 0 0 0 0 0 0 0 301 330 326 320 295 291 298 287 305 307 310 316 314");
+RefHist("u01fixedpt Threefry4x64 float", " 0 0 0 0 0 0 0 0 0 0 0 0 0 308 295 322 300 316 291 311 289 346 297 310 340 275");
+RefHist("u01fixedpt Threefry4x64 double", " 0 0 0 0 0 0 0 0 0 0 0 0 0 308 295 322 300 316 291 311 289 346 297 310 340 275");
+RefHist("u01fixedpt Threefry4x64 long double", " 0 0 0 0 0 0 0 0 0 0 0 0 0 308 295 322 300 316 291 311 289 346 297 310 340 275");
+// ./ut_uniform: SUCCESS
diff --git a/examples/util.h b/examples/util.h
new file mode 100644
index 0000000..c78b7d8
--- /dev/null
+++ b/examples/util.h
@@ -0,0 +1,291 @@
+/*
+Copyright 2010-2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#ifndef UTIL_H__
+#define UTIL_H__
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <errno.h>
+#include <assert.h>
+#include <math.h>
+#include <Random123/features/compilerfeatures.h>
+
+extern const char *progname;
+extern int debug;
+extern int verbose;
+
+#if defined(_MSC_VER)
+#define NOMINMAX /* tells Windows.h to NOT define min() & max() */
+#include <Windows.h>
+R123_STATIC_INLINE double now(){
+    LARGE_INTEGER f; // ticks per second
+    LARGE_INTEGER t;
+    QueryPerformanceFrequency(&f);
+    QueryPerformanceCounter(&t); // ticks since epoch
+    return ((double)t.QuadPart)/((double)f.QuadPart);
+}
+#else // _MSC_VER
+#include <sys/time.h>
+R123_STATIC_INLINE double now(){
+    struct timeval tv; 
+    gettimeofday(&tv, 0); 
+    return 1.e-6*tv.tv_usec + tv.tv_sec;
+}
+#endif // _MSC_VER
+
+/* timer returns difference between current time and *d, also updates *d with current time. */
+R123_STATIC_INLINE double timer(double *d) {
+    double dold = *d;
+    *d = now();
+    return *d - dold;
+}
+
+#define WHITESPACE " \t\f\v\n"
+char *nameclean(char *s)
+{
+    char *cp = s, *cp2, *cpend = s + strlen(s);
+    size_t i;
+
+    cp2 = s;
+    while ((cp2 = strstr(cp2, "(R)")) != NULL) {
+	*cp2++ = ' ';
+	*cp2++ = ' ';
+	*cp2++ = ' ';
+    }
+    cp2 = s;
+    while ((cp2 = strstr(cp2, "CPU")) != NULL) {
+	*cp2++ = ' ';
+	*cp2++ = ' ';
+	*cp2++ = ' ';
+    }
+    cp2 = s;
+    while ((cp2 = strchr(cp2, '@')) != NULL) {
+	*cp2++ = ' ';
+    }
+    while ((i = strcspn(cp, WHITESPACE)) > 0) {
+	cp += i;
+	i = strspn(cp, WHITESPACE);
+	if (i > 0) {
+	    cp2 = cp + i;
+	    *cp++ = ' ';
+	    if (cp2 > cp) {
+		memmove(cp, cp2, cpend - cp);
+		cpend -= cp2 - cp;
+	    }
+	}
+    }
+    return s;
+}
+
+#undef WHITESPACE
+
+/* strdup may or may not be in string.h, depending on the value
+   of the pp-symbol _XOPEN_SOURCE and other arcana.  Just
+   do it ourselves.
+   Mnemonic:  "ntcs" = "nul-terminated character string" */
+char *ntcsdup(const char *s){
+    char *p = (char *)malloc(strlen(s)+1);
+    strcpy(p, s);
+    return p;
+}
+
+/* MSVC doesn't know about strtoull.  Strictly speaking, strtoull
+   isn't standardized in C++98, either, but that seems not to be a
+   problem so we blissfully ignore it and use strtoull (or its MSVC
+   equivalent, _strtoui64) in both C and C++.  If strtoull in C++
+   becomes a problem, we can adopt the prtu strategy (see below) and
+   write C++ versions of strtouNN, that use an istringstream
+   instead. */
+#ifdef _MSC_FULL_VER
+#define strtoull _strtoui64
+#endif
+uint32_t strtou32(const char *p, char **endp, int base){
+    uint32_t ret;
+    errno = 0;
+    ret = strtoul(p, endp, base);
+    assert(errno==0);
+    return ret;
+}
+uint64_t strtou64(const char *p, char **endp, int base){
+    uint64_t ret;
+    errno = 0;
+    ret = strtoull(p, endp, base);
+    assert(errno==0);
+    return ret;
+}
+
+#if defined(__cplusplus)
+/* Strict C++98 doesn't grok %llx or unsigned long long, and with
+   aggressive error-checking, e.g., g++ -pedantic -Wall, will refuse
+   to compile code like:
+
+     fprintf(stderr, "%llx", (R123_ULONG_LONG)v);
+
+   On the other hand, when compiling to a 32-bit target, the only
+   64-bit type is long long, so we're out of luck if we can't use llx.
+   A portable, almost-standard way to do I/O on uint64_t values in C++
+   is to use bona fide C++ I/O streams.  We are still playing
+   fast-and-loose with standards because C++98 doesn't have <stdint.h>
+   and hence doesn't even guarantee that there's a uint64_t, much less
+   that the insertion operator<<(ostream&) works correctly with
+   whatever we've typedef'ed to uint64_t in
+   <features/compilerfeatures.h>.  Hope for the best... */
+#include <iostream>
+#include <limits>
+template <typename T>
+void prtu(T val){
+    using namespace std;
+    cerr.width(std::numeric_limits<T>::digits/4);
+    char prevfill = cerr.fill('0');
+    ios_base::fmtflags prevflags = cerr.setf(ios_base::hex, ios_base::basefield);
+    cerr << val;
+    cerr.flags(prevflags);
+    cerr.fill(prevfill);
+    assert(!cerr.bad());
+}
+void prtu32(uint32_t v){ prtu(v); }
+void prtu64(uint64_t v){ prtu(v); }
+
+#else /* __cplusplus */
+/* C should be easy.  inttypes.h was standardized in 1999.  But Microsoft
+   refuses to recognize the 12-year old standard, so: */
+#if defined(_MSC_FULL_VER)
+#define PRIx32 "x"
+#define PRIx64 "I64x"
+#else /* _MSC_FULL_VER */
+#include <inttypes.h>
+#endif /* _MSVC_FULL_VER */
+void prtu32(uint32_t v){ fprintf(stderr, "%08" PRIx32, v); }
+void prtu64(uint64_t v){ fprintf(stderr, "%016" PRIx64, v); }
+
+#endif /* __cplusplus */
+
+/*
+ * Convert a hexfloat string of the form "0xA.BpN" to a double,
+ * where A and B are hex integers and N is a decimal integer
+ * exponent
+ */
+double
+hextod(const char *cp)
+{
+    uint64_t whole = 0, frac = 0;
+    int exponent = 0, len = 0;
+    double d;
+    char *s;
+    if (cp[0] == '0' && (cp[1] == 'x'||cp[1] == 'X'))
+	cp += 2;
+    whole = strtou64(cp, &s, 16);
+    if (s[0] == '.') {
+	char *cp = ++s;
+	frac = strtou64(s, &s, 16);
+	len = s - cp;
+    }
+    if (s[0] == 'p') {
+	s++;
+	exponent = atoi(s);
+    }
+    frac += whole<<(4*len);
+    exponent -= 4*len;
+    d = frac;
+    d = ldexp(d, exponent);
+    return d;
+}
+
+#define CHECKNOTEQUAL(x, y)  do { if ((x) != (y)) ; else { \
+    fprintf(stderr, "%s: %s line %d error %s == %s (%s)\n", progname, __FILE__, __LINE__, #x, #y, strerror(errno)); \
+    exit(1); \
+} } while (0)
+#define CHECKEQUAL(x, y)  do { if ((x) == (y)) ; else { \
+    fprintf(stderr, "%s: %s line %d error %s != %s (%s)\n", progname, __FILE__, __LINE__, #x, #y, strerror(errno)); \
+    exit(1); \
+} } while (0)
+#define CHECKZERO(x)  CHECKEQUAL((x), 0)
+#define CHECKNOTZERO(x)  CHECKNOTEQUAL((x), 0)
+
+#define dprintf(x) do { if (debug < 1) ; else { printf x; fflush(stdout); } } while (0)
+
+#define ALLZEROS(x, K, N) \
+do { \
+    int allzeros = 1; \
+    unsigned xi, xj; \
+    for (xi = 0; xi < (unsigned)(K); xi++)      \
+	for (xj = 0; xj < (unsigned)(N); xj++)          \
+	    allzeros = allzeros & ((x)[xi].v[xj] == 0); \
+    if (allzeros) fprintf(stderr, "%s: Unexpected, all %lu elements of %ux%u had all zeros!\n", progname, (unsigned long)K, (unsigned)N, (unsigned)sizeof(x[0].v[0])); \
+} while(0)
+
+/* Read in N words of width W into ARR */
+#define SCANFARRAY(ARR, NAME, N, W) \
+do { \
+    int xi, xj; \
+    unsigned long long xv; \
+    for (xi = 0; xi < (N); xi++) { \
+        /* Avoid any cleverness with SCNx##W because Microsoft (as of Visual Studio 10.x) silently trashes the stack by pretending that %hhx is %x). */ \
+	const char *xfmt = " %llx%n"; \
+	ret = sscanf(cp, xfmt, &xv, &xj); \
+	ARR.v[xi] = (uint##W##_t)xv; \
+	if (debug > 1) printf("line %d: xfmt for W=%d is \"%s\", got ret=%d xj=%d, %s[%d]=%llx cp=%s", linenum, W, xfmt, ret, xj, #ARR, xi, (unsigned long long) ARR.v[xi], cp); \
+	if (ret < 1) { \
+	    fprintf(stderr, "%s: ran out of words reading %s on line %d: " #NAME #N "x" #W " %2d %s", \
+		    progname, #ARR, linenum, rounds, line); \
+	    errs++; \
+	    return; \
+	} \
+	cp += xj; \
+    } \
+} while(0)
+
+#define PRINTARRAY(ARR, fp) \
+do { \
+    char ofmt[64]; \
+    size_t xj; \
+    /* use %lu and the cast (instead of z) for portability to Microsoft, sizeof(v[0]) should fit easily in an unsigned long.  Avoid inttypes for the same reason. */ \
+    sprintf(ofmt, " %%0%lullx", (unsigned long)sizeof(ARR.v[0])*2UL); \
+    for (xj = 0; xj < sizeof(ARR.v)/sizeof(ARR.v[0]); xj++) { \
+	fprintf(fp, ofmt, (unsigned long long) ARR.v[xj]); \
+    } \
+} while(0)
+
+#define PRINTLINE(NAME, N, W, R, ictr, ukey, octr, fp) \
+do { \
+    fprintf(fp, "%s %d ", #NAME #N "x" #W, R); \
+    PRINTARRAY(ictr, fp); \
+    putc(' ', fp); \
+    PRINTARRAY(ukey, fp); \
+    putc(' ', fp); \
+    PRINTARRAY(octr, fp); \
+    putc('\n', fp); \
+    fflush(fp); \
+} while(0)
+
+#endif /* UTIL_H__ */
diff --git a/examples/util_cpu.h b/examples/util_cpu.h
new file mode 100644
index 0000000..bde2db3
--- /dev/null
+++ b/examples/util_cpu.h
@@ -0,0 +1,198 @@
+/*
+Copyright 2010-2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#ifndef UTIL_CPU_H__
+#define UTIL_CPU_H__ 1
+
+#include "util.h"
+
+/*
+ * burn a little CPU by computing a logistic map function
+ * before reading /proc/cpuinfo, might fool
+ * energy-saving CPU into showing its true speed
+ */
+static double warmupCPU(long n){
+    double d = 0.3;
+    int i;
+    for (i = 0; i < n; i++) {
+	d = 3.6 * d * (1. - d);
+    }
+    dprintf(("logistic map produced %f\n", d));
+    return d;
+}
+
+#if defined(_MSC_VER)
+#define NOMINMAX    /* tells Windows.h to NOT define min() & max() */
+#include <Windows.h>
+static double clockspeedHz(int *ncores, char **modelnamep) {
+    /*
+     * To-Do: one could read clock speed from registry.  Or
+     * maybe WMI?
+     * http://www.codeproject.com/KB/system/Processor_Speed.aspx
+     * http://msdn.microsoft.com/en-us/library/aa394373(v=vs.85).aspx
+     */
+    if (ncores) {
+	SYSTEM_INFO sysinfo;
+	GetSystemInfo(&sysinfo);
+	*ncores = sysinfo.dwNumberOfProcessors;
+    }
+    if (modelnamep) {
+	/*
+	 * To-Do: use __cpuid to get brand string see
+	 * http://msdn.microsoft.com/en-us/library/hskdteyh%28v=vs.80%29.aspx
+	 */
+	*modelnamep = ntcsdup("Windows");
+   }
+   return 0.;
+}
+#elif defined(__APPLE__)
+static double clockspeedHz(int *ncores, char **modelnamep){
+    FILE *fp = popen("sysctl hw.cpufrequency", "r");
+    double hz = 0.;
+    double d = warmupCPU(100L*1000L*1000L);
+    if( fscanf(fp, "%*s %lf", &hz)  != 1 )
+ 	return 0.;
+    pclose(fp);
+    if(ncores) *ncores = 1;
+    if(modelnamep) *modelnamep = ntcsdup("Apple");
+    return hz;
+}
+#elif defined(__SUNPRO_CC) || defined(__SUNPRO_C) || (defined(__GNUC__)&&defined(__sun__))
+static double clockspeedHz(int *ncores, char  **modelnamep){
+    FILE *fp = popen("kstat -p -s current_clock_Hz", "r");
+    double hz = 0.;
+    double d = warmupCPU(100L*1000L*1000L);
+    /* To-do: get a model name from kstat too */
+    if(modelnamep) *modelnamep = ntcsdup("Solaris");
+    int nc = 0;
+    while( fscanf(fp, "%*s %lf", &hz) == 1 ){
+        nc++;
+    }
+    if(ncores) *ncores = nc;
+    return hz;
+}
+#elif defined(__linux__)
+/* Read the clock speed from /proc/cpuinfo - Linux-specific! */
+static double clockspeedHz(int *ncores, char **modelnamep){
+    char *s, buf[1024]; /* long enough for any /proc/cpuinfo line */
+    double Mhz = 0.;
+    double xMhz;
+    int i;
+    double d = warmupCPU(100L*1000L*1000L);
+    FILE *fp;
+    if ((fp = fopen("/proc/cpuinfo", "r")) == NULL) {
+	if (ncores) *ncores = 1;
+	if (modelnamep) *modelnamep = ntcsdup("unknown");
+	return 0.;
+    }
+    if (ncores) *ncores = 0;
+    while (fgets(buf, sizeof buf, fp) != NULL) {
+	if (modelnamep && (s = strstr(buf, "model name")) != NULL) {
+	    CHECKNOTZERO(s = strchr(s, ':'));
+	    while (*++s == ' ')
+		;
+	    i = strchr(s, '\n') - s;
+	    *modelnamep = (char *)malloc(i + 1);
+	    memcpy(*modelnamep, s, i);
+	    (*modelnamep)[i] = '\0';
+	    dprintf(("raw modelname is %d bytes: %s\n", i, *modelnamep));
+	    nameclean(*modelnamep);
+	    dprintf(("cleaned modelname is %s\n", *modelnamep));
+	}
+	if ((s = strstr(buf, "cpu MHz")) || (s = strstr(buf, "clock"))) {
+	    if (s[1] == 'p') // cpu MHz
+		CHECKNOTZERO(sscanf(s, "cpu MHz : %lf %n", &xMhz, &i));
+	    else // clock
+		CHECKNOTZERO(sscanf(s, "clock : %lfMHz %n", &xMhz, &i));
+	    dprintf(("parsed %f %d\n", xMhz, i));
+	    if (xMhz > Mhz) Mhz = xMhz;
+	    s += i;
+	    if (ncores) *ncores += 1;
+	}
+    }
+    d = Mhz*1e6;
+    dprintf(("clockspeed is %f\n", d));
+    return d;
+}
+#elif defined(__FreeBSD__)
+static double clockspeedHz(int *nnodes, char **modelnamep){
+    /* Seems to work with FreeBSD 8.2. */
+    FILE *fp = popen("sysctl hw.ncpu hw.clockrate hw.model", "r");
+    int ncpu, clockrate;
+    if( fscanf(fp, "%*s%d%*s%d%*s", &ncpu, &clockrate) != 2 )
+	return 0;
+    if(nnodes) *nnodes = ncpu;
+    if(modelnamep){
+	char buf[256];
+	if(fgets(buf, sizeof(buf), fp) == NULL) 
+	    *modelnamep = ntcsdup("error reading sysctl");
+	else
+	    *modelnamep = ntcsdup(buf);
+    }
+    return 1.e6*clockrate;
+}
+#else
+static double clockspeedHz(int *nnodes, char **modelnamep){
+    if(nnodes) *nnodes = 1;
+    if(modelnamep) *modelnamep = ntcsdup("unknown");
+    return 0.;
+}
+#endif /* ! _MSC_VER */
+
+#define uint unsigned int
+typedef struct test_info {
+    double hz;
+    int ncores;
+    char *cpuname;
+} CPUInfo;
+
+CPUInfo *cpu_init(const char *arg)
+{
+    CPUInfo *tp;
+    tp = (CPUInfo*)malloc(sizeof(CPUInfo));
+    tp->hz = clockspeedHz(&tp->ncores, &tp->cpuname);
+    printf("%d cores, %.3f Ghz, cpu %s\n", tp->ncores, tp->hz*1e-9, tp->cpuname);
+    if (arg) {
+	int n = atoi(arg);
+	if (n) {
+	    printf("setting cores to %d\n", n);
+	    tp->ncores = n;
+	}
+    }
+    return tp;
+}
+
+void cpu_done(CPUInfo *tp)
+{
+    free(tp->cpuname);
+    free(tp);
+}
+#endif /* UTIL_CPU_H__ */
diff --git a/examples/util_cuda.h b/examples/util_cuda.h
new file mode 100644
index 0000000..1cb4476
--- /dev/null
+++ b/examples/util_cuda.h
@@ -0,0 +1,116 @@
+/*
+Copyright 2010-2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#ifndef UTIL_CUDA_H__
+#define UTIL_CUDA_H__
+
+#include "util.h"
+
+#include <cuda.h>
+#include <cuda_runtime_api.h>
+
+// utility macros to check return codes and complain/exit on failure
+#define CHECKLAST(MSG) 	do { cudaError_t e = cudaGetLastError(); if (e != cudaSuccess) {fprintf(stderr, "%s:%d: CUDA Error: %s: %s\n", __FILE__, __LINE__, (MSG), cudaGetErrorString(e)); exit(1); }} while(0)
+#define CHECKCALL(RET)	do { cudaError_t e = (RET); if (e != cudaSuccess) { fprintf(stderr, "%s:%d: CUDA Error: %s\n", __FILE__, __LINE__, cudaGetErrorString(e)); exit(1); } } while(0)
+
+typedef struct cuda_info {
+    int devnum, cores, blocks_per_grid, threads_per_block;
+    double cycles;
+    struct cudaDeviceProp dev;
+} CUDAInfo;
+
+// If devstr is none, chooses device with most cores.
+static CUDAInfo *cuda_init(const char *devstr)
+{
+    CUDAInfo *tp;
+    int i, ndev, cores, devcores;
+    double cycles;
+    CHECKNOTZERO(tp = (CUDAInfo *) malloc(sizeof(CUDAInfo)));
+    CHECKCALL( cudaGetDeviceCount(&ndev) );
+    devcores = 0;
+    for (i = 0; i < ndev; i++) {
+	struct cudaDeviceProp cu;
+	CHECKCALL( cudaGetDeviceProperties (&cu, i) );
+	// Number of cores is not available from a query, have to hardwire
+	// some knowledge here!
+	cores = cu.multiProcessorCount;
+	if (cu.major == 1 && cu.minor >= 0 && cu.minor <= 3) {
+	    // 1.0 (G80, G92, aka GTX880, Tesla [CSD]870) to 1.3 (GT200, aka GTX280, Tesla [CS]10xx) have 8 cores per MP
+	    cores *= 8;
+	} else if (cu.major == 2 && cu.minor == 0) {
+	    // 2.0 (G100, aka GTX480, Tesla/Fermi [CSM]20[567]0, and GF110, aka GTX580, M2090)
+	    cores *= 32;
+	} else if (cu.major == 2 && cu.minor == 1) {
+	    // 2.1 (GF104, GF114, GF116 aka GTX [45][56]0)
+	    cores *= 48;
+	} else if (cu.major == 3 && (cu.minor == 0||cu.minor==5)) {
+	    // 3.0 (Kepler GK104 aka GTX 680)
+	    cores *= 192;
+	} else {
+	    fprintf(stderr, "Unknown # of cores per MP for this device, assuming 1, so cpb will be wrong\n");
+	}
+	/* clockrate is in KHz */
+	cycles = 1e3 * cu.clockRate * cores;
+	printf("  %d: maj %d min %d %s%s ( %d units @ %g MHz ECC=%d %d cores %g Gcycles/s)\n",
+	   i, cu.major, cu.minor, nameclean(cu.name), cu.integrated ? " integrated" : "",
+	   cu.multiProcessorCount, cu.clockRate*1e-3, cu.ECCEnabled, cores, cycles*1e-9);
+	if (devstr && strstr(cu.name, devstr) == NULL) {
+	    dprintf(("skipping device %s\n", cu.name));
+	    continue;
+	}
+	if (cores > devcores) {
+	    devcores = cores;
+	    tp->devnum = i;
+	    tp->cores = cores;
+	    tp->cycles = cycles;
+	    tp->dev = cu;
+	}
+    }
+    if (devcores == 0) {
+	fprintf(stderr, "could not find specified device\n");
+	exit(1);
+    }
+    tp->blocks_per_grid = tp->cores; /* seems like a good guess */
+    tp->threads_per_block = tp->dev.warpSize * 2;
+    dprintf(("Using CUDA device %d, %d cores, %g cycles, will try %d blocks/grid %d threads/block\n",
+	     tp->devnum, tp->cores, tp->cycles, tp->blocks_per_grid, tp->threads_per_block));
+    CHECKCALL(cudaSetDevice(tp->devnum));
+    dprintf(("cuda_init done\n"));
+    return tp;
+}
+
+static void cuda_done(CUDAInfo *tp)
+{
+    dprintf(("cuda_done\n"));
+    free(tp);
+}
+
+#endif /* UTIL_CUDA_H__ */
diff --git a/examples/util_demangle.hpp b/examples/util_demangle.hpp
new file mode 100644
index 0000000..4ea34b8
--- /dev/null
+++ b/examples/util_demangle.hpp
@@ -0,0 +1,75 @@
+/*
+Copyright 2010-2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#ifndef demangle_dot_hpp_
+#include <string>
+
+// Every compiler has a demangling library *somewhere*.  Unfortunately, they're
+// all different...
+
+#ifdef __GNUC__
+ // Clang defines __GNUC__, but clang3.1 with -stdlib=libc++ can't
+ // find a <cxxabi.h> even though it *can* find the symbols at link
+ // time.  I suspect this is a bug/oversight in the installation
+ // process (which, in June 2012 is still pretty fluid for libc++), so
+ // it might be fixed in the future.  On the other hand, the API in
+ // cxxabi.h is locked down pretty tightly, so writing out an explicit
+ // extern declaration is pretty safe, and avoids a rats nest of
+ // ifdefs.  It is tempting to use clang's __has_include(<cxxabi.h>),
+ // but it feels like more #ifdefs with no obvious upside.
+ //
+ // #include <cxxabi.h>
+extern "C"{
+  char*
+  __cxa_demangle(const char* __mangled_name, char* __output_buffer,
+		 size_t* __length, int* __status);
+}
+#endif
+#include <typeinfo>
+
+template <typename T>
+std::string demangle(const T& ignored){
+#ifdef __GNUC__
+    int status;
+    char *realname = __cxa_demangle(typeid(ignored).name(), 0, 0, &status);
+    std::string ret;
+    if(status!=0 || realname==0)
+        ret = typeid(ignored).name();
+    else
+        ret = realname;
+    free(realname);
+    return ret;
+#else
+    return typeid(ignored).name();
+#endif
+}
+
+#endif
diff --git a/examples/util_expandtpl.h b/examples/util_expandtpl.h
new file mode 100644
index 0000000..1e209df
--- /dev/null
+++ b/examples/util_expandtpl.h
@@ -0,0 +1,77 @@
+/*
+Copyright 2010-2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#ifndef TEST_TPL
+#error "TEST_TPL not defined before including util_expandtpl.h"
+#else
+/*
+ * This is included by various files after defining TEST_TPL to
+ * expand TEST_TPL for each of the RNGs we want to test.
+ * TEST_TPL args are the name of the RNG, N, W, and R,
+ * N being the number of words, W being the wordsize in bits,
+ * and R being the number of rounds.
+ */
+
+#if TRY_OTHER
+TEST_TPL(mrg, 1, 32, 1)
+TEST_TPL(mt, 1, 32, 1)
+TEST_TPL(mtsmall, 1, 32, 1)
+TEST_TPL(cmrg, 1, 32, 1)
+TEST_TPL(xorwow, 1, 32, 1)
+#endif
+#if TRY_PHILOX2X32
+TEST_TPL(philox, 2, 32, 7)
+TEST_TPL(philox, 2, 32, 10)
+#endif
+TEST_TPL(philox, 4, 32, 7)
+TEST_TPL(philox, 4, 32, 10)
+#if R123_USE_PHILOX_64BIT
+TEST_TPL(philox, 2, 64, 6)
+TEST_TPL(philox, 2, 64, 10)
+TEST_TPL(philox, 4, 64, 7)
+TEST_TPL(philox, 4, 64, 10)
+#endif
+TEST_TPL(threefry, 2, 64, 13)
+TEST_TPL(threefry, 2, 64, 20)
+TEST_TPL(threefry, 4, 64, 12)
+TEST_TPL(threefry, 4, 64, 20)
+TEST_TPL(threefry, 4, 32, 12)
+TEST_TPL(threefry, 4, 32, 20)
+TEST_TPL(threefry, 4, 64, 72)
+
+#if R123_USE_AES_NI
+TEST_TPL(ars, 4, 32, 5)
+TEST_TPL(ars, 4, 32, 7)
+TEST_TPL(aesni, 4, 32, 10)
+#endif
+
+#undef TEST_TPL
+#endif /* TEST_TPL */
diff --git a/examples/util_m128.h b/examples/util_m128.h
new file mode 100644
index 0000000..b40511b
--- /dev/null
+++ b/examples/util_m128.h
@@ -0,0 +1,87 @@
+/*
+Copyright 2010-2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#ifndef UTIL_M128_H__
+#define UTIL_M128_H__
+#include <Random123/features/sse.h>
+
+// The formatting in fips-197 seems to correspond to
+// byte[15] [14] ... [0]
+__m128i m128i_from_charbuf(const char *s){
+    unsigned int bytes[16];
+    sscanf(s, "%02x%02x%02x%02x" "%02x%02x%02x%02x" "%02x%02x%02x%02x" "%02x%02x%02x%02x",
+             &bytes[0], &bytes[1], &bytes[2], &bytes[3],
+             &bytes[4], &bytes[5], &bytes[6], &bytes[7],
+             &bytes[8], &bytes[9], &bytes[10], &bytes[11],
+             &bytes[12], &bytes[13], &bytes[14], &bytes[15]);
+    return _mm_set_epi8(
+                         bytes[15], bytes[14], bytes[13], bytes[12],
+                         bytes[11], bytes[10], bytes[9], bytes[8],
+                         bytes[7], bytes[6], bytes[5], bytes[4],
+                         bytes[3], bytes[2], bytes[1], bytes[0]
+                         );
+}
+
+#define M128_STR_SIZE 34    /* minimum size of the charbuf "hex" argument */
+
+char *m128i_to_charbuf(__m128i m, char *hex){
+    union {
+	unsigned char bytes[16];
+	__m128i m;
+    } u;
+    _mm_storeu_si128((__m128i*)&u.bytes[0], m);
+    sprintf(hex, "%02x%02x%02x%02x" "%02x%02x%02x%02x"
+            " "
+            "%02x%02x%02x%02x""%02x%02x%02x%02x",
+             u.bytes[0], u.bytes[1], u.bytes[2], u.bytes[3],
+             u.bytes[4], u.bytes[5], u.bytes[6], u.bytes[7],
+             u.bytes[8], u.bytes[9], u.bytes[10], u.bytes[11],
+             u.bytes[12], u.bytes[13], u.bytes[14], u.bytes[15]);
+
+    return hex;
+}
+
+#ifdef __cplusplus
+#include <string>
+
+__m128i m128i_from_string(const std::string& s) {
+    return m128i_from_charbuf(s.c_str());
+}
+
+std::string m128i_to_string(__m128i m) {
+    char hex[M128_STR_SIZE];
+    
+    m128i_to_charbuf(m, hex);
+    return std::string(hex);
+}
+#endif /* __cplusplus */
+
+#endif /* UTIL_M128_H__ */
diff --git a/examples/util_opencl.h b/examples/util_opencl.h
new file mode 100644
index 0000000..e02db98
--- /dev/null
+++ b/examples/util_opencl.h
@@ -0,0 +1,353 @@
+/*
+Copyright 2010-2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#ifndef UTIL_OPENCL_H__
+#define UTIL_OPENCL_H__
+/*
+ * has a couple of utility functions to setup and teardown OpenCL.
+ * Avoid much boilerplate in every OpenCL program
+ */
+
+#include "util.h"
+
+#if defined(__APPLE__) || defined(__MACOSX)
+#include <OpenCL/cl.h>
+#include <OpenCL/cl_ext.h>
+#else
+#include <CL/cl.h>
+#include <CL/cl_ext.h>
+#endif
+
+#define UCL_STRSIZE 128
+
+typedef struct ucl_info {
+    cl_context ctx;
+    cl_program prog;
+    cl_device_id devid;
+    cl_command_queue cmdq;
+    cl_uint clkfreq, compunits;
+    size_t wgsize;
+    int cores;
+    double cycles;
+    char vendor[UCL_STRSIZE], devname[UCL_STRSIZE],
+	version[UCL_STRSIZE], driver[UCL_STRSIZE];
+    int computeflags;
+    cl_device_fp_config fpdbl;
+    cl_device_type devtype;
+} UCLInfo;
+
+/* Miscellaneous checking macros for convenience */
+static char *print_cl_errstring(cl_int err) {
+    switch (err) {
+        case CL_SUCCESS:                          return strdup("Success!");
+        case CL_DEVICE_NOT_FOUND:                 return strdup("Device not found.");
+        case CL_DEVICE_NOT_AVAILABLE:             return strdup("Device not available");
+        case CL_COMPILER_NOT_AVAILABLE:           return strdup("Compiler not available");
+        case CL_MEM_OBJECT_ALLOCATION_FAILURE:    return strdup("Memory object allocation failure");
+        case CL_OUT_OF_RESOURCES:                 return strdup("Out of resources");
+        case CL_OUT_OF_HOST_MEMORY:               return strdup("Out of host memory");
+        case CL_PROFILING_INFO_NOT_AVAILABLE:     return strdup("Profiling information not available");
+        case CL_MEM_COPY_OVERLAP:                 return strdup("Memory copy overlap");
+        case CL_IMAGE_FORMAT_MISMATCH:            return strdup("Image format mismatch");
+        case CL_IMAGE_FORMAT_NOT_SUPPORTED:       return strdup("Image format not supported");
+        case CL_BUILD_PROGRAM_FAILURE:            return strdup("Program build failure");
+        case CL_MAP_FAILURE:                      return strdup("Map failure");
+        case CL_INVALID_VALUE:                    return strdup("Invalid value");
+        case CL_INVALID_DEVICE_TYPE:              return strdup("Invalid device type");
+        case CL_INVALID_PLATFORM:                 return strdup("Invalid platform");
+        case CL_INVALID_DEVICE:                   return strdup("Invalid device");
+        case CL_INVALID_CONTEXT:                  return strdup("Invalid context");
+        case CL_INVALID_QUEUE_PROPERTIES:         return strdup("Invalid queue properties");
+        case CL_INVALID_COMMAND_QUEUE:            return strdup("Invalid command queue");
+        case CL_INVALID_HOST_PTR:                 return strdup("Invalid host pointer");
+        case CL_INVALID_MEM_OBJECT:               return strdup("Invalid memory object");
+        case CL_INVALID_IMAGE_FORMAT_DESCRIPTOR:  return strdup("Invalid image format descriptor");
+        case CL_INVALID_IMAGE_SIZE:               return strdup("Invalid image size");
+        case CL_INVALID_SAMPLER:                  return strdup("Invalid sampler");
+        case CL_INVALID_BINARY:                   return strdup("Invalid binary");
+        case CL_INVALID_BUILD_OPTIONS:            return strdup("Invalid build options");
+        case CL_INVALID_PROGRAM:                  return strdup("Invalid program");
+        case CL_INVALID_PROGRAM_EXECUTABLE:       return strdup("Invalid program executable");
+        case CL_INVALID_KERNEL_NAME:              return strdup("Invalid kernel name");
+        case CL_INVALID_KERNEL_DEFINITION:        return strdup("Invalid kernel definition");
+        case CL_INVALID_KERNEL:                   return strdup("Invalid kernel");
+        case CL_INVALID_ARG_INDEX:                return strdup("Invalid argument index");
+        case CL_INVALID_ARG_VALUE:                return strdup("Invalid argument value");
+        case CL_INVALID_ARG_SIZE:                 return strdup("Invalid argument size");
+        case CL_INVALID_KERNEL_ARGS:              return strdup("Invalid kernel arguments");
+        case CL_INVALID_WORK_DIMENSION:           return strdup("Invalid work dimension");
+        case CL_INVALID_WORK_GROUP_SIZE:          return strdup("Invalid work group size");
+        case CL_INVALID_WORK_ITEM_SIZE:           return strdup("Invalid work item size");
+        case CL_INVALID_GLOBAL_OFFSET:            return strdup("Invalid global offset");
+        case CL_INVALID_EVENT_WAIT_LIST:          return strdup("Invalid event wait list");
+        case CL_INVALID_EVENT:                    return strdup("Invalid event");
+        case CL_INVALID_OPERATION:                return strdup("Invalid operation");
+        case CL_INVALID_GL_OBJECT:                return strdup("Invalid OpenGL object");
+        case CL_INVALID_BUFFER_SIZE:              return strdup("Invalid buffer size");
+        case CL_INVALID_MIP_LEVEL:                return strdup("Invalid mip-map level");
+        default:                                  return strdup("Unknown");
+    }
+} 
+
+static const char *cldevtypestr(cl_device_type c) {
+    switch (c) {
+    case CL_DEVICE_TYPE_CPU: return "CPU";
+    case CL_DEVICE_TYPE_GPU: return "GPU";
+    case CL_DEVICE_TYPE_ACCELERATOR: return "ACCELERATOR";
+    case CL_DEVICE_TYPE_DEFAULT: return "DEFAULT";
+    default: return "UNKNOWN";
+    }
+}
+
+#define CHECKERR(x) do { \
+    (x); \
+    if (err != CL_SUCCESS) { \
+	fprintf(stderr, "%s: error %d: %s from %s\n", progname, err, print_cl_errstring(err), #x); \
+	exit(1); \
+    } \
+} while(0)
+
+#define CHECK(x) CHECKERR(err = (x))
+
+static UCLInfo *opencl_init(const char *devstr, const char *src,
+			    const char *options)
+{
+#define UCL_MAX_PROPERTIES 32
+#define UCL_MAX_PLATFORMS 8
+#define UCL_MAX_DEVICES 16
+    UCLInfo *tp;
+    cl_context_properties ctxprop[UCL_MAX_PROPERTIES];
+    cl_int err;
+    cl_platform_id platforms[UCL_MAX_PLATFORMS];
+    cl_uint nplatforms, ndevices;
+    cl_device_id devices[UCL_MAX_DEVICES];
+    const char *srcstr[2], *clbinfile;
+    unsigned i, j;
+    int cores, devcores;
+
+    /* get list of platforms */
+    CHECK(clGetPlatformIDs(0, NULL, &nplatforms));
+    dprintf(("nplatforms = %d\n", nplatforms));
+    CHECK(clGetPlatformIDs(UCL_MAX_PLATFORMS, platforms, &nplatforms));
+    if (nplatforms == 0) {
+	fprintf(stderr, "No OpenCL platforms available\n");
+	return NULL;
+    }
+    dprintf(("found %d platform%s:\n", nplatforms, nplatforms == 1 ? "" : "s"));
+    CHECKNOTZERO(tp = (UCLInfo *) malloc(sizeof(UCLInfo)));
+    ctxprop[0] = CL_CONTEXT_PLATFORM;
+    ctxprop[1] = 0; /* will fill in platform in loop */
+    ctxprop[2] = 0;
+    cores = devcores = 0;
+    for (i = 0; i < nplatforms; i++) {
+	dprintf(("platform %d: 0x%lx\n", i, (unsigned long)platforms[i]));
+	CHECK(clGetDeviceIDs(platforms[i], CL_DEVICE_TYPE_ALL,
+			     UCL_MAX_DEVICES, devices, &ndevices));
+	dprintf(("platform 0x%lx has %d devices:\n", (unsigned long)platforms[i], ndevices));
+	for (j = 0; j < ndevices; j++) {
+	    UCLInfo uc;
+	    uc.devid = devices[j];
+	    CHECK(clGetDeviceInfo(devices[j], CL_DEVICE_NAME,
+				  sizeof uc.devname, uc.devname, 0));
+	    nameclean(uc.devname);
+	    CHECK(clGetDeviceInfo(devices[j], CL_DEVICE_VENDOR,
+				  sizeof uc.vendor, uc.vendor, 0));
+	    CHECK(clGetDeviceInfo(devices[j], CL_DEVICE_VERSION,
+				  sizeof uc.version, uc.version, 0));
+	    CHECK(clGetDeviceInfo(devices[j], CL_DRIVER_VERSION,
+				  sizeof uc.driver, uc.driver, 0));
+	    CHECK(clGetDeviceInfo(devices[j], CL_DEVICE_MAX_CLOCK_FREQUENCY,
+				  sizeof uc.clkfreq, &uc.clkfreq, 0));
+	    CHECK(clGetDeviceInfo(devices[j], CL_DEVICE_MAX_COMPUTE_UNITS,
+				  sizeof uc.compunits, &uc.compunits, 0));
+	    CHECK(clGetDeviceInfo(devices[j], CL_DEVICE_MAX_WORK_GROUP_SIZE,
+				  sizeof uc.wgsize, &uc.wgsize, 0));
+	    CHECK(clGetDeviceInfo(devices[j], CL_DEVICE_DOUBLE_FP_CONFIG,
+				  sizeof uc.fpdbl, &uc.fpdbl, 0));
+	    CHECK(clGetDeviceInfo(devices[j], CL_DEVICE_TYPE,
+				  sizeof uc.devtype, &uc.devtype, 0));
+	    uc.computeflags = 0;
+#ifdef CL_DEVICE_COMPUTE_CAPABILITY_MAJOR_NV
+	    {
+		cl_uint nvmaj, nvmin;
+		if(clGetDeviceInfo(devices[j], CL_DEVICE_COMPUTE_CAPABILITY_MAJOR_NV,
+				   sizeof(nvmaj), &nvmaj, 0) == CL_SUCCESS &&
+		   clGetDeviceInfo(devices[j], CL_DEVICE_COMPUTE_CAPABILITY_MINOR_NV,
+				   sizeof(nvmin), &nvmin, 0) == CL_SUCCESS) {
+		    uc.computeflags = nvmaj*10 + nvmin;
+		}
+	    }
+#endif
+	    cores = uc.compunits;
+	    /* XXX Hardwired knowledge about devices */
+	    if (strcmp("Cayman", uc.devname) == 0 || strcmp("Tahiti", uc.devname) == 0) {
+		/*
+		 * Most modern AMD compute units (shader cluster?)
+		 * are a 16-lane SIMD Engine with 4 (Cayman) or 5
+		 * (Cypress) VLIW slots per lane.  AMD appears to
+		 * think of each slot as a "stream processor"
+		 * (shader processor) in their marketing i.e. a
+		 * Cayman-based Radeon 6950 with 24 compute units
+		 * has 1536 stream processors.
+		 * With Tahiti/Southern Islands/GCN, each compute
+		 * unit has four vector execution SIMD units, each
+		 * with 16 lanes.  So the Tahiti-based Radeon 7970 with
+		 * 32 compute units has 2048 cores/stream processors.
+		 */
+		cores *= 16*4;
+	    } else if (strcmp("Cypress", uc.devname) == 0) {
+		cores *= 16*5;
+	    } else if (strstr(uc.devname, "GTX 6") ||
+		       strstr(uc.devname, "GTX 7") ||
+		       strstr(uc.devname, "GTX TITAN")) {
+		/* Kepler has 192 cores per SMX */
+		cores *= 192;
+	    } else if (strstr(uc.devname, "GTX 580") ||
+		       strstr(uc.devname, "GTX 480") ||
+		       strstr(uc.devname, "C20") ||
+		       strstr(uc.devname, "M20")) {
+		/*
+		 * Fermi has 32 cores per SM.  Maybe use
+		 * computeflags to figure this out?
+		 */
+		cores *= 32;
+	    } else if (uc.devtype == CL_DEVICE_TYPE_GPU) {
+		fprintf(stderr, "Unknown # of cores per unit for this device, assuming 1, so cpb may be wrong\n");
+	    }
+	    /* clkfreq is in Megahertz! */
+	    uc.cycles = 1e6 * uc.clkfreq * cores;
+	    dprintf(("  %d: device 0x%lx vendor %s %s version %s driver %s : %u compute units @ %u MHz %d cores cycles/s %.2f flags %d fpdbl 0x%lx\n",
+		     j, (unsigned long) devices[j], uc.vendor, uc.devname, uc.version,
+		     uc.driver, uc.compunits, uc.clkfreq, cores, uc.cycles, uc.computeflags,
+		     (unsigned long) uc.fpdbl));
+	    if (devstr && strstr(uc.devname, devstr) == NULL) {
+		if (verbose || debug)
+		    printf("skipping device %s\n", uc.devname);
+		continue;
+	    }
+	    if (cores > devcores) {
+		ctxprop[1] = (cl_context_properties) platforms[i];
+		devcores = cores;
+		*tp = uc;
+	    }
+	}
+    }
+    if (devcores == 0) {
+	fprintf(stderr, "%s: No matching devices found\n", progname);
+	exit(1);
+    }
+    tp->cores = devcores;
+
+    // using DEVICE_MAX_WORKGROUP_SIZE as the workgroup size seems to break
+    // weirdly on NVIDIA SDK 4.0.17 (the returned ctr arrays are all zeros)
+    // Halving it seems to produce as good or fractionally better performance
+    // on AMD, so seems a good choice. -- mm, 20110831
+    if (tp->wgsize > 2) {
+	tp->wgsize /= 2;
+    }
+    printf("device 0x%lx %s : %d units %d cores %.2f Gcycles/s %lu maxwg %s device\n",
+	     (unsigned long)tp->devid, tp->devname, tp->compunits, devcores, tp->cycles*1e-9, tp->wgsize, cldevtypestr(tp->devtype));
+    CHECKERR(tp->ctx = clCreateContext(ctxprop, 1, &tp->devid, 0, 0, &err));
+    dprintf(("create OpenCL context for device 0x%lx %s\n", (unsigned long)tp->devid, tp->devname));
+    CHECKERR(tp->cmdq = clCreateCommandQueue(tp->ctx, tp->devid, 0, &err));
+    /*
+     * create & compile OpenCL program from source string.  Could
+     * normalize this out of the context but that creates a more
+     * complex API.
+     */
+    dprintf(("create OpenCL program from source\n"));
+
+    /* If the device has support for double, enable it, might need it for u01.h */
+    i = 0;
+#define UCLDBL "\n\
+#ifdef cl_khr_fp64\n\
+#pragma OPENCL EXTENSION cl_khr_fp64 : enable\n\
+#elif defined(cl_amd_fp64)\n\
+#pragma OPENCL EXTENSION cl_amd_fp64 : enable\n\
+#endif\n\
+"
+    if (tp->fpdbl) {
+	srcstr[i++] = UCLDBL;
+    }
+    srcstr[i++] = src;
+    CHECKERR(tp->prog = clCreateProgramWithSource(tp->ctx, i, srcstr, 0, &err));
+    if ((err = clBuildProgram(tp->prog, 1, &tp->devid, options, 0, 0)) != CL_SUCCESS || debug) {
+	char errbuf[512*1024];
+	cl_int builderr = err;
+	CHECK(clGetProgramBuildInfo(tp->prog, tp->devid, CL_PROGRAM_BUILD_LOG,
+				    sizeof errbuf, &errbuf, 0));
+	if (errbuf[0]) {
+	    fprintf(stderr, "%s: OpenCL build for device id 0x%lx %s returned error %d: %s\n",
+		    progname, (unsigned long) tp->devid, tp->devname, builderr, errbuf);
+	}
+	if (builderr != CL_SUCCESS)
+	    exit(1);
+    }
+    if ((clbinfile = getenv("R123_SAVE_OPENCL_BINARY")) != NULL) {
+	size_t sz, szret;
+	unsigned char *binp;
+	FILE *fp;
+	CHECKERR(clGetProgramInfo(tp->prog, CL_PROGRAM_BINARY_SIZES, sizeof(sz), &sz, &szret));
+	CHECKNOTZERO(szret);
+	CHECKNOTZERO(sz);
+	printf("szret %lu, sz %lu\n", szret, (unsigned long) sz);
+	if (szret > 0 && sz > 0) {
+	    CHECKNOTZERO((binp = (unsigned char *) malloc(sz)));
+	    CHECKERR(clGetProgramInfo(tp->prog, CL_PROGRAM_BINARIES, sizeof(binp), &binp, &szret));
+	    CHECKNOTZERO(szret);
+	    CHECKNOTZERO(fp = fopen(clbinfile, "wc"));
+	    CHECKEQUAL(sz, fwrite(binp, 1, sz, fp));
+	    CHECKZERO(fclose(fp));
+	    free(binp);
+	    printf("wrote OpenCL binary to %s\n", clbinfile);
+	}
+    }
+    dprintf(("opencl_init done\n"));
+    /* XXX Save build programs as .deviceid so we can read them back and run? */
+    return tp;
+}
+
+
+static void opencl_done(UCLInfo *tp) {
+    cl_int err;
+    
+    dprintf(("opencl_done\n"));
+    CHECK(clReleaseCommandQueue(tp->cmdq));
+    tp->cmdq = 0;
+    CHECK(clReleaseProgram(tp->prog));
+    tp->prog = 0;
+    CHECK(clReleaseContext(tp->ctx));
+    tp->ctx = 0;
+    free(tp);
+}
+
+
+#endif /* UTIL_OPENCL_H__ */
diff --git a/examples/util_print.h b/examples/util_print.h
new file mode 100644
index 0000000..c272a36
--- /dev/null
+++ b/examples/util_print.h
@@ -0,0 +1,58 @@
+/*
+Copyright 2010-2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#ifndef UTIL_PRINT_H__
+#define UTIL_PRINT_H__
+
+#include <stdio.h>
+
+extern int verbose;
+
+#define TEST_TPL(NAME, N, W, R) \
+void printline_##NAME##N##x##W##_##R(NAME##N##x##W##_ukey_t ukey, NAME##N##x##W##_ctr_t ictr, NAME##N##x##W##_ctr_t *octrs, size_t nctr) \
+{ \
+    size_t i; \
+    for (i = 0; i < nctr; i++) { \
+	if (i > 0) { \
+	    printf("  [%lu]", (unsigned long)i); \
+	    PRINTARRAY(octrs[i], stdout); \
+	    putc('\n', stdout); \
+	    fflush(stdout); \
+	} else { \
+	    PRINTLINE(NAME, N, W, R, ictr, ukey, octrs[0], stdout); \
+	} \
+	if (verbose < 2) break; \
+    } \
+}
+
+#include "util_expandtpl.h"
+
+#endif /* UTIL_PRINT_H__ */
diff --git a/include/Random123/MicroURNG.hpp b/include/Random123/MicroURNG.hpp
new file mode 100644
index 0000000..beb0341
--- /dev/null
+++ b/include/Random123/MicroURNG.hpp
@@ -0,0 +1,146 @@
+/*
+Copyright 2010-2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#ifndef __MicroURNG_dot_hpp__
+#define __MicroURNG_dot_hpp__
+
+#include <stdexcept>
+#include <limits>
+
+namespace r123{
+/**
+    Given a CBRNG whose ctr_type has an unsigned integral value_type,
+    MicroURNG<CBRNG>(c, k) is a type that satisfies the
+    requirements of a C++0x Uniform Random Number Generator.
+
+    The intended purpose is for a MicroURNG to be passed
+    as an argument to a C++0x Distribution, e.g.,
+    std::normal_distribution.  See examples/MicroURNG.cpp.
+
+    The MicroURNG functor has a period of "only"
+
+       ctr_type.size()*2^32,
+
+    after which it will silently repeat.
+
+    The high 32 bits of the highest word in the counter c, passed to
+    the constructor must be zero.  MicroURNG uses these bits to
+    "count".
+
+    Older versions of the library permitted a second template
+    parameter by which the caller could control the number of
+    bits devoted to the URNG's internal counter.  This flexibility
+    has been disabled because URNGs created with different
+    numbers of counter bits could, conceivably "collide".
+
+\code
+       typedef ?someCBRNG? RNG;
+       RNG::ctr_type c = ...; // under application control
+       RNG::key_type k = ...; // 
+       std::normal_distribution<float> nd;
+       MicroURNG<RNG> urng(c, k);
+       for(???){
+         ...
+         nd(urng);  // may be called several hundred times with BITS=10
+         ...
+       }
+\endcode
+*/
+
+template<typename CBRNG>
+class MicroURNG{
+    // According to C++0x, a URNG requires only a result_type,
+    // operator()(), min() and max() methods.  Everything else
+    // (ctr_type, key_type, reset() method, etc.) is "value added"
+    // for the benefit of users that "know" that they're dealing with
+    // a MicroURNG.
+public:
+    typedef CBRNG cbrng_type;
+    static const int BITS = 32;
+    typedef typename cbrng_type::ctr_type ctr_type;
+    typedef typename cbrng_type::key_type key_type;
+    typedef typename cbrng_type::ukey_type ukey_type;
+    typedef typename ctr_type::value_type result_type;
+
+    R123_STATIC_ASSERT( std::numeric_limits<result_type>::digits >= BITS, "The result_type must have at least 32 bits" );
+
+    result_type operator()(){
+        if(last_elem == 0){
+            // jam n into the high bits of c
+            const size_t W = std::numeric_limits<result_type>::digits;
+            ctr_type c = c0;
+            c[c0.size()-1] |= n<<(W-BITS);
+            rdata = b(c,k);
+            n++;
+            last_elem = rdata.size();
+        }
+        return rdata[--last_elem];
+    }
+    MicroURNG(cbrng_type _b, ctr_type _c0, ukey_type _uk) : b(_b), c0(_c0), k(_uk), n(0), last_elem(0) {
+        chkhighbits();
+    }
+    MicroURNG(ctr_type _c0, ukey_type _uk) : b(), c0(_c0), k(_uk), n(0), last_elem(0) {
+        chkhighbits();
+    }
+
+    // _Min and _Max work around a bug in the library shipped with MacOS Xcode 4.5.2.
+    // See the commment in conventional/Engine.hpp.  
+    const static result_type _Min = 0;
+    const static result_type _Max = ~((result_type)0);
+
+    static R123_CONSTEXPR result_type min R123_NO_MACRO_SUBST () { return _Min; }
+    static R123_CONSTEXPR result_type max R123_NO_MACRO_SUBST () { return _Max; }
+    // extra methods:
+    const ctr_type& counter() const{ return c0; }
+    void reset(ctr_type _c0, ukey_type _uk){
+        c0 = _c0;
+        chkhighbits();
+        k = _uk;
+        n = 0;
+        last_elem = 0;
+    }
+
+private:
+    cbrng_type b;
+    ctr_type c0;
+    key_type k;
+    R123_ULONG_LONG n;
+    size_t last_elem;
+    ctr_type rdata;
+    void chkhighbits(){
+        result_type r = c0[c0.size()-1];
+        result_type mask = ((uint64_t)std::numeric_limits<result_type>::max R123_NO_MACRO_SUBST ())>>BITS;
+        if((r&mask) != r)
+            throw std::runtime_error("MicroURNG: c0, does not have high bits clear");
+    }
+};
+} // namespace r123
+#endif
diff --git a/include/Random123/ReinterpretCtr.hpp b/include/Random123/ReinterpretCtr.hpp
new file mode 100644
index 0000000..164a38b
--- /dev/null
+++ b/include/Random123/ReinterpretCtr.hpp
@@ -0,0 +1,88 @@
+/*
+Copyright 2010-2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#ifndef __ReinterpretCtr_dot_hpp__
+#define __ReinterpretCtr_dot_hpp__
+
+#include "features/compilerfeatures.h"
+#include <cstring>
+
+namespace r123{
+/*!
+  ReinterpretCtr uses memcpy to map back and forth
+  between a CBRNG's ctr_type and the specified ToType.  For example,
+  after:
+
+    typedef ReinterpretCtr<r123array4x32, Philox2x64> G;
+
+  G is a bona fide CBRNG with ctr_type r123array4x32.
+
+  WARNING:  ReinterpretCtr is endian dependent.  The
+  values returned by G, declared as above,
+  will depend on the endianness of the machine on which it runs.
+ */
+
+template <typename ToType, typename CBRNG>
+struct ReinterpretCtr{
+    typedef ToType ctr_type;
+    typedef typename CBRNG::key_type key_type;
+    typedef typename CBRNG::ctr_type bctype;
+    typedef typename CBRNG::ukey_type ukey_type;
+    R123_STATIC_ASSERT(sizeof(ToType) == sizeof(bctype) && sizeof(typename bctype::value_type) != 16, 
+                       "ReinterpretCtr:  sizeof(ToType) is not the same as sizeof(CBRNG::ctr_type) or CBRNG::ctr_type::value_type looks like it might be __m128i");
+    // It's amazingly difficult to safely do conversions with __m128i.
+    // If we use the operator() implementation below with a CBRNG
+    // whose ctr_type is r123array1xm128i, gcc4.6 optimizes away the
+    // memcpys, inlines the operator()(c,k), and produces assembly
+    // language that ends with an aesenclast instruction with a
+    // destination operand pointing to an unaligned memory address ...
+    // Segfault!  See:  http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50444
+    // MSVC also produces code that crashes.  We suspect a
+    // similar mechanism but haven't done the debugging necessary to
+    // be sure.  We were able to 'fix' gcc4.6 by making bc a mutable
+    // data member rather than declaring it in the scope of
+    // operator().  That didn't fix the MSVC problems, though.
+    //
+    // Conclusion - don't touch __m128i, at least for now.  The
+    // easiest (but highly imprecise) way to do that is the static
+    // assertion above that rejects bctype::value_types of size 16. -
+    // Sep 2011.
+    ctr_type  operator()(ctr_type c, key_type k){
+        bctype bc;
+        std::memcpy(&bc, &c, sizeof(c));
+        CBRNG b;
+        bc = b(bc, k);
+        std::memcpy(&c, &bc, sizeof(bc));
+        return c;
+    }
+};
+} // namespace r123
+#endif
diff --git a/include/Random123/aes.h b/include/Random123/aes.h
new file mode 100644
index 0000000..96e3c9c
--- /dev/null
+++ b/include/Random123/aes.h
@@ -0,0 +1,344 @@
+/*
+Copyright 2010-2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#ifndef __Random123_aes_dot_hpp__
+#define __Random123_aes_dot_hpp__
+
+#include "features/compilerfeatures.h"
+#include "array.h"
+
+/* Implement a bona fide AES block cipher.  It's minimally
+// checked against the test vector in FIPS-197 in ut_aes.cpp. */
+#if R123_USE_AES_NI
+
+/** @ingroup AESNI */
+typedef struct r123array1xm128i aesni1xm128i_ctr_t;
+/** @ingroup AESNI */
+typedef struct r123array1xm128i aesni1xm128i_ukey_t;
+/** @ingroup AESNI */
+typedef struct r123array4x32 aesni4x32_ukey_t;
+/** @ingroup AESNI */
+enum r123_enum_aesni1xm128i { aesni1xm128i_rounds = 10 };
+
+/** \cond HIDDEN_FROM_DOXYGEN */
+R123_STATIC_INLINE __m128i AES_128_ASSIST (__m128i temp1, __m128i temp2) { 
+    __m128i temp3; 
+    temp2 = _mm_shuffle_epi32 (temp2 ,0xff); 
+    temp3 = _mm_slli_si128 (temp1, 0x4);
+    temp1 = _mm_xor_si128 (temp1, temp3);
+    temp3 = _mm_slli_si128 (temp3, 0x4);
+    temp1 = _mm_xor_si128 (temp1, temp3);
+    temp3 = _mm_slli_si128 (temp3, 0x4);
+    temp1 = _mm_xor_si128 (temp1, temp3);
+    temp1 = _mm_xor_si128 (temp1, temp2); 
+    return temp1; 
+}
+
+R123_STATIC_INLINE void aesni1xm128iexpand(aesni1xm128i_ukey_t uk, __m128i ret[11])
+{
+    __m128i rkey = uk.v[0].m;
+    __m128i tmp2;
+
+    ret[0] = rkey;
+    tmp2 = _mm_aeskeygenassist_si128(rkey, 0x1);
+    rkey = AES_128_ASSIST(rkey, tmp2);
+    ret[1] = rkey;
+
+    tmp2 = _mm_aeskeygenassist_si128(rkey, 0x2);
+    rkey = AES_128_ASSIST(rkey, tmp2);
+    ret[2] = rkey;
+
+    tmp2 = _mm_aeskeygenassist_si128(rkey, 0x4);
+    rkey = AES_128_ASSIST(rkey, tmp2);
+    ret[3] = rkey;
+
+    tmp2 = _mm_aeskeygenassist_si128(rkey, 0x8);
+    rkey = AES_128_ASSIST(rkey, tmp2);
+    ret[4] = rkey;
+
+    tmp2 = _mm_aeskeygenassist_si128(rkey, 0x10);
+    rkey = AES_128_ASSIST(rkey, tmp2);
+    ret[5] = rkey;
+
+    tmp2 = _mm_aeskeygenassist_si128(rkey, 0x20);
+    rkey = AES_128_ASSIST(rkey, tmp2);
+    ret[6] = rkey;
+
+    tmp2 = _mm_aeskeygenassist_si128(rkey, 0x40);
+    rkey = AES_128_ASSIST(rkey, tmp2);
+    ret[7] = rkey;
+
+    tmp2 = _mm_aeskeygenassist_si128(rkey, 0x80);
+    rkey = AES_128_ASSIST(rkey, tmp2);
+    ret[8] = rkey;
+
+    tmp2 = _mm_aeskeygenassist_si128(rkey, 0x1b);
+    rkey = AES_128_ASSIST(rkey, tmp2);
+    ret[9] = rkey;
+
+    tmp2 = _mm_aeskeygenassist_si128(rkey, 0x36);
+    rkey = AES_128_ASSIST(rkey, tmp2);
+    ret[10] = rkey;
+}
+/** \endcond */
+    
+#ifdef __cplusplus
+/** @ingroup AESNI */
+struct aesni1xm128i_key_t{ 
+    __m128i k[11]; 
+    aesni1xm128i_key_t(){
+        aesni1xm128i_ukey_t uk;
+        uk.v[0].m = _mm_setzero_si128();
+        aesni1xm128iexpand(uk, k);
+    }
+    aesni1xm128i_key_t(const aesni1xm128i_ukey_t& uk){
+        aesni1xm128iexpand(uk, k);
+    }
+    aesni1xm128i_key_t(const aesni4x32_ukey_t& uk){
+        aesni1xm128i_ukey_t uk128;
+        uk128.v[0].m = _mm_set_epi32(uk.v[3], uk.v[2], uk.v[1], uk.v[0]);
+        aesni1xm128iexpand(uk128, k);
+    }
+    aesni1xm128i_key_t& operator=(const aesni1xm128i_ukey_t& uk){
+        aesni1xm128iexpand(uk, k);
+        return *this;
+    }
+    aesni1xm128i_key_t& operator=(const aesni4x32_ukey_t& uk){
+        aesni1xm128i_ukey_t uk128;
+        uk128.v[0].m = _mm_set_epi32(uk.v[3], uk.v[2], uk.v[1], uk.v[0]);
+        aesni1xm128iexpand(uk128, k);
+        return *this;
+    }
+};
+#else
+typedef struct { 
+    __m128i k[11]; 
+}aesni1xm128i_key_t;
+
+/** @ingroup AESNI */
+R123_STATIC_INLINE aesni1xm128i_key_t aesni1xm128ikeyinit(aesni1xm128i_ukey_t uk){
+    aesni1xm128i_key_t ret;
+    aesni1xm128iexpand(uk, ret.k);
+    return ret;
+}
+#endif
+
+/** @ingroup AESNI */
+R123_STATIC_INLINE aesni1xm128i_ctr_t aesni1xm128i(aesni1xm128i_ctr_t in, aesni1xm128i_key_t k) {
+    __m128i x = _mm_xor_si128(k.k[0], in.v[0].m);
+    x = _mm_aesenc_si128(x, k.k[1]);
+    x = _mm_aesenc_si128(x, k.k[2]);
+    x = _mm_aesenc_si128(x, k.k[3]);
+    x = _mm_aesenc_si128(x, k.k[4]);
+    x = _mm_aesenc_si128(x, k.k[5]);
+    x = _mm_aesenc_si128(x, k.k[6]);
+    x = _mm_aesenc_si128(x, k.k[7]);
+    x = _mm_aesenc_si128(x, k.k[8]);
+    x = _mm_aesenc_si128(x, k.k[9]);
+    x = _mm_aesenclast_si128(x, k.k[10]);
+    {
+      aesni1xm128i_ctr_t ret;
+      ret.v[0].m = x;
+      return ret;
+    }
+}
+
+/** @ingroup AESNI */
+R123_STATIC_INLINE aesni1xm128i_ctr_t aesni1xm128i_R(unsigned R, aesni1xm128i_ctr_t in, aesni1xm128i_key_t k){
+    R123_ASSERT(R==10);
+    return aesni1xm128i(in, k);
+}
+
+
+/** @ingroup AESNI */
+typedef struct r123array4x32 aesni4x32_ctr_t;
+/** @ingroup AESNI */
+typedef aesni1xm128i_key_t aesni4x32_key_t;
+/** @ingroup AESNI */
+enum r123_enum_aesni4x32 { aesni4x32_rounds = 10 };
+/** @ingroup AESNI */
+R123_STATIC_INLINE aesni4x32_key_t aesni4x32keyinit(aesni4x32_ukey_t uk){
+    aesni1xm128i_ukey_t uk128;
+    aesni4x32_key_t ret;
+    uk128.v[0].m = _mm_set_epi32(uk.v[3], uk.v[2], uk.v[1], uk.v[0]);
+    aesni1xm128iexpand(uk128, ret.k);
+    return ret;
+}
+
+/** @ingroup AESNI */
+/** The aesni4x32_R function provides a C API to the @ref AESNI "AESNI" CBRNG, allowing the number of rounds to be specified explicitly **/
+R123_STATIC_INLINE aesni4x32_ctr_t aesni4x32_R(unsigned int Nrounds, aesni4x32_ctr_t c, aesni4x32_key_t k){
+    aesni1xm128i_ctr_t c128;
+    c128.v[0].m = _mm_set_epi32(c.v[3], c.v[2], c.v[1], c.v[0]);
+    c128 = aesni1xm128i_R(Nrounds, c128, k);
+    _mm_storeu_si128((__m128i*)&c.v[0], c128.v[0].m);
+    return c;
+}
+
+#define aesni4x32_rounds aesni1xm128i_rounds
+
+/** The aesni4x32 macro provides a C API to the @ref AESNI "AESNI" CBRNG, uses the default number of rounds i.e. \c aesni4x32_rounds **/
+/** @ingroup AESNI */
+#define aesni4x32(c,k) aesni4x32_R(aesni4x32_rounds, c, k)
+
+#ifdef __cplusplus
+namespace r123{
+/** 
+ at defgroup AESNI ARS and AESNI Classes and Typedefs
+
+The ARS4x32, ARS1xm128i, AESNI4x32 and AESNI1xm128i classes export the member functions, typedefs and
+operator overloads required by a @ref CBRNG "CBRNG" class.
+
+ARS1xm128i and AESNI1xm128i are based on the AES block cipher and rely on the AES-NI hardware instructions
+available on some some new (2011) CPUs.
+
+The ARS1xm128i CBRNG and the use of AES for random number generation are described in 
+<a href="http://dl.acm.org/citation.cfm?doid=2063405"><i>Parallel Random Numbers:  As Easy as 1, 2, 3</i> </a>.
+Although it uses some cryptographic primitives, ARS1xm128i uses a cryptographically weak key schedule and is \b not suitable for cryptographic use.
+
+ at class AESNI1xm128i
+ at ingroup AESNI
+AESNI exports the member functions, typedefs and operator overloads required by a @ref CBRNG class.
+
+AESNI1xm128i uses the crypotgraphic AES round function, including the cryptographic key schedule.
+
+In contrast to the other CBRNGs in the Random123 library, the AESNI1xm128i_R::key_type is opaque
+and is \b not identical to the AESNI1xm128i_R::ukey_type.  Creating a key_type, using either the constructor
+or assignment operator, is significantly more time-consuming than running the bijection (hundreds
+of clock cycles vs. tens of clock cycles).
+
+AESNI1xm128i is only available when the feature-test macro R123_USE_AES_NI is true, which
+should occur only when the compiler is configured to generate AES-NI instructions (or
+when defaults are overridden by compile-time, compiler-command-line options).
+
+As of September 2011, the authors know of no statistical flaws with AESNI1xm128i.  It
+would be an event of major cryptographic note if any such flaws were ever found.
+*/
+struct AESNI1xm128i{
+    typedef aesni1xm128i_ctr_t ctr_type;
+    typedef aesni1xm128i_ukey_t ukey_type;
+    typedef aesni1xm128i_key_t key_type;
+    static const unsigned int rounds=10;
+    ctr_type operator()(ctr_type ctr, key_type key) const{
+        return aesni1xm128i(ctr, key);
+    }
+};
+
+/* @class AESNI4x32 */
+struct AESNI4x32{
+    typedef aesni4x32_ctr_t ctr_type;
+    typedef aesni4x32_ukey_t ukey_type;
+    typedef aesni4x32_key_t key_type;
+    static const unsigned int rounds=10;
+    ctr_type operator()(ctr_type ctr, key_type key) const{
+        return aesni4x32(ctr, key);
+    }
+};
+
+/** @ingroup AESNI
+    @class AESNI1xm128i_R
+
+AESNI1xm128i_R is provided for completeness, but is only instantiable with ROUNDS=10, in
+which case it is identical to AESNI1xm128i */
+template <unsigned ROUNDS=10> 
+struct AESNI1xm128i_R : public AESNI1xm128i{
+    R123_STATIC_ASSERT(ROUNDS==10, "AESNI1xm128i_R<R> is only valid with R=10");
+};
+
+/** @class AESNI4x32_R **/
+template <unsigned ROUNDS=10> 
+struct AESNI4x32_R : public AESNI4x32{
+    R123_STATIC_ASSERT(ROUNDS==10, "AESNI4x32_R<R> is only valid with R=10");
+};
+} // namespace r123
+#endif /* __cplusplus */
+
+#endif /* R123_USE_AES_NI */
+
+#if R123_USE_AES_OPENSSL
+#include <openssl/aes.h>
+typedef struct r123array16x8 aesopenssl16x8_ctr_t;
+typedef struct r123array16x8 aesopenssl16x8_ukey_t;
+#ifdef __cplusplus
+struct aesopenssl16x8_key_t{
+    AES_KEY k;
+    aesopenssl16x8_key_t(){
+        aesopenssl16x8_ukey_t ukey={{}};
+        AES_set_encrypt_key((const unsigned char *)&ukey.v[0], 128, &k);
+    }
+    aesopenssl16x8_key_t(const aesopenssl16x8_ukey_t& ukey){
+        AES_set_encrypt_key((const unsigned char *)&ukey.v[0], 128, &k);
+    }
+    aesopenssl16x8_key_t& operator=(const aesopenssl16x8_ukey_t& ukey){
+        AES_set_encrypt_key((const unsigned char *)&ukey.v[0], 128, &k);
+        return *this;
+    }
+};
+#else
+typedef struct aesopenssl16x8_key_t{
+    AES_KEY k;
+}aesopenssl16x8_key_t;
+R123_STATIC_INLINE struct aesopenssl16x8_key_t aesopenssl16x8keyinit(aesopenssl16x8_ukey_t uk){
+    aesopenssl16x8_key_t ret;
+    AES_set_encrypt_key((const unsigned char *)&uk.v[0], 128, &ret.k);
+    return ret;
+}
+#endif
+
+R123_STATIC_INLINE R123_FORCE_INLINE(aesopenssl16x8_ctr_t aesopenssl16x8_R(aesopenssl16x8_ctr_t ctr, aesopenssl16x8_key_t key));
+R123_STATIC_INLINE
+aesopenssl16x8_ctr_t aesopenssl16x8_R(aesopenssl16x8_ctr_t ctr, aesopenssl16x8_key_t key){
+    aesopenssl16x8_ctr_t ret;
+    AES_encrypt((const unsigned char*)&ctr.v[0], (unsigned char *)&ret.v[0], &key.k);
+    return ret;
+}
+
+#define aesopenssl16x8_rounds aesni4x32_rounds
+#define aesopenssl16x8(c,k) aesopenssl16x8_R(aesopenssl16x8_rounds)
+
+#ifdef __cplusplus
+namespace r123{
+struct AESOpenSSL16x8{
+    typedef aesopenssl16x8_ctr_t ctr_type;
+    typedef aesopenssl16x8_key_t key_type;
+    typedef aesopenssl16x8_ukey_t ukey_type;
+    static const unsigned int rounds=10;
+    ctr_type operator()(const ctr_type& in, const key_type& k){
+        ctr_type out;
+        AES_encrypt((const unsigned char *)&in[0], (unsigned char *)&out[0], &k.k);
+        return out;
+    }
+};
+} // namespace r123
+#endif /* __cplusplus */
+#endif /* R123_USE_AES_OPENSSL */
+
+#endif
diff --git a/include/Random123/array.h b/include/Random123/array.h
new file mode 100644
index 0000000..ab85392
--- /dev/null
+++ b/include/Random123/array.h
@@ -0,0 +1,326 @@
+/*
+Copyright 2010-2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#ifndef _r123array_dot_h__
+#define _r123array_dot_h__
+#include "features/compilerfeatures.h"
+#include "features/sse.h"
+
+#ifndef __cplusplus
+#define CXXMETHODS(_N, W, T)
+#define CXXOVERLOADS(_N, W, T)
+#else
+
+#include <stddef.h>
+#include <algorithm>
+#include <stdexcept>
+#include <iterator>
+#include <limits>
+#include <iostream>
+
+/** @defgroup arrayNxW The r123arrayNxW classes 
+
+    Each of the r123arrayNxW is a fixed size array of N W-bit unsigned integers.
+    It is functionally equivalent to the C++0x std::array<N, uintW_t>,
+    but does not require C++0x features or libraries.
+
+    In addition to meeting most of the requirements of a Container,
+    it also has a member function, incr(), which increments the zero-th
+    element and carrys overflows into higher indexed elements.  Thus,
+    by using incr(), sequences of up to 2^(N*W) distinct values
+    can be produced. 
+
+    If SSE is supported by the compiler, then the class
+    r123array1xm128i is also defined, in which the data member is an
+    array of one r123128i object.
+
+    @cond HIDDEN_FROM_DOXYGEN
+*/
+
+template <typename value_type>
+inline R123_CUDA_DEVICE value_type assemble_from_u32(uint32_t *p32){
+    value_type v=0;
+    for(size_t i=0; i<(3+sizeof(value_type))/4; ++i)
+        v |= ((value_type)(*p32++)) << (32*i);
+    return v;
+}
+
+// Work-alike methods and typedefs modeled on std::array:
+#define CXXMETHODS(_N, W, T)                                            \
+    typedef T value_type;                                               \
+    typedef T* iterator;                                                \
+    typedef const T* const_iterator;                                    \
+    typedef value_type& reference;                                      \
+    typedef const value_type& const_reference;                          \
+    typedef size_t size_type;                                           \
+    typedef ptrdiff_t difference_type;                                  \
+    typedef T* pointer;                                                 \
+    typedef const T* const_pointer;                                     \
+    typedef std::reverse_iterator<iterator> reverse_iterator;           \
+    typedef std::reverse_iterator<const_iterator> const_reverse_iterator; \
+    /* Boost.array has static_size.  C++11 specializes tuple_size */    \
+    enum {static_size = _N};                                            \
+    R123_CUDA_DEVICE reference operator[](size_type i){return v[i];}                     \
+    R123_CUDA_DEVICE const_reference operator[](size_type i) const {return v[i];}        \
+    R123_CUDA_DEVICE reference at(size_type i){ if(i >=  _N) R123_THROW(std::out_of_range("array index out of range")); return (*this)[i]; } \
+    R123_CUDA_DEVICE const_reference at(size_type i) const { if(i >=  _N) R123_THROW(std::out_of_range("array index out of range")); return (*this)[i]; } \
+    R123_CUDA_DEVICE size_type size() const { return  _N; }                              \
+    R123_CUDA_DEVICE size_type max_size() const { return _N; }                           \
+    R123_CUDA_DEVICE bool empty() const { return _N==0; };                               \
+    R123_CUDA_DEVICE iterator begin() { return &v[0]; }                                  \
+    R123_CUDA_DEVICE iterator end() { return &v[_N]; }                                   \
+    R123_CUDA_DEVICE const_iterator begin() const { return &v[0]; }                      \
+    R123_CUDA_DEVICE const_iterator end() const { return &v[_N]; }                       \
+    R123_CUDA_DEVICE const_iterator cbegin() const { return &v[0]; }                     \
+    R123_CUDA_DEVICE const_iterator cend() const { return &v[_N]; }                      \
+    R123_CUDA_DEVICE reverse_iterator rbegin(){ return reverse_iterator(end()); }        \
+    R123_CUDA_DEVICE const_reverse_iterator rbegin() const{ return const_reverse_iterator(end()); } \
+    R123_CUDA_DEVICE reverse_iterator rend(){ return reverse_iterator(begin()); }        \
+    R123_CUDA_DEVICE const_reverse_iterator rend() const{ return const_reverse_iterator(begin()); } \
+    R123_CUDA_DEVICE const_reverse_iterator crbegin() const{ return const_reverse_iterator(cend()); } \
+    R123_CUDA_DEVICE const_reverse_iterator crend() const{ return const_reverse_iterator(cbegin()); } \
+    R123_CUDA_DEVICE pointer data(){ return &v[0]; }                                     \
+    R123_CUDA_DEVICE const_pointer data() const{ return &v[0]; }                         \
+    R123_CUDA_DEVICE reference front(){ return v[0]; }                                   \
+    R123_CUDA_DEVICE const_reference front() const{ return v[0]; }                       \
+    R123_CUDA_DEVICE reference back(){ return v[_N-1]; }                                 \
+    R123_CUDA_DEVICE const_reference back() const{ return v[_N-1]; }                     \
+    R123_CUDA_DEVICE bool operator==(const r123array##_N##x##W& rhs) const{ \
+	/* CUDA3 does not have std::equal */ \
+	for (size_t i = 0; i < _N; ++i) \
+	    if (v[i] != rhs.v[i]) return false; \
+	return true; \
+    } \
+    R123_CUDA_DEVICE bool operator!=(const r123array##_N##x##W& rhs) const{ return !(*this == rhs); } \
+    /* CUDA3 does not have std::fill_n */ \
+    R123_CUDA_DEVICE void fill(const value_type& val){ for (size_t i = 0; i < _N; ++i) v[i] = val; } \
+    R123_CUDA_DEVICE void swap(r123array##_N##x##W& rhs){ \
+	/* CUDA3 does not have std::swap_ranges */ \
+	for (size_t i = 0; i < _N; ++i) { \
+	    T tmp = v[i]; \
+	    v[i] = rhs.v[i]; \
+	    rhs.v[i] = tmp; \
+	} \
+    } \
+    R123_CUDA_DEVICE r123array##_N##x##W& incr(R123_ULONG_LONG n=1){                         \
+        /* This test is tricky because we're trying to avoid spurious   \
+           complaints about illegal shifts, yet still be compile-time   \
+           evaulated. */                                                \
+        if(sizeof(T)<sizeof(n) && n>>((sizeof(T)<sizeof(n))?8*sizeof(T):0) ) \
+            return incr_carefully(n);                                   \
+        if(n==1){                                                       \
+            ++v[0];                                                     \
+            if(_N==1 || R123_BUILTIN_EXPECT(!!v[0], 1)) return *this;   \
+        }else{                                                          \
+            v[0] += n;                                                  \
+            if(_N==1 || R123_BUILTIN_EXPECT(n<=v[0], 1)) return *this;  \
+        }                                                               \
+        /* We expect that the N==?? tests will be                       \
+           constant-folded/optimized away by the compiler, so only the  \
+           overflow tests (!!v[i]) remain to be done at runtime.  For  \
+           small values of N, it would be better to do this as an       \
+           uncondtional sequence of adc.  An experiment/optimization    \
+           for another day...                                           \
+           N.B.  The weird subscripting: v[_N>3?3:0] is to silence      \
+           a spurious error from icpc                                   \
+           */                                                           \
+        ++v[_N>1?1:0];                                                  \
+        if(_N==2 || R123_BUILTIN_EXPECT(!!v[_N>1?1:0], 1)) return *this; \
+        ++v[_N>2?2:0];                                                  \
+        if(_N==3 || R123_BUILTIN_EXPECT(!!v[_N>2?2:0], 1)) return *this;  \
+        ++v[_N>3?3:0];                                                  \
+        for(size_t i=4; i<_N; ++i){                                     \
+            if( R123_BUILTIN_EXPECT(!!v[i-1], 1) ) return *this;        \
+            ++v[i];                                                     \
+        }                                                               \
+        return *this;                                                   \
+    }                                                                   \
+    /* seed(SeedSeq) would be a constructor if having a constructor */  \
+    /* didn't cause headaches with defaults */                          \
+    template <typename SeedSeq>                                         \
+    R123_CUDA_DEVICE static r123array##_N##x##W seed(SeedSeq &ss){      \
+        r123array##_N##x##W ret;                                        \
+        const size_t Ngen = _N*((3+sizeof(value_type))/4);              \
+        uint32_t u32[Ngen];                                             \
+        uint32_t *p32 = &u32[0];                                        \
+        ss.generate(&u32[0], &u32[Ngen]);                               \
+        for(size_t i=0; i<_N; ++i){                                     \
+            ret.v[i] = assemble_from_u32<value_type>(p32);              \
+            p32 += (3+sizeof(value_type))/4;                            \
+        }                                                               \
+        return ret;                                                     \
+    }                                                                   \
+protected:                                                              \
+    R123_CUDA_DEVICE r123array##_N##x##W& incr_carefully(R123_ULONG_LONG n){ \
+        /* n may be greater than the maximum value of a single value_type */ \
+        value_type vtn;                                                 \
+        vtn = n;                                                        \
+        v[0] += n;                                                      \
+        const unsigned rshift = 8* ((sizeof(n)>sizeof(value_type))? sizeof(value_type) : 0); \
+        for(size_t i=1; i<_N; ++i){                                     \
+            if(rshift){                                                 \
+                n >>= rshift;                                           \
+            }else{                                                      \
+                n=0;                                                    \
+            }                                                           \
+            if( v[i-1] < vtn )                                          \
+                ++n;                                                    \
+            if( n==0 ) break;                                           \
+            vtn = n;                                                    \
+            v[i] += n;                                                  \
+        }                                                               \
+        return *this;                                                   \
+    }                                                                   \
+    
+                                                                        
+// There are several tricky considerations for the insertion and extraction
+// operators:
+// - we would like to be able to print r123array16x8 as a sequence of 16 integers,
+//   not as 16 bytes.
+// - we would like to be able to print r123array1xm128i.
+// - we do not want an int conversion operator in r123m128i because it causes
+//   lots of ambiguity problems with automatic promotions.
+// Solution: r123arrayinsertable and r123arrayextractable
+
+template<typename T>
+struct r123arrayinsertable{
+    const T& v;
+    r123arrayinsertable(const T& t_) : v(t_) {} 
+    friend std::ostream& operator<<(std::ostream& os, const r123arrayinsertable<T>& t){
+        return os << t.v;
+    }
+};
+
+template<>
+struct r123arrayinsertable<uint8_t>{
+    const uint8_t& v;
+    r123arrayinsertable(const uint8_t& t_) : v(t_) {} 
+    friend std::ostream& operator<<(std::ostream& os, const r123arrayinsertable<uint8_t>& t){
+        return os << (int)t.v;
+    }
+};
+
+template<typename T>
+struct r123arrayextractable{
+    T& v;
+    r123arrayextractable(T& t_) : v(t_) {}
+    friend std::istream& operator>>(std::istream& is, r123arrayextractable<T>& t){
+        return is >> t.v;
+    }
+};
+
+template<>
+struct r123arrayextractable<uint8_t>{
+    uint8_t& v;
+    r123arrayextractable(uint8_t& t_) : v(t_) {} 
+    friend std::istream& operator>>(std::istream& is, r123arrayextractable<uint8_t>& t){
+        int i;
+        is >>  i;
+        t.v = i;
+        return is;
+    }
+};
+
+#define CXXOVERLOADS(_N, W, T)                                          \
+                                                                        \
+inline std::ostream& operator<<(std::ostream& os, const r123array##_N##x##W& a){   \
+    os << r123arrayinsertable<T>(a.v[0]);                                  \
+    for(size_t i=1; i<_N; ++i)                                          \
+        os << " " << r123arrayinsertable<T>(a.v[i]);                       \
+    return os;                                                          \
+}                                                                       \
+                                                                        \
+inline std::istream& operator>>(std::istream& is, r123array##_N##x##W& a){         \
+    for(size_t i=0; i<_N; ++i){                                         \
+        r123arrayextractable<T> x(a.v[i]);                                 \
+        is >> x;                                                        \
+    }                                                                   \
+    return is;                                                          \
+}                                                                       \
+                                                                        \
+namespace r123{                                                        \
+ typedef r123array##_N##x##W Array##_N##x##W;                          \
+}
+                                                                        
+#endif /* __cplusplus */
+
+/* _r123array_tpl expands to a declaration of struct r123arrayNxW.  
+
+   In C, it's nothing more than a struct containing an array of N
+   objects of type T.
+
+   In C++ it's the same, but endowed with an assortment of member
+   functions, typedefs and friends.  In C++, r123arrayNxW looks a lot
+   like std::array<T,N>, has most of the capabilities of a container,
+   and satisfies the requirements outlined in compat/Engine.hpp for
+   counter and key types.  ArrayNxW, in the r123 namespace is
+   a typedef equivalent to r123arrayNxW.
+*/
+
+#define _r123array_tpl(_N, W, T)                   \
+    /** @ingroup arrayNxW */                        \
+    /** @see arrayNxW */                            \
+struct r123array##_N##x##W{                         \
+ T v[_N];                                       \
+ CXXMETHODS(_N, W, T)                           \
+};                                              \
+                                                \
+CXXOVERLOADS(_N, W, T)
+
+/** @endcond */
+
+_r123array_tpl(1, 32, uint32_t)  /* r123array1x32 */
+_r123array_tpl(2, 32, uint32_t)  /* r123array2x32 */
+_r123array_tpl(4, 32, uint32_t)  /* r123array4x32 */
+_r123array_tpl(8, 32, uint32_t)  /* r123array8x32 */
+
+_r123array_tpl(1, 64, uint64_t)  /* r123array1x64 */
+_r123array_tpl(2, 64, uint64_t)  /* r123array2x64 */
+_r123array_tpl(4, 64, uint64_t)  /* r123array4x64 */
+
+_r123array_tpl(16, 8, uint8_t)  /* r123array16x8 for ARSsw, AESsw */
+
+#if R123_USE_SSE
+_r123array_tpl(1, m128i, r123m128i) /* r123array1x128i for ARSni, AESni */
+#endif
+
+/* In C++, it's natural to use sizeof(a::value_type), but in C it's
+   pretty convoluted to figure out the width of the value_type of an
+   r123arrayNxW:
+*/
+#define R123_W(a)   (8*sizeof(((a *)0)->v[0]))
+
+/** @namespace r123
+  Most of the Random123 C++ API is contained in the r123 namespace. 
+*/
+
+#endif
+
diff --git a/include/Random123/ars.h b/include/Random123/ars.h
new file mode 100644
index 0000000..a027b6f
--- /dev/null
+++ b/include/Random123/ars.h
@@ -0,0 +1,204 @@
+/*
+Copyright 2010-2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#ifndef __Random123_ars_dot_hpp__
+#define __Random123_ars_dot_hpp__
+
+#include "features/compilerfeatures.h"
+#include "array.h"
+
+#if R123_USE_AES_NI
+
+#ifndef ARS1xm128i_DEFAULT_ROUNDS
+#define ARS1xm128i_DEFAULT_ROUNDS 7
+#endif
+
+/** @ingroup AESNI */
+enum r123_enum_ars1xm128i {ars1xm128i_rounds = ARS1xm128i_DEFAULT_ROUNDS};
+
+/* ARS1xm128i with Weyl keys.  Fast, and Crush-resistant, but NOT CRYPTO. */
+/** @ingroup AESNI */
+typedef struct r123array1xm128i ars1xm128i_ctr_t;
+/** @ingroup AESNI */
+typedef struct r123array1xm128i ars1xm128i_key_t;
+/** @ingroup AESNI */
+typedef struct r123array1xm128i ars1xm128i_ukey_t;
+/** @ingroup AESNI */
+R123_STATIC_INLINE ars1xm128i_key_t ars1xm128ikeyinit(ars1xm128i_ukey_t uk) { return uk; }
+/** @ingroup AESNI */
+R123_STATIC_INLINE ars1xm128i_ctr_t ars1xm128i_R(unsigned int Nrounds, ars1xm128i_ctr_t in, ars1xm128i_key_t k){
+    __m128i kweyl = _mm_set_epi64x(R123_64BIT(0xBB67AE8584CAA73B), /* sqrt(3) - 1.0 */
+                                   R123_64BIT(0x9E3779B97F4A7C15)); /* golden ratio */
+    /* N.B.  the aesenc instructions do the xor *after*
+    // so if we want to follow the AES pattern, we
+    // have to do the initial xor explicitly */
+    __m128i kk = k.v[0].m;
+    __m128i v = _mm_xor_si128(in.v[0].m, kk);
+    ars1xm128i_ctr_t ret;
+    R123_ASSERT(Nrounds<=10);
+    if( Nrounds>1 ){
+        kk = _mm_add_epi64(kk, kweyl);
+        v = _mm_aesenc_si128(v, kk);
+    }
+    if( Nrounds>2 ){
+        kk = _mm_add_epi64(kk, kweyl);
+        v = _mm_aesenc_si128(v, kk);
+    }
+    if( Nrounds>3 ){
+        kk = _mm_add_epi64(kk, kweyl);
+        v = _mm_aesenc_si128(v, kk);
+    }
+    if( Nrounds>4 ){
+        kk = _mm_add_epi64(kk, kweyl);
+        v = _mm_aesenc_si128(v, kk);
+    }
+    if( Nrounds>5 ){
+        kk = _mm_add_epi64(kk, kweyl);
+        v = _mm_aesenc_si128(v, kk);
+    }
+    if( Nrounds>6 ){
+        kk = _mm_add_epi64(kk, kweyl);
+        v = _mm_aesenc_si128(v, kk);
+    }
+    if( Nrounds>7 ){
+        kk = _mm_add_epi64(kk, kweyl);
+        v = _mm_aesenc_si128(v, kk);
+    }
+    if( Nrounds>8 ){
+        kk = _mm_add_epi64(kk, kweyl);
+        v = _mm_aesenc_si128(v, kk);
+    }
+    if( Nrounds>9 ){
+        kk = _mm_add_epi64(kk, kweyl);
+        v = _mm_aesenc_si128(v, kk);
+    }
+    kk = _mm_add_epi64(kk, kweyl);
+    v = _mm_aesenclast_si128(v, kk);
+    ret.v[0].m = v;
+    return ret;
+}
+
+/** @def ars1xm128i
+ at ingroup AESNI
+The ars1mx128i macro provides a C API interface to the @ref AESNI "ARS" CBRNG with the default number of rounds i.e. \c ars1xm128i_rounds **/
+#define ars1xm128i(c,k) ars1xm128i_R(ars1xm128i_rounds, c, k)
+
+/** @ingroup AESNI */
+typedef struct r123array4x32 ars4x32_ctr_t;
+/** @ingroup AESNI */
+typedef struct r123array4x32 ars4x32_key_t;
+/** @ingroup AESNI */
+typedef struct r123array4x32 ars4x32_ukey_t;
+/** @ingroup AESNI */
+enum r123_enum_ars4x32 {ars4x32_rounds = ARS1xm128i_DEFAULT_ROUNDS};
+/** @ingroup AESNI */
+R123_STATIC_INLINE ars4x32_key_t ars4x32keyinit(ars4x32_ukey_t uk) { return uk; }
+/** @ingroup AESNI */
+R123_STATIC_INLINE ars4x32_ctr_t ars4x32_R(unsigned int Nrounds, ars4x32_ctr_t c, ars4x32_key_t k){
+    ars1xm128i_ctr_t c128;
+    ars1xm128i_key_t k128;
+    c128.v[0].m = _mm_set_epi32(c.v[3], c.v[2], c.v[1], c.v[0]);
+    k128.v[0].m = _mm_set_epi32(k.v[3], k.v[2], k.v[1], k.v[0]);
+    c128 = ars1xm128i_R(Nrounds, c128, k128);
+    _mm_storeu_si128((__m128i*)&c.v[0], c128.v[0].m);
+    return c;
+}
+
+/** @def ars4x32
+ at ingroup AESNI
+The ars4x32 macro provides a C API interface to the @ref AESNI "ARS" CBRNG with the default number of rounds i.e. \c ars4x32_rounds **/
+#define ars4x32(c,k) ars4x32_R(ars4x32_rounds, c, k)
+
+#ifdef __cplusplus
+namespace r123{
+/** 
+ at ingroup AESNI
+
+ARS1xm128i_R exports the member functions, typedefs and operator overloads required by a @ref CBRNG class.
+
+ARS1xm128i uses the crypotgraphic AES round function, but a @b non-cryptographc key schedule
+to save time and space.
+
+ARS1xm128i is only available when the feature-test macro R123_USE_AES_NI is true, which
+should occur only when the compiler is configured to generate AES-NI instructions (or
+when defaults are overridden by compile-time, compiler-command-line options).
+
+The template argument, ROUNDS, is the number of times the ARS round
+functions will be applied.
+
+As of September 2011, the authors know of no statistical flaws with
+ROUNDS=5 or more.
+
+ at class ARS1xm128i_R
+
+*/
+template<unsigned int ROUNDS>
+struct ARS1xm128i_R{
+    typedef ars1xm128i_ctr_t ctr_type;
+    typedef ars1xm128i_key_t key_type;
+    typedef ars1xm128i_key_t ukey_type;
+    static const unsigned int rounds=ROUNDS;
+    R123_FORCE_INLINE(ctr_type operator()(ctr_type ctr, key_type key) const){
+        return ars1xm128i_R(ROUNDS, ctr, key);
+    }
+};
+
+/** @class ARS4x32_R
+    @ingroup AESNI
+*/
+
+template<unsigned int ROUNDS>
+struct ARS4x32_R{
+    typedef ars4x32_ctr_t ctr_type;
+    typedef ars4x32_key_t key_type;
+    typedef ars4x32_key_t ukey_type;
+    static const unsigned int rounds=ROUNDS;
+    R123_FORCE_INLINE(ctr_type operator()(ctr_type ctr, key_type key) const){
+        return ars4x32_R(ROUNDS, ctr, key);
+    }
+};
+/**
+ at ingroup AESNI
+
+ at class ARS1xm128i_R
+  ARS1xm128i is equivalent to ARS1xm128i_R<7>.    With 7 rounds,
+  the ARS1xm128i CBRNG  has a considerable safety margin over the minimum number
+  of rounds with no known statistical flaws, but still has excellent
+  performance. */
+typedef ARS1xm128i_R<ars1xm128i_rounds> ARS1xm128i;
+typedef ARS4x32_R<ars4x32_rounds> ARS4x32;
+} // namespace r123
+
+#endif /* __cplusplus */
+
+#endif /* R123_USE_AES_NI */
+
+#endif
diff --git a/include/Random123/conventional/Engine.hpp b/include/Random123/conventional/Engine.hpp
new file mode 100644
index 0000000..2b8ee7a
--- /dev/null
+++ b/include/Random123/conventional/Engine.hpp
@@ -0,0 +1,250 @@
+/*
+Copyright 2010-2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#ifndef __Engine_dot_hpp_
+#define __Engine_dot_hpp_
+
+#include "../features/compilerfeatures.h"
+#include "../array.h"
+#include <limits>
+#include <stdexcept>
+#include <sstream>
+#include <algorithm>
+#include <vector>
+#if R123_USE_CXX11_TYPE_TRAITS
+#include <type_traits>
+#endif
+
+namespace r123{
+/**
+  If G satisfies the requirements of a CBRNG, and has a ctr_type whose
+  value_type is an unsigned integral type, then Engine<G> satisfies
+  the requirements of a C++0x "Uniform Random Number Engine" and can
+  be used in any context where such an object is expected.
+
+  Note that wrapping a counter based RNG with a traditional API in
+  this way obscures much of the power of counter based PRNGs.
+  Nevertheless, it may be of value in applications that are already
+  coded to work with the C++0x random number engines.
+
+  The MicroURNG template in MicroURNG.hpp
+  provides the more limited functionality of a C++0x "Uniform
+  Random Number Generator", but leaves the application in control
+  of counters and keys and hence may be preferable to the Engine template.
+  For example, a MicroURNG allows one to use C++0x "Random Number
+  Distributions"  without giving up control over the counters
+  and keys.
+*/ 
+
+template<typename CBRNG>
+struct Engine {
+    typedef CBRNG cbrng_type;
+    typedef typename CBRNG::ctr_type ctr_type;
+    typedef typename CBRNG::key_type key_type;
+    typedef typename CBRNG::ukey_type ukey_type;
+    typedef typename ctr_type::value_type result_type;
+    typedef size_t elem_type;
+
+protected:
+    cbrng_type b;
+    key_type key;
+    ukey_type ukey;
+    ctr_type c;
+    elem_type elem;
+    ctr_type v;
+
+    void fix_invariant(){
+        if( elem != 0 ) {
+            v = b(c, key);
+	}
+    }        
+public:
+    explicit Engine() : b(), c(), elem() {
+	ukey_type x = {{}};
+	ukey = x;
+        key = ukey;
+    }
+    explicit Engine(result_type r) : b(), c(), elem() {
+        ukey_type x = {{typename ukey_type::value_type(r)}};
+        ukey = x;
+        key = ukey;
+    }
+    // 26.5.3 says that the SeedSeq templates shouldn't particpate in
+    // overload resolution unless the type qualifies as a SeedSeq.
+    // How that is determined is unspecified, except that "as a
+    // minimum a type shall not qualify as a SeedSeq if it is
+    // implicitly convertible to a result_type."  
+    //
+    // First, we make sure that even the non-const copy constructor
+    // works as expected.  In addition, if we've got C++0x
+    // type_traits, we use enable_if and is_convertible to implement
+    // the convertible-to-result_type restriction.  Otherwise, the
+    // template is unconditional and will match in some surpirsing
+    // and undesirable situations.
+    Engine(Engine& e) : b(e.b), ukey(e.ukey), c(e.c), elem(e.elem){
+        key = ukey;
+        fix_invariant();
+    }
+    Engine(const Engine& e) : b(e.b), ukey(e.ukey), c(e.c), elem(e.elem){
+        key = ukey;
+        fix_invariant();
+    }
+
+    template <typename SeedSeq>
+    explicit Engine(SeedSeq &s
+#if R123_USE_CXX11_TYPE_TRAITS
+                    , typename std::enable_if<!std::is_convertible<SeedSeq, result_type>::value>::type* =0
+#endif
+                    )
+        : b(), c(), elem() {
+        ukey = ukey_type::seed(s);
+        key = ukey;
+    }
+    void seed(result_type r){
+        *this = Engine(r);
+    }
+    template <typename SeedSeq>
+    void seed(SeedSeq &s
+#if R123_USE_CXX11_TYPE_TRAITS
+                    , typename std::enable_if<!std::is_convertible<SeedSeq, result_type>::value>::type* =0
+#endif
+              ){ 
+        *this = Engine(s);
+    }
+    void seed(){
+        *this = Engine();
+    }
+    friend bool operator==(const Engine& lhs, const Engine& rhs){
+        return lhs.c==rhs.c && lhs.elem == rhs.elem && lhs.ukey == rhs.ukey;
+    }
+    friend bool operator!=(const Engine& lhs, const Engine& rhs){
+        return lhs.c!=rhs.c || lhs.elem != rhs.elem || lhs.ukey!=rhs.ukey;
+    }
+
+    friend std::ostream& operator<<(std::ostream& os, const Engine& be){
+        return os << be.c << " " << be.ukey << " " << be.elem;
+    }
+
+    friend std::istream& operator>>(std::istream& is, Engine& be){
+        is >> be.c >> be.ukey >> be.elem;
+        be.key = be.ukey;
+        be.fix_invariant();
+        return is;
+    }
+
+    // The <random> shipped with MacOS Xcode 4.5.2 imposes a
+    // non-standard requirement that URNGs also have static data
+    // members: _Min and _Max.  Later versions of libc++ impose the
+    // requirement only when constexpr isn't supported.  Although the
+    // Xcode 4.5.2 requirement is clearly non-standard, it is unlikely
+    // to be fixed and it is very easy work around.  We certainly
+    // don't want to go to great lengths to accommodate every buggy
+    // library we come across, but in this particular case, the effort
+    // is low and the benefit is high, so it's worth doing.  Thanks to
+    // Yan Zhou for pointing this out to us.  See similar code in
+    // ../MicroURNG.hpp
+    const static result_type _Min = 0;
+    const static result_type _Max = ~((result_type)0);
+
+    static R123_CONSTEXPR result_type min R123_NO_MACRO_SUBST () { return _Min; }
+    static R123_CONSTEXPR result_type max R123_NO_MACRO_SUBST () { return _Max; }
+
+    result_type operator()(){
+        if( c.size() == 1 )     // short-circuit the scalar case.  Compilers aren't mind-readers.
+            return b(c.incr(), key)[0];
+        if( elem == 0 ){
+            v = b(c.incr(), key);
+            elem = c.size();
+        }
+        return v[--elem];
+    }
+
+    void discard(R123_ULONG_LONG skip){
+        // don't forget:  elem counts down
+        size_t nelem = c.size();
+	size_t sub = skip % nelem;
+        skip /= nelem;
+	if (elem < sub) {
+	    elem += nelem;
+	    skip++;
+	}
+	elem -= sub;
+        c.incr(skip);
+        fix_invariant();
+    }
+         
+    //--------------------------
+    // Some bonus methods, not required for a Random Number
+    // Engine
+
+    // Constructors and seed() method for ukey_type seem useful
+    // We need const and non-const to supersede the SeedSeq template.
+    explicit Engine(const ukey_type &uk) : key(uk), ukey(uk), c(), elem(){}
+    explicit Engine(ukey_type &uk) : key(uk), ukey(uk), c(), elem(){}
+    void seed(const ukey_type& uk){
+        *this = Engine(uk);
+    }        
+    void seed(ukey_type& uk){
+        *this = Engine(uk);
+    }        
+
+    // Forward the e(counter) to the CBRNG we are templated
+    // on, using the current value of the key.
+    ctr_type operator()(const ctr_type& c) const{
+        return b(c, key);
+    }
+
+    // Since you can seed *this with a ukey_type, it seems reasonable
+    // to allow the caller to know what seed/ukey *this is using.
+    ukey_type getseed() const{
+        return ukey;
+    }
+
+    // Maybe the caller want's to know the details of
+    // the internal state, e.g., so it can call a different
+    // bijection with the same counter.
+    std::pair<ctr_type, elem_type> getcounter() const {
+        return make_pair(c,  elem);
+    }
+
+    // And the inverse.
+    void setcounter(const ctr_type& _c, elem_type _elem){
+        static const size_t nelem = c.size();
+        if( elem > nelem )
+            throw std::range_error("Engine::setcounter called  with elem out of range");
+        c = _c;
+        elem = _elem;
+        fix_invariant();
+    }
+};
+} // namespace r123
+
+#endif
diff --git a/include/Random123/conventional/gsl_cbrng.h b/include/Random123/conventional/gsl_cbrng.h
new file mode 100644
index 0000000..44457d0
--- /dev/null
+++ b/include/Random123/conventional/gsl_cbrng.h
@@ -0,0 +1,128 @@
+/*
+Copyright 2010-2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#ifndef __r123_compat_gslrng_dot_h__
+#define __r123_compat_gslrng_dot_h__
+
+#include <gsl/gsl_rng.h>
+#include <string.h>
+
+/**
+   The macro:  GSL_CBRNG(NAME, CBRNGNAME)
+   declares the necessary structs and  constants that define a
+   gsl_rng_NAME type based on the counter-based RNG CBRNGNAME.  For example:
+
+   Usage:
+
+   @code
+   #include <Random123/threefry.h>
+   #include <Random123/conventional/gsl_cbrng.h>  // this file
+   GSL_CBRNG(cbrng, threefry4x32); // creates gsl_rng_cbrng
+
+   int main(int argc, char **argv){
+       gsl_rng *r = gsl_rng_alloc(gsl_rng_cbrng);
+       ... use r as you would use any other gsl_rng ...   
+    }
+    @endcode
+
+    It requires that NAME be the name of a CBRNG that follows the
+    naming and stylistic conventions of the Random123 library.
+
+    Note that wrapping a \ref CBRNG "counter-based PRNG" with a traditional API in
+    this way obscures much of the power of the CBRNG API.
+    Nevertheless, it may be of value to applications that are already
+    coded to work with GSL random number generators, and that wish
+    to use the RNGs in the Random123 library.
+
+ */ 
+
+#define GSL_CBRNG(NAME, CBRNGNAME)                                      \
+const gsl_rng_type *gsl_rng_##NAME;                                     \
+                                                                        \
+typedef struct{                                                         \
+    CBRNGNAME##_ctr_t ctr;                                                   \
+    CBRNGNAME##_ctr_t r;                                                     \
+    CBRNGNAME##_key_t key;                                                   \
+    int elem;                                                           \
+} NAME##_state;                                                         \
+                                                                        \
+static unsigned long int NAME##_get(void *vstate){                      \
+    NAME##_state *st = (NAME##_state *)vstate;                          \
+    const int N=sizeof(st->ctr.v)/sizeof(st->ctr.v[0]);                 \
+    if( st->elem == 0 ){                                                \
+        ++st->ctr.v[0];                                                 \
+        if( N>1 && st->ctr.v[0] == 0 ) ++st->ctr.v[1];                  \
+        if( N>2 && st->ctr.v[1] == 0 ) ++st->ctr.v[2];                  \
+        if( N>3 && st->ctr.v[2] == 0 ) ++st->ctr.v[3];                  \
+        st->r = CBRNGNAME(st->ctr, st->key);                                 \
+        st->elem = N;                                                   \
+    }                                                                   \
+    return 0xffffffffUL & st->r.v[--st->elem];                          \
+}                                                                       \
+                                                                        \
+static double                                                           \
+NAME##_get_double (void * vstate)                                       \
+{                                                                       \
+    return NAME##_get (vstate)/4294967296.0;                            \
+}                                                                       \
+                                                                        \
+static void NAME##_set(void *vstate, unsigned long int s){              \
+    NAME##_state *st = (NAME##_state *)vstate;                          \
+    st->elem = 0;                                                       \
+    /* Assume that key and ctr have an array member, v,                 \
+       as if they are r123arrayNxW.  If not, this will fail             \
+       to compile.  In particular, this macro fails to compile          \
+       when the underlying CBRNG requires use of keyinit */             \
+    memset(&st->ctr.v[0], 0, sizeof(st->ctr.v));                        \
+    memset(&st->key.v[0], 0, sizeof(st->key.v));                        \
+    /* GSL 1.15 documentation says this about gsl_rng_set:              \
+         Note that the most generators only accept 32-bit seeds, with higher \
+         values being reduced modulo 2^32.  For generators with smaller \
+         ranges the maximum seed value will typically be lower.         \
+     so we won't jump through any hoops here to deal with               \
+     high bits if sizeof(unsigned long) > sizeof(uint32_t). */          \
+    st->key.v[0] = s;                                                   \
+}                                                                       \
+                                                                        \
+static const gsl_rng_type NAME##_type = {                               \
+    #NAME,                                                              \
+    0xffffffffUL,                                                       \
+    0,                                                                  \
+    sizeof(NAME##_state),                                               \
+    &NAME##_set,                                                        \
+    &NAME##_get,                                                        \
+    &NAME##_get_double                                                  \
+};                                                                      \
+                                                                        \
+const gsl_rng_type *gsl_rng_##NAME = &NAME##_type
+
+#endif
+
diff --git a/include/Random123/features/clangfeatures.h b/include/Random123/features/clangfeatures.h
new file mode 100644
index 0000000..7138eb0
--- /dev/null
+++ b/include/Random123/features/clangfeatures.h
@@ -0,0 +1,89 @@
+/*
+Copyright 2010-2016, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#ifndef __clangfeatures_dot_hpp
+#define __clangfeatures_dot_hpp
+
+#ifndef R123_USE_X86INTRIN_H
+#define R123_USE_X86INTRIN_H ((defined(__x86_64__)||defined(__i386__)))
+#endif
+
+#ifndef R123_USE_CXX11_UNRESTRICTED_UNIONS
+#define R123_USE_CXX11_UNRESTRICTED_UNIONS __has_feature(cxx_unrestricted_unions)
+#endif
+
+#ifndef R123_USE_CXX11_STATIC_ASSERT
+#define R123_USE_CXX11_STATIC_ASSERT __has_feature(cxx_static_assert)
+#endif
+
+// With clang-3.6, -Wall warns about unused-local-typedefs.
+// The "obvious" thing to do is to ignore -Wunused-local-typedefs,
+// but that doesn't work because earlier versions of clang blow
+// up on an 'unknown warning group'.  So we briefly ignore -Wall...
+// It's tempting to just give up on static assertions in pre-c++11 code.
+#if !R123_USE_CXX11_STATIC_ASSERT && !defined(R123_STATIC_ASSERT)
+#define R123_STATIC_ASSERT(expr, msg) \
+_Pragma("clang diagnostic push")                      \
+_Pragma("clang diagnostic ignored \"-Wall\"")     \
+typedef char static_assertion[(!!(expr))*2-1] \
+_Pragma("clang diagnostic pop")
+#endif
+
+#ifndef R123_USE_CXX11_CONSTEXPR
+#define R123_USE_CXX11_CONSTEXPR __has_feature(cxx_constexpr)
+#endif
+
+#ifndef R123_USE_CXX11_EXPLICIT_CONVERSIONS
+#define R123_USE_CXX11_EXPLICIT_CONVERSIONS __has_feature(cxx_explicit_conversions)
+#endif
+
+// With clang-3.0, the apparently simpler:
+//  #define R123_USE_CXX11_RANDOM __has_include(<random>)
+// dumps core.
+#ifndef R123_USE_CXX11_RANDOM
+#if __cplusplus>=201103L && __has_include(<random>)
+#define R123_USE_CXX11_RANDOM 1
+#else
+#define R123_USE_CXX11_RANDOM 0
+#endif
+#endif
+
+#ifndef R123_USE_CXX11_TYPE_TRAITS
+#if __cplusplus>=201103L && __has_include(<type_traits>)
+#define R123_USE_CXX11_TYPE_TRAITS 1
+#else
+#define R123_USE_CXX11_TYPE_TRAITS 0
+#endif
+#endif
+
+#include "gccfeatures.h"
+
+#endif
diff --git a/include/Random123/features/compilerfeatures.h b/include/Random123/features/compilerfeatures.h
new file mode 100644
index 0000000..4039790
--- /dev/null
+++ b/include/Random123/features/compilerfeatures.h
@@ -0,0 +1,320 @@
+/*
+Copyright 2010-2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+/**
+
+ at page porting Preprocessor symbols for porting Random123 to different platforms.
+
+The Random123 library is portable across C, C++, CUDA, OpenCL environments,
+and multiple operating systems (Linux, Windows 7, Mac OS X, FreeBSD, Solaris).
+This level of portability requires the abstraction of some features
+and idioms that are either not standardized (e.g., asm statments), or for which 
+different vendors have their own standards (e.g., SSE intrinsics) or for
+which vendors simply refuse to conform to well-established standards (e.g., <inttypes.h>).
+
+Random123/features/compilerfeatures.h
+conditionally includes a compiler-or-OS-specific Random123/featires/XXXfeatures.h file which
+defines appropriate values for the preprocessor symbols which can be used with
+a specific compiler or OS.  Those symbols will then
+be used by other header files and source files in the Random123
+library (and may be used by applications) to control what actually
+gets presented to the compiler.
+
+Most of the symbols are boolean valued.  In general, they will
+\b always be defined with value either 1 or 0, so do
+\b NOT use \#ifdef.  Use \#if R123_USE_SOMETHING instead.
+
+Library users can override any value by defining the pp-symbol with a compiler option,
+e.g.,
+
+    cc -DR123_USE_MULHILO64_C99 
+
+will use a strictly c99 version of the full-width 64x64->128-bit multiplication
+function, even if it would be disabled by default.
+
+All boolean-valued pre-processor symbols in Random123/features/compilerfeatures.h start with the prefix R123_USE_
+ at verbatim
+         AES_NI
+         AES_OPENSSL
+         SSE4_2
+         SSE4_1
+         SSE
+
+         STD_RANDOM
+
+         GNU_UINT128
+         ASM_GNU
+         ASM_MSASM
+
+         CPUID_MSVC
+
+         CXX11_RANDOM
+         CXX11_TYPE_TRAITS
+         CXX11_STATIC_ASSERT
+         CXX11_CONSTEXPR
+         CXX11_UNRESTRICTED_UNIONS
+         CXX11_EXPLICIT_CONVERSIONS
+         CXX11_LONG_LONG
+         CXX11 
+   
+         X86INTRIN_H
+         IA32INTRIN_H
+         XMMINTRIN_H
+         EMMINTRIN_H
+         SMMINTRIN_H
+         WMMINTRIN_H
+         INTRIN_H
+
+         MULHILO32_ASM
+         MULHILO64_ASM
+         MULHILO64_MSVC_INTRIN
+         MULHILO64_CUDA_INTRIN
+         MULHILO64_OPENCL_INTRIN
+         MULHILO64_C99
+
+         U01_DOUBLE
+	 
+ at endverbatim
+Most have obvious meanings.  Some non-obvious ones:
+
+AES_NI and AES_OPENSSL are not mutually exclusive.  You can have one,
+both or neither.
+
+GNU_UINT128 says that it's safe to use __uint128_t, but it
+does not require its use.  In particular, it should be
+used in mulhilo<uint64_t> only if MULHILO64_ASM is unset.
+
+If the XXXINTRIN_H macros are true, then one should
+ at code
+#include <xxxintrin.h>
+ at endcode
+to gain accesss to compiler intrinsics.
+
+The CXX11_SOME_FEATURE macros allow the code to use specific
+features of the C++11 language and library.  The catchall
+In the absence of a specific CXX11_SOME_FEATURE, the feature
+is controlled by the catch-all R123_USE_CXX11 macro.
+
+U01_DOUBLE defaults on, and can be turned off (set to 0)
+if one does not want the utility functions that convert to double
+(i.e. u01_*_53()), e.g. on OpenCL without the cl_khr_fp64 extension.
+
+There are a number of invariants that are always true.  Application code may
+choose to rely on these:
+
+<ul>
+<li>ASM_GNU and ASM_MASM are mutually exclusive
+<li>The "higher" SSE values imply the lower ones.
+</ul>
+
+There are also non-boolean valued symbols:
+
+<ul>
+<li>R123_STATIC_INLINE -
+  According to both C99 and GNU99, the 'static inline' declaration allows
+  the compiler to not emit code if the function is not used.  
+  Note that the semantics of 'inline', 'static' and 'extern' in
+  gcc have changed over time and are subject to modification by
+  command line options, e.g., -std=gnu89, -fgnu-inline.
+  Nevertheless, it appears that the meaning of 'static inline' 
+  has not changed over time and (with a little luck) the use of 'static inline'
+  here will be portable between versions of gcc and to other C99
+  compilers.
+  See: http://gcc.gnu.org/onlinedocs/gcc/Inline.html
+       http://www.greenend.org.uk/rjk/2003/03/inline.html
+
+<li>R123_FORCE_INLINE(decl) -
+  which expands to 'decl', adorned with the compiler-specific
+  embellishments to strongly encourage that the declared function be
+  inlined.  If there is no such compiler-specific magic, it should
+  expand to decl, unadorned.
+   
+<li>R123_CUDA_DEVICE - which expands to __device__ (or something else with
+  sufficiently similar semantics) when CUDA is in use, and expands
+  to nothing in other cases.
+
+<li>R123_ASSERT(x) - which expands to assert(x), or maybe to nothing at
+  all if we're in an environment so feature-poor that you can't even
+  call assert (I'm looking at you, CUDA and OpenCL), or even include
+  assert.h safely (OpenCL).
+
+<li>R123_STATIC_ASSERT(expr,msg) - which expands to
+  static_assert(expr,msg), or to an expression that
+  will raise a compile-time exception if expr is not true.
+
+<li>R123_ULONG_LONG - which expands to a declaration of the longest available
+  unsigned integer.
+
+<li>R123_64BIT(x) - expands to something equivalent to
+  UINT64_C(x) from <stdint.h>, even in environments where <stdint.h>
+  is not available, e.g., MSVC and OpenCL.
+
+<li>R123_BUILTIN_EXPECT(expr,likely_value) - expands to something with
+  the semantics of gcc's __builtin_expect(expr,likely_value).  If
+  the environment has nothing like __builtin_expect, it should expand
+  to just expr.
+</ul>
+
+
+\cond HIDDEN_FROM_DOXYGEN
+*/
+
+/* 
+N.B.  When something is added to the list of features, it should be
+added to each of the *features.h files, AND to examples/ut_features.cpp.
+*/
+
+/* N.B.  most other compilers (icc, nvcc, open64, llvm) will also define __GNUC__, so order matters. */
+#if defined(__OPENCL_VERSION__) && __OPENCL_VERSION__ > 0
+#include "openclfeatures.h"
+#elif defined(__CUDACC__)
+#include "nvccfeatures.h"
+#elif defined(__ICC)
+#include "iccfeatures.h"
+#elif defined(__xlC__)
+#include "xlcfeatures.h"
+#elif defined(__SUNPRO_C) || defined(__SUNPRO_CC)
+#include "sunprofeatures.h"
+#elif defined(__OPEN64__)
+#include "open64features.h"
+#elif defined(__clang__)
+#include "clangfeatures.h"
+#elif defined(__GNUC__)
+#include "gccfeatures.h"
+#elif defined(__PGI)
+#include "pgccfeatures.h"
+#elif defined(_MSC_FULL_VER)
+#include "msvcfeatures.h"
+#else
+#error "Can't identify compiler.  You'll need to add a new xxfeatures.hpp"
+{ /* maybe an unbalanced brace will terminate the compilation */
+#endif
+
+#ifndef R123_USE_CXX11
+#define R123_USE_CXX11 (__cplusplus >= 201103L)
+#endif
+
+#ifndef R123_USE_CXX11_UNRESTRICTED_UNIONS
+#define R123_USE_CXX11_UNRESTRICTED_UNIONS R123_USE_CXX11
+#endif
+
+#ifndef R123_USE_CXX11_STATIC_ASSERT
+#define R123_USE_CXX11_STATIC_ASSERT R123_USE_CXX11
+#endif
+
+#ifndef R123_USE_CXX11_CONSTEXPR
+#define R123_USE_CXX11_CONSTEXPR R123_USE_CXX11
+#endif
+
+#ifndef R123_USE_CXX11_EXPLICIT_CONVERSIONS
+#define R123_USE_CXX11_EXPLICIT_CONVERSIONS R123_USE_CXX11
+#endif
+
+#ifndef R123_USE_CXX11_RANDOM
+#define R123_USE_CXX11_RANDOM R123_USE_CXX11
+#endif
+
+#ifndef R123_USE_CXX11_TYPE_TRAITS
+#define R123_USE_CXX11_TYPE_TRAITS R123_USE_CXX11
+#endif
+
+#ifndef R123_USE_CXX11_LONG_LONG
+#define R123_USE_CXX11_LONG_LONG R123_USE_CXX11
+#endif
+
+#ifndef R123_USE_MULHILO64_C99
+#define R123_USE_MULHILO64_C99 0
+#endif
+
+#ifndef R123_USE_MULHILO64_MULHI_INTRIN
+#define R123_USE_MULHILO64_MULHI_INTRIN 0
+#endif
+
+#ifndef R123_USE_MULHILO32_MULHI_INTRIN
+#define R123_USE_MULHILO32_MULHI_INTRIN 0
+#endif
+
+#ifndef R123_STATIC_ASSERT
+#if R123_USE_CXX11_STATIC_ASSERT
+#define R123_STATIC_ASSERT(expr, msg) static_assert(expr, msg)
+#else
+    /* if msg always_looked_like_this, we could paste it into the name.  Worth it? */
+#define R123_STATIC_ASSERT(expr, msg) typedef char static_assertion[(!!(expr))*2-1]
+#endif
+#endif
+
+#ifndef R123_CONSTEXPR
+#if R123_USE_CXX11_CONSTEXPR
+#define R123_CONSTEXPR constexpr
+#else
+#define R123_CONSTEXPR
+#endif
+#endif
+
+#ifndef R123_USE_PHILOX_64BIT
+#define R123_USE_PHILOX_64BIT (R123_USE_MULHILO64_ASM || R123_USE_MULHILO64_MSVC_INTRIN || R123_USE_MULHILO64_CUDA_INTRIN || R123_USE_GNU_UINT128 || R123_USE_MULHILO64_C99 || R123_USE_MULHILO64_OPENCL_INTRIN || R123_USE_MULHILO64_MULHI_INTRIN)
+#endif
+
+#ifndef R123_ULONG_LONG
+#if defined(__cplusplus) && !R123_USE_CXX11_LONG_LONG
+/* C++98 doesn't have long long.  It doesn't have uint64_t either, but
+   we will have typedef'ed uint64_t to something in the xxxfeatures.h.
+   With luck, it won't elicit complaints from -pedantic.  Cross your
+   fingers... */
+#define R123_ULONG_LONG uint64_t
+#else
+#define R123_ULONG_LONG unsigned long long
+#endif
+#endif
+
+/* UINT64_C should have been #defined by XXXfeatures.h, either by
+   #include <stdint.h> or through compiler-dependent hacks */
+#ifndef R123_64BIT
+#define R123_64BIT(x) UINT64_C(x)
+#endif
+
+#ifndef R123_THROW
+#define R123_THROW(x)    throw (x)
+#endif
+
+/*
+ * Windows.h (and perhaps other "well-meaning" code define min and
+ * max, so there's a high chance that our definition of min, max
+ * methods or use of std::numeric_limits min and max will cause
+ * complaints in any program that happened to include Windows.h or
+ * suchlike first.  We use the null macro below in our own header
+ * files definition or use of min, max to defensively preclude
+ * this problem.  It may not be enough; one might need to #define
+ * NOMINMAX before including Windows.h or compile with -DNOMINMAX.
+ */
+#define R123_NO_MACRO_SUBST
+
+/** \endcond */
diff --git a/include/Random123/features/gccfeatures.h b/include/Random123/features/gccfeatures.h
new file mode 100644
index 0000000..d6bb060
--- /dev/null
+++ b/include/Random123/features/gccfeatures.h
@@ -0,0 +1,247 @@
+/*
+Copyright 2010-2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#ifndef __gccfeatures_dot_hpp
+#define __gccfeatures_dot_hpp
+
+#define R123_GNUC_VERSION (__GNUC__*10000 + __GNUC_MINOR__*100 + __GNUC_PATCHLEVEL__)
+
+#if !defined(__x86_64__) && !defined(__i386__) && !defined(__powerpc__)
+#  error "This code has only been tested on x86 and powerpc platforms."
+#include <including_a_nonexistent_file_will_stop_some_compilers_from_continuing_with_a_hopeless_task>
+{ /* maybe an unbalanced brace will terminate the compilation */
+ /* Feel free to try the Random123 library on other architectures by changing
+ the conditions that reach this error, but you should consider it a
+ porting exercise and expect to encounter bugs and deficiencies.
+ Please let the authors know of any successes (or failures). */
+#endif
+
+#ifdef __powerpc__
+#include <ppu_intrinsics.h>
+#endif
+
+#ifndef R123_STATIC_INLINE
+#define R123_STATIC_INLINE static __inline__
+#endif
+
+#ifndef R123_FORCE_INLINE
+#if R123_GNUC_VERSION >= 40000
+#define R123_FORCE_INLINE(decl) decl __attribute__((always_inline))
+#else
+#define R123_FORCE_INLINE(decl) decl
+#endif
+#endif
+
+#ifndef R123_CUDA_DEVICE
+#define R123_CUDA_DEVICE
+#endif
+
+#ifndef R123_ASSERT
+#include <assert.h>
+#define R123_ASSERT(x) assert(x)
+#endif
+
+#ifndef R123_BUILTIN_EXPECT
+#define R123_BUILTIN_EXPECT(expr,likely) __builtin_expect(expr,likely)
+#endif
+
+/* According to the C++0x standard, we should be able to test the numeric
+   value of __cplusplus == 199701L for C++98, __cplusplus == 201103L for C++0x
+   But gcc has had an open bug  http://gcc.gnu.org/bugzilla/show_bug.cgi?id=1773
+   since early 2001, which was finally fixed in 4.7 (early 2012).  For
+   earlier versions, the only way  to detect whether --std=c++0x was requested
+   on the command line is to look at the __GCC_EXPERIMENTAL_CXX0X__ pp-symbol.
+*/
+#define GNU_CXX11 (__cplusplus>=201103L || (R123_GNUC_VERSION<40700 && defined(__GCC_EXPERIMENTAL_CXX0X__) ))
+
+#ifndef R123_USE_CXX11_UNRESTRICTED_UNIONS
+#define R123_USE_CXX11_UNRESTRICTED_UNIONS ((R123_GNUC_VERSION >= 40600) && GNU_CXX11)
+#endif
+
+#ifndef R123_USE_CXX11_STATIC_ASSERT
+#define R123_USE_CXX11_STATIC_ASSERT ((R123_GNUC_VERSION >= 40300) && GNU_CXX11)
+#endif
+
+#ifndef R123_USE_CXX11_CONSTEXPR
+#define R123_USE_CXX11_CONSTEXPR ((R123_GNUC_VERSION >= 40600) && GNU_CXX11)
+#endif
+
+#ifndef R123_USE_CXX11_EXPLICIT_CONVERSIONS
+#define R123_USE_CXX11_EXPLICIT_CONVERSIONS ((R123_GNUC_VERSION >= 40500) && GNU_CXX11)
+#endif
+
+#ifndef R123_USE_CXX11_RANDOM
+#define R123_USE_CXX11_RANDOM ((R123_GNUC_VERSION>=40500) && GNU_CXX11)
+#endif
+
+#ifndef R123_USE_CXX11_TYPE_TRAITS
+#define R123_USE_CXX11_TYPE_TRAITS ((R123_GNUC_VERSION>=40400) && GNU_CXX11)
+#endif
+
+#ifndef R123_USE_AES_NI
+#ifdef __AES__
+#define R123_USE_AES_NI 1
+#else
+#define R123_USE_AES_NI 0
+#endif
+#endif
+
+#ifndef R123_USE_SSE4_2
+#ifdef __SSE4_2__
+#define R123_USE_SSE4_2 1
+#else
+#define R123_USE_SSE4_2 0
+#endif
+#endif
+
+#ifndef R123_USE_SSE4_1
+#ifdef __SSE4_1__
+#define R123_USE_SSE4_1 1
+#else
+#define R123_USE_SSE4_1 0
+#endif
+#endif
+
+#ifndef R123_USE_SSE
+/* There's no point in trying to compile SSE code in Random123
+   unless SSE2 is available. */
+#ifdef __SSE2__
+#define R123_USE_SSE 1
+#else
+#define R123_USE_SSE 0
+#endif
+#endif
+
+#ifndef R123_USE_AES_OPENSSL
+/* There isn't really a good way to tell at compile time whether
+   openssl is available.  Without a pre-compilation configure-like
+   tool, it's less error-prone to guess that it isn't available.  Add
+   -DR123_USE_AES_OPENSSL=1 and any necessary LDFLAGS or LDLIBS to
+   play with openssl */
+#define R123_USE_AES_OPENSSL 0
+#endif
+
+#ifndef R123_USE_GNU_UINT128
+#ifdef __x86_64__
+#define R123_USE_GNU_UINT128 1
+#else
+#define R123_USE_GNU_UINT128 0
+#endif
+#endif
+
+#ifndef R123_USE_ASM_GNU
+#define R123_USE_ASM_GNU (defined(__x86_64__)||defined(__i386__))
+#endif
+
+#ifndef R123_USE_CPUID_MSVC
+#define R123_USE_CPUID_MSVC 0
+#endif
+
+#ifndef R123_USE_X86INTRIN_H
+#define R123_USE_X86INTRIN_H ((defined(__x86_64__)||defined(__i386__)) && R123_GNUC_VERSION >= 40402)
+#endif
+
+#ifndef R123_USE_IA32INTRIN_H
+#define R123_USE_IA32INTRIN_H 0
+#endif
+
+#ifndef R123_USE_XMMINTRIN_H
+#define R123_USE_XMMINTRIN_H 0
+#endif
+
+#ifndef R123_USE_EMMINTRIN_H
+/* gcc -m64 on Solaris 10 defines __SSE2__ but doesn't have 
+   emmintrin.h in the include search path.  This is
+   so broken that I refuse to try to work around it.  If this
+   affects you, figure out where your emmintrin.h lives and
+   add an appropriate -I to your CPPFLAGS.  Or add -DR123_USE_SSE=0. */
+#define R123_USE_EMMINTRIN_H (R123_USE_SSE && (R123_GNUC_VERSION < 40402))
+#endif
+
+#ifndef R123_USE_SMMINTRIN_H
+#define R123_USE_SMMINTRIN_H ((R123_USE_SSE4_1 || R123_USE_SSE4_2) && (R123_GNUC_VERSION < 40402))
+#endif
+
+#ifndef R123_USE_WMMINTRIN_H
+#define R123_USE_WMMINTRIN_H 0
+#endif
+
+#ifndef R123_USE_INTRIN_H
+#define R123_USE_INTRIN_H 0
+#endif
+
+#ifndef R123_USE_MULHILO32_ASM
+#define R123_USE_MULHILO32_ASM 0
+#endif
+
+#ifndef R123_USE_MULHILO64_ASM
+#define R123_USE_MULHILO64_ASM 0
+#endif
+
+#ifndef R123_USE_MULHILO64_MSVC_INTRIN
+#define R123_USE_MULHILO64_MSVC_INTRIN 0
+#endif
+
+#ifndef R123_USE_MULHILO64_CUDA_INTRIN
+#define R123_USE_MULHILO64_CUDA_INTRIN 0
+#endif
+
+#ifndef R123_USE_MULHILO64_OPENCL_INTRIN
+#define R123_USE_MULHILO64_OPENCL_INTRIN 0
+#endif
+
+#ifndef R123_USE_MULHILO64_MULHI_INTRIN
+#define R123_USE_MULHILO64_MULHI_INTRIN (defined(__powerpc64__))
+#endif
+
+#ifndef R123_MULHILO64_MULHI_INTRIN
+#define R123_MULHILO64_MULHI_INTRIN __mulhdu
+#endif
+
+#ifndef R123_USE_MULHILO32_MULHI_INTRIN
+#define R123_USE_MULHILO32_MULHI_INTRIN 0
+#endif
+
+#ifndef R123_MULHILO32_MULHI_INTRIN
+#define R123_MULHILO32_MULHI_INTRIN __mulhwu
+#endif
+
+#ifndef __STDC_CONSTANT_MACROS
+#define __STDC_CONSTANT_MACROS
+#endif
+#include <stdint.h>
+#ifndef UINT64_C
+#error UINT64_C not defined.  You must define __STDC_CONSTANT_MACROS before you #include <stdint.h>
+#endif
+
+/* If you add something, it must go in all the other XXfeatures.hpp
+   and in ../ut_features.cpp */
+#endif
diff --git a/include/Random123/features/iccfeatures.h b/include/Random123/features/iccfeatures.h
new file mode 100644
index 0000000..b64e5c2
--- /dev/null
+++ b/include/Random123/features/iccfeatures.h
@@ -0,0 +1,208 @@
+/*
+Copyright 2010-2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#ifndef __icpcfeatures_dot_hpp
+#define __icpcfeatures_dot_hpp
+
+// icc relies on gcc libraries and other toolchain components.
+#define R123_GNUC_VERSION (__GNUC__*10000 + __GNUC_MINOR__*100 + __GNUC_PATCHLEVEL__)
+
+#if !defined(__x86_64__) && !defined(__i386__)
+#  error "This code has only been tested on x86 platforms."
+{ // maybe an unbalanced brace will terminate the compilation
+// You are invited to try Easy123 on other architectures, by changing
+// the conditions that reach this error, but you should consider it a
+// porting exercise and expect to encounter bugs and deficiencies.
+// Please let the authors know of any successes (or failures).
+#endif
+
+#ifndef R123_STATIC_INLINE
+#define R123_STATIC_INLINE static inline
+#endif
+
+#ifndef R123_FORCE_INLINE
+#define R123_FORCE_INLINE(decl) decl __attribute__((always_inline))
+#endif
+
+#ifndef R123_CUDA_DEVICE
+#define R123_CUDA_DEVICE
+#endif
+
+#ifndef R123_ASSERT
+#include <assert.h>
+#define R123_ASSERT(x) assert(x)
+#endif
+
+#ifndef R123_BUILTIN_EXPECT
+#define R123_BUILTIN_EXPECT(expr,likely) __builtin_expect(expr,likely)
+#endif
+
+// The basic idiom is:
+// #ifndef R123_SOMETHING
+// #if some condition
+// #define R123_SOMETHING 1
+// #else
+// #define R123_SOMETHING 0
+// #endif
+// #endif
+// This idiom allows an external user to override any decision
+// in this file with a command-line -DR123_SOMETHING=1 or -DR123_SOMETHINE=0
+
+// An alternative idiom is:
+// #ifndef R123_SOMETHING
+// #define R123_SOMETHING (some boolean expression)
+// #endif
+// where the boolean expression might contain previously-defined R123_SOMETHING_ELSE
+// pp-symbols.
+
+#ifndef R123_USE_SSE4_2
+#ifdef __SSE4_2__
+#define R123_USE_SSE4_2 1
+#else
+#define R123_USE_SSE4_2 0
+#endif
+#endif
+
+#ifndef R123_USE_SSE4_1
+#ifdef __SSE4_1__
+#define R123_USE_SSE4_1 1
+#else
+#define R123_USE_SSE4_1 0
+#endif
+#endif
+
+#ifndef R123_USE_SSE
+#ifdef __SSE2__
+#define R123_USE_SSE 1
+#else
+#define R123_USE_SSE 0
+#endif
+#endif
+
+#ifndef R123_USE_AES_NI
+// Unlike gcc, icc (version 12) does not pre-define an __AES__
+// pp-symbol when -maes or -xHost is on the command line.  This feels
+// like a defect in icc (it defines __SSE4_2__ in analogous
+// circumstances), but until Intel fixes it, we're better off erring
+// on the side of caution and not generating instructions that are
+// going to raise SIGILL when executed.  To get the AES-NI
+// instructions with icc, the caller must puts something like
+// -DR123_USE_AES_NI=1 or -D__AES__ on the command line.  FWIW, the
+// AES-NI Whitepaper by Gueron says that icc has supported AES-NI from
+// 11.1 onwards.
+//
+#define R123_USE_AES_NI ((__ICC>=1101) && defined(__AES__))
+#endif
+
+#ifndef R123_USE_AES_OPENSSL
+/* There isn't really a good way to tell at compile time whether
+   openssl is available.  Without a pre-compilation configure-like
+   tool, it's less error-prone to guess that it isn't available.  Add
+   -DR123_USE_AES_OPENSSL=1 and any necessary LDFLAGS or LDLIBS to
+   play with openssl */
+#define R123_USE_AES_OPENSSL 0
+#endif
+
+#ifndef R123_USE_GNU_UINT128
+#define R123_USE_GNU_UINT128 0
+#endif
+
+#ifndef R123_USE_ASM_GNU
+#define R123_USE_ASM_GNU 1
+#endif
+
+#ifndef R123_USE_CPUID_MSVC
+#define R123_USE_CPUID_MSVC 0
+#endif
+
+#ifndef R123_USE_X86INTRIN_H
+#define R123_USE_X86INTRIN_H 0
+#endif
+
+#ifndef R123_USE_IA32INTRIN_H
+#define R123_USE_IA32INTRIN_H 1
+#endif
+
+#ifndef R123_USE_XMMINTRIN_H
+#define R123_USE_XMMINTRIN_H 0
+#endif
+
+#ifndef R123_USE_EMMINTRIN_H
+#define R123_USE_EMMINTRIN_H 1
+#endif
+
+#ifndef R123_USE_SMMINTRIN_H
+#define R123_USE_SMMINTRIN_H 1
+#endif
+
+#ifndef R123_USE_WMMINTRIN_H
+#define R123_USE_WMMINTRIN_H 1
+#endif
+
+#ifndef R123_USE_INTRIN_H
+#define R123_USE_INTRIN_H 0
+#endif
+
+#ifndef R123_USE_MULHILO16_ASM
+#define R123_USE_MULHILO16_ASM 0
+#endif
+
+#ifndef R123_USE_MULHILO32_ASM
+#define R123_USE_MULHILO32_ASM 0
+#endif
+
+#ifndef R123_USE_MULHILO64_ASM
+#define R123_USE_MULHILO64_ASM 1
+#endif
+
+#ifndef R123_USE_MULHILO64_MSVC_INTRIN
+#define R123_USE_MULHILO64_MSVC_INTRIN 0
+#endif
+
+#ifndef R123_USE_MULHILO64_CUDA_INTRIN
+#define R123_USE_MULHILO64_CUDA_INTRIN 0
+#endif
+
+#ifndef R123_USE_MULHILO64_OPENCL_INTRIN
+#define R123_USE_MULHILO64_OPENCL_INTRIN 0
+#endif
+
+#ifndef __STDC_CONSTANT_MACROS
+#define __STDC_CONSTANT_MACROS
+#endif
+#include <stdint.h>
+#ifndef UINT64_C
+#error UINT64_C not defined.  You must define __STDC_CONSTANT_MACROS before you #include <stdint.h>
+#endif
+
+// If you add something, it must go in all the other XXfeatures.hpp
+// and in ../ut_features.cpp
+#endif
diff --git a/include/Random123/features/msvcfeatures.h b/include/Random123/features/msvcfeatures.h
new file mode 100644
index 0000000..9eb9520
--- /dev/null
+++ b/include/Random123/features/msvcfeatures.h
@@ -0,0 +1,200 @@
+/*
+Copyright 2010-2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#ifndef __msvcfeatures_dot_hpp
+#define __msvcfeatures_dot_hpp
+
+//#if _MSVC_FULL_VER <= 15
+//#error "We've only tested MSVC_FULL_VER==15."
+//#endif
+
+#if !defined(_M_IX86) && !defined(_M_X64)
+#  error "This code has only been tested on x86 platforms."
+{ // maybe an unbalanced brace will terminate the compilation
+// You are invited to try Random123 on other architectures, by changing
+// the conditions that reach this error, but you should consider it a
+// porting exercise and expect to encounter bugs and deficiencies.
+// Please let the authors know of any successes (or failures).
+#endif
+
+#ifndef R123_STATIC_INLINE
+#define R123_STATIC_INLINE static __inline
+#endif
+
+#ifndef R123_FORCE_INLINE
+#define R123_FORCE_INLINE(decl) _forceinline decl
+#endif
+
+#ifndef R123_CUDA_DEVICE
+#define R123_CUDA_DEVICE
+#endif
+
+#ifndef R123_ASSERT
+#include <assert.h>
+#define R123_ASSERT(x) assert(x)
+#endif
+
+#ifndef R123_BUILTIN_EXPECT
+#define R123_BUILTIN_EXPECT(expr,likely) expr
+#endif
+
+// The basic idiom is:
+// #ifndef R123_SOMETHING
+// #if some condition
+// #define R123_SOMETHING 1
+// #else
+// #define R123_SOMETHING 0
+// #endif
+// #endif
+// This idiom allows an external user to override any decision
+// in this file with a command-line -DR123_SOMETHING=1 or -DR123_SOMETHINE=0
+
+// An alternative idiom is:
+// #ifndef R123_SOMETHING
+// #define R123_SOMETHING (some boolean expression)
+// #endif
+// where the boolean expression might contain previously-defined R123_SOMETHING_ELSE
+// pp-symbols.
+
+#ifndef R123_USE_AES_NI
+#if defined(_M_X64)
+#define R123_USE_AES_NI 1
+#else
+#define R123_USE_AES_NI 0
+#endif
+#endif
+
+#ifndef R123_USE_SSE4_2
+#if defined(_M_X64)
+#define R123_USE_SSE4_2 1
+#else
+#define R123_USE_SSE4_2 0
+#endif
+#endif
+
+#ifndef R123_USE_SSE4_1
+#if defined(_M_X64)
+#define R123_USE_SSE4_1 1
+#else
+#define R123_USE_SSE4_1 0
+#endif
+#endif
+
+#ifndef R123_USE_SSE
+#define R123_USE_SSE 1
+#endif
+
+#ifndef R123_USE_AES_OPENSSL
+#define R123_USE_AES_OPENSSL 0
+#endif
+
+#ifndef R123_USE_GNU_UINT128
+#define R123_USE_GNU_UINT128 0
+#endif
+
+#ifndef R123_USE_ASM_GNU
+#define R123_USE_ASM_GNU 0
+#endif
+
+#ifndef R123_USE_CPUID_MSVC
+#define R123_USE_CPUID_MSVC 1
+#endif
+
+#ifndef R123_USE_X86INTRIN_H
+#define R123_USE_X86INTRIN_H 0
+#endif
+
+#ifndef R123_USE_IA32INTRIN_H
+#define R123_USE_IA32INTRIN_H 0
+#endif
+
+#ifndef R123_USE_XMMINTRIN_H
+#define R123_USE_XMMINTRIN_H 0
+#endif
+
+#ifndef R123_USE_EMMINTRIN_H
+#define R123_USE_EMMINTRIN_H 1
+#endif
+
+#ifndef R123_USE_SMMINTRIN_H
+#define R123_USE_SMMINTRIN_H 1
+#endif
+
+#ifndef R123_USE_WMMINTRIN_H
+#define R123_USE_WMMINTRIN_H 1
+#endif
+
+#ifndef R123_USE_INTRIN_H
+#define R123_USE_INTRIN_H 1
+#endif
+
+#ifndef R123_USE_MULHILO16_ASM
+#define R123_USE_MULHILO16_ASM 0
+#endif
+
+#ifndef R123_USE_MULHILO32_ASM
+#define R123_USE_MULHILO32_ASM 0
+#endif
+
+#ifndef R123_USE_MULHILO64_ASM
+#define R123_USE_MULHILO64_ASM 0
+#endif
+
+#ifndef R123_USE_MULHILO64_MSVC_INTRIN
+#if defined(_M_X64)
+#define R123_USE_MULHILO64_MSVC_INTRIN 1
+#else
+#define R123_USE_MULHILO64_MSVC_INTRIN 0
+#endif
+#endif
+
+#ifndef R123_USE_MULHILO64_CUDA_INTRIN
+#define R123_USE_MULHILO64_CUDA_INTRIN 0
+#endif
+
+#ifndef R123_USE_MULHILO64_OPENCL_INTRIN
+#define R123_USE_MULHILO64_OPENCL_INTRIN 0
+#endif
+
+#ifndef __STDC_CONSTANT_MACROS
+#define __STDC_CONSTANT_MACROS
+#endif
+#include <stdint.h>
+#ifndef UINT64_C
+#error UINT64_C not defined.  You must define __STDC_CONSTANT_MACROS before you #include <stdint.h>
+#endif
+
+#pragma warning(disable:4244)
+#pragma warning(disable:4996)
+
+// If you add something, it must go in all the other XXfeatures.hpp
+// and in ../ut_features.cpp
+#endif
diff --git a/include/Random123/features/nvccfeatures.h b/include/Random123/features/nvccfeatures.h
new file mode 100644
index 0000000..d1ff8bf
--- /dev/null
+++ b/include/Random123/features/nvccfeatures.h
@@ -0,0 +1,125 @@
+/*
+Copyright 2010-2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#ifndef __r123_nvcc_features_dot_h__
+#define __r123_nvcc_features_dot_h__
+
+#if !defined(CUDART_VERSION)
+#error "why are we in nvccfeatures.h if CUDART_VERSION is not defined"
+#endif
+
+#if CUDART_VERSION < 4010
+#error "CUDA versions earlier than 4.1 produce incorrect results for some templated functions in namespaces.  Random123 isunsupported.  See comments in nvccfeatures.h"
+// This test was added in Random123-1.08 (August, 2013) because we
+// discovered that Ftype(maxTvalue<T>()) with Ftype=double and
+// T=uint64_t in examples/uniform.hpp produces -1 for CUDA4.0 and
+// earlier.  We can't be sure this bug doesn't also affect invocations
+// of other templated functions, e.g., essentially all of Random123.
+// Thus, we no longer trust CUDA versions earlier than 4.1 even though
+// we had previously tested and timed Random123 with CUDA 3.x and 4.0.
+// If you feel lucky or desperate, you can change #error to #warning, but
+// please take extra care to be sure that you are getting correct
+// results.
+#endif
+
+// nvcc falls through to gcc or msvc.  So first define
+// a couple of things and then include either gccfeatures.h
+// or msvcfeatures.h
+
+//#ifdef  __CUDA_ARCH__ allows Philox32 and Philox64 to be compiled
+//for both device and host functions in CUDA by setting compiler flags
+//for the device function
+#ifdef  __CUDA_ARCH__
+#ifndef R123_CUDA_DEVICE
+#define R123_CUDA_DEVICE __device__
+#endif
+
+#ifndef R123_USE_MULHILO64_CUDA_INTRIN
+#define R123_USE_MULHILO64_CUDA_INTRIN 1
+#endif
+
+#ifndef R123_THROW
+// No exceptions in CUDA, at least upto 4.0
+#define R123_THROW(x)    R123_ASSERT(0)
+#endif
+
+#ifndef R123_ASSERT
+#define R123_ASSERT(x) if((x)) ; else asm("trap;")
+#endif
+
+#else // ! __CUDA_ARCH__
+// If we're using nvcc not compiling for the CUDA architecture,
+// then we must be compiling for the host.  In that case,
+// tell the philox code to use the mulhilo64 asm because
+// nvcc doesn't grok uint128_t.
+#ifndef R123_USE_MULHILO64_ASM
+#define R123_USE_MULHILO64_ASM 1
+#endif
+
+#endif // __CUDA_ARCH__
+
+#ifndef R123_BUILTIN_EXPECT
+#define R123_BUILTIN_EXPECT(expr,likely) expr
+#endif
+
+#ifndef R123_USE_AES_NI
+#define R123_USE_AES_NI 0
+#endif
+
+#ifndef R123_USE_SSE4_2
+#define R123_USE_SSE4_2 0
+#endif
+
+#ifndef R123_USE_SSE4_1
+#define R123_USE_SSE4_1 0
+#endif
+
+#ifndef R123_USE_SSE
+#define R123_USE_SSE 0
+#endif
+
+#ifndef R123_USE_GNU_UINT128
+#define R123_USE_GNU_UINT128 0
+#endif
+
+#ifndef R123_ULONG_LONG
+// uint64_t, which is what we'd get without this, is
+// not the same as unsigned long long
+#define R123_ULONG_LONG unsigned long long
+#endif
+
+#if defined(__GNUC__)
+#include "gccfeatures.h"
+#elif defined(_MSC_FULL_VER)
+#include "msvcfeatures.h"
+#endif
+
+#endif
diff --git a/include/Random123/features/open64features.h b/include/Random123/features/open64features.h
new file mode 100644
index 0000000..8da9f5f
--- /dev/null
+++ b/include/Random123/features/open64features.h
@@ -0,0 +1,50 @@
+/*
+Copyright 2010-2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#ifndef __open64features_dot_hpp
+#define __open64features_dot_hpp
+
+/* The gcc features are mostly right.  We just override a few and then include gccfeatures.h */
+
+/* Open64 4.2.3 and 4.2.4 accept the __uint128_t code without complaint
+   but produce incorrect code for 64-bit philox.  The MULHILO64_ASM
+   seems to work fine */
+#ifndef R123_USE_GNU_UINT128
+#define R123_USE_GNU_UINT128 0
+#endif
+
+#ifndef R123_USE_MULHILO64_ASM
+#define R123_USE_MULHILO64_ASM 1
+#endif
+
+#include "gccfeatures.h"
+
+#endif
diff --git a/include/Random123/features/openclfeatures.h b/include/Random123/features/openclfeatures.h
new file mode 100644
index 0000000..af03d30
--- /dev/null
+++ b/include/Random123/features/openclfeatures.h
@@ -0,0 +1,89 @@
+/*
+Copyright 2010-2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#ifndef __openclfeatures_dot_hpp
+#define __openclfeatures_dot_hpp
+
+#ifndef R123_STATIC_INLINE
+#define R123_STATIC_INLINE inline
+#endif
+
+#ifndef R123_FORCE_INLINE
+#define R123_FORCE_INLINE(decl) decl __attribute__((always_inline))
+#endif
+
+#ifndef R123_CUDA_DEVICE
+#define R123_CUDA_DEVICE
+#endif
+
+#ifndef R123_ASSERT
+#define R123_ASSERT(x)
+#endif
+
+#ifndef R123_BUILTIN_EXPECT
+#define R123_BUILTIN_EXPECT(expr,likely) expr
+#endif
+
+#ifndef R123_USE_GNU_UINT128
+#define R123_USE_GNU_UINT128 0
+#endif
+
+#ifndef R123_USE_MULHILO64_ASM
+#define R123_USE_MULHILO64_ASM 0
+#endif
+
+#ifndef R123_USE_MULHILO64_MSVC_INTRIN
+#define R123_USE_MULHILO64_MSVC_INTRIN 0
+#endif
+
+#ifndef R123_USE_MULHILO64_CUDA_INTRIN
+#define R123_USE_MULHILO64_CUDA_INTRIN 0
+#endif
+
+#ifndef R123_USE_MULHILO64_OPENCL_INTRIN
+#define R123_USE_MULHILO64_OPENCL_INTRIN 1
+#endif
+
+#ifndef R123_USE_AES_NI
+#define R123_USE_AES_NI 0
+#endif
+
+// XXX ATI APP SDK 2.4 clBuildProgram SEGVs if one uses uint64_t instead of
+// ulong to mul_hi.  And gets lots of complaints from stdint.h
+// on some machines.
+// But these typedefs mean we cannot include stdint.h with
+// these headers?  Do we need R123_64T, R123_32T, R123_8T?
+typedef ulong uint64_t;
+typedef uint  uint32_t;
+typedef uchar uint8_t;
+#define UINT64_C(x) ((ulong)(x##UL))
+
+#endif
diff --git a/include/Random123/features/pgccfeatures.h b/include/Random123/features/pgccfeatures.h
new file mode 100644
index 0000000..18ace13
--- /dev/null
+++ b/include/Random123/features/pgccfeatures.h
@@ -0,0 +1,194 @@
+/*
+Copyright 2010-2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+Copyright (c) 2013, Los Alamos National Security, LLC
+All rights reserved.
+
+Copyright 2013. Los Alamos National Security, LLC. This software was produced
+under U.S. Government contract DE-AC52-06NA25396 for Los Alamos National
+Laboratory (LANL), which is operated by Los Alamos National Security, LLC for
+the U.S. Department of Energy. The U.S. Government has rights to use,
+reproduce, and distribute this software.  NEITHER THE GOVERNMENT NOR LOS
+ALAMOS NATIONAL SECURITY, LLC MAKES ANY WARRANTY, EXPRESS OR IMPLIED, OR
+ASSUMES ANY LIABILITY FOR THE USE OF THIS SOFTWARE.  If software is modified
+to produce derivative works, such modified software should be clearly marked,
+so as not to confuse it with the version available from LANL.
+*/
+#ifndef __pgccfeatures_dot_hpp
+#define __pgccfeatures_dot_hpp
+
+#if !defined(__x86_64__) && !defined(__i386__)
+#  error "This code has only been tested on x86 platforms."
+#include <including_a_nonexistent_file_will_stop_some_compilers_from_continuing_with_a_hopeless_task>
+{ /* maybe an unbalanced brace will terminate the compilation */
+ /* Feel free to try the Random123 library on other architectures by changing
+ the conditions that reach this error, but you should consider it a
+ porting exercise and expect to encounter bugs and deficiencies.
+ Please let the authors know of any successes (or failures). */
+#endif
+
+#ifndef R123_STATIC_INLINE
+#define R123_STATIC_INLINE static inline
+#endif
+
+/* Found this example in PGI's emmintrin.h. */
+#ifndef R123_FORCE_INLINE
+#define R123_FORCE_INLINE(decl) decl __attribute__((__always_inline__))
+#endif
+
+#ifndef R123_CUDA_DEVICE
+#define R123_CUDA_DEVICE
+#endif
+
+#ifndef R123_ASSERT
+#include <assert.h>
+#define R123_ASSERT(x) assert(x)
+#endif
+
+#ifndef R123_BUILTIN_EXPECT
+#define R123_BUILTIN_EXPECT(expr,likely) (expr)
+#endif
+
+/* PGI through 13.2 doesn't appear to support AES-NI. */
+#ifndef R123_USE_AES_NI
+#define R123_USE_AES_NI 0
+#endif
+
+/* PGI through 13.2 appears to support MMX, SSE, SSE3, SSE3, SSSE3, SSE4a, and
+   ABM, but not SSE4.1 or SSE4.2. */
+#ifndef R123_USE_SSE4_2
+#define R123_USE_SSE4_2 0
+#endif
+
+#ifndef R123_USE_SSE4_1
+#define R123_USE_SSE4_1 0
+#endif
+
+#ifndef R123_USE_SSE
+/* There's no point in trying to compile SSE code in Random123
+   unless SSE2 is available. */
+#ifdef __SSE2__
+#define R123_USE_SSE 1
+#else
+#define R123_USE_SSE 0
+#endif
+#endif
+
+#ifndef R123_USE_AES_OPENSSL
+/* There isn't really a good way to tell at compile time whether
+   openssl is available.  Without a pre-compilation configure-like
+   tool, it's less error-prone to guess that it isn't available.  Add
+   -DR123_USE_AES_OPENSSL=1 and any necessary LDFLAGS or LDLIBS to
+   play with openssl */
+#define R123_USE_AES_OPENSSL 0
+#endif
+
+#ifndef R123_USE_GNU_UINT128
+#define R123_USE_GNU_UINT128 0
+#endif
+
+#ifndef R123_USE_ASM_GNU
+#define R123_USE_ASM_GNU 1
+#endif
+
+#ifndef R123_USE_CPUID_MSVC
+#define R123_USE_CPUID_MSVC 0
+#endif
+
+#ifndef R123_USE_X86INTRIN_H
+#define R123_USE_X86INTRIN_H 0
+#endif
+
+#ifndef R123_USE_IA32INTRIN_H
+#define R123_USE_IA32INTRIN_H 0
+#endif
+
+/* emmintrin.h from PGI #includes xmmintrin.h but then complains at link time
+   about undefined references to _mm_castsi128_ps(__m128i).  Why? */
+#ifndef R123_USE_XMMINTRIN_H
+#define R123_USE_XMMINTRIN_H 1
+#endif
+
+#ifndef R123_USE_EMMINTRIN_H
+#define R123_USE_EMMINTRIN_H 1
+#endif
+
+#ifndef R123_USE_SMMINTRIN_H
+#define R123_USE_SMMINTRIN_H 0
+#endif
+
+#ifndef R123_USE_WMMINTRIN_H
+#define R123_USE_WMMINTRIN_H 0
+#endif
+
+#ifndef R123_USE_INTRIN_H
+#ifdef __ABM__
+#define R123_USE_INTRIN_H 1
+#else
+#define R123_USE_INTRIN_H 0
+#endif
+#endif
+
+#ifndef R123_USE_MULHILO32_ASM
+#define R123_USE_MULHILO32_ASM 0
+#endif
+
+#ifndef R123_USE_MULHILO64_MULHI_INTRIN
+#define R123_USE_MULHILO64_MULHI_INTRIN 0
+#endif
+
+#ifndef R123_USE_MULHILO64_ASM
+#define R123_USE_MULHILO64_ASM 1
+#endif
+
+#ifndef R123_USE_MULHILO64_MSVC_INTRIN
+#define R123_USE_MULHILO64_MSVC_INTRIN 0
+#endif
+
+#ifndef R123_USE_MULHILO64_CUDA_INTRIN
+#define R123_USE_MULHILO64_CUDA_INTRIN 0
+#endif
+
+#ifndef R123_USE_MULHILO64_OPENCL_INTRIN
+#define R123_USE_MULHILO64_OPENCL_INTRIN 0
+#endif
+
+#ifndef __STDC_CONSTANT_MACROS
+#define __STDC_CONSTANT_MACROS
+#endif
+#include <stdint.h>
+#ifndef UINT64_C
+#error UINT64_C not defined.  You must define __STDC_CONSTANT_MACROS before you #include <stdint.h>
+#endif
+
+/* If you add something, it must go in all the other XXfeatures.hpp
+   and in ../ut_features.cpp */
+#endif
diff --git a/include/Random123/features/sse.h b/include/Random123/features/sse.h
new file mode 100644
index 0000000..88efd65
--- /dev/null
+++ b/include/Random123/features/sse.h
@@ -0,0 +1,280 @@
+/*
+Copyright 2010-2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#ifndef _Random123_sse_dot_h__
+#define _Random123_sse_dot_h__
+
+#if R123_USE_SSE
+
+#if R123_USE_X86INTRIN_H
+#include <x86intrin.h>
+#endif
+#if R123_USE_IA32INTRIN_H
+#include <ia32intrin.h>
+#endif
+#if R123_USE_XMMINTRIN_H
+#include <xmmintrin.h>
+#endif
+#if R123_USE_EMMINTRIN_H
+#include <emmintrin.h>
+#endif
+#if R123_USE_SMMINTRIN_H
+#include <smmintrin.h>
+#endif
+#if R123_USE_WMMINTRIN_H
+#include <wmmintrin.h>
+#endif
+#if R123_USE_INTRIN_H
+#include <intrin.h>
+#endif
+#ifdef __cplusplus
+#include <iostream>
+#include <limits>
+#include <stdexcept>
+#endif
+
+#if R123_USE_ASM_GNU
+
+/* bit25 of CX tells us whether AES is enabled. */
+R123_STATIC_INLINE int haveAESNI(){
+    unsigned int eax, ebx, ecx, edx;
+    __asm__ __volatile__ ("cpuid": "=a" (eax), "=b" (ebx), "=c" (ecx), "=d" (edx) :
+                      "a" (1));
+    return (ecx>>25) & 1;
+}
+#elif R123_USE_CPUID_MSVC
+R123_STATIC_INLINE int haveAESNI(){
+    int CPUInfo[4];
+    __cpuid(CPUInfo, 1);
+    return (CPUInfo[2]>>25)&1;
+}
+#else /* R123_USE_CPUID_??? */
+#warning "No R123_USE_CPUID_XXX method chosen.  haveAESNI will always return false"
+R123_STATIC_INLINE int haveAESNI(){
+    return 0;
+}
+#endif /* R123_USE_ASM_GNU || R123_USE_CPUID_MSVC */
+
+// There is a lot of annoying and inexplicable variation in the
+// SSE intrinsics available in different compilation environments.
+// The details seem to depend on the compiler, the version and
+// the target architecture.  Rather than insisting on
+// R123_USE_feature tests for each of these in each of the
+// compilerfeatures.h files we just keep the complexity localized
+// to here...
+#if (defined(__ICC) && __ICC<1210) || (defined(_MSC_VER) && !defined(_WIN64))
+/* Is there an intrinsic to assemble an __m128i from two 64-bit words? 
+   If not, use the 4x32-bit intrisic instead.  N.B.  It looks like Intel
+   added _mm_set_epi64x to icc version 12.1 in Jan 2012.
+*/
+R123_STATIC_INLINE __m128i _mm_set_epi64x(uint64_t v1, uint64_t v0){
+    union{
+        uint64_t u64;
+        uint32_t u32[2];
+    } u1, u0;
+    u1.u64 = v1;
+    u0.u64 = v0;
+    return _mm_set_epi32(u1.u32[1], u1.u32[0], u0.u32[1], u0.u32[0]);
+}
+#endif
+/* _mm_extract_lo64 abstracts the task of extracting the low 64-bit
+   word from an __m128i.  The _mm_cvtsi128_si64 intrinsic does the job
+   on 64-bit platforms.  Unfortunately, both MSVC and Open64 fail
+   assertions in ut_M128.cpp and ut_carray.cpp when we use the
+   _mm_cvtsi128_si64 intrinsic.  (See
+   https://bugs.open64.net/show_bug.cgi?id=873 for the Open64 bug).
+   On 32-bit platforms, there's no MOVQ, so there's no intrinsic.
+   Finally, even if the intrinsic exists, it may be spelled with or
+   without the 'x'.
+*/
+#if !defined(__x86_64__) || defined(_MSC_VER) || defined(__OPEN64__)
+R123_STATIC_INLINE uint64_t _mm_extract_lo64(__m128i si){
+    union{
+        uint64_t u64[2];
+        __m128i m;
+    }u;
+    _mm_store_si128(&u.m, si);
+    return u.u64[0];
+}
+#elif defined(__llvm__) || defined(__ICC)
+R123_STATIC_INLINE uint64_t _mm_extract_lo64(__m128i si){
+    return (uint64_t)_mm_cvtsi128_si64(si);
+}
+#else /* GNUC, others */
+/* FWIW, gcc's emmintrin.h has had the 'x' spelling
+   since at least gcc-3.4.4.  The no-'x' spelling showed up
+   around 4.2. */
+R123_STATIC_INLINE uint64_t _mm_extract_lo64(__m128i si){
+    return (uint64_t)_mm_cvtsi128_si64x(si);
+}
+#endif
+#if defined(__GNUC__) && __GNUC__ < 4
+/* the cast builtins showed up in gcc4. */
+R123_STATIC_INLINE __m128 _mm_castsi128_ps(__m128i si){
+    return (__m128)si;
+}
+#endif
+
+#ifdef __cplusplus
+
+struct r123m128i{
+    __m128i m;
+#if R123_USE_CXX11_UNRESTRICTED_UNIONS
+    // C++98 forbids a union member from having *any* constructors.
+    // C++11 relaxes this, and allows union members to have constructors
+    // as long as there is a "trivial" default construtor.  So in C++11
+    // we can provide a r123m128i constructor with an __m128i argument, and still
+    // have the default (and hence trivial) default constructor.
+    r123m128i() = default;
+    r123m128i(__m128i _m): m(_m){}
+#endif
+    r123m128i& operator=(const __m128i& rhs){ m=rhs; return *this;}
+    r123m128i& operator=(R123_ULONG_LONG n){ m = _mm_set_epi64x(0, n); return *this;}
+#if R123_USE_CXX11_EXPLICIT_CONVERSIONS
+    // With C++0x we can attach explicit to the bool conversion operator
+    // to disambiguate undesired promotions.  For g++, this works
+    // only in 4.5 and above.
+    explicit operator bool() const {return _bool();}
+#else
+    // Pre-C++0x, we have to do something else.  Google for the "safe bool"
+    // idiom for other ideas...
+    operator const void*() const{return _bool()?this:0;}
+#endif
+    operator __m128i() const {return m;}
+
+private:
+#if R123_USE_SSE4_1
+    bool _bool() const{ return !_mm_testz_si128(m,m); }
+#else
+    bool _bool() const{ return 0xf != _mm_movemask_ps(_mm_castsi128_ps(_mm_cmpeq_epi32(m, _mm_setzero_si128()))); }
+#endif
+};
+
+R123_STATIC_INLINE r123m128i& operator++(r123m128i& v){
+    __m128i& c = v.m;
+    __m128i zeroone = _mm_set_epi64x(R123_64BIT(0), R123_64BIT(1));
+    c = _mm_add_epi64(c, zeroone);
+    //return c;
+#if R123_USE_SSE4_1
+    __m128i zerofff = _mm_set_epi64x(0, ~(R123_64BIT(0)));
+    if( R123_BUILTIN_EXPECT(_mm_testz_si128(c,zerofff), 0) ){
+        __m128i onezero = _mm_set_epi64x(R123_64BIT(1), R123_64BIT(0));
+        c = _mm_add_epi64(c, onezero);
+    }
+#else
+    unsigned mask  = _mm_movemask_ps( _mm_castsi128_ps(_mm_cmpeq_epi32(c, _mm_setzero_si128())));
+    // The low two bits of mask are 11 iff the low 64 bits of
+    // c are zero.
+    if( R123_BUILTIN_EXPECT((mask&0x3) == 0x3, 0) ){
+        __m128i onezero = _mm_set_epi64x(1,0);
+        c = _mm_add_epi64(c, onezero);
+    }
+#endif
+    return v;
+}
+
+R123_STATIC_INLINE r123m128i& operator+=(r123m128i& lhs, R123_ULONG_LONG n){ 
+    __m128i c = lhs.m;
+    __m128i incr128 = _mm_set_epi64x(0, n);
+    c = _mm_add_epi64(c, incr128);
+    // return c;     // NO CARRY!  
+
+    int64_t lo64 = _mm_extract_lo64(c);
+    if((uint64_t)lo64 < n)
+        c = _mm_add_epi64(c, _mm_set_epi64x(1,0));
+    lhs.m = c;
+    return lhs; 
+}
+
+// We need this one because it's present, but never used in r123array1xm128i::incr
+R123_STATIC_INLINE bool operator<=(R123_ULONG_LONG, const r123m128i &){
+    throw std::runtime_error("operator<=(unsigned long long, r123m128i) is unimplemented.");}
+
+// The comparisons aren't implemented, but if we leave them out, and 
+// somebody writes, e.g., M1 < M2, the compiler will do an implicit
+// conversion through void*.  Sigh...
+R123_STATIC_INLINE bool operator<(const r123m128i&, const r123m128i&){
+    throw std::runtime_error("operator<(r123m128i, r123m128i) is unimplemented.");}
+R123_STATIC_INLINE bool operator<=(const r123m128i&, const r123m128i&){
+    throw std::runtime_error("operator<=(r123m128i, r123m128i) is unimplemented.");}
+R123_STATIC_INLINE bool operator>(const r123m128i&, const r123m128i&){
+    throw std::runtime_error("operator>(r123m128i, r123m128i) is unimplemented.");}
+R123_STATIC_INLINE bool operator>=(const r123m128i&, const r123m128i&){
+    throw std::runtime_error("operator>=(r123m128i, r123m128i) is unimplemented.");}
+
+R123_STATIC_INLINE bool operator==(const r123m128i &lhs, const r123m128i &rhs){ 
+    return 0xf==_mm_movemask_ps(_mm_castsi128_ps(_mm_cmpeq_epi32(lhs, rhs))); }
+R123_STATIC_INLINE bool operator!=(const r123m128i &lhs, const r123m128i &rhs){ 
+    return !(lhs==rhs);}
+R123_STATIC_INLINE bool operator==(R123_ULONG_LONG lhs, const r123m128i &rhs){
+    r123m128i LHS; LHS.m=_mm_set_epi64x(0, lhs); return LHS == rhs; }
+R123_STATIC_INLINE bool operator!=(R123_ULONG_LONG lhs, const r123m128i &rhs){
+    return !(lhs==rhs);}
+R123_STATIC_INLINE std::ostream& operator<<(std::ostream& os, const r123m128i& m){
+    union{
+        uint64_t u64[2];
+        __m128i m;
+    }u;
+    _mm_storeu_si128(&u.m, m.m);
+    return os << u.u64[0] << " " << u.u64[1];
+}
+
+R123_STATIC_INLINE std::istream& operator>>(std::istream& is, r123m128i& m){
+    uint64_t u64[2];
+    is >> u64[0] >> u64[1];
+    m.m = _mm_set_epi64x(u64[1], u64[0]);
+    return is;
+}
+
+template<typename T> inline T assemble_from_u32(uint32_t *p32); // forward declaration
+
+template <>
+inline r123m128i assemble_from_u32<r123m128i>(uint32_t *p32){
+    r123m128i ret;
+    ret.m = _mm_set_epi32(p32[3], p32[2], p32[1], p32[0]);
+    return ret;
+}
+
+#else
+
+typedef struct {
+    __m128i m;
+} r123m128i;
+
+#endif /* __cplusplus */
+
+#else /* !R123_USE_SSE */
+R123_STATIC_INLINE int haveAESNI(){
+    return 0;
+}
+#endif /* R123_USE_SSE */
+
+#endif /* _Random123_sse_dot_h__ */
diff --git a/include/Random123/features/sunprofeatures.h b/include/Random123/features/sunprofeatures.h
new file mode 100644
index 0000000..c9cdc00
--- /dev/null
+++ b/include/Random123/features/sunprofeatures.h
@@ -0,0 +1,172 @@
+/*
+Copyright 2010-2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#ifndef __sunprofeatures_dot_hpp
+#define __sunprofeatures_dot_hpp
+
+#ifndef R123_STATIC_INLINE
+#define R123_STATIC_INLINE static inline
+#endif
+
+#ifndef R123_FORCE_INLINE
+#define R123_FORCE_INLINE(decl) decl
+#endif
+
+#ifndef R123_CUDA_DEVICE
+#define R123_CUDA_DEVICE
+#endif
+
+#ifndef R123_ASSERT
+#include <assert.h>
+#define R123_ASSERT(x) assert(x)
+#endif
+
+#ifndef R123_BUILTIN_EXPECT
+#define R123_BUILTIN_EXPECT(expr,likely) expr
+#endif
+
+// The basic idiom is:
+// #ifndef R123_SOMETHING
+// #if some condition
+// #define R123_SOMETHING 1
+// #else
+// #define R123_SOMETHING 0
+// #endif
+// #endif
+// This idiom allows an external user to override any decision
+// in this file with a command-line -DR123_SOMETHING=1 or -DR123_SOMETHINE=0
+
+// An alternative idiom is:
+// #ifndef R123_SOMETHING
+// #define R123_SOMETHING (some boolean expression)
+// #endif
+// where the boolean expression might contain previously-defined R123_SOMETHING_ELSE
+// pp-symbols.
+
+#ifndef R123_USE_AES_NI
+#define R123_USE_AES_NI 0
+#endif
+
+#ifndef R123_USE_SSE4_2
+#define R123_USE_SSE4_2 0
+#endif
+
+#ifndef R123_USE_SSE4_1
+#define R123_USE_SSE4_1 0
+#endif
+
+#ifndef R123_USE_SSE
+#define R123_USE_SSE 0
+#endif
+
+#ifndef R123_USE_AES_OPENSSL
+#define R123_USE_AES_OPENSSL 0
+#endif
+
+#ifndef R123_USE_GNU_UINT128
+#define R123_USE_GNU_UINT128 0
+#endif
+
+#ifndef R123_USE_ASM_GNU
+#define R123_USE_ASM_GNU 0
+#endif
+
+#ifndef R123_USE_CPUID_MSVC
+#define R123_USE_CPUID_MSVC 0
+#endif
+
+#ifndef R123_USE_X86INTRIN_H
+#define R123_USE_X86INTRIN_H 0
+#endif
+
+#ifndef R123_USE_IA32INTRIN_H
+#define R123_USE_IA32INTRIN_H 0
+#endif
+
+#ifndef R123_USE_XMMINTRIN_H
+#define R123_USE_XMMINTRIN_H 0
+#endif
+
+#ifndef R123_USE_EMMINTRIN_H
+#define R123_USE_EMMINTRIN_H 0
+#endif
+
+#ifndef R123_USE_SMMINTRIN_H
+#define R123_USE_SMMINTRIN_H 0
+#endif
+
+#ifndef R123_USE_WMMINTRIN_H
+#define R123_USE_WMMINTRIN_H 0
+#endif
+
+#ifndef R123_USE_INTRIN_H
+#define R123_USE_INTRIN_H 0
+#endif
+
+#ifndef R123_USE_MULHILO16_ASM
+#define R123_USE_MULHILO16_ASM 0
+#endif
+
+#ifndef R123_USE_MULHILO32_ASM
+#define R123_USE_MULHILO32_ASM 0
+#endif
+
+#ifndef R123_USE_MULHILO64_ASM
+#define R123_USE_MULHILO64_ASM 0
+#endif
+
+#ifndef R123_USE_MULHILO64_MSVC_INTRIN
+#define R123_USE_MULHILO64_MSVC_INTRIN 0
+#endif
+
+#ifndef R123_USE_MULHILO64_CUDA_INTRIN
+#define R123_USE_MULHILO64_CUDA_INTRIN 0
+#endif
+
+#ifndef R123_USE_MULHILO64_OPENCL_INTRIN
+#define R123_USE_MULHILO64_OPENCL_INTRIN 0
+#endif
+
+#ifndef R123_USE_PHILOX_64BIT
+#define R123_USE_PHILOX_64BIT 0
+#endif
+
+#ifndef __STDC_CONSTANT_MACROS
+#define __STDC_CONSTANT_MACROS
+#endif
+#include <stdint.h>
+#ifndef UINT64_C
+#error UINT64_C not defined.  You must define __STDC_CONSTANT_MACROS before you #include <stdint.h>
+#endif
+
+// If you add something, it must go in all the other XXfeatures.hpp
+// and in ../ut_features.cpp
+#endif
diff --git a/include/Random123/features/xlcfeatures.h b/include/Random123/features/xlcfeatures.h
new file mode 100644
index 0000000..a5c8412
--- /dev/null
+++ b/include/Random123/features/xlcfeatures.h
@@ -0,0 +1,202 @@
+/*
+Copyright 2010-2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+Copyright (c) 2013, Los Alamos National Security, LLC
+All rights reserved.
+
+Copyright 2013. Los Alamos National Security, LLC. This software was produced
+under U.S. Government contract DE-AC52-06NA25396 for Los Alamos National
+Laboratory (LANL), which is operated by Los Alamos National Security, LLC for
+the U.S. Department of Energy. The U.S. Government has rights to use,
+reproduce, and distribute this software.  NEITHER THE GOVERNMENT NOR LOS
+ALAMOS NATIONAL SECURITY, LLC MAKES ANY WARRANTY, EXPRESS OR IMPLIED, OR
+ASSUMES ANY LIABILITY FOR THE USE OF THIS SOFTWARE.  If software is modified
+to produce derivative works, such modified software should be clearly marked,
+so as not to confuse it with the version available from LANL.
+*/
+#ifndef __xlcfeatures_dot_hpp
+#define __xlcfeatures_dot_hpp
+
+#if !defined(__x86_64__) && !defined(__i386__) && !defined(__powerpc__)
+#  error "This code has only been tested on x86 and PowerPC platforms."
+#include <including_a_nonexistent_file_will_stop_some_compilers_from_continuing_with_a_hopeless_task>
+{ /* maybe an unbalanced brace will terminate the compilation */
+ /* Feel free to try the Random123 library on other architectures by changing
+ the conditions that reach this error, but you should consider it a
+ porting exercise and expect to encounter bugs and deficiencies.
+ Please let the authors know of any successes (or failures). */
+#endif
+
+#ifdef __cplusplus
+/* builtins are automatically available to xlc.  To use them with xlc++,
+   one must include builtins.h.   c.f
+   http://publib.boulder.ibm.com/infocenter/cellcomp/v101v121/index.jsp?topic=/com.ibm.xlcpp101.cell.doc/compiler_ref/compiler_builtins.html
+*/
+#include <builtins.h>
+#endif
+
+#ifndef R123_STATIC_INLINE
+#define R123_STATIC_INLINE static inline
+#endif
+
+#ifndef R123_FORCE_INLINE
+#define R123_FORCE_INLINE(decl) decl __attribute__((__always_inline__))
+#endif
+
+#ifndef R123_CUDA_DEVICE
+#define R123_CUDA_DEVICE
+#endif
+
+#ifndef R123_ASSERT
+#include <assert.h>
+#define R123_ASSERT(x) assert(x)
+#endif
+
+#ifndef R123_BUILTIN_EXPECT
+#define R123_BUILTIN_EXPECT(expr,likely) __builtin_expect(expr,likely)
+#endif
+
+#ifndef R123_USE_AES_NI
+#define R123_USE_AES_NI 0
+#endif
+
+#ifndef R123_USE_SSE4_2
+#define R123_USE_SSE4_2 0
+#endif
+
+#ifndef R123_USE_SSE4_1
+#define R123_USE_SSE4_1 0
+#endif
+
+#ifndef R123_USE_SSE
+#define R123_USE_SSE 0
+#endif
+
+#ifndef R123_USE_AES_OPENSSL
+/* There isn't really a good way to tell at compile time whether
+   openssl is available.  Without a pre-compilation configure-like
+   tool, it's less error-prone to guess that it isn't available.  Add
+   -DR123_USE_AES_OPENSSL=1 and any necessary LDFLAGS or LDLIBS to
+   play with openssl */
+#define R123_USE_AES_OPENSSL 0
+#endif
+
+#ifndef R123_USE_GNU_UINT128
+#define R123_USE_GNU_UINT128 0
+#endif
+
+#ifndef R123_USE_ASM_GNU
+#define R123_USE_ASM_GNU 1
+#endif
+
+#ifndef R123_USE_CPUID_MSVC
+#define R123_USE_CPUID_MSVC 0
+#endif
+
+#ifndef R123_USE_X86INTRIN_H
+#define R123_USE_X86INTRIN_H 0
+#endif
+
+#ifndef R123_USE_IA32INTRIN_H
+#define R123_USE_IA32INTRIN_H 0
+#endif
+
+#ifndef R123_USE_XMMINTRIN_H
+#define R123_USE_XMMINTRIN_H 0
+#endif
+
+#ifndef R123_USE_EMMINTRIN_H
+#define R123_USE_EMMINTRIN_H 0
+#endif
+
+#ifndef R123_USE_SMMINTRIN_H
+#define R123_USE_SMMINTRIN_H 0
+#endif
+
+#ifndef R123_USE_WMMINTRIN_H
+#define R123_USE_WMMINTRIN_H 0
+#endif
+
+#ifndef R123_USE_INTRIN_H
+#ifdef __ABM__
+#define R123_USE_INTRIN_H 1
+#else
+#define R123_USE_INTRIN_H 0
+#endif
+#endif
+
+#ifndef R123_USE_MULHILO32_ASM
+#define R123_USE_MULHILO32_ASM 0
+#endif
+
+#ifndef R123_USE_MULHILO64_MULHI_INTRIN
+#define R123_USE_MULHILO64_MULHI_INTRIN (defined(__powerpc64__))
+#endif
+
+#ifndef R123_MULHILO64_MULHI_INTRIN
+#define R123_MULHILO64_MULHI_INTRIN __mulhdu
+#endif
+
+#ifndef R123_USE_MULHILO32_MULHI_INTRIN
+#define R123_USE_MULHILO32_MULHI_INTRIN 0
+#endif
+
+#ifndef R123_MULHILO32_MULHI_INTRIN
+#define R123_MULHILO32_MULHI_INTRIN __mulhwu
+#endif
+
+#ifndef R123_USE_MULHILO64_ASM
+#define R123_USE_MULHILO64_ASM (defined(__powerpc64__) && !(R123_USE_MULHILO64_MULHI_INTRIN))
+#endif
+
+#ifndef R123_USE_MULHILO64_MSVC_INTRIN
+#define R123_USE_MULHILO64_MSVC_INTRIN 0
+#endif
+
+#ifndef R123_USE_MULHILO64_CUDA_INTRIN
+#define R123_USE_MULHILO64_CUDA_INTRIN 0
+#endif
+
+#ifndef R123_USE_MULHILO64_OPENCL_INTRIN
+#define R123_USE_MULHILO64_OPENCL_INTRIN 0
+#endif
+
+#ifndef __STDC_CONSTANT_MACROS
+#define __STDC_CONSTANT_MACROS
+#endif
+#include <stdint.h>
+#ifndef UINT64_C
+#error UINT64_C not defined.  You must define __STDC_CONSTANT_MACROS before you #include <stdint.h>
+#endif
+
+/* If you add something, it must go in all the other XXfeatures.hpp
+   and in ../ut_features.cpp */
+#endif
diff --git a/include/Random123/gsl_microrng.h b/include/Random123/gsl_microrng.h
new file mode 100644
index 0000000..4f09412
--- /dev/null
+++ b/include/Random123/gsl_microrng.h
@@ -0,0 +1,136 @@
+/*
+Copyright 2010-2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#ifndef __r123_gslmicrorng_dot_h__
+#define __r123_gslmicrorng_dot_h__
+
+
+#include <gsl/gsl_rng.h>
+#include <string.h>
+
+/**   The macro: GSL_MICRORNG(NAME, CBRNGNAME) is the GSL
+   analog analog of the C++ r123::MicroURNG template.  It declares a gsl_rng
+   type named gsl_rng_NAME which uses the underlying CBRNGNAME
+   and can be invoked a limited number of times between calls to NAME_reset.
+
+   When the underlying CBRNG's \c ctr_t is an \ref arrayNxW "r123arrayNxW",
+   and the gsl_rng_NAME may called up to \c N*2^32 times 
+   between calls to \c NAME_reset.
+
+   \c NAME_reset takes a gsl_rng_NAME type, a counter and a key as arguments.
+   It restarts the micro-rng with a new base counter and key.
+
+   Note that you must call NAME_reset before the first use
+   of a gsl_rng.  NAME_reset is not called automatically by
+   gsl_rng_alloc().
+
+   @code
+   #include <Random123/threefry.h>
+   #include <Random123/gsl_microrng.h> // this file
+   GSL_MICRORNG(microcbrng, threefry4x64, 20)	// creates gsl_rng_microcbrng
+
+   int main(int argc, char** argv) {
+	gsl_rng *r = gsl_rng_alloc(gsl_rng_microcbrng);
+	threefry4x64_ctr_t c = {{}};
+	threefry4x64_key_t k = {{}};
+
+	for (...) {
+	    c.v[0] = ??; //  some application variable
+	    microcbrng_reset(r, c, k);
+	    for (...) {
+		// gaussian calls r several times.  It is safe for
+		// r to be used upto 2^20 times in this loop
+		something[i] = gsl_ran_gaussian(r, 1.5);
+	    }
+	}
+   }
+   @endcode
+   
+*/
+
+#define GSL_MICRORNG(NAME, CBRNGNAME)                                   \
+const gsl_rng_type *gsl_rng_##NAME;                                     \
+                                                                        \
+typedef struct{                                                         \
+    CBRNGNAME##_ctr_t ctr;                                              \
+    CBRNGNAME##_ctr_t r;                                                \
+    CBRNGNAME##_key_t key;                                              \
+    R123_ULONG_LONG n;                                                  \
+    int elem;                                                           \
+} NAME##_state;                                                         \
+                                                                        \
+static unsigned long int NAME##_get(void *vstate){                      \
+    NAME##_state *st = (NAME##_state *)vstate;                          \
+    const int N=sizeof(st->ctr.v)/sizeof(st->ctr.v[0]);                 \
+    if( st->elem == 0 ){                                                \
+        CBRNGNAME##_ctr_t c = st->ctr;                                  \
+        c.v[N-1] |= st->n<<(R123_W(CBRNGNAME##_ctr_t)-32);              \
+        st->n++;                                                        \
+        st->r = CBRNGNAME(c, st->key);                                  \
+        st->elem = N;                                                   \
+    }                                                                   \
+    return 0xffffffff & st->r.v[--st->elem];                            \
+}                                                                       \
+                                                                        \
+static double                                                           \
+NAME##_get_double (void * vstate)                                       \
+{                                                                       \
+    return NAME##_get (vstate)/4294967296.;                             \
+}                                                                       \
+                                                                        \
+static void NAME##_set(void *vstate, unsigned long int s){              \
+    NAME##_state *st = (NAME##_state *)vstate;                          \
+    (void)s; /* ignored */                                              \
+    st->elem = 0;                                                       \
+    st->n = ~0; /* will abort if _reset is not called */                \
+}                                                                       \
+                                                                        \
+static const gsl_rng_type NAME##_type = {                               \
+    #NAME,                                                              \
+    0xffffffffUL,                                                       \
+    0,                                                                  \
+    sizeof(NAME##_state),                                               \
+    &NAME##_set,                                                        \
+    &NAME##_get,                                                        \
+    &NAME##_get_double                                                  \
+};                                                                      \
+                                                                        \
+R123_STATIC_INLINE void NAME##_reset(const gsl_rng* gr, CBRNGNAME##_ctr_t c, CBRNGNAME##_key_t k) { \
+    NAME##_state* state = (NAME##_state *)gr->state;                    \
+    state->ctr = c;                                                     \
+    state->key = k;                                                     \
+    state->n = 0;                                                       \
+    state->elem = 0;                                                    \
+}                                                                       \
+                                                                        \
+const gsl_rng_type *gsl_rng_##NAME = &NAME##_type
+
+#endif
diff --git a/include/Random123/philox.h b/include/Random123/philox.h
new file mode 100644
index 0000000..9c87384
--- /dev/null
+++ b/include/Random123/philox.h
@@ -0,0 +1,486 @@
+/*
+Copyright 2010-2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#ifndef _philox_dot_h_
+#define _philox_dot_h_
+
+/** \cond HIDDEN_FROM_DOXYGEN */
+
+#include "features/compilerfeatures.h"
+#include "array.h"
+
+
+/*
+// Macros _Foo_tpl are code generation 'templates'  They define
+// inline functions with names obtained by mangling Foo and the
+// macro arguments.  E.g.,
+//   _mulhilo_tpl(32, uint32_t, uint64_t)
+// expands to a definition of:
+//   mulhilo32(uint32_t, uint32_t, uint32_t *, uint32_t *)
+// We then 'instantiate the template' to define
+// several different functions, e.g.,
+//   mulhilo32
+//   mulhilo64
+// These functions will be visible to user code, and may
+// also be used later in subsequent templates and definitions.
+
+// A template for mulhilo using a temporary of twice the word-width.
+// Gcc figures out that this can be reduced to a single 'mul' instruction,
+// despite the apparent use of double-wide variables, shifts, etc.  It's
+// obviously not guaranteed that all compilers will be that smart, so
+// other implementations might be preferable, e.g., using an intrinsic
+// or an asm block.  On the other hand, for 32-bit multiplies,
+// this *is* perfectly standard C99 - any C99 compiler should 
+// understand it and produce correct code.  For 64-bit multiplies,
+// it's only usable if the compiler recognizes that it can do
+// arithmetic on a 128-bit type.  That happens to be true for gcc on
+// x86-64, and powerpc64 but not much else.
+*/
+#define _mulhilo_dword_tpl(W, Word, Dword)                              \
+R123_CUDA_DEVICE R123_STATIC_INLINE Word mulhilo##W(Word a, Word b, Word* hip){ \
+    Dword product = ((Dword)a)*((Dword)b);                              \
+    *hip = product>>W;                                                  \
+    return (Word)product;                                               \
+}
+
+/*
+// A template for mulhilo using gnu-style asm syntax.
+// INSN can be "mulw", "mull" or "mulq".  
+// FIXME - porting to other architectures, we'll need still-more conditional
+// branching here.  Note that intrinsics are usually preferable.
+*/
+#ifdef __powerpc__
+#define _mulhilo_asm_tpl(W, Word, INSN)                         \
+R123_STATIC_INLINE Word mulhilo##W(Word ax, Word b, Word *hip){ \
+    Word dx = 0;                                                \
+    __asm__("\n\t"                                              \
+        INSN " %0,%1,%2\n\t"                                    \
+        : "=r"(dx)                                              \
+        : "r"(b), "r"(ax)                                       \
+        );                                                      \
+    *hip = dx;                                                  \
+    return ax*b;                                                \
+}
+#else
+#define _mulhilo_asm_tpl(W, Word, INSN)                         \
+R123_STATIC_INLINE Word mulhilo##W(Word ax, Word b, Word *hip){      \
+    Word dx;                                                    \
+    __asm__("\n\t"                                              \
+        INSN " %2\n\t"                                          \
+        : "=a"(ax), "=d"(dx)                                    \
+        : "r"(b), "0"(ax)                                       \
+        );                                                      \
+    *hip = dx;                                                  \
+    return ax;                                                  \
+}
+#endif /* __powerpc__ */
+
+/*
+// A template for mulhilo using MSVC-style intrinsics
+// For example,_umul128 is an msvc intrinsic, c.f.
+// http://msdn.microsoft.com/en-us/library/3dayytw9.aspx
+*/
+#define _mulhilo_msvc_intrin_tpl(W, Word, INTRIN)               \
+R123_STATIC_INLINE Word mulhilo##W(Word a, Word b, Word* hip){       \
+    return INTRIN(a, b, hip);                                   \
+}
+
+/* N.B.  This really should be called _mulhilo_mulhi_intrin.  It just
+   happens that CUDA was the first time we used the idiom. */
+#define _mulhilo_cuda_intrin_tpl(W, Word, INTRIN)                       \
+R123_CUDA_DEVICE R123_STATIC_INLINE Word mulhilo##W(Word a, Word b, Word* hip){ \
+    *hip = INTRIN(a, b);                                                \
+    return a*b;                                                         \
+}
+
+/*
+// A template for mulhilo using only word-size operations and
+// C99 operators (no adc, no mulhi).  It
+// requires four multiplies and a dozen or so shifts, adds
+// and tests.  It's not clear what this is good for, other than
+// completeness.  On 32-bit platforms, it could be used to
+// implement philoxNx64, but on such platforms both the philoxNx32
+// and the threefryNx64 cbrngs are going to have much better
+// performance.  It is enabled below by R123_USE_MULHILO64_C99,
+// but that is currently (Sep 2011) not set by any of the
+// features/XXfeatures.h headers.  It can, of course, be
+// set with a compile-time -D option.
+*/
+#define _mulhilo_c99_tpl(W, Word) \
+R123_STATIC_INLINE Word mulhilo##W(Word a, Word b, Word *hip){ \
+    const unsigned WHALF = W/2;                                    \
+    const Word LOMASK = ((((Word)1)<<WHALF)-1);                    \
+    Word lo = a*b;               /* full low multiply */           \
+    Word ahi = a>>WHALF;                                           \
+    Word alo = a& LOMASK;                                          \
+    Word bhi = b>>WHALF;                                           \
+    Word blo = b& LOMASK;                                          \
+                                                                   \
+    Word ahbl = ahi*blo;                                           \
+    Word albh = alo*bhi;                                           \
+                                                                   \
+    Word ahbl_albh = ((ahbl&LOMASK) + (albh&LOMASK));                   \
+    Word hi = ahi*bhi + (ahbl>>WHALF) +  (albh>>WHALF);                 \
+    hi += ahbl_albh >> WHALF; /* carry from the sum of lo(ahbl) + lo(albh) ) */ \
+    /* carry from the sum with alo*blo */                               \
+    hi += ((lo >> WHALF) < (ahbl_albh&LOMASK));                         \
+    *hip = hi;                                                          \
+    return lo;                                                          \
+}
+
+/*
+// A template for mulhilo on a platform that can't do it
+// We could put a C version here, but is it better to run *VERY*
+// slowly or to just stop and force the user to find another CBRNG?
+*/
+#define _mulhilo_fail_tpl(W, Word)                                      \
+R123_STATIC_INLINE Word mulhilo##W(Word a, Word b, Word *hip){               \
+    R123_STATIC_ASSERT(0, "mulhilo" #W " is not implemented on this machine\n"); \
+}
+
+/*
+// N.B.  There's an MSVC intrinsic called _emul,
+// which *might* compile into better code than
+// _mulhilo_dword_tpl 
+*/
+#if R123_USE_MULHILO32_ASM
+#ifdef __powerpc__
+_mulhilo_asm_tpl(32, uint32_t, "mulhwu")
+#else
+_mulhilo_asm_tpl(32, uint32_t, "mull")
+#endif /* __powerpc__ */
+#else
+_mulhilo_dword_tpl(32, uint32_t, uint64_t)
+#endif
+
+#if R123_USE_PHILOX_64BIT
+#if R123_USE_MULHILO64_ASM
+#ifdef __powerpc64__
+_mulhilo_asm_tpl(64, uint64_t, "mulhdu")
+#else
+_mulhilo_asm_tpl(64, uint64_t, "mulq")
+#endif /* __powerpc64__ */
+#elif R123_USE_MULHILO64_MSVC_INTRIN
+_mulhilo_msvc_intrin_tpl(64, uint64_t, _umul128)
+#elif R123_USE_MULHILO64_CUDA_INTRIN
+_mulhilo_cuda_intrin_tpl(64, uint64_t, __umul64hi)
+#elif R123_USE_MULHILO64_OPENCL_INTRIN
+_mulhilo_cuda_intrin_tpl(64, uint64_t, mul_hi)
+#elif R123_USE_MULHILO64_MULHI_INTRIN
+_mulhilo_cuda_intrin_tpl(64, uint64_t, R123_MULHILO64_MULHI_INTRIN)
+#elif R123_USE_GNU_UINT128
+_mulhilo_dword_tpl(64, uint64_t, __uint128_t)
+#elif R123_USE_MULHILO64_C99
+_mulhilo_c99_tpl(64, uint64_t)
+#else
+_mulhilo_fail_tpl(64, uint64_t)
+#endif
+#endif
+
+/*
+// The multipliers and Weyl constants are "hard coded".
+// To change them, you can #define them with different
+// values before #include-ing this file. 
+// This isn't terribly elegant, but it works for C as
+// well as C++.  A nice C++-only solution would be to
+// use template parameters in the style of <random>
+*/
+#ifndef PHILOX_M2x64_0
+#define PHILOX_M2x64_0 R123_64BIT(0xD2B74407B1CE6E93)
+#endif
+
+#ifndef PHILOX_M4x64_0
+#define PHILOX_M4x64_0 R123_64BIT(0xD2E7470EE14C6C93)
+#endif
+
+#ifndef PHILOX_M4x64_1
+#define PHILOX_M4x64_1 R123_64BIT(0xCA5A826395121157)
+#endif
+
+#ifndef PHILOX_M2x32_0
+#define PHILOX_M2x32_0 ((uint32_t)0xd256d193)
+#endif
+
+#ifndef PHILOX_M4x32_0
+#define PHILOX_M4x32_0 ((uint32_t)0xD2511F53)
+#endif
+#ifndef PHILOX_M4x32_1
+#define PHILOX_M4x32_1 ((uint32_t)0xCD9E8D57)
+#endif
+
+#ifndef PHILOX_W64_0
+#define PHILOX_W64_0 R123_64BIT(0x9E3779B97F4A7C15)  /* golden ratio */
+#endif
+#ifndef PHILOX_W64_1
+#define PHILOX_W64_1 R123_64BIT(0xBB67AE8584CAA73B)  /* sqrt(3)-1 */
+#endif
+
+#ifndef PHILOX_W32_0
+#define PHILOX_W32_0 ((uint32_t)0x9E3779B9)
+#endif
+#ifndef PHILOX_W32_1
+#define PHILOX_W32_1 ((uint32_t)0xBB67AE85)
+#endif
+
+#ifndef PHILOX2x32_DEFAULT_ROUNDS
+#define PHILOX2x32_DEFAULT_ROUNDS 10
+#endif
+
+#ifndef PHILOX2x64_DEFAULT_ROUNDS
+#define PHILOX2x64_DEFAULT_ROUNDS 10
+#endif
+
+#ifndef PHILOX4x32_DEFAULT_ROUNDS
+#define PHILOX4x32_DEFAULT_ROUNDS 10
+#endif
+
+#ifndef PHILOX4x64_DEFAULT_ROUNDS
+#define PHILOX4x64_DEFAULT_ROUNDS 10
+#endif
+
+/* The ignored fourth argument allows us to instantiate the
+   same macro regardless of N. */
+#define _philox2xWround_tpl(W, T)                                       \
+R123_CUDA_DEVICE R123_STATIC_INLINE R123_FORCE_INLINE(struct r123array2x##W _philox2x##W##round(struct r123array2x##W ctr, struct r123array1x##W key)); \
+R123_CUDA_DEVICE R123_STATIC_INLINE struct r123array2x##W _philox2x##W##round(struct r123array2x##W ctr, struct r123array1x##W key){ \
+    T hi;                                                               \
+    T lo = mulhilo##W(PHILOX_M2x##W##_0, ctr.v[0], &hi);                \
+    struct r123array2x##W out = {{hi^key.v[0]^ctr.v[1], lo}};               \
+    return out;                                                         \
+}
+#define _philox2xWbumpkey_tpl(W)                                        \
+R123_CUDA_DEVICE R123_STATIC_INLINE struct r123array1x##W _philox2x##W##bumpkey( struct r123array1x##W key) { \
+    key.v[0] += PHILOX_W##W##_0;                                        \
+    return key;                                                         \
+}
+
+#define _philox4xWround_tpl(W, T)                                       \
+R123_CUDA_DEVICE R123_STATIC_INLINE R123_FORCE_INLINE(struct r123array4x##W _philox4x##W##round(struct r123array4x##W ctr, struct r123array2x##W key)); \
+R123_CUDA_DEVICE R123_STATIC_INLINE struct r123array4x##W _philox4x##W##round(struct r123array4x##W ctr, struct r123array2x##W key){ \
+    T hi0;                                                              \
+    T hi1;                                                              \
+    T lo0 = mulhilo##W(PHILOX_M4x##W##_0, ctr.v[0], &hi0);              \
+    T lo1 = mulhilo##W(PHILOX_M4x##W##_1, ctr.v[2], &hi1);              \
+    struct r123array4x##W out = {{hi1^ctr.v[1]^key.v[0], lo1,               \
+                              hi0^ctr.v[3]^key.v[1], lo0}};             \
+    return out;                                                         \
+}
+
+#define _philox4xWbumpkey_tpl(W)                                        \
+R123_CUDA_DEVICE R123_STATIC_INLINE struct r123array2x##W _philox4x##W##bumpkey( struct r123array2x##W key) { \
+    key.v[0] += PHILOX_W##W##_0;                                        \
+    key.v[1] += PHILOX_W##W##_1;                                        \
+    return key;                                                         \
+}
+
+#define _philoxNxW_tpl(N, Nhalf, W, T)                         \
+/** @ingroup PhiloxNxW */                                       \
+enum r123_enum_philox##N##x##W { philox##N##x##W##_rounds = PHILOX##N##x##W##_DEFAULT_ROUNDS }; \
+typedef struct r123array##N##x##W philox##N##x##W##_ctr_t;                  \
+typedef struct r123array##Nhalf##x##W philox##N##x##W##_key_t;              \
+typedef struct r123array##Nhalf##x##W philox##N##x##W##_ukey_t;              \
+R123_CUDA_DEVICE R123_STATIC_INLINE philox##N##x##W##_key_t philox##N##x##W##keyinit(philox##N##x##W##_ukey_t uk) { return uk; } \
+R123_CUDA_DEVICE R123_STATIC_INLINE R123_FORCE_INLINE(philox##N##x##W##_ctr_t philox##N##x##W##_R(unsigned int R, philox##N##x##W##_ctr_t ctr, philox##N##x##W##_key_t key)); \
+R123_CUDA_DEVICE R123_STATIC_INLINE philox##N##x##W##_ctr_t philox##N##x##W##_R(unsigned int R, philox##N##x##W##_ctr_t ctr, philox##N##x##W##_key_t key) { \
+    R123_ASSERT(R<=16);                                                 \
+    if(R>0){                                       ctr = _philox##N##x##W##round(ctr, key); } \
+    if(R>1){ key = _philox##N##x##W##bumpkey(key); ctr = _philox##N##x##W##round(ctr, key); } \
+    if(R>2){ key = _philox##N##x##W##bumpkey(key); ctr = _philox##N##x##W##round(ctr, key); } \
+    if(R>3){ key = _philox##N##x##W##bumpkey(key); ctr = _philox##N##x##W##round(ctr, key); } \
+    if(R>4){ key = _philox##N##x##W##bumpkey(key); ctr = _philox##N##x##W##round(ctr, key); } \
+    if(R>5){ key = _philox##N##x##W##bumpkey(key); ctr = _philox##N##x##W##round(ctr, key); } \
+    if(R>6){ key = _philox##N##x##W##bumpkey(key); ctr = _philox##N##x##W##round(ctr, key); } \
+    if(R>7){ key = _philox##N##x##W##bumpkey(key); ctr = _philox##N##x##W##round(ctr, key); } \
+    if(R>8){ key = _philox##N##x##W##bumpkey(key); ctr = _philox##N##x##W##round(ctr, key); } \
+    if(R>9){ key = _philox##N##x##W##bumpkey(key); ctr = _philox##N##x##W##round(ctr, key); } \
+    if(R>10){ key = _philox##N##x##W##bumpkey(key); ctr = _philox##N##x##W##round(ctr, key); } \
+    if(R>11){ key = _philox##N##x##W##bumpkey(key); ctr = _philox##N##x##W##round(ctr, key); } \
+    if(R>12){ key = _philox##N##x##W##bumpkey(key); ctr = _philox##N##x##W##round(ctr, key); } \
+    if(R>13){ key = _philox##N##x##W##bumpkey(key); ctr = _philox##N##x##W##round(ctr, key); } \
+    if(R>14){ key = _philox##N##x##W##bumpkey(key); ctr = _philox##N##x##W##round(ctr, key); } \
+    if(R>15){ key = _philox##N##x##W##bumpkey(key); ctr = _philox##N##x##W##round(ctr, key); } \
+    return ctr;                                                         \
+}
+         
+_philox2xWbumpkey_tpl(32)
+_philox4xWbumpkey_tpl(32)
+_philox2xWround_tpl(32, uint32_t) /* philo2x32round */
+_philox4xWround_tpl(32, uint32_t)            /* philo4x32round */
+/** \endcond */
+_philoxNxW_tpl(2, 1, 32, uint32_t)    /* philox2x32bijection */
+_philoxNxW_tpl(4, 2, 32, uint32_t)    /* philox4x32bijection */
+#if R123_USE_PHILOX_64BIT
+/** \cond HIDDEN_FROM_DOXYGEN */
+_philox2xWbumpkey_tpl(64)
+_philox4xWbumpkey_tpl(64)
+_philox2xWround_tpl(64, uint64_t) /* philo2x64round */
+_philox4xWround_tpl(64, uint64_t) /* philo4x64round */
+/** \endcond */
+_philoxNxW_tpl(2, 1, 64, uint64_t)    /* philox2x64bijection */
+_philoxNxW_tpl(4, 2, 64, uint64_t)    /* philox4x64bijection */
+#endif /* R123_USE_PHILOX_64BIT */
+
+#define philox2x32(c,k) philox2x32_R(philox2x32_rounds, c, k)
+#define philox4x32(c,k) philox4x32_R(philox4x32_rounds, c, k)
+#if R123_USE_PHILOX_64BIT
+#define philox2x64(c,k) philox2x64_R(philox2x64_rounds, c, k)
+#define philox4x64(c,k) philox4x64_R(philox4x64_rounds, c, k)
+#endif /* R123_USE_PHILOX_64BIT */
+
+#ifdef __cplusplus
+#include <stdexcept>
+
+/** \cond HIDDEN_FROM_DOXYGEN */
+
+#define _PhiloxNxW_base_tpl(CType, KType, N, W)                         \
+namespace r123{                                                          \
+template<unsigned int ROUNDS>                                             \
+struct Philox##N##x##W##_R{                                             \
+    typedef CType ctr_type;                                         \
+    typedef KType key_type;                                             \
+    typedef KType ukey_type;                                         \
+    static const unsigned int rounds=ROUNDS;                                 \
+    inline R123_CUDA_DEVICE R123_FORCE_INLINE(ctr_type operator()(ctr_type ctr, key_type key) const){ \
+        R123_STATIC_ASSERT(ROUNDS<=16, "philox is only unrolled up to 16 rounds\n"); \
+        return philox##N##x##W##_R(ROUNDS, ctr, key);                       \
+    }                                                                   \
+};                                                                      \
+typedef Philox##N##x##W##_R<philox##N##x##W##_rounds> Philox##N##x##W; \
+ } // namespace r123
+/** \endcond */
+
+_PhiloxNxW_base_tpl(r123array2x32, r123array1x32, 2, 32) // Philox2x32_R<R>
+_PhiloxNxW_base_tpl(r123array4x32, r123array2x32, 4, 32) // Philox4x32_R<R>
+#if R123_USE_PHILOX_64BIT
+_PhiloxNxW_base_tpl(r123array2x64, r123array1x64, 2, 64) // Philox2x64_R<R>
+_PhiloxNxW_base_tpl(r123array4x64, r123array2x64, 4, 64) // Philox4x64_R<R>
+#endif
+
+/* The _tpl macros don't quite work to do string-pasting inside comments.
+   so we just write out the boilerplate documentation four times... */
+
+/** 
+ at defgroup PhiloxNxW Philox Classes and Typedefs
+
+The PhiloxNxW classes export the member functions, typedefs and
+operator overloads required by a @ref CBRNG "CBRNG" class.
+
+As described in  
+<a href="http://dl.acm.org/citation.cfm?doid=2063405"><i>Parallel Random Numbers:  As Easy as 1, 2, 3</i> </a>.
+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).
+
+
+ at class r123::Philox2x32_R 
+ at ingroup PhiloxNxW
+
+exports the member functions, typedefs and operator overloads required by a @ref CBRNG "CBRNG" class.
+
+The template argument, ROUNDS, is the number of times the Philox round
+function will be applied.
+
+As of November 2011, the authors know of no statistical flaws with
+ROUNDS=6 or more for Philox2x32.
+
+ at typedef r123::Philox2x32
+ at ingroup PhiloxNxW
+  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. 
+
+
+
+ at class r123::Philox2x64_R 
+ at ingroup PhiloxNxW
+
+exports the member functions, typedefs and operator overloads required by a @ref CBRNG "CBRNG" class.
+
+The template argument, ROUNDS, is the number of times the Philox round
+function will be applied.
+
+As of September 2011, the authors know of no statistical flaws with
+ROUNDS=6 or more for Philox2x64.
+
+ at typedef r123::Philox2x64
+ at ingroup PhiloxNxW
+  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. 
+
+
+
+ at class r123::Philox4x32_R 
+ at ingroup PhiloxNxW
+
+exports the member functions, typedefs and operator overloads required by a @ref CBRNG "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.
+
+ at typedef r123::Philox4x32
+ at ingroup PhiloxNxW
+  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. 
+
+
+
+ at class r123::Philox4x64_R 
+ at ingroup PhiloxNxW
+
+exports the member functions, typedefs and operator overloads required by a @ref CBRNG "CBRNG" class.
+
+The template argument, ROUNDS, is the number of times the Philox round
+function will be applied.
+
+As of September 2011, the authors know of no statistical flaws with
+ROUNDS=7 or more for Philox4x64.
+
+ at typedef r123::Philox4x64
+ at ingroup PhiloxNxW
+  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. 
+*/
+
+#endif /* __cplusplus */
+
+#endif /* _philox_dot_h_ */
diff --git a/include/Random123/threefry.h b/include/Random123/threefry.h
new file mode 100644
index 0000000..da2de97
--- /dev/null
+++ b/include/Random123/threefry.h
@@ -0,0 +1,864 @@
+/*
+Copyright 2010-2011, D. E. Shaw Research.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions, and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions, and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the name of D. E. Shaw Research nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#ifndef _threefry_dot_h_
+#define _threefry_dot_h_
+#include "features/compilerfeatures.h"
+#include "array.h"
+
+/** \cond HIDDEN_FROM_DOXYGEN */
+/* Significant parts of this file were copied from
+   from:
+      Skein_FinalRnd/ReferenceImplementation/skein.h
+      Skein_FinalRnd/ReferenceImplementation/skein_block.c
+
+   in http://csrc.nist.gov/groups/ST/hash/sha-3/Round3/documents/Skein_FinalRnd.zip
+
+   This file has been modified so that it may no longer perform its originally
+   intended function.  If you're looking for a Skein or Threefish source code,
+   please consult the original file.
+
+   The original file had the following header:
+**************************************************************************
+**
+** Interface declarations and internal definitions for Skein hashing.
+**
+** Source code author: Doug Whiting, 2008.
+**
+** This algorithm and source code is released to the public domain.
+**
+***************************************************************************
+
+*/
+
+/* See comment at the top of philox.h for the macro pre-process
+   strategy. */
+
+/* Rotation constants: */
+enum r123_enum_threefry64x4 {
+    /* These are the R_256 constants from the Threefish reference sources
+       with names changed to R_64x4... */
+    R_64x4_0_0=14, R_64x4_0_1=16,
+    R_64x4_1_0=52, R_64x4_1_1=57,
+    R_64x4_2_0=23, R_64x4_2_1=40,
+    R_64x4_3_0= 5, R_64x4_3_1=37,
+    R_64x4_4_0=25, R_64x4_4_1=33,
+    R_64x4_5_0=46, R_64x4_5_1=12,
+    R_64x4_6_0=58, R_64x4_6_1=22,
+    R_64x4_7_0=32, R_64x4_7_1=32
+};
+
+enum r123_enum_threefry64x2 {
+    /*
+    // Output from skein_rot_search: (srs64_B64-X1000)
+    // Random seed = 1. BlockSize = 128 bits. sampleCnt =  1024. rounds =  8, minHW_or=57
+    // Start: Tue Mar  1 10:07:48 2011
+    // rMin = 0.136. #0325[*15] [CRC=455A682F. hw_OR=64. cnt=16384. blkSize= 128].format   
+    */
+    R_64x2_0_0=16,
+    R_64x2_1_0=42,
+    R_64x2_2_0=12,
+    R_64x2_3_0=31,
+    R_64x2_4_0=16,
+    R_64x2_5_0=32,
+    R_64x2_6_0=24,
+    R_64x2_7_0=21
+    /* 4 rounds: minHW =  4  [  4  4  4  4 ]
+    // 5 rounds: minHW =  8  [  8  8  8  8 ]
+    // 6 rounds: minHW = 16  [ 16 16 16 16 ]
+    // 7 rounds: minHW = 32  [ 32 32 32 32 ]
+    // 8 rounds: minHW = 64  [ 64 64 64 64 ]
+    // 9 rounds: minHW = 64  [ 64 64 64 64 ]
+    //10 rounds: minHW = 64  [ 64 64 64 64 ]
+    //11 rounds: minHW = 64  [ 64 64 64 64 ] */
+};
+
+enum r123_enum_threefry32x4 {
+    /* Output from skein_rot_search: (srs-B128-X5000.out)
+    // Random seed = 1. BlockSize = 64 bits. sampleCnt =  1024. rounds =  8, minHW_or=28
+    // Start: Mon Aug 24 22:41:36 2009
+    // ...
+    // rMin = 0.472. #0A4B[*33] [CRC=DD1ECE0F. hw_OR=31. cnt=16384. blkSize= 128].format    */
+    R_32x4_0_0=10, R_32x4_0_1=26,
+    R_32x4_1_0=11, R_32x4_1_1=21,
+    R_32x4_2_0=13, R_32x4_2_1=27,
+    R_32x4_3_0=23, R_32x4_3_1= 5,
+    R_32x4_4_0= 6, R_32x4_4_1=20,
+    R_32x4_5_0=17, R_32x4_5_1=11,
+    R_32x4_6_0=25, R_32x4_6_1=10,
+    R_32x4_7_0=18, R_32x4_7_1=20
+
+    /* 4 rounds: minHW =  3  [  3  3  3  3 ]
+    // 5 rounds: minHW =  7  [  7  7  7  7 ]
+    // 6 rounds: minHW = 12  [ 13 12 13 12 ]
+    // 7 rounds: minHW = 22  [ 22 23 22 23 ]
+    // 8 rounds: minHW = 31  [ 31 31 31 31 ]
+    // 9 rounds: minHW = 32  [ 32 32 32 32 ]
+    //10 rounds: minHW = 32  [ 32 32 32 32 ]
+    //11 rounds: minHW = 32  [ 32 32 32 32 ] */
+
+};
+
+enum r123_enum_threefry32x2 {
+    /* Output from skein_rot_search (srs32x2-X5000.out)
+    // Random seed = 1. BlockSize = 64 bits. sampleCnt =  1024. rounds =  8, minHW_or=28
+    // Start: Tue Jul 12 11:11:33 2011
+    // rMin = 0.334. #0206[*07] [CRC=1D9765C0. hw_OR=32. cnt=16384. blkSize=  64].format   */
+    R_32x2_0_0=13,
+    R_32x2_1_0=15,
+    R_32x2_2_0=26,
+    R_32x2_3_0= 6,
+    R_32x2_4_0=17,
+    R_32x2_5_0=29,
+    R_32x2_6_0=16,
+    R_32x2_7_0=24
+
+    /* 4 rounds: minHW =  4  [  4  4  4  4 ]
+    // 5 rounds: minHW =  6  [  6  8  6  8 ]
+    // 6 rounds: minHW =  9  [  9 12  9 12 ]
+    // 7 rounds: minHW = 16  [ 16 24 16 24 ]
+    // 8 rounds: minHW = 32  [ 32 32 32 32 ]
+    // 9 rounds: minHW = 32  [ 32 32 32 32 ]
+    //10 rounds: minHW = 32  [ 32 32 32 32 ]
+    //11 rounds: minHW = 32  [ 32 32 32 32 ] */
+    };
+
+enum r123_enum_threefry_wcnt {
+    WCNT2=2,
+    WCNT4=4
+};
+R123_CUDA_DEVICE R123_STATIC_INLINE R123_FORCE_INLINE(uint64_t RotL_64(uint64_t x, unsigned int N));
+R123_CUDA_DEVICE R123_STATIC_INLINE uint64_t RotL_64(uint64_t x, unsigned int N)
+{
+    return (x << (N & 63)) | (x >> ((64-N) & 63));
+}
+    
+R123_CUDA_DEVICE R123_STATIC_INLINE R123_FORCE_INLINE(uint32_t RotL_32(uint32_t x, unsigned int N));
+R123_CUDA_DEVICE R123_STATIC_INLINE uint32_t RotL_32(uint32_t x, unsigned int N)
+{
+    return (x << (N & 31)) | (x >> ((32-N) & 31));
+}
+
+#define SKEIN_MK_64(hi32,lo32)  ((lo32) + (((uint64_t) (hi32)) << 32))
+#define SKEIN_KS_PARITY64         SKEIN_MK_64(0x1BD11BDA,0xA9FC1A22)
+#define SKEIN_KS_PARITY32         0x1BD11BDA
+
+#ifndef THREEFRY2x32_DEFAULT_ROUNDS
+#define THREEFRY2x32_DEFAULT_ROUNDS 20
+#endif
+
+#ifndef THREEFRY2x64_DEFAULT_ROUNDS
+#define THREEFRY2x64_DEFAULT_ROUNDS 20
+#endif
+
+#ifndef THREEFRY4x32_DEFAULT_ROUNDS
+#define THREEFRY4x32_DEFAULT_ROUNDS 20
+#endif
+
+#ifndef THREEFRY4x64_DEFAULT_ROUNDS
+#define THREEFRY4x64_DEFAULT_ROUNDS 20
+#endif
+
+#define _threefry2x_tpl(W)                                              \
+typedef struct r123array2x##W threefry2x##W##_ctr_t;                          \
+typedef struct r123array2x##W threefry2x##W##_key_t;                          \
+typedef struct r123array2x##W threefry2x##W##_ukey_t;                          \
+R123_CUDA_DEVICE R123_STATIC_INLINE threefry2x##W##_key_t threefry2x##W##keyinit(threefry2x##W##_ukey_t uk) { return uk; } \
+R123_CUDA_DEVICE R123_STATIC_INLINE R123_FORCE_INLINE(threefry2x##W##_ctr_t threefry2x##W##_R(unsigned int Nrounds, threefry2x##W##_ctr_t in, threefry2x##W##_key_t k)); \
+R123_CUDA_DEVICE R123_STATIC_INLINE                                          \
+threefry2x##W##_ctr_t threefry2x##W##_R(unsigned int Nrounds, threefry2x##W##_ctr_t in, threefry2x##W##_key_t k){ \
+    threefry2x##W##_ctr_t X;                                              \
+    uint##W##_t ks[2+1];                                          \
+    int  i; /* avoid size_t to avoid need for stddef.h */                   \
+    R123_ASSERT(Nrounds<=32);                                           \
+    ks[2] =  SKEIN_KS_PARITY##W;                                   \
+    for (i=0;i < 2; i++)                                        \
+        {                                                               \
+            ks[i] = k.v[i];                                             \
+            X.v[i]  = in.v[i];                                          \
+            ks[2] ^= k.v[i];                                    \
+        }                                                               \
+                                                                        \
+    /* Insert initial key before round 0 */                             \
+    X.v[0] += ks[0]; X.v[1] += ks[1];                                   \
+                                                                        \
+    if(Nrounds>0){  X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x2_0_0); X.v[1] ^= X.v[0]; } \
+    if(Nrounds>1){  X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x2_1_0); X.v[1] ^= X.v[0]; } \
+    if(Nrounds>2){  X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x2_2_0); X.v[1] ^= X.v[0]; } \
+    if(Nrounds>3){  X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x2_3_0); X.v[1] ^= X.v[0]; } \
+    if(Nrounds>3){                                                      \
+        /* InjectKey(r=1) */                                            \
+        X.v[0] += ks[1]; X.v[1] += ks[2];                               \
+        X.v[1] += 1;     /* X.v[2-1] += r  */                   \
+    }                                                                   \
+    if(Nrounds>4){  X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x2_4_0); X.v[1] ^= X.v[0]; } \
+    if(Nrounds>5){  X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x2_5_0); X.v[1] ^= X.v[0]; } \
+    if(Nrounds>6){  X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x2_6_0); X.v[1] ^= X.v[0]; } \
+    if(Nrounds>7){  X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x2_7_0); X.v[1] ^= X.v[0]; } \
+    if(Nrounds>7){                                                      \
+        /* InjectKey(r=2) */                                            \
+        X.v[0] += ks[2]; X.v[1] += ks[0];                               \
+        X.v[1] += 2;                                                    \
+    }                                                                   \
+    if(Nrounds>8){  X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x2_0_0); X.v[1] ^= X.v[0]; } \
+    if(Nrounds>9){  X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x2_1_0); X.v[1] ^= X.v[0]; } \
+    if(Nrounds>10){  X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x2_2_0); X.v[1] ^= X.v[0]; } \
+    if(Nrounds>11){  X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x2_3_0); X.v[1] ^= X.v[0]; } \
+    if(Nrounds>11){                                                     \
+        /* InjectKey(r=3) */                                            \
+        X.v[0] += ks[0]; X.v[1] += ks[1];                               \
+        X.v[1] += 3;                                                    \
+    }                                                                   \
+    if(Nrounds>12){  X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x2_4_0); X.v[1] ^= X.v[0]; } \
+    if(Nrounds>13){  X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x2_5_0); X.v[1] ^= X.v[0]; } \
+    if(Nrounds>14){  X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x2_6_0); X.v[1] ^= X.v[0]; } \
+    if(Nrounds>15){  X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x2_7_0); X.v[1] ^= X.v[0]; } \
+    if(Nrounds>15){                                                     \
+        /* InjectKey(r=4) */                                            \
+        X.v[0] += ks[1]; X.v[1] += ks[2];                               \
+        X.v[1] += 4;                                                    \
+    }                                                                   \
+    if(Nrounds>16){  X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x2_0_0); X.v[1] ^= X.v[0]; } \
+    if(Nrounds>17){  X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x2_1_0); X.v[1] ^= X.v[0]; } \
+    if(Nrounds>18){  X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x2_2_0); X.v[1] ^= X.v[0]; } \
+    if(Nrounds>19){  X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x2_3_0); X.v[1] ^= X.v[0]; } \
+    if(Nrounds>19){                                                     \
+        /* InjectKey(r=5) */                                            \
+        X.v[0] += ks[2]; X.v[1] += ks[0];                               \
+        X.v[1] += 5;                                                    \
+    }                                                                   \
+    if(Nrounds>20){  X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x2_4_0); X.v[1] ^= X.v[0]; } \
+    if(Nrounds>21){  X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x2_5_0); X.v[1] ^= X.v[0]; } \
+    if(Nrounds>22){  X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x2_6_0); X.v[1] ^= X.v[0]; } \
+    if(Nrounds>23){  X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x2_7_0); X.v[1] ^= X.v[0]; } \
+    if(Nrounds>23){                                                     \
+        /* InjectKey(r=6) */                                            \
+        X.v[0] += ks[0]; X.v[1] += ks[1];                               \
+        X.v[1] += 6;                                                    \
+    }                                                                   \
+    if(Nrounds>24){  X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x2_0_0); X.v[1] ^= X.v[0]; } \
+    if(Nrounds>25){  X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x2_1_0); X.v[1] ^= X.v[0]; } \
+    if(Nrounds>26){  X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x2_2_0); X.v[1] ^= X.v[0]; } \
+    if(Nrounds>27){  X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x2_3_0); X.v[1] ^= X.v[0]; } \
+    if(Nrounds>27){                                                     \
+        /* InjectKey(r=7) */                                            \
+        X.v[0] += ks[1]; X.v[1] += ks[2];                               \
+        X.v[1] += 7;                                                    \
+    }                                                                   \
+    if(Nrounds>28){  X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x2_4_0); X.v[1] ^= X.v[0]; } \
+    if(Nrounds>29){  X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x2_5_0); X.v[1] ^= X.v[0]; } \
+    if(Nrounds>30){  X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x2_6_0); X.v[1] ^= X.v[0]; } \
+    if(Nrounds>31){  X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x2_7_0); X.v[1] ^= X.v[0]; } \
+    if(Nrounds>31){                                                     \
+        /* InjectKey(r=8) */                                            \
+        X.v[0] += ks[2]; X.v[1] += ks[0];                               \
+        X.v[1] += 8;                                                    \
+    }                                                                   \
+    return X;                                                           \
+}                                                                       \
+ /** @ingroup ThreefryNxW */                                            \
+enum r123_enum_threefry2x##W { threefry2x##W##_rounds = THREEFRY2x##W##_DEFAULT_ROUNDS };       \
+R123_CUDA_DEVICE R123_STATIC_INLINE R123_FORCE_INLINE(threefry2x##W##_ctr_t threefry2x##W(threefry2x##W##_ctr_t in, threefry2x##W##_key_t k)); \
+R123_CUDA_DEVICE R123_STATIC_INLINE                                     \
+threefry2x##W##_ctr_t threefry2x##W(threefry2x##W##_ctr_t in, threefry2x##W##_key_t k){ \
+    return threefry2x##W##_R(threefry2x##W##_rounds, in, k);            \
+}
+
+
+#define _threefry4x_tpl(W)                                              \
+typedef struct r123array4x##W threefry4x##W##_ctr_t;                        \
+typedef struct r123array4x##W threefry4x##W##_key_t;                        \
+typedef struct r123array4x##W threefry4x##W##_ukey_t;                        \
+R123_CUDA_DEVICE R123_STATIC_INLINE threefry4x##W##_key_t threefry4x##W##keyinit(threefry4x##W##_ukey_t uk) { return uk; } \
+R123_CUDA_DEVICE R123_STATIC_INLINE R123_FORCE_INLINE(threefry4x##W##_ctr_t threefry4x##W##_R(unsigned int Nrounds, threefry4x##W##_ctr_t in, threefry4x##W##_key_t k)); \
+R123_CUDA_DEVICE R123_STATIC_INLINE                                          \
+threefry4x##W##_ctr_t threefry4x##W##_R(unsigned int Nrounds, threefry4x##W##_ctr_t in, threefry4x##W##_key_t k){ \
+    threefry4x##W##_ctr_t X;                                            \
+    uint##W##_t ks[4+1];                                            \
+    int  i; /* avoid size_t to avoid need for stddef.h */                   \
+    R123_ASSERT(Nrounds<=72);                                           \
+    ks[4] =  SKEIN_KS_PARITY##W;                                    \
+    for (i=0;i < 4; i++)                                            \
+        {                                                               \
+            ks[i] = k.v[i];                                             \
+            X.v[i]  = in.v[i];                                          \
+            ks[4] ^= k.v[i];                                        \
+        }                                                               \
+                                                                        \
+    /* Insert initial key before round 0 */                             \
+    X.v[0] += ks[0]; X.v[1] += ks[1]; X.v[2] += ks[2]; X.v[3] += ks[3]; \
+                                                                        \
+    if(Nrounds>0){                                                      \
+        X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_0_0); X.v[1] ^= X.v[0]; \
+        X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_0_1); X.v[3] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>1){                                                      \
+        X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_1_0); X.v[3] ^= X.v[0]; \
+        X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_1_1); X.v[1] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>2){                                                      \
+        X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_2_0); X.v[1] ^= X.v[0]; \
+        X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_2_1); X.v[3] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>3){                                                      \
+        X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_3_0); X.v[3] ^= X.v[0]; \
+        X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_3_1); X.v[1] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>3){                                                      \
+        /* InjectKey(r=1) */                                            \
+        X.v[0] += ks[1]; X.v[1] += ks[2]; X.v[2] += ks[3]; X.v[3] += ks[4]; \
+        X.v[4-1] += 1;     /* X.v[WCNT4-1] += r  */                 \
+    }                                                                   \
+                                                                        \
+    if(Nrounds>4){                                                      \
+        X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_4_0); X.v[1] ^= X.v[0]; \
+        X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_4_1); X.v[3] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>5){                                                      \
+        X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_5_0); X.v[3] ^= X.v[0]; \
+        X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_5_1); X.v[1] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>6){                                                      \
+        X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_6_0); X.v[1] ^= X.v[0]; \
+        X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_6_1); X.v[3] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>7){                                                      \
+        X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_7_0); X.v[3] ^= X.v[0]; \
+        X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_7_1); X.v[1] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>7){                                                      \
+        /* InjectKey(r=2) */                                            \
+        X.v[0] += ks[2]; X.v[1] += ks[3]; X.v[2] += ks[4]; X.v[3] += ks[0]; \
+        X.v[4-1] += 2;     /* X.v[WCNT4-1] += r  */                 \
+    }                                                                   \
+                                                                        \
+    if(Nrounds>8){                                                      \
+        X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_0_0); X.v[1] ^= X.v[0]; \
+        X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_0_1); X.v[3] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>9){                                                      \
+        X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_1_0); X.v[3] ^= X.v[0]; \
+        X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_1_1); X.v[1] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>10){                                                     \
+        X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_2_0); X.v[1] ^= X.v[0]; \
+        X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_2_1); X.v[3] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>11){                                                     \
+        X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_3_0); X.v[3] ^= X.v[0]; \
+        X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_3_1); X.v[1] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>11){                                                     \
+        /* InjectKey(r=3) */                                            \
+        X.v[0] += ks[3]; X.v[1] += ks[4]; X.v[2] += ks[0]; X.v[3] += ks[1]; \
+        X.v[4-1] += 3;     /* X.v[WCNT4-1] += r  */                 \
+    }                                                                   \
+                                                                        \
+    if(Nrounds>12){                                                     \
+        X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_4_0); X.v[1] ^= X.v[0]; \
+        X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_4_1); X.v[3] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>13){                                                     \
+        X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_5_0); X.v[3] ^= X.v[0]; \
+        X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_5_1); X.v[1] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>14){                                                     \
+        X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_6_0); X.v[1] ^= X.v[0]; \
+        X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_6_1); X.v[3] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>15){                                                     \
+        X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_7_0); X.v[3] ^= X.v[0]; \
+        X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_7_1); X.v[1] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>15){                                                     \
+        /* InjectKey(r=1) */                                            \
+        X.v[0] += ks[4]; X.v[1] += ks[0]; X.v[2] += ks[1]; X.v[3] += ks[2]; \
+        X.v[4-1] += 4;     /* X.v[WCNT4-1] += r  */                 \
+    }                                                                   \
+                                                                        \
+    if(Nrounds>16){                                                     \
+        X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_0_0); X.v[1] ^= X.v[0]; \
+        X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_0_1); X.v[3] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>17){                                                     \
+        X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_1_0); X.v[3] ^= X.v[0]; \
+        X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_1_1); X.v[1] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>18){                                                     \
+        X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_2_0); X.v[1] ^= X.v[0]; \
+        X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_2_1); X.v[3] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>19){                                                     \
+        X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_3_0); X.v[3] ^= X.v[0]; \
+        X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_3_1); X.v[1] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>19){                                                     \
+        /* InjectKey(r=1) */                                            \
+        X.v[0] += ks[0]; X.v[1] += ks[1]; X.v[2] += ks[2]; X.v[3] += ks[3]; \
+        X.v[4-1] += 5;     /* X.v[WCNT4-1] += r  */                 \
+    }                                                                   \
+                                                                        \
+    if(Nrounds>20){                                                     \
+        X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_4_0); X.v[1] ^= X.v[0]; \
+        X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_4_1); X.v[3] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>21){                                                     \
+        X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_5_0); X.v[3] ^= X.v[0]; \
+        X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_5_1); X.v[1] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>22){                                                     \
+        X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_6_0); X.v[1] ^= X.v[0]; \
+        X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_6_1); X.v[3] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>23){                                                     \
+        X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_7_0); X.v[3] ^= X.v[0]; \
+        X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_7_1); X.v[1] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>23){                                                     \
+        /* InjectKey(r=1) */                                            \
+        X.v[0] += ks[1]; X.v[1] += ks[2]; X.v[2] += ks[3]; X.v[3] += ks[4]; \
+        X.v[4-1] += 6;     /* X.v[WCNT4-1] += r  */                 \
+    }                                                                   \
+                                                                        \
+    if(Nrounds>24){                                                     \
+        X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_0_0); X.v[1] ^= X.v[0]; \
+        X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_0_1); X.v[3] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>25){                                                     \
+        X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_1_0); X.v[3] ^= X.v[0]; \
+        X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_1_1); X.v[1] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>26){                                                     \
+        X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_2_0); X.v[1] ^= X.v[0]; \
+        X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_2_1); X.v[3] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>27){                                                     \
+        X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_3_0); X.v[3] ^= X.v[0]; \
+        X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_3_1); X.v[1] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>27){                                                     \
+        /* InjectKey(r=1) */                                            \
+        X.v[0] += ks[2]; X.v[1] += ks[3]; X.v[2] += ks[4]; X.v[3] += ks[0]; \
+        X.v[4-1] += 7;     /* X.v[WCNT4-1] += r  */                 \
+    }                                                                   \
+                                                                        \
+    if(Nrounds>28){                                                     \
+        X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_4_0); X.v[1] ^= X.v[0]; \
+        X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_4_1); X.v[3] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>29){                                                     \
+        X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_5_0); X.v[3] ^= X.v[0]; \
+        X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_5_1); X.v[1] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>30){                                                     \
+        X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_6_0); X.v[1] ^= X.v[0]; \
+        X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_6_1); X.v[3] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>31){                                                     \
+        X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_7_0); X.v[3] ^= X.v[0]; \
+        X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_7_1); X.v[1] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>31){                                                     \
+        /* InjectKey(r=1) */                                            \
+        X.v[0] += ks[3]; X.v[1] += ks[4]; X.v[2] += ks[0]; X.v[3] += ks[1]; \
+        X.v[4-1] += 8;     /* X.v[WCNT4-1] += r  */                 \
+    }                                                                   \
+                                                                        \
+    if(Nrounds>32){                                                     \
+        X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_0_0); X.v[1] ^= X.v[0]; \
+        X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_0_1); X.v[3] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>33){                                                     \
+        X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_1_0); X.v[3] ^= X.v[0]; \
+        X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_1_1); X.v[1] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>34){                                                     \
+        X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_2_0); X.v[1] ^= X.v[0]; \
+        X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_2_1); X.v[3] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>35){                                                     \
+        X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_3_0); X.v[3] ^= X.v[0]; \
+        X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_3_1); X.v[1] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>35){                                                     \
+        /* InjectKey(r=1) */                                            \
+        X.v[0] += ks[4]; X.v[1] += ks[0]; X.v[2] += ks[1]; X.v[3] += ks[2]; \
+        X.v[4-1] += 9;     /* X.v[WCNT4-1] += r  */                 \
+    }                                                                   \
+                                                                        \
+    if(Nrounds>36){                                                     \
+        X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_4_0); X.v[1] ^= X.v[0]; \
+        X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_4_1); X.v[3] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>37){                                                     \
+        X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_5_0); X.v[3] ^= X.v[0]; \
+        X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_5_1); X.v[1] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>38){                                                     \
+        X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_6_0); X.v[1] ^= X.v[0]; \
+        X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_6_1); X.v[3] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>39){                                                     \
+        X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_7_0); X.v[3] ^= X.v[0]; \
+        X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_7_1); X.v[1] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>39){                                                     \
+        /* InjectKey(r=1) */                                            \
+        X.v[0] += ks[0]; X.v[1] += ks[1]; X.v[2] += ks[2]; X.v[3] += ks[3]; \
+        X.v[4-1] += 10;     /* X.v[WCNT4-1] += r  */                 \
+    }                                                                   \
+                                                                        \
+    if(Nrounds>40){                                                     \
+        X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_0_0); X.v[1] ^= X.v[0]; \
+        X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_0_1); X.v[3] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>41){                                                     \
+        X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_1_0); X.v[3] ^= X.v[0]; \
+        X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_1_1); X.v[1] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>42){                                                     \
+        X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_2_0); X.v[1] ^= X.v[0]; \
+        X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_2_1); X.v[3] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>43){                                                     \
+        X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_3_0); X.v[3] ^= X.v[0]; \
+        X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_3_1); X.v[1] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>43){                                                     \
+        /* InjectKey(r=1) */                                            \
+        X.v[0] += ks[1]; X.v[1] += ks[2]; X.v[2] += ks[3]; X.v[3] += ks[4]; \
+        X.v[4-1] += 11;     /* X.v[WCNT4-1] += r  */                \
+    }                                                                   \
+                                                                        \
+    if(Nrounds>44){                                                     \
+        X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_4_0); X.v[1] ^= X.v[0]; \
+        X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_4_1); X.v[3] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>45){                                                     \
+        X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_5_0); X.v[3] ^= X.v[0]; \
+        X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_5_1); X.v[1] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>46){                                                     \
+        X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_6_0); X.v[1] ^= X.v[0]; \
+        X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_6_1); X.v[3] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>47){                                                     \
+        X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_7_0); X.v[3] ^= X.v[0]; \
+        X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_7_1); X.v[1] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>47){                                                     \
+        /* InjectKey(r=1) */                                            \
+        X.v[0] += ks[2]; X.v[1] += ks[3]; X.v[2] += ks[4]; X.v[3] += ks[0]; \
+        X.v[4-1] += 12;     /* X.v[WCNT4-1] += r  */                 \
+    }                                                                   \
+                                                                        \
+    if(Nrounds>48){                                                     \
+        X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_0_0); X.v[1] ^= X.v[0]; \
+        X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_0_1); X.v[3] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>49){                                                     \
+        X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_1_0); X.v[3] ^= X.v[0]; \
+        X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_1_1); X.v[1] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>50){                                                     \
+        X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_2_0); X.v[1] ^= X.v[0]; \
+        X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_2_1); X.v[3] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>51){                                                     \
+        X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_3_0); X.v[3] ^= X.v[0]; \
+        X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_3_1); X.v[1] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>51){                                                     \
+        /* InjectKey(r=1) */                                            \
+        X.v[0] += ks[3]; X.v[1] += ks[4]; X.v[2] += ks[0]; X.v[3] += ks[1]; \
+        X.v[4-1] += 13;     /* X.v[WCNT4-1] += r  */                 \
+    }                                                                   \
+                                                                        \
+    if(Nrounds>52){                                                     \
+        X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_4_0); X.v[1] ^= X.v[0]; \
+        X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_4_1); X.v[3] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>53){                                                     \
+        X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_5_0); X.v[3] ^= X.v[0]; \
+        X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_5_1); X.v[1] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>54){                                                     \
+        X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_6_0); X.v[1] ^= X.v[0]; \
+        X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_6_1); X.v[3] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>55){                                                     \
+        X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_7_0); X.v[3] ^= X.v[0]; \
+        X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_7_1); X.v[1] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>55){                                                     \
+        /* InjectKey(r=1) */                                            \
+        X.v[0] += ks[4]; X.v[1] += ks[0]; X.v[2] += ks[1]; X.v[3] += ks[2]; \
+        X.v[4-1] += 14;     /* X.v[WCNT4-1] += r  */                 \
+    }                                                                   \
+                                                                        \
+    if(Nrounds>56){                                                     \
+        X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_0_0); X.v[1] ^= X.v[0]; \
+        X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_0_1); X.v[3] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>57){                                                     \
+        X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_1_0); X.v[3] ^= X.v[0]; \
+        X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_1_1); X.v[1] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>58){                                                     \
+        X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_2_0); X.v[1] ^= X.v[0]; \
+        X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_2_1); X.v[3] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>59){                                                     \
+        X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_3_0); X.v[3] ^= X.v[0]; \
+        X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_3_1); X.v[1] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>59){                                                     \
+        /* InjectKey(r=1) */                                            \
+        X.v[0] += ks[0]; X.v[1] += ks[1]; X.v[2] += ks[2]; X.v[3] += ks[3]; \
+        X.v[4-1] += 15;     /* X.v[WCNT4-1] += r  */                 \
+    }                                                                   \
+                                                                        \
+    if(Nrounds>60){                                                     \
+        X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_4_0); X.v[1] ^= X.v[0]; \
+        X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_4_1); X.v[3] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>61){                                                     \
+        X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_5_0); X.v[3] ^= X.v[0]; \
+        X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_5_1); X.v[1] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>62){                                                     \
+        X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_6_0); X.v[1] ^= X.v[0]; \
+        X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_6_1); X.v[3] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>63){                                                     \
+        X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_7_0); X.v[3] ^= X.v[0]; \
+        X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_7_1); X.v[1] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>63){                                                     \
+        /* InjectKey(r=1) */                                            \
+        X.v[0] += ks[1]; X.v[1] += ks[2]; X.v[2] += ks[3]; X.v[3] += ks[4]; \
+        X.v[4-1] += 16;     /* X.v[WCNT4-1] += r  */                 \
+    }                                                                   \
+                                                                        \
+    if(Nrounds>64){                                                     \
+        X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_0_0); X.v[1] ^= X.v[0]; \
+        X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_0_1); X.v[3] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>65){                                                     \
+        X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_1_0); X.v[3] ^= X.v[0]; \
+        X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_1_1); X.v[1] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>66){                                                     \
+        X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_2_0); X.v[1] ^= X.v[0]; \
+        X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_2_1); X.v[3] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>67){                                                     \
+        X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_3_0); X.v[3] ^= X.v[0]; \
+        X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_3_1); X.v[1] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>67){                                                     \
+        /* InjectKey(r=1) */                                            \
+        X.v[0] += ks[2]; X.v[1] += ks[3]; X.v[2] += ks[4]; X.v[3] += ks[0]; \
+        X.v[4-1] += 17;     /* X.v[WCNT4-1] += r  */                 \
+    }                                                                   \
+                                                                        \
+    if(Nrounds>68){                                                     \
+        X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_4_0); X.v[1] ^= X.v[0]; \
+        X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_4_1); X.v[3] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>69){                                                     \
+        X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_5_0); X.v[3] ^= X.v[0]; \
+        X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_5_1); X.v[1] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>70){                                                     \
+        X.v[0] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_6_0); X.v[1] ^= X.v[0]; \
+        X.v[2] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_6_1); X.v[3] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>71){                                                     \
+        X.v[0] += X.v[3]; X.v[3] = RotL_##W(X.v[3],R_##W##x4_7_0); X.v[3] ^= X.v[0]; \
+        X.v[2] += X.v[1]; X.v[1] = RotL_##W(X.v[1],R_##W##x4_7_1); X.v[1] ^= X.v[2]; \
+    }                                                                   \
+    if(Nrounds>71){                                                     \
+        /* InjectKey(r=1) */                                            \
+        X.v[0] += ks[3]; X.v[1] += ks[4]; X.v[2] += ks[0]; X.v[3] += ks[1]; \
+        X.v[4-1] += 18;     /* X.v[WCNT4-1] += r  */                 \
+    }                                                                   \
+                                                                        \
+    return X;                                                           \
+}                                                                       \
+ /** @ingroup ThreefryNxW */                                            \
+enum r123_enum_threefry4x##W { threefry4x##W##_rounds = THREEFRY4x##W##_DEFAULT_ROUNDS };       \
+R123_CUDA_DEVICE R123_STATIC_INLINE R123_FORCE_INLINE(threefry4x##W##_ctr_t threefry4x##W(threefry4x##W##_ctr_t in, threefry4x##W##_key_t k)); \
+R123_CUDA_DEVICE R123_STATIC_INLINE                                     \
+threefry4x##W##_ctr_t threefry4x##W(threefry4x##W##_ctr_t in, threefry4x##W##_key_t k){ \
+    return threefry4x##W##_R(threefry4x##W##_rounds, in, k);            \
+}
+/** \endcond */
+
+_threefry2x_tpl(64)
+_threefry2x_tpl(32)
+_threefry4x_tpl(64)
+_threefry4x_tpl(32)
+
+/* gcc4.5 and 4.6 seem to optimize a macro-ized threefryNxW better
+   than a static inline function.  Why?  */
+#define threefry2x32(c,k) threefry2x32_R(threefry2x32_rounds, c, k)
+#define threefry4x32(c,k) threefry4x32_R(threefry4x32_rounds, c, k)
+#define threefry2x64(c,k) threefry2x64_R(threefry2x64_rounds, c, k)
+#define threefry4x64(c,k) threefry4x64_R(threefry4x64_rounds, c, k)
+
+#ifdef __cplusplus
+/** \cond HIDDEN_FROM_DOXYGEN */
+#define _threefryNxWclass_tpl(NxW)                                      \
+namespace r123{                                                     \
+template<unsigned int R>                                                  \
+ struct Threefry##NxW##_R{                                              \
+    typedef threefry##NxW##_ctr_t ctr_type;                             \
+    typedef threefry##NxW##_key_t key_type;                             \
+    typedef threefry##NxW##_key_t ukey_type;                            \
+    static const unsigned int rounds=R;                                 \
+   inline R123_CUDA_DEVICE R123_FORCE_INLINE(ctr_type operator()(ctr_type ctr, key_type key)){ \
+        R123_STATIC_ASSERT(R<=72, "threefry is only unrolled up to 72 rounds\n"); \
+        return threefry##NxW##_R(R, ctr, key);                              \
+    }                                                                   \
+};                                                                      \
+ typedef Threefry##NxW##_R<threefry##NxW##_rounds> Threefry##NxW;       \
+} // namespace r123
+
+/** \endcond */
+
+_threefryNxWclass_tpl(2x32)
+_threefryNxWclass_tpl(4x32)
+_threefryNxWclass_tpl(2x64)
+_threefryNxWclass_tpl(4x64)
+
+/* The _tpl macros don't quite work to do string-pasting inside comments.
+   so we just write out the boilerplate documentation four times... */
+
+/** 
+ at defgroup ThreefryNxW Threefry Classes and Typedefs
+
+The ThreefryNxW classes export the member functions, typedefs and
+operator overloads required by a @ref CBRNG "CBRNG" class.
+
+As described in  
+<a href="http://dl.acm.org/citation.cfm?doid=2063405"><i>Parallel Random Numbers:  As Easy as 1, 2, 3</i> </a>, 
+the Threefry family is closely related to the Threefish block cipher from
+<a href="http://www.skein-hash.info/"> Skein Hash Function</a>.  
+Threefry is \b not suitable for cryptographic use.
+
+Threefry uses integer addition, bitwise rotation, xor and permutation of words to randomize its output.
+
+ at class r123::Threefry2x32_R 
+ at ingroup ThreefryNxW
+
+exports the member functions, typedefs and operator overloads required by a @ref CBRNG "CBRNG" class.
+
+The template argument, ROUNDS, is the number of times the Threefry round
+function will be applied.
+
+As of September 2011, the authors know of no statistical flaws with
+ROUNDS=13 or more for Threefry2x32.
+
+ at typedef r123::Threefry2x32
+ at ingroup ThreefryNxW
+  Threefry2x32 is equivalent to Threefry2x32_R<20>.    With 20 rounds,
+  Threefry2x32 has a considerable safety margin over the minimum number
+  of rounds with no known statistical flaws, but still has excellent
+   performance. 
+
+ at class r123::Threefry2x64_R 
+ at ingroup ThreefryNxW
+
+exports the member functions, typedefs and operator overloads required by a @ref CBRNG "CBRNG" class.
+
+The template argument, ROUNDS, is the number of times the Threefry round
+function will be applied.
+
+In November 2011, the authors discovered that 13 rounds of
+Threefry2x64 sequenced by strided, interleaved key and counter
+increments failed a very long (longer than the default BigCrush
+length) WeightDistrub test.  At the same time, it was confirmed that
+14 rounds passes much longer tests (up to 5x10^12 samples) of a
+similar nature.  The authors know of no statistical flaws with
+ROUNDS=14 or more for Threefry2x64.
+
+ at typedef r123::Threefry2x64
+ at ingroup ThreefryNxW
+  Threefry2x64 is equivalent to Threefry2x64_R<20>.    With 20 rounds,
+  Threefry2x64 has a considerable safety margin over the minimum number
+  of rounds with no known statistical flaws, but still has excellent
+   performance. 
+
+
+
+ at class r123::Threefry4x32_R 
+ at ingroup ThreefryNxW
+
+exports the member functions, typedefs and operator overloads required by a @ref CBRNG "CBRNG" class.
+
+The template argument, ROUNDS, is the number of times the Threefry round
+function will be applied.
+
+As of September 2011, the authors know of no statistical flaws with
+ROUNDS=12 or more for Threefry4x32.
+
+ at typedef r123::Threefry4x32
+ at ingroup ThreefryNxW
+  Threefry4x32 is equivalent to Threefry4x32_R<20>.    With 20 rounds,
+  Threefry4x32 has a considerable safety margin over the minimum number
+  of rounds with no known statistical flaws, but still has excellent
+   performance. 
+
+
+
+ at class r123::Threefry4x64_R 
+ at ingroup ThreefryNxW
+
+exports the member functions, typedefs and operator overloads required by a @ref CBRNG "CBRNG" class.
+
+The template argument, ROUNDS, is the number of times the Threefry round
+function will be applied.
+
+As of September 2011, the authors know of no statistical flaws with
+ROUNDS=12 or more for Threefry4x64.
+
+ at typedef r123::Threefry4x64
+ at ingroup ThreefryNxW
+  Threefry4x64 is equivalent to Threefry4x64_R<20>.    With 20 rounds,
+  Threefry4x64 has a considerable safety margin over the minimum number
+  of rounds with no known statistical flaws, but still has excellent
+   performance. 
+*/
+
+#endif
+
+#endif

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-med/librandom123.git



More information about the debian-med-commit mailing list