• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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  
12  namespace re2 {
13  
14  // ACM minimal standard random number generator.  (re-entrant.)
15  class ACMRandom {
16   public:
ACMRandom(int32 seed)17    ACMRandom(int32 seed) : seed_(seed) {}
18    int32 Next();
19    int32 Uniform(int32);
20  
Reset(int32 seed)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