Testerra conducts rigorous testing and analysis to ensure your numerical software is stable and accurate. Our services support development of numerical software from early design through final validation. Testerra’s techniques have been used to identify unstable numerical software from a wide range of applications, including software in math libraries and in publications.
Why Testerra?
Even in small computations, it’s possible for the effect of rounding and other errors to produce final results that are completely wrong. Unfortunately, avoiding such a computational disaster is hampered by a variety of factors:
- Error analysis to prove stability or detect instability is difficult for simple algorithms, and typically impossible for real-world algorithms.
- Random testing is rarely rigorous enough to locate examples of numerical instability or to convince you they don’t exist. Also, it’s left to you to figure out whether the inaccuracy in a reported example is due to numerical instability (the algorithm’s fault), ill-conditioning (the problem’s fault), or both.
- Software composed of stable components can be unstable. A computed solution to a well-conditioned problem can be completely wrong if a component is applied to an ill-conditioned sub-problem.
- Compiler optimizations rearrange code and change software’s numerical characteristics. The algorithm you analyze from a source code listing may differ from the algorithm that gets executed.
Testerra’s approach overcomes these obstacles. By integrating our techniques into your development process, accuracy and stability will be built into your numerical software.
