Manpages - std_subtract_with_carry_engine.3

Table of Contents

NAME

std::subtract_with_carry_engine< _UIntType, __w, __s, __r > - The Marsaglia-Zaman generator.

SYNOPSIS


#include <random.h>

Public Types

typedef _UIntType result_type

Public Member Functions

template<typename _Sseq , typename = _If_seed_seq<_Sseq>> subtract_with_carry_engine (_Sseq &__q)
Constructs a subtract_with_carry_engine random number engine seeded from the seed sequence __q.

subtract_with_carry_engine (result_type __sd)
Constructs an explicitly seeded subtract_with_carry_engine random number generator.

void discard (unsigned long long __z)
Discard a sequence of random numbers.

result_type operator() ()
Gets the next random number in the sequence.

template<typename _Sseq > _If_seed_seq< _Sseq > seed (_Sseq &__q)
Seeds the initial state \(x_0\) of the % subtract_with_carry_engine random number generator.

template<typename _Sseq > auto seed (_Sseq &__q) -> _If_seed_seq< _Sseq >

void seed (result_type __sd=default_seed)
Seeds the initial state \(x_0\) of the random number generator.

Static Public Member Functions

static constexpr result_type max ()
Gets the inclusive maximum value of the range of random integers returned by this generator.

static constexpr result_type min ()
Gets the inclusive minimum value of the range of random integers returned by this generator.

Static Public Attributes

static constexpr result_type default_seed

static constexpr size_t long_lag

static constexpr size_t short_lag

static constexpr size_t word_size

Friends

template<typename _UIntType1 , size_t __w1, size_t __s1, size_t __r1, typename _CharT , typename _Traits > std::basic_ostream*< _CharT, _Traits > & *operator<< (*std::basic_ostream*< _CharT, _Traits > &__os, const *std::subtract_with_carry_engine*< _UIntType1, __w1, __s1, __r1 > &__x)
Inserts the current state of a % subtract_with_carry_engine random number generator engine __x into the output stream __os.

bool operator== (const subtract_with_carry_engine &__lhs, const subtract_with_carry_engine &__rhs)
Compares two % subtract_with_carry_engine random number generator objects of the same type for equality.

template<typename _UIntType1 , size_t __w1, size_t __s1, size_t __r1, typename _CharT , typename _Traits > std::basic_istream*< _CharT, _Traits > & *operator>> (*std::basic_istream*< _CharT, _Traits > &__is, *std::subtract_with_carry_engine*< _UIntType1, __w1, __s1, __r1 > &__x)
Extracts the current state of a % subtract_with_carry_engine random number generator engine __x from the input stream __is.

Detailed Description

“template<typename _UIntType, size_t __w, size_t __s, size_t __r>


class std::subtract_with_carry_engine< _UIntType, __w, __s, __r >“The Marsaglia-Zaman generator.

This is a model of a Generalized Fibonacci discrete random number generator, sometimes referred to as the SWC generator.

A discrete random number generator that produces pseudorandom numbers using: �

The size of the state is \(r\) and the maximum period of the generator is \((m^r - m^s - 1)\).

Definition at line 692 of file random.h.

Member Typedef Documentation

template<typename _UIntType , size_t __w, size_t __s, size_t __r>

typedef _UIntType std::subtract_with_carry_engine*< _UIntType, __w, __s, __r >::*result_type The type of the generated random value.

Definition at line 707 of file random.h.

Constructor & Destructor Documentation

template<typename _UIntType , size_t __w, size_t __s, size_t __r>

std::subtract_with_carry_engine*< _UIntType, __w, __s, __r >::*subtract_with_carry_engine ()= [inline]= Definition at line 715 of file random.h.

template<typename _UIntType , size_t __w, size_t __s, size_t __r>

std::subtract_with_carry_engine*< _UIntType, __w, __s, __r >::*subtract_with_carry_engine (result_type __sd)= [inline]=, = [explicit]= Constructs an explicitly seeded subtract_with_carry_engine random number generator.

Definition at line 723 of file random.h.

References std::subtract_with_carry_engine< _UIntType, __w, __s, __r >::seed().

template<typename _UIntType , size_t __w, size_t __s, size_t __r>

template<typename _Sseq , typename = _If_seed_seq<_Sseq>> std::subtract_with_carry_engine*< _UIntType, __w, __s, __r >::*subtract_with_carry_engine (_Sseq & __q)= [inline]=, = [explicit]= Constructs a subtract_with_carry_engine random number engine seeded from the seed sequence __q.

Parameters

__q the seed sequence.

Definition at line 734 of file random.h.

References std::subtract_with_carry_engine< _UIntType, __w, __s, __r >::seed().

Member Function Documentation

template<typename _UIntType , size_t __w, size_t __s, size_t __r>

void *std::subtract_with_carry_engine*< _UIntType, __w, __s, __r >::discard (unsigned long long __z)= [inline]= Discard a sequence of random numbers.

Definition at line 780 of file random.h.

template<typename _UIntType , size_t __w, size_t __s, size_t __r>

static constexpr result_type *std::subtract_with_carry_engine*< _UIntType, __w, __s, __r >::max ()= [inline]=, = [static]=, = [constexpr]= Gets the inclusive maximum value of the range of random integers returned by this generator.

Definition at line 773 of file random.h.

template<typename _UIntType , size_t __w, size_t __s, size_t __r>

static constexpr result_type *std::subtract_with_carry_engine*< _UIntType, __w, __s, __r >::min ()= [inline]=, = [static]=, = [constexpr]= Gets the inclusive minimum value of the range of random integers returned by this generator.

Definition at line 765 of file random.h.

template<typename _UIntType , size_t __w, size_t __s, size_t __r>

subtract_with_carry_engine*< _UIntType, __w, __s, __r >::*result_type *std::subtract_with_carry_engine*< _UIntType, __w, __s, __r >::operator() Gets the next random number in the sequence.

Definition at line 593 of file bits/random.tcc.

template<typename _UIntType , size_t __w, size_t __s, size_t __r>

template<typename _Sseq > _If_seed_seq< _Sseq > *std::subtract_with_carry_engine*< _UIntType, __w, __s, __r >::seed (_Sseq & __q) Seeds the initial state \(x_0\) of the % subtract_with_carry_engine random number generator.

“template<typename _UIntType , size_t __w, size_t __s, size_t __r>

template<typename _Sseq > auto *std::subtract_with_carry_engine*< _UIntType, __w, __s, __r >::seed (_Sseq & __q) -> _If_seed_seq<_Sseq> “

Definition at line 566 of file bits/random.tcc.

template<typename _UIntType , size_t __w, size_t __s, size_t __r>

void std::subtract_with_carry_engine*< _UIntType, __w, __s, __r >::seed (*result_type __sd = default_seed) Seeds the initial state \(x_0\) of the random number generator. N1688[4.19] modifies this as follows. If __value == 0, sets value to 19780503. In any case, with a linear congruential generator lcg(i) having parameters $ mlcg = 2147483563, alcg = 40014, clcg = 0, and lcg(0) = value $, sets $ x-r ots x-1 $ to $ lcg(1) mod m ots lcg(r) mod m $ respectively. If $ x-1 = 0 $ set carry to 1, otherwise sets carry to 0.

Definition at line 537 of file bits/random.tcc.

Referenced by std::subtract_with_carry_engine< _UIntType, __w, __s, __r >::subtract_with_carry_engine().

Friends And Related Function Documentation

template<typename _UIntType , size_t __w, size_t __s, size_t __r>

template<typename _UIntType1 , size_t __w1, size_t __s1, size_t __r1, typename _CharT , typename _Traits > *std::basic_ostream*< _CharT, _Traits > & operator<< (*std::basic_ostream*< _CharT, _Traits > & __os, const *std::subtract_with_carry_engine*< _UIntType1, __w1, __s1, __r1 > & __x)= [friend]= Inserts the current state of a % subtract_with_carry_engine random number generator engine __x into the output stream __os.

Parameters

__os An output stream.
__x A % subtract_with_carry_engine random number generator engine.

Returns

The output stream with the state of __x inserted or in an error state.

template<typename _UIntType , size_t __w, size_t __s, size_t __r>

bool operator== (const *subtract_with_carry_engine*< _UIntType, __w, __s, __r > & __lhs, const *subtract_with_carry_engine*< _UIntType, __w, __s, __r > & __rhs)= [friend]= Compares two % subtract_with_carry_engine random number generator objects of the same type for equality.

Parameters

__lhs A % subtract_with_carry_engine random number generator object.
__rhs Another % subtract_with_carry_engine random number generator object.

Returns

true if the infinite sequences of generated values would be equal, false otherwise.

Definition at line 805 of file random.h.

template<typename _UIntType , size_t __w, size_t __s, size_t __r>

template<typename _UIntType1 , size_t __w1, size_t __s1, size_t __r1, typename _CharT , typename _Traits > *std::basic_istream*< _CharT, _Traits > & operator>> (*std::basic_istream*< _CharT, _Traits > & __is, *std::subtract_with_carry_engine*< _UIntType1, __w1, __s1, __r1 > & __x)= [friend]= Extracts the current state of a % subtract_with_carry_engine random number generator engine __x from the input stream __is.

Parameters

__is An input stream.
__x A % subtract_with_carry_engine random number generator engine.

Returns

The input stream with the state of __x extracted or in an error state.

Member Data Documentation

template<typename _UIntType , size_t __w, size_t __s, size_t __r>

constexpr _UIntType std::subtract_with_carry_engine*< _UIntType, __w, __s, __r >::default_seed= [static]=, = [constexpr]= Definition at line *713 of file random.h.

template<typename _UIntType , size_t __w, size_t __s, size_t __r>

constexpr size_t std::subtract_with_carry_engine*< _UIntType, __w, __s, __r >::long_lag= [static]=, = [constexpr]= Definition at line *712 of file random.h.

template<typename _UIntType , size_t __w, size_t __s, size_t __r>

constexpr size_t std::subtract_with_carry_engine*< _UIntType, __w, __s, __r >::short_lag= [static]=, = [constexpr]= Definition at line *711 of file random.h.

template<typename _UIntType , size_t __w, size_t __s, size_t __r>

constexpr size_t std::subtract_with_carry_engine*< _UIntType, __w, __s, __r >::word_size= [static]=, = [constexpr]= Definition at line *710 of file random.h.

Author

Generated automatically by Doxygen for libstdc++ from the source code.

Author: dt

Created: 2022-02-20 Sun 21:19