NEURON
NrnRandom123RNG.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include <cstdint>
4 
5 #include "nrnran123.h"
6 #include "RNG.h"
7 
8 class NrnRandom123: public RNG {
9  public:
10  NrnRandom123(std::uint32_t id1, std::uint32_t id2, std::uint32_t id3 = 0);
11  ~NrnRandom123();
12  std::uint32_t asLong() {
13  return nrnran123_ipick(s_);
14  }
15  double asDouble() {
16  return nrnran123_dblpick(s_);
17  }
18  void reset() {
19  nrnran123_setseq(s_, 0, 0);
20  }
22 };
nrnran123_State * s_
NrnRandom123(std::uint32_t id1, std::uint32_t id2, std::uint32_t id3=0)
std::uint32_t asLong()
Definition: RNG.h:5
std::uint32_t nrnran123_ipick(nrnran123_State *s)
Definition: nrnran123.cpp:110
double nrnran123_dblpick(nrnran123_State *s)
Definition: nrnran123.cpp:122
void nrnran123_setseq(nrnran123_State *s, std::uint32_t seq, char which)
Set a Random123 sequence for a sequnece ID and which selector.
Definition: nrnran123.cpp:55