v CONTENTS CONTENTS
4.7.4 Pointer modifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.8 Other transformations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.9 Implementation requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
5 Numerical facilities 45
5.1 Random number generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
5.1.1 Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
5.1.2 Header <random> synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5.1.3 Class template variate_generator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
5.1.4 Random number engine class templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
5.1.4.1 Class template linear_congruential . . . . . . . . . . . . . . . . . . . . . . . . 53
5.1.4.2 Class template mersenne_twister . . . . . . . . . . . . . . . . . . . . . . . . . . 54
5.1.4.3 Class template subtract_with_carry . . . . . . . . . . . . . . . . . . . . . . . . 55
5.1.4.4 Class template subtract_with_carry_01 . . . . . . . . . . . . . . . . . . . . . . 57
5.1.4.5 Class template discard_block . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
5.1.4.6 Class template xor_combine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
5.1.5 Engines with predefined parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
5.1.6 Class random_device . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
5.1.7 Random distribution class templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
5.1.7.1 Class template uniform_int . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
5.1.7.2 Class bernoulli_distribution . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
5.1.7.3 Class template geometric_distribution . . . . . . . . . . . . . . . . . . . . . . 65
5.1.7.4 Class template poisson_distribution . . . . . . . . . . . . . . . . . . . . . . . . 65
5.1.7.5 Class template binomial_distribution . . . . . . . . . . . . . . . . . . . . . . . 66
5.1.7.6 Class template uniform_real . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
5.1.7.7 Class template exponential_distribution . . . . . . . . . . . . . . . . . . . . . 67
5.1.7.8 Class template normal_distribution . . . . . . . . . . . . . . . . . . . . . . . . 68
5.1.7.9 Class template gamma_distribution . . . . . . . . . . . . . . . . . . . . . . . . . 69
5.2 Mathematical special functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
5.2.1 Additions to header <cmath> synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
5.2.1.1 associated Laguerre polynomials . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
5.2.1.2 associated Legendre functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
5.2.1.3 beta function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
5.2.1.4 (complete) elliptic integral of the first kind . . . . . . . . . . . . . . . . . . . . . . . 74
5.2.1.5 (complete) elliptic integral of the second kind . . . . . . . . . . . . . . . . . . . . . 74
5.2.1.6 (complete) elliptic integral of the third kind . . . . . . . . . . . . . . . . . . . . . . . 75
5.2.1.7 confluent hypergeometric functions . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
5.2.1.8 regular modified cylindrical Bessel functions . . . . . . . . . . . . . . . . . . . . . . 75
5.2.1.9 cylindrical Bessel functions (of the first kind) . . . . . . . . . . . . . . . . . . . . . 75
5.2.1.10 irregular modified cylindrical Bessel functions . . . . . . . . . . . . . . . . . . . . . 76
5.2.1.11 cylindrical Neumann functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
5.2.1.12 (incomplete) elliptic integral of the first kind . . . . . . . . . . . . . . . . . . . . . . 77
5.2.1.13 (incomplete) elliptic integral of the second kind . . . . . . . . . . . . . . . . . . . . 77
5.2.1.14 (incomplete) elliptic integral of the third kind . . . . . . . . . . . . . . . . . . . . . 77
5.2.1.15 exponential integral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
5.2.1.16 Hermite polynomials . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
ISO/IEC DTR 19768