  The Schur decomposition of a square matrix $A$ is an important intermediate
step of state-of-the-art numerical algorithms for addressing eigenvalue
problems, matrix functions, and matrix equations. This work is concerned with
the following task: Compute a (more) accurate Schur decomposition of $A$ from a
given approximate Schur decomposition. This task arises, for example, in the
context of parameter-dependent eigenvalue problems and mixed precision
computations. We have developed a Newton-like algorithm that requires the
solution of a triangular matrix equation and an approximate orthogonalization
step in every iteration. We prove local quadratic convergence for matrices with
mutually distinct eigenvalues and observe fast convergence in practice. In a
mixed low-high precision environment, our algorithm essentially reduces to only
four high-precision matrix-matrix multiplications per iteration. When refining
double to quadruple precision, it often needs only 3-4 iterations, which
reduces the time of computing a quadruple precision Schur decomposition by up
to a factor of 10-20.
