## ----include = FALSE---------------------------------------------------------- knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) ## ----setup, include=FALSE----------------------------------------------------- library(boostmath) ## ----------------------------------------------------------------------------- bernoulli_b2n(10) max_bernoulli_b2n() unchecked_bernoulli_b2n(10) bernoulli_b2n(start_index = 0, number_of_bernoullis_b2n = 10) tangent_t2n(10) tangent_t2n(start_index = 0, number_of_tangent_t2n = 10) prime(10) max_prime() fibonacci(10) unchecked_fibonacci(10) ## ----------------------------------------------------------------------------- # Gamma function for z = 5 tgamma(5) # Gamma function for (1 + z) - 1, where z = 5 tgamma1pm1(5) # Logarithm of the gamma function for z = 5 lgamma_boost(5) # Digamma function for z = 5 digamma_boost(5) # Trigamma function for z = 5 trigamma_boost(5) # Polygamma function of order 1 for z = 5 polygamma(1, 5) # Ratio of gamma functions for a = 5, b = 3 tgamma_ratio(5, 3) # Ratio of gamma functions with delta for a = 5, delta = 2 tgamma_delta_ratio(5, 2) # Normalised lower incomplete gamma function P(a, z) for a = 5, z = 2 gamma_p(5, 2) # Normalised upper incomplete gamma function Q(a, z) for a = 5, z = 2 gamma_q(5, 2) # Full lower incomplete gamma function for a = 5, z = 2 tgamma_lower(5, 2) # Full upper incomplete gamma function for a = 5, z = 2 tgamma_upper(5, 2) # Inverse of the normalised upper incomplete gamma function for a = 5, q = 0.5 gamma_q_inv(5, 0.5) # Inverse of the normalised lower incomplete gamma function for a = 5, p = 0.5 gamma_p_inv(5, 0.5) # Inverse of the normalised upper incomplete gamma function with respect to a for z = 2, q = 0.5 gamma_q_inva(2, 0.5) # Inverse of the normalised lower incomplete gamma function with respect to a for z = 2, p = 0.5 gamma_p_inva(2, 0.5) # Derivative of the normalised upper incomplete gamma function for a = 5, z = 2 gamma_p_derivative(5, 2) ## ----------------------------------------------------------------------------- # Factorial of 5 factorial_boost(5) # Unchecked factorial of 5 (using table lookup) unchecked_factorial(5) # Maximum factorial value that can be computed max_factorial() # Double factorial of 6 double_factorial(6) # Rising factorial of 3 with exponent 2 rising_factorial(3, 2) # Falling factorial of 3 with exponent 2 falling_factorial(3, 2) # Binomial coefficient "5 choose 2" binomial_coefficient(5, 2) ## ----------------------------------------------------------------------------- # Euler beta function B(2, 3) beta_boost(2, 3) # Normalised incomplete beta function I_x(2, 3) for x = 0.5 ibeta(2, 3, 0.5) # Normalised complement of the incomplete beta function 1 - I_x(2, 3) for x = 0.5 ibetac(2, 3, 0.5) # Full incomplete beta function B_x(2, 3) for x = 0.5 beta_boost(2, 3, 0.5) # Full complement of the incomplete beta function 1 - B_x(2, 3) for x = 0.5 betac(2, 3, 0.5) # Inverse of the normalised incomplete beta function I_x(2, 3) = 0.5 ibeta_inv(2, 3, 0.5) # Inverse of the normalised complement of the incomplete beta function I_x(2, 3) = 0.5 ibetac_inv(2, 3, 0.5) # Inverse of the normalised complement of the incomplete beta function I_x(a, b) # with respect to a for x = 0.5 and q = 0.5 ibetac_inva(3, 0.5, 0.5) # Inverse of the normalised incomplete beta function I_x(a, b) # with respect to b for x = 0.5 and p = 0.5 ibeta_invb(0.8, 0.5, 0.5) # Inverse of the normalised complement of the incomplete beta function I_x(a, b) # with respect to b for x = 0.5 and q = 0.5 ibetac_invb(2, 0.5, 0.5) # Derivative of the incomplete beta function with respect to x for a = 2, b = 3, x = 0.5 ibeta_derivative(2, 3, 0.5) ## ----------------------------------------------------------------------------- # Error function erf(0.5) # Complementary error function erfc(0.5) # Inverse error function erf_inv(0.5) # Inverse complementary error function erfc_inv(0.5) ## ----------------------------------------------------------------------------- # Legendre polynomial of the first kind P_2(0.5) legendre_p(2, 0.5) # Derivative of the Legendre polynomial of the first kind P_2'(0.5) legendre_p_prime(2, 0.5) # Zeros of the Legendre polynomial of the first kind P_2 legendre_p_zeros(2) # Legendre polynomial of the first kind with order 1 P_2^1(0.5) legendre_p_m(2, 1, 0.5) # Legendre polynomial of the second kind Q_2(0.5) legendre_q(2, 0.5) # Next Legendre polynomial of the first kind P_3(0.5) using P_2(0.5) and P_1(0.5) legendre_next(2, 0.5, legendre_p(2, 0.5), legendre_p(1, 0.5)) # Next Legendre polynomial of the first kind with order 1 P_3^1(0.5) using P_2^1(0.5) and P_1^1(0.5) legendre_next_m(2, 1, 0.5, legendre_p_m(2, 1, 0.5), legendre_p_m(1, 1, 0.5)) # Laguerre polynomial of the first kind L_2(0.5) laguerre(2, 0.5) # Laguerre polynomial of the first kind with order 1 L_2^1(0.5) laguerre_m(2, 1, 0.5) # Next Laguerre polynomial of the first kind L_3(0.5) using L_2(0.5) and L_1(0.5) laguerre_next(2, 0.5, laguerre(2, 0.5), laguerre(1, 0.5)) # Next Laguerre polynomial of the first kind with order 1 L_3^1(0.5) using L_2^1(0.5) and L_1^1(0.5) laguerre_next_m(2, 1, 0.5, laguerre_m(2, 1, 0.5), laguerre_m(1, 1, 0.5)) # Hermite polynomial H_2(0.5) hermite(2, 0.5) # Next Hermite polynomial H_3(0.5) using H_2(0.5) and H_1(0.5) hermite_next(2, 0.5, hermite(2, 0.5), hermite(1, 0.5)) # Chebyshev polynomial of the first kind T_2(0.5) chebyshev_t(2, 0.5) # Chebyshev polynomial of the second kind U_2(0.5) chebyshev_u(2, 0.5) # Derivative of the Chebyshev polynomial of the first kind T_2'(0.5) chebyshev_t_prime(2, 0.5) # Next Chebyshev polynomial of the first kind T_3(0.5) using T_2(0.5) and T_1(0.5) chebyshev_next(0.5, chebyshev_t(2, 0.5), chebyshev_t(1, 0.5)) # Chebyshev polynomial of the first kind using Clenshaw's recurrence with coefficients # c = c(1, 0, -1) at x = 0.5 chebyshev_clenshaw_recurrence(c(1, 0, -1), 0.5) # Chebyshev polynomial of the first kind using Clenshaw's recurrence with interval [0, 1] chebyshev_clenshaw_recurrence_ab(c(1, 0, -1), 0, 1, 0.5) # Spherical harmonic function Y_2^1(0.5, 0.5) spherical_harmonic(2, 1, 0.5, 0.5) # Real part of the spherical harmonic function Y_2^1(0.5, 0.5) spherical_harmonic_r(2, 1, 0.5, 0.5) # Imaginary part of the spherical harmonic function Y_2^1(0.5, 0.5) spherical_harmonic_i(2, 1, 0.5, 0.5) # Gegenbauer polynomial C_2^(1)(0.5) gegenbauer(2, 1, 0.5) # Derivative of the Gegenbauer polynomial C_2^(1)'(0.5) gegenbauer_prime(2, 1, 0.5) # k-th derivative of the Gegenbauer polynomial C_2^(1)''(0.5) gegenbauer_derivative(2, 1, 0.5, 2) # Jacobi polynomial P_2^(1, 2)(0.5) jacobi(2, 1, 2, 0.5) # Derivative of the Jacobi polynomial P_2^(1, 2)'(0.5) jacobi_prime(2, 1, 2, 0.5) # Second derivative of the Jacobi polynomial P_2^(1, 2)''(0.5) jacobi_double_prime(2, 1, 2, 0.5) # 3rd derivative of the Jacobi polynomial P_2^(1, 2)^(k)(0.5) jacobi_derivative(2, 1, 2, 0.5, 3) ## ----------------------------------------------------------------------------- # Bessel function of the first kind J_0(1) cyl_bessel_j(0, 1) # Bessel function of the second kind Y_0(1) cyl_neumann(0, 1) # Modified Bessel function of the first kind I_0(1) cyl_bessel_i(0, 1) # Modified Bessel function of the second kind K_0(1) cyl_bessel_k(0, 1) # Spherical Bessel function of the first kind j_0(1) sph_bessel(0, 1) # Spherical Bessel function of the second kind y_0(1) sph_neumann(0, 1) # Derivative of the Bessel function of the first kind J_0(1) cyl_bessel_j_prime(0, 1) # Derivative of the Bessel function of the second kind Y_0(1) cyl_neumann_prime(0, 1) # Derivative of the modified Bessel function of the first kind I_0(1) cyl_bessel_i_prime(0, 1) # Derivative of the modified Bessel function of the second kind K_0(1) cyl_bessel_k_prime(0, 1) # Derivative of the spherical Bessel function of the first kind j_0(1) sph_bessel_prime(0, 1) # Derivative of the spherical Bessel function of the second kind y_0(1) sph_neumann_prime(0, 1) # Finding the first zero of the Bessel function of the first kind J_0 cyl_bessel_j_zero(0, 1) # Finding the first zero of the Bessel function of the second kind Y_0 cyl_neumann_zero(0, 1) # Finding multiple zeros of the Bessel function of the first kind J_0 starting from index 1 cyl_bessel_j_zero(0, start_index = 1, number_of_zeros = 5) # Finding multiple zeros of the Bessel function of the second kind Y_0 starting from index 1 cyl_neumann_zero(0, start_index = 1, number_of_zeros = 5) ## ----------------------------------------------------------------------------- cyl_hankel_1(2, 0.5) cyl_hankel_2(2, 0.5) sph_hankel_1(2, 0.5) sph_hankel_2(2, 0.5) ## ----------------------------------------------------------------------------- airy_ai(2) airy_bi(2) airy_ai_prime(2) airy_bi_prime(2) airy_ai_zero(1) airy_bi_zero(1) airy_ai_zero(start_index = 1, number_of_zeros = 5) airy_bi_zero(start_index = 1, number_of_zeros = 5) ## ----------------------------------------------------------------------------- # Carlson's elliptic integral Rf with parameters x = 1, y = 2, z = 3 ellint_rf(1, 2, 3) # Carlson's elliptic integral Rd with parameters x = 1, y = 2, z = 3 ellint_rd(1, 2, 3) # Carlson's elliptic integral Rj with parameters x = 1, y = 2, z = 3, p = 4 ellint_rj(1, 2, 3, 4) # Carlson's elliptic integral Rc with parameters x = 1, y = 2 ellint_rc(1, 2) # Carlson's elliptic integral Rg with parameters x = 1, y = 2, z = 3 ellint_rg(1, 2, 3) # Incomplete elliptic integral of the first kind with k = 0.5, phi = pi/4 ellint_1(0.5, pi / 4) # Complete elliptic integral of the first kind ellint_1(0.5) # Incomplete elliptic integral of the second kind with k = 0.5, phi = pi/4 ellint_2(0.5, pi / 4) # Complete elliptic integral of the second kind ellint_2(0.5) # Incomplete elliptic integral of the third kind with k = 0.5, n = 0.5, phi = pi/4 ellint_3(0.5, 0.5, pi / 4) # Complete elliptic integral of the third kind with k = 0.5, n = 0.5 ellint_3(0.5, 0.5) # Incomplete elliptic integral D with k = 0.5, phi = pi/4 ellint_d(0.5, pi / 4) # Complete elliptic integral D ellint_d(0.5) # Jacobi zeta function with k = 0.5, phi = pi/4 jacobi_zeta(0.5, pi / 4) # Heuman's lambda function with k = 0.5, phi = pi/4 heuman_lambda(0.5, pi / 4) ## ----------------------------------------------------------------------------- # Jacobi Elliptic Functions k <- 0.5 u <- 2 jacobi_elliptic(k, u) # Individual Jacobi Elliptic Functions jacobi_cd(k, u) jacobi_cn(k, u) jacobi_cs(k, u) jacobi_dc(k, u) jacobi_dn(k, u) jacobi_ds(k, u) jacobi_nc(k, u) jacobi_nd(k, u) jacobi_ns(k, u) jacobi_sc(k, u) jacobi_sd(k, u) jacobi_sn(k, u) ## ----------------------------------------------------------------------------- # Jacobi Theta Functions x <- 0.5 q <- 0.9 tau <- 1.5 jacobi_theta1(x, q) jacobi_theta1tau(x, tau) jacobi_theta2(x, q) jacobi_theta2tau(x, tau) jacobi_theta3(x, q) jacobi_theta3tau(x, tau) jacobi_theta3m1(x, q) jacobi_theta3m1tau(x, tau) jacobi_theta4(x, q) jacobi_theta4tau(x, tau) jacobi_theta4m1(x, q) jacobi_theta4m1tau(x, tau) ## ----------------------------------------------------------------------------- # Lambert W Function (Principal Branch) lambert_w0(0.3) # Lambert W Function (Branch -1) lambert_wm1(-0.3) # Derivative of the Lambert W Function (Principal Branch) lambert_w0_prime(0.3) # Derivative of the Lambert W Function (Branch -1) lambert_wm1_prime(-0.3) ## ----------------------------------------------------------------------------- # Riemann Zeta Function zeta(2) # Should return pi^2 / 6 ## ----------------------------------------------------------------------------- # Exponential integral En with n = 1 and z = 2 expint_en(1, 2) # Exponential integral Ei with z = 2 expint_ei(2) ## ----------------------------------------------------------------------------- # Hypergeometric Function 1F0 hypergeometric_1F0(2, 0.2) # Hypergeometric Function 0F1 hypergeometric_0F1(1, 0.8) # Hypergeometric Function 2F0 hypergeometric_2F0(0.1, -1, 0.1) # Hypergeometric Function 1F1 hypergeometric_1F1(2, 3, 1) # Regularised Hypergeometric Function 1F1 hypergeometric_1F1_regularized(2, 3, 1) # Logarithm of the Hypergeometric Function 1F1 log_hypergeometric_1F1(2, 3, 1) # Hypergeometric Function pFq hypergeometric_pFq(c(2, 3), c(4, 5), 6) ## ----------------------------------------------------------------------------- # sin(pi * 0.5) sin_pi(0.5) # cos(pi * 0.5) cos_pi(0.5) # log(1 + 0.5) log1p_boost(0.5) # exp(0.5) - 1 expm1_boost(0.5) cbrt(8) # sqrt(1 + 0.5) - 1 sqrt1pm1(0.5) # 2^3 - 1 powm1(2, 3) hypot(3, 4) rsqrt(4) ## ----------------------------------------------------------------------------- # Sinus cardinal function sinc_pi(0.5) # Hyperbolic sinus cardinal function sinhc_pi(0.5) ## ----------------------------------------------------------------------------- # Inverse Hyperbolic Cosine acosh_boost(2) # Inverse Hyperbolic Sine asinh_boost(1) # Inverse Hyperbolic Tangent atanh_boost(0.5) ## ----------------------------------------------------------------------------- # Owens T Function owens_t(1, 0.5)