@@ -323,6 +323,65 @@ function Base.broadcasted(
323323 return broadcasted (style, Base. Fix2 (/ , f. args[2 ]), a)
324324end
325325
326+ # Simplification rules similar to those for FillArrays.jl:
327+ # https://github.com/JuliaArrays/FillArrays.jl/blob/v1.13.0/src/fillbroadcast.jl
328+ using FillArrays: Zeros
329+ function Base. broadcasted (
330+ style:: KroneckerStyle ,
331+ :: typeof (+ ),
332+ a:: KroneckerArray ,
333+ b:: KroneckerArray{<:Any,<:Any,<:Zeros,<:Zeros} ,
334+ )
335+ # TODO : Promote the element types.
336+ return a
337+ end
338+ function Base. broadcasted (
339+ style:: KroneckerStyle ,
340+ :: typeof (+ ),
341+ a:: KroneckerArray{<:Any,<:Any,<:Zeros,<:Zeros} ,
342+ b:: KroneckerArray ,
343+ )
344+ # TODO : Promote the element types.
345+ return b
346+ end
347+ function Base. broadcasted (
348+ style:: KroneckerStyle ,
349+ :: typeof (+ ),
350+ a:: KroneckerArray{<:Any,<:Any,<:Zeros,<:Zeros} ,
351+ b:: KroneckerArray{<:Any,<:Any,<:Zeros,<:Zeros} ,
352+ )
353+ # TODO : Promote the element types and axes.
354+ return b
355+ end
356+ function Base. broadcasted (
357+ style:: KroneckerStyle ,
358+ :: typeof (- ),
359+ a:: KroneckerArray ,
360+ b:: KroneckerArray{<:Any,<:Any,<:Zeros,<:Zeros} ,
361+ )
362+ # TODO : Promote the element types.
363+ return a
364+ end
365+ function Base. broadcasted (
366+ style:: KroneckerStyle ,
367+ :: typeof (- ),
368+ a:: KroneckerArray{<:Any,<:Any,<:Zeros,<:Zeros} ,
369+ b:: KroneckerArray ,
370+ )
371+ # TODO : Promote the element types.
372+ # TODO : Return `broadcasted(-, b)`.
373+ return - b
374+ end
375+ function Base. broadcasted (
376+ style:: KroneckerStyle ,
377+ :: typeof (- ),
378+ a:: KroneckerArray{<:Any,<:Any,<:Zeros,<:Zeros} ,
379+ b:: KroneckerArray{<:Any,<:Any,<:Zeros,<:Zeros} ,
380+ )
381+ # TODO : Promote the element types and axes.
382+ return b
383+ end
384+
326385# TODO : Define by converting to a broadcast expession (with MapBroadcast.jl)
327386# and then constructing the output with `similar`.
328387function Base. map (f, a1:: KroneckerArray , a_rest:: KroneckerArray... )
0 commit comments