SpharmonicKit is a collection of C source code that implements
a discrete Legendre transform by a number of different algorithms.
Also provided is code which performs a full spherical harmonic
transform, and hybrid/semi-naive based convolution on the 2-sphere.

While FFT and DCT code is provided, the Kit is also designed to
use a slight variation of the more efficient FFT and DCT routines
found in FFTPACK. And without too much difficulty, the user should
also be able to substitute their own optimized FFT and DCT routines.
The modified version of FFTPACK that SpharmonicKit can use is
available at


www.cs.dartmouth.edu/~geelong/sphere/modified_fftpack.html


Unless otherwise stated, the programs provided here work through
bandwidths bw = 1024.

Important accompanying documentation that should be read is

 BACKGROUND - background and general discussion of the algorithms
              found in SpharmonicKit; also some implementation concerns
              regarding memory requirements (important!)

 CHANGES - list and details of changes made

 INSTALL - exactly what is included in SpharmonicKit and how
                 to compile it

 HOWTO_FFTPACK - where to obtain the original, unmodified version of
                 FFTPACK; how the original source was modified
                 to allow its use in SpharmonicKit; also explains
                 how the user can substitute their own optimized
                 FFT and DCT routines for the ones provided here

It is assumed that the user is familiar with the related work on
these algorithms done by Dennis Healy, Jim Driscoll, Sean Moore,
and Dan Rockmore, all affiliated with Dartmouth College to one extent
or another.  To obtain related papers, contact Peter Kostelec,
Dennis Healy or Dan Rockmore. In particular, we mention

       FFTs for the 2-Sphere - Improvements and Variations

       by D.M. Healy, Jr., D. Rockmore, P. Kostelec and Sean S.B. Moore
       This preprint is available at

       www.cs.dartmouth.edu/~geelong/sphere/

An updated and revised version of this preprint will appear in The
Journal of Fourier Analysis and Applications

This paper is the major reference for this code.

###############################################################
###############################################################
###############################################################

PLEASE NOTE that there is documentation within the source files
themselves, describing how things work. PLEASE LOOK AT IT, 
ESPECIALLY the code related to the HYBRID LEGENDRE TRANSFORM.
The algorithm (and code ?) is on the complicated side of things.
There are a number of settings that the user can change in order
to optimize the algorithm for their platform.


Caveat emptor - this is research code only and has not been hardened.
All the code works quite well on DEC Alpha workstations using OSF1
Versions 3.2 and 4.0. Some code has also been tested and successfully
run on Pentium-based GNU/Linux workstations, SGI workstations using
IRIX 5.3 and IRIX 6.4, Sun workstations using SunOS 4.1.2 1, an HP
Exemplar X-Class running SPP-UX 5.2.1, and even a NeXTstation Color
Turbo running NeXTStep 3.3!


All of the code here is based on code originally written by
Sean Moore, who currently works at Avaya, Inc.

	Dr. Sean Moore
	Chief Architect - Developer Platforms
	Avaya, Inc.
	smoore-at-avaya-dot-com


Return to SpharmonicKit