The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.

rootWishartHD

rootWishartHD computes CDFs, log-CDFs, log-survival probabilities, p-values, and critical values for Roy’s largest root in single- and double-Wishart (Jacobi / multivariate beta) settings. It is derived from Maxime Turgeon’s rootWishart codebase and adds scaled Pfaffian evaluation, log-tail wrappers, adaptive multiprecision, and high-dimensional validation utilities.

Installation

# from a local source checkout
install.packages(".", repos = NULL, type = "source")

Basic use

library(rootWishartHD)

theta <- c(0.5, 0.8, 0.9)       # theta scale, 0 <= theta <= 1
F <- doubleWishart(theta, s = 5, m = 10, n = 10, verbose = FALSE)

log_sf <- doubleWishart_log(theta, s = 5, m = 10, n = 10,
                            tail = "upper", type = "arbitrary",
                            verbose = FALSE)

pval <- doubleWishart_pvalue(theta, s = 5, m = 10, n = 10,
                             input = "theta", verbose = FALSE)

The double-Wishart API uses the Jacobi scale theta = lambda / (1 + lambda). If your statistic is a beta type II or generalized-root value lambda, convert it before calling CDF functions, or use doubleWishart_pvalue(..., input = "lambda").

Multiprecision backend

The CRAN-safe default is

DW_USE_MPFR=0

which uses Boost’s header-only cpp_dec_float backend from the BH package. This needs no system MPFR/GMP libraries and is the recommended portable setting for CRAN, Windows, macOS, and clean Linux machines.

To force the multiprecision path at runtime, use either

options(rootWishartHD.force_multiprecision = TRUE)

or pass force_multiprecision = TRUE to the CDF/log-tail wrappers.

For local source builds, users who specifically want MPFR/GMP can opt in with

DW_USE_MPFR=1 R CMD INSTALL rootWishartHD_0.95.1.tar.gz

or from a source directory:

DW_USE_MPFR=1 R CMD INSTALL .

Runtime adaptive precision (adaptive = TRUE) requires an MPFR/GMP build because it changes the decimal precision during evaluation. With the default DW_USE_MPFR=0 build, adaptive = TRUE is downgraded to fixed cpp_dec_float precision with a warning. To increase the fixed precision, build with for example DW_MP_DIGITS=300 R CMD INSTALL ..

You need MPFR and GMP development libraries available to the compiler. Check the compiled backend with

rootWishartHD_mpfr_enabled()

If MPFR is explicitly requested through the deprecated force_mpfr interface or old options(rootWishart.force_mpfr = TRUE), but the package was compiled with DW_USE_MPFR=0, rootWishartHD warns once and falls back to Boost cpp_dec_float.

Validation scripts

Fast tests are under inst/tinytest/ and are run by R CMD check. Longer numerical sweeps are installed under inst/validation/ and are not run automatically:

source(system.file("validation", "test_doubleWishartHD_sweep.R",
                   package = "rootWishartHD"))

Those scripts may use arbitrary precision, local caches, and multiple workers; they are intended for release validation rather than CRAN check-time execution.

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.