This repository was archived by the owner on Mar 7, 2025. It is now read-only.
File tree 5 files changed +55
-11
lines changed
5 files changed +55
-11
lines changed Original file line number Diff line number Diff line change @@ -53,6 +53,3 @@ func hasZeroByte(x uint64) bitset {
53
53
func castUint64 (m * metadata ) uint64 {
54
54
return * (* uint64 )((unsafe .Pointer )(m ))
55
55
}
56
-
57
- //go:linkname fastrand runtime.fastrand
58
- func fastrand () uint32
Original file line number Diff line number Diff line change @@ -45,6 +45,3 @@ func nextMatch(b *bitset) (s uint32) {
45
45
* b &= ^ (1 << s ) // clear bit |s|
46
46
return
47
47
}
48
-
49
- //go:linkname fastrand runtime.fastrand
50
- func fastrand () uint32
Original file line number Diff line number Diff line change
1
+ // Copyright 2023 Dolthub, Inc.
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // http://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+
15
+ //go:build !go1.22
16
+
17
+ package swiss
18
+
19
+ import (
20
+ _ "unsafe"
21
+ )
22
+
23
+ //go:linkname fastrand runtime.fastrand
24
+ func fastrand () uint32
25
+
26
+ // randIntN returns a random number in the interval [0, n).
27
+ func randIntN (n int ) uint32 {
28
+ return fastModN (fastrand (), uint32 (n ))
29
+ }
Original file line number Diff line number Diff line change
1
+ // Copyright 2023 Dolthub, Inc.
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // http://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+
15
+ //go:build go1.22
16
+
17
+ package swiss
18
+
19
+ import (
20
+ "math/rand/v2"
21
+ )
22
+
23
+ // randIntN returns a random number in the interval [0, n).
24
+ func randIntN (n int ) uint32 {
25
+ return rand .Uint32N (uint32 (n ))
26
+ }
Original file line number Diff line number Diff line change @@ -352,8 +352,3 @@ func probeStart(hi h1, groups int) uint32 {
352
352
func fastModN (x , n uint32 ) uint32 {
353
353
return uint32 ((uint64 (x ) * uint64 (n )) >> 32 )
354
354
}
355
-
356
- // randIntN returns a random number in the interval [0, n).
357
- func randIntN (n int ) uint32 {
358
- return fastModN (fastrand (), uint32 (n ))
359
- }
You can’t perform that action at this time.
0 commit comments