Unuran

Jul 20, 2023

Universal Non-Uniform RANdom number generators

UNU.RAN Universal Non-Uniform RAndom Number generator is a collection of algorithms for generating non-uniform pseudorandom variates as a library of C functions designed and implemented by the ARVAG Automatic Random VAriate Generation project group in Vienna, and released under the GNU Public License GPL. It is especially designed for situations where

  • a non-standard distribution or a truncated distribution is needed;
  • experiments with different types of distributions are made;
  • random variates for variance reduction techniques are used; or
  • fast generators of predictable quality are necessary.

UNU.RAN provides generators that are superior in many aspects to those found in quite a number of other libraries; however, due to its more sophisticated programming interface, it might not be as easy to use.

It uses an object-oriented interface in which distributions and generators are treated as independent objects, so that different methods for generating non-uniform random variates may be chosen according to various criteria, such as speed, quality, and variance reduction. It is flexible enough to permit sampling from non-standard distributions, such as distributions that arise in a model and can only be computed in complicated subroutines.



Checkout these related ports:
  • Zn_poly - C library for polynomial arithmetic
  • Zimpl - Language to translate the LP models into .lp or .mps
  • Zegrapher - Software for plotting mathematical objects
  • Zarray - Dynamically typed N-D expression system based on xtensor
  • Z3 - Z3 Theorem Prover
  • Yices - SMT solver
  • Yacas - Yet Another Computer Algebra System
  • Xtensor - Multi-dimensional arrays with broadcasting and lazy computing
  • Xtensor-python - Python bindings for xtensor
  • Xtensor-io - Xtensor plugin to read/write images, audio files, numpy npz and HDF5
  • Xtensor-blas - BLAS extension to xtensor
  • Xspread - Spreadsheet program for X and terminals
  • Xppaut - Graphical tool for solving differential equations, etc
  • Xplot - X11 plotting package
  • Xlife++ - XLiFE++ eXtended Library of Finite Elements in C++