Skip to content

Commit

Permalink
make MersenneTwister() randomly seeded
Browse files Browse the repository at this point in the history
  • Loading branch information
rfourquet committed Jun 17, 2016
1 parent 913b24d commit accb477
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 7 deletions.
2 changes: 1 addition & 1 deletion base/random.jl
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ type MersenneTwister <: AbstractRNG

MersenneTwister(state::DSFMT_state, seed) = new(state, Array{Float64}(MTCacheLength), MTCacheLength, seed)
MersenneTwister(seed) = srand(new(DSFMT_state(), Array{Float64}(MTCacheLength)), seed)
MersenneTwister() = MersenneTwister(0)
MersenneTwister() = MersenneTwister(make_seed())
end

## Low level API for MersenneTwister
Expand Down
9 changes: 4 additions & 5 deletions test/random.jl
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ srand(0); rand(); x = rand(384);
@test length(randn(4, 5)) == 20
@test length(bitrand(4, 5)) == 20

@test rand(MersenneTwister()) == 0.8236475079774124
@test rand(MersenneTwister()) != rand(MersenneTwister())
@test rand(MersenneTwister(0)) == 0.8236475079774124
@test rand(MersenneTwister(42)) == 0.5331830160438613
# Try a seed larger than 2^32
Expand All @@ -39,7 +39,6 @@ A = zeros(UInt128, 2, 2)

# rand from AbstractArray
let mt = MersenneTwister()
srand(mt)
@test rand(mt, 0:3:1000) in 0:3:1000
@test issubset(rand!(mt, Array{Int}(100), 0:3:1000), 0:3:1000)
coll = Any[2, UInt128(128), big(619), "string"]
Expand Down Expand Up @@ -220,7 +219,7 @@ u4 = uuid4()
@test u4 == UUID(string(u4)) == UUID(GenericString(string(u4)))
@test u1 == UUID(UInt128(u1))
@test u4 == UUID(UInt128(u4))
@test uuid4(MersenneTwister()) == uuid4(MersenneTwister())
@test uuid4(MersenneTwister(0)) == uuid4(MersenneTwister(0))
@test_throws ArgumentError UUID("550e8400e29b-41d4-a716-446655440000")
@test_throws ArgumentError UUID("550e8400e29b-41d4-a716-44665544000098")
@test_throws ArgumentError UUID("z50e8400-e29b-41d4-a716-446655440000")
Expand Down Expand Up @@ -271,7 +270,7 @@ let mt = MersenneTwister(0)
end

# Issue #9037
let mt = MersenneTwister()
let mt = MersenneTwister(0)
a = Array{Float64}(0)
resize!(a, 1000) # could be 8-byte aligned
b = Array{Float64}(1000) # should be 16-byte aligned
Expand Down Expand Up @@ -343,7 +342,7 @@ function hist(X,n)
end

# test uniform distribution of floats
for rng in [srand(MersenneTwister()), RandomDevice()]
for rng in [MersenneTwister(), RandomDevice()]
for T in [Float16,Float32,Float64]
# array version
counts = hist(rand(rng, T, 2000), 4)
Expand Down
2 changes: 1 addition & 1 deletion test/sparsedir/sparsevector.jl
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ let xr = sprand(Bool, 1000, 0.9)
@test all(nonzeros(xr))
end

let r1 = MersenneTwister(), r2 = MersenneTwister()
let r1 = MersenneTwister(0), r2 = MersenneTwister(0)
@test sprand(r1, 100, .9) == sprand(r2, 100, .9)
@test sprandn(r1, 100, .9) == sprandn(r2, 100, .9)
@test sprand(r1, Bool, 100, .9, ) == sprand(r2, Bool, 100, .9)
Expand Down

0 comments on commit accb477

Please sign in to comment.