File: sather/lib/README
Author: Stephen M. Omohundro
Created: Thu May  2 15:26:23 1991
Copyright (C) International Computer Science Institute, 1990

This directory contains the source files for the Sather library
classes. The class directories are organized functionally according to
computational discipline. The current directories are:

base: Fundamental classes.
   arrays, bools, chars, integers, reals, doubles, file access, 
   strings, randmom numbers, access to Unix system calls, test 
   generation, time.

connectionist: Connectionist networks.
   Currently just feedforward backpropagation networks. 
   Eventually: competititive learning, Kohonen nets, recurrent nets,
   structured nets, perceptron, radial basis functions, etc.

data_structure: Basic data structures.
   binary trees, bit vectors, array based lists, gap lists, hash table
   based sets and maps from integers, objects, strings, general hash 
   tables, priority queues, queues, stacks, various sorting
   algorithms, sets of sets supporting union and find operations.
   Eventually: A variety of graph algorithms such as minimal spanning
   tree, max flow, transitive closure, etc. 

geometry: Geometric objects and operations.
   Vectors, matrices, affine transformations, hyper-rectangular boxes,
   hyper-balls, superquadrics, lines, ellipsoids, intervals, circles, 
   k-d trees for finding nearest neighbors in sets of points,
   quadratic maps, line segments.
   Eventually: Planar point location, convex hull, Delaunay
   triangulation, Voronoi diagrams, etc. 

grammar: Formal language classes.
   Deterministic finite automata, Non-deterministic finite automata,
   DFA minimization.
   Eventually: lexical analyzers, LALR(1) parsers, string search, 
   regular expression string search, suffix trees, compression
  algorithms. 

graphics: Computer graphics and output.
   Function plotting, PostScript output, Framemaker output.
   Eventually: raytracing, CAD operations.

image: Image processing.
   Bitmaps.
   Eventually: filtering, Laplacian pyramids, compression, dithering, 
   edge detection, edge linking, contour following.

numerical: Numerical routines.
   Complex numbers, quaternions, matrix operations, special functions,
   quaternions.
   Eventually: ODE solution, function minimization, numerical
   integration.

statistics: Statistics and pattern recognition.
   Gaussians, density estimation, k-means clustering, nearest neighbor
   classifiers, discrete probability distributions.

user_interface: User interface classes.
   Interface to SunView, generic graphics primitive output class.
   Eventually: XView classes.

The class files which are contained at the top level in each directory
are fully tested and compliant to the criteria specified in the
document "The Sather Class Library Style" unless stated otherwise in
the class header.  Each such file contains a collection of related
Sather classes. The name of the file will be "foo.sa" where "foo" is a
short indicator of the focus area of the classes contained in the
file. The C interface specification for any new C functions needed are
also included in each file as definitions in the Sather "C" class.
Most files will also have classes with names of the form "FOO_TEST".
These classes may be directly compiled (using "cs FOO_TEST") and
exercise each routine in the file. Documentation on each class may be
automatically produces from with the Sather Emacs editing mode. Each
library directory also contains a subdirectory named "C" which
contains any C files related to the Sather classes.
