.TH "std::mersenne_twister_engine< _UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f >" 3cxx "libstdc++" \" -*- nroff -*- .ad l .nh .SH NAME std::mersenne_twister_engine< _UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f > .SH SYNOPSIS .br .PP .PP \fC#include \fP .SS "Public Types" .in +1c .ti -1c .RI "\fBtypedef\fP _UIntType \fBresult_type\fP" .br .in -1c .SS "Public Member Functions" .in +1c .ti -1c .RI "template<\fBtypename\fP \fB_Sseq\fP , \fBtypename\fP = _If_seed_seq<_Sseq>> \fBmersenne_twister_engine\fP (\fB_Sseq\fP &__q)" .br .RI "Constructs a mersenne_twister_engine random number generator engine seeded from the seed sequence \fC__q\fP\&. " .ti -1c .RI "\fBmersenne_twister_engine\fP (\fBresult_type\fP \fB__sd\fP)" .br .ti -1c .RI "\fBvoid\fP \fBdiscard\fP (unsigned long long \fB__z\fP)" .br .RI "Discard a sequence of random numbers\&. " .ti -1c .RI "\fBresult_type\fP \fBoperator()\fP ()" .br .ti -1c .RI "template<\fBtypename\fP \fB_Sseq\fP > _If_seed_seq< \fB_Sseq\fP > \fBseed\fP (\fB_Sseq\fP &__q)" .br .ti -1c .RI "template<\fBtypename\fP \fB_Sseq\fP > \fBauto\fP \fBseed\fP (\fB_Sseq\fP &__q) \-> _If_seed_seq< \fB_Sseq\fP >" .br .ti -1c .RI "\fBvoid\fP \fBseed\fP (\fBresult_type\fP \fB__sd\fP=default_seed)" .br .in -1c .SS "Static Public Member Functions" .in +1c .ti -1c .RI "\fBstatic\fP \fBconstexpr\fP \fBresult_type\fP \fBmax\fP ()" .br .RI "Gets the largest possible value in the output range\&. " .ti -1c .RI "\fBstatic\fP \fBconstexpr\fP \fBresult_type\fP \fBmin\fP ()" .br .RI "Gets the smallest possible value in the output range\&. " .in -1c .SS "Static Public Attributes" .in +1c .ti -1c .RI "\fBstatic\fP \fBconstexpr\fP \fBresult_type\fP \fBdefault_seed\fP" .br .ti -1c .RI "\fBstatic\fP \fBconstexpr\fP \fBresult_type\fP \fBinitialization_multiplier\fP" .br .ti -1c .RI "\fBstatic\fP \fBconstexpr\fP size_t \fBmask_bits\fP" .br .ti -1c .RI "\fBstatic\fP \fBconstexpr\fP size_t \fBshift_size\fP" .br .ti -1c .RI "\fBstatic\fP \fBconstexpr\fP size_t \fBstate_size\fP" .br .ti -1c .RI "\fBstatic\fP \fBconstexpr\fP \fBresult_type\fP \fBtempering_b\fP" .br .ti -1c .RI "\fBstatic\fP \fBconstexpr\fP \fBresult_type\fP \fBtempering_c\fP" .br .ti -1c .RI "\fBstatic\fP \fBconstexpr\fP \fBresult_type\fP \fBtempering_d\fP" .br .ti -1c .RI "\fBstatic\fP \fBconstexpr\fP size_t \fBtempering_l\fP" .br .ti -1c .RI "\fBstatic\fP \fBconstexpr\fP size_t \fBtempering_s\fP" .br .ti -1c .RI "\fBstatic\fP \fBconstexpr\fP size_t \fBtempering_t\fP" .br .ti -1c .RI "\fBstatic\fP \fBconstexpr\fP size_t \fBtempering_u\fP" .br .ti -1c .RI "\fBstatic\fP \fBconstexpr\fP size_t \fBword_size\fP" .br .ti -1c .RI "\fBstatic\fP \fBconstexpr\fP \fBresult_type\fP \fBxor_mask\fP" .br .in -1c .SS "Friends" .in +1c .ti -1c .RI "template<\fBtypename\fP \fB_UIntType1\fP , size_t __w1, size_t __n1, size_t __m1, size_t __r1, \fB_UIntType1\fP __a1, size_t __u1, \fB_UIntType1\fP __d1, size_t __s1, \fB_UIntType1\fP __b1, size_t __t1, \fB_UIntType1\fP __c1, size_t __l1, \fB_UIntType1\fP __f1, \fBtypename\fP _CharT , \fBtypename\fP _Traits > \fBstd::basic_ostream\fP< _CharT, _Traits > & \fBoperator<<\fP (\fBstd::basic_ostream\fP< _CharT, _Traits > &\fB__os\fP, \fBconst\fP \fBstd::mersenne_twister_engine\fP< \fB_UIntType1\fP, \fB__w1\fP, \fB__n1\fP, \fB__m1\fP, \fB__r1\fP, \fB__a1\fP, \fB__u1\fP, \fB__d1\fP, \fB__s1\fP, \fB__b1\fP, \fB__t1\fP, \fB__c1\fP, \fB__l1\fP, \fB__f1\fP > &__x)" .br .RI "Inserts the current state of a % mersenne_twister_engine random number generator engine \fC__x\fP into the output stream \fC__os\fP\&. " .ti -1c .RI "bool \fBoperator==\fP (\fBconst\fP \fBmersenne_twister_engine\fP &\fB__lhs\fP, \fBconst\fP \fBmersenne_twister_engine\fP &\fB__rhs\fP)" .br .RI "Compares two % mersenne_twister_engine random number generator objects of the same type for equality\&. " .ti -1c .RI "template<\fBtypename\fP \fB_UIntType1\fP , size_t __w1, size_t __n1, size_t __m1, size_t __r1, \fB_UIntType1\fP __a1, size_t __u1, \fB_UIntType1\fP __d1, size_t __s1, \fB_UIntType1\fP __b1, size_t __t1, \fB_UIntType1\fP __c1, size_t __l1, \fB_UIntType1\fP __f1, \fBtypename\fP _CharT , \fBtypename\fP _Traits > \fBstd::basic_istream\fP< _CharT, _Traits > & \fBoperator>>\fP (\fBstd::basic_istream\fP< _CharT, _Traits > &\fB__is\fP, \fBstd::mersenne_twister_engine\fP< \fB_UIntType1\fP, \fB__w1\fP, \fB__n1\fP, \fB__m1\fP, \fB__r1\fP, \fB__a1\fP, \fB__u1\fP, \fB__d1\fP, \fB__s1\fP, \fB__b1\fP, \fB__t1\fP, \fB__c1\fP, \fB__l1\fP, \fB__f1\fP > &__x)" .br .RI "Extracts the current state of a % mersenne_twister_engine random number generator engine \fC__x\fP from the input stream \fC__is\fP\&. " .in -1c .SH "Detailed Description" .PP .SS "template<\fBtypename\fP _UIntType, size_t __w, size_t __n, size_t __m, size_t __r, _UIntType __a, size_t __u, _UIntType __d, size_t __s, _UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f> .br class std::mersenne_twister_engine< _UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f >"A generalized feedback shift register discrete random number generator\&. .PP This algorithm avoids multiplication and division and is designed to be friendly to a pipelined architecture\&. If the parameters are chosen correctly, this generator will produce numbers with a very long period and fairly good apparent entropy, although still not cryptographically strong\&. .PP The best way to use this generator is with the predefined mt19937 class\&. .PP This algorithm was originally invented by Makoto Matsumoto and Takuji Nishimura\&. .PP \fBTemplate Parameters\fP .RS 4 \fI__w\fP Word size, the number of bits in each element of the state vector\&. .br \fI__n\fP The degree of recursion\&. .br \fI__m\fP The period parameter\&. .br \fI__r\fP The separation point bit index\&. .br \fI__a\fP The last row of the twist matrix\&. .br \fI__u\fP The first right-shift tempering matrix parameter\&. .br \fI__d\fP The first right-shift tempering matrix mask\&. .br \fI__s\fP The first left-shift tempering matrix parameter\&. .br \fI__b\fP The first left-shift tempering matrix mask\&. .br \fI__t\fP The second left-shift tempering matrix parameter\&. .br \fI__c\fP The second left-shift tempering matrix mask\&. .br \fI__l\fP The second right-shift tempering matrix parameter\&. .br \fI__f\fP Initialization multiplier\&. .RE .PP .SH "Member Typedef Documentation" .PP .SS "template<\fBtypename\fP _UIntType , size_t __w, size_t __n, size_t __m, size_t __r, _UIntType __a, size_t __u, _UIntType __d, size_t __s, _UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f> \fBtypedef\fP _UIntType \fBstd::mersenne_twister_engine\fP< _UIntType, \fB__w\fP, __n, \fB__m\fP, __r, __a, \fB__u\fP, __d, \fB__s\fP, __b, __t, __c, \fB__l\fP, __f >::result_type" The type of the generated random value\&. .SH "Constructor & Destructor Documentation" .PP .SS "template<\fBtypename\fP _UIntType , size_t __w, size_t __n, size_t __m, size_t __r, _UIntType __a, size_t __u, _UIntType __d, size_t __s, _UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f> template<\fBtypename\fP \fB_Sseq\fP , \fBtypename\fP = _If_seed_seq<_Sseq>> \fBstd::mersenne_twister_engine\fP< _UIntType, \fB__w\fP, __n, \fB__m\fP, __r, __a, \fB__u\fP, __d, \fB__s\fP, __b, __t, __c, \fB__l\fP, __f >::mersenne_twister_engine (\fB_Sseq\fP & __q)\fC [inline]\fP, \fC [explicit]\fP" .PP Constructs a mersenne_twister_engine random number generator engine seeded from the seed sequence \fC__q\fP\&. .PP \fBParameters\fP .RS 4 \fI__q\fP the seed sequence\&. .RE .PP .SH "Member Function Documentation" .PP .SS "template<\fBtypename\fP _UIntType , size_t __w, size_t __n, size_t __m, size_t __r, _UIntType __a, size_t __u, _UIntType __d, size_t __s, _UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f> \fBvoid\fP \fBstd::mersenne_twister_engine\fP< _UIntType, \fB__w\fP, __n, \fB__m\fP, __r, __a, \fB__u\fP, __d, \fB__s\fP, __b, __t, __c, \fB__l\fP, __f >::discard (unsigned long long __z)" .PP Discard a sequence of random numbers\&. .SS "template<\fBtypename\fP _UIntType , size_t __w, size_t __n, size_t __m, size_t __r, _UIntType __a, size_t __u, _UIntType __d, size_t __s, _UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f> \fBstatic\fP \fBconstexpr\fP \fBresult_type\fP \fBstd::mersenne_twister_engine\fP< _UIntType, \fB__w\fP, __n, \fB__m\fP, __r, __a, \fB__u\fP, __d, \fB__s\fP, __b, __t, __c, \fB__l\fP, __f >::max ()\fC [inline]\fP, \fC [static]\fP, \fC [constexpr]\fP" .PP Gets the largest possible value in the output range\&. .SS "template<\fBtypename\fP _UIntType , size_t __w, size_t __n, size_t __m, size_t __r, _UIntType __a, size_t __u, _UIntType __d, size_t __s, _UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f> \fBstatic\fP \fBconstexpr\fP \fBresult_type\fP \fBstd::mersenne_twister_engine\fP< _UIntType, \fB__w\fP, __n, \fB__m\fP, __r, __a, \fB__u\fP, __d, \fB__s\fP, __b, __t, __c, \fB__l\fP, __f >::min ()\fC [inline]\fP, \fC [static]\fP, \fC [constexpr]\fP" .PP Gets the smallest possible value in the output range\&. .SH "Friends And Related Symbol Documentation" .PP .SS "template<\fBtypename\fP _UIntType , size_t __w, size_t __n, size_t __m, size_t __r, _UIntType __a, size_t __u, _UIntType __d, size_t __s, _UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f> template<\fBtypename\fP \fB_UIntType1\fP , size_t __w1, size_t __n1, size_t __m1, size_t __r1, \fB_UIntType1\fP __a1, size_t __u1, \fB_UIntType1\fP __d1, size_t __s1, \fB_UIntType1\fP __b1, size_t __t1, \fB_UIntType1\fP __c1, size_t __l1, \fB_UIntType1\fP __f1, \fBtypename\fP _CharT , \fBtypename\fP _Traits > \fBstd::basic_ostream\fP< _CharT, _Traits > & \fBoperator\fP<< (\fBstd::basic_ostream\fP< _CharT, _Traits > & __os, \fBconst\fP \fBstd::mersenne_twister_engine\fP< \fB_UIntType1\fP, \fB__w1\fP, \fB__n1\fP, \fB__m1\fP, \fB__r1\fP, \fB__a1\fP, \fB__u1\fP, \fB__d1\fP, \fB__s1\fP, \fB__b1\fP, \fB__t1\fP, \fB__c1\fP, \fB__l1\fP, \fB__f1\fP > & __x)\fC [friend]\fP" .PP Inserts the current state of a % mersenne_twister_engine random number generator engine \fC__x\fP into the output stream \fC__os\fP\&. .PP \fBParameters\fP .RS 4 \fI__os\fP An output stream\&. .br \fI__x\fP A % mersenne_twister_engine random number generator engine\&. .RE .PP \fBReturns\fP .RS 4 The output stream with the state of \fC__x\fP inserted or in an error state\&. .RE .PP .SS "template<\fBtypename\fP _UIntType , size_t __w, size_t __n, size_t __m, size_t __r, _UIntType __a, size_t __u, _UIntType __d, size_t __s, _UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f> bool \fBoperator\fP== (\fBconst\fP \fBmersenne_twister_engine\fP< _UIntType, \fB__w\fP, __n, \fB__m\fP, __r, __a, \fB__u\fP, __d, \fB__s\fP, __b, __t, __c, \fB__l\fP, __f > & __lhs, \fBconst\fP \fBmersenne_twister_engine\fP< _UIntType, \fB__w\fP, __n, \fB__m\fP, __r, __a, \fB__u\fP, __d, \fB__s\fP, __b, __t, __c, \fB__l\fP, __f > & __rhs)\fC [friend]\fP" .PP Compares two % mersenne_twister_engine random number generator objects of the same type for equality\&. .PP \fBParameters\fP .RS 4 \fI__lhs\fP A % mersenne_twister_engine random number generator object\&. .br \fI__rhs\fP Another % mersenne_twister_engine random number generator object\&. .RE .PP \fBReturns\fP .RS 4 true if the infinite sequences of generated values would be equal, false otherwise\&. .RE .PP .SS "template<\fBtypename\fP _UIntType , size_t __w, size_t __n, size_t __m, size_t __r, _UIntType __a, size_t __u, _UIntType __d, size_t __s, _UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f> template<\fBtypename\fP \fB_UIntType1\fP , size_t __w1, size_t __n1, size_t __m1, size_t __r1, \fB_UIntType1\fP __a1, size_t __u1, \fB_UIntType1\fP __d1, size_t __s1, \fB_UIntType1\fP __b1, size_t __t1, \fB_UIntType1\fP __c1, size_t __l1, \fB_UIntType1\fP __f1, \fBtypename\fP _CharT , \fBtypename\fP _Traits > \fBstd::basic_istream\fP< _CharT, _Traits > & \fBoperator\fP>> (\fBstd::basic_istream\fP< _CharT, _Traits > & __is, \fBstd::mersenne_twister_engine\fP< \fB_UIntType1\fP, \fB__w1\fP, \fB__n1\fP, \fB__m1\fP, \fB__r1\fP, \fB__a1\fP, \fB__u1\fP, \fB__d1\fP, \fB__s1\fP, \fB__b1\fP, \fB__t1\fP, \fB__c1\fP, \fB__l1\fP, \fB__f1\fP > & __x)\fC [friend]\fP" .PP Extracts the current state of a % mersenne_twister_engine random number generator engine \fC__x\fP from the input stream \fC__is\fP\&. .PP \fBParameters\fP .RS 4 \fI__is\fP An input stream\&. .br \fI__x\fP A % mersenne_twister_engine random number generator engine\&. .RE .PP \fBReturns\fP .RS 4 The input stream with the state of \fC__x\fP extracted or in an error state\&. .RE .PP .SH "Author" .PP Generated automatically by Doxygen for libstdc++ from the source code\&.