Exact real arithmetic systems can specify any amount of precision on the output of the computations. They are used in a wide variety of applications when a high degree of precision is necessary. Some of these applications include: differential equation solvers, linear equation solvers, large scale mathematical models, and SMT solvers. This dissertation proposes a new exact real arithmetic system which uses lazy list of floating point numbers to represent the real numbers. It proposes algorithms for basic arithmetic computations on these structures and proves their correctness. This proposed system has the advantage of algorithms which can be supported by modern floating point hardware, while still being a lazy exact real arithmetic system.
Lazy exact real arithmetic using floating point operations
Abstract
Details
- Title: Subtitle
- Lazy exact real arithmetic using floating point operations
- Creators
- Ryan McCleeary - University of Iowa
- Contributors
- Aaron Stump (Advisor)Douglas Jones (Committee Member)Alberto Segre (Committee Member)Cesare Tinelli (Committee Member)Kasturi Varadarajan (Committee Member)
- Resource Type
- Dissertation
- Degree Awarded
- Doctor of Philosophy (PhD), University of Iowa
- Degree in
- Computer Science
- Date degree season
- Summer 2019
- DOI
- 10.17077/etd.128d-ci14
- Publisher
- University of Iowa
- Number of pages
- vii, 152 pages
- Copyright
- Copyright © 2019 Ryan McCleeary
- Language
- English
- Description illustrations
- color illustrations
- Description bibliographic
- Includes bibliographical references (pages 151-152).
- Public Abstract (ETD)
Computers use approximations of numbers. A number like π is only approximated. Exact real arithmetic systems allow the user to work with numbers like π and perform computations on them. They then allow the user to say how many digits of precision they want for output from these computations. An example would be “1 million digits of the result of computing π * π”. This dissertation proposes a exact real arithmetic system. The full title “Lazy Exact Real Arithmetic using Floating Point Operations” explains how this approach is done.
First the “Lazy” part of the title refers to how the algorithms work. An algorithm is a set of instructions to complete a task. Take for instance adding 1750 + 251, you start with the right most column and continue your way to the left until the result is computed with 2001. The numbers that this system are working with can have a possibly infinite amount of digits. This means that starting at the right most digit is impossible. The algorithms described in this thesis work left to right, which we often describe as “Lazy”.
Next is “Floating Point Operations”. Floating point is another way of saying significant figures. A floating point number is a number which stores a certain amount of digits, and an exponent. For instance 0.0001241 = 1.241 * 10-4. Computers are capable of efficiently performing computations on these floating point numbers.
- Academic Unit
- Computer Science
- Record Identifier
- 9983776998202771