Skip to content

Commit 4fc9005

Browse files
authored
Add (col/row)support for Inv(Triangular) (#332)
1 parent 8fc085d commit 4fc9005

File tree

3 files changed

+27
-1
lines changed

3 files changed

+27
-1
lines changed

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name = "LazyArrays"
22
uuid = "5078a376-72f3-5289-bfd5-ec5146d43c02"
3-
version = "2.1.2"
3+
version = "2.1.3"
44

55
[deps]
66
ArrayLayouts = "4c555306-a7a7-4459-81d9-ec55ddd5c99a"

ext/LazyArraysBandedMatricesExt.jl

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,16 @@ function rowsupport(::AbstractInvLayout{<:AbstractBandedLayout}, A, k)
8787
1:n
8888
end
8989

90+
function colsupport(lay::AbstractInvLayout{<:TriangularLayout}, A, j)
91+
B, = arguments(lay, A)
92+
return colsupport(B, j)
93+
end
94+
95+
function rowsupport(lay::AbstractInvLayout{<:TriangularLayout}, A, k)
96+
B, = arguments(lay, A)
97+
return rowsupport(B, k)
98+
end
99+
90100
isbanded(K::Kron{<:Any,2}) = all(isbanded, K.args)
91101

92102
function bandwidths(K::Kron{<:Any,2})

test/bandedtests.jl

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -890,4 +890,20 @@ LinearAlgebra.lmul!(β::Number, A::PseudoBandedMatrix) = (lmul!(β, A.data); A)
890890
end
891891
end
892892

893+
@testset "Issue #329" begin
894+
for op in (UpperTriangular, UnitUpperTriangular)
895+
A = UpperTriangular(ApplyArray(inv, rand(5, 5)))
896+
B = inv(A)
897+
@test colsupport.(Ref(B), 1:5) == Base.OneTo.(1:5)
898+
@test rowsupport.(Ref(B), 1:5) == range.(1:5, 5)
899+
end
900+
901+
for op in (LowerTriangular, UnitLowerTriangular)
902+
A = LowerTriangular(ApplyArray(inv, rand(15, 15)))
903+
B = inv(A)
904+
@test colsupport.(Ref(B), 1:15) == range.(1:15, 15)
905+
@test rowsupport.(Ref(B), 1:15) == Base.OneTo.(1:15)
906+
end
907+
end
908+
893909
end # module

0 commit comments

Comments
 (0)