Skip to content

Commit 5d7d06d

Browse files
author
Katharine Hyatt
committed
Support GenericFloats too
1 parent 2e7aced commit 5d7d06d

File tree

3 files changed

+11
-5
lines changed

3 files changed

+11
-5
lines changed

ext/MatrixAlgebraKitGenericLinearAlgebraExt.jl

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ module MatrixAlgebraKitGenericLinearAlgebraExt
22

33
using MatrixAlgebraKit
44
using MatrixAlgebraKit: sign_safe, check_input, diagview, gaugefix!, one!, default_fixgauge
5+
using MatrixAlgebraKit: left_orth_alg
56
using GenericLinearAlgebra: svd!, svdvals!, eigen!, eigvals!, Hermitian, qr!
67
using LinearAlgebra: I, Diagonal, lmul!
78

@@ -133,4 +134,6 @@ function MatrixAlgebraKit.default_lq_algorithm(::Type{T}; kwargs...) where {T <:
133134
return MatrixAlgebraKit.LQViaTransposedQR(GLA_HouseholderQR(; kwargs...))
134135
end
135136

137+
MatrixAlgebraKit.left_orth_alg(alg::GLA_HouseholderQR) = MatrixAlgebraKit.LeftOrthViaQR(alg)
138+
136139
end

test/linearmap.jl

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@ module LinearMaps
33
export LinearMap
44

55
using MatrixAlgebraKit
6-
using MatrixAlgebraKit: AbstractAlgorithm, DiagonalAlgorithm
6+
using MatrixAlgebraKit: AbstractAlgorithm, DiagonalAlgorithm, GLA_QRIteration
7+
using GenericLinearAlgebra
78
import MatrixAlgebraKit as MAK
89

910
using LinearAlgebra: LinearAlgebra, lmul!, rmul!
@@ -30,8 +31,12 @@ module LinearMaps
3031
MAK.check_input($f!, parent(A), parent.(F), alg)
3132
@eval MAK.initialize_output(::typeof($f!), A::LinearMap, alg::AbstractAlgorithm) =
3233
LinearMap.(MAK.initialize_output($f!, parent(A), alg))
34+
@eval MAK.initialize_output(::typeof($f!), A::LinearMap, alg::GLA_QRIteration) =
35+
(nothing, nothing, nothing)
3336
@eval MAK.$f!(A::LinearMap, F, alg::AbstractAlgorithm) =
3437
LinearMap.(MAK.$f!(parent(A), parent.(F), alg))
38+
@eval MAK.$f!(A::LinearMap, F, alg::GLA_QRIteration) =
39+
LinearMap.(MAK.$f!(parent(A), F, alg))
3540
@eval MAK.check_input(::typeof($f!), A::LinearMap, F, alg::DiagonalAlgorithm) =
3641
MAK.check_input($f!, parent(A), parent.(F), alg)
3742
@eval MAK.initialize_output(::typeof($f!), A::LinearMap, alg::DiagonalAlgorithm) =

test/orthnull.jl

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ using LinearAlgebra: LinearAlgebra, I, Diagonal
66
using CUDA, AMDGPU
77

88
BLASFloats = (Float32, Float64, ComplexF32, ComplexF64)
9-
GenericFloats = (Float16, BigFloat, Complex{BigFloat})
9+
GenericFloats = (BigFloat, Complex{BigFloat})
1010

1111
@isdefined(TestSuite) || include("testsuite/TestSuite.jl")
1212
using .TestSuite
@@ -27,9 +27,7 @@ for T in (BLASFloats..., GenericFloats...), n in (37, m, 63)
2727
end
2828
end
2929
if !is_buildkite
30-
if T BLASFloats # no qr_null or lq_null for GenericFloats
31-
TestSuite.test_orthnull(T, (m, n))
32-
end
30+
TestSuite.test_orthnull(T, (m, n))
3331
#AT = Diagonal{T, Vector{T}}
3432
#TestSuite.test_orthnull(AT, m) # not supported
3533
end

0 commit comments

Comments
 (0)