72 if (
this == &eng)
return *
this;
85 fQRng->Allocate(dimension);
101 assert(
fQRng->Dimension() == 1);
103 gsl_qrng_get(
fQRng->Rng(), &
x );
110 int status = gsl_qrng_get(
fQRng->Rng(),
x );
111 return (status == 0);
116 std::vector<double> xtmp(
fQRng->Dimension() );
118 for (
unsigned int i = 0; i <
n; ++i ) {
119 status |= gsl_qrng_get(
fQRng->Rng(), &xtmp[0] );
128 for (
double * itr = begin; itr != end; itr+=
fQRng->Dimension() ) {
129 status |= gsl_qrng_get(
fQRng->Rng(), itr );
138 assert (
fQRng !=
nullptr);
139 assert(
fQRng->Rng() !=
nullptr);
140 const char *
name = gsl_qrng_name(
fQRng->Rng() );
141 if (!
name)
return std::string();
142 return std::string(
name);
148 assert (
fQRng !=
nullptr);
149 return gsl_qrng_size(
fQRng->Rng() );
155 assert (
fQRng !=
nullptr);
156 return fQRng->Dimension();
GSLQRngWrapper class to wrap gsl_qrng structure.
std::string Name() const
return name of generator
void SetType(GSLQRngWrapper *r)
internal method used by the derived class to set the type of generators
GSLQuasiRandomEngine & operator=(const GSLQuasiRandomEngine &eng)
Assignment operator : make a deep copy of the contained GSL generator.
void Initialize(unsigned int dimension)
initialize the generator giving the dimension of the sequence If no rng is present the default one ba...
bool GenerateArray(double *begin, double *end) const
Generate an array of quasi random numbers The iterators points to the random numbers.
virtual ~GSLQuasiRandomEngine()
call Terminate()
void Terminate()
delete pointer to contained rng
GSLQuasiRandomEngine()
default constructor.
unsigned int NDim() const
return the dimension of generator
unsigned int Size() const
return the state size of generator
double operator()() const
Generate a random number between ]0,1[.
bool Skip(unsigned int n) const
Skip the next n random numbers.