Adaptive Multivariate Integration over Hypercubes

R wrappers around the cubature C library of Steven G. Johnson for adaptive multivariate integration over hypercubes and the Cuba C library of Thomas Hahn for deterministic and Monte Carlo integration. Scalar and vector interfaces for cubature and Cuba routines are provided; the vector interfaces are highly recommended as demonstrated in the package vignette.

Travis-CI Build Status CRAN_Status_Badge Coverage Status

Cubature is an R package for adaptive multivariate integration over hypercubes. The core of the package is the cubature C library of Steven G. Johnson.

The package provides both hcubature and pcubature routines in addition to a vector interface.

R users will gain a lot by using the vector interace. Writing functions to take advantage of the vector interface is quite easy. Refer to the vignette that provides timing comparisons and vectorization examples to emulate.


cubature 1.4-1

  • Fixed up scale argument to tests to conform to pass checks.
  • Removed any reference to orphaned package R2Cuba and updated vignette with information on imminent 2.0 release.

cubature 1.4

  • Fixed up the C call so that it is re-entrant (brought to my attention by Pierre de Villemereuil). This should be considered a bug fix!

  • Corrected private notes

cubature 1.3-13

cubature 1.3-12

  • Minor typographical and documentation fixes

cubature 1.3-11

  • Merged Manuel Koller's registration for C code and vignette fix for NA.
  • Moved cubature header and exp_cubature headers to inst/include for linking to other packages

cubature 1.3-10

  • Renamed to
  • Removed references to ab-initio website that caused some hassle due to misconfigured site.

cubature 1.3-9

cubature 1.3-8

cubature 1.3-7

  • Registered .Call stuff and removed microbenchmark suggestion in favor of benchr.

cubature 1.3-4

  • Generated smaller pcubature header (clencurt.h) using M = 16 and put back C cubature source in tree.

cubature 1.3-3

  • Moved the cubature-1.0.2 C library to github to avoid hitting the CRAN size limit.

cubature 1.3-2

  • Added vignette showing huge gains due to vectorization

cubature 1.3-1

  • Added pcubature
  • Added vector versions

cubature 1.3-0

  • Moved to SGJ cubature-1.0.2 version.
  • adaptIntegrate and hcubature are aliases
  • hcubature function gains a norm argument that is set to a sensible default so as not to affect depending packages

cubature 1.2-0

  • Moved to Rcpp framework
  • Added tests in preparation for SGJ cubature-1.0.2 version

cubature 1.1-3

  • Roxygenized in preparation for upgrade to newer version of cubature library on abinitio website

cubature 1.1-2

  • Registered native cubature functions adapt_integrate and adapt_integrate_v so that they are directly callable from C (courtesy of Simen Gaure)

cubature 1.1-2

  • Fixed typo in doc for function adaptIntegrate; default value for doChecking was incorrectly stated as TRUE

cubature 1.1-1

  • Added doChecking argument (default FALSE) to save some computation time in evaluating integrand (9% speedup).

cubature 1.1

  • Synced up to SGJ cubature routines dated 2010-10-18 on his website
  • Bugfix: potential memory leak fixed up in heap routine (my oversight!)
  • Routine adaptIntegrate gains ... argument (request of Baptiste Auguie)
  • Corrected radius constant in testFn2 to match cubature output exactly

cubature 1.0

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.


2.0.1 by Balasubramanian Narasimhan, 10 days ago

Report a bug at

Browse source code at

Authors: Balasubramanian Narasimhan [aut, cre] , Manuel Koller [ctb] , Steven G. Johnson [aut] , Thomas Hahn [aut] , Annie Bouvier [aut] , Kiên Kiêu [aut] , Simen Gaure [ctb]

Documentation:   PDF Manual  

Task views: Numerical Mathematics

GPL-3 license

Imports Rcpp

Suggests testthat, knitr, mvtnorm, benchr

Linking to Rcpp

Imported by ALTopt, BNSP, GAS, GB2, GPCMlasso, ICAOD, MCMCglmm, ODS, Power2Stage, PowerTOST, ProFit, QGglmm, SurvDisc, apTreeshape, calibrator, carfima, clusteredinterference, dbmss, downscale, ei, eiCompare, fMultivar, highfrequency, inctools, np, planar, pooling, statsr, tailDepFun, tseriesEntropy, vines.

Depended on by GRCdata, PCMRS, SphericalCubature, spatialTailDep, symmoments, yuima.

Suggested by FixedPoint, chebpol, docopulae, fastR, fastR2, icensBKL, lfe, polyCub.

Linked to by robustlmm.

See at CRAN