Logo ROOT  
Reference Guide
TRandom3.h
Go to the documentation of this file.
1// @(#)root/mathcore:$Id$
2// Author: Peter Malzacher 31/08/99
3
4/*************************************************************************
5 * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
6 * All rights reserved. *
7 * *
8 * For the licensing terms see $ROOTSYS/LICENSE. *
9 * For the list of contributors see $ROOTSYS/README/CREDITS. *
10 *************************************************************************/
11
12#ifndef ROOT_TRandom3
13#define ROOT_TRandom3
14
15
16
17//////////////////////////////////////////////////////////////////////////
18// //
19// TRandom3 //
20// //
21// random number generator class: Mersenne Twister //
22// //
23//////////////////////////////////////////////////////////////////////////
24
25#include "TRandom.h"
26
27class TRandom3 : public TRandom {
28
29private:
30 UInt_t fMt[624];
32
33public:
34 TRandom3(UInt_t seed=4357);
35 ~TRandom3() override;
36 /// return current element of the state used for generate the random number
37 /// Note that it is not the seed of the generator that was used in the SetSeed function
38 UInt_t GetSeed() const override { return fMt[fCount624];}
39 using TRandom::Rndm;
40 Double_t Rndm( ) override;
41 void RndmArray(Int_t n, Float_t *array) override;
42 void RndmArray(Int_t n, Double_t *array) override;
43 void SetSeed(ULong_t seed=0) override;
44 virtual const UInt_t *GetState() const { return fMt; }
45
46 ClassDefOverride(TRandom3,2) //Random number generator: Mersenne Twister
47};
48
50
51#endif
#define R__EXTERN
Definition: DllImport.h:27
int Int_t
Definition: RtypesCore.h:45
float Float_t
Definition: RtypesCore.h:57
double Double_t
Definition: RtypesCore.h:59
unsigned long ULong_t
Definition: RtypesCore.h:55
#define ClassDefOverride(name, id)
Definition: Rtypes.h:339
R__EXTERN TRandom * gRandom
Definition: TRandom3.h:49
Random number generator class based on M.
Definition: TRandom3.h:27
UInt_t fMt[624]
Definition: TRandom3.h:30
Double_t Rndm() override
Machine independent random number generator.
Definition: TRandom3.cxx:99
UInt_t GetSeed() const override
return current element of the state used for generate the random number Note that it is not the seed ...
Definition: TRandom3.h:38
void RndmArray(Int_t n, Float_t *array) override
Return an array of n random numbers uniformly distributed in ]0,1].
Definition: TRandom3.cxx:143
TRandom3(UInt_t seed=4357)
Default constructor If seed is 0, the seed is automatically computed via a TUUID object.
Definition: TRandom3.cxx:80
Int_t fCount624
Definition: TRandom3.h:31
virtual const UInt_t * GetState() const
Definition: TRandom3.h:44
~TRandom3() override
Default destructor.
Definition: TRandom3.cxx:90
void SetSeed(ULong_t seed=0) override
Set the random generator sequence if seed is 0 (default value) a TUUID is generated and used to fill ...
Definition: TRandom3.cxx:206
This is the base class for the ROOT Random number generators.
Definition: TRandom.h:27
Double_t Rndm() override
Machine independent random number generator.
Definition: TRandom.cxx:552
const Int_t n
Definition: legend1.C:16