Skip to content

Commit 49358fd

Browse files
committed
slight reorganization of supports_f
1 parent f8787ea commit 49358fd

7 files changed

Lines changed: 9 additions & 8 deletions

File tree

ext/MatrixAlgebraKitAMDGPUExt/MatrixAlgebraKitAMDGPUExt.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ end
3030

3131
MatrixAlgebraKit.supports_svd(::ROCSOLVER, f::Symbol) = f in (:qr_iteration, :jacobi)
3232
MatrixAlgebraKit.supports_svd_full(::ROCSOLVER, f::Symbol) = f in (:qr_iteration, :jacobi)
33+
MatrixAlgebraKit.supports_eigh(::ROCSOLVER, f::Symbol) = f in (:jacobi, :divide_and_conquer, :qr_iteration, :bisection)
3334

3435
function gesvd!(::ROCSOLVER, A::StridedROCMatrix, S::StridedROCVector, U::StridedROCMatrix, Vᴴ::StridedROCMatrix; kwargs...)
3536
m, n = size(A)

ext/MatrixAlgebraKitCUDAExt/MatrixAlgebraKitCUDAExt.jl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ for f in (:geqrf!, :ungqr!, :unmqr!)
3333
@eval $f(::CUSOLVER, args...) = YACUSOLVER.$f(args...)
3434
end
3535

36+
MatrixAlgebraKit.supports_eig(::CUSOLVER, f::Symbol) = f === :simple
37+
MatrixAlgebraKit.supports_eigh(::CUSOLVER, f::Symbol) = f in (:jacobi, :divide_and_conquer)
3638
MatrixAlgebraKit.supports_svd(::CUSOLVER, f::Symbol) = f in (:qr_iteration, :jacobi, :svd_polar)
3739
MatrixAlgebraKit.supports_svd_full(::CUSOLVER, f::Symbol) = f in (:qr_iteration, :jacobi, :svd_polar)
3840

ext/MatrixAlgebraKitGenericLinearAlgebraExt.jl

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@ const GlaFloat = Union{BigFloat, Complex{BigFloat}}
1111
const GlaStridedVecOrMatrix{T <: GlaFloat} = Union{StridedVector{T}, StridedMatrix{T}}
1212
MatrixAlgebraKit.default_driver(::Type{<:QRIteration}, ::Type{TA}) where {TA <: GlaStridedVecOrMatrix} = GLA()
1313

14+
MatrixAlgebraKit.supports_eigh(::GLA, f::Symbol) = f === :qr_iteration
15+
MatrixAlgebraKit.supports_svd(::GLA, f::Symbol) = f === :qr_iteration
16+
MatrixAlgebraKit.supports_svd_full(::GLA, f::Symbol) = f === :qr_iteration
17+
1418
function MatrixAlgebraKit.default_svd_algorithm(::Type{T}; kwargs...) where {T <: GlaStridedVecOrMatrix}
1519
return QRIteration(; kwargs...)
1620
end

ext/MatrixAlgebraKitGenericSchurExt.jl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@ end
1414

1515
MatrixAlgebraKit.default_driver(::Type{<:Simple}, ::Type{TA}) where {TA <: StridedMatrix{<:GSFloat}} = GS()
1616

17-
supports_schur(::GS, f::Symbol) = f === :simple
17+
MatrixAlgebraKit.supports_schur(::GS, f::Symbol) = f === :simple
18+
MatrixAlgebraKit.supports_eig(::GS, f::Symbol) = f === :simple
1819

1920
function geev!(::GS, A::AbstractMatrix, Dd::AbstractVector, V::AbstractMatrix; kwargs...)
2021
D, Vmat = GenericSchur.eigen!(A)

src/implementations/eig.jl

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,8 +91,6 @@ end
9191

9292
supports_eig(::Driver, ::Symbol) = false
9393
supports_eig(::LAPACK, f::Symbol) = f in (:simple, :expert)
94-
supports_eig(::CUSOLVER, f::Symbol) = f === :simple
95-
supports_eig(::GS, f::Symbol) = f === :simple
9694

9795
for (f, f_lapack!, Alg) in (
9896
(:simple, :geev!, :Simple),

src/implementations/eigh.jl

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -99,9 +99,6 @@ end
9999

100100
supports_eigh(::Driver, ::Symbol) = false
101101
supports_eigh(::LAPACK, f::Symbol) = f in (:mrrr, :divide_and_conquer, :qr_iteration, :bisection)
102-
supports_eigh(::GLA, f::Symbol) = f === :qr_iteration
103-
supports_eigh(::CUSOLVER, f::Symbol) = f in (:jacobi, :divide_and_conquer)
104-
supports_eigh(::ROCSOLVER, f::Symbol) = f in (:jacobi, :divide_and_conquer, :qr_iteration, :bisection)
105102

106103
for (f, f_lapack!, Alg) in (
107104
(:mrrr, :heevr!, :MultipleRelativelyRobustRepresentations),

src/implementations/svd.jl

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -215,10 +215,8 @@ end
215215

216216
supports_svd(::Driver, ::Symbol) = false
217217
supports_svd(::LAPACK, f::Symbol) = f in (:safe_divide_and_conquer, :divide_and_conquer, :qr_iteration, :bisection, :jacobi)
218-
supports_svd(::GLA, f::Symbol) = f === :qr_iteration
219218
supports_svd_full(::Driver, ::Symbol) = false
220219
supports_svd_full(::LAPACK, f::Symbol) = f in (:safe_divide_and_conquer, :divide_and_conquer, :qr_iteration)
221-
supports_svd_full(::GLA, f::Symbol) = f === :qr_iteration
222220

223221
function svd_trunc_no_error!(A, USVᴴ, alg::TruncatedAlgorithm)
224222
U, S, Vᴴ = svd_compact!(A, USVᴴ, alg.alg)

0 commit comments

Comments
 (0)