LeviLamina
Loading...
Searching...
No Matches
SimpleRandom.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core/math/IRandom.h"
7#include "mc/deps/core/math/IRandomSeeded.h"
8#include "mc/util/random/MarsagliaPolarGaussian.h"
9
10// auto generated forward declare list
11// clang-format off
13struct Seed128Bit;
14// clang-format on
15
16class SimpleRandom : public ::IRandom, public ::IRandomSeeded {
17public:
18 // member variables
19 // NOLINTBEGIN
20 ::ll::TypedStorage<8, 8, int64> mSeed;
21 ::ll::TypedStorage<8, 16, ::MarsagliaPolarGaussian> mGaussianSource;
22 // NOLINTEND
23
24public:
25 // virtual functions
26 // NOLINTBEGIN
27 virtual int nextInt() /*override*/;
28
29 virtual int nextInt(int bound) /*override*/;
30
31 virtual int64 nextLong() /*override*/;
32
33 virtual bool nextBoolean() /*override*/;
34
35 virtual float nextFloat() /*override*/;
36
37 virtual double nextDouble() /*override*/;
38
39 virtual double nextGaussianDouble() /*override*/;
40
41 virtual void consumeCount(uint count) /*override*/;
42
43 virtual ::std::unique_ptr<::IRandom> fork() /*override*/;
44
45 virtual ::std::unique_ptr<::IPositionalRandomFactory> forkPositional() /*override*/;
46
47 virtual void setSeed(int64 seed) /*override*/;
48
49 virtual void setSeed(::Seed128Bit seed) /*override*/;
50
51 virtual int64 seed64() const /*override*/;
52
53 virtual ::Seed128Bit seed128() const /*override*/;
54
55 virtual ~SimpleRandom() /*override*/ = default;
56 // NOLINTEND
57
58public:
59 // virtual function thunks
60 // NOLINTBEGIN
61 MCAPI int $nextInt();
62
63 MCAPI int $nextInt(int bound);
64
65 MCAPI int64 $nextLong();
66
67 MCAPI bool $nextBoolean();
68
69 MCAPI float $nextFloat();
70
71 MCAPI double $nextDouble();
72
73 MCAPI double $nextGaussianDouble();
74
75 MCAPI void $consumeCount(uint count);
76
77 MCAPI ::std::unique_ptr<::IRandom> $fork();
78
79 MCAPI ::std::unique_ptr<::IPositionalRandomFactory> $forkPositional();
80
81 MCAPI void $setSeed(int64 seed);
82
83 MCAPI void $setSeed(::Seed128Bit seed);
84
85 MCFOLD int64 $seed64() const;
86
87 MCAPI ::Seed128Bit $seed128() const;
88
89
90 // NOLINTEND
91
92public:
93 // vftables
94 // NOLINTBEGIN
95 MCNAPI static void** $vftableForIRandomSeeded();
96
97 MCNAPI static void** $vftableForIRandom();
98 // NOLINTEND
99};
Definition IPositionalRandomFactory.h:11
Definition IRandomSeeded.h:10
Definition IRandom.h:10
Definition SimpleRandom.h:16
static MCAPI void ** $vftableForIRandomSeeded()
static MCAPI void ** $vftableForIRandom()
Definition Seed128Bit.h:5