NOTES ON THE VERSION OF 2020-01-24

This version includes a new 'slevel' feature, used in my paper on
"Non-reversibly updating a uniform [0,1] value for accept/reject
decisions".  It also has a few other minor feature updates and bug
fixes.  

The previous publicly-released version was from 2004 (a version from
2007 was never made public), so there are some archaic aspects of the
software (in particular, the run times given for examples are for what
are now very obsolete computers).


Changes in this version:

1) A new 'slevel' MCMC operation has been added, which allows the
   uniform [0,1] value used for accept/reject decisions and setting of
   slice levels to be retained in the state, and updated by a method
   that leaves its distribution invariant, rather than always being
   sampled independently of previous values.

2) A new "Bernoulli" built-in distribution has been added for
   formulas, which may be generated from in dist-gen, etc.

3) A new "binary-gibbs" Markov chain operation has been added, which
   does Gibbs sampling for 0/1 variables.

4) The "hybrid" and "tempered-hybrid" operatons now accept a first:last
   option, which restricts the range of coordinates updated.

5) A new 'set-temp' MCMC operation has been added, meant for testing
   and other fiddling around.


Bug fixes.

1) The first (windowed) form of the hybrid operation now accounts for
   the temperature as specified with xxx-mc (not the simulated
   tempering temperature) when selecting a state from the accept or
   reject window.

2) The second (theshold) form of the hybrid operation now records the
   energy difference for an accepted state (and for the final state if
   none accepted), and also pays attention to the temperature as
   specified with xxx-mc when setting the threshold for acceptance.

3) Slice sampling operations now account for the temperature as set in
   the xxx-mc command.

4) The rgrid-met-1 operation specification now correctly parses the
   first:last option.  Operations with a first:last option now
   correctly display when first is zero.

5) There are a few minor documentation fixes. 


Known bugs and other deficiencies.

1) The facility for plotting quantities using "plot" operations in xxx-mc
   doesn't always work for the first run of xxx-mc (before any
   iterations exist in the log file).  A work-around is to do a run of
   xxx-mc to produce just one iteration before attempting a run of
   xxx-mc that does any "plot" operations.

2) The CPU time features (eg, the "k" quantity) will not work correctly
   if a single iteration takes more than about 71 minutes.

3) The latent value update operations for Gaussian processes may recompute 
   the inverse covariance matrix even when an up-to-date version was 
   computed for the previous Monte Carlo operation.

4) Covariance matrices are stored in full, even though they are symmetric,
   which sometimes costs a factor of two in memory usage.

5) Giving net-pred several log files that have different network architectures
   doesn't work, but an error message is not always produced (the results may
   just be nonsense).

6) Some Markov chain updates for Dirichlet diffusion tree models in which 
   there is no data model (ie, no noise) are not implemented when some of 
   the data is missing.  An error message is produced in such cases.

7) The times given in the documentation for the examples are for a
   very old computer.  Typical current (2020) desktop computers will
   be at least 20 times faster.