
           ***********************************************************

             GOOSE: GNU/GUPPI Object-Oriented Statistics Environment

                                version 0.0.2

           ***********************************************************

Goose is a GPLed library of statistical functions implemented in C++.
It is designed to make it reasonably simple to perform statistical
calculations in a reasonably efficient manner.

Goose 0.0.1 was LGPLed.  This version is GPLed.  I expect that version
0.0.3 will be back to the LGPL... there are just a few licensing
issues that I need to clear up.

Goose is being developed in parallel with Guppi (GNU/Gnome Useful Plot
Production Interface), a data visualization tool that will also
provide basic statistical functions.  Since Guppi is still at a *very*
early stage of its design, the level of statistical sophistication it
will support is still unclear.  However, it will ultimately offer, at
the very least, some light-weight statistical functionality.  (How
many times have *you* been annoyed by the inability of Gnuplot to do
even the simplest linear regressions?)

Whatever happens, we decided to produce Goose as a stand-alone library
that will undoubtedly offer tremendously more functionality than will
ever be available through Guppi.  Right now, Goose's capabilities are
very limited.  It offers:

  * Efficient calculation of descriptive statistics.

  * Calculation of confidence intervals for the mean and difference of
    means.

  * Simple linear and polynomial regressions.

  * Chi-square goodness-of-fit tests and some runs tests.

  * Implementations of special functions useful in statistics.

  * A fast, high-quality pseudorandom number generator: Matsumoto and
    Nishimura's Mersenne Twister.
    (see http://www.math.keio.ac.jp/matsumoto/emt.html for more info.)

  * Optimized resampling routines for the mean, median and standard
    deviation.

  * A very preliminary mechanism to simplify importing data from text
    files.

With time, I expect that many, many more features will be added.


Goose is not meant to be all things to all people --- it has many
shortcoming.  Some of these include:

  * Goose is not designed to work particularly well with extremely
    large data sets.  (Of course, what constitutes a "very large data
    set" will evolve as processors speed up and memory sizes
    increase.)  Right now, I'm satisfied if things are very fast for
    data sets of 10,000 points and continue to be reasonabe for
    100,000 points.  If you are dealing with 50 variables, each with
    10 million samples, you are probably going to need to write your
    custom analysis code.  Sorry.

  * I am trying to present the simplest possible interface to
    programmers using Goose from their own programs.  Because of this,
    I am very willing to trade-off generality for interface
    simplicity.

  * Right now, Goose just doesn't do very much.  Unlike the previous
    two problems, I expect this to change with time.

  * There is no documentation beyond reading the source.  I'm going to
    try to write some minimal documentation after I figure out DocBook.
    Promise.

  * The programs in examples/ are small and don't really do very much.
    They exist for use in debugging and otherwise checking that things
    work the way they should.  They aren't very good examples of anything
    in particular.

The latest news about and versions of Goose, Guppi, and related
programs can be found at http://www.gnome.org/guppi.  Thanks to our
friends at Red Hat for providing Goose with space on their server.

Goose doesn't have a mailing list of its own (yet), but it is a
frequent subject on the Guppi mailing list.  To subscribe, send mail
to guppi-list-request@gnome.org with "subscribe" in the subject line.

Please send any questions, comments, suggestions, or patches to me via
e-mail.  If you use Goose to do something interesting or useful, I'd
like to hear about it.

Good luck!

- Jon Trowbridge <trow@emccta.com>
  September 14, 1998








