From a6fe51a6692e32a3525dd78b30718082e4ab4fab Mon Sep 17 00:00:00 2001 From: Sheehan Olver Date: Mon, 11 May 2020 11:31:08 +0100 Subject: [PATCH] Add `inv(::AbstractQ)` (#35826) * Override `inv` for `AbstractQ` * Add test for inv * Update qr.jl Co-authored-by: Andreas Noack --- stdlib/LinearAlgebra/src/qr.jl | 2 ++ stdlib/LinearAlgebra/test/qr.jl | 7 +++++++ 2 files changed, 9 insertions(+) diff --git a/stdlib/LinearAlgebra/src/qr.jl b/stdlib/LinearAlgebra/src/qr.jl index 995aa1ce8c895f..d60fc2458dea3c 100644 --- a/stdlib/LinearAlgebra/src/qr.jl +++ b/stdlib/LinearAlgebra/src/qr.jl @@ -467,6 +467,8 @@ Base.propertynames(F::QRPivoted, private::Bool=false) = abstract type AbstractQ{T} <: AbstractMatrix{T} end +inv(Q::AbstractQ) = Q' + """ QRPackedQ <: AbstractMatrix diff --git a/stdlib/LinearAlgebra/test/qr.jl b/stdlib/LinearAlgebra/test/qr.jl index 3d6247798067ea..f1d24a06a45bf9 100644 --- a/stdlib/LinearAlgebra/test/qr.jl +++ b/stdlib/LinearAlgebra/test/qr.jl @@ -297,4 +297,11 @@ end end end +@testset "inv(::AbstractQ)" begin + for T in (Float64, ComplexF64) + Q = qr(randn(T,5,5)).Q + @test inv(Q) === Q' + end +end + end # module TestQR