jacques G on Tue, 18 Oct 2011 20:58:22 +0200 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Parameters of floating-point arithmetic ? |
Question 1: Do the two PARI/GP programs below (flpari, flparam) work correctly on 64-bit machines ? Question 2: Will the fast GP-specific flpari() program work in future versions of PARI/GP ? Thanks for any answers or other comments, Jacques Gélinas, Ottawa, Canada flpari(p=precision(1.)) = { local(w=#precision(1.,p)); [2, w, w*=64/#precision(1.,18), 2.>>w]; } addhelp(flpari,"flpari(p): parameters of p-decimal PARI/GP floating-point arithmetic"\ " [base, words, bits, machine epsilon]") flparam() = { local( base = 2., mant = 8.^precision(1.) ); while( (( mant + 1. ) - mant) == 1., mant*=2. ); while( (( mant + base ) - mant) != base, base+=1. ); [ round(base), round( log(precision(mant,18)) / log(precision(base,18)) ), 2./mant ]; } addhelp(flparam,"flparam(): parameters of floating-point arithmetic"\ " in current precision [base, digits, machine epsilon]") /* References 1. How to know the internal basis of your computer (code for Pari 2.1.4): { x=y=1.0; while(((x+1.0)-x)==1.0, x=2.0*x ); while((x+y)-x<>y, y=y+1.0); [x,y] } in MPFR: A multiple-precision floating-point libraby with correct rounding, by Paul Zimmermann, Workshop: The PARI/GP System, IHP, 2004, <http://pari.math.u-bordeaux.fr/Events/IHP2004/Paul.Zimmermann/mpfr2.ps.gz> 2. User's Guide to the PARI library by the PARI Group, 2011, 4.5.2: Type t_REAL. 3. User's Guide to PARI/GP by the PARI Group, 2011, 2.3.2: Real numbers (t_REAL). 4. Algorithms to reveal properties of floating-point arithmetic by Michael A. Malcolm, CACM 15 (1972), pp. 949-951. 5. Computer Methods for Mathematical Computations by George E. Forsythe, Michael A. Malcolm, and Cleve B. Moler, Prentice-Hall, 1977, pp. 10-14. 6. What Every Computer Scientist Should Know About Floating-Point Arithmetic, by David Goldberg, published in the March, 1991 issue of Computing Surveys, reprinted with permission as Appendix D of Numerical Computation Guide: <http://download.oracle.com/docs/cd/E19957-01/806-3568/ncgTOC.html> */