Revision 5026db014a254582108f8ce32454f8c80badd05e authored by Rafael Fourquet on 27 November 2014, 10:20:46 UTC, committed by Rafael Fourquet on 27 November 2014, 12:31:20 UTC
1 parent df7a9d5
randn.jl
using Base.Random: Close1Open2, fill_array!
function randn0!(rng::MersenneTwister, A::Array{Float64})
n = length(A)
rand!(rng, A, n, Close1Open2)
for i = 1:n
@inbounds A[i] = randn(rng, reinterpret(UInt64, A[i]) & 0x000fffffffffffff)
end
A
end
function arrN(n, r=1)
a = Array(Float64, n)
m = MersenneTwister()
tic()
for i in 1:r
randn!(m, a)
end
toq()
end
function arrN0(n, r=1)
a = Array(Float64, n)
m = MersenneTwister()
tic()
for i in 1:r
randn0!(m, a)
end
toq()
end
function scalN(n)
m = MersenneTwister()
tic()
for i in 1:n
randn(m)
end
toq()
end
warmup0() = (arrN(10); scalN(10))
warmup1() = (arrN(10); arrN0(10); scalN(10))
warmup2() = (arrN0(10); arrN(10); scalN(10))
# [arrN(10^i, 10^(8-i)) for i in 1:8]
# [arrN0(10^i, 10^(8-i)) for i in 1:8]
# scalN(10^8)
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...