aboutsummaryrefslogtreecommitdiff
path: root/webrtc/test/random.cc
diff options
context:
space:
mode:
Diffstat (limited to 'webrtc/test/random.cc')
-rw-r--r--webrtc/test/random.cc57
1 files changed, 0 insertions, 57 deletions
diff --git a/webrtc/test/random.cc b/webrtc/test/random.cc
deleted file mode 100644
index c4c405f6b8..0000000000
--- a/webrtc/test/random.cc
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright (c) 2015 The WebRTC 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 in the root of the source
- * tree. An additional intellectual property rights grant can be found
- * in the file PATENTS. All contributing project authors may
- * be found in the AUTHORS file in the root of the source tree.
- */
-
-#include "webrtc/test/random.h"
-
-#include <math.h>
-
-#include "webrtc/base/checks.h"
-
-namespace webrtc {
-
-namespace test {
-
-Random::Random(uint32_t seed) : a_(0x531FDB97 ^ seed), b_(0x6420ECA8 + seed) {
-}
-
-float Random::Rand() {
- const double kScale = 1.0f / (static_cast<uint64_t>(1) << 32);
- double result = kScale * b_;
- a_ ^= b_;
- b_ += a_;
- return static_cast<float>(result);
-}
-
-int Random::Rand(int low, int high) {
- RTC_DCHECK(low <= high);
- float uniform = Rand() * (high - low + 1) + low;
- return static_cast<int>(uniform);
-}
-
-int Random::Gaussian(int mean, int standard_deviation) {
- // Creating a Normal distribution variable from two independent uniform
- // variables based on the Box-Muller transform, which is defined on the
- // interval (0, 1], hence the mask+add below.
- const double kPi = 3.14159265358979323846;
- const double kScale = 1.0 / 0x80000000ul;
- double u1 = kScale * ((a_ & 0x7ffffffful) + 1);
- double u2 = kScale * ((b_ & 0x7ffffffful) + 1);
- a_ ^= b_;
- b_ += a_;
- return static_cast<int>(
- mean + standard_deviation * sqrt(-2 * log(u1)) * cos(2 * kPi * u2));
-}
-
-int Random::Exponential(float lambda) {
- float uniform = Rand();
- return static_cast<int>(-log(uniform) / lambda);
-}
-} // namespace test
-} // namespace webrtc