Go to main content
Oracle® Developer Studio 12.5: Numerical Computation Guide

Exit Print View

Updated: June 2016
 
 

5.6 Independent Confirmation

The foregoing discussion of reproducibility is based on the assumption that the result to be reproduced is correct, perhaps one of many correct results. But how do we ultimately know for sure? Some programs have proofs, but often the proof is more complicated than the program. Why believe it more than the program? Some programs model physical systems that have conservation laws that can be checked, but what if the interesting physical discovery to be made is that the conservation law is incomplete or incorrect?

Any important decision should be confirmed by independent means. In the most important cases of decisions made with the aid of computers, independent means might need to encompass a different machine, with a different instruction set, running a different operating system, with a program written in a different computer language, implementing a different algorithm, then all done by a different investigator on another continent who thinks in a different natural language. How far one wants to go in this direction depends on how much an incorrect conclusion would cost.

Thus when writing a program to test base conversion, for instance, at least take care to use test algorithms utterly different from any likely to be used in the base conversion functions to be tested. Thus even slow, simple algorithms have their place in Computer Science — for testing fast complicated algorithms.