An attractive paradigm for building fast numerical algorithms is the following: 1 try a fast but occasionally unstable algorithm, 2 test the accuracy of the computed answer, and 3 recompute the answer slowly and accurately in the unlikely event it is necessary. This is especially attractive on parallel machines where the fastest algorithms may be less stable than the best serial algorithms. Since unstable algorithms can over ow or cause other exceptions, exception handling is needed to implement this paradigm safely. To implement it e ciently, exception handling cannot be too slow. We illustrate this paradigm with numerical linear algebra algorithms from the LAPACK library.
James Demmel, Xiaoye S. Li