9999
100100
101101function gemm! (alpha, M:: SparseMatrixCSC , B:: AbstractMatrix , beta, result:: AbstractMatrix )
102+ size (M, 2 ) == size (B, 1 ) || throw (DimensionMismatch ())
103+ size (M, 1 ) == size (result, 1 ) || throw (DimensionMismatch ())
104+ size (B, 2 ) == size (result, 2 ) || throw (DimensionMismatch ())
102105 if iszero (beta)
103106 fill! (result, beta)
104107 elseif ! isone (beta)
@@ -112,6 +115,9 @@ function gemm!(alpha, M::SparseMatrixCSC, B::AbstractMatrix, beta, result::Abstr
112115end
113116
114117function gemm! (alpha, B:: AbstractMatrix , M:: SparseMatrixCSC , beta, result:: AbstractMatrix )
118+ size (M, 1 ) == size (B, 2 ) || throw (DimensionMismatch ())
119+ size (M, 2 ) == size (result,2 ) || throw (DimensionMismatch ())
120+ size (B, 1 ) == size (result,1 ) || throw (DimensionMismatch ())
115121 if iszero (beta)
116122 fill! (result, beta)
117123 elseif ! isone (beta)
@@ -146,6 +152,9 @@ function gemm!(alpha, M_::Adjoint{T,<:SparseMatrixCSC{T}}, B::AbstractMatrix, be
146152 if nnz (M) > 550
147153 LinearAlgebra. mul! (result, M_, B, alpha, beta)
148154 else
155+ size (M_, 2 ) == size (B, 1 ) || throw (DimensionMismatch ())
156+ size (M_, 1 ) == size (result, 1 ) || throw (DimensionMismatch ())
157+ size (B, 2 ) == size (result, 2 ) || throw (DimensionMismatch ())
149158 if iszero (beta)
150159 fill! (result, beta)
151160 elseif ! isone (beta)
@@ -156,6 +165,9 @@ function gemm!(alpha, M_::Adjoint{T,<:SparseMatrixCSC{T}}, B::AbstractMatrix, be
156165end
157166
158167function gemm! (alpha, B:: AbstractMatrix , M:: Adjoint{T,<:SparseMatrixCSC{T}} , beta, result:: AbstractMatrix ) where T
168+ size (M, 1 ) == size (B, 2 ) || throw (DimensionMismatch ())
169+ size (M, 2 ) == size (result,2 ) || throw (DimensionMismatch ())
170+ size (B, 1 ) == size (result,1 ) || throw (DimensionMismatch ())
159171 if iszero (beta)
160172 fill! (result, beta)
161173 elseif ! isone (beta)
@@ -178,6 +190,9 @@ function gemm!(alpha, A::SparseMatrixCSC, B::SparseMatrixCSC, beta, result::Abst
178190end
179191
180192function gemv! (alpha, M:: SparseMatrixCSC , v:: AbstractVector , beta, result:: AbstractVector )
193+ size (M, 2 ) == size (v, 1 ) || throw (DimensionMismatch ())
194+ size (M, 1 ) == size (result, 1 ) || throw (DimensionMismatch ())
195+
181196 if iszero (beta)
182197 fill! (result, beta)
183198 elseif ! isone (beta)
@@ -201,6 +216,9 @@ function gemv!(alpha, M::SparseMatrixCSC, v::AbstractVector, beta, result::Abstr
201216end
202217
203218function gemv! (alpha, v:: AbstractVector , M:: SparseMatrixCSC , beta, result:: AbstractVector )
219+ size (M, 1 ) == size (v, 1 ) || throw (DimensionMismatch ())
220+ size (M, 2 ) == size (result, 1 ) || throw (DimensionMismatch ())
221+
204222 if iszero (beta)
205223 fill! (result, beta)
206224 elseif ! isone (beta)
0 commit comments