R-compatible mathematics
Density, cumulative, quantile, and random-generation routines retain R's tail and logarithmic probability conventions.
Start the beginner tutorial →Follow the response-time vignette →
Probability distributions for Java
JDistlib is a Java translation of R's src/nmath,
adapted to avoid process-global mutable caches and extended with distributions
beyond the R library. Version 0.10.0 adds a unified FP64/FP32 dense and
sparse linear-algebra engine across Java CPU, oneMKL, OpenBLAS, CUDA,
OpenCL, and Vulkan, with reusable factorizations and prepared operands.
Why JDistlib
Density, cumulative, quantile, and random-generation routines retain R's tail and logarithmic probability conventions.
Start the beginner tutorial →Numerical calls use local state. Cached random algorithms accept explicit per-stream state instead of sharing mutable global caches.
Includes beta-binomial, Birnbaum-Saunders, Gompertz, half-normal, Kumaraswamy, triangular, Tweedie, Wishart, Zipf, and extreme-value families.
See all distributions and formulas →Includes adaptive finite and infinite-interval integration, optimization, splines, polynomial operations, and special functions.
Start with existing laws, then mix populations, restrict support, represent measurement limits, change units, or supply a monotone transformation with the correct Jacobian.
Open the beginner tutorial (0.6.0+) →Convert batches of p-values into FWER-adjusted values, FDR-adjusted values, reproducible decisions, or Storey q-values.
Read the 0.7.0+ guide →Build continuous, discrete, or mixed joint laws; assemble C-vines and D-vines; and fit or select dependence families.
Start the 0.7.0+ copula tutorial →Use full multi-path Pathfinder, many short chains with nested R-hat, ChEES/SNAPER adaptive static HMC, automatically tuned adjusted MCLMC, precision goals, portable checkpoints, and actionable health reports.
See the modern inference API →Calculate advanced risk and path functionals, compose tempered-stable or multivariate return laws, aggregate them exactly or numerically, fit extremes, and recover atom-aware or smooth option distributions.
Read the 0.9.0+ finance tutorial →Build on parallel FP64/FP32 dense and CSR operations, reusable Cholesky, LU, LDL', QR, eigen and SVD factors, prepared operands, and honest CPU/GPU capability reporting.
Explore the 0.10.0 engine →Bayesian inference and MCMC · 0.8.0+
Choose a complete CSV/JDM quick start, pure-Java model construction, feature examples, JDM or Stan source, introductory language material, or advanced sampling and diagnostics from one organized page.
Small API, familiar semantics
Boolean arguments follow R's lower.tail and log.p
conventions. The same shape is used consistently across distribution classes.
double p = Normal.cumulative(
1.96, 0.0, 1.0, true, false
);
double x = Normal.quantile(
0.975, 0.0, 1.0, true, false
);
Release status · 0.10.0
Version 0.10.0 supplies the dense, sparse, decomposition, batching, and prepared-operand primitives needed by future regression, REML, pedigree, graphical-model, and fine-mapping packages while keeping provider selection and numerical policy in one tested engine.
Review the linear-algebra release →