Thus, we should have access to practical textbooks discussing the sources of error in numerical algorithms. Also, high-quality software packages should offer facilities for error control, and at least report all cases when the results may not be trustworthy. Another source of complications arises from the increasing use of parallelism. Interval arithmetic has been used in some applications requiring robustness and reliability which is not achievable by other means. Therefore, even this approach does not offer a solution for all cases.
Programming is another source of error.
The researcher strives often for quick results, but checking the reliability of the results often requires more than ten times the work needed to get the first results. Of course, researchers are pressured to publish their results as soon as possible, and this may cause relaxed attitude towards exhaustive error-analysis. Hardware becomes nowadays obsolete within a couple of years of purchase because the speed of the processors increases and the size of the memory grows. Because of this, programming requires a great deal of planning and discipline. Portability of codes is essential, but so are also scalable algorithms.