Skip to content

Commit d72be3f

Browse files
committed
Add missing files
1 parent f15948a commit d72be3f

File tree

1 file changed

+68
-0
lines changed

1 file changed

+68
-0
lines changed

src/fillarrays.jl

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
using FillArrays: FillArrays, Ones, Zeros
2+
function FillArrays.fillsimilar(
3+
a::Zeros{T},
4+
ax::Tuple{
5+
CartesianProductUnitRange{<:Integer},Vararg{CartesianProductUnitRange{<:Integer}}
6+
},
7+
) where {T}
8+
return Zeros{T}(arg1.(ax)) Zeros{T}(arg2.(ax))
9+
end
10+
11+
# Simplification rules similar to those for FillArrays.jl:
12+
# https://github.com/JuliaArrays/FillArrays.jl/blob/v1.13.0/src/fillbroadcast.jl
13+
using FillArrays: Zeros
14+
function Base.broadcasted(
15+
style::KroneckerStyle,
16+
::typeof(+),
17+
a::KroneckerArray,
18+
b::KroneckerArray{<:Any,<:Any,<:Zeros,<:Zeros},
19+
)
20+
# TODO: Promote the element types.
21+
return a
22+
end
23+
function Base.broadcasted(
24+
style::KroneckerStyle,
25+
::typeof(+),
26+
a::KroneckerArray{<:Any,<:Any,<:Zeros,<:Zeros},
27+
b::KroneckerArray,
28+
)
29+
# TODO: Promote the element types.
30+
return b
31+
end
32+
function Base.broadcasted(
33+
style::KroneckerStyle,
34+
::typeof(+),
35+
a::KroneckerArray{<:Any,<:Any,<:Zeros,<:Zeros},
36+
b::KroneckerArray{<:Any,<:Any,<:Zeros,<:Zeros},
37+
)
38+
# TODO: Promote the element types and axes.
39+
return b
40+
end
41+
function Base.broadcasted(
42+
style::KroneckerStyle,
43+
::typeof(-),
44+
a::KroneckerArray,
45+
b::KroneckerArray{<:Any,<:Any,<:Zeros,<:Zeros},
46+
)
47+
# TODO: Promote the element types.
48+
return a
49+
end
50+
function Base.broadcasted(
51+
style::KroneckerStyle,
52+
::typeof(-),
53+
a::KroneckerArray{<:Any,<:Any,<:Zeros,<:Zeros},
54+
b::KroneckerArray,
55+
)
56+
# TODO: Promote the element types.
57+
# TODO: Return `broadcasted(-, b)`.
58+
return -b
59+
end
60+
function Base.broadcasted(
61+
style::KroneckerStyle,
62+
::typeof(-),
63+
a::KroneckerArray{<:Any,<:Any,<:Zeros,<:Zeros},
64+
b::KroneckerArray{<:Any,<:Any,<:Zeros,<:Zeros},
65+
)
66+
# TODO: Promote the element types and axes.
67+
return b
68+
end

0 commit comments

Comments
 (0)