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 // prevent constructor by default
26 SimpleRandom();
27
28public:
29 // virtual functions
30 // NOLINTBEGIN
31 virtual int nextInt() /*override*/;
32
33 virtual int nextInt(int bound) /*override*/;
34
35 virtual int64 nextLong() /*override*/;
36
37 virtual bool nextBoolean() /*override*/;
38
39 virtual float nextFloat() /*override*/;
40
41 virtual double nextDouble() /*override*/;
42
43 virtual double nextGaussianDouble() /*override*/;
44
45 virtual void consumeCount(uint count) /*override*/;
46
47 virtual ::std::unique_ptr<::IRandom> fork() /*override*/;
48
49 virtual ::std::unique_ptr<::IPositionalRandomFactory> forkPositional() /*override*/;
50
51 virtual void setSeed(int64 seed) /*override*/;
52
53 virtual void setSeed(::Seed128Bit seed) /*override*/;
54
55 virtual int64 seed64() const /*override*/;
56
57 virtual ::Seed128Bit seed128() const /*override*/;
58 // NOLINTEND
59
60public:
61 // member functions
62 // NOLINTBEGIN
63 MCAPI explicit SimpleRandom(int64 seed);
64 // NOLINTEND
65
66public:
67 // constructor thunks
68 // NOLINTBEGIN
69 MCAPI void* $ctor(int64 seed);
70 // NOLINTEND
71
72public:
73 // virtual function thunks
74 // NOLINTBEGIN
75 MCAPI int $nextInt();
76
77 MCAPI int $nextInt(int bound);
78
79 MCAPI int64 $nextLong();
80
81 MCAPI bool $nextBoolean();
82
83 MCAPI float $nextFloat();
84
85 MCAPI double $nextDouble();
86
87 MCAPI double $nextGaussianDouble();
88
89 MCAPI void $consumeCount(uint count);
90
91 MCAPI ::std::unique_ptr<::IRandom> $fork();
92
93 MCAPI ::std::unique_ptr<::IPositionalRandomFactory> $forkPositional();
94
95 MCAPI void $setSeed(int64 seed);
96
97 MCAPI void $setSeed(::Seed128Bit seed);
98
99 MCFOLD int64 $seed64() const;
100
101 MCAPI ::Seed128Bit $seed128() const;
102
103
104 // NOLINTEND
105
106public:
107 // vftables
108 // NOLINTBEGIN
109 MCNAPI static void** $vftableForIRandomSeeded();
110
111 MCNAPI static void** $vftableForIRandom();
112 // NOLINTEND
113};
Definition IPositionalRandomFactory.h:11
Definition IRandomSeeded.h:10
Definition IRandom.h:10
static MCAPI void ** $vftableForIRandomSeeded()
static MCAPI void ** $vftableForIRandom()
Definition Seed128Bit.h:5