1// Copyright 2005-2009 The RE2 Authors. All Rights Reserved. 2// Use of this source code is governed by a BSD-style 3// license that can be found in the LICENSE file. 4 5// Modified from Google perftools's tcmalloc_unittest.cc. 6 7#ifndef RE2_UTIL_RANDOM_H__ 8#define RE2_UTIL_RANDOM_H__ 9 10#include "util/util.h" 11 12namespace re2 { 13 14// ACM minimal standard random number generator. (re-entrant.) 15class ACMRandom { 16 public: 17 ACMRandom(int32 seed) : seed_(seed) {} 18 int32 Next(); 19 int32 Uniform(int32); 20 21 void Reset(int32 seed) { seed_ = seed; } 22 23 private: 24 int32 seed_; 25}; 26 27} // namespace re2 28 29#endif // RE2_UTIL_RANDOM_H__ 30