#ifndef ROO_QUASI_RANDOM_GENERATOR
#define ROO_QUASI_RANDOM_GENERATOR
#include "Rtypes.h"
class RooQuasiRandomGenerator {
public:
RooQuasiRandomGenerator();
virtual ~RooQuasiRandomGenerator();
void reset();
Bool_t generate(UInt_t dimension, Double_t vector[]);
enum { MaxDimension = 12 , NBits = 31 , MaxDegree = 50 , MaxPrimitiveDegree = 5 };
protected:
void calculateCoefs(UInt_t dimension);
void calculateV(const int px[], int px_degree,
int pb[], int * pb_degree, int v[], int maxv);
void polyMultiply(const int pa[], int pa_degree, const int pb[],
int pb_degree, int pc[], int * pc_degree);
inline Int_t add(Int_t x, Int_t y) const { return (x+y)%2; }
inline Int_t mul(Int_t x, Int_t y) const { return (x*y)%2; }
inline Int_t sub(Int_t x, Int_t y) const { return add(x,y); }
private:
Int_t *_nextq;
Int_t _sequenceCount;
static Bool_t _coefsCalculated;
static Int_t _cj[NBits][MaxDimension];
static const Int_t _primitivePoly[MaxDimension+1][MaxPrimitiveDegree+1];
static const Int_t _polyDegree[MaxDimension+1];
ClassDef(RooQuasiRandomGenerator,0)
};
#endif
Last change: Wed Jun 25 08:33:56 2008
Last generated: 2008-06-25 08:33
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.