| // 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__ |