@@ -5,7 +5,7 @@ using InfiniteArrays.LazyArrays, InfiniteArrays.ArrayLayouts, InfiniteArrays.Fil
55import Base: BroadcastStyle, size, getindex, similar, copy, * , + , - , / , \ , materialize!, copyto!, OneTo
66import Base. Broadcast: Broadcasted
77import InfiniteArrays: InfIndexRanges, Infinity, PosInfinity, OneToInf, InfAxes, AbstractInfUnitRange, InfRanges, InfBaseToeplitzLayouts, ConstRowMatrix, PertConstRowMatrix, SymTriPertToeplitz, TriPertToeplitz, ConstRows, PertConstRows, PertTridiagonalToeplitzLayout
8- import ArrayLayouts: sub_materialize, MemoryLayout, sublayout, mulreduce, triangularlayout, MatLdivVec, subdiagonaldata, diagonaldata, supdiagonaldata
8+ import ArrayLayouts: sub_materialize, MemoryLayout, sublayout, mulreduce, triangularlayout, MatLdivVec, subdiagonaldata, diagonaldata, supdiagonaldata, OnesLayout, _copy_oftype
99import LazyArrays: applybroadcaststyle, applylayout, islazy, islazy_layout, simplifiable, AbstractLazyLayout, PaddedColumns, LazyArrayStyle, ApplyLayout, AbstractLazyBandedLayout, ApplyBandedLayout, BroadcastBandedLayout
1010import BandedMatrices: _BandedMatrix, AbstractBandedMatrix, banded_similar, BandedMatrix, bandedcolumns, BandedColumns, bandeddata, _default_banded_broadcast
1111import FillArrays: AbstractFillMatrix, AbstractFill, getindex_value
@@ -401,6 +401,10 @@ simplifiable(::Mul{<:DiagonalLayout, <:InfToeplitzLayouts}) = Val(true)
401401simplifiable (:: Mul{<:InfToeplitzLayouts, <:DiagonalLayout} ) = Val (true )
402402mulreduce (M:: Mul{<:DiagonalLayout, <:InfToeplitzLayouts} ) = Lmul (M)
403403mulreduce (M:: Mul{<:InfToeplitzLayouts, <:DiagonalLayout} ) = Rmul (M)
404+ copy (M:: Mul{<:DiagonalLayout, <:InfToeplitzLayouts} ) = copy (mulreduce (M))
405+ copy (M:: Mul{<:InfToeplitzLayouts, <:DiagonalLayout} ) = copy (mulreduce (M))
406+ copy (M:: Mul{<:InfToeplitzLayouts, <:DiagonalLayout{<:OnesLayout}} ) = _copy_oftype (M. A, eltype (M))
407+ copy (M:: Mul{<:DiagonalLayout{<:OnesLayout}, <:InfToeplitzLayouts} ) = _copy_oftype (M. B, eltype (M))
404408
405409
406410
0 commit comments