Multi-Precision Arithmetic

These ideas come from Dr. David Bailey:

Background

While the standard 64-bit IEEE arithmetic system is adequate for almost all scientific applications, a small but growing set of applications requires more. These include the following:

Project Ideas

There are a number of projects along this line that need to be done, and would be appropriate for CS267. These include:

  1. Design and implement a portable double-double arithmetic package in C++ or Java/Titanium. DHB has a Fortran-90 double-double package, but there is no equivalent in C++ or Java/Titanium. Such a package would be designed to exploit the features of IEEE arithmetic that make it possible to obtain full-accuracy results of arithmetic operations. Such a package would be useful for a wide variety of applications.
  2. Design and implement a portable quad-double arithmetic package, preferably in Fortran-90 or C++. One would exploit the features of IEEE arithmetic that make it possible to obtain full-accuracy results of arithmetic operations. This package would be of use in particular for the vortex roll-up research mentioned above.
  3. Design and implement a new portable arbitrary precision package, preferably in Fortran-90 or C++. It would be based on the features of IEEE arithmetic that permit full-accuracy results to be easily obtained. DHB has an arbitrary precision package, but it was designed for a more general floating-point arithmetic system, and is not nearly as efficient as it could be if designed specifically to take advantage of IEEE arithmetic. Details of DHB's arbitrary precision package can be found in the article "A Fortran-90 Based Multiprecision System", at DHB's web site (see above). A full-blown arbitrary precision package may not be possible in the scope of a CS267 project, but some subset (say the basic arithmetic routines) would be appropriate.

    Final project page, main CS267 page, and the TA's CS267 page

    E. Jason Riedy
    ejr@cs.berkeley.edu