@@ -357,6 +357,7 @@ function _banded_broadcast_BandedColumn!(dest, f, src, z)
357357end
358358
359359function _banded_broadcast! (dest:: AbstractMatrix , f, (src,x):: Tuple{AbstractMatrix{T},Number} , :: BandedColumns , :: BandedColumns ) where T
360+ isprimitivetype (T) || return _banded_broadcast! (dest, f, (src, x), BandedLayout (), BandedLayout ())
360361 z = f (zero (T),x)
361362 iszero (z) || checkbroadcastband (dest, size (src), bandwidths (broadcasted (f, src,x)))
362363
@@ -367,6 +368,8 @@ function _banded_broadcast!(dest::AbstractMatrix, f, (src,x)::Tuple{AbstractMatr
367368end
368369
369370function _banded_broadcast! (dest:: AbstractMatrix , f, (x, src):: Tuple{Number,AbstractMatrix{T}} , :: BandedColumns , :: BandedColumns ) where T
371+ isprimitivetype (T) || return _banded_broadcast! (dest, f, (x, src), BandedLayout (), BandedLayout ())
372+
370373 z = f (x, zero (T))
371374 iszero (z) || checkbroadcastband (dest, size (src), bandwidths (broadcasted (f, x,src)))
372375
@@ -824,12 +827,14 @@ function _banded_broadcast(f, A::AbstractMatrix{T}, ::BandedColumns) where T
824827 _BandedMatrix (Bdata_new, axes (A,1 ), bandwidths (A)... )
825828end
826829function _banded_broadcast (f, (src,x):: Tuple{AbstractMatrix{T},Number} , :: BandedColumns ) where T
830+ isprimitivetype (T) || return _banded_broadcast (f, (src,x), BandedLayout ())
827831 iszero (f (zero (T),x)) || return _default_banded_broadcast (broadcasted (f, src,x))
828832 Bdata = bandeddata (src)
829833 Bdata_new = reshape (f .(vec (Bdata), x), size (Bdata))
830834 _BandedMatrix (Bdata_new, axes (src,1 ), bandwidths (src)... )
831835end
832836function _banded_broadcast (f, (x, src):: Tuple{Number,AbstractMatrix{T}} , :: BandedColumns ) where T
837+ isprimitivetype (T) || return _banded_broadcast (f, (x,src), BandedLayout ())
833838 iszero (f (x, zero (T))) || return _default_banded_broadcast (broadcasted (f, x,src))
834839 Bdata = bandeddata (src)
835840 Bdata_new = reshape (f .(x, vec (Bdata)), size (Bdata))
@@ -935,12 +940,20 @@ end
935940
936941
937942function _banded_lmul! (α:: Number , A:: AbstractMatrix , :: BandedColumns )
938- lmul! (α, bandeddata (A))
943+ if ! isprimitivetype (eltype (A))
944+ _banded_lmul! (α, A, BandedLayout ()) # avoid undefined
945+ else
946+ lmul! (α, bandeddata (A))
947+ end
939948 A
940949end
941950
942951function _banded_rmul! (A:: AbstractMatrix , α:: Number , :: BandedColumns )
943- rmul! (bandeddata (A), α)
952+ if ! isprimitivetype (eltype (A))
953+ _banded_rmul! (A, α, BandedLayout ()) # avoid undefined
954+ else
955+ rmul! (bandeddata (A), α)
956+ end
944957 A
945958end
946959
0 commit comments