A method for detecting computational errors in a digital processor
executing a program. Initially, the program is divided into computation
segments, and source code for at least one of the segments is compiled to
generate two redundant code sections. Comparison code is generated for
comparing results produced by execution of the two code sections. Each of
the code sections is then executed in a different computational domain to
generate respective results. The results of the computation are executed
to alter further flow of the program only if the respective results are
identical.