2007-02-25 19:32  rgb

	* Makefile.am, configure.ac, dieharder.abs, dieharder.spec,
	  dieharder.spec.in, dieharder.svn.time, dieharder/Makefile.am,
	  libdieharder/Makefile.am: Ok, this is TAG=2.24.1, the first Gnu
	  Build Tools release that builds
	  rpms clean from (we hope) SVN. I do need to validate this with
	  one
	  last SVN checkout, but I'm pretty sure it is the case...

2007-02-25 18:35  rgb

	* Makefile.am, dieharder.spec, dieharder.spec.in,
	  dieharder.svn.time: Well, a time to check in. We're about to see
	  if an rpm build works...

2007-02-25 18:15  rgb

	* Makefile, dieharder.svn.time, dieharder/Makefile,
	  dieharder/Makefile.am, libdieharder/Makefile,
	  libdieharder/Makefile.am, manual/Makefile: This may be a really
	  nice advance. The dieharder build now uses
	  ../include and ../libdieharder as -I and -L respectively, and
	  plain old
	  "make" in both cases should work, from a clean checkout. I'm
	  guessing
	  that I can add a simple Makefile.am to include to do the actual
	  install
	  of the include files.

2007-02-25 17:47  rgb

	* Makefile, dieharder.svn.time, dieharder/Makefile,
	  dieharder/Makefile.am, libdieharder/Makefile, ltmain.sh,
	  manual/Makefile: This should be REALLY REALLY close. We'll
	  checkin, do a full checkout,
	  and try building. If/when we get there, we'll work strictly from
	  build
	  to build once again.

2007-02-25 17:27  rgb

	* AUTHORS, Makefile, NEWS, autogen.sh, configure.ac,
	  dieharder.svn.time, dieharder/Makefile, libdieharder/Makefile,
	  manual/Makefile: OK, this is one whole cut closer, and ALMOST
	  works, but we're definitely
	  going to have to try this one more time... We also need at some
	  point
	  to stop svn control of Makefiles and maintain only Makefile.ams

2007-02-25 17:17  rgb

	* dieharder.svn.time, dieharder/Makefile.am,
	  dieharder/configure.ac, libdieharder/Makefile.am,
	  libdieharder/configure.ac, manual/Makefile.am,
	  manual/configure.ac: Adding what MAY be all the things needed to
	  enable full automated Gnu
	  style builds from the autogen.sh script.

2007-02-25 17:16  rgb

	* Makefile, Makefile.am, autogen.sh, configure.ac, dieharder.spec,
	  dieharder.spec.in, dieharder.svn.time, dieharder/Makefile,
	  dieharder_version.h.in, install-sh, libdieharder/Makefile,
	  manual/Makefile, missing, mkinstalldirs, po, po/Makefile,
	  po/Makefile.in, po/Makefile.in.in, po/POTFILES, po/POTFILES.in:
	  Finished a first cut at adding GBT support. Need to check in the
	  .in
	  files and configure.ac files one level down, and do a full
	  checkout to
	  see if it autobuilds from an svn checkout.

2007-02-19 14:23  rgb

	* ChangeLog, buildroot, dieharder.spec, dieharder.svn.time,
	  dieharder/Makefile, libdieharder/Makefile: This dumps buildroot.
	  We don't need or want this in the tarball or rpm
	  sources.

2007-02-19 08:47  rgb

	* ChangeLog, Makefile, dieharder.abs, dieharder.spec,
	  dieharder.svn.time, dieharder/Makefile, libdieharder/Makefile: We
	  are working quite hard on getting the ChangeLog to be
	  automagically
	  registered. I'm guessing it should just go into %doc and we
	  should
	  pretty much forget the tag otherwise.

2007-02-19 08:05  rgb

	* ChangeLog, Makefile, dieharder.spec, dieharder.svn.time,
	  libdieharder/Makefile: This fixes a variety of problems with
	  using shared libraries correctly,
	  and moves the project much closer to where it could e.g. be
	  included in
	  FC extras. The library builds nicely now, for example. However, I
	  do
	  need to switch to using autoconf, however much I generally
	  dislike it.

2007-02-19 06:32  rgb

	* dieharder.svn.time, dieharder/Makefile, libdieharder/Makefile:
	  OK, this fixes some serious uglyness. Let's see if the rpm
	  builds...

2007-02-18 21:49  rgb

	* dieharder.abs, dieharder.spec, dieharder.svn.time,
	  dieharder/Makefile, libdieharder/Makefile: Updating the svn tree
	  and sync'ing, perhaps for the last time. Will
	  this now reside on code.google.com? We'll see.

2007-02-18 13:37  rgb

	* Makefile, README, dieharder.spec, dieharder.svn.time,
	  dieharder/Makefile, dieharder/run_rgb_bitdist.c,
	  dieharder/test.c, libdieharder/Makefile: Let's call this
	  TAG=2.5.24 -- bumping the first minor to announce that
	  we've cleaned up several bugs and repackaged.

2007-02-15 18:55  rgb

	* INSTALL, dieharder.spec, dieharder.svn.time, dieharder/Makefile,
	  dieharder/test.c, libdieharder/Makefile, libdieharder/kstest.c:
	  This fixes a bug reported by Matthias Braeunig
	  <mb.atelier@web.de>, who
	  was running the test on a file of data just one time per test
	  using more
	  or less this line:
	  
	  for t in $(echo "-d"{1..19} "-r"{1..4} "-s"{1..2}); do
	  ./dieharder -q -t9375 -p1 $t;done > results
	  
	  He noted that kstest_kuiper returned 2.0 for input single pvalues
	  of
	  0.0, and that the test overall returned a pass even if p=1.0
	  exactly
	  (which it also should not do for single pvalues).
	  
	  I made the following changes. kstest_kuiper now returns a single
	  input
	  pvalue as its output pvalue -- clearly that's all one can do and
	  the
	  right thing to do. The test.c assessment that prints out the
	  results
	  also no longer calls the return a KStest result, and reports
	  failure
	  a bit differently, flagging the high-p failures as well as the
	  low p
	  failures, and adjusting the reported failure range accordingly.
	  
	  To do this I had to use -static in the Makefile to work in the
	  development tree. I'm guessing that I need to add LDFLAG =
	  -dynamic to
	  the build make line in the specfile and should LEAVE it -static
	  in the
	  actual tree so people don't get stymied if they download and
	  build in
	  the tarball directory ("people" including me) while rpm's will
	  still
	  autobuild dynamic correctly.
	  
	  Finally, Matthias reported that the -q flag doesn't work. He's
	  right,
	  but I'm not sure I'm going to fix that. Rather I should probably
	  just
	  kill it and let people filter the output results by hand...

2007-02-06 04:42  rgb

	* Makefile, dieharder.abs, dieharder.spec, dieharder.svn.time,
	  libdieharder/Makefile: I've just fired this up to the web. I deem
	  it finished enough.
	  Now to backport the library fix to wulfware, and call it a night,
	  very
	  much a night.

2007-02-06 03:06  rgb

	* Makefile, dieharder.spec, dieharder.svn.time, dieharder/Makefile,
	  libdieharder/Makefile: OK, it installs and builds PERFECTLY, and
	  THIS time it almost certainly
	  is dynamically linking to libdieharder.so, as it linked without
	  the .a
	  library present at all. I'll now have to go retrofit this to
	  wulfware,
	  as it is not building correctly.

2007-02-06 02:39  rgb

	* Makefile, dieharder.svn.time: This actually rand and built! Now
	  to try to rebuild it WITHOUT the .a
	  library installed...

2007-02-06 02:30  rgb

	* Makefile, dieharder.spec, dieharder.svn.time, dieharder/Makefile,
	  libdieharder/Makefile, manual/Makefile: Just in case I drop
	  something, I finally seem to have "fixed" the
	  libdieharder makefile. On to fame and glory.

2007-02-05 20:06  rgb

	* dieharder.spec, dieharder.svn.time, lib, libdieharder/Cruft,
	  libdieharder/Makefile: OK, this is crawling on closer to ready to
	  go...

2007-02-05 19:51  rgb

	* Makefile, NOTES, R, buildroot, buildroot/usr, buildroot/usr/bin,
	  buildroot/usr/lib, buildroot/usr/share, buildroot/usr/share/doc,
	  buildroot/usr/share/man, dieharder, dieharder.spec,
	  dieharder.svn.time, dieharder/Cruft, dieharder/Makefile,
	  dieharder_src: Make this go away, please.

2007-02-05 19:47  rgb

	* dieharder_src/Makefile: This maybe will get to where I can clean
	  this up the rest of the way.

2007-01-28 15:58  rgb

	* Makefile, dieharder.svn.time: This has a brand new ultra-cool
	  target, "installrepo" that makes the
	  rpms and installs them in the repo, from when yum can install
	  them.
	  
	  BTW, I think I forgot the "requires" tag in the dieharder
	  sources,
	  partly because it seems that it isn't, in fact, required. Hmmm.

2007-01-28 00:11  rgb

	* Makefile, dieharder.spec, dieharder.svn.time,
	  libdieharder/Makefile: This works!

2007-01-27 22:39  rgb

	* Makefile, dieharder.spec, dieharder.svn.time,
	  libdieharder/Makefile: This is getting really close, worth
	  checking in...

2007-01-27 18:27  rgb

	* Copyright, Data/d_raw.h, Data/testrands.dat,
	  Data/testrands.dat.bin, Makefile, copyright.h, d_raw.h,
	  dieharder.svn.time, dieharder_web, lib/dieharder, testrands.dat,
	  testrands.dat.bin: This now builds a perfectly rebuildable
	  tarball. We can think about
	  just what else we'd like to add to that tarball in a moment, but
	  first
	  we need to FINALLY get the rpm to build, maybe.

2007-01-27 17:59  rgb

	* Makefile, dieharder.abs, dieharder.svn.time: This updates the
	  abstract.

2007-01-27 17:50  rgb

	* Makefile, dieharder.spec, dieharder.svn.time,
	  dieharder_src/Makefile, libdieharder/Makefile: OK, this just
	  maybe is working now with a target that rebuilds
	  both specfiles and Makefiles when the toplevel Makefile is
	  altered.

2007-01-27 16:57  rgb

	* dieharder.svn.time, dieharder_src/Makefile,
	  libdieharder/Makefile: This is just peachy. make and make install
	  targets work for BOTH
	  dieharder_src and libdieharder directories, which is pretty cool,
	  really. The remaining problem will be how to force a rebuild
	  of the library in such a way that it works when we're developing
	  but
	  doesn't barf when we're rpm-ifying.
	  
	  At this point in time it is high time to try the rpm build.

2007-01-27 16:41  rgb

	* dieharder.svn.time, dieharder_src/Makefile,
	  libdieharder/Makefile: OK, this is making progress. Time to go
	  back to libdieharder and get
	  a build to work there...

2007-01-27 16:13  rgb

	* dieharder.all, dieharder.svn.time: Just making sure this is all
	  ready to run when I start to edit
	  the Makefile in libdieharder.

2007-01-27 16:08  rgb

	* dieharder.svn.time, dieharder_src/user_template.h,
	  include/dieharder/Dtest.h, include/dieharder/Vtest.h,
	  include/dieharder/Xtest.h, include/dieharder/copyright.h,
	  include/dieharder/diehard_2dsphere.h,
	  include/dieharder/diehard_3dsphere.h,
	  include/dieharder/diehard_birthdays.h,
	  include/dieharder/diehard_bitstream.h,
	  include/dieharder/diehard_count_1s_byte.h,
	  include/dieharder/diehard_count_1s_stream.h,
	  include/dieharder/diehard_craps.h,
	  include/dieharder/diehard_dna.h,
	  include/dieharder/diehard_operm5.h,
	  include/dieharder/diehard_opso.h,
	  include/dieharder/diehard_oqso.h,
	  include/dieharder/diehard_parking_lot.h,
	  include/dieharder/diehard_rank_32x32.h,
	  include/dieharder/diehard_rank_6x8.h,
	  include/dieharder/diehard_runs.h,
	  include/dieharder/diehard_squeeze.h,
	  include/dieharder/diehard_sums.h,
	  include/dieharder/libdieharder.h,
	  include/dieharder/marsaglia_tsang_gcd.h,
	  include/dieharder/marsaglia_tsang_gorilla.h,
	  include/dieharder/operm5_rdata.h, include/dieharder/parse.h,
	  include/dieharder/rgb_bitdist.h, include/dieharder/rgb_lmn.h,
	  include/dieharder/rgb_persist.h, include/dieharder/rgb_timing.h,
	  include/dieharder/std_test.h, include/dieharder/sts_monobit.h,
	  include/dieharder/sts_runs.h, include/dieharder/tests.h,
	  include/dieharder/verbose.h, libdieharder, libdieharder/COPYING,
	  libdieharder/Makefile, libdieharder/NOTES, libdieharder/README,
	  libdieharder/Vtest.c, libdieharder/Xtest.c, libdieharder/bits.c,
	  libdieharder/bits.cruft, libdieharder/chisq.c,
	  libdieharder/copyright.h, libdieharder/diehard_2dsphere.c,
	  libdieharder/diehard_3dsphere.c,
	  libdieharder/diehard_birthdays.c,
	  libdieharder/diehard_bitstream.c,
	  libdieharder/diehard_count_1s_byte.c,
	  libdieharder/diehard_count_1s_stream.c,
	  libdieharder/diehard_craps.c, libdieharder/diehard_dna.c,
	  libdieharder/diehard_operm5.c, libdieharder/diehard_opso.c,
	  libdieharder/diehard_oqso.c, libdieharder/diehard_parking_lot.c,
	  libdieharder/diehard_rank_32x32.c,
	  libdieharder/diehard_rank_6x8.c, libdieharder/diehard_runs.c,
	  libdieharder/diehard_squeeze.c, libdieharder/diehard_sums.c,
	  libdieharder/kstest.c, libdieharder/libdieharder.3,
	  libdieharder/libdieharder.svn.time,
	  libdieharder/marsaglia_tsang_gcd.c,
	  libdieharder/marsaglia_tsang_gorilla.c, libdieharder/parse.c,
	  libdieharder/prob.c, libdieharder/random_seed.c,
	  libdieharder/rank.c, libdieharder/rgb_bitdist.c,
	  libdieharder/rgb_bitdist.cruft, libdieharder/rgb_lmn.c,
	  libdieharder/rgb_persist.c, libdieharder/rgb_timing.c,
	  libdieharder/rng_dev_random.c, libdieharder/rng_dev_urandom.c,
	  libdieharder/rng_file_input.c, libdieharder/rng_file_input_raw.c,
	  libdieharder/rng_kiss.c, libdieharder/sample.c,
	  libdieharder/std_test.c, libdieharder/sts_monobit.c,
	  libdieharder/sts_runs.c, libdieharder/timing.c, user_template.h:
	  OK, this is a very painful move. We will, of course, mothball and
	  preserve libdieharder's original svn tree, but now that we're
	  figuring
	  out how to do one specfile, many packages from a single toplevel
	  source tree we no longer wish to maintain libdieharder in a
	  separate
	  subversion project. So we're checking it into this one. All the
	  change history is preserved, but in pieces -- CVSROOT first,
	  subversion's libdieharder second, and from now on, here in the
	  one
	  true dieharder tree and its subversion controlled project.
	  
	  Next we have to get this so that a make install does the right
	  thing.

2007-01-27 15:53  rgb

	* dieharder.h, dieharder.svn.time, dieharder_src/Makefile,
	  dieharder_src/dieharder.h: This is a first cut at making
	  dieharder actually build, after
	  libdieharder is built and installed. From now on BOTH will use
	  ONLY
	  the include files that are stored in ./include, which will
	  actually
	  simplify life tremendously. I may symlink them through to the
	  source directory(s) and may even svn control the symlinks, if svn
	  can
	  manage them. CVS couldn't...

2007-01-27 15:31  rgb

	* Exclude/still_more_karney.bugs, Results/standard_run,
	  Results/standard_run.S1, dieharder.1, dieharder.cvs.time,
	  dieharder.svn.time, dieharder_src/dieharder.1, standard_run,
	  standard_run.S1: OK, we are within a single step (removing or
	  moving some include files)
	  of being cleaned up and ready to proceed. I'll probably copy at
	  least
	  part of the sm Makefile to get the hang of looping a make through
	  source
	  directories in order to achieve the make install in the right
	  sequence.

2007-01-27 15:26  rgb

	* Restricted, bugs, db_dieharder.patch, dieharder.svn.time,
	  example_ascii.input, makepofk, manual/example_ascii.input,
	  pofk.gfsr4.avg.tbl, pofk.gfsr4.tbl, pofk.mt19937_1999.avg.tbl,
	  pofk.mt19937_1999.tbl, pofk.ranldx2.avg.tbl, pofk.ranldx2.tbl,
	  pofk.stats.tbl, pofk.taus2.avg.tbl, pofk.taus2.tbl, pofk.tbl,
	  scripts, scripts/makepofk, standard_run: Please?

2007-01-27 15:26  rgb

	* Results, Results/gfsr4: Still proceeding.

2007-01-27 15:25  rgb

	* Exclude, Exclude/64_bit_URNG.ps, Exclude/cern_stats.pdf,
	  Exclude/db_dieharder.patch, Exclude/diehard.f,
	  Exclude/gaeblmar.email, Exclude/karney_bugs,
	  Exclude/marsaglia_tsang.pdf, Exclude/monty_python.pdf,
	  Exclude/more_karney_bugs: Working through what works...

2007-01-27 15:25  rgb

	* Data, Data/pofk.gfsr4.avg.tbl, Data/pofk.gfsr4.tbl,
	  Data/pofk.mt19937_1999.avg.tbl, Data/pofk.mt19937_1999.tbl,
	  Data/pofk.ranldx2.avg.tbl, Data/pofk.ranldx2.tbl,
	  Data/pofk.stats.tbl, Data/pofk.taus2.avg.tbl,
	  Data/pofk.taus2.tbl, Data/pofk.tbl: Let's work through what we
	  can.

2007-01-27 15:22  rgb

	* pofk.gfsr4.tbl, pofk.mt19937_1999.tbl, pofk.ranldx2.tbl,
	  pofk.stats.tbl, pofk.taus2.tbl: Adding these -- we should save
	  this stuff even though we don't
	  really need it anymore, I don't think. Part of documenting our
	  work.

2007-01-27 15:18  rgb

	* bugs: Adding this. Wish I could do more of these adds at once.

2007-01-27 15:17  rgb

	* db_dieharder.patch: Adding this, so I can move it.

2007-01-27 15:16  rgb

	* Restricted/64_bit_URNG.ps, Restricted/cern_stats.pdf,
	  Restricted/diehard.f, Restricted/marsaglia_tsang.pdf,
	  Restricted/more_karney_bugs: This is all stuff to be excluded.
	  Some of this doesn't really need
	  to be version controlled, but if I plan to use the svn tree as
	  the
	  only PERMANENT storage receptacle for the project, well, it does.

2007-01-27 15:15  rgb

	* Restricted/gaeblmar.email: Adding this too.

2007-01-27 15:14  rgb

	* Restricted/monty_python.pdf, db_gnu_r_rngs.c, dieharder.svn.time,
	  dieharder_src/COPYING, dieharder_src/Makefile,
	  dieharder_src/NOTES, dieharder_src/README,
	  dieharder_src/copyright.h, dieharder_src/db_gnu_r_rngs.c:
	  Checking in what SHOULD be enough to get a successful toplevel
	  build
	  at some future time, we hope. Still have to reorganize the
	  toplevel
	  dir and Makefile as the make rpm target will from now on ONLY
	  live
	  in the toplevel dieharder projects.
	  
	  Obviously we're going to have to go through all of this all over
	  again for the wulfware project -- libwulf, wulfstat, gwulfstat,
	  wulfweb, wulflogger, etc will all be magically and properly
	  packaged
	  so that they "just run".

2007-01-27 15:09  rgb

	* add_my_types.c, db_gnu_r_rngs.c, dieharder.c, dieharder.svn.time,
	  dieharder_src/add_my_types.c, dieharder_src/dieharder.c,
	  dieharder_src/empty_random.c, dieharder_src/help.c,
	  dieharder_src/histogram.c, dieharder_src/list_rand.c,
	  dieharder_src/list_rngs.c, dieharder_src/output_rnds.c,
	  dieharder_src/parsecl.c, dieharder_src/run_diehard_2dsphere.c,
	  dieharder_src/run_diehard_3dsphere.c,
	  dieharder_src/run_diehard_birthdays.c,
	  dieharder_src/run_diehard_bitstream.c,
	  dieharder_src/run_diehard_count_1s_byte.c,
	  dieharder_src/run_diehard_count_1s_stream.c,
	  dieharder_src/run_diehard_craps.c,
	  dieharder_src/run_diehard_dna.c,
	  dieharder_src/run_diehard_operm5.c,
	  dieharder_src/run_diehard_opso.c,
	  dieharder_src/run_diehard_oqso.c,
	  dieharder_src/run_diehard_parking_lot.c,
	  dieharder_src/run_diehard_rank_32x32.c,
	  dieharder_src/run_diehard_rank_6x8.c,
	  dieharder_src/run_diehard_runs.c,
	  dieharder_src/run_diehard_squeeze.c,
	  dieharder_src/run_diehard_sums.c,
	  dieharder_src/run_marsaglia_tsang_gcd.c,
	  dieharder_src/run_rgb_bitdist.c, dieharder_src/run_rgb_persist.c,
	  dieharder_src/run_rgb_timing.c, dieharder_src/run_sts_monobit.c,
	  dieharder_src/run_sts_runs.c, dieharder_src/run_user_template.c,
	  dieharder_src/startup.c, dieharder_src/test.c,
	  dieharder_src/testbits.c, dieharder_src/user_template.c,
	  dieharder_src/work.c, empty_random.c, help.c, histogram.c,
	  list_rand.c, list_rngs.c, output_rnds.c, parsecl.c,
	  run_diehard_2dsphere.c, run_diehard_3dsphere.c,
	  run_diehard_birthdays.c, run_diehard_bitstream.c,
	  run_diehard_count_1s_byte.c, run_diehard_count_1s_stream.c,
	  run_diehard_craps.c, run_diehard_dna.c, run_diehard_operm5.c,
	  run_diehard_opso.c, run_diehard_oqso.c,
	  run_diehard_parking_lot.c, run_diehard_rank_32x32.c,
	  run_diehard_rank_6x8.c, run_diehard_runs.c,
	  run_diehard_squeeze.c, run_diehard_sums.c,
	  run_marsaglia_tsang_gcd.c, run_rgb_bitdist.c, run_rgb_persist.c,
	  run_rgb_timing.c, run_sts_monobit.c, run_sts_runs.c,
	  run_user_template.c, startup.c, test.c, testbits.c,
	  user_template.c, work.c: Moving sources to their new location in
	  a toplevel packaged version of
	  the dieharder project.

2007-01-27 15:04  rgb

	* dieharder.svn.time, dieharder_src: OK, this is where we're going
	  to put the actual dieharder (tty
	  interface) sources.

2007-01-27 15:00  rgb

	* dieharder.svn.time: Jeeze, I left this one out, so the record of
	  changes is alas distributed
	  per file, which sucks.

2007-01-27 14:58  rgb

	* dieharder.spec: We are going to make this a one-source-package,
	  two (or three)
	  output binary/noarch package project, the most complex rpm we've
	  built to date. This will require that we completely reconsider
	  how everything, and I mean everything, is packaged. Basically
	  we're going to need to create a SINGLE source tarball, which
	  therefore needs to be very neatly organized. It needs to use
	  PREFIX in its makefile to determine its library and include
	  paths (as this can be reset in the spec file build). It needs
	  to cycle through a set of source directories in order and do
	  e.g. a make install in each with the appropriate prefix to ensure
	  that all required files are installed from the library sources
	  before they are needed by the UI(s). Basically, this is going
	  to be a PITA and will likely break the shit out of things before
	  I get it right. Sigh.

2007-01-27 14:24  rgb

	* Makefile, dieharder.spec, doc/Makefile, doc/dieharder.tex,
	  manual, manual/Makefile, manual/dieharder.tex: Oops -- I need to
	  make sure that I save this now, in a state where the
	  rpm WILL build if I install libdieharder first and use the
	  appropriate
	  -I tag.
	  
	  I'm in midstream trying to learn the %package directive for
	  specfiles,
	  though, which SHOULD permit me to do integrated one-stop
	  development of
	  both the toplevel dieharder UI and libdieharder for the moment,
	  and in
	  the not infinitely distant future a GUI (gdieharder?), the tty
	  UI, the
	  library libdieharder, a manual pdf for the whole thing, whatever.

2007-01-19 13:57  rgb

	* Makefile, dieharder.spec: I don't know exactly what changes I'm
	  checking in, but let's give it a
	  shot.

2006-10-24 22:36  rgb

	* standard_run.S1: Sending a standard run result set into SVN...

2006-10-24 22:33  rgb

	* startup.c, testbits.c: Just forcing this through, out of sheer
	  necessity.

2006-10-10 16:01  rgb

	* NOTES: Checking in an update to NOTES only. Plans plans plans.

2006-10-09 19:00  rgb

	* run_rgb_persist.c, startup.c: This removes the bit test routine
	  from startup (easily replaced) and
	  fixes the output of rgb_persist for the new CR-free dumpbits.

2006-10-09 18:56  rgb

	* startup.c, testbits.c: This is a final version with testbits in
	  place and ACTIVE -- we will now
	  deprecate its old routines and try to use only its new ones for
	  bitlevel
	  tests e.g. birthdays and the various "overlapping buffer" tests.
	  We can
	  now test all rngs as source of BITS in a stream and not UINTS in
	  a
	  stream that just happen to have a bunch of zero bits in the high
	  order
	  slots.

2006-10-07 12:39  rgb

	* Makefile, startup.c, test.c, testbits.c: This SEEMS to be a
	  working version of a very complex and somewhat nasty
	  routine that can grab arbitrary windows from a buffer of rands
	  and
	  return them, with cyclic wraparound. This will be useful for many
	  tests.
	  
	  I'm going to guess that my next chore is to create a routine that
	  precisely fills a uint from any of the generators, without
	  wasting or
	  skipping any bits.

2006-10-04 06:20  rgb

	* test.c: Fixed the output so grepping on Assessment will yield all
	  results from
	  a -a run.

2006-10-04 05:54  rgb

	* makepofk, pofk.gfsr4.avg.tbl, pofk.mt19937_1999.avg.tbl,
	  pofk.ranldx2.avg.tbl, pofk.taus2.avg.tbl, pofk.tbl, startup.c:
	  This is all simply lovely and very important stuff to fire on in.

2006-10-03 23:32  rgb

	* Makefile: Sending this at LEAST to the server upstairs...

2006-10-03 22:38  rgb

	* run_rgb_bitdist.c: This now runs completely through, randomly
	  sampling pvalues for the
	  various target values. Alas, it will require significant
	  rewriting (and
	  a really long runtime) to sample EACH value 100x -- say 256 x 2.5
	  minutes. Say 12 hours to do 8 bits.

2006-10-03 18:55  rgb

	* run_rgb_bitdist.c: This is a working checkin for rgb_bitdist, at
	  last, again. Now to
	  enable -a to run 1 through 10 bit tests...(the latter taking
	  roughly 10
	  minutes to complete).

2006-09-28 06:27  rgb

	* help.c, run_diehard_runs.c, run_rgb_bitdist.c: This is well
	  underway. I've "fixed" diehard_birthdays, maybe but
	  still have a ways to go on rgb_bitdist.

2006-09-21 18:46  rgb

	* dieharder_web, doc/cdf6850_badrand.pdf, doc/charles_karney.txt,
	  startup.c: Well, dunno, but this seems to fix an important build
	  bug AND still
	  works. Clearly I have a lot that I could do with dieharder today
	  or
	  this week; equally clearly I have too many other things to do as
	  well --
	  I could work all night without blinking, for the next six months,
	  and
	  just about break even on task completion...

2006-08-23 01:41  rgb

	* Makefile, help.c, run_diehard_birthdays.c, run_rgb_persist.c,
	  run_sts_monobit.c, run_sts_runs.c, work.c: This should be "it" --
	  all done. Quite some testing to do first, but
	  overall we've even killed off global rand_int. We're close to
	  the point where we can a) do a major decrufting to clean up the
	  library, implement the MYDEBUG macro, etc. b) put it out to the
	  world for testing; c) add the winxx #ifdefs; d) start real work
	  on it
	  again with some more sts tests!

2006-08-22 22:46  rgb

	* run_rgb_timing.c: This is definitely time to quit for the day,
	  regardless of what is
	  working or what isn't.

2006-08-22 22:30  rgb

	* Makefile, help.c, run_marsaglia_tsang_gcd.c, run_rgb_timing.c,
	  run_user_template.c, work.c: This is working, AFAICT, through
	  Marsaglia and Tsang GCD. I do need to
	  test sums again, but everything else seems good (rgb_bitdist,
	  recall
	  isn't finished yet nor are the sts tests).

2006-08-22 18:59  rgb

	* dieharder.h, run_diehard_2dsphere.c, run_diehard_3dsphere.c,
	  run_diehard_birthdays.c, run_diehard_bitstream.c,
	  run_diehard_count_1s_byte.c, run_diehard_count_1s_stream.c,
	  run_diehard_craps.c, run_diehard_dna.c, run_diehard_operm5.c,
	  run_diehard_opso.c, run_diehard_oqso.c,
	  run_diehard_parking_lot.c, run_diehard_rank_32x32.c,
	  run_diehard_rank_6x8.c, run_diehard_runs.c,
	  run_diehard_squeeze.c, run_diehard_sums.c, test.c: This is
	  diehard working through dieharder's UI, entirely from
	  libdieharder calls. That leaves us with a few minor changes to
	  get
	  to where things all work again, plus some decrufting...

2006-08-22 16:19  rgb

	* Makefile, help.c, run_diehard_2dsphere.c, run_diehard_3dsphere.c,
	  run_diehard_bitstream.c, run_diehard_count_1s_byte.c,
	  run_diehard_count_1s_stream.c, run_diehard_craps.c,
	  run_diehard_opso.c, run_diehard_parking_lot.c,
	  run_diehard_runs.c, run_diehard_squeeze.c, run_diehard_sums.c,
	  run_rgb_bitdist.c, work.c: This works through sums -- runs and
	  craps don't quite work yet...

2006-08-22 05:32  rgb

	* Makefile, help.c, run_diehard_rank_32x32.c,
	  run_diehard_rank_32x32c, run_diehard_rank_6x8.c, work.c: This
	  works through diehard_rank_6x8(), I believe. Only 3/4 or so of
	  the
	  tests to go. Sigh. Or maybe even 5/6. Or more. Double sigh.

2006-08-21 22:33  rgb

	* Makefile, help.c, run_diehard_operm5.c, run_diehard_rank_32x32c,
	  work.c: Oops, missed a name. BTW, note well that operm5 appears
	  to work now.

2006-08-19 05:19  rgb

	* Makefile, dieharder.h, help.c, run_diehard_birthdays.c, work.c:
	  Well, diehard_birthdays is totally screwed, but we'll gradually
	  unscrew
	  it. It is, kinda, in standard format at this point, but something
	  isn't
	  working right at all.

2006-08-19 04:26  rgb

	* Makefile, help.c, run_diehard_2dsphere.c, run_diehard_3dsphere.c,
	  run_diehard_birthdays.c, run_diehard_bitstream.c,
	  run_diehard_count_1s_byte.c, run_diehard_count_1s_stream.c,
	  run_diehard_craps.c, run_diehard_operm5.c, run_diehard_opso.c,
	  run_diehard_oqso.c, run_diehard_parking_lot.c,
	  run_diehard_rank_32x32c, run_diehard_rank_6x8.c,
	  run_diehard_runs.c, run_diehard_squeeze.c, run_diehard_sums.c,
	  run_sts_monobit.c, run_sts_runs.c, work.c: This adds blanks for
	  all of the tests that haven't been converted into
	  standard libdieharder form yet. I should be able to convert a
	  bunch at
	  a time, almost.

2006-08-19 04:05  rgb

	* run_diehard_dna.c, run_dieharder_dna.c: This now runs, I think,
	  using the new encapsulation of diehard_dna.

2006-08-19 03:44  rgb

	* Makefile, help.c, run_dieharder_dna.c, run_user_template.c,
	  work.c: Check in this stuff so I can move run_dieharder_dna.c

2006-08-18 16:39  rgb

	* run_user_template.c, user_template.c: Fixed a tiny bug (made a
	  change in user_template.h that had to be
	  implemented in code).

2006-08-18 16:36  rgb

	* Makefile, dieharder.h, run_rgb_bitdist.c, run_user_template.c,
	  test.c, user_template.c, user_template.h, work.c: This is a
	  WORKING version of the user_template test, functioning on top
	  of a new "standard" testing shell that is part of the library.
	  Now all
	  I have to do is port all STANDARD tests to this format. Sigh.

2006-08-17 13:15  rgb

	* Makefile, dieharder.h, help.c, run_rgb_bitdist.c,
	  run_rgb_persist.c, test.c, user_template.c, work.c: Sending it in
	  (working on bitdist).

2006-08-17 06:34  rgb

	* Makefile, dieharder.h, help.c, run_rgb_timing.c, work.c: This
	  works for exactly one test. Lots of work tomorrow.

2006-08-16 22:51  rgb

	* Makefile, NOTES, copyright.h, dieharder.h, dieharder.spec: All
	  right, the rpm building of dieharder will not work until we are
	  ready to actually install the libdieharder rpm. This is to be
	  expected,
	  really. I'm just going to have to build straight binary dieharder
	  versions while working on the library and develop and alternative
	  make
	  target set (sigh) to build the rpm iff the libdieharder rpm is
	  installed
	  and up to date.

2006-08-16 21:00  rgb

	* Makefile, Vtest.h, default.sm, example_ascii.input, kiss.c,
	  kstest.c, measure_rate.c, parse.h, prob.c, random_seed.c, rank.c,
	  sample.c, showrand.sm, timing.c: This SEEMS to still build, and
	  is starting to look pretty well stripped.

2006-08-16 20:49  rgb

	* Makefile, Ntest.c, Vtest.c, Vtest.h, Xtest.c, Xtest.h, bits.c,
	  block.c, block.h, chisq.c, dev_random.c, dev_urandom.c,
	  diehard_2dsphere.c, diehard_2dsphere.h, diehard_3dsphere.c,
	  diehard_3dsphere.h, diehard_birthdays.c, diehard_birthdays.h,
	  diehard_bitstream.c, diehard_bitstream.h,
	  diehard_count_1s_byte.c, diehard_count_1s_byte.h,
	  diehard_count_1s_stream.c, diehard_count_1s_stream.h,
	  diehard_craps.c, diehard_craps.h, diehard_dna.c, diehard_dna.h,
	  diehard_operm5.c, diehard_operm5.h, diehard_opso.c,
	  diehard_opso.h, diehard_oqso.c, diehard_oqso.h,
	  diehard_parking_lot.c, diehard_parking_lot.h,
	  diehard_rank_32x32.c, diehard_rank_32x32.h, diehard_rank_6x8.c,
	  diehard_rank_6x8.h, diehard_runs.c, diehard_runs.h,
	  diehard_squeeze.c, diehard_squeeze.h, diehard_sums.c,
	  diehard_sums.h, dieharder.h, file_input.c, file_input_raw.c,
	  include, include/dieharder, lib, lib/dieharder,
	  marsaglia_tsang_gcd.c, marsaglia_tsang_gcd.h,
	  marsaglia_tsang_gorilla.c, marsaglia_tsang_gorilla.h, matrix.c,
	  matrix.h, operm5_rdata.h, parse.c, rgb_bitdist.c, rgb_bitdist.h,
	  rgb_lmn.c, rgb_lmn.h, rgb_persist.c, rgb_persist.h, rgb_timing.c,
	  rgb_timing.h, sts_monobit.c, sts_monobit.h, sts_runs.c,
	  sts_runs.h, tensor.c, tensor.h: This is ALMOST partitioned into
	  library and UI. I'm decrufting the
	  separation, but have a long way to go. The main thing now is to
	  ensure
	  that the program WORKS at every step of the way.

2006-08-10 01:33  rgb

	* Makefile, dieharder.h, help.c, rgb_lmn.c, rgb_lmn.h, startup.c,
	  work.c: This is an update with two purposes. 1) Fix Usage() as
	  file input
	  now "works". 2) introduce a template "lmn" test that will be
	  developed as a super version of rgb_bitdist as soon as I figure
	  out
	  the CORRECT statistic.

2006-07-27 17:42  rgb

	* Xtest.h, dieharder.h, dieharder.spec: This is a decrufting
	  checkin. I've moved almost all of the possibly
	  encumbered files from diehard (all the sources, for sure) into
	  the
	  Restricted directory, cleaned up doc a bit, removed all *.cruft
	  files,
	  removed some data and temp run files, all to try to strip down
	  the size
	  of the tarball. At this point the irreducible "problem" is
	  probably
	  SP800-22b.pdf, which is a whopping 1.2 MB. I could probably just
	  link
	  to it somehow in dieharder.pdf and stop including it... but not
	  yet. It
	  is too useful to me in development. Ditto tests.txt --
	  Marsaglia's raw
	  test descriptions. I'm considering its inclusion to be fair use
	  of
	  published material, but if he really objects I'll rewrite the
	  text
	  descriptions in prose text of my own and screw the whole thing,
	  both
	  here and in the code. I am not going to abandon dieharder per se,
	  period.

2006-07-27 16:43  rgb

	* Makefile: This is a minor version bump to get the damn binary
	  file out of the
	  source tarball.

2006-07-25 18:57  rgb

	* Btest.c, COPYING, Makefile, README, Restricted,
	  Restricted/diehard.f90, Restricted/diehard_tests.txt, Vtest.c,
	  confidence.c, diehard.f90, diehard_operm5.c, dieharder.h,
	  dieharder.spec, dieharder_wp.pdf, doc/Makefile,
	  doc/diehard_tests.txt, doc/dieharder.tex, marsaglia_tsang_gcd.h:
	  OK, this contains a lot of rearrangements. I've moved possible
	  copyright-violating stuff into Restricted so I don't redistribute
	  it.
	  I've added a "dieharder manual" under construction, using the
	  journal
	  article that isn't as a base. I've started to rearrange Btest
	  into
	  Vtest to make it make sense, somewhat. I've ignored the gorilla
	  test
	  for now.

2006-07-21 19:49  rgb

	* kiss.c, marsaglia_tsang_gorilla.c, marsaglia_tsang_gorilla.h:
	  Checking in this stuff before I lose it. kiss in particular needs
	  to go
	  in pretty soon.

2006-07-21 19:47  rgb

	* Makefile, dieharder.abs, dieharder.h, dieharder.spec, help.c,
	  marsaglia_tsang_gcd.c, marsaglia_tsang_gcd.h, startup.c, work.c:
	  This is a final checkin of GCD -- the next time I mess with it
	  will be
	  to include one or more of the CUMULATED kprob vectors for
	  analysis
	  and averaging. I'm sending this to the website as a minor number
	  bump,
	  indicating another test. Note that I've also started on the kiss
	  RNG
	  (to be able to better compare to Marsaglia) and will likely also
	  work
	  on adding several others of his favorites.

2006-07-21 18:07  rgb

	* Btest.c, marsaglia_tsang_gcd.c, marsaglia_tsang_gcd.h: This may
	  be really close to being "done" and ready for a major
	  version bump. The only thing I lack is the very large statistic
	  samples of kprob from the s nodes.

2006-07-21 14:19  rgb

	* Btest.c, Makefile, marsaglia_tsang_gcd.c, marsaglia_tsang_gcd.h,
	  parsecl.c, startup.c, template.c, template.h, user_template.c,
	  user_template.h, work.c: This is a semi-functioning MT GCD test.
	  At the moment, although
	  the k sampling works perfectly, we FAIL because the binomial
	  distribution MT suggest is way far away from the experiments for
	  large tsamples. I'm therefore going to roll my own target
	  distribution, using mt19937_1999 AND rndlx2 to make the tables
	  (I believe that they'll agree to something like four or five
	  places,
	  maybe more).

2006-07-21 13:03  rgb

	* Makefile, diehard_bitstream.c, dieharder.h, help.c,
	  marsaglia_tsang_gcd.c, marsaglia_tsang_gcd.h, template.c, work.c:
	  Check these in so we can move things around...

2006-07-20 18:48  rgb

	* doc/marsaglia_tsang.pdf: Adding a NEW paper by Marsaglia and
	  Tsang. Marsaglia is apparently
	  somehow hooked into the Hong Kong effort.

2006-07-20 18:35  rgb

	* doc/RNGVS.pdf, doc/fips1402annexc.pdf: Adding two more NIST
	  publications...

2006-07-20 14:12  rgb

	* dieharder.h, dieharder.spec, output_rnds.c, parsecl.c: FWIW, I
	  have now verified that I get PRECISELY the same results for the
	  operm5 test (which I find "worrisome" in that nothing passes it,
	  which
	  I deem to be most unlikely) as die.c. I suppose I should give the
	  diehard.f90 version a shot, if I can get it to compile.

2006-07-19 22:08  rgb

	* Makefile: Finally, this is revision 1.2.26, including the
	  template test (which
	  works, after all...).
	  
	  I wonder if bub bub shum is going into GSL?

2006-07-19 22:07  rgb

	* dieharder.spec, dieharder_wp.pdf: OK, checking these in...

2006-07-19 22:06  rgb

	* Btest.c, Ntest.c, Xtest.c, diehard_2dsphere.c,
	  diehard_2dsphere.h, diehard_3dsphere.c, diehard_3dsphere.h,
	  diehard_birthdays.c, diehard_bitstream.c,
	  diehard_count_1s_byte.c, diehard_count_1s_stream.c,
	  diehard_craps.c, diehard_dna.c, diehard_operm5.c,
	  diehard_operm5.h, diehard_opso.c, diehard_oqso.c,
	  diehard_parking_lot.c, diehard_rank_32x32.c, diehard_rank_6x8.c,
	  diehard_runs.c, diehard_runs.h, diehard_squeeze.c,
	  diehard_sums.c, dieharder.h, dieharder.spec, help.c,
	  rgb_bitdist.c, sts_monobit.c, sts_runs.c, template.c: OK, I guess
	  I've made many changes, although at this point God knows
	  what they are. This program is really about ready to roll, though
	  -- I
	  think I'll bump another bugfix number and push it out. With the
	  documentation PDF, come to think of it...

2006-07-17 20:55  rgb

	* dieharder.all: Just in case there is ANY doubt, the whole suite
	  FINALLY passed this
	  simple test. Next we'll do a run with file based input to see if
	  that
	  works too.

2006-07-17 20:25  rgb

	* dieharder.all, rgb_persist.c, rgb_timing.c, rgb_timing.h: Grrr.
	  Yes, even rgb_timing.h has to be done correctly...

2006-07-17 20:18  rgb

	* diehard_2dsphere.h, diehard_3dsphere.h, diehard_bitstream.c,
	  diehard_count_1s_byte.h, diehard_craps.c, diehard_dna.c,
	  diehard_opso.c, diehard_oqso.c, diehard_osums.c,
	  diehard_parking_lot.c, diehard_sums.c, dieharder.abs,
	  dieharder.all, dieharder.h, rgb_bitdist.c, rgb_bitdist.h,
	  rgb_persist.c, rgb_persist.h, sts_runs.c, work.c: This may,
	  finally, at last, possibly, could conceivably be the last fix
	  required to get diehard -a to WORK again all the way through, at
	  least
	  for the default rng. I'll need to test it independently for file
	  based test(s) with the -a flag, as there may be rewind issues to
	  deal
	  with there (as in the need to do a rewind at the beginning of
	  each test
	  call so that a rewind isn't necessary inside the test if there
	  are
	  enough rands in the file).

2006-07-14 20:10  rgb

	* diehard_2dsphere.c, diehard_2dsphere.h, diehard_3dsphere.c,
	  diehard_3dsphere.h, diehard_birthdays.c, diehard_bitstream.c,
	  diehard_bitstream.h, diehard_count_1s_byte.c,
	  diehard_count_1s_byte.h, diehard_count_1s_stream.c,
	  diehard_count_1s_stream.h, diehard_craps.c, diehard_dna.c,
	  diehard_dna.h, diehard_operm5.c, diehard_opso.c, diehard_opso.h,
	  diehard_oqso.c, diehard_oqso.h, diehard_parking_lot.c,
	  diehard_parking_lot.h, diehard_rank_32x32.c, diehard_rank_6x8.c,
	  diehard_rank_6x8.h, diehard_runs.c, diehard_squeeze.c,
	  diehard_squeeze.h, diehard_sums.c, diehard_sums.h, dieharder.all,
	  dieharder.h, rgb_bitdist.c, rgb_bitdist.h, rgb_timing.h,
	  sts_monobit.c, sts_monobit.h, sts_runs.c, sts_runs.h, template.c:
	  This FINALLY should be DONE -- completely reworked to avoid at
	  least
	  one cause of memory management madness, and entirely consistent
	  in
	  test structure top to bottom. It is really time to redo the -a
	  trial and see what if anything fails...

2006-07-14 17:25  rgb

	* d_raw.h, diehard_birthdays.h, diehard_operm5.c, diehard_operm5.h,
	  diehard_rank_32x32.c, diehard_rank_32x32.h, diehard_runs.h,
	  dieharder.all, dieharder.h, help.c, operm5_rdata.h,
	  rgb_persist.c, rgb_persist.h, template.c: OK ALL of these are
	  updated, but something is still making dieharder
	  die before it makes it through a dieharder -a. We can only
	  soldier
	  on...

2006-07-14 16:17  rgb

	* diehard_birthdays.c, dieharder.all, startup.c, template.c: This
	  fixes diehard birthdays. Gotta stop changing e.g. template as I
	  go...

2006-07-14 15:45  rgb

	* histogram.c, template.c, template.h: This should complete
	  template.c and fix histogram for larger p-values.

2006-07-14 15:38  rgb

	* Makefile, dc2.c, dc2.h, diehard_runs.c, dieharder.h, histogram.c,
	  template.c, template.h, work.c: This adds a template program
	  (that is actually a test of sorts) to
	  use to help users add tests and to use to replace parts of
	  existing
	  tests.

2006-07-14 12:48  rgb

	* diehard_craps.c, diehard_craps.h, diehard_runs.c: We continue to
	  clean up craps as a decent example of a good
	  implementation of the new tweaks on test encapsulation.
	  Test-specific
	  data is looking good. We are CLOSE to where we can block-copy in
	  a template for the test shell, change the names, and be ready to
	  tweak
	  just a bit from the old sources for 2/3 of the remaining tests.

2006-07-13 21:02  rgb

	* Makefile, dc2.c, dc2.h, diehard_craps.c, diehard_craps.h: OK,
	  this is now FIXED and we've got a prototype (of sorts) for the
	  new
	  test encapsulation, working.

2006-07-13 20:54  rgb

	* Makefile, dc2.c, dc2.h, diehard_craps.c, diehard_craps.h: I don't
	  know exactly what is wrong, but I do know I'd better figure it
	  out.

2006-07-13 20:43  rgb

	* Makefile, diehard_craps.c, dieharder.h, help.c, sample.c,
	  startup.c, test.c, work.c: There are two major things here -- one
	  is a real live bugfix in
	  diehard_craps where one little 22 was supposed to be a little old
	  21.
	  
	  Also, I've experimented with improving the test encapsulation and
	  think that I've succeeded. The attempt is in dc2 (a user level
	  program
	  I used to debug the craps problem) but I will now backport what I
	  figured out there to the mainstream tests as rapidly as possible.

2006-07-13 08:23  rgb

	* Makefile, diehard_craps.c, diehard_squeeze.c, dieharder.abs,
	  rgb_bitdist.c, sts_monobit.c, sts_runs.c: This SHOULD BE DONE
	  sort of, a full pass through and version numbers
	  bumped. However, I'm not hardly done with rgb or sts -- they need
	  the
	  rest of the transformation (although I've fixed the ks_pvalue
	  thing so
	  they should run). I'm also getting some memory management
	  strangeness
	  when I try to free memory in certain places. Hopefully it won't
	  last.

2006-07-13 08:01  rgb

	* Makefile, diehard_2dsphere.c, diehard_3dsphere.c,
	  diehard_squeeze.c, diehard_sums.c, work.c: OK, this adds a NEW
	  test, diehard sums, and gets all the tests
	  up to date through sums. Whew!

2006-07-12 23:56  rgb

	* diehard_parking_lot.c: OK, that one was pretty quick...

2006-07-12 23:51  rgb

	* diehard_count_1s_byte.c: Yet another. This is up to number 10, 11
	  done, six to go.

2006-07-12 23:31  rgb

	* diehard_count_1s_stream.c, diehard_dna.c, diehard_oqso.c: OK,
	  here are three more converted...

2006-07-12 23:02  rgb

	* diehard_opso.c, diehard_oqso.c: Up to number 7. 9 to go (runs
	  being done, sorta).

2006-07-12 22:23  rgb

	* diehard_bitstream.c, diehard_opso.c: Up to test number 6. On to 7
	  in a bit... so to speak.

2006-07-12 21:54  rgb

	* diehard_birthdays.c, diehard_bitstream.c, diehard_operm5.c,
	  diehard_rank_32x32.c, diehard_rank_6x8.c, histogram.c: OK, all of
	  these tests are cleaned up and appear to function.
	  I've fixed yet another feature of histogram -- one that pretty
	  much guarantees that the entire histogram will be on scale
	  even when all entries are in a single column. In fact, it is
	  probably the only scaling required (the ceil() statement is
	  likely NOT as desireable).

2006-07-12 20:56  rgb

	* diehard_birthdays.c, diehard_runs.c, dieharder.h, histogram.c,
	  rgb_persist.c, startup.c: This is a whole bunch of changes,
	  consistent with a major bugfix
	  and decrufting release.
	  
	  * I've fixed the order of diehard tests so they match diehard's
	  order
	  
	  * I've cleaned up runs and birthdays so birthdays in particular
	  can be a template for the rest.
	  
	  * I've discovered (damn!) that I'm still missing the SUMS test!
	  
	  * I've fixed histogram() so that it autoscales! At last!

2006-07-12 19:36  rgb

	* Makefile, dieharder.h, file_input.c, file_input_raw.c: This
	  cleans up and decrufts both the file_input sources, makes them
	  completely compatible and self-similar EXCEPT for differences
	  relevant
	  to the raw vs cooked issue, makes it so that get_rewind_cnt and
	  get_rtot
	  work for both of them transparently.
	  
	  Next we need to clean up rgb_persist so that it is a kind of
	  Xtest
	  with a vector of ks_pvalues to pass to a final kstest and make a
	  histogram out of.
	  
	  Then we have to clean up ALL the tests, especially with regard to
	  allocating variables like ks_pvalues[] and rand_ints[].

2006-07-12 16:41  rgb

	* add_my_types.c, dieharder.h, file_input.c, file_input_raw.c,
	  help.c, list_rngs.c, parsecl.c, rgb_persist.c, startup.c: This is
	  a "dangerous" checkin, but we've resolved many of the
	  problematic details of the file_input interface (and learned a
	  bit
	  about the gsl_rng interface in the process). I have to still fix
	  file_input_raw AND then patch ALL the tests.

2006-07-12 08:03  rgb

	* diehard_runs.c, dieharder.abs, dieharder.spec: This fixes an
	  annoying and pernicious bug in diehard_runs(). I don't
	  think I'll bump the revision number (yet).

2006-07-12 05:55  rgb

	* Makefile, diehard_operm5.c, startup.c: OK, I'm calling it a wrap.
	  It agrees perfectly with diehard's operm5
	  test results when run on the same binary data file, I've tested
	  everything I can, I've fixed a wierd negative chisq problem that
	  MAY
	  WELL suggest a numerical problem with e.g. r[][], s[][], or map[]
	  -- but
	  at the moment it works at least as well as the old diehard with
	  the
	  same data as the old diehard.
	  
	  diehard is now completely swallowed within dieharder. I'm bumping
	  the revision to 1.0.21, meaning "diehard is finished", "initial
	  revision, lots bugs", "21 tests total supported". I believe I'll
	  tag this revision too, if svn tag works...

2006-07-12 05:11  rgb

	* diehard_operm5.c: This MAY be completely and fully functional.
	  With the -O flag it
	  precisely corresponds to diehard (c version) on the same input
	  binary
	  file. The one problem that remains is that all generators appear
	  to
	  fail this test (again) and chisq ends being negative for certain
	  runs, which cannot happen. Or rather, SHOULD not be able too
	  happen.
	  It crashes things when it happens. So I somewhat believe that I
	  have
	  a bug (as it were) but if so, it is a very occassional one.

2006-07-12 02:54  rgb

	* diehard_operm5.c, diehard_operm5.h: We'll hope that this one is
	  "good" and ready to have the statistic
	  computation part completed. It looks decent, anyway -- the right
	  "kind"
	  of stuff in the frequency vector...

2006-07-11 21:18  rgb

	* Makefile, diehard_operm4.c, diehard_operm5.c, diehard_operm5.h,
	  diehard_opso.c, dieharder.h, dieharder.spec, startup.c, work.c:
	  We need to check this in to preserve the r, s and map matrices.

2006-07-11 18:36  rgb

	* Makefile, diehard_count_1s_byte.c, diehard_count_1s_stream.c,
	  diehard_count_byte_1s.c, dieharder.abs, dieharder.h,
	  dieharder.spec, startup.c, work.c: OK, this is a working
	  diehard_count_1s_byte. There is just ONE
	  DIEHARD TEST TO GO! I could finish this TODAY and announce the
	  fact
	  on e.g. gsl list.

2006-07-11 17:53  rgb

	* Makefile, diehard_count_1s_stream.c: One last time, this fixes up
	  the non-quiet test description in really
	  useful ways. I really need to do this for all tests, or else I
	  need to
	  add a counter to all calls to the rng generator. I also need to
	  at
	  the VERY LEAST add a counter to the file-based rng and print out
	  the
	  total number of rewinds during each test...

2006-07-11 17:33  rgb

	* NOTES, diehard_count_1s_stream.c: One last checkin to get a
	  comment into the sources as well. I should
	  really clean up the comments themselves as well, but perhaps I'll
	  do
	  so when doing count_1s_byte next.

2006-07-11 17:18  rgb

	* Btest.c, Makefile, bits.c, diehard_count_1s.c,
	  diehard_count_1s_stream.c: diehard_count_1s_stream() now WORKS!
	  What a PITA! And (I suspect) how
	  unnecessary all the complexity! This test (as it turns out)
	  computes
	  chisq on what amounts to a strangely remapped rgb_bitdist test
	  (precisely!) on four and five digit base 5 integers obtained by
	  remapping bytes based on the number of 1's therein.
	  
	  That is, 256 possibilities are reduced to 5, each with a
	  trivial-to-compute frequency/probability, the base 5 integer is
	  left
	  shifted (base 5!) and added to the next one to cumulate 4 or 5
	  digit
	  numbers, those numbers are then counted, and the counts compared
	  to the
	  EXPECTED counts given the number of samples and turned into chisq
	  (one
	  each, for 4 and for 5 digit numbers). Sigh.
	  
	  OK then, we COULD just print the p-value of those chisq's -- an
	  absolutely straightforward process. Alternatively, we could do
	  what
	  Marsaglia does -- compute the DIFFERENCE of the chisq's
	  themselves,
	  which of course are supposedly distributed around the number of
	  degrees
	  of freedom of each one separately, that is 3125 - 625 = 2500!
	  This is
	  the mean value of the difference, with stddev = sqrt(2*2500).
	  This
	  final result is turned into a p-value.
	  
	  This of course is wierd and wrong in so many ways. For one, it is
	  entirely possible for chisq_4 and chisq_5 to differ
	  systematically from
	  their expected values, and it is perfectly possible and likely
	  that
	  those deviations would occur in the same direction -- e.g. down
	  -- so
	  that the 4 byte and 5 byte streams BOTH have fewer degrees of
	  freedom
	  than expected. Of course in this case part of the individual
	  deviations
	  CANCEL and is not visible in the final p-value!
	  
	  Honestly, I can think of pretty much "no" reasonable ways that
	  this
	  final pvalue can fail where any/all of the p-values for the 4 or
	  5 (or 2
	  or 3 or 1 or 17) digit distributions would not also fail, but I
	  can (and
	  just did) think of a way that the final p-value might MARGINALLY
	  pass
	  while the individual p-values fail.
	  
	  Although the general approach is a good one, what is clearly
	  needed is a
	  new test -- one that extends rgb_bitdist to multidigit strings of
	  smaller
	  base. For example, right now rgb_bitdist tests the FREQUENCY of
	  the
	  occurrence of all 5 digit strings but not all 5 digit strings
	  taken two
	  at a time (32 x 32 = 1K possbilities). Of course one REASON that
	  I
	  don't do that is that I >>already<< do e.g. 10 bit strings -- the
	  DIRECT
	  frequency distribution of those 1K possibilities, which obviously
	  samples all the 5 bit combos taken two at a time!. And besides,
	  every
	  rng I have tested fails at the level of what amounts to two digit
	  octal
	  numbers -- six bit strings. So I'm cynical about this.
	  
	  I also don't think that this really counts 1's. How is this one
	  iota
	  different from simply evaluating the distribution of bytes (8 bit
	  randoms)? If the complete distribution of 8 bit bytes
	  (rgb_bitdist at 8
	  bits) is random, ALL DERIVED DISTRIBUTIONS are random, with the
	  only
	  catchy part being temporal/sequential correlations that might be
	  revealed from taking the strings four or five bytes at a time (at
	  the
	  expense of compressing the information tremendously).
	  
	  Once again, this test seems reduceable to but not as sensitive as
	  rgb_bitdist at a given level, unfortunately a level far beyond
	  where all
	  known rng's fail anyway. It is a MEASURE of the lack of
	  sensitivity
	  that this does does NOT fail for many of those rng's where
	  rgb_bitdist
	  does...

2006-07-11 13:06  rgb

	* Makefile, bits.c, diehard_count_1s.c, dieharder.h, startup.c,
	  work.c: Check this in so we can move diehard_count_1s

2006-07-11 12:14  rgb

	* NOTES, diehard_bitstream.c, dieharder.h, help.c, parsecl.c: This
	  has -O to control overlap in diehard tests, although I haven't
	  retroactively implemented it in say birthdays. First we finish
	  the last
	  three tests, THEN we worry about toggling overlap in all the
	  tests.
	  Generally speaking, overlap is silly and will no longer be done
	  as I'm
	  sure it was an economy measure back in the mid-90's with storage
	  past
	  the MB level at a premium cost (one beyond most PC owners).

2006-07-11 11:47  rgb

	* diehard_bitstream.c, diehard_count_1s.c: Oh gladsome day, calloo,
	  callay -- bitstream doth work, and I feel gay.
	  I think that I'm going to introduce a new command line flag, -o
	  for
	  "use overlap" for diehard tests where it is relevant/possible,
	  and by
	  default NOT use overlap since that seems the best way by far to
	  really
	  test the bitstreams, given the obvious bitlevel correlations
	  retained
	  by left or right shifting a "random" bit pattern.

2006-07-08 14:58  rgb

	* Makefile, bits.c, diehard_bitstream.c, diehard_dna.c,
	  diehard_oqso.c, dieharder.abs, dieharder.h, dieharder.spec,
	  startup.c, work.c: This is the bitstream test. I'm down to
	  operm5, which looks relatively
	  "difficult", and two count the ones tests, which look easy. I'll
	  probably do easy first, then finish off with operm5.
	  
	  I'm not absolutely certain that bitstream is valid -- BOTH mt1997
	  and
	  rndldx2 fail it! Of course, I've implemented it to be more
	  sensitive
	  than diehard was with a much more serious and revealing KS test
	  on the
	  larger number of psamples. I'm going to try the semi-hardware rng
	  and
	  then the hardware rng. If those fail it, the test is probably
	  flawed
	  in some subtle way...

2006-07-08 07:48  rgb

	* Makefile, diehard_opso.c, diehard_oqso.c, dieharder.abs,
	  dieharder.h, dieharder.spec, startup.c, work.c: OK, that was
	  fast. Looks like oqso works as well, probably well
	  enough to fire up yet another revision...

2006-07-08 07:07  rgb

	* Makefile, diehard_opso.c, dieharder.abs: I dunno, maybe I should
	  "tag" it, but I don't know that it matters.
	  The diehard tests are falling, falling -- quickly now. Hopefully
	  QPSO will be a simple adaptation of OPSO.

2006-07-08 06:41  rgb

	* Makefile, bits.c, diehard_opso.c, dieharder.abs, dieharder.h,
	  dieharder.spec, startup.c, work.c: This is worth checking in,
	  lest we lose everything. opso almost/maybe
	  works, actually, but there is something still a bit flaky in it.
	  I
	  need to do some more testing and remove the debugging cruft when
	  I'm
	  done.

2006-07-08 04:12  rgb

	* Makefile, diehard_craps.c, diehard_squeeze.c, dieharder.h,
	  work.c: This is a working squeeze test, ready to have the version
	  number
	  bumped and documentation fixed yet again.

2006-07-07 06:20  rgb

	* Makefile, NOTES, diehard_craps.c, dieharder.1, dieharder.abs,
	  dieharder.h, dieharder.spec, startup.c, work.c: This is dieharder
	  0.6.13, where the 6 means that files are now
	  supported (last major revision bump) and the 13 means that there
	  are now 13 supported tests include 8/10 diehard tests! We
	  are making serious progress here -- perhaps one more day of
	  middling hard work, a bit of debugging on the one test with
	  a screwed up histogram of values, and I might (finally) have
	  COMPLETED diehard's encapsulation. Then I only have to
	  increase the visibility of the project and I'm in great shape.
	  
	  This might even be worth announcing on the gsl list (again).

2006-07-07 03:35  rgb

	* Makefile, diehard_parking_lot.c, dieharder.h, help.c, startup.c,
	  sts_monobit.c, work.c: This appears to be a semi-final checkin
	  for the parking lot test,
	  which -- as it happens -- is very, very insensitive. I'm still
	  struggling to find a generator that fails it in gsl, alas.

2006-07-06 19:04  rgb

	* dieharder.abs: OK, added a new section on using it with gentoo
	  and a link to the only
	  remaining diehard mirror.

2006-07-05 22:19  rgb

	* startup.c: Fixed a tiny casting problem in startup().

2006-07-05 22:16  rgb

	* parse.h: This is interesting. I continue to leave key files out
	  of SVN. Sigh.

2006-07-05 21:30  rgb

	* Makefile, dieharder.1, dieharder.abs, dieharder.spec,
	  file_input_raw.c: This is a final commit with the right version
	  numbers, an updated
	  abstract and man page, just basically documented and so on.

2006-07-05 18:13  rgb

	* file_input_raw.c, rgb_bitdist.c, sample.c, startup.c: OK, this
	  fixes a few small things that cause failure on files (like
	  reseeding once per sample, which skews the sample distributions
	  like crazy).

2006-07-05 17:46  rgb

	* dieharder.h, file_input_raw.c: This REALLY almost works now,
	  although I completely and totally rewrote
	  it compared to last time I said that. This version counts the
	  ints to
	  be had and precisely cycles the file.

2006-07-04 03:14  rgb

	* add_my_types.c, file_input.c, file_input_raw.c, startup.c: This
	  actually works, sort of. It reads in the binary file well enough,
	  and from the look of things the test "works" on the data,
	  rewinding the
	  file every time it runs out The biggest problem is that I need a
	  LOT of
	  rands to actually pass the tests, I think...

2006-07-04 02:24  rgb

	* Makefile, diehard_runs.c, dieharder.h, file_input_raw.c: This is
	  a first cut for file_input_raw, ready to test except for a lack
	  of debugging statements and no way to activate it on e.g. the
	  command
	  line and it not being added to the list of gsl-supported
	  generators
	  and all that. But it is close... and hey, it might work.

2006-06-26 18:10  rgb

	* bits.c, dieharder.h, file_input.c, testrands.dat.bin: This is at
	  this moment completely functional for at LEAST type 'd'
	  and type 'b'. It would be fun to somehow be able to flag output
	  file type and force different kinds of rand lists to be stored
	  (since
	  e.g. hex is more efficient than decimal) but NOT NOW.

2006-06-26 15:51  rgb

	* add_my_types.c, dev_random.c, dieharder.h, file_input.c, parse.c,
	  parsecl.c, startup.c: This appears to be a completely working
	  version of the program.
	  The only real hassle is the warning on rewind -- I should really
	  be sure to send this to stderr so it can go away on a pipe into
	  an output file.

2006-06-26 13:45  rgb

	* output_rnds.c, testrands.dat: OK, this pretty much does the
	  output_rnds() call for the time being.
	  It is simply lovely. Now I need to return to file_input.c and get
	  the program to where it can read this IN.

2006-06-26 11:56  rgb

	* Makefile, output_rnds.c, parsecl.c, startup.c, work.c: This now
	  supports -o for output, sort of. A bit ugly but easy to fix
	  in time. NOW to use THIS to test file-based INPUT!

2006-06-26 11:37  rgb

	* help.c, output_rnds.c, parsecl.c, startup.c, work.c: I'm most of
	  the way through adding support for
	  
	  dieharder -o testrands.dat
	  
	  so that I can turn around and run
	  
	  dieharder -f testrands.dat -r 2
	  
	  to run rgb test 2 on file data with the default parameters. -o
	  will
	  supercede any other commands (in work.c) and get executed FIRST,
	  but one
	  CAN use
	  
	  dieharder -o testrands.dat -r 2
	  
	  to simultaneously create an output file and use it as input for a
	  test
	  or suite of tests. I think -- this may take some tuning to get
	  just
	  right...

2006-06-26 08:47  rgb

	* block.c, dieharder.h: This is a "perfect" build, and hence should
	  be checked in. Now all I
	  need is a list of random numbers in a file to test.

2006-06-26 08:43  rgb

	* Makefile, dieharder.h, file_input.c, parse.c: This now builds,
	  although I have no idea if it will actually work. I
	  rather doubt it...

2006-06-26 08:24  rgb

	* Makefile: Well, this one seems to be going in.

2005-03-14 13:57  rgb

	* dieharder.cvs.time, parse.c: This sends in parse.c. Y'know, I'll
	  bet that this is what breaks
	  Dan's access. Shit, looks like I'll have to kiss "make sync"
	  goodbye...
	  or give him an "account" locally with the same uid/gid -- nope
	  that
	  won't work either. Sigh.

2005-03-11 03:42  rgb

	* dieharder.cvs.time, work.c: This goes home and into laptop...

2005-03-11 03:05  rgb

	* dieharder.cvs.time: Sending this all home, so I can make it on
	  metatron?

2005-03-11 02:56  rgb

	* Makefile, dieharder.h, rgb_timing.c, work.c: This checks in a
	  fairly crude but still useful timing test.

2004-11-30 14:14  rgb

	* dieharder.all, dieharder.cvs.time: I think we'll add this to the
	  repository as the "reference run" against
	  the default generator, dieharder -a > dieharder.all. If we update
	  this
	  at the end of every new addition, we'll be able to advance to
	  toolset
	  in a fairly systematic (but generally reliable) way.

2004-11-29 21:36  rgb

	* dieharder.cvs.time: This looks like it ran nicely.

2004-11-29 19:30  rgb

	* Makefile, diehard_2dsphere.c, diehard_3dsphere.c,
	  diehard_birthdays.c, diehard_rank_32x32.c, diehard_rank_6x8.c,
	  diehard_runs.c, dieharder.cvs.time, dieharder.h, histogram.c,
	  parsecl.c, rank.c, rgb_bitdist.c, sts_monobit.c, sts_runs.c: This
	  MIGHT just be a reference run followed by tag bump and checkin.
	  Looks pretty nifty, right up to a first draft of histogram.

2004-11-29 19:03  rgb

	* diehard.f90, dieharder.cvs.time: Adding the published diehard F90
	  source code to the tree for
	  porting convenience, although we will not use any of it verbatim,
	  obviously, in a c port.

2004-11-29 17:18  rgb

	* dieharder.cvs.time, rank.c: I'm hoping that this is the needed
	  binary rank program that analyzes
	  binary (bitlevel) matrices for the diehard binary rank tests.

2004-11-24 06:14  rgb

	* diehard_rank_32x32.c, dieharder.cvs.time: This seems to "work",
	  although it is consistently producing an overall
	  p-value that is in the .9 range and hence "too high". I'm going
	  to
	  start up a full run of 100 x 40000 in a second to see if I get a
	  "normal" pvalue.

2004-11-24 06:00  rgb

	* diehard_rank_32x32.c, dieharder.cvs.time: Well, not JUST that. I
	  suppose that next we'll have to actually debug.

2004-11-24 05:58  rgb

	* Makefile, diehard_rank_32x32.c, diehard_rank_6x8.c,
	  dieharder.cvs.time, dieharder.h, help.c, startup.c, work.c: This
	  is ALMOST working. I'd say the binary rank part is working, hence
	  the checkin. It is the rank_32x32 part that isn't, but I'll work
	  on it.
	  
	  I suspect something really simple, like needing to normalize y by
	  tsamples...

2004-11-22 20:08  rgb

	* Makefile, diehard_rank_32x32.c, dieharder.cvs.time, dieharder.h,
	  doc/tests.txt, help.c, startup.c: This is simply lovely, simply
	  lovely, with a good start on adding
	  Diehard's Binary Rank test. All I need is a suitably scaled
	  matrix
	  and a few zillion rands...

2004-11-22 19:23  rgb

	* dieharder.cvs.time: Why didn't these make it to Duke?

2004-11-22 08:35  rgb

	* dieharder.abs, dieharder.cvs.time, dieharder.php: This is 0.5.8
	  stable, I hope. Time to go beddy-bye, hoping that this is
	  now ready for real development and grantseeking work. I should be
	  able to add a couple more diehard tests "easily" at this point, I
	  think.
	  
	  rgb

2004-11-22 06:47  rgb

	* diehard_birthdays.c, diehard_runs.c, dieharder.1,
	  dieharder.cvs.time, dieharder.h, help.c, parsecl.c, startup.c,
	  work.c: This is VERY VERY close to being a fairly serious tagged
	  checkin.
	  We've resolved the problem of multiline strings in gcc, snagged a
	  C tutorial for gcc, completely fixed the documentation -- this is
	  all pretty awesomely ready for a brave new release.

2004-11-22 04:24  rgb

	* Makefile, bits.c, diehard_2dsphere.c, diehard_3dsphere.c,
	  diehard_birthdays.c, diehard_runs.c, dieharder.cvs.time,
	  dieharder.h, dieharder.spec, help.c, list_rand.c, measure_rate.c,
	  parsecl.c, rgb_bitdist.c, rgb_persist.c, sample.c, startup.c,
	  sts_monobit.c, sts_runs.c, work.c: This is really close to
	  working with all the changes in the command
	  line options and associated global variables. In fact, it might
	  BE
	  working.
	  
	  Two things that I really really need are a routine that can take
	  a
	  data object that is one big string and display it to the screen
	  (something gcc refuses to do any more, which sucks big time) and
	  a 20x
	  histogram of p-values. Let's see if I can find them on the web
	  before
	  tackling them -- in particular the former seems like it must have
	  been
	  written by somebody...

2004-11-20 18:17  rgb

	* Btest.c, Makefile, NOTES, Ntest.c, Xtest.c, add_my_types.c,
	  bits.c, chisq.c, confidence.c, dev_random.c, dev_urandom.c,
	  diehard_2dsphere.c, diehard_3dsphere.c, diehard_birthdays.c,
	  diehard_bitstream.c, diehard_count_1s.c, diehard_count_byte_1s.c,
	  diehard_craps.c, diehard_dna.c, diehard_operm4.c, diehard_opso.c,
	  diehard_oqso.c, diehard_osums.c, diehard_parking_lot.c,
	  diehard_rank_32x32.c, diehard_runs.c, diehard_squeeze.c,
	  dieharder.abs, dieharder.c, dieharder.cvs.time, dieharder.spec,
	  empty_random.c, kstest.c, list_rand.c, list_rngs.c,
	  measure_rate.c, parsecl.c, prob.c, random_seed.c, rgb_bitdist.c,
	  rgb_persist.c, sample.c, startup.c, sts_monobit.c, sts_runs.c,
	  timing.c, work.c: This is now really truly ready to go, EXCEPT
	  that NOW I have to alter
	  all sorts of command options according to the latest
	  prescriptions in
	  the checkin logs and abstract/web page. And get it "working
	  perfectly"
	  once again. I might even finish this this weekend, if I really
	  hammer
	  at it.

2004-11-20 15:55  rgb

	* dieharder.cvs.time, doc, doc/SP800-22b.pdf, doc/cern_stats.pdf,
	  doc/diehard_tests.txt, doc/fnal_prob.pdf,
	  doc/goodness_of_fit_nr.pdf, tests.txt: This is the REALLY final
	  checkin of rand_rate, I think, before we clone
	  it into dieharder.

2004-11-20 15:50  rgb

	* diehard_bitstream.c, diehard_count_1s.c, diehard_count_byte_1s.c,
	  diehard_craps.c, diehard_dna.c, diehard_operm4.c, diehard_opso.c,
	  diehard_oqso.c, diehard_osums.c, diehard_parking_lot.c,
	  diehard_rank_32x32.c, diehard_squeeze.c, dieharder.abs,
	  dieharder.cvs.time, dieharder.spec, tests.txt: This is the last
	  checkin of rand_rate AS rand_rate. I'm going to change
	  the name of this suite to dieharder. I'm also going to change the
	  test numbering schema and option naming so that e.g.
	  
	  -d diehard test number
	  -r rgb test number
	  -s sts test number
	  
	  where -1 runs all tests of a given kind, 0 lists a description of
	  all
	  tests in the suite, -2 runs all tests of a given kind EXACTLY as
	  they
	  are run in the original code, if possible -- I'm not sure I'm
	  going to
	  test overlapping bit strings drawn from a single int just to bump
	  the
	  count of "random numbers" unless the test explicitly calls for it
	  and it
	  makes sense, as there is this thing about each sample being
	  "independent" that worries me with overlapping draws.
	  
	  -p number of p-values in final KS (and possibly other) test(s).
	  This
	  is the number of times each "test" is run with independent random
	  number
	  seeds (as the DEFAULT from now on). This defaults to 100, which
	  is
	  actually a lot and very reasonable but which can be increased if
	  one is
	  in doubt about whether the distribution of p returned by "the
	  test" is
	  in fact uniform.
	  
	  -t number of test samples that go into making up a single test.
	  This
	  is NOT always a free parameter -- in many of the diehard tests
	  especially, the number of e.g. points drawn from a 2d or 3d
	  volume in
	  the minimum distance tests is fixed, and varying it would vary
	  the
	  target distribution and test statistic. Although this is a bit
	  unfortunate, since varying the number of test samples is an
	  excellent
	  way to make marginal failures in the distribution of p resolve
	  into
	  clear failures, we either live with it or derive general forms
	  for the
	  asymptotic target distributions as a function of the number of
	  samples
	  or do simulations and empirically deduce forms ditto (as
	  Marsaglia and
	  others appear to have done). For the moment we'll live with it.
	  
	  -b bitstring width. Some tests are applied only to samples that
	  are
	  "bitstrings" (as opposed to e.g. lists of unsigned integers) of
	  user-specifiable length. One reason to limit the tests in this
	  way is
	  to avoid numerical difficulties in e.g. evaluating
	  P_binomial(k,p,n),
	  where one can easily under or overflow and end up with garbage or
	  a gsl
	  fault. Another is to "free" some of the existing tests that have
	  a very
	  specific size of bitstring that they look at so that this can be
	  varied
	  when the target distribution can still be computed as a function
	  of
	  bitstring size. This will be overridden as necessary, like -t,
	  for
	  tests that really do require a fixed bitstring size to approach
	  the
	  known target distribution.
	  
	  -n ntuple or window width. A number of tests look at bit ntuples.
	  An
	  ntuple is a set of n consecutive bits drawn from a bitstring
	  (possibly
	  of -b specified width) or vector of random uints (possibly of -t
	  specified length). ntuples are always drawn relative to a bit
	  offset
	  specified from the right (least significant) with 0 being the
	  rightmost
	  bit, with cyclic boundary conditions on the entire bitstring
	  >>or<<
	  sample uint vector, so drawing an ntuple cannot fail for any
	  offset
	  within the number of significant bits returned by the generator
	  (which
	  MAY NOT BE 32, or even 31 -- some generators return as few as 16
	  significant bits!).
	  
	  For example, an 8-bit bitstring might be:
	  
	  01100111
	  
	  and all the 3-tuples drawn from it are given by
	  
	  offset 3-tuple
	  =====================
	  0 111
	  1 011
	  2 001
	  3 100
	  4 110
	  5 011
	  6 101 <- Note wrap around!
	  7 110 <- Ditto!
	  
	  A general purpose
	  
	  get_bit_ntuple(*bitstring,bitstring size,ntuple size,offset)
	  
	  routine is provided that is used by many tests to get ntuples
	  from a
	  uint *bitstring of given >>uint vector length<< (not bitstring
	  length).
	  
	  Other test controls may be added as well, but these are what I'm
	  going
	  to document right now. Mostly I'm checking in all the
	  placeholders
	  required for the rest of the diehard tests so I can start to
	  knock them
	  off systematically. Sure hope I'm past major rewrites!

2004-11-20 08:07  rgb

	* diehard_2dsphere.c, diehard_3dsphere.c, diehard_birthdays.c,
	  diehard_runs.c, dieharder.cvs.time, rgb_bitdist.c, sample.c,
	  sts_monobit.c, sts_runs.c: Fixed silly spelling error (sigh).

2004-11-20 07:50  rgb

	* diehard_runs.c, dieharder.cvs.time: Well, that was quick. A nasty
	  (but easy) little bug in diehard_runs
	  squashed (size -> tsamples).

2004-11-20 07:47  rgb

	* Makefile, diehard_2dsphere.c, diehard_3dsphere.c,
	  dieharder.cvs.time, dieharder.h: This should/maybe be a serious v
	  0.5.3 checkin. We are about to try
	  -v -1. If it works, it will cycle through all of the working
	  tests
	  (and all the tests are working). All the tests are now written in
	  a way that they can use sample and kstest_kuiper() to do the
	  validation
	  of the p-values obtained from running a possibly size-variable
	  test
	  on bits or frequencies or runs or whatever.
	  
	  If this test works, it is off to the website, I'm off to bed, and
	  next
	  we go back to moving in new diehard tests. With the magical
	  sliding
	  bitwindow (which really does seem to work pretty well:-)
	  implementing
	  at least the n-tuple diehard tests should now be pretty easy, and
	  I
	  can probably do a more rigorous job than GM did because I don't
	  have
	  to scrimp on rands.

2004-11-20 07:34  rgb

	* dieharder.cvs.time: Try again (network down).

2004-11-20 07:34  rgb

	* chisq.c, diehard_2dsphere.c, diehard_birthdays.c, diehard_runs.c,
	  dieharder.abs, dieharder.cvs.time, dieharder.h, dieharder.spec:
	  This clears diehard_birthdays AND diehard_2dsphere. Only one
	  diehard
	  to go and we'll have EVERYTHING running with sample and the new
	  test
	  format (but of course rgb_persist, which doesn't count).

2004-11-20 03:11  rgb

	* Makefile, diehard_runs.c, dieharder.abs, dieharder.cvs.time,
	  dieharder.h, dieharder.spec, measure_rate.c, rgb_bitdist.c,
	  work.c: Fixed up diehard_runs so it uses the new test format.
	  Works charmlike.

2004-11-19 23:38  rgb

	* Makefile, Xtest.c, dieharder.cvs.time, sts_runs.c: This is v
	  0.5.1, which is nicely fixed for BOTH sts_monobit AND
	  sts_runs, both in the new format, with a consistent Xtest_eval()
	  routine. This fixes lots of things -- both tests are very likely
	  to be "good".

2004-11-19 23:34  rgb

	* Xtest.c, dieharder.cvs.time, dieharder.h, startup.c,
	  sts_monobit.c, sts_runs.c: OK, this looks like sts_runs is now
	  "good" in the new format. However,
	  it may have broken sts_monobit. The problem is, is there or is
	  there
	  not a sqrt(2.0) in the erfc relative to sigma, and if there is is
	  there an EXTRA one in sts_runs vs sts_monobit. Need to clear this
	  up
	  and either always put it into Xtest or always put it into
	  xtest.sigma,
	  but not both.

2004-11-19 21:06  rgb

	* dieharder.cvs.time: Sending this home, I hope.

2004-11-19 20:09  rgb

	* dieharder.cvs.time, dieharder.h, sts_monobit.c, sts_runs.c: This
	  is now squeaky clean for rgb_bitdist and sts_monobit, and we're
	  working on sts_runs. Then a quick dash through the diehards and
	  we'll
	  be back to where we were but a bit cleaner.
	  
	  I still MIGHT try to get cleaner still. I'm not at all convinced
	  that I need the test structs, for example, although perhaps they
	  allow some encapsulation that is useful.

2004-11-19 18:55  rgb

	* Xtest.c, dieharder.cvs.time, dieharder.h, sts_monobit.c: This is
	  a checkin to Duke of the nifty neato cool new improved
	  version. It may be time to change the name and everything.

2004-11-19 17:35  rgb

	* dieharder.cvs.time, rgb_bitdist.c, sample.c: OK so there was one
	  more teeny bug in rgb_bitdist() -- wrong order in
	  the final output statement. Fixed. I also added a feature,
	  reseeding
	  the rng in sample on an -i flag.

2004-11-19 17:28  rgb

	* Makefile, dieharder.cvs.time: This is just ensuring that the tag
	  for version 0.5.0 is noted. This
	  version works through rgb_bitdist, which I'll bet a nickel is a
	  very
	  powerful test indeed.

2004-11-19 17:26  rgb

	* Btest.c, dieharder.cvs.time, kstest.c, rgb_bitdist.c: This is a
	  "permanent" checkin. I think that this fixes rgb_bitdist
	  nicely to use sample() and provides a prototype for doing other
	  tests.

2004-11-19 17:09  rgb

	* Makefile, dieharder.abs, dieharder.c, dieharder.h,
	  dieharder.spec, kstest.c, rgb_bitdist.c, sample.c, startup.c,
	  work.c: This is actually a pretty damn functional run. The
	  remaining problem
	  is that the pearson chisq appears to be failing for very large
	  numbers
	  of samples (and very few bins populated) where the relative error
	  in
	  the smaller bins is vastly amplified relative to the principle
	  (0) bin.

2004-11-19 02:09  rgb

	* Makefile, bits.c, dieharder.cvs.time, dieharder.h, parsecl.c,
	  rgb_binomial.c, rgb_bitdist.c, work.c: This is a fairly major fix
	  -- I was truncating blen in bits.c at
	  the sizeof(uint), not 8*sizeof(uint). One lesson is that this
	  truncation isn't right anyway. We rather need to just punt/die.
	  
	  I'm wondering now if the apparent failure that is still present
	  (although not nearly as bad) for the larger ntuples is because
	  fewer
	  bins pass the cutoff in the formation of the primary sample
	  pvalue(s).
	  
	  We might just try lowering this cutoff a bit. I don't know
	  exactly what
	  a "degree of freedom" is, but we do need to be pretty careful
	  with it.

2004-11-18 23:43  rgb

	* dieharder.cvs.time, rgb_bitdist.c: Now it REALLY looks like it
	  works, and even the best rng's look like
	  they FAIL the test in fairly short order. Now we're cookin' with
	  gas,
	  although I've got to see the details of the failure soon enough.
	  
	  Hmmm, maybe I need to have a lot more bins...

2004-11-18 23:25  rgb

	* dieharder.cvs.time, rgb_bitdist.c: Just to verify that it APPEARS
	  to work to quite high precision through
	  triplets. We could just keep adding things, I suppose...

2004-11-18 23:17  rgb

	* dieharder.cvs.time, dieharder.h, rgb_bitdist.c: This is now
	  working. Working amazingly well, actually. Well enough
	  to double the size of the bits in rgb_bitdist_test().
	  
	  The one MAJOR remaining problem is that I cannot use samples for
	  tests
	  that return a vector of pvalues. Oh, and it is fairly difficult
	  to
	  pass arguments to the testing function in when it is an argument
	  TO
	  samples().
	  
	  This means that I have two itty bitty problems to solve -- one is
	  to
	  pass in parameters (possibly by making them global variables).
	  This
	  makes sense IF I want to be able to control them from the command
	  line
	  anyway. The other is to return a vector of pvalues. The only way
	  I
	  can think of doing this is to make pvalues[] a global vector as
	  well
	  of length (say) 1K. This puts an upper bound on the number of
	  pvalues
	  that can be returned by a test, but that SHOULDN'T be much of a
	  problem,
	  as it is really a question of what granularity one wishes to
	  evaluate p
	  at.
	  
	  Anyway, just a BIT more work and rgb_bitdist should be production
	  ready,
	  AND I should be perfectly ready to clean up p-sampling and
	  testing as
	  separate entities in the other tests.

2004-11-18 22:28  rgb

	* bits.c, dieharder.cvs.time, rgb_bitdist.c: This MIGHT be working.

2004-11-18 20:42  rgb

	* dieharder.cvs.time: I sent this home, I did, I did.

2004-11-18 20:08  rgb

	* Btest.c, Makefile, bits.c, dieharder.cvs.time, dieharder.h,
	  parsecl.c, rgb_bit2.c, rgb_bitdist.c, startup.c, work.c: This is
	  still fairly screwed up, at least in the sense that
	  it doesn't look like rgb_bitdist works. Curiously, it LOOKS like
	  it WORKS -- walking through the code, it looks VERY much like it
	  is collecting two bits at a time and correctly incrementing the
	  correct bit count in the correct vector.
	  
	  The final histogram, however, comes out wrong, wrong, wrong.
	  
	  I may have to make this simpler. Or maybe I'm doing something
	  else
	  wrong -- come to think of it, the totals in the histograms
	  shouldn't
	  equal the number of samples for EACH value of the ntuple, only
	  the
	  total should sum to the number of samples. Maybe this is what is
	  wrong...

2004-11-18 16:27  rgb

	* bits.c, chisq.c, diehard_2dsphere.c, diehard_3dsphere.c,
	  diehard_birthdays.c, diehard_runs.c, dieharder.abs,
	  dieharder.cvs.time, dieharder.spec, rgb_binomial.c, rgb_bit2.c,
	  rgb_bitdist.c, rgb_persist.c, sts_monobit.c, sts_runs.c: We have
	  to go into Duke, but we are very much ready to finish off bits.c
	  and rgb_bitdist.c to where we can eliminate BOTH rgb_binomial AND
	  rgb_bit2.c AND at least one, maybe 3-4 diehard tests AND a couple
	  or
	  three sts tests as being equivalent to this test, for particular
	  call
	  values. I have great hope that this rgb_bitdist will become "the"
	  bit
	  frequency test for all random bit sequences. There may still be a
	  point
	  to tests that look at intervals >>between<< bit sequences
	  thought.
	  
	  In fact, I suspect that the best way to proceed with the latter
	  is to
	  test lagged correlation for arbitrary lags in a long bitstring.
	  This
	  SAME TEST applied with arbitrary displacements between samples
	  might be
	  revealing...

2004-11-17 19:57  rgb

	* Makefile, dieharder.cvs.time, dieharder.h, parsecl.c,
	  rgb_bitdist.c, sample.c: This is HIGHLY BROKEN but is absolutely
	  necessary. We have to break
	  this code up to unify the replicated pieces and streamline the
	  testing processes now that we know how a test "works" in the
	  abstract.

2004-11-17 03:40  rgb

	* Btest.c, Makefile, bits.c, dieharder.abs, dieharder.cvs.time,
	  dieharder.spec: A bugfix commit. The sanity check in get_bit() is
	  broken and is
	  commented out -- if I'm going to allocate rand_int[] vectors
	  other than
	  size in length, I cannot test on a global size to see if
	  get_bit() is
	  out of bounds. This is STILL broken in that there is a risk with
	  no
	  warning, but there is also functionality for the moment (and I
	  have
	  to write a bunch of new bitlevel functions and can rewrite
	  get_bits
	  at the same time).
	  
	  More important, I found a real bug in Btest where I was
	  initializing
	  btest->chisq to zero before accumulation but was accumulating in
	  chisq.
	  Curiously, it worked a lot of the time the old way, but only for
	  certain
	  rng's. I may have memory management problem, which isn't
	  surprising
	  given the slovenliness of the code at this moment...;-)
	  
	  rgb

2004-11-16 23:46  rgb

	* dieharder.cvs.time: This is a tagged checkin, about to push.

2004-11-16 23:45  rgb

	* dieharder.cvs.time, kstest.c, rgb_binomial.c: This appears ready
	  for a checkin.

2004-11-16 23:19  rgb

	* Btest.c, Makefile, chisq.c, dieharder.cvs.time, dieharder.h,
	  rgb_binomial.c: This appears to FINALLY fix rgb_binomial so that
	  it reliably works.
	  It remains to be seen whether or not it is any more senstitive
	  than e.g.
	  sts_monobit.

2004-11-16 20:11  rgb

	* Makefile, Ntest.c, bits.c, chisq.c, dieharder.cvs.time, kstest.c,
	  rgb_binomial.c, startup.c: This is STILL broken as far as the
	  Ntests are concerned. I've really
	  got to figure this out...

2004-11-16 15:51  rgb

	* Makefile, diehard_2dsphere.c, diehard_3dsphere.c, dieharder.abs,
	  dieharder.cvs.time, dieharder.h, dieharder.spec, rgb_binomial.c,
	  work.c: Send this to Duke to finish this morning.

2004-11-14 17:40  rgb

	* diehard_3dsphere.c, diehard_birthdays.c, diehard_runs.c,
	  dieharder.cvs.time, dieharder.h, kstest.c: This is a pretty
	  serious bugfix -- probably need to update the website.
	  Basically, my kstest was simply wrong last night; now it is
	  working,
	  I've also added the Kuiper form of the KS test, and will program
	  Anderson and Darling's version (the one used, apparently, in
	  Diehard)
	  when I get around to it. However, for tests involving more than a
	  very
	  few p-values in a vector, it shouldn't really matter -- Kuiper KS
	  and the
	  regular KS and Anderson-Davis KS should all GENERALLY generate
	  similar
	  p-distributions -- different perhaps where they don't matter, but
	  very
	  similar at the ends. The key question is just whether one has a
	  tendency to pass a vector of p-values where the other would
	  consistently
	  fail it. So far it looks like USUALLY if one fails the other
	  fails.
	  
	  I think I'm still going to want to do a histogram picture of
	  binned
	  pvalues and do a Pearson chisq p-test on the result. This should
	  really
	  be pretty easy... maybe today, maybe not.
	  
	  We're getting close to being ready to go BACK and mess with the
	  Ntest
	  and Xtest stuff. I think that now that I understand Pearson vs
	  the
	  alternatives, I can PROBABLY arrange things so that I can use a
	  single
	  set of common tools to do all the test assessment.
	  
	  One thing, for example, would be to make each test return a
	  p-value,
	  period, and put the samples loop in rand_rate_work, to ALWAYS
	  fill a
	  vector of p-values and ALWAYS do KS tests, confidence interval
	  tests,
	  and histogram tests. This would have a number of advantages --
	  being
	  able to produce a really pretty, really standardized picture of
	  results
	  for one.
	  
	  A second thing that would make this tool relatively interesting
	  to the
	  mass unwashed would be to put a nice little GUI onto it. There
	  are two
	  generic ways to do this. One is to leave it a command line tool
	  but
	  REALLY clean up the output result so that it is just a single
	  line
	  per test with ks test scores for the various forms of test with
	  three
	  lines of # delimited frame, period. Then I can make a perl-Gtk
	  app to
	  call the binary, parse the result, and (e.g.) plot histograms or
	  do
	  other nifty graphical things. The other is to use Gtk directly,
	  but
	  perhaps have the GUI only come up if there is an appropriate
	  command
	  line flag (or not).
	  
	  A third thing to work on is clearly going to be splitting the
	  source
	  into distinct components in distinct directories. We will need a
	  common
	  library containing the kstest, chisq, Ntest, Xtest etc code, the
	  input,
	  the output, etc. We will need a directory containing extensions
	  to the
	  GSL random number library, e.g. /dev/random, /dev/urandom, empty,
	  and
	  shuffled because the one thing that is absolutely true is that we
	  need
	  to add a shuffling/mixing random number generator, one that
	  permits us
	  to set up a shuffling list and refill it from a secondary LIST of
	  rng's!
	  
	  A fourth thing (noted already elsewhere) is to do the simplest of
	  tests
	  -- apply a KS test to the GSL distribution-specific generators
	  themselves. If a "test" is generically generating a known
	  distribution
	  presuming randomness and then seeing if the result is indeed the
	  targeted distribution, then EVERY distribution generator in the
	  GSL can
	  simultaneously be the target of a test for algorithmic purposes
	  AND a
	  test component for the GSL rng's.
	  
	  Beyond that, I need to implement spectral tests and tests for
	  hyperplanes in N dimensions and uniformity tests. Sigh. I think
	  that I
	  DO need to write a grant proposal for this -- I think there is
	  enough
	  work to justify it.

2004-11-14 09:38  rgb

	* dieharder.cvs.time: Tagged and on the repository as 0.4.3, with
	  diehard 3d spheres and a
	  MAYBE working KS test.

2004-11-14 09:37  rgb

	* Makefile, diehard_3dsphere.c, diehard_birthdays.c,
	  diehard_runs.c, dieharder.abs, dieharder.cvs.time, dieharder.h,
	  dieharder.spec, kstest.c: Sort of playing with KS -- I'm not done
	  here yet...

2004-11-14 08:04  rgb

	* diehard_3dsphere.c, dieharder.cvs.time: OK, found my REALLY
	  stupid bug. I was computing the absolute
	  length of r from the origin, not the distance between point
	  pairs.
	  No, I wasn't even doing that well -- I was computing the dot
	  product
	  of the random vectors. Now things look nearly correct.
	  
	  All I need is a KS test and life would be, if not complete, well,
	  worth
	  living.

2004-11-14 07:22  rgb

	* Makefile, block.c, block.h, diehard_3dsphere.c,
	  dieharder.cvs.time, dieharder.h, matrix.c, matrix.h, tensor.c,
	  tensor.h: This "works". Except that it doesn't. It's very odd,
	  but although
	  it works perfectly as far as I can tell by any measure, r is
	  simply not
	  as small as it should be in order to make the pvalue come out
	  between
	  0 and 1.

2004-11-14 01:19  rgb

	* Makefile, chisq.c, diehard_3dsphere.c, diehard_birthdays.c,
	  dieharder.abs, dieharder.cvs.time, dieharder.h, dieharder.spec,
	  work.c: THis is on the way to being another test.

2004-11-13 22:19  rgb

	* Makefile, dieharder.abs, dieharder.cvs.time: This is hopefully a
	  tagged snapshot with a new test!

2004-11-13 21:50  rgb

	* Ntest.c, chisq.c, diehard_birthdays.c, dieharder.cvs.time,
	  dieharder.h: OK, time to bump the revision number, as birthdays
	  is home and even
	  works tolerably, as far as I can tell.
	  
	  SOON I'm going to do the KS test on vectors of p's. SOON I'm
	  going to
	  really clean up the code so that chisq -> p is consistently
	  computed,
	  and so that a set of p's is consistently evaluated for the
	  random/nonrandom decision.

2004-11-13 17:17  rgb

	* chisq.c, dieharder.cvs.time: This is it, ready to proceed.

2004-11-13 17:12  rgb

	* Makefile, dieharder.cvs.time, kstest.c: This checks in a
	  placeholder for a Kolmogorov-Smirnov test, likely to
	  be applied to a vector of p-values.

2004-11-13 17:06  rgb

	* Makefile, chisq.c, dieharder.cvs.time: We'll commit this for the
	  moment. I think the sensible thing to do is
	  to create as general as possible a tool for generating Pearson's
	  chisq
	  for discretely binned data, in particular and immediately for the
	  Poissonian birthday histogram but also for other purposes. Note
	  that
	  these routines should not only generate chisq, but when possible
	  go
	  ahead and compute goodness of fit p-values, ideally in a vector
	  associated with independent trials. This vector of p-values can
	  itself
	  then be subjected to a kolmogorov-smirnov analysis and
	  transformed into
	  a conclusion for the generator being tested.

2004-11-13 09:34  rgb

	* diehard_birthdays.c, dieharder.cvs.time: Just added output of
	  lambda, which is indeed 2 with the parameters
	  given...

2004-11-13 09:32  rgb

	* bits.c, diehard_birthdays.c, dieharder.cvs.time, dieharder.h,
	  work.c: This is REALLY CLOSE to having diehard birthdays
	  finished. We just
	  need to add a chisq test for Poisson distributions sampled
	  samples times
	  with known (per sample) lambda, and a loop to convert a table of
	  chisq into
	  a table of p-values. I'm tempted to bump minor and tag, but I
	  shouldn't
	  need to -- I've been really careful and things really look like
	  they're
	  working so far.

2004-11-13 02:02  rgb

	* Makefile, diehard_birthdays.c, dieharder.cvs.time, dieharder.h:
	  This is a simple checkin prior to doing diehard birthdays test.

2004-11-13 01:32  rgb

	* Makefile, confidence.c, diehard_runs.c, dieharder.cvs.time: This
	  splits off the confidence interval test from STS docs.

2004-11-13 01:28  rgb

	* Makefile, dieharder.abs, dieharder.cvs.time, dieharder.spec: This
	  is a small adjustment (still in 0.4.1 I guess). Let's try another
	  diehard, I think.

2004-11-13 01:16  rgb

	* Makefile, diehard_runs.c, dieharder.cvs.time: This is actually a
	  fairly functional diehard test!
	  
	  I think that we can actually implement a test for the uniformity
	  of
	  p-values as suggested by NIST to run on TOP of the existing
	  confidence
	  interval test. This would actually break the p-distribution down
	  by
	  interval and return a p-value of its own computed against the
	  assumption
	  of uniformity. Or I could get fancier and try kolmogorov-smirnov,
	  if
	  GSL doesn't have one and I work hard enough to program one. If
	  this is
	  really distinct -- it isn't clear that it is.

2004-11-12 22:32  rgb

	* diehard_runs.c, dieharder.cvs.time, dieharder.h: This is actually
	  sort of semi-functional. What I >>really<< need now
	  is canned Kolmogorov-Smirnov code. Could it be that this is in
	  the
	  GSL already? I'll be it is...

2004-11-11 15:59  rgb

	* diehard_runs.c, dieharder.cvs.time: Continuing to hack this up.

2004-11-10 22:19  rgb

	* Makefile, Ntest.c, Xtest.c, bits.c, diehard_runs.c,
	  dieharder.cvs.time, dieharder.h, work.c: This is a nearly
	  functional diehard_runs -- I just need to figure out
	  what the expected values and sigmas are...

2004-11-10 05:32  rgb

	* Makefile, dieharder.abs, dieharder.cvs.time: This is simply
	  lovely. A nice litte addition to the Makefile that
	  automatically indicates the current version in the abstract. I
	  actually
	  have things fairly distributable!

2004-11-10 05:24  rgb

	* dieharder.cvs.time, rgb_bit2.c, startup.c: OK, added a few minor
	  changes to manage the bits issue yet another way.
	  
	  Really, I'm going to have to figure out a consistent way of
	  indicating
	  whether a test can have size OR bits OR both OR neither
	  specified.
	  
	  Also, it would be really lovely to have another outer loop and to
	  present the lowest p in a set of (say) ten runs of a test combo.
	  Although in many cases running with -s 10x larger should do the
	  same
	  thing, really.

2004-11-10 04:53  rgb

	* dieharder.cvs.time: This is it and running, version 0.4.0 as
	  published. Seems to work.

2004-11-10 04:53  rgb

	* Makefile, dieharder.1, dieharder.abs, dieharder.cvs.time,
	  dieharder.php, dieharder.spec: One last checkin, then a tag, then
	  a checkin as published.

2004-11-10 03:03  rgb

	* Makefile, dieharder.abs, dieharder.h, dieharder.php, list_rand.c,
	  measure_rate.c, rgb_binomial.c, rgb_bit2.c, rgb_bitdist.c,
	  rgb_persist.c, startup.c, sts_monobit.c, sts_runs.c: This is
	  about to become version 0.4.0 and be posted under general or
	  some such on my website at Duke.

2004-11-10 01:43  rgb

	* Makefile, dieharder.cvs.time: This is a tagged release, mostly
	  bugfixes. At the moment it all looks
	  like it works.

2004-11-10 01:37  rgb

	* dieharder.cvs.time, parsecl.c, random_seed.c, rgb_binomial.c,
	  rgb_bit2.c, rgb_bitdist.c, sts_monobit.c, sts_runs.c: This seems
	  to work perfectly, for the very short moment. It is by no
	  means perfect or mutually exclusive. We very definitely need to
	  generalize the bitdist test to handle bit ntuples of arbitrary
	  length,
	  where the length is a variable.
	  
	  I think I'll retag this. It is also probably time to think about
	  putting this up on the website, especially if I'm going to write
	  a
	  proposal on it.

2004-11-09 22:14  rgb

	* dieharder.cvs.time, rgb_bit2.c: Because it wasn't checked in!

2004-11-09 22:14  rgb

	* dieharder.cvs.time: Why didn't bit2.c go home?

2004-11-09 20:09  rgb

	* Makefile, add_my_types.c, dieharder.cvs.time, dieharder.h,
	  parsecl.c, rgb_bitdist.c, work.c: This is going home with a split
	  out routine and some nice changes that
	  will make it easier to add new tests with arbitrary numbers.

2004-11-09 19:30  rgb

	* dieharder.cvs.time: Just checking repository Root.

2004-11-09 19:30  rgb

	* dieharder.cvs.time, parsecl.c: Let's send this home...

2004-11-09 14:51  rgb

	* Makefile, dieharder.cvs.time: OK, fixing Makefile to actually get
	  this home, AND adding the URL
	  of the web reference from the last checkin:
	  
	  http://world.std.com/~franl/crypto/random-numbers.html
	  
	  (we need to implement some of its hyperplane tests).

2004-11-09 14:48  rgb

	* NOTES, dieharder.cvs.time, list_rngs.c, parsecl.c: We're actually
	  working on this once again. I need to get my own "runs"
	  test working, as it will replace a whole RANGE of STS, and I need
	  to
	  implement a spectral distribution test with bins as is done in
	  the
	  nice web reference I found.

2004-11-08 14:52  rgb

	* Makefile, add_my_types.c, dev_urandom.c, dieharder.cvs.time,
	  parsecl.c, rgb_bitdist.c: This adds yet another built-in device
	  to GSL.

2003-06-10 15:21  rgb

	* Makefile, add_my_types.c, dieharder.cvs.time, empty_random.c,
	  random_seed.c: This adds an "empty" generator to help us
	  determine gsl call overhead
	  separately.

2003-01-30 22:16  rgb

	* dieharder.cvs.time, dieharder.h, rgb_bitdist.c: This is broken as
	  shit. I see what I did -- I made the ntest evaluation
	  and presentation routines use n+1 bits (because in rgb_binomial I
	  needed
	  to do the end of the binomial). However, I have to fix it
	  later...

2003-01-30 20:12  rgb

	* dieharder.cvs.time, rgb_bitdist.c: Forgot to send this...

2003-01-29 19:19  rgb

	* dieharder.cvs.time, rgb_bitdist.c: Not obviously broken, and time
	  to add bitpair counters. Should be
	  really easy -- left-shift in two bits at a time to creat the int
	  index
	  of the counter, then increment it.

2003-01-29 14:27  rgb

	* NOTES, dieharder.cvs.time: Some NOTES on future work.

2003-01-29 14:14  rgb

	* Makefile, dieharder.cvs.time, dieharder.h, rgb_bitdist.c, work.c:
	  This checks in a whole new test, which should probably be
	  combined with
	  sts_monobit (it generates monobit stats as it goes)
	  rgb_persist (one can easily generate a bitmask as one goes)
	  rgb_binomial (one can generate binomial stats on top of monobit
	  as one
	  goes).
	  
	  and possibly with more tests.

2003-01-26 07:54  rgb

	* dieharder.cvs.time, measure_rate.c, work.c: This last little pair
	  of changes causes measure_rate to use its own,
	  fixed, number of samples ("more than enough"). It also installs a
	  "summary report" mode that isn't horribly useful because of
	  conflict
	  between e.g. -b, -n, -s definitions here and there. Also,
	  different
	  tests need to be run in different ways to demonstrate failure (or
	  a
	  lack thereof).

2003-01-26 07:23  rgb

	* bits.c, dieharder.cvs.time, dieharder.h, rgb_binomial.c,
	  rgb_persist.c, startup.c: OK, we haven't done TOO much, but we
	  have definitely learned that
	  all the rng's that are weak in rgb_persist will definitely fail
	  the
	  monobit test (for obvious reasons). Furthermore, when a generator
	  is weak in certain bits and we evaluate the bits from the other
	  end
	  (whichever end that might be!) it can often PASS the monobit
	  test.
	  
	  Bits that repeat, random_max's that aren't powers of two-1 (and
	  probably
	  EVEN powers of two at that) are going to be trouble!

2003-01-26 05:00  rgb

	* NOTES, bits.c, dieharder.cvs.time, parsecl.c, rgb_persist.c: This
	  is a VERY IMPORTANT new test, rgb_persist(), and a very useful
	  new routine, dumpbits(). Read NOTES (and inline comments and
	  output)
	  to see a bit of what it does and why it is important.

2003-01-25 21:55  rgb

	* bits.c, dieharder.cvs.time, rgb_persist.c: This actually works.
	  In fact, it works fabulously. I can directly
	  and fairly powerfully look for bitlevel correlations in the
	  output.

2003-01-25 20:53  rgb

	* Makefile, NOTES, bits.c, dieharder.cvs.time, dieharder.h,
	  rgb_binomial.c, rgb_persist.c, work.c: OK, we've learned the hard
	  way that some bits in e.g. boroshi don't
	  change AT ALL, EVER. Which makes it pretty hard to be random, of
	  course.
	  
	  So we're going to invent a new tool -- rgb_persist(), which
	  doesn't
	  (yet) to a formal statistical test. It just is going to dump
	  successive
	  unsigned ints from the rng (bitwise) AND maybe run a string of
	  &'s on
	  the string of ints returned. If they share any 1 bits, the
	  successive
	  &'s will preserve them a LOT longer than permitted by binary
	  flips on
	  the slots.
	  
	  This could be made into a fairly powerful bitlevel sequential
	  correlation test in several ways. We'll investigate them as we
	  go, but
	  one reason to write this now is that I'm not quite convinced that
	  what
	  I'm seeing isn't some sort of bug in the get_bit() routine or the
	  like.

2003-01-25 15:54  rgb

	* NOTES, bits.c, dieharder.cvs.time, dieharder.h, parsecl.c,
	  prob.c, rgb_binomial.c, sts_monobit.c, sts_runs.c: This is well
	  on the way to being MUCH better, and ready to
	  systematically extend.

2003-01-25 00:50  rgb

	* dieharder.cvs.time: And now we send the tagged package to Duke.

2003-01-25 00:50  rgb

	* Makefile, NOTES, dieharder.cvs.time: Checking in the notes.

2003-01-24 22:52  rgb

	* bits.c, dieharder.cvs.time, dieharder.h, sts_monobit.c,
	  sts_runs.c: This is worth a minor bump. First, we fixed
	  get_bit(). Second, we
	  completed sts_runs (for what it is worth, which isn't a whole lot
	  as
	  nearly everything that fails it also fails monobit and binomial
	  as
	  expected). However, working through it suggests how to make
	  binomial
	  work better.
	  
	  Next (to make it easier to check results relative to the sts
	  documents)
	  I need to implement -b (get_bit(0 permits this pretty much
	  transparently, at least in the sts routines) and implement a -f
	  filename
	  filled with e.g. raw bitstrings or ascii floats or binary numbers
	  in xmlish wrappers that indicate the storage mechanism? Thus I
	  can test
	  explicit short bitstrings against the explicit sts numbers to be
	  sure
	  that my erfc and conversions (and sometimes slightly different
	  implementation) yield the same answers as theirs, except where I
	  don't
	  care because I think theirs are (basically) wrong.
	  
	  See also NOTES (about to be checked in) for a fairly detailed
	  beginning
	  critique of sts, which I don't think is particularly strong or
	  useful,
	  really.

2003-01-24 21:43  rgb

	* bits.c, dieharder.cvs.time, sts_monobit.c, sts_runs.c: This is my
	  home-grown version of sts_runs. It is no better than the
	  actual sts version, really, but the sts version is not terribly
	  good.
	  I'm going to add a (hopefully vastly improved) binomial version
	  of the
	  test to rgb_binomial, where I can do all the tests at once with a
	  single set of code and multiple trials (random number seeds).

2003-01-23 05:51  rgb

	* Makefile, NOTES, dieharder.cvs.time, dieharder.h, sts_runs.c,
	  work.c: Just adding some notes, and preparing to add the next sts
	  test,
	  TOMORROW.

2003-01-23 04:52  rgb

	* dieharder.cvs.time: I have no idea why the tag went down into
	  fitany...

2003-01-23 04:52  rgb

	* Makefile, dieharder.cvs.time, parsecl.c: This ups the minor
	  revision number to 0.3.0. Worthwhile because now I
	  have BOTH an erfc AND a Q evaluation of p-value. I could
	  certainly
	  prettify sts_monobit, but since I generally think that it isn't
	  that
	  great a test (although it does indicate how starkly many rng's
	  FAIL to
	  be even this random) I won't do so right away.
	  
	  Next (after tagging and resync'ing) is going to be adding more
	  tests.
	  At this point adding a test should be pretty easy, given the
	  hopefully
	  reusable routines I have written to do the pre- and post-
	  processing.
	  All I really have to do is input the expected values, write a
	  loop to
	  generate the "experimental" statistic, and pass everything on to
	  a
	  standard set of tools for outputting the results and deciding on
	  the
	  quality of the results.

2003-01-23 04:46  rgb

	* bits.c, dieharder.cvs.time, dieharder.h, rgb_binomial.c,
	  startup.c, sts_monobit.c: All right, this LOOKS like it correctly
	  implements the STS monobit
	  frequency test. I would still claim that anything that fails this
	  test
	  will also fail the binomial test, and that in addition things
	  that pass it
	  (e.g. the vax rng) FAIL the binomial test, so the monobit test is
	  a waste of time and more prone to error. However, mine is not to
	  reason
	  why...

2003-01-22 18:04  rgb

	* bits.c, dieharder.cvs.time, dieharder.h, prob.c, rgb_binomial.c:
	  This is working incredibly well, and I've split off nearly
	  everything
	  required to make further n-point chisq tests trivial to implement
	  and
	  assess. All that remains is to do a 1-point (normal) test such as
	  the
	  sts_monobit test (which should really be done internal to the
	  rgb_binomial test and may one day be, but for the moment we'll
	  just do
	  it directly).

2003-01-22 13:33  rgb

	* dieharder.cvs.time: Just making SURE this is at Duke...

2003-01-21 23:56  rgb

	* bits.c, dieharder.cvs.time, dieharder.h, rgb_binomial.c: This
	  works just lovely!
	  
	  HOWEVER, it is also clear that running it once, twice, three
	  times,
	  for EACH generator looking for good ones is a PITA. We'll have to
	  eventually rearrange this so that there is a "search mode" that
	  runs
	  a loop through all known generators, identifying the ones that
	  pass at
	  least at the 1% or higher level.
	  
	  BTW, I'm now prepared to bet a nickel that the rgb binomial test
	  has a
	  great deal of sensitivity, since it fails all but literally three
	  or
	  four of the available RNG's for absurdly short data strings. As
	  in they
	  aren't even APPROXIMATELY random...NONE of them. If one used them
	  to
	  generate a humble binomial distribution numerically it would be
	  in
	  significant error.
	  
	  I do need to alter this test so that I can run it for arbitrary
	  bit
	  string lengths, but for the moment I'm not going to worry about
	  it.

2003-01-21 21:40  rgb

	* Makefile, bits.c, dieharder.cvs.time, dieharder.h,
	  rgb_binomial.c, work.c: This is now VERY CLOSE. I should be able
	  to determine chisq in a matter
	  of minutes when I return...

2003-01-21 19:05  rgb

	* dieharder.cvs.time, dieharder.h, parsecl.c: This is considerably
	  cleaner and more decrufted...

2003-01-21 18:35  rgb

	* Makefile, dieharder.cvs.time, dieharder.h, list_rand.c,
	  list_rngs.c, startup.c, work.c: This finishes the split off of
	  list_rand and list_rngs from the code.
	  I do need to "fix" the Usage() routine to reflect the change.

2003-01-21 18:08  rgb

	* Makefile, dieharder.cvs.time, dieharder.h, list_rand.c,
	  list_rngs.c, parsecl.c, prob.c, startup.c, work.c: Breaking
	  things up into subroutines a bit better to clarify the program
	  structure.

2003-01-17 20:37  rgb

	* Makefile, dieharder.cvs.time, dieharder.h, prob.c,
	  rgb_binomial.c: This is coming along, although I'm silly for not
	  just finishing the
	  monobit test before introducing a binomial test. Still, all very
	  instructive.
	  
	  I need to get all this on my laptop and take it with me, along
	  with the
	  notebook.

2003-01-17 19:28  rgb

	* dieharder.cvs.time, showrand.sm, startup.c, sts_monobit.c: Fixes
	  a nasty bug in sts_monobit, which I think I'm gonna rename
	  rgb_binomial (and screw sts's monobit test, which is immensely
	  sloppy
	  compared to actually systematically exploring the binomial
	  distribution
	  of 1's and 0's in the overall bit strings generated by different
	  seeds.
	  
	  Actually, a better thing still is to leave sts_monobit, but add
	  rgb_binomial and document that it is more sensitive (in
	  particular, that
	  e.g. alternating series that easily pass monobit fail binomial,
	  and that
	  NOTHING that fails monobit will PASS binomial).

2003-01-17 06:06  rgb

	* dieharder.cvs.time: Sending off the tag

2003-01-17 06:06  rgb

	* Makefile, dieharder.cvs.time, dieharder.h, sts_monobit.c, work.c:
	  OK, this is good for a full minor number bump to 0.2.0. We have
	  basically installed the guts of the STS monobit test. All that we
	  lack is the computation of the statistics and p-value, which
	  should be
	  fairly straightforward, especially with the gsl handy. I SHOULD
	  be
	  able to just cumulate the one-count (e.g.) in a vector and hand
	  it to
	  the gsl stats routines and have mean, stddev, skew, kurtosis, and
	  anything else I might like just handed back to me...

2003-01-17 05:16  rgb

	* NOTES, default.sm, dieharder.cvs.time, showrand.sm, startup.c:
	  Just a bit of cleanup, and some moderately important additions.
	  
	  Now we REALLY need to think about tests.

2003-01-17 04:23  rgb

	* dieharder.cvs.time: Tagged.

2003-01-17 04:23  rgb

	* Makefile, add_my_types.c, dieharder.cvs.time, dieharder.h,
	  measure_rate.c, startup.c: This is about ready for a
	  semipermanent snapshot, so I bumped the
	  minor version number. I'd say that we are now "good" with the
	  ability
	  to add sw rng's, including interfaces to hw rng's square within
	  the gsl
	  format.
	  
	  Now to give de old tests a try...

2003-01-17 03:54  rgb

	* Makefile, add_my_types.c, dev_random.c, dieharder.c,
	  dieharder.cvs.time, dieharder.h, my_gsl_rng.h, startup.c, work.c:
	  Hot diggity dawg! It works! However, I don't need types.c. All I
	  need is to follow the dev_random.c template and call a routine
	  add_my_rngs() (to be defined) before working with gsl's rng's,
	  and
	  keep track (crudely) of which ones are which. So this can be
	  decrufted
	  a bit and then reorganized now that I know how it works.

2003-01-17 02:54  rgb

	* add_my_types.c, dieharder.cvs.time, my_gsl_rng.h: We'll try these
	  as the basic wrappers required. With luck we'll
	  override the types subroutine in gsl itself, although I do have
	  my
	  doubts...

2003-01-17 02:38  rgb

	* dieharder.cvs.time, dieharder.h, measure_rate.c, parsecl.c,
	  startup.c: This significantly improves the Usage and cl parsing,
	  and pre-structures
	  it for addition of sts/diehard tests.
	  
	  We still need to see if we can gsl-wrap our own tests without a
	  full
	  gsl recompile.

2003-01-16 20:40  rgb

	* dieharder.cvs.time: Sending the tagged copy home...

2003-01-16 20:40  rgb

	* Makefile, dieharder.cvs.time: This is now going to be v_0_1_0.

2003-01-16 20:39  rgb

	* dieharder.cvs.time, dieharder.h, measure_rate.c: This is now
	  functional UP TO all the gsl rngs, not any of the add-ons.
	  
	  Which is fine, as we'll probably completely change how the
	  add-ons work.
	  
	  Next, we need to do all of the following, in some order:
	  
	  a) figure out how to wrap up new gsl_rngs, preferrably without
	  recompiling the whole damn library.
	  b) decruft all the command line options and no-longer-used
	  variables.
	  c) add back command line options for doing quality tests. Start
	  with
	  the very simplest test -- something from diehard or the bits test
	  from
	  sts.
	  d) In the meantime, increment revision, tag, and consider
	  "publishing"
	  as we go.

2003-01-16 20:14  rgb

	* dieharder.cvs.time: This SHOULD split rand_rate off so it has its
	  own CVS tree outside of
	  the "random" project overall, which I think is for the best.

2003-01-16 20:13  rgb

	* dieharder.cvs.time, dieharder.h, measure_rate.c, parsecl.c,
	  startup.c: This actually works, and needs to be saved in snapshot
	  form. I'm not
	  at ALL certain that I'm getting accurate measurements in terms of
	  the
	  number of rands per second I can generate, but this too, we shall
	  see...

2003-01-13 22:12  rgb

	* Makefile, NOTES, dieharder.c, dieharder.cvs.time, dieharder.h,
	  measure_rate.c, parsecl.c, random_seed.c, startup.c, timing.c,
	  work.c: This is a fair amount of progress to having something
	  working...

2003-01-12 00:07  rgb

	* COPYING, Makefile, NOTES, README, copyright.h, dieharder.1,
	  dieharder.c, dieharder.cvs.time, dieharder.h, dieharder.spec,
	  measure_rate.c, parsecl.c, showrand.sm, startup.c, timing.c,
	  work.c: This is basically the original checkin for my
	  lookin-major random number
	  project. By the time this is done, I'd doggone better have a
	  paper or
	  two out of it, if not more.

2003-01-12 00:07  

	* branches, tags, .: New repository initialized by cvs2svn.

