Skip to content

Commit 7d3e4d1

Browse files
committed
increase coverage
1 parent 18840a5 commit 7d3e4d1

File tree

4 files changed

+31
-6
lines changed

4 files changed

+31
-6
lines changed

src/InfiniteLinearAlgebra.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ import LazyArrays: AbstractCachedMatrix, AbstractCachedVector, AbstractLazyLayou
4040
CachedArray, CachedLayout, CachedMatrix, CachedVector, LazyArrayStyle, LazyLayout,
4141
LazyLayouts, LazyMatrix, LazyVector, AbstractPaddedLayout, PaddedColumns, _broadcast_sub_arguments,
4242
applybroadcaststyle, applylayout, arguments, cacheddata, paddeddata, resizedata!, simplifiable,
43-
simplify, islazy, islazy_layout, cache_getindex, cache_layout
43+
simplify, islazy, islazy_layout, cache_getindex, cache_layout, AbstractInvLayout
4444

4545
import LazyBandedMatrices: AbstractLazyBandedBlockBandedLayout, AbstractLazyBandedLayout, AbstractLazyBlockBandedLayout, ApplyBandedLayout, BlockVec,
4646
BroadcastBandedLayout, KronTravBandedBlockBandedLayout, LazyBandedLayout,

src/infcholesky.jl

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,10 @@ struct AdaptiveCholeskyFactorsBlockBandedLayout <: AbstractLazyBlockBandedLayout
2323

2424
const AdaptiveCholeskyFactorsLayouts = Union{AdaptiveCholeskyFactorsLayout,AdaptiveCholeskyFactorsBandedLayout,AdaptiveCholeskyFactorsBlockBandedLayout}
2525

26-
adaptivecholeskyfactorslayout(_) = AdaptiveCholeskyFactorsLayout()
26+
# TODO: support other than Banded
27+
# adaptivecholeskyfactorslayout(_) = AdaptiveCholeskyFactorsLayout()
2728
adaptivecholeskyfactorslayout(::BandedLayouts) = AdaptiveCholeskyFactorsBandedLayout()
28-
adaptivecholeskyfactorslayout(::BlockBandedLayouts) = AdaptiveCholeskyFactorsBlockBandedLayout()
29+
# adaptivecholeskyfactorslayout(::BlockBandedLayouts) = AdaptiveCholeskyFactorsBlockBandedLayout()
2930

3031

3132
MemoryLayout(::Type{AdaptiveCholeskyFactors{T,DM}}) where {T,DM} = adaptivecholeskyfactorslayout(MemoryLayout(DM))

src/infqr.jl

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ adaptiveqrfactorslayout(::BlockBandedLayouts) = AdaptiveQRFactorsBlockBandedLayo
106106

107107
MemoryLayout(::Type{AdaptiveQRFactors{T,DM}}) where {T,DM} =adaptiveqrfactorslayout(MemoryLayout(DM))
108108
triangularlayout(::Type{Tri}, ::ML) where {Tri, ML<:AdaptiveQRFactorsLayouts} = Tri{ML}()
109-
transposelayout(A::AdaptiveQRFactorsLayouts) = A
109+
# transposelayout(A::AdaptiveQRFactorsLayouts) = A
110110

111111
size(F::AdaptiveQRFactors) = size(F.data.data)
112112
axes(F::AdaptiveQRFactors) = axes(F.data.data)
@@ -174,7 +174,7 @@ factorize_layout(::BandedLayouts, ::NTuple{2,OneToInf{Int}}, A) = qr(A)
174174
factorize_layout(::AbstractBandedLayout, ::NTuple{2,OneToInf{Int}}, A) = qr(A)
175175

176176

177-
cache_layout(::TriangularLayout{UPLO, UNIT, <:AdaptiveQRFactorsLayouts}, A::AbstractMatrix) where {UPLO, UNIT} = A # already cached
177+
cache_layout(::TriangularLayout{'U', 'N', AdaptiveQRFactorsBandedLayout}, A::AbstractMatrix) = A # already cached
178178

179179
partialqr!(F::QR, n) = partialqr!(F.factors, n)
180180
partialqr!(F::AdaptiveQRFactors, n) = partialqr!(F.data, n)
@@ -382,6 +382,7 @@ simplifiable(M::Mul{<:QRPackedQLayout{<:AdaptiveQRFactorsLayouts},<:QRPackedQLay
382382
simplifiable(M::Mul{<:QRPackedQLayout{<:AdaptiveQRFactorsLayouts},<:LazyLayouts}) = Val(false)
383383
simplifiable(M::Mul{<:Any,<:QRPackedQLayout{<:AdaptiveQRFactorsLayouts}}) = Val(false)
384384
simplifiable(M::Mul{<:LazyLayouts,<:QRPackedQLayout{<:AdaptiveQRFactorsLayouts}}) = Val(false)
385+
simplifiable(M::Mul{<:AbstractInvLayout,<:QRPackedQLayout{<:AdaptiveQRFactorsLayouts}}) = Val(false)
385386

386387

387388
copy(M::Mul{<:QRPackedQLayout{<:AdaptiveQRFactorsLayouts}, <:QRPackedQLayout{<:AdaptiveQRFactorsLayouts}}) = simplify(M)

test/test_infqr.jl

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
using InfiniteLinearAlgebra, LinearAlgebra, BandedMatrices, InfiniteArrays, MatrixFactorizations, LazyArrays,
22
FillArrays, SpecialFunctions, Test, SemiseparableMatrices, LazyBandedMatrices, BlockArrays, BlockBandedMatrices, ArrayLayouts
3-
import LazyArrays: colsupport, rowsupport, MemoryLayout, DenseColumnMajor, TriangularLayout, resizedata!, arguments
3+
import LazyArrays: colsupport, rowsupport, MemoryLayout, DenseColumnMajor, TriangularLayout, resizedata!, arguments, simplifiable
44
import LazyBandedMatrices: BroadcastBandedLayout, InvDiagTrav, BroadcastBandedBlockBandedLayout
55
import BandedMatrices: _BandedMatrix, _banded_qr!, BandedColumns
66
import InfiniteLinearAlgebra: partialqr!, AdaptiveQRData, AdaptiveQRFactorsBandedLayout, adaptiveqr
@@ -165,6 +165,29 @@ import SemiseparableMatrices: AlmostBandedLayout, VcatAlmostBandedLayout
165165
@test F\b F\view(b,:)
166166
@test_broken F\b ldiv!(F, view(copy(b),:))
167167
end
168+
169+
@testset "cache/mul" begin
170+
A = _BandedMatrix(Vcat(Ones(1,∞), (1:∞)', Ones(1,∞)), ℵ₀, 1, 1)
171+
Q,R = qr(A)
172+
@test cache(R) R
173+
174+
@test simplifiable(*, R, A) == Val(false)
175+
@test simplifiable(*, A, R) == Val(false)
176+
@test simplifiable(*, parent(R), A) == Val(false)
177+
@test simplifiable(*, A, parent(R)) == Val(false)
178+
@test simplifiable(*, inv(R), A) == Val(false)
179+
@test simplifiable(*, A, inv(R)) == Val(false)
180+
@test simplifiable(*, inv(R), Q) == Val(false)
181+
@test simplifiable(*, Q, inv(R)) == Val(false)
182+
@test simplifiable(*, Symmetric(inv(R)), Q) == Val(false)
183+
@test simplifiable(*, Q, Symmetric(inv(R))) == Val(false)
184+
@test (R * A)[1:10,1:10] R[1:10,1:11] * A[1:11,1:10]
185+
@test (Q * A)[1:10,1:10] Q[1:10,1:11] * A[1:11,1:10]
186+
@test mul(Q, Symmetric(inv(R))) isa ApplyArray # several bugs avoided heree
187+
@test mul(Symmetric(inv(R)), Q) isa ApplyArray # several bugs avoided heree
188+
@test (parent(R) * A)[1:10,1:10] parent(R)[1:10,1:11] * A[1:11,1:10]
189+
190+
end
168191
end
169192

170193
@testset "almost-banded" begin

0 commit comments

Comments
 (0)