    DIST:  Markov chain sampling for a specified distribution.

    The 'dist' programs allow you to specify a distribution by giving an
    "energy" function (minus the log of the density, plus an arbitrary
    constant), and to then generate a sample from this distribution using
    the various Markov chain methods.

    These programs are primarily intended for use in demonstrating the
    Markov chain methods; using these programs to sample from many of the
    distributions encountered in real Bayesian inference problems would be
    tedious or impossible.  However, the C source for the 'dist' programs,
    as well that for the demo for a bivariate Gaussian (see bvg.doc), does
    illustrate how to interface to the generic Markov chain routines, in
    order to write a suite of programs for some new application.  The code
    for this in the 'dist' and 'bvg' programs is perhaps more easily
    understood than the more complex code in the 'net', 'gp', and 'mix'
    programs.

    The distribution is specified using the dist-spec program (see
    dist-spec.doc).  An initial state for the Markov chain can then be
    specified (see dist-initial.doc).  The Markov chain operations to use
    should then be specified (see mc-spec.doc), after which the Markov
    chain is run using dist-mc (see dist-mc.doc).  The resulting states
    can be printed (see dist-display.doc), or the values of selected state
    variables can be plotted (see xxx-plt.doc and dist-quantities.doc).

    Note that values for the energy function, and its gradient if
    required, are calculated by an interpreter written in C, which is
    considerably slower than compiled C code.  The compute time required
    to sample from a distribution using the 'dist' programs will therefore
    be greater than would be required using a specially-written module.

                Copyright (c) 1995-2003 by Radford M. Neal