Skip to content

Commit ea612ee

Browse files
committed
add array versions of randexp and export these functions
1 parent 401eb4a commit ea612ee

File tree

3 files changed

+28
-2
lines changed

3 files changed

+28
-2
lines changed

base/exports.jl

+2
Original file line numberDiff line numberDiff line change
@@ -909,6 +909,8 @@ export
909909
randbool,
910910
randn!,
911911
randn,
912+
randexp!,
913+
randexp,
912914
srand,
913915

914916
# bigfloat & precision

base/random.jl

+17-2
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,10 @@ using Base.dSFMT
55
export srand,
66
rand, rand!,
77
randn, randn!,
8+
randexp, randexp!,
89
randbool,
9-
AbstractRNG, RNG, MersenneTwister,
10-
randexp
10+
AbstractRNG, RNG, MersenneTwister
11+
1112

1213
abstract AbstractRNG
1314

@@ -1004,6 +1005,20 @@ function randexp_unlikely(rng, idx, x)
10041005
end
10051006
end
10061007

1008+
function randexp!(rng::MersenneTwister, A::Array{Float64})
1009+
for i = 1:length(A)
1010+
@inbounds A[i] = randexp(rng)
1011+
end
1012+
A
1013+
end
1014+
1015+
randexp!(A::Array{Float64}) = randexp!(GLOBAL_RNG, A)
1016+
randexp(dims::Dims) = randexp!(Array(Float64, dims))
1017+
randexp(dims::Int...) = randexp!(Array(Float64, dims))
1018+
randexp(rng::MersenneTwister, dims::Dims) = randexp!(rng, Array(Float64, dims))
1019+
randexp(rng::MersenneTwister, dims::Int...) = randexp!(rng, Array(Float64, dims))
1020+
1021+
10071022
## random UUID generation
10081023

10091024
immutable UUID

test/random.jl

+9
Original file line numberDiff line numberDiff line change
@@ -80,11 +80,20 @@ if sizeof(Int32) < sizeof(Int)
8080

8181
end
8282

83+
randn()
8384
randn(100000)
8485
randn!(Array(Float64, 100000))
86+
randn(MersenneTwister(10))
8587
randn(MersenneTwister(10), 100000)
8688
randn!(MersenneTwister(10), Array(Float64, 100000))
8789

90+
randexp()
91+
randexp(100000)
92+
randexp!(Array(Float64, 100000))
93+
randexp(MersenneTwister(10))
94+
randexp(MersenneTwister(10), 100000)
95+
randexp!(MersenneTwister(10), Array(Float64, 100000))
96+
8897
# Test ziggurat tables
8998
ziggurat_table_size = 256
9099
nmantissa = int64(2)^51 # one bit for the sign

0 commit comments

Comments
 (0)