File tree Expand file tree Collapse file tree 1 file changed +9
-8
lines changed Expand file tree Collapse file tree 1 file changed +9
-8
lines changed Original file line number Diff line number Diff line change 1
1
function rand (rng:: AbstractRNG , :: Random.SamplerTrivial{Random.CloseOpen01{DoubleFloat{T}}} ) where {T<: IEEEFloat }
2
- hi, lo = rand (rng, T, 2 )
2
+ hi = rand (rng, T)
3
+ lo = rand (rng, T)
3
4
if hi === zero (T)
4
5
if lo === zero (T)
5
- return zero ( DoubleFloat (T))
6
+ return DoubleFloat ( zero (T))
6
7
end
7
8
hi, lo = lo, hi
8
9
end
81
82
# normal variates
82
83
83
84
function randn (rng:: AbstractRNG , :: Type{DoubleFloat{T}} ) where {T<: IEEEFloat }
84
- urand1, urand2 = rand (rng, DoubleFloat{T}, 2 )
85
- urand1 = urand1 + urand1 - 1
86
- urand2 = urand2 + urand2 - 1
87
- s = urand1* urand1 + urand2* urand2
85
+ urand1, urand2, s = ntuple (i -> zero (DoubleFloat{T}), Val {3} ())
88
86
89
- while s >= 1 || s === 0
90
- urand1, urand2 = rand (rng, DoubleFloat{T}, 2 )
87
+ while true
88
+ urand1 = rand (rng, DoubleFloat{T})
89
+ urand2 = rand (rng, DoubleFloat{T})
91
90
urand1 = urand1 + urand1 - 1
92
91
urand2 = urand2 + urand2 - 1
93
92
s = urand1* urand1 + urand2* urand2
93
+
94
+ (s >= 1 | iszero (s)) || break
94
95
end
95
96
96
97
s = sqrt ( - log (s) / s )
You can’t perform that action at this time.
0 commit comments