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.
Similar content being viewed by others
References
Aberth O, Schaefer MJ (1992) Precise computation using range arithmetic, via C++. ACM Trans Math Softw 18(4): 481–491
Adams E, Kulisch U (1993) Scientific computing with automatic resultverification. Academic Press, Inc., New York
Alefeld G, Herzberger J (1983) Introduction to interval computations. Academic Press, New York
Alt R, Frommer A, Kearfott RB, Luther W (eds) (2004) Numerical software with result verification. LNCS, vol 2991, Springer, Berlin
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–36
Bailey DH (1995) A Fortran-90 based multiprecision system. ACM Trans Math Softw 21(4): 379–387
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–67
Blomquist F, Hofschuster W, Krämer W (2010) Eine C-XSC-Langzahlarithmetik auf der Basis der MPFR- und MPFI-Bibliotheken. University of Wuppertal, Wuppertal
Brent R (1978) A Fortran multiple-precision arithmetic package. ACM Trans Math Softw (TOMS) 4(1): 57–70
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–149
Cuyt A, Verdonk B, Becuwe S, Kuterna P (2001) A remarkable example of catastrophic cancellation unraveled. Computing 66(3): 309–320
Cuyt A, Verdonk B, Waadeland H (2006) Efficient and reliable multiprecision implementation of elementary and special functions. SIAM J Sci Comput 28: 1437–1462
Cuyt A et al (eds) (2009) Numerical validation in current hardware architectures. Lecture Notes in Computer Science LNCS, vol 5492, Springer, Berlin
Döscher Chr (2010) Entwicklung bzw. Vereinheitlichung von C-XSC-Paketen zur automatischen Differentiation mittels Template-Programmierung. Thesis, University of Wuppertal, Germany
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
Geulig I, Krämer W (1998) Intervallrechnung in Maple—Die Erweiterung intpakX zum Paket intpak der Share-Library. IWRMM, University of Karlsruhe
GNU Multiple Precision Arithmetic Library. Link: http://gmplib.org/
GNU MPFR Documentation (2011). Link: http://www.mpfr.org/mpfr-current/mpfr.pdf
Griewank A, Corliss G (eds) (1991) Automatic differentiation of algorithms: theory, implementation, and applications. SIAM, Philadelphia
Griewank A, Walther A (2008) Evaluating derivatives, principles and techniques of algorithmic differentiation. Second. SIAM, Philadelphia
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–90
Hammer R, Hocks M, Kulisch U, Ratz D (1995) C++ toolbox for verified computing I, basic numerical problems: theory, algorithms and programs. Springer, Berlin
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–35
Hofschuster W, Krämer W, Neher M (2009) C-XSC and closely related software packages. In [13], pp 68–102
IBM High-Accuracy Arithmetic Subroutine Library (ACRITH)(1986) General information manual, GC 33-6163-02, 3rd edn
Keiper JB (1995) Interval arithmetic in mathematica. Math J 5(2), Springer
Klatte R et al (1991) PASCAL-XSC—language reference with examples. Springer, Heidelberg
Klatte R, Kulisch U, Wiethoff A, Lawo C, Rauch M (1993) C-XSC—A C++ class library for extended scientific computing. Springer, Heidelberg
Krämer W (1993) Multiple precision computations with result verification. In [2], pp 325–356
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
Krämer W (2007) Introduction to the Maple power tool intpakX. Serdica J Comput 1(4): 469–504
Kulisch U (2008) Computer arithmetic and validity. Theory, implementation, and applications. Stud Math 33, de Gruyter
Kulisch U, Snyder V (2010) The exact dot product as basic tool for long interval arithmetic. Computing Online. Springer, Berlin
Lohner R (1993) Interval arithmetic in staggered correction format. In [2], pp 301–342
Moore RE (1966) Interval analysis. Prentice Hall, New Jersey
Neumaier A (1990) Interval methods for systems of equations. Cambridge University Press, Cambridge
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
Rump SM (2010) Verification methods: rigorous results using floating-point arithmetic. Acta Numer 19: 287–449
Smith DM (1989) Efficient multiple-precision evaluation of elementary functions. Math Comput 52: 131–134
Smith DM (1991) Algorithm 693: a FORTRAN package for floating-point multiple-precision arithmetic. ACM Trans Math Softw 17(2): 273–283
Stoutemyer DR (2007) Useful computations need useful numbers. ACM Commun Comput Algebra 41(3)
Yohe JM (1979) Software for interval arithmetic: a reasonably portable package. ACM Trans Math Softw 5(1): 50–63
Yohe JM (1980) Portable software for interval arithmetic. Comput Suppl 2: 211–229
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–3700
Zimmermann P (2010) Reliable computing with GNU MPFR. LNCS, vol 6327, Springer, Berlin, pp 42–45
Author information
Authors and Affiliations
Corresponding author
Additional information
The author has presented the results of this paper during the SCAN 2010 conference in Lyon, September 2010.
Rights and permissions
About this article
Cite this article
Krämer, W. Multiple/arbitrary precision interval computations in C-XSC. Computing 94, 229–241 (2012). https://doi.org/10.1007/s00607-011-0174-8
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00607-011-0174-8
Keywords
- Arbitrary precision
- Multiple precision
- Reliable computations
- Interval computations
- MPFI
- MPFR
- C-XSC
- Interval Newton method