Skip to content

Commit 352c06a

Browse files
committed
Tridiagonal qr
1 parent e224a87 commit 352c06a

File tree

4 files changed

+9
-2
lines changed

4 files changed

+9
-2
lines changed

Project.toml

Lines changed: 1 addition & 1 deletion
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.5.1"
3+
version = "0.5.2"
44

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

src/InfiniteLinearAlgebra.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import Base.Broadcast: BroadcastStyle, Broadcasted, broadcasted
99

1010
import ArrayLayouts: colsupport, rowsupport, triangularlayout, MatLdivVec, triangulardata, TriangularLayout, TridiagonalLayout,
1111
sublayout, _qr, __qr, MatLmulVec, MatLmulMat, AbstractQLayout, materialize!, diagonaldata, subdiagonaldata, supdiagonaldata,
12-
_bidiag_forwardsub!, mulreduce, RangeCumsum
12+
_bidiag_forwardsub!, mulreduce, RangeCumsum, _factorize
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

src/infqr.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,7 @@ _qr(::AbstractBandedLayout, ::NTuple{2,OneToInf{Int}}, A) = adaptiveqr(A)
151151
_qr(::AbstractAlmostBandedLayout, ::NTuple{2,OneToInf{Int}}, A) = adaptiveqr(A)
152152
__qr(_, ::NTuple{2,InfiniteCardinal{0}}, A) = adaptiveqr(A)
153153
_qr(::AbstractBlockBandedLayout, ::NTuple{2,InfiniteCardinal{0}}, A) = adaptiveqr(A)
154+
_factorize(::AbstractBandedLayout, ::NTuple{2,OneToInf{Int}}, A) = qr(A)
154155

155156
partialqr!(F::QR, n) = partialqr!(F.factors, n)
156157
partialqr!(F::AdaptiveQRFactors, n) = partialqr!(F.data, n)

test/test_infqr.jl

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,12 @@ import SemiseparableMatrices: AlmostBandedLayout, VcatAlmostBandedLayout
100100
A = BandedMatrix(0 => -2*(0:∞)/z, 1 => Ones(∞), -1 => Ones(∞))
101101
@time J = A \ Vcat([besselj(1,z)], Zeros(∞))
102102
@test J[1:20_000] [besselj(k,z) for k=0:20_000-1]
103+
104+
# Tridiagonal works too
105+
A = LazyBandedMatrices.Tridiagonal(Ones(∞), -2*(0:∞)/z, Ones(∞))
106+
@test factorize(A) isa MatrixFactorizations.QR
107+
@time J = A \ [besselj(1,z); Zeros(∞)]
108+
@test J[1:20_000] [besselj(k,z) for k=0:20_000-1]
103109
end
104110

105111
@testset "5-band" begin

0 commit comments

Comments
 (0)