Learn R Programming

⚠️There's a newer version (1.0.2) of this package.Take me there.

boostmath

Providing simple access to Boost’s Math functions in R, no compilation required.

Installation

You can install the development version of boostmath from GitHub with:

# install.packages("remotes")
remotes::install_github("andrjohns/boostmath")

Or you can install pre-built binaries from R-Universe:

install.packages("boostmath", repos = c("https://andrjohns.r-universe.dev",
                                        "https://cran.r-project.org"))

Usage

Functions can be used directly after loading the package:

library(boostmath)

hypergeometric_pFq(c(1, 2.5), c(0.5, 2), 1)
#> [1] 6.675991
ibeta_inv(2.1, 5.2, 0.7)
#> [1] 0.361431
owens_t(2.1, 4.2)
#> [1] 0.00893221

Any Boost Math functions that share the same name as R functions are sufffixed with _boost to avoid conflicts:

beta_boost(3, 2)
#> [1] 0.08333333
lgamma_boost(5)
#> [1] 3.178054

Quadrature and Differentiation

Boost’s integration routines are also available for use with R functions:

trapezoidal(function(x) { 1/(5 - 4*cos(x)) }, a = 0, b = 2*pi)
#> [1] 2.094395

gauss_legendre(function(x) { x * x * atan(x) }, a = 0, b = 1, points = 20)
#> [1] 0.2106573

gauss_kronrod(function(x) { exp(-x * x / 2) }, a = 0, b = Inf, points = 15)
#> [1] 1.253314

As well as numerical differentiation by finite-differencing or the complex-step method:

finite_difference_derivative(exp, 1.7)
#> [1] 5.473947

complex_step_derivative(exp, 1.7)
#> [1] 5.473947

Distribution Functions

The PDF, CDF, log-PDF, log-CDF, and quantile functions for statistical distributions are also exposed:

beta_pdf(0.1, 1.2, 2.1)
#> [1] 1.569287

beta_lpdf(0.1, 1.2, 2.1)
#> [1] 0.4506213

beta_cdf(0.1, 1.2, 2.1)
#> [1] 0.1380638

beta_lcdf(0.1, 1.2, 2.1)
#> [1] -1.98004

beta_quantile(0.5, 1.2, 2.1)
#> [1] 0.3335097

Copy Link

Version

Install

install.packages('boostmath')

Version

1.0.0

License

MIT + file LICENSE

Issues

Pull Requests

Stars

Forks

Maintainer

Andrew Johnson

Last Published

July 25th, 2025

Functions in boostmath (1.0.0)

error_functions

Error Functions and Inverses
chebyshev_polynomials

Chebyshev Polynomials and Related Functions
exponential_distribution

Exponential Distribution Functions
exponential_integrals

Exponential Integrals
lognormal_distribution

Log Normal Distribution Functions
hankel_functions

Hankel Functions
mapairy_distribution

Map-Airy Distribution Functions
inverse_gamma_distribution

Inverse Gamma Distribution Functions
pareto_distribution

Pareto Distribution Functions
holtsmark_distribution

Holtsmark Distribution Functions
jacobi_polynomials

Jacobi Polynomials and Related Functions
geometric_distribution

Geometric Distribution Functions
non_central_t_distribution

Noncentral T Distribution Functions
hyperexponential_distribution

Hyperexponential Distribution Functions
inverse_chi_squared_distribution

Inverse Chi-Squared Distribution Functions
fisher_f_distribution

Fisher F Distribution Functions
gegenbauer_polynomials

Gegenbauer Polynomials and Related Functions
jacobi_elliptic_functions

Jacobi Elliptic Functions
number_series

Number Series
non_central_chi_squared_distribution

Noncentral Chi-Squared Distribution Functions
normal_distribution

Normal Distribution Functions
poisson_distribution

Poisson Distribution Functions
jacobi_theta_functions

Jacobi Theta Functions
laplace_distribution

Laplace Distribution Functions
kolmogorov_smirnov_distribution

Kolmogorov-Smirnov Distribution Functions
hermite_polynomials

Hermite Polynomials and Related Functions
spherical_harmonics

Spherical Harmonics
owens_t

Owens T Function
landau_distribution

Landau Distribution Functions
ooura_fourier_integrals

Ooura Fourier Integrals
hypergeometric_distribution

Hypergeometric Distribution Functions
gamma_distribution

Gamma Distribution Functions
hypergeometric_functions

Hypergeometric Functions
laguerre_polynomials

Laguerre Polynomials and Related Functions
lambert_w_function

Lambert W Function and Its Derivatives
non_central_beta_distribution

Noncentral Beta Distribution Functions
negative_binomial_distribution

Negative Binomial Distribution Functions
rootfinding_and_minimisation

Root-Finding and Minimisation Functions
saspoint5_distribution

S\(\alpha\)S Point5 Distribution Functions
polynomial_root_finding

Polynomial Root-Finding
weibull_distribution

Weibull Distribution Functions
zeta

Riemann Zeta Function
students_t_distribution

Student's T Distribution Functions
vector_functionals

Vector Functionals
rayleigh_distribution

Rayleigh Distribution Functions
triangular_distribution

Triangular Distribution Functions
legendre_polynomials

Legendre Polynomials and Related Functions
inverse_gaussian_distribution

Inverse Gaussian Distribution Functions
gamma_functions

Gamma Functions
inverse_hyperbolic_functions

Inverse Hyperbolic Functions
logistic_distribution

Logistic Distribution Functions
numerical_differentiation

Numerical Differentiation
uniform_distribution

Uniform Distribution Functions
sinus_cardinal_hyperbolic_functions

Sinus Cardinal and Hyperbolic Functions
numerical_integration

Numerical Integration
skew_normal_distribution

Skew Normal Distribution Functions
beta_distribution

Beta Distribution Functions
bessel_functions

Bessel Functions, Their Derivatives, and Zeros
boostmath-package

boostmath: 'R' Bindings for the 'Boost' Math Functions
binomial_distribution

Binomial Distribution Functions
airy_functions

Airy Functions
cauchy_distribution

Cauchy Distribution Functions
bernoulli_distribution

Bernoulli Distribution Functions
arcsine_distribution

Arcsine Distribution Functions
beta_functions

Beta Functions
basic_functions

Basic Mathematical Functions
extreme_value_distribution

Extreme Value Distribution Functions
factorials_and_binomial_coefficients

Factorials and Binomial Coefficients
chi_squared_distribution

Chi-Squared Distribution Functions
elliptic_integrals

Elliptic Integrals
double_exponential_quadrature

Double Exponential Quadrature