From e5127f85f444a65ec1e38f0ab949dcadf7abe5a6 Mon Sep 17 00:00:00 2001 From: Hendrik Ranocha Date: Wed, 13 Jun 2018 07:27:44 +0200 Subject: [PATCH] change vecdot for sparse matrices to dot --- stdlib/SparseArrays/src/linalg.jl | 8 ++++---- stdlib/SparseArrays/test/sparse.jl | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/stdlib/SparseArrays/src/linalg.jl b/stdlib/SparseArrays/src/linalg.jl index 8b81eacf42f54..3d6abf879f60f 100644 --- a/stdlib/SparseArrays/src/linalg.jl +++ b/stdlib/SparseArrays/src/linalg.jl @@ -203,11 +203,11 @@ function spmatmul(A::SparseMatrixCSC{Tv,Ti}, B::SparseMatrixCSC{Tv,Ti}; return C end -# Frobenius inner product: trace(A'B) -function vecdot(A::SparseMatrixCSC{T1,S1},B::SparseMatrixCSC{T2,S2}) where {T1,T2,S1,S2} +# Frobenius dot/inner product: trace(A'B) +function dot(A::SparseMatrixCSC{T1,S1},B::SparseMatrixCSC{T2,S2}) where {T1,T2,S1,S2} m, n = size(A) size(B) == (m,n) || throw(DimensionMismatch("matrices must have the same dimensions")) - r = vecdot(zero(T1), zero(T2)) + r = dot(zero(T1), zero(T2)) @inbounds for j = 1:n ia = A.colptr[j]; ia_nxt = A.colptr[j+1] ib = B.colptr[j]; ib_nxt = B.colptr[j+1] @@ -223,7 +223,7 @@ function vecdot(A::SparseMatrixCSC{T1,S1},B::SparseMatrixCSC{T2,S2}) where {T1,T ib < ib_nxt || break rb = B.rowval[ib] else # ra == rb - r += vecdot(A.nzval[ia], B.nzval[ib]) + r += dot(A.nzval[ia], B.nzval[ib]) ia += oneunit(S1); ib += oneunit(S2) ia < ia_nxt && ib < ib_nxt || break ra = A.rowval[ia]; rb = B.rowval[ib] diff --git a/stdlib/SparseArrays/test/sparse.jl b/stdlib/SparseArrays/test/sparse.jl index 3e649bf227332..6309efc11b8a0 100644 --- a/stdlib/SparseArrays/test/sparse.jl +++ b/stdlib/SparseArrays/test/sparse.jl @@ -351,13 +351,13 @@ end end end -@testset "sparse Frobenius inner product" begin +@testset "sparse Frobenius dot/inner product" begin for i = 1:5 A = sprand(ComplexF64,10,15,0.4) B = sprand(ComplexF64,10,15,0.5) - @test vecdot(A,B) ≈ vecdot(Matrix(A),Matrix(B)) + @test dot(A,B) ≈ dot(Matrix(A),Matrix(B)) end - @test_throws DimensionMismatch vecdot(sprand(5,5,0.2),sprand(5,6,0.2)) + @test_throws DimensionMismatch dot(sprand(5,5,0.2),sprand(5,6,0.2)) end sA = sprandn(3, 7, 0.5)