You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Add herk! and syrk!
* Avoid widemul and Int128
* Julia 1.12 matmatmul! dispatch
* Broadcast
* Fix return_type
* Avoid pointer test in Julia 1.12 for now
Copy file name to clipboardExpand all lines: lib/mkl/interfaces.jl
+22-12Lines changed: 22 additions & 12 deletions
Original file line number
Diff line number
Diff line change
@@ -2,32 +2,42 @@
2
2
3
3
using LinearAlgebra: BlasComplex, BlasFloat, BlasReal, MulAddMul
4
4
5
-
function LinearAlgebra.generic_matvecmul!(C::oneVector{T}, tA::AbstractChar, A::oneSparseMatrixCSR{T}, B::oneVector{T}, _add::MulAddMul) where T <:BlasFloat
LinearAlgebra.generic_matvecmul!(C, tA, A, B, _add.alpha, _add.beta)
10
+
LinearAlgebra.generic_matmatmul!(C::oneMatrix{T}, tA, tB, A::oneSparseMatrixCSR{T}, B::oneMatrix{T}, _add::MulAddMul) where {T <:Union{Float16, ComplexF16, BlasFloat}} =
11
+
LinearAlgebra.generic_matmatmul!(C, tA, tB, A, B, _add.alpha, _add.beta)
12
+
LinearAlgebra.generic_matmatmul!(C::oneMatrix{T}, tA, tB, A::oneSparseMatrixCSC{T}, B::oneMatrix{T}, _add::MulAddMul) where {T <:Union{Float16, ComplexF16, BlasFloat}} =
13
+
LinearAlgebra.generic_matmatmul!(C, tA, tB, A, B, _add.alpha, _add.beta)
14
+
15
+
function LinearAlgebra.generic_matvecmul!(C::oneVector{T}, tA::AbstractChar, A::oneSparseMatrixCSR{T}, B::oneVector{T}, alpha::Number, beta::Number) where {T <:BlasFloat}
6
16
tA = tA in ('S', 's', 'H', 'h') ?'N': tA
7
-
sparse_gemv!(tA, _add.alpha, A, B, _add.beta, C)
17
+
returnsparse_gemv!(tA, alpha, A, B, beta, C)
8
18
end
9
19
10
-
function LinearAlgebra.generic_matvecmul!(C::oneVector{T}, tA::AbstractChar, A::oneSparseMatrixCSC{T}, B::oneVector{T}, _add::MulAddMul) where T <:BlasReal
20
+
function LinearAlgebra.generic_matvecmul!(C::oneVector{T}, tA::AbstractChar, A::oneSparseMatrixCSC{T}, B::oneVector{T}, alpha::Number, beta::Number) where{T <:BlasReal}
11
21
tA = tA in ('S', 's', 'H', 'h') ?'T':flip_trans(tA)
12
-
sparse_gemv!(tA, _add.alpha, A, B, _add.beta, C)
22
+
returnsparse_gemv!(tA, alpha, A, B, beta, C)
13
23
end
14
24
15
-
function LinearAlgebra.generic_matmatmul!(C::oneMatrix{T}, tA, tB, A::oneSparseMatrixCSR{T}, B::oneMatrix{T}, _add::MulAddMul) where T <:BlasFloat
25
+
function LinearAlgebra.generic_matmatmul!(C::oneMatrix{T}, tA, tB, A::oneSparseMatrixCSR{T}, B::oneMatrix{T}, alpha::Number, beta::Number) where{T <:BlasFloat}
16
26
tA = tA in ('S', 's', 'H', 'h') ?'N': tA
17
27
tB = tB in ('S', 's', 'H', 'h') ?'N': tB
18
-
sparse_gemm!(tA, tB, _add.alpha, A, B, _add.beta, C)
28
+
returnsparse_gemm!(tA, tB, alpha, A, B, beta, C)
19
29
end
20
30
21
-
function LinearAlgebra.generic_matmatmul!(C::oneMatrix{T}, tA, tB, A::oneSparseMatrixCSC{T}, B::oneMatrix{T}, _add::MulAddMul) where T <:BlasReal
31
+
function LinearAlgebra.generic_matmatmul!(C::oneMatrix{T}, tA, tB, A::oneSparseMatrixCSC{T}, B::oneMatrix{T}, alpha::Number, beta::Number) where{T <:BlasReal}
22
32
tA = tA in ('S', 's', 'H', 'h') ?'T':flip_trans(tA)
23
33
tB = tB in ('S', 's', 'H', 'h') ?'N': tB
24
-
sparse_gemm!(tA, tB, _add.alpha, A, B, _add.beta, C)
34
+
returnsparse_gemm!(tA, tB, alpha, A, B, beta, C)
25
35
end
26
36
27
-
function LinearAlgebra.generic_trimatdiv!(C::oneVector{T}, uploc, isunitc, tfun::Function, A::oneSparseMatrixCSR{T}, B::oneVector{T}) where T <:BlasFloat
28
-
sparse_trsv!(uploc, tfun === identity ?'N': tfun === transpose ?'T':'C', isunitc, one(T), A, B, C)
37
+
function LinearAlgebra.generic_trimatdiv!(C::oneVector{T}, uploc, isunitc, tfun::Function, A::oneSparseMatrixCSR{T}, B::oneVector{T}) where{T <:BlasFloat}
38
+
returnsparse_trsv!(uploc, tfun === identity ?'N': tfun === transpose ?'T':'C', isunitc, one(T), A, B, C)
29
39
end
30
40
31
-
function LinearAlgebra.generic_trimatdiv!(C::oneMatrix{T}, uploc, isunitc, tfun::Function, A::oneSparseMatrixCSR{T}, B::oneMatrix{T}) where T <:BlasFloat
32
-
sparse_trsm!(uploc, tfun === identity ?'N': tfun === transpose ?'T':'C', 'N', isunitc, one(T), A, B, C)
41
+
function LinearAlgebra.generic_trimatdiv!(C::oneMatrix{T}, uploc, isunitc, tfun::Function, A::oneSparseMatrixCSR{T}, B::oneMatrix{T}) where{T <:BlasFloat}
42
+
returnsparse_trsm!(uploc, tfun === identity ?'N': tfun === transpose ?'T':'C', 'N', isunitc, one(T), A, B, C)
0 commit comments