Install this package!

The SpinWeightedSpheroidalHarmonics package for Mathematica provides functions for computing spin-weighted spheroidal harmonics, spin-weighted spherical harmonics, and their associated eigenvalues. Support is included for both arbitrary-precision numerical evaluation and for series expansions.

S(s=-2, l=2, gamma=1.9)

Explicitly the package computes solutions to the equation

\[\left[\frac{1}{\sin\theta} \frac{d}{d\theta} \left( \sin\theta \frac{d}{d\theta}\right) - \gamma^2 \sin^2\theta - \frac{(m+s\cos\theta)^2}{\sin^2\theta} - 2\gamma s \cos\theta + s+ 2m\gamma + {}_s\lambda_{lm} \right] { }_{s}S_{lm} = 0 \nonumber\]


$S$ is the spin-weighted spheroidal harmonic
$s$ is the spin-weight
$l,m$ are the multipolar indices
$\gamma$ is the spheroidicity
$\lambda$ is the spheroidal eigenvalue


Numerical evaluation

Evaluating the spheroidal eigenfunction for $s=-2$, $l=2$, $m=2$, $\gamma=1.5$, $\theta = \pi/2$, $\phi=0$ is done via

In  := SpinWeightedSpheroidalHarmonicS[-2, 2, 2, 1.5`30][π/2, 0]
Out := 0.066929509191705738197645539

Likewise the corresponding eigenvalue, $\lambda$, is computed by

In  := SpinWeightedSpheroidalEigenvalue[-2, 2, 2, 1.5`30]
Out := -5.5776273646788261891028539326

Note the output tracks the precision of the input so it is very easy to compute high precision results.

Small frequency expansions

Small frequency expansions can be performed for the eigenfunctions and eigenvalues

For given $s,l,m$ the eigenfunction can be expanded via, e.g.,

Series[SpinWeightedSpheroidalHarmonicS[2, 3, 2, γ][θ,ϕ], {γ, 0, 1}]

This returns

$\frac{1}{2} \sqrt{\frac{7}{\pi }} e^{2 i \phi } \sin^4\left(\frac{\theta }{2}\right) (3 \cos (\theta)+2)-\frac{1}{72} \gamma \left(\sqrt{\frac{7}{\pi }}e^{2 i \phi } \sin ^4\left(\frac{\theta }{2}\right)(54 \cos (\theta )+27 \cos (2 \theta)+29)\right)+O\left(\gamma ^2\right)$

The series expansion above can also be performed for generic values of $s,l,m$ which returns a series in SpinWeightedSphericalHarmonicsY functions.

For generic $s,l,m$ the eigenvalues are expanded via:

Series[SpinWeightedSpheroidalEigenvalue[s, l, m, γ], {γ, 0, 1}]


$\left(l^2+l-s (s+1)\right) + \gamma \left(-\frac{2 m s^2}{l (l+1)}-2 m\right) + O\left(\gamma ^2\right).$

The code is fast but note that in general the series expansion will be quicker to compute if when explicit values of $s$, $l$, $m$ are provided.

High frequency expansions

It is also possible to calculate series expansions of the eigenvalue about $\gamma = \infty$. For example, for the $s=2,l=2,m=2$ case, the command:

Series[SpinWeightedSpheroidalEigenvalue[2, 2, 2, γ], {γ, ∞, 6}]


$-6 \gamma -1 + \frac{3}{4 \gamma } -\frac{15}{64 \gamma ^3} -\frac{3}{16 \gamma ^4} +\frac{3}{512 \gamma ^5} + \frac{27}{128 \gamma ^6} +O\left[\frac{1}{\gamma}\right]^7$

Currently, the high frequency expansions require explicit values for $s,l,m$.

Further examples

See the Mathematica Documentation Centre for a tutorial and documentation on individual functions.



In addition to acknowledging the Black Hole Perturbation Toolkit as suggested on the front page we also recommend citing the specific package version you use via the citation information on the package’s Zenodo page linked from the above DOI.

Authors and contributors

Barry Wardell, Niels Warburton, Kwinten Fransen, Samuel Upton, Kevin Cunningham, Marc Casals, Sarp Akcay, Adrian Ottewill