Computing

, Volume 94, Issue 2–4, pp 229–241 | Cite as

Multiple/arbitrary precision interval computations in C-XSC

Article

Abstract

As a new feature, C-XSC provides so-called wrapper classes to some external arbitrary precision real and interval packages. Operator and function name overloading is used to give the user easy access to the arithmetic operations and mathematical functions provided by the underlying Ansi C packages. We will discuss briefly so-called staggered precision arithmetics based on exact scalar products. Such an arithmetic is available in C-XSC e.g. for multiple precision complex intervals. We also discuss the usage of the arbitrary precision arithmetic packages MPFR and MPFI, which are now accessible conveniently from within C-XSC via class interfaces. As a typical application, we will present an arbitrary precision interval Newton method to find the root(s) of a continuously differentiable function in a prescribed domain. The user only has to supply the expression for the function in the usual mathematical notation. The derivative needed in the interval Newton operator is computed using automatic differentiation based on the arbitrary precision interval operations. To demonstrate the power of the package we compute an enclosure of the zero of a model problem with guaranteed accuracy of more than 10 million decimal digits.

Keywords

Arbitrary precision Multiple precision Reliable computations Interval computations MPFI MPFR C-XSC Interval Newton method 

Mathematics Subject Classification (2000)

65G40 65Y99 97N80 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Aberth O, Schaefer MJ (1992) Precise computation using range arithmetic, via C++. ACM Trans Math Softw 18(4): 481–491MATHCrossRefGoogle Scholar
  2. 2.
    Adams E, Kulisch U (1993) Scientific computing with automatic resultverification. Academic Press, Inc., New YorkGoogle Scholar
  3. 3.
    Alefeld G, Herzberger J (1983) Introduction to interval computations. Academic Press, New YorkMATHGoogle Scholar
  4. 4.
    Alt R, Frommer A, Kearfott RB, Luther W (eds) (2004) Numerical software with result verification. LNCS, vol 2991, Springer, BerlinGoogle Scholar
  5. 5.
    Akyildiz Y, Popova ED, Ullrich CP (1997) Towards a more complete interval arithmetic in mathematica. In: Proceedings on the second international mathematica symposium, pp 26–36Google Scholar
  6. 6.
    Bailey DH (1995) A Fortran-90 based multiprecision system. ACM Trans Math Softw 21(4): 379–387MATHCrossRefGoogle Scholar
  7. 7.
    Blomquist F, Hofschuster W, Krämer W (2009) A modified staggered correction arithmetic with enhanced accuracy and very wide exponent range. Lecture Notes in Computer Science LNCS, vol 5492, Springer, Berlin, pp 41–67Google Scholar
  8. 8.
    Blomquist F, Hofschuster W, Krämer W (2010) Eine C-XSC-Langzahlarithmetik auf der Basis der MPFR- und MPFI-Bibliotheken. University of Wuppertal, WuppertalGoogle Scholar
  9. 9.
    Brent R (1978) A Fortran multiple-precision arithmetic package. ACM Trans Math Softw (TOMS) 4(1): 57–70CrossRefGoogle Scholar
  10. 10.
    Brent R, Hooper JA, Yohe JM (1980) An AUGMENT interface for Brent’s multiple rrecision arithmetic package. ACM Trans Math Softw (TOMS) 6(2): 146–149MATHCrossRefGoogle Scholar
  11. 11.
    Cuyt A, Verdonk B, Becuwe S, Kuterna P (2001) A remarkable example of catastrophic cancellation unraveled. Computing 66(3): 309–320MathSciNetMATHCrossRefGoogle Scholar
  12. 12.
    Cuyt A, Verdonk B, Waadeland H (2006) Efficient and reliable multiprecision implementation of elementary and special functions. SIAM J Sci Comput 28: 1437–1462MathSciNetMATHCrossRefGoogle Scholar
  13. 13.
    Cuyt A et al (eds) (2009) Numerical validation in current hardware architectures. Lecture Notes in Computer Science LNCS, vol 5492, Springer, BerlinGoogle Scholar
  14. 14.
    Döscher Chr (2010) Entwicklung bzw. Vereinheitlichung von C-XSC-Paketen zur automatischen Differentiation mittels Template-Programmierung. Thesis, University of Wuppertal, GermanyGoogle Scholar
  15. 15.
    Fousse L, Hanrot G, Lefèvre V, Pélissier P, Zimmermann P (2007) MPFR: a multiple-precision binary floating-point library With correct rounding. ACM Trans Math Softw 33(2):13:1–13:15. Link: http://www.mpfr.org/mpfr-current Google Scholar
  16. 16.
    Geulig I, Krämer W (1998) Intervallrechnung in Maple—Die Erweiterung intpakX zum Paket intpak der Share-Library. IWRMM, University of KarlsruheGoogle Scholar
  17. 17.
    GNU Multiple Precision Arithmetic Library. Link: http://gmplib.org/
  18. 18.
    GNU MPFR Documentation (2011). Link: http://www.mpfr.org/mpfr-current/mpfr.pdf
  19. 19.
    Griewank A, Corliss G (eds) (1991) Automatic differentiation of algorithms: theory, implementation, and applications. SIAM, PhiladelphiaGoogle Scholar
  20. 20.
    Griewank A, Walther A (2008) Evaluating derivatives, principles and techniques of algorithmic differentiation. Second. SIAM, PhiladelphiaGoogle Scholar
  21. 21.
    Grimmer M, Petras K, Revol N (2004) Multiple precision interval packages: comparing different approaches. In Lecture Notes in Computer Science, vol 2991, Springer, Berlin, pp 64–90Google Scholar
  22. 22.
    Hammer R, Hocks M, Kulisch U, Ratz D (1995) C++ toolbox for verified computing I, basic numerical problems: theory, algorithms and programs. Springer, BerlinMATHGoogle Scholar
  23. 23.
    Hofschuster W, Krämer W (2004) C-XSC 2.0: a C++ library for extended scientific computing. Numerical software with result verification, Lecture Notes in Computer Science, vol 2991/2004, Springer, Heidelberg, pp 15–35Google Scholar
  24. 24.
    Hofschuster W, Krämer W, Neher M (2009) C-XSC and closely related software packages. In [13], pp 68–102Google Scholar
  25. 25.
    IBM High-Accuracy Arithmetic Subroutine Library (ACRITH)(1986) General information manual, GC 33-6163-02, 3rd ednGoogle Scholar
  26. 26.
    Keiper JB (1995) Interval arithmetic in mathematica. Math J 5(2), SpringerGoogle Scholar
  27. 27.
    Klatte R et al (1991) PASCAL-XSC—language reference with examples. Springer, HeidelbergGoogle Scholar
  28. 28.
    Klatte R, Kulisch U, Wiethoff A, Lawo C, Rauch M (1993) C-XSC—A C++ class library for extended scientific computing. Springer, HeidelbergMATHGoogle Scholar
  29. 29.
    Krämer W (1993) Multiple precision computations with result verification. In [2], pp 325–356Google Scholar
  30. 30.
    Krämer W, Kulisch U, Lohner R (1998) Numerical toolbox for verified computing II—advanced numerical problems (draft). Chapter 7, Multiple-Precision Arithmetic Using Integer Operations, pp 210–251. See http://www.math.uni-wuppertal.de/wrswt/literatur/tb2.ps.gz
  31. 31.
    Krämer W (2007) Introduction to the Maple power tool intpakX. Serdica J Comput 1(4): 469–504MATHGoogle Scholar
  32. 32.
    Kulisch U (2008) Computer arithmetic and validity. Theory, implementation, and applications. Stud Math 33, de GruyterGoogle Scholar
  33. 33.
    Kulisch U, Snyder V (2010) The exact dot product as basic tool for long interval arithmetic. Computing Online. Springer, BerlinGoogle Scholar
  34. 34.
    Lohner R (1993) Interval arithmetic in staggered correction format. In [2], pp 301–342Google Scholar
  35. 35.
    Moore RE (1966) Interval analysis. Prentice Hall, New JerseyMATHGoogle Scholar
  36. 36.
    Neumaier A (1990) Interval methods for systems of equations. Cambridge University Press, CambridgeMATHGoogle Scholar
  37. 37.
    Revol N, Rouillier F (2005) Motivations for an arbitrary precision interval arithmetic and the MPFI library. Reliab Comput 11:275–290. Link: http://perso.ens-lyon.fr/nathalie.revol/mpfi.html Google Scholar
  38. 38.
    Rump SM (2010) Verification methods: rigorous results using floating-point arithmetic. Acta Numer 19: 287–449MathSciNetCrossRefGoogle Scholar
  39. 39.
    Smith DM (1989) Efficient multiple-precision evaluation of elementary functions. Math Comput 52: 131–134MATHCrossRefGoogle Scholar
  40. 40.
    Smith DM (1991) Algorithm 693: a FORTRAN package for floating-point multiple-precision arithmetic. ACM Trans Math Softw 17(2): 273–283MATHCrossRefGoogle Scholar
  41. 41.
    Stoutemyer DR (2007) Useful computations need useful numbers. ACM Commun Comput Algebra 41(3)Google Scholar
  42. 42.
    Yohe JM (1979) Software for interval arithmetic: a reasonably portable package. ACM Trans Math Softw 5(1): 50–63MathSciNetCrossRefGoogle Scholar
  43. 43.
    Yohe JM (1980) Portable software for interval arithmetic. Comput Suppl 2: 211–229CrossRefGoogle Scholar
  44. 44.
    Zimmer M, Krämer W, Bohlender G, Hofschuster W (2010) Extension of the C-XSC library with scalar products with selectable accuracy. Serdica J Comput 4(3): 349–3700Google Scholar
  45. 45.
    Zimmermann P (2010) Reliable computing with GNU MPFR. LNCS, vol 6327, Springer, Berlin, pp 42–45Google Scholar

Copyright information

© Springer-Verlag 2011

Authors and Affiliations

  1. 1.University of WuppertalWuppertalGermany

Personalised recommendations