22#ifndef RanluxppEngine_h
23#define RanluxppEngine_h
44 double flat()
override;
48 void flatArray(
const int size,
double *vect)
override;
51 void setSeed(
long seed,
int dummy = 0)
override;
54 void setSeeds(
const long *seeds,
int dummy = 0)
override;
58 void skip(uint64_t n);
61 void saveStatus(
const char filename[] =
"Ranluxpp.conf")
const override;
64 void restoreStatus(
const char filename[] =
"Ranluxpp.conf")
override;
70 std::string
name()
const override;
76 std::ostream &
put(std::ostream &os)
const override;
77 std::istream &
get(std::istream &is)
override;
79 std::istream &
getState(std::istream &is)
override;
81 std::vector<unsigned long>
put()
const override;
82 bool get(
const std::vector<unsigned long> &v)
override;
83 bool getState(
const std::vector<unsigned long> &v)
override;
86 operator double()
override {
return flat(); }
87 operator float()
override {
return float(
flat()); }
88 operator unsigned int()
override {
return (
unsigned int)nextRandomBits(); }
96 uint64_t nextRandomBits();
void showStatus() const override
virtual ~RanluxppEngine()
void saveStatus(const char filename[]="Ranluxpp.conf") const override
std::string name() const override
std::istream & get(std::istream &is) override
static std::string engineName()
std::vector< unsigned long > put() const override
void setSeeds(const long *seeds, int dummy=0) override
void restoreStatus(const char filename[]="Ranluxpp.conf") override
static const unsigned int VECTOR_STATE_SIZE
void flatArray(const int size, double *vect) override
void setSeed(long seed, int dummy=0) override
std::istream & getState(std::istream &is) override
static std::string beginTag()