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
function MatrixAlgebraKit.default_qr_algorithm(::Type{T}; kwargs...) where {T <:StridedCuMatrix}
20
+
function MatrixAlgebraKit.default_qr_algorithm(::Type{T}; kwargs...) where {TT <:BlasFloat, T <:StridedCuMatrix{TT}}
19
21
return CUSOLVER_HouseholderQR(; kwargs...)
20
22
end
21
-
function MatrixAlgebraKit.default_lq_algorithm(::Type{T}; kwargs...) where {T <:StridedCuMatrix}
23
+
function MatrixAlgebraKit.default_lq_algorithm(::Type{T}; kwargs...) where {TT <:BlasFloat, T <:StridedCuMatrix{TT}}
22
24
qr_alg = CUSOLVER_HouseholderQR(; kwargs...)
23
25
return LQViaTransposedQR(qr_alg)
24
26
end
25
-
function MatrixAlgebraKit.default_svd_algorithm(::Type{T}; kwargs...) where {T <:StridedCuMatrix}
27
+
function MatrixAlgebraKit.default_svd_algorithm(::Type{T}; kwargs...) where {TT <:BlasFloat, T <:StridedCuMatrix{TT}}
26
28
return CUSOLVER_QRIteration(; kwargs...)
27
29
end
28
-
function MatrixAlgebraKit.default_eig_algorithm(::Type{T}; kwargs...) where {T <:StridedCuMatrix}
30
+
function MatrixAlgebraKit.default_eig_algorithm(::Type{T}; kwargs...) where {TT <:BlasFloat, T <:StridedCuMatrix{TT}}
29
31
return CUSOLVER_Simple(; kwargs...)
30
32
end
31
-
function MatrixAlgebraKit.default_eigh_algorithm(::Type{T}; kwargs...) where {T <:StridedCuMatrix}
33
+
function MatrixAlgebraKit.default_eigh_algorithm(::Type{T}; kwargs...) where {TT <:BlasFloat, T <:StridedCuMatrix{TT}}
32
34
return CUSOLVER_DivideAndConquer(; kwargs...)
33
35
end
34
36
37
+
# include for block sector support
38
+
function MatrixAlgebraKit.default_qr_algorithm(::Type{Base.ReshapedArray{T, 2, SubArray{T, 1, A, Tuple{UnitRange{Int}}, true}, Tuple{}}}; kwargs...) where {T <:BlasFloat, A <:CuVecOrMat{T}}
39
+
return CUSOLVER_HouseholderQR(; kwargs...)
40
+
end
41
+
function MatrixAlgebraKit.default_lq_algorithm(::Type{Base.ReshapedArray{T, 2, SubArray{T, 1, A, Tuple{UnitRange{Int}}, true}, Tuple{}}}; kwargs...) where {T <:BlasFloat, A <:CuVecOrMat{T}}
42
+
qr_alg = CUSOLVER_HouseholderQR(; kwargs...)
43
+
return LQViaTransposedQR(qr_alg)
44
+
end
45
+
function MatrixAlgebraKit.default_svd_algorithm(::Type{Base.ReshapedArray{T, 2, SubArray{T, 1, A, Tuple{UnitRange{Int}}, true}, Tuple{}}}; kwargs...) where {T <:BlasFloat, A <:CuVecOrMat{T}}
46
+
return CUSOLVER_Jacobi(; kwargs...)
47
+
end
48
+
function MatrixAlgebraKit.default_eig_algorithm(::Type{Base.ReshapedArray{T, 2, SubArray{T, 1, A, Tuple{UnitRange{Int}}, true}, Tuple{}}}; kwargs...) where {T <:BlasFloat, A <:CuVecOrMat{T}}
49
+
return CUSOLVER_Simple(; kwargs...)
50
+
end
51
+
function MatrixAlgebraKit.default_eigh_algorithm(::Type{Base.ReshapedArray{T, 2, SubArray{T, 1, A, Tuple{UnitRange{Int}}, true}, Tuple{}}}; kwargs...) where {T <:BlasFloat, A <:CuVecOrMat{T}}
0 commit comments