Important notes on the spheroidal package:
-- By downloading or using this package, you agree to abide by the terms of
its license; please see license.txt for details.
-- This package is based on the original Spheroidal package by Falloon (see
P. E. Falloon, P. C. Abbott, and J. B. Wang, J. Phys. A36 (2003)
5477). The code has been heavily optimized, particularly for common cases,
and various bugs have been fixed.
-- Slightly different versions are provided for Mathematica versions 4, 5,
and 6. In version 4, the package defines its own Legendre functions to
work around bugs in Mathematica's behavior along branch cuts; they are
returned in series expansions. Versions for 5 and 6 are mostly similar,
with small changes to account for different behavior of Legendre function
simplification. Versions 5 and 6 also compute spherical Bessel functions
more efficiently than their predecessors, making it more efficient to
compute these functions directly rather than by using recursion relations.
The code for versions 5 and 6 also adapts to changes in the implementation
of machine precision from version 4.
-- Mathematica version 6 has support for spheroidal functions. It appears
to also be based on the Falloon package (they share many of the same bugs).
To use the improved package here, the built-in functions must be disabled
before loading the package, as follows (this can be done for each session
individually or included in init.m):
Unprotect["Spheroidal*"]
ClearAll["Spheroidal*"]
The Spheroidal6.m package file automatically issues these commands when
it is loaded.
-- Depending on the task, this package should be 2-100 times faster than
either the original package or the Mathematica version 6 code.
-- The ordering of arguments follows the original Falloon package; the last
two arguments are reversed in the Mathematica implementation. Except for
this change, the definitions and conventions for functions here should
correspond to those in Mathematica 6.
-- Series expansions around c=0 (the spherical limit) are now implemented
for all functions, and several bugs have been fixed in the
Falloon/Mathematica implementations of the series for angular functions.
-- The package implements the function SpheroidalS3, the analog of the
spherical Hankel function SphericalHankelH1. In analogy to the Bessel
function case, SpheroidalS3 is the same as SpheroidalS1 + I SpheroidalS2,
but it is computed in a way that avoids cancellation of large numbers
between these two terms in the case of evanescent waves.