Skip to content

Commit 2051723

Browse files
committed
Move out BlockVec
1 parent 0086b8d commit 2051723

File tree

4 files changed

+5
-55
lines changed

4 files changed

+5
-55
lines changed

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ BlockArrays = "1.0"
2828
BlockBandedMatrices = "0.13"
2929
FillArrays = "1.0"
3030
InfiniteArrays = "0.15"
31-
LazyArrays = "2.2.3"
31+
LazyArrays = "2.8"
3232
MatrixFactorizations = "3.0"
3333
StaticArrays = "1.0"
3434
julia = "1.10"

src/LazyBandedMatrices.jl

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,15 @@ import ArrayLayouts: MemoryLayout, bidiagonallayout, bidiagonaluplo, diagonaldat
1717
materialize!, MulAdd, MatMulVecAdd
1818
import LazyArrays: ApplyLayout, AbstractPaddedLayout, PaddedLayout, PaddedColumns, BroadcastLayout, LazyArrayStyle, LazyLayout,
1919
arguments, call, tuple_type_memorylayouts, paddeddata, _broadcast_sub_arguments, resizedata!,
20-
_cumsum, convexunion, applylayout, AbstractLazyBandedLayout, ApplyBandedLayout, BroadcastBandedLayout, LazyBandedLayout
20+
_cumsum, convexunion, applylayout, AbstractLazyBandedLayout, ApplyBandedLayout, BroadcastBandedLayout, LazyBandedLayout, applied_eltype
2121
import BandedMatrices: AbstractBandedMatrix, BandedStyle, bandwidths, isbanded
2222
import BlockBandedMatrices: AbstractBlockBandedLayout, AbstractBandedBlockBandedLayout, BlockRange1, Block1, blockbandwidths, subblockbandwidths,
2323
BlockBandedStyle, BandedBlockBandedStyle, isblockbanded, isbandedblockbanded
2424
import BlockArrays: BlockSlices, BlockSlice1, BlockSlice, blockvec, AbstractBlockLayout, blockcolsupport, blockrowsupport, BlockLayout, block, blockindex, viewblock, AbstractBlockedUnitRange
2525
import FillArrays: SquareEye
2626

2727
const LazyArraysBlockBandedMatricesExt = Base.get_extension(LazyArrays, :LazyArraysBlockBandedMatricesExt)
28+
const LazyArraysBlockArraysExt = Base.get_extension(LazyArrays, :LazyArraysBlockArraysExt)
2829

2930
const AbstractLazyBlockBandedLayout = LazyArraysBlockBandedMatricesExt.AbstractLazyBlockBandedLayout
3031
const BroadcastBandedBlockBandedLayout = LazyArraysBlockBandedMatricesExt.BroadcastBandedBlockBandedLayout
@@ -34,6 +35,8 @@ const AbstractLazyBandedBlockBandedLayout = LazyArraysBlockBandedMatricesExt.Abs
3435
const ApplyBandedBlockBandedLayout = LazyArraysBlockBandedMatricesExt.ApplyBandedBlockBandedLayout
3536
const LazyBlockBandedLayouts = LazyArraysBlockBandedMatricesExt.LazyBlockBandedLayouts
3637

38+
const BlockVec = LazyArraysBlockArraysExt.BlockVec
39+
3740

3841
export DiagTrav, KronTrav, blockkron, BlockKron, BlockBroadcastArray, BlockVcat, BlockHcat, BlockHvcat, unitblocks
3942

src/blockconcat.jl

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -488,28 +488,6 @@ MemoryLayout(::Type{BlockBroadcastArray{T,N,FF,Args}}) where {T,N,FF,Args} = blo
488488

489489
resize!(c::BlockBroadcastVector{T,typeof(vcat)}, N::Block{1}) where T = BlockBroadcastVector{T}(vcat, resize!.(c.args, N)...)
490490

491-
####
492-
# BlockVec
493-
####
494-
495-
const BlockVec{T, M<:AbstractMatrix{T}} = ApplyVector{T, typeof(blockvec), <:Tuple{M}}
496-
497-
BlockVec{T}(M::AbstractMatrix{T}) where T = ApplyVector{T}(blockvec, M)
498-
BlockVec(M::AbstractMatrix{T}) where T = BlockVec{T}(M)
499-
axes(b::BlockVec) = (blockedrange(Fill(size(b.args[1])...)),)
500-
size(b::BlockVec) = (length(b.args[1]),)
501-
502-
view(b::BlockVec, K::Block{1}) = view(b.args[1], :, Int(K))
503-
Base.@propagate_inbounds getindex(b::BlockVec, k::Int) = b.args[1][k]
504-
Base.@propagate_inbounds setindex!(b::BlockVec, v, k::Int) = setindex!(b.args[1], v, k)
505-
506-
_resize!(A::AbstractMatrix, m, n) = A[1:m, 1:n]
507-
_resize!(At::Transpose, m, n) = transpose(transpose(At)[1:n, 1:m])
508-
_resize!(Ac::Adjoint, m, n) = (Ac')[1:n, 1:m]'
509-
resize!(b::BlockVec, K::Block{1}) = BlockVec(_resize!(b.args[1], size(b.args[1],1), Int(K)))
510-
511-
applylayout(::Type{typeof(blockvec)}, ::AbstractPaddedLayout) = PaddedColumns{ApplyLayout{typeof(blockvec)}}()
512-
paddeddata(b::BlockVec) = BlockVec(paddeddata(b.args[1]))
513491

514492

515493

test/test_blockconcat.jl

Lines changed: 0 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -421,35 +421,4 @@ end
421421
end
422422
end
423423

424-
@testset "BlockVec" begin
425-
X = randn(5,4)
426-
b = BlockVec(X)
427-
@test size(b) == (20,)
428-
@test length(b) == 20
429-
@test MemoryLayout(b) isa ApplyLayout{typeof(blockvec)}
430-
@test b == vec(X)
431-
@test view(b, Block(3)) view(X, :, 3)
432-
@test b[Block(3)] isa Vector
433-
b[5] = 6
434-
@test X[5] == 6
435-
@test resize!(b, Block(2)) == b[Block.(1:2)]
436-
437-
c = BlockVec(X')
438-
@test c == vec(X')
439-
@test view(c, Block(3)) view(X', :, 3)
440-
@test resize!(c, Block(2)) == c[Block.(1:2)]
441-
442-
c = BlockVec(transpose(X))
443-
@test c == vec(transpose(X))
444-
@test view(c, Block(3)) view(transpose(X), :, 3)
445-
@test resize!(c, Block(2)) == c[Block.(1:2)]
446-
447-
X = cache(Zeros(5,6));
448-
X[1,1] = 2
449-
c = BlockVec(X);
450-
@test MemoryLayout(c) isa PaddedColumns
451-
@test paddeddata(c) isa BlockVec
452-
@test paddeddata(c) == [2]
453-
end
454-
455424
end # module

0 commit comments

Comments
 (0)