  We develop a spectral method for solving univariate singular integral
equations over unions of intervals by utilizing Chebyshev and ultraspherical
polynomials to reformulate the equations as almost-banded infinite-dimensional
systems. This is accomplished by utilizing low rank approximations for sparse
representations of the bivariate kernels. The resulting system can be solved in
${\cal O}(m^2n)$ operations using an adaptive QR factorization, where $m$ is
the bandwidth and $n$ is the optimal number of unknowns needed to resolve the
true solution. The complexity is reduced to ${\cal O}(m n)$ operations by
pre-caching the QR factorization when the same operator is used for multiple
right-hand sides. Stability is proved by showing that the resulting linear
operator can be diagonally preconditioned to be a compact perturbation of the
identity. Applications considered include the Faraday cage, and acoustic
scattering for the Helmholtz and gravity Helmholtz equations, including
spectrally accurate numerical evaluation of the far- and near-field solution.
The Julia software package SingularIntegralEquations.jl implements our method
with a convenient, user-friendly interface.
