Index: src/utils/random-number-generator.h |
diff --git a/src/utils/random-number-generator.h b/src/utils/random-number-generator.h |
deleted file mode 100644 |
index 6b077eebdd77539abe233eebca9688df45a64446..0000000000000000000000000000000000000000 |
--- a/src/utils/random-number-generator.h |
+++ /dev/null |
@@ -1,89 +0,0 @@ |
-// Copyright 2013 the V8 project authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#ifndef V8_UTILS_RANDOM_NUMBER_GENERATOR_H_ |
-#define V8_UTILS_RANDOM_NUMBER_GENERATOR_H_ |
- |
-#include "src/base/macros.h" |
- |
-namespace v8 { |
-namespace internal { |
- |
-// ----------------------------------------------------------------------------- |
-// RandomNumberGenerator |
-// |
-// This class is used to generate a stream of pseudorandom numbers. The class |
-// uses a 48-bit seed, which is modified using a linear congruential formula. |
-// (See Donald Knuth, The Art of Computer Programming, Volume 3, Section 3.2.1.) |
-// If two instances of RandomNumberGenerator are created with the same seed, and |
-// the same sequence of method calls is made for each, they will generate and |
-// return identical sequences of numbers. |
-// This class uses (probably) weak entropy by default, but it's sufficient, |
-// because it is the responsibility of the embedder to install an entropy source |
-// using v8::V8::SetEntropySource(), which provides reasonable entropy, see: |
-// https://code.google.com/p/v8/issues/detail?id=2905 |
-// This class is neither reentrant nor threadsafe. |
- |
-class RandomNumberGenerator V8_FINAL { |
- public: |
- // EntropySource is used as a callback function when V8 needs a source of |
- // entropy. |
- typedef bool (*EntropySource)(unsigned char* buffer, size_t buflen); |
- static void SetEntropySource(EntropySource entropy_source); |
- |
- RandomNumberGenerator(); |
- explicit RandomNumberGenerator(int64_t seed) { SetSeed(seed); } |
- |
- // Returns the next pseudorandom, uniformly distributed int value from this |
- // random number generator's sequence. The general contract of |NextInt()| is |
- // that one int value is pseudorandomly generated and returned. |
- // All 2^32 possible integer values are produced with (approximately) equal |
- // probability. |
- V8_INLINE int NextInt() V8_WARN_UNUSED_RESULT { |
- return Next(32); |
- } |
- |
- // Returns a pseudorandom, uniformly distributed int value between 0 |
- // (inclusive) and the specified max value (exclusive), drawn from this random |
- // number generator's sequence. The general contract of |NextInt(int)| is that |
- // one int value in the specified range is pseudorandomly generated and |
- // returned. All max possible int values are produced with (approximately) |
- // equal probability. |
- int NextInt(int max) V8_WARN_UNUSED_RESULT; |
- |
- // Returns the next pseudorandom, uniformly distributed boolean value from |
- // this random number generator's sequence. The general contract of |
- // |NextBoolean()| is that one boolean value is pseudorandomly generated and |
- // returned. The values true and false are produced with (approximately) equal |
- // probability. |
- V8_INLINE bool NextBool() V8_WARN_UNUSED_RESULT { |
- return Next(1) != 0; |
- } |
- |
- // Returns the next pseudorandom, uniformly distributed double value between |
- // 0.0 and 1.0 from this random number generator's sequence. |
- // The general contract of |NextDouble()| is that one double value, chosen |
- // (approximately) uniformly from the range 0.0 (inclusive) to 1.0 |
- // (exclusive), is pseudorandomly generated and returned. |
- double NextDouble() V8_WARN_UNUSED_RESULT; |
- |
- // Fills the elements of a specified array of bytes with random numbers. |
- void NextBytes(void* buffer, size_t buflen); |
- |
- // Override the current ssed. |
- void SetSeed(int64_t seed); |
- |
- private: |
- static const int64_t kMultiplier = V8_2PART_UINT64_C(0x5, deece66d); |
- static const int64_t kAddend = 0xb; |
- static const int64_t kMask = V8_2PART_UINT64_C(0xffff, ffffffff); |
- |
- int Next(int bits) V8_WARN_UNUSED_RESULT; |
- |
- int64_t seed_; |
-}; |
- |
-} } // namespace v8::internal |
- |
-#endif // V8_UTILS_RANDOM_NUMBER_GENERATOR_H_ |