Random Variables Sampling or evaluating random variables for simulation. This module implements the evaluation (also known as sampling) of random variables with various distributions. It specialises on restricted support PDFs, since this is required for the ProposingExecutor. Random variables and their simulation is a highly involved topic and we give credit to the sources from which this module stems: 1) Implementation of a random number generator from Stave Park and Dave Geyer, which we use in original form up to minor cosmetic changes. 2) 3) Gaussian CDF by an aproximation that we found in "Handbook of Mathematical Functions" by Abromowitz and Stegun. All sources were available freely and we did not find any restricting licensing terms. Thanks! Regarding 1), from the header of rngs.c This is an ANSI C library for multi-stream random number generation. The streams must be initialized. The recommended way to do this is by using the function PlantSeeds(x) with the value of x used to initialize the default stream and all other streams initialized automatically with values dependent on the value of x. The following convention is used to initialize the default stream: "Random Number Generators: Good Ones Are Hard To Find" \n Steve Park and Keith Miller \n Communications of the ACM, October 1988 \n Name : rngs.c (Random Number Generation - Multiple Streams) Regarding 2), from the header of rngs.c This function returns an approximation of the inverse cumulative standard normal distribution function. I.e., given P, it returns an approximation to the X satisfying P = Pr{Z <= X} where Z is a random variable from the standard normal distribution. The algorithm uses a minimax approximation by rational functions and the result has a relative error whose absolute value is less than 1.15e-9. Author: Peter J. Acklam Regarding 3) found as code example in Wikipedia {@ libFAUDES 2.31h --- 2024.01.29 --- c++ api documentaion by doxygen |