Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
alexbevi
GitHub Repository: alexbevi/BizHawk
Path: blob/master/libsnes/bsnes/nall/random.hpp
2 views
1
#ifndef NALL_RANDOM_HPP
2
#define NALL_RANDOM_HPP
3
4
namespace nall {
5
//pseudo-random number generator
6
inline unsigned prng() {
7
static unsigned n = 0;
8
return n = (n >> 1) ^ (((n & 1) - 1) & 0xedb88320);
9
}
10
11
struct random_lfsr {
12
inline void seed(unsigned seed__) {
13
seed_ = seed__;
14
}
15
16
inline unsigned operator()() {
17
return seed_ = (seed_ >> 1) ^ (((seed_ & 1) - 1) & 0xedb88320);
18
}
19
20
random_lfsr() : seed_(0) {
21
}
22
23
private:
24
unsigned seed_;
25
};
26
}
27
28
#endif
29
30