Skip to content

Commit 02565b8

Browse files
authored
Drop usage of blockcolsupport(_, ::Int) (#126)
* Drop usage of blockcolsupport(_, ::Int) * Update Project.toml * Update Project.toml * tests pass
1 parent 7f71b9c commit 02565b8

8 files changed

+49
-53
lines changed

Project.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name = "BlockBandedMatrices"
22
uuid = "ffab5731-97b5-5995-9138-79e8c1846df0"
3-
version = "0.11.5"
3+
version = "0.11.6"
44

55
[deps]
66
ArrayLayouts = "4c555306-a7a7-4459-81d9-ec55ddd5c99a"
@@ -15,7 +15,7 @@ Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2"
1515
[compat]
1616
ArrayLayouts = "0.8.2"
1717
BandedMatrices = "0.16.8, 0.17"
18-
BlockArrays = "0.16.14"
18+
BlockArrays = "0.16.16"
1919
FillArrays = "0.13"
2020
MatrixFactorizations = "0.8.5, 0.9"
2121
julia = "1.6"

src/AbstractBlockBandedMatrix.jl

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -87,13 +87,10 @@ blockbandrange(A::AbstractMatrix) = -blockbandwidth(A,1):blockbandwidth(A,2)
8787

8888

8989
# start/stop indices of the i-th column/row, bounded by actual matrix size
90-
@inline blockbanded_blockcolstart(A, i::Integer) = Block(max(i-colblockbandwidth(A,2)[i], 1))
91-
@inline blockbanded_blockcolstop(A, i::Integer) = Block(max(min(i+colblockbandwidth(A,1)[i], blocksize(A, 1)), 0))
92-
@inline blockbanded_blockrowstart(A, i::Integer) = Block(max(i-rowblockbandwidth(A,1)[i], 1))
93-
@inline blockbanded_blockrowstop(A, i::Integer) = Block(max(min(i+rowblockbandwidth(A,2)[i], blocksize(A, 2)), 0))
94-
for Func in (:blockbanded_blockcolstart, :blockbanded_blockcolstop, :blockbanded_blockrowstart, :blockbanded_blockrowstop)
95-
@eval $Func(A, i::Block{1}) = $Func(A, Int(i))
96-
end
90+
@inline blockbanded_blockcolstart(A, i::Block{1}) = Block(max(Int(i)-colblockbandwidth(A,2)[Int(i)], 1))
91+
@inline blockbanded_blockcolstop(A, i::Block{1}) = Block(max(min(Int(i)+colblockbandwidth(A,1)[Int(i)], blocksize(A, 1)), 0))
92+
@inline blockbanded_blockrowstart(A, i::Block{1}) = Block(max(Int(i)-rowblockbandwidth(A,1)[Int(i)], 1))
93+
@inline blockbanded_blockrowstop(A, i::Block{1}) = Block(max(min(Int(i)+rowblockbandwidth(A,2)[Int(i)], blocksize(A, 2)), 0))
9794

9895
blockbanded_blockcolstart(A, i::BlockRange) = blockbanded_blockcolstart(A, minimum(i))
9996
blockbanded_blockrowstart(A, i::BlockRange) = blockbanded_blockrowstart(A, minimum(i))

src/BlockSkylineMatrix.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@ BlockSkylineMatrix
194194

195195
function BlockSkylineMatrix{T}(A::AbstractMatrix, block_sizes::BlockSkylineSizes) where T
196196
ret = BlockSkylineMatrix(Zeros{T}(size(A)), block_sizes)
197-
for J = blockaxes(ret,2), K = blockcolsupport(ret, Int(J))
197+
for J = blockaxes(ret,2), K = blockcolsupport(ret, J)
198198
kr, jr = getindex.(block_sizes.axes, (K, J))
199199
view(ret, K, J) .= view(A, kr, jr)
200200
end

src/interfaceimpl.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -141,13 +141,13 @@ bandedblockbandeddata(D::Diagonal) = permutedims(D.diag)
141141

142142
function blockcolsupport(::AbstractBandedLayout, B, j)
143143
m,n = axes(B)
144-
cs = colsupport(B,n[Block.(j)])
144+
cs = colsupport(B,n[j])
145145
findblock(m,first(cs)):findblock(m,last(cs))
146146
end
147147

148148
function blockrowsupport(::AbstractBandedLayout, B, k)
149149
m,n = axes(B)
150-
rs = rowsupport(B,m[Block.(k)])
150+
rs = rowsupport(B,m[k])
151151
findblock(n,first(rs)):findblock(n,last(rs))
152152
end
153153

test/test_bandedblockbanded.jl

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -64,13 +64,13 @@ import ArrayLayouts: RangeCumsum
6464
@test BlockBandedMatrices.subblockbandwidths(A) == (l,u)
6565

6666

67-
@test blockrowsupport(A, 1) == Block.(1:2)
68-
@test blockrowsupport(A, 2) == Block.(1:3)
69-
@test blockrowsupport(A, 3) == Block.(2:4)
67+
@test blockrowsupport(A, Block(1)) == Block.(1:2)
68+
@test blockrowsupport(A, Block(2)) == Block.(1:3)
69+
@test blockrowsupport(A, Block(3)) == Block.(2:4)
7070

71-
@test blockcolsupport(A, 1) == Block.(1:2)
72-
@test blockcolsupport(A, 2) == Block.(1:3)
73-
@test blockcolsupport(A, 3) == Block.(2:4)
71+
@test blockcolsupport(A, Block(1)) == Block.(1:2)
72+
@test blockcolsupport(A, Block(2)) == Block.(1:3)
73+
@test blockcolsupport(A, Block(3)) == Block.(2:4)
7474

7575
@test rowsupport(A,1) == 1:3
7676
@test rowsupport(A,2) == 1:6
@@ -99,16 +99,16 @@ import ArrayLayouts: RangeCumsum
9999
@test A.μ == μ == subblockbandwidth(A,2)
100100
@test subblockbandwidths(A) == (λ, μ)
101101

102-
@test blockrowsupport(A, 1) == Block.(1:2)
103-
@test blockrowsupport(A, 2) == Block.(1:3)
104-
@test blockrowsupport(A, 3) == Block.(1:4)
105-
@test blockrowsupport(A, 4) == Block.(2:4)
102+
@test blockrowsupport(A, Block(1)) == Block.(1:2)
103+
@test blockrowsupport(A, Block(2)) == Block.(1:3)
104+
@test blockrowsupport(A, Block(3)) == Block.(1:4)
105+
@test blockrowsupport(A, Block(4)) == Block.(2:4)
106106

107107

108-
@test blockcolsupport(A, 1) == Block.(1:3)
109-
@test blockcolsupport(A, 2) == Block.(1:4)
110-
@test blockcolsupport(A, 3) == Block.(2:4)
111-
@test blockcolsupport(A, 4) == Block.(3:4)
108+
@test blockcolsupport(A, Block(1)) == Block.(1:3)
109+
@test blockcolsupport(A, Block(2)) == Block.(1:4)
110+
@test blockcolsupport(A, Block(3)) == Block.(2:4)
111+
@test blockcolsupport(A, Block(4)) == Block.(3:4)
112112

113113
@test rowsupport(A,1) == 1:3
114114
@test rowsupport(A,2) == 1:6
@@ -134,14 +134,14 @@ import ArrayLayouts: RangeCumsum
134134
@test A[Block(2,3)] == [8.0 9.0 0.0; 0.0 10.0 11.0]
135135
@test bandwidths(view(A,Block(2,3))) == bandwidths(A[Block(2,3)]) == (0,1)
136136

137-
@test blockrowsupport(A, 1) == Block.(2:2)
138-
@test blockrowsupport(A, 2) == Block.(3:3)
139-
@test blockrowsupport(A, 3) == Block.(4:4)
140-
@test blockrowsupport(A, 4) == Block.(5:5)
137+
@test blockrowsupport(A, Block(1)) == Block.(2:2)
138+
@test blockrowsupport(A, Block(2)) == Block.(3:3)
139+
@test blockrowsupport(A, Block(3)) == Block.(4:4)
140+
@test blockrowsupport(A, Block(4)) == Block.(5:5)
141141

142-
@test blockcolsupport(A, 1) == Block.(1:0)
143-
@test blockcolsupport(A, 2) == Block.(1:1)
144-
@test blockcolsupport(A, 3) == Block.(2:2)
142+
@test blockcolsupport(A, Block(1)) == Block.(1:0)
143+
@test blockcolsupport(A, Block(2)) == Block.(1:1)
144+
@test blockcolsupport(A, Block(3)) == Block.(2:2)
145145

146146
@test rowsupport(A,1) == 2:3
147147
@test rowsupport(A,2) == 4:6
@@ -163,9 +163,9 @@ import ArrayLayouts: RangeCumsum
163163
A = _BandedBlockBandedMatrix(data, rows,cols, (l,u), (λ,μ))
164164
@test_throws BandError A[1,1] = 5
165165

166-
@test blockcolsupport(A, 1) == Block.(1:0)
167-
@test blockcolsupport(A, 2) == Block.(1:1)
168-
@test blockcolsupport(A, 3) == Block.(2:2)
166+
@test blockcolsupport(A, Block(1)) == Block.(1:0)
167+
@test blockcolsupport(A, Block(2)) == Block.(1:1)
168+
@test blockcolsupport(A, Block(3)) == Block.(2:2)
169169

170170
@test colsupport(A,1) == 1:0
171171
@test colsupport(A,2) == 1:1

test/test_blockbanded.jl

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -97,20 +97,19 @@ import Base.Broadcast: materialize!
9797
A = BlockBandedMatrix{Int}(undef, rows,cols, (l,u))
9898
A.data .= 1:length(A.data)
9999

100-
@test @inferred(blockrowsupport(A, 1)) == Block.(1:3)
101-
@test blockrowsupport(A, 2) == Block.(1:4)
102-
@test blockrowsupport(A, 3) == Block.(2:4)
100+
@test @inferred(blockrowsupport(A, Block(1))) == Block.(1:3)
101+
@test blockrowsupport(A, Block(2)) == Block.(1:4)
102+
@test blockrowsupport(A, Block(3)) == Block.(2:4)
103103

104-
@test @inferred(blockcolsupport(A, 1)) == Block.(1:2)
105-
@test blockcolsupport(A, 2) == Block.(1:3)
106-
@test blockcolsupport(A, 3) == Block.(1:4)
107-
@test blockcolsupport(A, 4) == Block.(2:4)
104+
@test @inferred(blockcolsupport(A, Block(1))) == Block.(1:2)
105+
@test blockcolsupport(A, Block(2)) == Block.(1:3)
106+
@test blockcolsupport(A, Block(3)) == Block.(1:4)
107+
@test blockcolsupport(A, Block(4)) == Block.(2:4)
108108

109109
@test @inferred(blockrowsupport(A, Block.(3:4))) == Block.(2:4)
110110
@test @inferred(blockcolsupport(A, Block.(1:2))) == Block.(1:3)
111111

112112
@test @inferred(blockcolsupport(A, Block.(1:0))) == Block.(1:0)
113-
@test @inferred(blockcolsupport(A, 1:0)) == Block.(1:0)
114113
end
115114

116115
@testset "block-banded matrix interface for blockranges" begin

test/test_misc.jl

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -160,18 +160,18 @@ end
160160
@testset "Block-BandedMatrix" begin
161161
a = blockedrange(1:5)
162162
B = _BandedMatrix(PseudoBlockArray(randn(5,length(a)),(Base.OneTo(5),a)), a, 3, 1)
163-
@test blockcolsupport(B,1) == Block.(1:3)
164-
@test blockcolsupport(B,3) == Block.(2:4)
165-
@test blockrowsupport(B,1) == Block.(1:2)
166-
@test blockrowsupport(B,4) == Block.(3:5)
163+
@test blockcolsupport(B,Block(1)) == Block.(1:3)
164+
@test blockcolsupport(B,Block(3)) == Block.(2:4)
165+
@test blockrowsupport(B,Block(1)) == Block.(1:2)
166+
@test blockrowsupport(B,Block(4)) == Block.(3:5)
167167

168168
Q = Eye((a,))[:,Block(2)]
169169
@test Q isa BandedMatrix
170-
@test blockcolsupport(Q,1) == Block.(2:2)
170+
@test blockcolsupport(Q,Block(1)) == Block.(2:2)
171171

172172
Q = Eye((a,))[Block(2),:]
173173
@test Q isa BandedMatrix
174-
@test blockrowsupport(Q,1) == Block.(2:2)
174+
@test blockrowsupport(Q,Block(1)) == Block.(2:2)
175175

176176
@testset "constant blocks" begin
177177
a = blockedrange(Fill(2,5))
@@ -182,4 +182,4 @@ end
182182
@test blockbandwidths(B) == (4,0)
183183
end
184184
end
185-
end
185+
end

test/test_triblockbanded.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -127,8 +127,8 @@ import BlockArrays: BlockedUnitRange, blockisequal
127127

128128
V = view(A, Block.(1:3), Block.(1:3))
129129

130-
@test blockrowstop(V,1) == Block(2)
131-
@test blockcolstop(V,1) == Block(2)
130+
@test blockrowstop(V,Block(1)) == Block(2)
131+
@test blockcolstop(V,Block(1)) == Block(2)
132132

133133
@test blockisequal(axes(V), blockedrange.((1:3, 1:3)))
134134

0 commit comments

Comments
 (0)