Ocular Engine
XorShift.hpp
1 
17 #pragma once
18 #ifndef __H__OCULAR_MATH_RANDOM_XORSHIFT__H__
19 #define __H__OCULAR_MATH_RANDOM_XORSHIFT__H__
20 
21 #include "ARandom.hpp"
22 
23 //------------------------------------------------------------------------------------------
24 
29 namespace Ocular
30 {
35  namespace Math
36  {
41  namespace Random
42  {
47  class XorShift96 : public ARandom
48  {
49  public:
50 
51  XorShift96();
52  ~XorShift96();
53 
54  virtual void seed(int64_t seed);
55  virtual uint32_t next();
56 
57  protected:
58 
59  private:
60 
61  uint32_t m_X;
62  uint32_t m_Y;
63  uint32_t m_Z;
64  };
65  }
69  }
73 }
78 //------------------------------------------------------------------------------------------
79 
80 #endif
Note: Once this library is made dynamic, this will no longer be needed.
Definition: Common.hpp:70
Definition: XorShift.hpp:47
virtual uint32_t next()
Definition: XorShift.cpp:58
void seed()
Definition: ARandom.cpp:52
Definition: ARandom.hpp:67