Floating-point arithmetic enables computers to smoothly and efficiently handle widely varying magnitudes such as the diameter of an atom or that of a star, and fit these measures within computer words that come in standard widths. Unfortunately, when calculations are performed on floating numbers, round-off errors are introduced, often causing real-world disasters, such as errant missile launches. While employing large computer word widths can minimize these errors, it also slows down computations, increases their memory, and energy needs. This project could have a broad impact by providing much needed debug support for scientific programmers to develop more reliable floating point programs.
This project develops novel ways to estimate round-off errors, thus helping programmers arrive at efficient floating-point computer codes. Special emphasis is placed on handling tricky cases such as squaring numbers and taking their trigonometric values where prior research had not sufficiently advanced. By developing powerful and automated tools for precision estimation, it allows programmers to tune their codes and pick word widths parsimoniously while not losing accuracy. The investigators use these tools to develop pedagogical material and best practices based on hands-on experience that helps inform students who typically are not taught the pitfalls of floating-point arithmetic.