31 #ifndef ROOT_Math_QuasiRandom
32 #define ROOT_Math_QuasiRandom
59 template <
class Engine>
70 QuasiRandom(
unsigned int dimension = 1) {
71 fEngine.Initialize(dimension);
80 explicit QuasiRandom(
const Engine & e,
unsigned int dimension = 1) : fEngine(e) {
81 fEngine.Initialize(dimension);
95 bool Next(
double * x) {
118 bool Skip(
unsigned int n) {
119 return fEngine.Skip(n);
126 bool RndmArray(
int n,
double * array) {
127 return fEngine.GenerateArray(array, array+n*NDim());
133 std::string Type()
const {
134 return fEngine.Name();
140 unsigned int EngineSize()
const {
141 return fEngine.Size();
147 unsigned int NDim()
const {
148 return fEngine.NDim();
154 std::string Name()
const {
155 return fEngine.Name();
178 typedef QuasiRandom<ROOT::Math::GSLQRngSobol> QuasiRandomSobol;
179 typedef QuasiRandom<ROOT::Math::GSLQRngNiederreiter2> QuasiRandomNiederreiter;