  We show how to efficiently solve a clustering problem that arises in a method
to evaluate functions of matrices. The problem requires finding the connected
components of a graph whose vertices are eigenvalues of a real or complex
matrix and whose edges are pairs of eigenvalues that are at most \delta away
from each other. Davies and Higham proposed solving this problem by enumerating
the edges of the graph, which requires at least $\Omega(n^{2})$ work. We show
that the problem can be solved by computing the Delaunay triangulation of the
eigenvalues, removing from it long edges, and computing the connected
components of the remaining edges in the triangulation. This leads to an
$O(n\log n)$ algorithm. We have implemented both algorithms using CGAL, a
mature and sophisticated computational-geometry software library, and we
demonstrate that the new algorithm is much faster in practice than the naive
algorithm. We also present a tight analysis of the naive algorithm, showing
that it performs $\Theta(n^{2})$ work, and correct a misrepresentation in the
original statement of the problem. To the best of our knowledge, this is the
first application of computational geometry to solve a real-world problem in
numerical linear algebra.
