Skip to content

Commit d89d1c8

Browse files
stevengjfredrikekre
authored andcommitted
use a better seed than 0
1 parent c6f42de commit d89d1c8

File tree

6 files changed

+13
-9
lines changed

6 files changed

+13
-9
lines changed

src/IterativeSolvers.jl

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@ eigensystems, and singular value problems.
66
"""
77
module IterativeSolvers
88

9+
# deterministic seed for pseudo-random numbers
10+
# (taken from the IterativeSolvers.jl UUID)
11+
const seed = [0x42fd0dbc, 0xa9815370, 0x80f2aaf5, 0x04508153]
12+
913
include("common.jl")
1014
include("orthogonalize.jl")
1115
include("history.jl")

src/bicgstabl.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ function bicgstabl_iterator!(x, A, b, l::Int = 2;
2929
max_mv_products = size(A, 2),
3030
abstol::Real = zero(real(eltype(b))),
3131
reltol::Real = sqrt(eps(real(eltype(b)))),
32-
rng::AbstractRNG=MersenneTwister(0),
32+
rng::AbstractRNG=MersenneTwister(seed),
3333
initial_zero = false)
3434
T = eltype(x)
3535
n = size(A, 1)

src/idrs.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ end
8282

8383
function idrs_method!(log::ConvergenceHistory, X, A, C::T,
8484
s::Number, Pl::precT, abstol::Real, reltol::Real, maxiter::Number; smoothing::Bool=false, verbose::Bool=false,
85-
rng::AbstractRNG=MersenneTwister(0)) where {T, precT}
85+
rng::AbstractRNG=MersenneTwister(seed)) where {T, precT}
8686

8787
verbose && @printf("=== idrs ===\n%4s\t%7s\n","iter","resnorm")
8888
R = C - A*X

src/lobpcg.jl

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -787,7 +787,7 @@ Finds the `nev` extremal eigenvalues and their corresponding eigenvectors satisf
787787
function lobpcg(A, largest::Bool, nev::Int; kwargs...)
788788
lobpcg(A, nothing, largest, nev; kwargs...)
789789
end
790-
function lobpcg(A, B, largest::Bool, nev::Int; rng::AbstractRNG=MersenneTwister(0), kwargs...)
790+
function lobpcg(A, B, largest::Bool, nev::Int; rng::AbstractRNG=MersenneTwister(seed), kwargs...)
791791
lobpcg(A, B, largest, rand(rng, eltype(A), size(A, 1), nev); not_zeros=true, rng=rng, kwargs...)
792792
end
793793

@@ -827,7 +827,7 @@ function lobpcg(A, largest::Bool, X0; kwargs...)
827827
end
828828
function lobpcg(A, B, largest, X0;
829829
not_zeros=false, log=false, P=nothing, maxiter=200,
830-
rng::AbstractRNG=MersenneTwister(0),
830+
rng::AbstractRNG=MersenneTwister(seed),
831831
C=nothing, tol::Real=default_tolerance(eltype(X0)))
832832
X = copy(X0)
833833
n = size(X, 1)
@@ -866,7 +866,7 @@ end
866866
867867
"""
868868
function lobpcg!(iterator::LOBPCGIterator; log=false, maxiter=200, not_zeros=false,
869-
rng::AbstractRNG=MersenneTwister(0),
869+
rng::AbstractRNG=MersenneTwister(seed),
870870
tol::Real=default_tolerance(eltype(iterator.XBlocks.block)))
871871
X = iterator.XBlocks.block
872872
iterator.constr!(iterator.XBlocks.block, iterator.tempXBlocks.block)
@@ -931,7 +931,7 @@ function lobpcg(A, largest::Bool, X0, nev::Int; kwargs...)
931931
end
932932
function lobpcg(A, B, largest::Bool, X0, nev::Int;
933933
not_zeros=false, log=false, P=nothing, maxiter=200,
934-
rng::AbstractRNG=MersenneTwister(0),
934+
rng::AbstractRNG=MersenneTwister(seed),
935935
C=nothing, tol::Real=default_tolerance(eltype(X0)))
936936
n = size(X0, 1)
937937
sizeX = size(X0, 2)

src/simple.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ See [`powm!`](@ref). Calls `powm!(B, x0; kwargs...)` with
6262
`x0` initialized as a random, complex unit vector using
6363
`rng::AbstractRNG`.
6464
"""
65-
function powm(B; rng::AbstractRNG=MersenneTwister(0), kwargs...)
65+
function powm(B; rng::AbstractRNG=MersenneTwister(seed), kwargs...)
6666
x0 = rand(rng, Complex{real(eltype(B))}, size(B, 1))
6767
rmul!(x0, one(eltype(B)) / norm(x0))
6868
powm!(B, x0; kwargs...)
@@ -169,7 +169,7 @@ Fmap = LinearMap{ComplexF64}((y, x) -> ldiv!(y, F, x), 50, ismutating = true)
169169
λ, x = invpowm(Fmap, shift = σ, tol = 1e-4, maxiter = 200)
170170
```
171171
"""
172-
function invpowm(B; rng::AbstractRNG=MersenneTwister(0), kwargs...)
172+
function invpowm(B; rng::AbstractRNG=MersenneTwister(seed), kwargs...)
173173
x0 = rand(rng, Complex{real(eltype(B))}, size(B, 1))
174174
rmul!(x0, one(eltype(B)) / norm(x0))
175175
invpowm!(B, x0; kwargs...)

src/svdl.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ end
176176
#########################
177177

178178
function svdl_method!(log::ConvergenceHistory, A, l::Int=min(6, size(A,1)); k::Int=2l,
179-
j::Int=l, rng::AbstractRNG=MersenneTwister(l), v0::AbstractVector = Vector{eltype(A)}(randn(rng, size(A, 2))) |> x->rmul!(x, inv(norm(x))),
179+
j::Int=l, rng::AbstractRNG=MersenneTwister(seed), v0::AbstractVector = Vector{eltype(A)}(randn(rng, size(A, 2))) |> x->rmul!(x, inv(norm(x))),
180180
maxiter::Int=minimum(size(A)), tol::Real=eps(), reltol::Real=eps(),
181181
verbose::Bool=false, method::Symbol=:ritz, vecs=:none, dolock::Bool=false)
182182

0 commit comments

Comments
 (0)