@@ -7,7 +7,8 @@ import Base: +, -, *, /, \, ^, OneTo, getindex, promote_op, _unsafe_getindex, pr
7
7
show, getproperty, copy, map, require_one_based_indexing
8
8
import Base. Broadcast: BroadcastStyle, Broadcasted, broadcasted
9
9
10
- import ArrayLayouts: colsupport, rowsupport, triangularlayout, MatLdivVec, triangulardata, TriangularLayout, sublayout, _qr
10
+ import ArrayLayouts: colsupport, rowsupport, triangularlayout, MatLdivVec, triangulardata, TriangularLayout, sublayout, _qr,
11
+ MatLmulVec, MatLmulMat, AbstractQLayout, materialize!
11
12
import BandedMatrices: BandedMatrix, _BandedMatrix, AbstractBandedMatrix, bandeddata, bandwidths, BandedColumns, bandedcolumns,
12
13
_default_banded_broadcast
13
14
import FillArrays: AbstractFill, getindex_value
@@ -16,18 +17,20 @@ import LinearAlgebra: lmul!, ldiv!, matprod, qr, AbstractTriangular, AbstractQ,
16
17
import LazyArrays: applybroadcaststyle, CachedArray, CachedMatrix, CachedVector, DenseColumnMajor, FillLayout, ApplyMatrix, check_mul_axes, ApplyStyle, LazyArrayApplyStyle, LazyArrayStyle,
17
18
resizedata!, MemoryLayout, mulapplystyle, LmulStyle, RmulStyle,
18
19
factorize, sub_materialize, LazyLayout, LazyArrayStyle, layout_getindex,
19
- @lazymul , applylayout, ApplyLayout, PaddedLayout, materialize!, zero!, MulAddStyle,
20
- LazyArray, LazyMatrix, LazyVector
21
- import MatrixFactorizations: ql, ql!, _ql, QLPackedQ, getL, getR, reflector!, reflectorApply!, QL, QR, QRPackedQ
20
+ @lazymul , applylayout, ApplyLayout, PaddedLayout, zero!, MulAddStyle,
21
+ LazyArray, LazyMatrix, LazyVector, paddeddata
22
+ import MatrixFactorizations: ql, ql!, _ql, QLPackedQ, getL, getR, reflector!, reflectorApply!, QL, QR, QRPackedQ,
23
+ QRPackedQLayout, AdjQRPackedQLayout, QLPackedQLayout, AdjQLPackedQLayout, LayoutQ
22
24
23
- import BlockArrays: AbstractBlockVecOrMat, sizes_from_blocks, _length, BlockedUnitRange
25
+ import BlockArrays: AbstractBlockVecOrMat, sizes_from_blocks, _length, BlockedUnitRange, blockcolsupport
24
26
25
27
import BandedMatrices: BandedMatrix, bandwidths, AbstractBandedLayout, _banded_qr!, _banded_qr, _BandedMatrix
26
28
27
- import LazyBandedMatrices: MulBandedLayout, BroadcastBandedLayout
29
+ import LazyBandedMatrices: MulBandedLayout, BroadcastBandedLayout, _krontrav_axes
28
30
29
31
import BlockBandedMatrices: _BlockSkylineMatrix, _BandedMatrix, _BlockSkylineMatrix, blockstart, blockstride,
30
- BlockSkylineSizes, BlockSkylineMatrix, BlockBandedMatrix, _BlockBandedMatrix, BlockTridiagonal
32
+ BlockSkylineSizes, BlockSkylineMatrix, BlockBandedMatrix, _BlockBandedMatrix, BlockTridiagonal,
33
+ AbstractBlockBandedLayout, _blockbanded_qr!, BlockBandedLayout
31
34
32
35
import SemiseparableMatrices: AbstractAlmostBandedLayout, _almostbanded_qr!
33
36
@@ -78,5 +81,13 @@ broadcasted(::LazyArrayStyle{1}, ::typeof(length), A::BroadcastArray{<:Fill,1,Ty
78
81
79
82
BlockArrays. _length (:: BlockedUnitRange , :: OneToInf ) = ∞
80
83
BlockArrays. _last (:: BlockedUnitRange , :: OneToInf ) = ∞
84
+
85
+ # ##
86
+ # KronTrav
87
+ # ##
88
+
89
+ _krontrav_axes (A:: NTuple{N,OneToInf{Int}} , B:: NTuple{N,OneToInf{Int}} ) where N =
90
+ @. blockedrange (OneTo (length (A)))
91
+
81
92
82
93
end # module
0 commit comments