@@ -704,18 +704,23 @@ _default_banded_broadcast(bc::Broadcasted) = _default_banded_broadcast(bc, axes(
704
704
_banded_broadcast (f, args:: Tuple , _... ) = _default_banded_broadcast (broadcasted (f, args... ))
705
705
_banded_broadcast (f, arg, _... ) = _default_banded_broadcast (broadcasted (f, arg))
706
706
707
-
708
707
function _banded_broadcast (f, A:: AbstractMatrix{T} , :: BandedColumns ) where T
709
708
iszero (f (zero (T))) || return _default_banded_broadcast (broadcasted (f, A))
710
- _BandedMatrix (f .(bandeddata (A)), axes (A,1 ), bandwidths (A)... )
709
+ Bdata = bandeddata (A)
710
+ Bdata_new = reshape (f .(vec (Bdata)), size (Bdata))
711
+ _BandedMatrix (Bdata_new, axes (A,1 ), bandwidths (A)... )
711
712
end
712
713
function _banded_broadcast (f, (src,x):: Tuple{AbstractMatrix{T},Number} , :: BandedColumns ) where T
713
714
iszero (f (zero (T),x)) || return _default_banded_broadcast (broadcasted (f, src,x))
714
- _BandedMatrix (f .(bandeddata (src),x), axes (src,1 ), bandwidths (src)... )
715
+ Bdata = bandeddata (src)
716
+ Bdata_new = reshape (f .(vec (Bdata), x), size (Bdata))
717
+ _BandedMatrix (Bdata_new, axes (src,1 ), bandwidths (src)... )
715
718
end
716
719
function _banded_broadcast (f, (x, src):: Tuple{Number,AbstractMatrix{T}} , :: BandedColumns ) where T
717
720
iszero (f (x, zero (T))) || return _default_banded_broadcast (broadcasted (f, x,src))
718
- _BandedMatrix (f .(x, bandeddata (src)), axes (src,1 ), bandwidths (src)... )
721
+ Bdata = bandeddata (src)
722
+ Bdata_new = reshape (f .(x, vec (Bdata)), size (Bdata))
723
+ _BandedMatrix (Bdata_new, axes (src,1 ), bandwidths (src)... )
719
724
end
720
725
721
726
function copy (bc:: Broadcasted{BandedStyle, <:Any, <:Any, <:Tuple{<:AbstractMatrix}} )
0 commit comments