Arithmetic Algorithms for Extended Precision Using Floating-Point Expansions

被引:18
作者
Joldes, Mioara [1 ]
Marty, Olivier [2 ]
Muller, Jean-Michel [3 ]
Popescu, Valentina [4 ]
机构
[1] CNRS, LAAS Lab, 7 Ave Colonel Roche, F-31077 Toulouse, France
[2] ENS Cahan, 61 Ave President Wilson, F-94230 Cachan, France
[3] Ecole Normale Super Lyon, CNRS, LIP Lab, 46 Allee Italie, F-69364 Lyon 07, France
[4] Ecole Normale Super Lyon, LIP Lab, 46 Allee Italie, F-69364 Lyon 07, France
关键词
Floating-point arithmetic; floating-point expansions; high precision arithmetic; multiple-precision arithmetic; division; reciprocal; square root; Newton-Raphson iteration;
D O I
10.1109/TC.2015.2441714
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
Many numerical problems require a higher computing precision than the one offered by standard floating-point (FP) formats. One common way of extending the precision is to represent numbers in a multiple component format. By using the so-called floating-point expansions, real numbers are represented as the unevaluated sum of standard machine precision FP numbers. This representation offers the simplicity of using directly available, hardware implemented and highly optimized, FP operations. It is used by multiple-precision libraries such as Bailey's QD or the analogue Graphics Processing Units (GPU) tuned version, GQD. In this article we briefly revisit algorithms for adding and multiplying FP expansions, then we introduce and prove new algorithms for normalizing, dividing and square rooting of FP expansions. The new method used for computing the reciprocal a(-1) and the square root root a of a FP expansion a is based on an adapted Newton-Raphson iteration where the intermediate calculations are done using "truncated" operations (additions, multiplications) involving FP expansions. We give here a thorough error analysis showing that it allows very accurate computations. More precisely, after q iterations, the computed FP expansion x = x(0) + ... + x(2q-1) satisfies, for the reciprocal algorithm, the relative error bound: vertical bar(x - a(-1))/a(-1)vertical bar <= 2(-2q(p-3)-1) and, respectively, for the square root one: vertical bar x - 1/root a vertical bar <= 2(-2q(p-3)-1)/root a, where p > 2 is the precision of the FP representation used (p = 24 for single precision and p = 53 for double precision).
引用
收藏
页码:1197 / 1210
页数:14
相关论文
共 20 条
[1]   Computing periodic orbits with arbitrary precision [J].
Abad, Alberto ;
Barrio, Roberto ;
Dena, Angeles .
PHYSICAL REVIEW E, 2011, 84 (01)
[2]  
[Anonymous], P 19 IEEE S COMP AR
[3]  
[Anonymous], 2008, 7542008 IEEE
[4]  
[Anonymous], 2013, NVIDIA CUDA programming guide
[5]   Correctness proofs outline for Newton-Raphson based floating-point divide and square root algorithms [J].
Cornea-Hasegan, MA ;
Golliver, RA ;
Markstein, P .
14TH IEEE SYMPOSIUM ON COMPUTER ARITHMETIC, PROCEEDINGS, 1999, :96-105
[6]  
Daumas M., 1999, J UNIVERS COMPUT SCI, V5, P323
[7]  
Ercegovac M.D., 1994, Division and Square Root: Digit Recurrence Algorithms and Implementations
[8]   MPFR: A multiple-precision binary floating-point library with correct rounding [J].
Fousse, Laurent ;
Hanrot, Guillaume ;
Leflvre, Vincent ;
Plissier, Patrick ;
Zimmermann, Paul .
ACM TRANSACTIONS ON MATHEMATICAL SOFTWARE, 2007, 33 (02)
[9]   Algorithms for quad-double precision floating point arithmetic [J].
Hida, Y ;
Li, XS ;
Bailey, DH .
ARITH-15 2001: 15TH SYMPOSIUM ON COMPUTER ARITHMETIC, PROCEEDINGS, 2001, :155-162
[10]   IMPROVED ERROR BOUNDS FOR INNER PRODUCTS IN FLOATING-POINT ARITHMETIC [J].
Jeannerod, Claude-Pierre ;
Rump, Siegfried M. .
SIAM JOURNAL ON MATRIX ANALYSIS AND APPLICATIONS, 2013, 34 (02) :338-344