Skip to content

Commit 255ff11

Browse files
committed
simplify sublayout
1 parent 7a6cb4c commit 255ff11

File tree

5 files changed

+17
-26
lines changed

5 files changed

+17
-26
lines changed

Project.toml

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

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

src/BandedBlockBandedMatrix.jl

Lines changed: 10 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -391,23 +391,14 @@ const SubBandedBlockBandedMatrix{T,R1,R2} =
391391
SubArray{T,2,<:BandedBlockBandedMatrix{T},<:Tuple{BlockSlice{R1},BlockSlice{R2}}}
392392

393393

394-
sublayout(::BandedBlockBandedColumnMajor, ::Type{<:Tuple{BlockSlice1,BlockSlice1}}) = BandedColumnMajor()
395-
sublayout(::BandedBlockBandedColumnMajor, ::Type{<:Tuple{BlockSlice{<:BlockIndexRange1},BlockSlice{<:BlockIndexRange1}}}) = BandedColumnMajor()
396-
sublayout(::BandedBlockBandedColumnMajor, ::Type{<:Tuple{BlockSlice{<:BlockIndexRange1},BlockSlice1}}) = BandedColumnMajor()
397-
sublayout(::BandedBlockBandedColumnMajor, ::Type{<:Tuple{BlockSlice1,BlockSlice{<:BlockIndexRange1}}}) = BandedColumnMajor()
398-
sublayout(::BandedBlockBandedColumnMajor, ::Type{<:Tuple{BlockSlice{<:BlockRange1},BlockSlice{<:BlockRange1}}}) = BandedBlockBandedColumnMajor()
399-
sublayout(::BandedBlockBandedColumnMajor, ::Type{<:Tuple{BlockSlice1,BlockSlice{<:BlockRange1}}}) = BandedBlockBandedColumnMajor()
400-
sublayout(::BandedBlockBandedColumnMajor, ::Type{<:Tuple{BlockSlice{<:BlockRange1},BlockSlice1}}) = BandedBlockBandedColumnMajor()
401-
sublayout(::BandedBlockBandedColumnMajor, ::Type{<:Tuple{BlockSlice{<:BlockRange1},BlockSlice{<:BlockIndexRange1}}}) = BandedBlockBandedColumnMajor()
402-
403-
sublayout(::BandedBlockBandedColumns, ::Type{<:Tuple{BlockSlice1,BlockSlice1}}) = BandedColumns{UnknownLayout}()
404-
sublayout(::BandedBlockBandedColumns, ::Type{<:Tuple{BlockSlice{<:BlockIndexRange1},BlockSlice{<:BlockIndexRange1}}}) = BandedColumns{UnknownLayout}()
405-
sublayout(::BandedBlockBandedColumns, ::Type{<:Tuple{BlockSlice{<:BlockIndexRange1},BlockSlice1}}) = BandedColumns{UnknownLayout}()
406-
sublayout(::BandedBlockBandedColumns, ::Type{<:Tuple{BlockSlice1,BlockSlice{<:BlockIndexRange1}}}) = BandedColumns{UnknownLayout}()
407-
sublayout(::BandedBlockBandedColumns, ::Type{<:Tuple{BlockSlice{<:BlockRange1},BlockSlice{<:BlockRange1}}}) = BandedBlockBandedColumns{UnknownLayout}()
408-
sublayout(::BandedBlockBandedColumns, ::Type{<:Tuple{BlockSlice1,BlockSlice{<:BlockRange1}}}) = BandedBlockBandedColumns{UnknownLayout}()
409-
sublayout(::BandedBlockBandedColumns, ::Type{<:Tuple{BlockSlice{<:BlockRange1},BlockSlice1}}) = BandedBlockBandedColumns{UnknownLayout}()
410-
sublayout(::BandedBlockBandedColumns, ::Type{<:Tuple{BlockSlice{<:BlockRange1},BlockSlice{<:BlockIndexRange1}}}) = BandedBlockBandedColumns{UnknownLayout}()
394+
sublayout(::BandedBlockBandedColumns{ML}, ::Type{II}) where {ML,II<:Tuple{BlockSlice1,BlockSlice1}} = bandedcolumns(sublayout(ML(), II))
395+
sublayout(::BandedBlockBandedColumns{ML}, ::Type{II}) where {ML,II<:Tuple{BlockSlice{<:BlockIndexRange1},BlockSlice{<:BlockIndexRange1}}} = bandedcolumns(sublayout(ML(), II))
396+
sublayout(::BandedBlockBandedColumns{ML}, ::Type{II}) where {ML,II<:Tuple{BlockSlice{<:BlockIndexRange1},BlockSlice1}} = bandedcolumns(sublayout(ML(), II))
397+
sublayout(::BandedBlockBandedColumns{ML}, ::Type{II}) where {ML,II<:Tuple{BlockSlice1,BlockSlice{<:BlockIndexRange1}}} = bandedcolumns(sublayout(ML(), II))
398+
sublayout(::BandedBlockBandedColumns{ML}, ::Type{II}) where {ML,II<:Tuple{BlockSlice{<:BlockRange1},BlockSlice{<:BlockRange1}}} = bandedblockbandedcolumns(sublayout(ML(), II))
399+
sublayout(::BandedBlockBandedColumns{ML}, ::Type{II}) where {ML,II<:Tuple{BlockSlice1,BlockSlice{<:BlockRange1}}} = bandedblockbandedcolumns(sublayout(ML(), II))
400+
sublayout(::BandedBlockBandedColumns{ML}, ::Type{II}) where {ML,II<:Tuple{BlockSlice{<:BlockRange1},BlockSlice1}} = bandedblockbandedcolumns(sublayout(ML(), II))
401+
sublayout(::BandedBlockBandedColumns{ML}, ::Type{II}) where {ML,II<:Tuple{BlockSlice{<:BlockRange1},BlockSlice{<:BlockIndexRange1}}} = bandedblockbandedcolumns(sublayout(ML(), II))
411402

412403
blockbandshift(A::BlockSlice, B::BlockSlice) = BandedMatrices.bandshift(Int.(A.block), Int.(B.block))
413404
blockbandshift(S) = blockbandshift(parentindices(S)[1],parentindices(S)[2])
@@ -434,8 +425,8 @@ sub_materialize(::AbstractBandedBlockBandedLayout, V, ::Tuple{<:AbstractUnitRang
434425
sub_materialize(::AbstractBandedBlockBandedLayout, V, ::Tuple{<:BlockedUnitRange,<:AbstractUnitRange}) = PseudoBlockArray(V)
435426

436427

437-
isbanded(A::SubArray{<:Any,2,<:BandedBlockBandedMatrix}) = MemoryLayout(typeof(A)) == BandedColumnMajor()
438-
isbandedblockbanded(A::SubArray{<:Any,2,<:BandedBlockBandedMatrix}) = MemoryLayout(typeof(A)) == BandedBlockBandedColumnMajor()
428+
isbanded(A::SubArray{<:Any,2,<:BandedBlockBandedMatrix}) = MemoryLayout(A) isa AbstractBandedLayout
429+
isbandedblockbanded(A::SubArray{<:Any,2,<:BandedBlockBandedMatrix}) = MemoryLayout(A) isa AbstractBandedBlockBandedLayout
439430

440431

441432
subblockbandwidths(V::SubArray{<:Any,2,<:Any,<:Tuple{<:BlockSlice{<:BlockRange1},<:BlockSlice{<:BlockRange1}}}) =

src/BlockBandedMatrices.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ import BandedMatrices: isbanded, bandwidths, bandwidth, banded_getindex, colrang
3838
inbands_setindex!, inbands_getindex, banded_setindex!,
3939
banded_generic_axpy!,
4040
BlasFloat, banded_dense_axpy!, MemoryLayout,
41-
BandedLayout, BandedColumnMajor, BandedColumns,
41+
BandedLayout, BandedColumnMajor, BandedColumns, bandedcolumns,
4242
BandedSubBandedMatrix, bandeddata,
4343
_BandedMatrix, colstart, colstop, rowstart, rowstop,
4444
BandedStyle, _fill_lmul!, bandshift,

test/test_bandedblockbanded.jl

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -455,20 +455,20 @@ import ArrayLayouts: RangeCumsum
455455
A = BandedBlockBandedMatrix{Float64}(undef, 1:2, 1:5,(-1,1), (-1,1))
456456
A.data .= randn.()
457457
V = view(A, Block(2,3))
458-
@test MemoryLayout(typeof(V)) == BandedMatrices.BandedColumnMajor()
458+
@test MemoryLayout(typeof(V)) == BandedMatrices.BandedColumns{ColumnMajor}()
459459
@test isbanded(V)
460460
@test bandwidths(V) == (-1,1)
461461
@test BandedMatrix(V) == A[2:3,4:6]
462462
V2 = view(V, :, 2:3)
463-
@test MemoryLayout(typeof(V2)) == BandedMatrices.BandedColumnMajor()
463+
@test MemoryLayout(typeof(V2)) == BandedMatrices.BandedColumns{ColumnMajor}()
464464
@test bandwidths(V2) == (0,0)
465465
@test BandedMatrix(V2) == A[2:3,5:6]
466466
V2 = view(V, 2:2, :)
467-
@test MemoryLayout(typeof(V2)) == BandedMatrices.BandedColumnMajor()
467+
@test MemoryLayout(typeof(V2)) == BandedMatrices.BandedColumns{ColumnMajor}()
468468
@test bandwidths(V2) == (-2,2)
469469
@test BandedMatrix(V2) == A[3:3,4:6]
470470
V2 = view(V, 2:2, 2:3)
471-
@test MemoryLayout(typeof(V2)) == BandedMatrices.BandedColumnMajor()
471+
@test MemoryLayout(typeof(V2)) == BandedMatrices.BandedColumns{ColumnMajor}()
472472
@test bandwidths(V2) == (-1,1)
473473
@test BandedMatrix(V2) == A[3:3,5:6]
474474
end

test/test_triblockbanded.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ import BlockArrays: BlockedUnitRange, blockisequal
5757

5858
@test blocksize(V) == (3,1)
5959
V2 = view(V, Block(1), Block(1))
60-
@test MemoryLayout(typeof(V2)) == BandedColumnMajor()
60+
@test MemoryLayout(V2) isa BandedMatrices.BandedColumns{ColumnMajor}
6161

6262
b = rand(size(V,2))
6363
@test (similar(b, size(V,1)) .= MulAdd(V, b)) V*b

0 commit comments

Comments
 (0)