blob: 1f9b8cdeaf8188a5429fbdb2ed3e6f494bde4117 [file] [log] [blame]
Andrew Geisslerc5535c92023-01-27 16:10:19 -06001From 3eb9987b02cc10b93e09219ddc86aa6be5f10177 Mon Sep 17 00:00:00 2001
2From: tybeller <ty.c.beller@gmail.com>
3Date: Fri, 30 Sep 2022 16:13:41 -0400
4Subject: [PATCH] removed RandomNumberGenerator class, included <random>,
5 replaced random_shuffle with shuffle and used mersenne twister engine to
6 generate uniform random bit generator for the shuffle.
7
8Upstream-Status: Backport [https://github.com/matplotlib/matplotlib/commit/601d92a8850]
9Signed-off-by: Khem Raj <raj.khem@gmail.com>
10---
11 src/tri/_tri.cpp | 20 ++++----------------
12 1 file changed, 4 insertions(+), 16 deletions(-)
13
14diff --git a/src/tri/_tri.cpp b/src/tri/_tri.cpp
15index b7a87783de..6e639eea44 100644
16--- a/src/tri/_tri.cpp
17+++ b/src/tri/_tri.cpp
18@@ -12,6 +12,7 @@
19
20 #include <algorithm>
21 #include <set>
22+#include <random>
23
24
25 TriEdge::TriEdge()
26@@ -1465,8 +1466,8 @@ TrapezoidMapTriFinder::initialize()
27 _tree->assert_valid(false);
28
29 // Randomly shuffle all edges other than first 2.
30- RandomNumberGenerator rng(1234);
31- std::random_shuffle(_edges.begin()+2, _edges.end(), rng);
32+ std::mt19937 rng(1234);
33+ std::shuffle(_edges.begin()+2, _edges.end(), rng);
34
35 // Add edges, one at a time, to tree.
36 size_t nedges = _edges.size();
37@@ -2055,17 +2056,4 @@ TrapezoidMapTriFinder::Trapezoid::set_upper_right(Trapezoid* upper_right_)
38 upper_right = upper_right_;
39 if (upper_right != 0)
40 upper_right->upper_left = this;
41-}
42-
43-
44-
45-RandomNumberGenerator::RandomNumberGenerator(unsigned long seed)
46- : _m(21870), _a(1291), _c(4621), _seed(seed % _m)
47-{}
48-
49-unsigned long
50-RandomNumberGenerator::operator()(unsigned long max_value)
51-{
52- _seed = (_seed*_a + _c) % _m;
53- return (_seed*max_value) / _m;
54-}
55+}
56\ No newline at end of file
57--
582.39.0
59