Skip to content

Commit 0e15007

Browse files
committed
slight reorganization of supports_f
1 parent 0bd5c7f commit 0e15007

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
@@ -101,8 +101,6 @@ end
101101

102102
supports_eig(::Driver, ::Symbol) = false
103103
supports_eig(::LAPACK, f::Symbol) = f in (:simple, :expert)
104-
supports_eig(::CUSOLVER, f::Symbol) = f === :simple
105-
supports_eig(::GS, f::Symbol) = f === :simple
106104

107105
for (f, f_lapack!, Alg) in (
108106
(:simple, :geev!, :Simple),

src/implementations/eigh.jl

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

111111
supports_eigh(::Driver, ::Symbol) = false
112112
supports_eigh(::LAPACK, f::Symbol) = f in (:mrrr, :divide_and_conquer, :qr_iteration, :bisection)
113-
supports_eigh(::GLA, f::Symbol) = f === :qr_iteration
114-
supports_eigh(::CUSOLVER, f::Symbol) = f in (:jacobi, :divide_and_conquer)
115-
supports_eigh(::ROCSOLVER, f::Symbol) = f in (:jacobi, :divide_and_conquer, :qr_iteration, :bisection)
116113

117114
for (f, f_lapack!, Alg) in (
118115
(:mrrr, :heevr!, :MultipleRelativelyRobustRepresentations),

src/implementations/svd.jl

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

227227
supports_svd(::Driver, ::Symbol) = false
228228
supports_svd(::LAPACK, f::Symbol) = f in (:safe_divide_and_conquer, :divide_and_conquer, :qr_iteration, :bisection, :jacobi)
229-
supports_svd(::GLA, f::Symbol) = f === :qr_iteration
230229
supports_svd_full(::Driver, ::Symbol) = false
231230
supports_svd_full(::LAPACK, f::Symbol) = f in (:safe_divide_and_conquer, :divide_and_conquer, :qr_iteration)
232-
supports_svd_full(::GLA, f::Symbol) = f === :qr_iteration
233231

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

0 commit comments

Comments
 (0)