Generating Random Floating-Point Numbers by Dividing Integers: A Case Study

  title={Generating Random Floating-Point Numbers by Dividing Integers: A Case Study},
  author={Fr{\'e}d{\'e}ric Goualard},
  journal={Computational Science – ICCS 2020},
  pages={15 - 28}
  • F. Goualard
  • Published 2020
  • Computer Science
  • Computational Science – ICCS 2020
A method widely used to obtain IEEE 754 binary floating-point numbers with a standard uniform distribution involves drawing an integer uniformly at random and dividing it by another larger integer. We survey the various instances of the algorithm that are used in actual software and point out their properties and drawbacks, particularly from the standpoint of numerical software testing and data anonymization. 
CPFloat: A C library for emulating low-precision arithmetic∗
Low-precision floating-point arithmetic can be simulated via software by executing each arithmetic operation in hardware and rounding the result to the desired number of significant bits. ForExpand
Cryptographically Privileged State Estimation With Gaussian Keystreams
A method to decrease estimation quality at an unprivileged estimator using a stream of pseudorandom Gaussian samples while leaving privileged estimation unaffected and requiring no additional transmission beyond an initial key exchange is introduced. Expand


Generating Pseudo-random Floating-Point Values
The conventional method for generating a pseudorandom floatingpoint value is to generate a pseudorandom integer and divide by a constant (using floating-point arithmetic). The problems with thisExpand
Fast generation of uniformly distributed pseudorandom numbers with floating-point representation
A new method is presented for generating uniformly distributed pesudorandom numbers with a floating-point representation. The mantissa and exponent are considered as statistically independentExpand
History of uniform random number generation
  • P. L'Ecuyer
  • Computer Science, Mathematics
  • 2017 Winter Simulation Conference (WSC)
  • 2017
A historical account on the design, implementation, and testing of uniform random number generators used for simulation is given. Expand
On significance of the least significant bits for differential privacy
A new type of vulnerability present in many implementations of differentially private mechanisms is described, based on irregularities of floating-point implementations of the privacy-preserving Laplacian mechanism, which allows one to breach differential privacy with just a few queries into the mechanism. Expand
Mersenne twister: a 623-dimensionally equidistributed uniform pseudo-random number generator
A new algorithm called Mersenne Twister (MT) is proposed for generating uniform pseudorandom numbers, which provides a super astronomical period of 2 and 623-dimensional equidistribution up to 32-bit accuracy, while using a working area of only 624 words. Expand
TestU01: A C library for empirical testing of random number generators
We introduce TestU01, a software library implemented in the ANSI C language, and offering a collection of utilities for the empirical statistical testing of uniform random number generators (RNGs).Expand
Scrambled Linear Pseudorandom Number Generators
A new test for Hamming-weight dependencies that is able to discover subtle, previously unknown biases in existing generators (in particular, in linear ones), and a number of scramblers, that is, nonlinear functions applied to the state array that reduce or delete the linear artifacts. Expand
Numerical recipes in C
The Diskette v 2.06, 3.5''[1.44M] for IBM PC, PS/2 and compatibles [DOS] Reference Record created on 2004-09-07, modified on 2016-08-08. Expand
Numerical computing with MATLAB
  • C. Moler
  • Mathematics, Computer Science
  • 2004
Using MATLAB to solve differential equations for random numbers and zeros and roots and Fourier analysis for linear equations is a simple and efficient way of solving differential equations. Expand
C Programming FAQs: Frequently Asked Questions
This chapter discusses Declarations and Initializations, Arrays and Pointers, Functions and Multidimensional Arrays, Structures, Unions, and Enumerations, and Structure Declarations, and C Preprocessor Features. Expand