summaryrefslogtreecommitdiff
path: root/include/internal/catch_random_number_generator.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/internal/catch_random_number_generator.h')
-rw-r--r--include/internal/catch_random_number_generator.h58
1 files changed, 0 insertions, 58 deletions
diff --git a/include/internal/catch_random_number_generator.h b/include/internal/catch_random_number_generator.h
deleted file mode 100644
index 79d62794..00000000
--- a/include/internal/catch_random_number_generator.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Created by Martin on 30/08/2017.
- *
- * Distributed under the Boost Software License, Version 1.0. (See accompanying
- * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- */
-#ifndef TWOBLUECUBES_CATCH_RANDOM_NUMBER_GENERATOR_H_INCLUDED
-#define TWOBLUECUBES_CATCH_RANDOM_NUMBER_GENERATOR_H_INCLUDED
-
-#include <cstdint>
-
-namespace Catch {
-
- // This is a simple implementation of C++11 Uniform Random Number
- // Generator. It does not provide all operators, because Catch2
- // does not use it, but it should behave as expected inside stdlib's
- // distributions.
- // The implementation is based on the PCG family (http://pcg-random.org)
- class SimplePcg32 {
- using state_type = std::uint64_t;
- public:
- using result_type = std::uint32_t;
- static constexpr result_type (min)() {
- return 0;
- }
- static constexpr result_type (max)() {
- return static_cast<result_type>(-1);
- }
-
- // Provide some default initial state for the default constructor
- SimplePcg32():SimplePcg32(0xed743cc4U) {}
-
- explicit SimplePcg32(result_type seed_);
-
- void seed(result_type seed_);
- void discard(uint64_t skip);
-
- result_type operator()();
-
- private:
- friend bool operator==(SimplePcg32 const& lhs, SimplePcg32 const& rhs);
- friend bool operator!=(SimplePcg32 const& lhs, SimplePcg32 const& rhs);
-
- // In theory we also need operator<< and operator>>
- // In practice we do not use them, so we will skip them for now
-
-
- std::uint64_t m_state;
- // This part of the state determines which "stream" of the numbers
- // is chosen -- we take it as a constant for Catch2, so we only
- // need to deal with seeding the main state.
- // Picked by reading 8 bytes from `/dev/random` :-)
- static const std::uint64_t s_inc = (0x13ed0cc53f939476ULL << 1ULL) | 1ULL;
- };
-
-} // end namespace Catch
-
-#endif // TWOBLUECUBES_CATCH_RANDOM_NUMBER_GENERATOR_H_INCLUDED