Skip to content

Commit 7a82d20

Browse files
committed
deduplicate code in randn
1 parent d9e3c0e commit 7a82d20

File tree

1 file changed

+4
-5
lines changed

1 file changed

+4
-5
lines changed

src/extras/random.jl

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -82,16 +82,15 @@ end
8282
# normal variates
8383

8484
function randn(rng::AbstractRNG, ::Type{DoubleFloat{T}}) where {T<:IEEEFloat}
85-
urand1, urand2 = rand(rng, DoubleFloat{T}, 2)
86-
urand1 = urand1 + urand1 - 1
87-
urand2 = urand2 + urand2 - 1
88-
s = urand1*urand1 + urand2*urand2
85+
urand1, urand2, s = ntuple(i -> zero(DoubleFloat{T}), Val{3}())
8986

90-
while s >= 1 || s === 0
87+
while true
9188
urand1, urand2 = rand(rng, DoubleFloat{T}, 2)
9289
urand1 = urand1 + urand1 - 1
9390
urand2 = urand2 + urand2 - 1
9491
s = urand1*urand1 + urand2*urand2
92+
93+
(s >= 1 || s === 0) || break
9594
end
9695

9796
s = sqrt( -log(s) / s )

0 commit comments

Comments
 (0)