@@ -45,23 +45,6 @@ extension String {
45
45
}
46
46
}
47
47
48
- let seed = 0x12345678
49
-
50
- /// A linear congruential PRNG.
51
- struct LCRNG : RandomNumberGenerator {
52
- private var state : UInt64
53
-
54
- init ( seed: Int ) {
55
- state = UInt64 ( truncatingIfNeeded: seed)
56
- for _ in 0 ..< 10 { _ = next ( ) }
57
- }
58
-
59
- mutating func next( ) -> UInt64 {
60
- state = 2862933555777941757 &* state &+ 3037000493
61
- return state
62
- }
63
- }
64
-
65
48
extension Collection {
66
49
/// Returns a randomly ordered array of random non-overlapping index ranges
67
50
/// that cover this collection entirely.
@@ -254,7 +237,7 @@ class UTF16ToIdx: BenchmarkBase {
254
237
255
238
override func setUp( ) {
256
239
super. setUp ( )
257
- var rng = LCRNG ( seed: seed )
240
+ var rng = SplitMix64 ( seed: 42 )
258
241
let range = 0 ..< inputString. utf16. count
259
242
inputOffsets = Array ( range. shuffled ( using: & rng) . prefix ( count) )
260
243
}
@@ -286,7 +269,7 @@ class IdxToUTF16: BenchmarkBase {
286
269
287
270
override func setUp( ) {
288
271
super. setUp ( )
289
- var rng = LCRNG ( seed: seed )
272
+ var rng = SplitMix64 ( seed: 42 )
290
273
inputIndices = Array ( inputString. indices. shuffled ( using: & rng) . prefix ( count) )
291
274
}
292
275
@@ -318,7 +301,7 @@ class UTF16ToIdxRange: BenchmarkBase {
318
301
319
302
override func setUp( ) {
320
303
super. setUp ( )
321
- var rng = LCRNG ( seed: seed )
304
+ var rng = SplitMix64 ( seed: 42 )
322
305
inputOffsets = (
323
306
0 ..< inputString. utf16. count
324
307
) . randomIndexRanges ( count: count, using: & rng)
@@ -352,7 +335,7 @@ class IdxToUTF16Range: BenchmarkBase {
352
335
353
336
override func setUp( ) {
354
337
super. setUp ( )
355
- var rng = LCRNG ( seed: seed )
338
+ var rng = SplitMix64 ( seed: 42 )
356
339
inputIndices = self . inputString. randomIndexRanges ( count: count, using: & rng)
357
340
}
358
341
@@ -384,7 +367,7 @@ class CopyUTF16CodeUnits: BenchmarkBase {
384
367
385
368
override func setUp( ) {
386
369
super. setUp ( )
387
- var rng = LCRNG ( seed: seed )
370
+ var rng = SplitMix64 ( seed: 42 )
388
371
inputIndices = (
389
372
0 ..< inputString. utf16. count
390
373
) . randomIndexRanges ( count: count, using: & rng)
@@ -425,7 +408,7 @@ class MutatedUTF16ToIdx: BenchmarkBase {
425
408
426
409
override func setUp( ) {
427
410
super. setUp ( )
428
- var generator = LCRNG ( seed: seed )
411
+ var generator = SplitMix64 ( seed: 42 )
429
412
let range = 0 ..< inputString. utf16. count
430
413
inputOffsets = Array ( range. shuffled ( using: & generator) . prefix ( count) )
431
414
}
@@ -469,7 +452,7 @@ class MutatedIdxToUTF16: BenchmarkBase {
469
452
470
453
override func setUp( ) {
471
454
super. setUp ( )
472
- var rng = LCRNG ( seed: seed )
455
+ var rng = SplitMix64 ( seed: 42 )
473
456
inputIndices = Array ( inputString. indices. shuffled ( using: & rng) . prefix ( count) )
474
457
}
475
458
0 commit comments