Skip to content

Commit 9a1c0bb

Browse files
committed
specialized _sparse similar methods
1 parent 3f7b83b commit 9a1c0bb

File tree

1 file changed

+6
-9
lines changed

1 file changed

+6
-9
lines changed

ext/QuantumToolboxCUDAExt.jl

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -106,13 +106,10 @@ QuantumToolbox.to_dense(::Type{T}, A::AbstractCuSparseArray) where {T<:Number} =
106106

107107
QuantumToolbox._sparse_similar(A::CuSparseMatrixCSC, args...) = sparse(args..., fmt = :csc)
108108
QuantumToolbox._sparse_similar(A::CuSparseMatrixCSR, args...) = sparse(args..., fmt = :csr)
109-
function QuantumToolbox._sparse_similar(A::CuSparseMatrixCSC, rows, cols, vals, m::Int64, n::Int64)
110-
cpu_sparse = sparse(rows, cols, vals, m, n)
111-
return CuSparseMatrixCSC(cpu_sparse)
112-
end
113-
function QuantumToolbox._sparse_similar(A::CuSparseMatrixCSR, rows, cols, vals, m::Int64, n::Int64)
114-
cpu_sparse = sparse(rows, cols, vals, m, n)
115-
return CuSparseMatrixCSR(cpu_sparse)
116-
end
117-
109+
_sparse_similar(A::CuSparseMatrixCSC, I::AbstractVector, J::AbstractVector, V::AbstractVector, m::Int, n::Int) =
110+
CuSparseMatrixCSC(sparse(I, J, V, m, n))
111+
_sparse_similar(A::CuSparseMatrixCSC, m::Int, n::Int) = CuSparseMatrixCSC(spzeros(eltype(A), m, n))
112+
_sparse_similar(A::CuSparseMatrixCSR, I::AbstractVector, J::AbstractVector, V::AbstractVector, m::Int, n::Int) =
113+
CuSparseMatrixCSR(sparse(I, J, V, m, n))
114+
_sparse_similar(A::CuSparseMatrixCSR, m::Int, n::Int) = CuSparseMatrixCSR(spzeros(eltype(A), m, n))
118115
end

0 commit comments

Comments
 (0)