Skip to content

Commit 3aa78c6

Browse files
Backports to fix 0.18 on 1.11 (#230)
* remove usage of 2-arg `LA.AbstractTriangular` (#146) * remove usage of 2-arg `LA.AbstractTriangular` * fix * another fix * fix v1.9 * include review comments * Update Project.toml * Update src/ArrayLayouts.jl Co-authored-by: Alex Arslan <[email protected]> --------- Co-authored-by: Alex Arslan <[email protected]> (cherry picked from commit 32e5ab8) * change an exact equality check to approximate * bump version --------- Co-authored-by: Daniel Karrasch <[email protected]>
1 parent a87259a commit 3aa78c6

File tree

4 files changed

+16
-9
lines changed

4 files changed

+16
-9
lines changed

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name = "ArrayLayouts"
22
uuid = "4c555306-a7a7-4459-81d9-ec55ddd5c99a"
33
authors = ["Sheehan Olver <[email protected]>"]
4-
version = "0.8.18"
4+
version = "0.8.19"
55

66
[deps]
77
FillArrays = "1a297f60-69ca-5386-bcde-b61e274b549b"

src/ArrayLayouts.jl

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,15 @@ else
5151
const CRowMaximum = RowMaximum
5252
const CNoPivot = NoPivot
5353
end
54-
54+
55+
if VERSION v"1.11.0-DEV.21"
56+
using LinearAlgebra: UpperOrLowerTriangular
57+
else
58+
const UpperOrLowerTriangular{T,S} = Union{LinearAlgebra.UpperTriangular{T,S},
59+
LinearAlgebra.UnitUpperTriangular{T,S},
60+
LinearAlgebra.LowerTriangular{T,S},
61+
LinearAlgebra.UnitLowerTriangular{T,S}}
62+
end
5563

5664
struct ApplyBroadcastStyle <: BroadcastStyle end
5765
@inline function copyto!(dest::AbstractArray, bc::Broadcasted{ApplyBroadcastStyle})
@@ -146,7 +154,7 @@ end
146154
macro layoutgetindex(Typ)
147155
esc(quote
148156
ArrayLayouts.@_layoutgetindex $Typ
149-
ArrayLayouts.@_layoutgetindex LinearAlgebra.AbstractTriangular{<:Any,<:$Typ}
157+
ArrayLayouts.@_layoutgetindex ArrayLayouts.UpperOrLowerTriangular{<:Any,<:$Typ}
150158
ArrayLayouts.@_layoutgetindex LinearAlgebra.Symmetric{<:Any,<:$Typ}
151159
ArrayLayouts.@_layoutgetindex LinearAlgebra.Hermitian{<:Any,<:$Typ}
152160
ArrayLayouts.@_layoutgetindex LinearAlgebra.Adjoint{<:Any,<:$Typ}
@@ -351,7 +359,7 @@ Base.replace_in_print_matrix(A::Union{LayoutVector,
351359
Base.print_matrix_row(io::IO,
352360
X::Union{LayoutMatrix,
353361
LayoutVector,
354-
AbstractTriangular{<:Any,<:LayoutMatrix},
362+
UpperOrLowerTriangular{<:Any,<:LayoutMatrix},
355363
AdjOrTrans{<:Any,<:LayoutMatrix},
356364
AdjOrTrans{<:Any,<:LayoutVector},
357365
HermOrSym{<:Any,<:LayoutMatrix},

src/memorylayout.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -709,8 +709,8 @@ end
709709

710710
axes(A::HermOrSym{<:Any,<:LayoutMatrix}) = _sym_axes(A)
711711
axes(A::HermOrSym{<:Any,<:SubArray{<:Any,2,<:LayoutMatrix}}) = _sym_axes(A)
712-
axes(A::AbstractTriangular{<:Any,<:LayoutMatrix}) = axes(parent(A))
713-
axes(A::AbstractTriangular{<:Any,<:SubArray{<:Any,2,<:LayoutMatrix}}) = axes(parent(A))
712+
axes(A::UpperOrLowerTriangular{<:Any,<:LayoutMatrix}) = axes(parent(A))
713+
axes(A::UpperOrLowerTriangular{<:Any,<:SubArray{<:Any,2,<:LayoutMatrix}}) = axes(parent(A))
714714

715715
function axes(D::Diagonal{<:Any,<:LayoutVector})
716716
a = axes(parent(D),1)

test/test_ldiv.jl

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ import ArrayLayouts: ApplyBroadcastStyle, QRCompactWYQLayout, QRCompactWYLayout,
4242
b = randn(T,5)
4343
@test all(copyto!(similar(b), Ldiv(A,b)) .===
4444
(similar(b) .= Ldiv(A,b)) .===
45-
(A\b) .=== (b̃ = copy(b); LAPACK.gesv!(copy(A), b̃); b̃))
45+
(A\b) (b̃ = copy(b); LAPACK.gesv!(copy(A), b̃); b̃))
4646

4747
@test copyto!(similar(b), Ldiv(UpperTriangular(A) , b)) UpperTriangular(A) \ b
4848
@test all(copyto!(similar(b), Ldiv(UpperTriangular(A) , b)) .===
@@ -94,7 +94,7 @@ import ArrayLayouts: ApplyBroadcastStyle, QRCompactWYQLayout, QRCompactWYLayout,
9494
@test LowerTriangular(A') \ B copyto!(similar(B) , Ldiv(LowerTriangular(A'), B)) (B .= Ldiv(LowerTriangular(A'), B))
9595
@test UnitUpperTriangular(A) \ B copyto!(similar(B) , Ldiv(UnitUpperTriangular(A), B)) (B .= Ldiv(UnitUpperTriangular(A), B))
9696
@test UnitUpperTriangular(A') \ B copyto!(similar(B) , Ldiv(UnitUpperTriangular(A'), B)) (B .= Ldiv(UnitUpperTriangular(A'), B))
97-
@test UnitLowerTriangular(A') \ B copyto!(similar(B) , Ldiv(UnitLowerTriangular(A'), B)) (B .= Ldiv(UnitLowerTriangular(A'), B))
97+
@test UnitLowerTriangular(A') \ B copyto!(similar(B) , Ldiv(UnitLowerTriangular(A'), B)) (B .= Ldiv(UnitLowerTriangular(A'), B))
9898

9999
C = randn(5,5) + im * randn(5,5)
100100
D = randn(5,5) + im * randn(5,5)
@@ -285,4 +285,3 @@ import ArrayLayouts: ApplyBroadcastStyle, QRCompactWYQLayout, QRCompactWYLayout,
285285
@test_broken ArrayLayouts.rdiv!(similar(B), D, B) == D / B
286286
end
287287
end
288-

0 commit comments

Comments
 (0)