We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 4cacec3 commit 84d8624Copy full SHA for 84d8624
.github/workflows/downstream.yml
@@ -44,6 +44,7 @@ jobs:
44
- {repo: ApproxFunBase.jl, group: JuliaApproximation}
45
- {repo: ApproxFun.jl, group: JuliaApproximation}
46
- {repo: InfiniteLinearAlgebra.jl, group: JuliaLinearAlgebra}
47
+ - {repo: ClassicalOrthogonalPolynomials.jl, group: JuliaApproximation}
48
49
steps:
50
- uses: actions/checkout@v5
Project.toml
@@ -1,6 +1,6 @@
1
name = "BandedMatrices"
2
uuid = "aae01518-5342-5314-be14-df237901396f"
3
-version = "1.10.0"
+version = "1.10.1"
4
5
[deps]
6
ArrayLayouts = "4c555306-a7a7-4459-81d9-ec55ddd5c99a"
src/banded/BandedMatrix.jl
@@ -266,13 +266,14 @@ BandedMatrix(A::AbstractMatrix) = _BandedMatrix(MemoryLayout(A), A)
266
_BandedMatrix(::BandedColumns, A::AbstractMatrix) = _BandedMatrix(copy(bandeddata(A)), axes(A,1), bandwidths(A)...)
267
function _BandedMatrix(::BandedRows, A::AbstractMatrix)
268
bdata = bandedrowsdata(A)
269
- data = similar(bdata, eltype(bdata), reverse(size(bdata)))
270
- u, ℓ = bandwidths(A)
+ m,ν = size(bdata)
+ ℓ,u = bandwidths(A)
271
+ data = similar(bdata, eltype(bdata), ν, size(A,2))
272
n = size(A, 2)
- for j in axes(A, 1), i in max(1, j - u):min(n, j + ℓ)
273
- data[ℓ + 1 + j - i, i] = bdata[j, u+1+i-j]
+ for j in axes(A, 1), i in max(1, j - ℓ):min(n, j + u)
274
+ data[u + 1 + j - i, i] = bdata[j, ℓ+1+i-j]
275
end
- return _BandedMatrix(data, axes(A, 1), bandwidths(A)...)
276
+ return _BandedMatrix(data, axes(A, 1), ℓ, u)
277
278
function _BandedMatrix(::DiagonalLayout, A::AbstractMatrix{T}) where T
279
m,n = size(A)
src/interfaceimpl.jl
@@ -32,6 +32,7 @@ end
32
33
bandedrowsdata(Ac::Transpose) = permutedims(bandeddata(parent(Ac)))
34
bandedrowsdata(Ac::Adjoint{<:Real}) = permutedims(bandeddata(parent(Ac)))
35
+bandedrowsdata(V::SubArray) = permutedims(bandeddata(view(parent(parent(V)), reverse(parentindices(V))...)))
36
37
# treat subinds as banded
38
sublayout(::DiagonalLayout{L}, inds::Type) where L = sublayout(bandedcolumns(L()), inds)
test/test_banded.jl
@@ -608,7 +608,18 @@ include("mymatrix.jl")
608
@test BandedMatrix(B) == B
609
@test BandedMatrix(B) !== B
610
@test BandedMatrices.bandeddata(BandedMatrix(B)) !== BandedMatrices.bandeddata(A)
611
+
612
+ @test BandedMatrix(view(B,2:4, 3:5)) == B[2:4,3:5] == [B[k,j] for k=2:4,j=3:5]
613
+ end
614
615
+ for V in (view(BandedMatrix((1 => ones(4),), (10, 10))', 1:5, 1:4),
616
+ view(BandedMatrix((1 => ones(4),), (10, 10))', 1:3, 1:5),
617
+ view(BandedMatrix((-1 => ones(4),), (10, 10))', 1:5, 1:4),
618
+ view(BandedMatrix((-1 => ones(4),), (10, 10))', 1:3, 1:5),
619
+ view(BandedMatrix((-1 => ones(4), 1 => ones(9)), (10, 10))', 1:3, 1:5))
620
+ @test BandedMatrix(V) == V
621
622
623
624
625
0 commit comments