plrint5d: A Five-Dimensional Automatic Cubature Routine Designed for a Multi-core Platform

  • Tiancheng Li
  • Ian Robinson
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6017)


plrint5d is an automatic cubature routine for evaluating five-dimensional integrals over a range of domains, including infinite domains. The routine is written in C++ and has been constructed by interfacing a three-dimensional routine with a two-dimensional routine. It incorporates an adaptive error control mechanism for monitoring the tolerance parameter used in calls to the inner routine as well as multi-threading to maximize performance on modern multi-core platforms. Numerical results are presented that demonstrate the applicability of the routine across a wide range of integrand types and the effectiveness of the multi-threading strategy in achieving excellent speed-up.


Multi-dimensional integration automatic cubature routine lattice augmentation sequence multi-threading 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Robinson, I., Hill, M.: An algorithm for automatic two-dimensional cubature. ACM Transactions on Mathematical Software 28(1), 73–89 (2002)CrossRefGoogle Scholar
  2. 2.
    Li, T., Robinson, I.: elrint3d: A three-dimensional non-adaptive automatic cubature routine using a sequence of embedded lattice rules. Submitted for publicationGoogle Scholar
  3. 3.
    Zaremba, S.K.: Good lattice points, discrepancy and numerical integration. Annali di Matematica Pura ed Applicata 73, 293–317 (1966) (In Italian)zbMATHCrossRefMathSciNetGoogle Scholar
  4. 4.
    Sidi, A.: A new variable transformation for numerical integration. International Series of Numerical Mathematics 112, 359–373 (1993)MathSciNetGoogle Scholar
  5. 5.
    Li, T., Robinson, I.: The search for a good lattice augmentation sequence in three dimensions. In: Gervasi, O., Gavrilova, M.L. (eds.) ICCSA 2007, Part III. LNCS, vol. 4707, pp. 1037–1045. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  6. 6.
    Beveridge, J., Wiener, R.: Multithreading Applications in Win32: The Complete Guide to Threads. Addison-Wesley Professional, Reading (1996)Google Scholar
  7. 7.
    Lewis, B., Berg, D.J.: Multithreaded programming with Pthreads. Prentice-Hall, Inc, Englewood Cliffs (1998)Google Scholar
  8. 8.
    Abrahams, D., Gurtovoy, A.: C++ Template Metaprogramming: Concepts, Tools, and Techniques from Boost and Beyond. Addison-Wesley Professional, Reading (2004)Google Scholar
  9. 9.
    Fritsch, F.N., Kahaner, D.K., Lyness, J.N.: Double integration using one-dimensional adaptive quadrature routines: A software interface problem. ACM Transactions on Mathematical Software 7(1), 46–75 (1981)zbMATHCrossRefMathSciNetGoogle Scholar
  10. 10.
    Kahaner, D., Moler, C., Nash, S.: Numerical Methods and Software. Prentice-Hall, Englewood Cliffs (1988)Google Scholar
  11. 11.
    Lyness, J.N., Kaganove, J.: Comments on the nature of automatic quadrature routines. ACM Transactions on Mathematical Software 2(1), 65–81 (1976)zbMATHCrossRefMathSciNetGoogle Scholar
  12. 12.
    Genz, A.C.: Testing multidimensional integration routines. In: Ford, B., Rault, J.C., Thomasset, F. (eds.) Tools, Methods and Languages for Scientific and Engineering Computation, pp. 81–94. North-Holland, Amsterdam (1984)Google Scholar
  13. 13.
    Cools, R., Haegemans, A.: Algorithm 824: Cubpack: a package for automatic cubature; framework description. ACM Transactions on Mathematical Software 29(3), 287–296 (2003)zbMATHCrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2010

Authors and Affiliations

  • Tiancheng Li
    • 1
  • Ian Robinson
    • 1
  1. 1.La Trobe UniversityMelbourneAustralia

Personalised recommendations