Skip to content

Commit 237e994

Browse files
authored
Move to Infinities.jl (#68)
* Move to Infinities.jl * switch to ArrayLayouts-v0.6 * restore sub/diagonaldata * increase coverage
1 parent aaf9793 commit 237e994

File tree

12 files changed

+123
-110
lines changed

12 files changed

+123
-110
lines changed

Project.toml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name = "InfiniteLinearAlgebra"
22
uuid = "cde9dba0-b1de-11e9-2c62-0bab9446c55c"
3-
version = "0.4.8"
3+
version = "0.5.0"
44

55
[deps]
66
ArrayLayouts = "4c555306-a7a7-4459-81d9-ec55ddd5c99a"
@@ -9,19 +9,20 @@ BlockArrays = "8e7c35d0-a365-5155-bbbb-fb81a777f24e"
99
BlockBandedMatrices = "ffab5731-97b5-5995-9138-79e8c1846df0"
1010
FillArrays = "1a297f60-69ca-5386-bcde-b61e274b549b"
1111
InfiniteArrays = "4858937d-0d70-526a-a4dd-2d5cb5dd786c"
12+
Infinities = "e1ba4f0e-776d-440f-acd9-e1d2e9742647"
1213
LazyArrays = "5078a376-72f3-5289-bfd5-ec5146d43c02"
1314
LazyBandedMatrices = "d7e5e226-e90b-4449-9968-0f923699bf6f"
1415
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
1516
MatrixFactorizations = "a3b82374-2e81-5b9e-98ce-41277c0e4c87"
1617
SemiseparableMatrices = "f8ebbe35-cbfb-4060-bf7f-b10e4670cf57"
1718

1819
[compat]
19-
ArrayLayouts = "0.5.1"
20+
ArrayLayouts = "0.5.1, 0.6"
2021
BandedMatrices = "0.16"
21-
BlockArrays = "0.14.3"
22+
BlockArrays = "0.14.5"
2223
BlockBandedMatrices = "0.10"
2324
FillArrays = "0.11"
24-
InfiniteArrays = "0.9.3"
25+
InfiniteArrays = "0.10"
2526
LazyArrays = "0.20.2"
2627
LazyBandedMatrices = "0.4.5"
2728
MatrixFactorizations = "0.7.1, 0.8"

src/InfiniteLinearAlgebra.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import ArrayLayouts: colsupport, rowsupport, triangularlayout, MatLdivVec, trian
1313
import BandedMatrices: BandedMatrix, _BandedMatrix, AbstractBandedMatrix, bandeddata, bandwidths, BandedColumns, bandedcolumns,
1414
_default_banded_broadcast, banded_similar
1515
import FillArrays: AbstractFill, getindex_value, axes_print_matrix_row
16-
import InfiniteArrays: OneToInf, InfUnitRange, Infinity, InfStepRange, AbstractInfUnitRange, InfAxes, InfRanges
16+
import InfiniteArrays: OneToInf, InfUnitRange, Infinity, PosInfinity, InfiniteCardinal, InfStepRange, AbstractInfUnitRange, InfAxes, InfRanges
1717
import LinearAlgebra: lmul!, ldiv!, matprod, qr, AbstractTriangular, AbstractQ, adjoint, transpose
1818
import LazyArrays: applybroadcaststyle, CachedArray, CachedMatrix, CachedVector, DenseColumnMajor, FillLayout, ApplyMatrix, check_mul_axes, ApplyStyle, LazyArrayApplyStyle, LazyArrayStyle,
1919
resizedata!, MemoryLayout,
@@ -44,7 +44,7 @@ end
4444

4545
# BroadcastStyle(::Type{<:BandedMatrix{<:Any,<:Any,<:OneToInf}}) = LazyArrayStyle{2}()
4646

47-
function ArrayLayouts._power_by_squaring(_, ::NTuple{2,Infinity}, A::AbstractMatrix{T}, p::Integer) where T
47+
function ArrayLayouts._power_by_squaring(_, ::NTuple{2,InfiniteCardinal{0}}, A::AbstractMatrix{T}, p::Integer) where T
4848
if p < 0
4949
inv(A)^(-p)
5050
elseif p == 0

src/banded/infbanded.jl

Lines changed: 28 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
_BandedMatrix(data::AbstractMatrix{T}, ::Infinity, l, u) where T = _BandedMatrix(data, ℵ₀, l, u)
2+
13
###
24
# BandIndexing
35
###
@@ -52,10 +54,10 @@ _prepad(p, a::Zeros{T,1}) where T = Zeros{T}(length(a)+p)
5254
_prepad(p, a::Ones{T,1}) where T = Ones{T}(length(a)+p)
5355
_prepad(p, a::AbstractFill{T,1}) where T = Fill{T}(getindex_value(a), length(a)+p)
5456

55-
banded_similar(T, (m,n)::Tuple{Int,Infinity}, (l,u)::Tuple{Int,Int}) = BandedMatrix{T}(undef, (n,m), (u,l))'
57+
banded_similar(T, (m,n)::Tuple{Int,PosInfinity}, (l,u)::Tuple{Int,Int}) = BandedMatrix{T}(undef, (n,m), (u,l))'
5658

5759
function BandedMatrix{T}(kv::Tuple{Vararg{Pair{<:Integer,<:AbstractVector}}},
58-
::NTuple{2,Infinity},
60+
::NTuple{2,PosInfinity},
5961
(l,u)::NTuple{2,Integer}) where T
6062
ks = getproperty.(kv, :first)
6163
l,u = -minimum(ks),maximum(ks)
@@ -64,12 +66,12 @@ function BandedMatrix{T}(kv::Tuple{Vararg{Pair{<:Integer,<:AbstractVector}}},
6466
for (k,j) in zip(u .- ks .+ 1,1:length(ks))
6567
c[k,j] = one(T)
6668
end
67-
_BandedMatrix(ApplyArray(*,c,rws), , l, u)
69+
_BandedMatrix(ApplyArray(*,c,rws), ℵ₀, l, u)
6870
end
6971

7072
# Construct InfToeplitz
7173
function BandedMatrix{T}(kv::Tuple{Vararg{Pair{<:Integer,<:Fill{<:Any,1,Tuple{OneToInf{Int}}}}}},
72-
mn::NTuple{2,Infinity},
74+
mn::NTuple{2,PosInfinity},
7375
lu::NTuple{2,Integer}) where T
7476
m,n = mn
7577
@assert isinf(n)
@@ -80,11 +82,11 @@ function BandedMatrix{T}(kv::Tuple{Vararg{Pair{<:Integer,<:Fill{<:Any,1,Tuple{On
8082
t[u-k+1] = v.value
8183
end
8284

83-
return _BandedMatrix(t * Ones{T}(1,∞), m, l, u)
85+
return _BandedMatrix(t * Ones{T}(1,∞), Integer(m), l, u)
8486
end
8587

8688
function BandedMatrix{T}(kv::Tuple{Vararg{Pair{<:Integer,<:Vcat{<:Any,1,<:Tuple{<:AbstractVector,Fill{<:Any,1,Tuple{OneToInf{Int}}}}}}}},
87-
mn::NTuple{2,Infinity},
89+
mn::NTuple{2,PosInfinity},
8890
lu::NTuple{2,Integer}) where T
8991
m,n = mn
9092
@assert isinf(n)
@@ -105,38 +107,38 @@ function BandedMatrix{T}(kv::Tuple{Vararg{Pair{<:Integer,<:Vcat{<:Any,1,<:Tuple{
105107
end
106108
end
107109

108-
return _BandedMatrix(Hcat(data, t * Ones{T}(1,∞)), m, l, u)
110+
return _BandedMatrix(Hcat(data, t * Ones{T}(1,∞)), Integer(m), l, u)
109111
end
110112

111113

112114
function BandedMatrix(Ac::Adjoint{T,<:InfToeplitz}) where T
113115
A = parent(Ac)
114116
l,u = bandwidths(A)
115117
a = A.data.args[1]
116-
_BandedMatrix(reverse(conj(a)) * Ones{T}(1,∞), , u, l)
118+
_BandedMatrix(reverse(conj(a)) * Ones{T}(1,∞), ℵ₀, u, l)
117119
end
118120

119121
function BandedMatrix(Ac::Transpose{T,<:InfToeplitz}) where T
120122
A = parent(Ac)
121123
l,u = bandwidths(A)
122124
a = A.data.args[1]
123-
_BandedMatrix(reverse(a) * Ones{T}(1,∞), , u, l)
125+
_BandedMatrix(reverse(a) * Ones{T}(1,∞), ℵ₀, u, l)
124126
end
125127

126128
function BandedMatrix(Ac::Adjoint{T,<:PertToeplitz}) where T
127129
A = parent(Ac)
128130
l,u = bandwidths(A)
129131
a,b = A.data.args
130132
Ac_fd = BandedMatrix(_BandedMatrix(Hcat(a, b[:,1:l+1]), size(a,2)+l, l, u)')
131-
_BandedMatrix(Hcat(Ac_fd.data, reverse(conj(b.args[1])) * Ones{T}(1,∞)), , u, l)
133+
_BandedMatrix(Hcat(Ac_fd.data, reverse(conj(b.args[1])) * Ones{T}(1,∞)), ℵ₀, u, l)
132134
end
133135

134136
function BandedMatrix(Ac::Transpose{T,<:PertToeplitz}) where T
135137
A = parent(Ac)
136138
l,u = bandwidths(A)
137139
a,b = A.data.args
138140
Ac_fd = BandedMatrix(transpose(_BandedMatrix(Hcat(a, b[:,1:l+1]), size(a,2)+l, l, u)))
139-
_BandedMatrix(Hcat(Ac_fd.data, reverse(b.args[1]) * Ones{T}(1,∞)), , u, l)
141+
_BandedMatrix(Hcat(Ac_fd.data, reverse(b.args[1]) * Ones{T}(1,∞)), ℵ₀, u, l)
140142
end
141143

142144

@@ -191,25 +193,25 @@ for op in (:-, :+)
191193
TV = promote_type(eltype(λ),V)
192194
a = convert(AbstractVector{TV}, $op.(A.data.args[1]))
193195
a[u+1] += λ.λ
194-
_BandedMatrix(a*Ones{TV}(1,∞), , l, u)
196+
_BandedMatrix(a*Ones{TV}(1,∞), ℵ₀, l, u)
195197
end
196198

197199
function $op(A::InfToeplitz{T}, λ::UniformScaling) where T
198200
l,u = bandwidths(A)
199201
TV = promote_type(T,eltype(λ))
200202
a = TV[Zeros{TV}(max(-u,0)); A.data.args[1]; Zeros{TV}(max(-l,0))]
201203
a[max(0,u)+1] = $op(a[max(u,0)+1], λ.λ)
202-
_BandedMatrix(a*Ones{TV}(1,∞), , max(l,0), max(u,0))
204+
_BandedMatrix(a*Ones{TV}(1,∞), ℵ₀, max(l,0), max(u,0))
203205
end
204206

205207
function $op::UniformScaling, A::PertToeplitz{V}) where V
206208
l,u = bandwidths(A)
207209
TV = promote_type(eltype(λ),V)
208-
a, t = convert.(AbstractVector{TV}, A.data.args)
210+
a, t = map(AbstractArray{TV}, A.data.args)
209211
b = $op.(t.args[1])
210-
a[u+1,:] += λ.λ
212+
a[u+1,:] .+= λ.λ
211213
b[u+1] += λ.λ
212-
_BandedMatrix(Hcat(a, b*Ones{TV}(1,∞)), , l, u)
214+
_BandedMatrix(Hcat(a, b*Ones{TV}(1,∞)), ℵ₀, l, u)
213215
end
214216

215217
function $op(A::PertToeplitz{T}, λ::UniformScaling) where T
@@ -220,7 +222,7 @@ for op in (:-, :+)
220222
b = AbstractVector{TV}(t.args[1])
221223
a[u+1,:] .= $op.(a[u+1,:],λ.λ)
222224
b[u+1] = $op(b[u+1], λ.λ)
223-
_BandedMatrix(Hcat(a, b*Ones{TV}(1,∞)), , l, u)
225+
_BandedMatrix(Hcat(a, b*Ones{TV}(1,∞)), ℵ₀, l, u)
224226
end
225227
end
226228
end
@@ -237,7 +239,7 @@ function BandedMatrix(A::PertToeplitz{T}, (l,u)::Tuple{Int,Int}) where T
237239
t = b.args[1] # topelitz part
238240
t_pad = vcat(t,Zeros(l-A.l))
239241
data = Hcat([vcat(a,Zeros{T}(l-A.l,size(a,2))) repeat(t_pad,1,l)], t_pad * Ones{T}(1,∞))
240-
_BandedMatrix(data, , l, u)
242+
_BandedMatrix(data, ℵ₀, l, u)
241243
end
242244

243245
function BandedMatrix(A::SymTriPertToeplitz{T}, (l,u)::Tuple{Int,Int}) where T
@@ -251,7 +253,7 @@ function BandedMatrix(A::SymTriPertToeplitz{T}, (l,u)::Tuple{Int,Int}) where T
251253
data[u+1,length(a)+1:end] .= a∞.value
252254
data[u+2,1:length(b)] .= b
253255
data[u+2,length(b)+1:end] .= b∞.value
254-
_BandedMatrix(Hcat(data, [Zeros{T}(u-1); b∞.value; a∞.value; b∞.value; Zeros{T}(l-1)] * Ones{T}(1,∞)), , l, u)
256+
_BandedMatrix(Hcat(data, [Zeros{T}(u-1); b∞.value; a∞.value; b∞.value; Zeros{T}(l-1)] * Ones{T}(1,∞)), ℵ₀, l, u)
255257
end
256258

257259
function BandedMatrix(A::SymTridiagonal{T,Fill{T,1,Tuple{OneToInf{Int}}}}, (l,u)::Tuple{Int,Int}) where T
@@ -262,7 +264,7 @@ function BandedMatrix(A::SymTridiagonal{T,Fill{T,1,Tuple{OneToInf{Int}}}}, (l,u)
262264
data[u,2:end] .= b∞.value
263265
data[u+1,1:end] .= a∞.value
264266
data[u+2,1:end] .= b∞.value
265-
_BandedMatrix(Hcat(data, [Zeros{T}(u-1); b∞.value; a∞.value; b∞.value; Zeros{T}(l-1)] * Ones{T}(1,∞)), , l, u)
267+
_BandedMatrix(Hcat(data, [Zeros{T}(u-1); b∞.value; a∞.value; b∞.value; Zeros{T}(l-1)] * Ones{T}(1,∞)), ℵ₀, l, u)
266268
end
267269

268270
function BandedMatrix(A::TriPertToeplitz{T}, (l,u)::Tuple{Int,Int}) where T
@@ -277,7 +279,7 @@ function BandedMatrix(A::TriPertToeplitz{T}, (l,u)::Tuple{Int,Int}) where T
277279
data[u+1,length(a)+1:end] .= a∞.value
278280
data[u+2,1:length(c)] .= c
279281
data[u+2,length(c)+1:end] .= c∞.value
280-
_BandedMatrix(Hcat(data, [Zeros{T}(u-1); b∞.value; a∞.value; c∞.value; Zeros{T}(l-1)] * Ones{T}(1,∞)), , l, u)
282+
_BandedMatrix(Hcat(data, [Zeros{T}(u-1); b∞.value; a∞.value; c∞.value; Zeros{T}(l-1)] * Ones{T}(1,∞)), ℵ₀, l, u)
281283
end
282284

283285
function BandedMatrix(A::Tridiagonal{T,Fill{T,1,Tuple{OneToInf{Int}}}}, (l,u)::Tuple{Int,Int}) where T
@@ -289,14 +291,14 @@ function BandedMatrix(A::Tridiagonal{T,Fill{T,1,Tuple{OneToInf{Int}}}}, (l,u)::T
289291
data[u,2:end] .= b∞.value
290292
data[u+1,1:end] .= a∞.value
291293
data[u+2,1:end] .= c∞.value
292-
_BandedMatrix(Hcat(data, [Zeros{T}(u-1); b∞.value; a∞.value; c∞.value; Zeros{T}(l-1)] * Ones{T}(1,∞)), , l, u)
294+
_BandedMatrix(Hcat(data, [Zeros{T}(u-1); b∞.value; a∞.value; c∞.value; Zeros{T}(l-1)] * Ones{T}(1,∞)), ℵ₀, l, u)
293295
end
294296

295297
function InfToeplitz(A::Tridiagonal{T,Fill{T,1,Tuple{OneToInf{Int}}}}, (l,u)::Tuple{Int,Int}) where T
296298
a∞ = A.d
297299
b∞ = A.du
298300
c∞ = A.dl
299-
_BandedMatrix([Zeros{T}(u-1); b∞.value; a∞.value; c∞.value; Zeros{T}(l-1)] * Ones{T}(1,∞), , l, u)
301+
_BandedMatrix([Zeros{T}(u-1); b∞.value; a∞.value; c∞.value; Zeros{T}(l-1)] * Ones{T}(1,∞), ℵ₀, l, u)
300302
end
301303

302304
InfToeplitz(A::Tridiagonal{T,Fill{T,1,Tuple{OneToInf{Int}}}}) where T = InfToeplitz(A, bandwidths(A))
@@ -384,8 +386,8 @@ _BandedMatrix(::PertToeplitzLayout, A::AbstractMatrix) =
384386

385387

386388

387-
ArrayLayouts._apply(_, ::NTuple{2,Infinity}, op, Λ::UniformScaling, A::AbstractMatrix) = op(Diagonal(Fill.λ,∞)), A)
388-
ArrayLayouts._apply(_, ::NTuple{2,Infinity}, op, A::AbstractMatrix, Λ::UniformScaling) = op(A, Diagonal(Fill.λ,∞)))
389+
ArrayLayouts._apply(_, ::NTuple{2,InfiniteCardinal{0}}, op, Λ::UniformScaling, A::AbstractMatrix) = op(Diagonal(Fill.λ,∞)), A)
390+
ArrayLayouts._apply(_, ::NTuple{2,InfiniteCardinal{0}}, op, A::AbstractMatrix, Λ::UniformScaling) = op(A, Diagonal(Fill.λ,∞)))
389391

390392
_default_banded_broadcast(bc::Broadcasted, ::Tuple{<:OneToInf,<:Any}) = copy(Broadcasted{LazyArrayStyle{2}}(bc.f, bc.args))
391393

@@ -417,7 +419,7 @@ function _bandedfill_mul(M::MulAdd, ::Tuple{InfAxes,InfAxes}, ::Tuple{InfAxes,In
417419
l,u = Al+Bl,Au+Bu
418420
m = min(Au+Al,Bl+Bu)+1
419421
λ = getindex_value(bandeddata(A))*getindex_value(bandeddata(B))
420-
ret = _BandedMatrix(Hcat(Array{typeof(λ)}(undef, l+u+1,u), [1:m-1; Fill(m,l+u-2m+3); m-1:-1:1]*Fill(λ,1,∞)), , l, u)
422+
ret = _BandedMatrix(Hcat(Array{typeof(λ)}(undef, l+u+1,u), [1:m-1; Fill(m,l+u-2m+3); m-1:-1:1]*Fill(λ,1,∞)), ℵ₀, l, u)
421423
mul!(view(ret, 1:l+u,1:u), view(A,1:l+u,1:u+Bl), view(B,1:u+Bl,1:u))
422424
ret
423425
end

src/banded/infqltoeplitz.jl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ function ql(Op::TriToeplitz{T}; kwds...) where T<:Real
4747
X = [Z A B; zero(T) d e]
4848
F = ql_X!(X)
4949
t,ω = F.τ[2],X[1,end]
50-
QL(_BandedMatrix(Hcat([zero(T), e, X[2,2], X[2,1]], [ω, X[2,3], X[2,2], X[2,1]] * Ones{T}(1,∞)), , 2, 1), Vcat(F.τ[1],Fill(t,∞)))
50+
QL(_BandedMatrix(Hcat([zero(T), e, X[2,2], X[2,1]], [ω, X[2,3], X[2,2], X[2,1]] * Ones{T}(1,∞)), ℵ₀, 2, 1), Vcat(F.τ[1],Fill(t,∞)))
5151
end
5252

5353
ql(Op::TriToeplitz{T}) where T = ql(InfToeplitz(Op))
@@ -60,7 +60,7 @@ function ql_hessenberg(A::InfToeplitz{T}; kwds...) where T
6060
de = tail_de(a; kwds...)
6161
X = [transpose(a); zero(T) transpose(de)]::Matrix{float(T)}
6262
F = ql_X!(X) # calculate data for fixed point
63-
factors = _BandedMatrix(Hcat([zero(T); X[1,end-1]; X[2,end-1:-1:1]], [0; X[2,end:-1:1]] * Ones{float(T)}(1,∞)), , l+u, 1)
63+
factors = _BandedMatrix(Hcat([zero(T); X[1,end-1]; X[2,end-1:-1:1]], [0; X[2,end:-1:1]] * Ones{float(T)}(1,∞)), ℵ₀, l+u, 1)
6464
QLHessenberg(factors, Fill(F.Q,∞))
6565
end
6666

@@ -79,7 +79,7 @@ function ql_pruneband(A; kwds...)
7979
for j = u+1:size(pert,2)
8080
pert[:,j] .= view(dat,j-u+1:j+l+1,j)
8181
end
82-
H = _BandedMatrix(Hcat(pert, dat[end-l-u:end,end]*Ones{eltype(dat)}(1,∞)), , l+1,u-1)
82+
H = _BandedMatrix(Hcat(pert, dat[end-l-u:end,end]*Ones{eltype(dat)}(1,∞)), ℵ₀, l+1,u-1)
8383
Q,H
8484
end
8585

src/blockbanded/blockbanded.jl

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
const OneToInfCumsum = InfiniteArrays.RangeCumsum{Int,OneToInf{Int}}
22
const OneToCumsum = InfiniteArrays.RangeCumsum{Int,OneTo{Int}}
33

4-
BlockArrays.sortedunion(::AbstractVector{Infinity}, ::AbstractVector{Infinity}) = [∞]
5-
function BlockArrays.sortedunion(::AbstractVector{Infinity}, b)
4+
BlockArrays.sortedunion(::AbstractVector{<:PosInfinity}, ::AbstractVector{<:PosInfinity}) = [∞]
5+
function BlockArrays.sortedunion(::AbstractVector{<:PosInfinity}, b)
66
@assert isinf(length(b))
77
b
88
end
99

10-
function BlockArrays.sortedunion(b, ::AbstractVector{Infinity})
10+
function BlockArrays.sortedunion(b, ::AbstractVector{<:PosInfinity})
1111
@assert isinf(length(b))
1212
b
1313
end
@@ -33,8 +33,7 @@ const OneToBlocks = BlockedUnitRange{OneToCumsum}
3333
axes(a::OneToInfBlocks) = (a,)
3434
axes(a::OneToBlocks) = (a,)
3535

36-
unitrange(b::OneToInfBlocks) = first(b):
37-
36+
BlockArrays.dimlength(start, ::Infinity) = ℵ₀
3837

3938
function copy(bc::Broadcasted{<:BroadcastStyle,<:Any,typeof(*),<:Tuple{Ones{T,1,Tuple{OneToInfBlocks}},AbstractArray{V,N}}}) where {N,T,V}
4039
a,b = bc.args
@@ -72,7 +71,7 @@ BroadcastStyle(::Type{<:BlockArray{T,N,<:AbstractArray{<:AbstractArray{T,N},N},<
7271
BroadcastStyle(::Type{<:PseudoBlockArray{T,N,<:AbstractArray{T,N},<:NTuple{N,BlockedUnitRange{<:RangeCumsum{Int,<:InfRanges}}}}}) where {T,N} = LazyArrayStyle{N}()
7372

7473

75-
BlockArrays._length(::BlockedUnitRange, ::OneToInf) =
74+
BlockArrays._length(::BlockedUnitRange, ::OneToInf) = ℵ₀
7675
BlockArrays._last(::BlockedUnitRange, ::OneToInf) =
7776

7877
###

src/blockbanded/infblocktridiagonal.jl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@ sizes_from_blocks(A::Diagonal, ::NTuple{2,OneToInf{Int}}) = size.(A.diag, 1), si
3535
sizes_from_blocks(A::Tridiagonal, ::NTuple{2,OneToInf{Int}}) = size.(A.d, 1), size.(A.d,2)
3636
sizes_from_blocks(A::Bidiagonal, ::NTuple{2,OneToInf{Int}}) = size.(A.dv, 1), size.(A.dv,2)
3737

38-
axes_print_matrix_row(_, io, X, A, i, ::AbstractVector{<:Infinity}, sep) = nothing
39-
axes_print_matrix_row(::NTuple{2,BlockedUnitRange}, io, X, A, i, ::AbstractVector{<:Infinity}, sep) = nothing
38+
axes_print_matrix_row(_, io, X, A, i, ::AbstractVector{<:PosInfinity}, sep) = nothing
39+
axes_print_matrix_row(::NTuple{2,BlockedUnitRange}, io, X, A, i, ::AbstractVector{<:PosInfinity}, sep) = nothing
4040

4141

4242
function BlockSkylineSizes(A::BlockTriPertToeplitz, (l,u)::NTuple{2,Int})
@@ -67,7 +67,7 @@ function BlockSkylineSizes(A::BlockTriPertToeplitz, (l,u)::NTuple{2,Int})
6767
end
6868

6969
BlockSkylineSizes(axes(A),
70-
_BandedMatrix(Hcat(block_starts.data, Vcat(adjoint.(bs∞)...)), , l, u),
70+
_BandedMatrix(Hcat(block_starts.data, Vcat(adjoint.(bs∞)...)), ℵ₀, l, u),
7171
Vcat(block_strides, Fill(block_stride∞,∞)),
7272
Fill(l,∞),Fill(u,∞))
7373
end

src/infql.jl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -93,14 +93,14 @@ function ql_hessenberg!(B::InfBandedMatrix{TT}; kwds...) where TT
9393

9494
# combine finite and infinite data
9595
H = Hcat(B̃.data, rightasymptotics(F∞.factors.data))
96-
QLHessenberg(_BandedMatrix(H, , l, 1), Vcat( LowerHessenbergQ(F.Q).q, F∞.q))
96+
QLHessenberg(_BandedMatrix(H, ℵ₀, l, 1), Vcat( LowerHessenbergQ(F.Q).q, F∞.q))
9797
end
9898

9999
getindex(Q::QLPackedQ{T,<:InfBandedMatrix{T}}, i::Integer, j::Integer) where T =
100100
(Q'*[Zeros{T}(i-1); one(T); Zeros{T}(∞)])[j]'
101101

102-
getL(Q::QL, ::NTuple{2,Infinity}) where T = LowerTriangular(Q.factors)
103-
getL(Q::QLHessenberg, ::NTuple{2,Infinity}) where T = LowerTriangular(Q.factors)
102+
getL(Q::QL, ::NTuple{2,InfiniteCardinal{0}}) where T = LowerTriangular(Q.factors)
103+
getL(Q::QLHessenberg, ::NTuple{2,InfiniteCardinal{0}}) where T = LowerTriangular(Q.factors)
104104

105105
# number of structural non-zeros in axis k
106106
nzzeros(A::AbstractArray, k) = size(A,k)

src/infqr.jl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ function getindex(F::AdaptiveQRTau, j::Int)
139139
F.data.τ[j]
140140
end
141141

142-
getR(Q::QR, ::NTuple{2,Infinity}) = UpperTriangular(Q.factors)
142+
getR(Q::QR, ::NTuple{2,InfiniteCardinal{0}}) = UpperTriangular(Q.factors)
143143

144144

145145
function adaptiveqr(A)
@@ -149,8 +149,8 @@ end
149149

150150
_qr(::AbstractBandedLayout, ::NTuple{2,OneToInf{Int}}, A) = adaptiveqr(A)
151151
_qr(::AbstractAlmostBandedLayout, ::NTuple{2,OneToInf{Int}}, A) = adaptiveqr(A)
152-
__qr(_, ::NTuple{2,Infinity}, A) = adaptiveqr(A)
153-
_qr(::AbstractBlockBandedLayout, ::NTuple{2,Infinity}, A) = adaptiveqr(A)
152+
__qr(_, ::NTuple{2,InfiniteCardinal{0}}, A) = adaptiveqr(A)
153+
_qr(::AbstractBlockBandedLayout, ::NTuple{2,InfiniteCardinal{0}}, A) = adaptiveqr(A)
154154

155155
partialqr!(F::QR, n) = partialqr!(F.factors, n)
156156
partialqr!(F::AdaptiveQRFactors, n) = partialqr!(F.data, n)

src/inful.jl

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -74,8 +74,8 @@ end
7474
_inf_getL(::BlockTridiagonalToeplitzLayout, F::UL) = mortar(Bidiagonal(F.factors.blocks.d,F.factors.blocks.dl, :L))
7575

7676

77-
getU(F::UL, ::NTuple{2,Infinity}) = _inf_getU(MemoryLayout(F.factors), F)
78-
getL(F::UL, ::NTuple{2,Infinity}) = _inf_getL(MemoryLayout(F.factors), F)
77+
getU(F::UL, ::NTuple{2,InfiniteCardinal{0}}) = _inf_getU(MemoryLayout(F.factors), F)
78+
getL(F::UL, ::NTuple{2,InfiniteCardinal{0}}) = _inf_getL(MemoryLayout(F.factors), F)
7979

80-
getU(F::UL{T,<:Tridiagonal}, ::NTuple{2,Infinity}) where T = _inf_getU(MemoryLayout(F.factors), F)
81-
getL(F::UL{T,<:Tridiagonal}, ::NTuple{2,Infinity}) where T = _inf_getL(MemoryLayout(F.factors), F)
80+
getU(F::UL{T,<:Tridiagonal}, ::NTuple{2,InfiniteCardinal{0}}) where T = _inf_getU(MemoryLayout(F.factors), F)
81+
getL(F::UL{T,<:Tridiagonal}, ::NTuple{2,InfiniteCardinal{0}}) where T = _inf_getL(MemoryLayout(F.factors), F)

0 commit comments

Comments
 (0)