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