aboutsummaryrefslogtreecommitdiff
path: root/util/random.h
diff options
context:
space:
mode:
Diffstat (limited to 'util/random.h')
-rw-r--r--util/random.h29
1 files changed, 29 insertions, 0 deletions
diff --git a/util/random.h b/util/random.h
new file mode 100644
index 0000000..6c6e701
--- /dev/null
+++ b/util/random.h
@@ -0,0 +1,29 @@
+// Copyright 2005-2009 The RE2 Authors. All Rights Reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Modified from Google perftools's tcmalloc_unittest.cc.
+
+#ifndef RE2_UTIL_RANDOM_H__
+#define RE2_UTIL_RANDOM_H__
+
+#include "util/util.h"
+
+namespace re2 {
+
+// ACM minimal standard random number generator. (re-entrant.)
+class ACMRandom {
+ public:
+ ACMRandom(int32 seed) : seed_(seed) {}
+ int32 Next();
+ int32 Uniform(int32);
+
+ void Reset(int32 seed) { seed_ = seed; }
+
+ private:
+ int32 seed_;
+};
+
+} // namespace re2
+
+#endif // RE2_UTIL_RANDOM_H__