#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
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.