Advanced Computing Platform for Theoretical Physics

Commit c27be8e0 authored by Shuang Liang's avatar Shuang Liang
Browse files

fix: CUDA.rand type

parent f3b0bfad
......@@ -105,7 +105,7 @@ function replaced_FTLM(M, expr::Vararg{T,N};
Ne = min(Ne, Ns)
krylovdim = max(30, Ne+1)
processor == CPU ? x0 = rand(Ns) : x0 = CUDA.rand(Ns)
processor == CPU ? x0 = rand(Ns) : x0 = CUDA.rand(Float64, Ns)
vals, vecs, _ = eigsolve(M, x0, Ne, which, ishermitian = true, krylovdim=krylovdim)
eigen_vals = solver(x->x, vals[1:Ne])
eigen_vecs = hcat(vecs[1:Ne]...)
......@@ -145,7 +145,7 @@ function orthogonalized_FTLM(M, expr::Vararg{T,N};
Ns = size(M, 1)
Ne = min(Ne, Ns)
krylovdim = max(30, Ne+1)
processor == CPU ? x0 = rand(Ns) : x0 = CUDA.rand(Ns)
processor == CPU ? x0 = rand(Ns) : x0 = CUDA.rand(Float64, Ns)
vals, vecs, _ = eigsolve(M, x0, Ne, which, ishermitian = true, krylovdim=krylovdim)
eigen_vals = vals[1:Ne] #always be Vector type, not CuVector
eigen_vecs = hcat(vecs[1:Ne]...)
......
......@@ -85,7 +85,7 @@ function replaced_FTLM(M, Op::Vararg{T,N};
Ne = min(Ne, Ns)
krylovdim = max(30, Ne+1)
processor == CPU ? x0 = rand(Ns) : x0 = CUDA.rand(Ns)
processor == CPU ? x0 = rand(Ns) : x0 = CUDA.rand(Float64, Ns)
vals, vecs, _ = eigsolve(M, x0, Ne, which, ishermitian = true, krylovdim=krylovdim)
eigen_vals = solver(x->x, vals[1:Ne])
eigen_vecs = hcat(vecs[1:Ne]...)
......@@ -132,7 +132,7 @@ function orthogonalized_FTLM(M, Op::Vararg{T,N};
Ns = size(M, 1)
Ne = min(Ne, Ns)
krylovdim = max(30, Ne+1)
processor == CPU ? x0 = rand(Ns) : x0 = CUDA.rand(Ns)
processor == CPU ? x0 = rand(Ns) : x0 = CUDA.rand(Float64, Ns)
vals, vecs, _ = eigsolve(M, x0, Ne, which, ishermitian = true, krylovdim=krylovdim)
eigen_vals = vals[1:Ne]
eigen_vecs = hcat(vecs[1:Ne]...)
......
......@@ -12,7 +12,7 @@ function logtrexp(M, trace_estimator::TraceEstimator)
@unpack processor = options
options = FTLMOptions(options, which = :LR)
processor == CPU ? x0 = rand(size(M,1)) : x0 = CUDA.rand(size(M,1))
processor == CPU ? x0 = rand(size(M,1)) : x0 = CUDA.rand(Float64, size(M,1))
e0, _, _ = eigsolve(M, x0, 1, :LR, ishermitian = true)
e1 = e0[1]
expr = e -> exp(e - e1)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment