**Linear Algebra Classes**
This is a set of matrix and vector classes that is written to be easy
to use and understand. Most student projects will run very well using these
classes, and they make programming very simple, since matrix and vector
operations are supported
via operator overloading, allowing equations to be written using algebraic syntax.
If highly optimized code is needed, we recommend use of the
Eigen C++ Template Library.

**Quaternion Class**
This quaternion class is designed to work with the above linear algebra classes.
All of the standard quaternion operations are supported as well the conversions between
rotation matrices and quaternions, and rotation of a vector by a quaternion.
In addition, a routine is provided that will do an OpenGL rotation directly from
a quaternion.

**Camera Class**
This class provides a basic OpenGL 3D camera, that is manipulated by
the mouse. Left mouse tilts and swings the camera around the object being viewed,
middle mouse rotates the camera about its viewpoint, and right mouse zooms
in and out.

**Framegrabber Code**
This code provides the ability to grab a sequence of animation frames into
numbered image files, from which a video can be made. The code depends upon the
ImageMagick Magick++ API.

**Gaussian Random Number Function**
A basic gaussian random number generator built on top of the linux drand48
routine. The user can specify mean, standard deviation, and an optional seed.