as-random icon indicating copy to clipboard operation
as-random copied to clipboard

Generate random numbers with various distributions in AssemblyScript

AssemblyScript Random Library

Generate random numbers with various distributions. Also provide some common probability functions for such distributions.

Status

Work in Progress. Untested

Features

  • Expose fast integer random generator with proper range reduction
  • Use most novel and fast algorithms for all kind of distributions
  • Support random variable generators and its statistic functions like PDF, CDF, stddev and etc
  • All input parameters are valid and don't throw exceptions
  • All distributions in integer namespace (Randomi32 / Randomi64)
    don't use floating point arithmetics

Usage

import { Randf64 } from "as-random";

const rndSample = Randf64.normal();
const pdfSample = Randf64.normal.pdf(0.5);
const cdfSample = Randf64.normal.cdf(0.5);
const median1   = Randf64.normal.quantile(0.5);
const median2   = Randf64.normal.median();

Discrete integer distributions

  • Uniform (in interval)
  • Bernoulli
  • Boolean

Floating point distributions

  • Uniform (in interval)
  • Alpha-Stable
  • Bernoulli
  • Beta
  • Beta-Prime
  • Binominal
  • Cauchy
  • Chi
  • Chi-Square
  • Exponential
  • von Mises (von Mises-Fisher with d = 2)
  • Frechet
  • Gamma
  • Geometric
  • Gumbel
  • Laplace
  • Log-Normal
  • Logistic
  • Maxwell (Maxwell-Boltzmann)
  • Normal (Gaussian)
  • Pareto
  • Poisson
  • Rayleigh
  • Snedecor's F
  • Student's T
  • Triangular
  • Weibull