| Index: src/IceRNG.h
|
| diff --git a/src/IceRNG.h b/src/IceRNG.h
|
| index 423aee00e233110a5aeb783ffcda8ba07661781a..4d6c397f8fe6485ad8f87a15e49dc20aca8efeaa 100644
|
| --- a/src/IceRNG.h
|
| +++ b/src/IceRNG.h
|
| @@ -16,6 +16,7 @@
|
|
|
| #include <stdint.h>
|
| #include "llvm/ADT/StringRef.h"
|
| +#include "llvm/Support/Compiler.h"
|
|
|
| namespace Ice {
|
|
|
| @@ -25,9 +26,31 @@ public:
|
| uint64_t next(uint64_t Max);
|
|
|
| private:
|
| + RandomNumberGenerator(const RandomNumberGenerator &) LLVM_DELETED_FUNCTION;
|
| + RandomNumberGenerator &
|
| + operator=(const RandomNumberGenerator &) LLVM_DELETED_FUNCTION;
|
| +
|
| uint64_t State;
|
| };
|
|
|
| +// This class adds additional random number generator utilities. The
|
| +// reason for the wrapper class is that we want to keep the
|
| +// RandomNumberGenerator interface identical to LLVM's.
|
| +class RandomNumberGeneratorWrapper {
|
| +public:
|
| + uint64_t next(uint64_t Max) { return RNG.next(Max); }
|
| + bool getTrueWithProbability(float Probability);
|
| + RandomNumberGeneratorWrapper(RandomNumberGenerator &RNG) : RNG(RNG) {}
|
| +
|
| +private:
|
| + RandomNumberGeneratorWrapper(const RandomNumberGeneratorWrapper &)
|
| + LLVM_DELETED_FUNCTION;
|
| + RandomNumberGeneratorWrapper &
|
| + operator=(const RandomNumberGeneratorWrapper &) LLVM_DELETED_FUNCTION;
|
| +
|
| + RandomNumberGenerator &RNG;
|
| +};
|
| +
|
| } // end of namespace Ice
|
|
|
| #endif // SUBZERO_SRC_ICERNG_H
|
|
|