Skip to content

Commit 9ceb52b

Browse files
JKrehltimholy
authored andcommitted
Force inlining on CartesianIndex operations
1 parent 810cade commit 9ceb52b

File tree

1 file changed

+12
-11
lines changed

1 file changed

+12
-11
lines changed

base/multidimensional.jl

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -65,22 +65,23 @@ module IteratorsMD
6565
one{N}(::Type{CartesianIndex{N}}) = CartesianIndex(ntuple(x -> 1, Val{N}))
6666

6767
# arithmetic, min/max
68-
(-){N}(index::CartesianIndex{N}) = CartesianIndex{N}(map(-, index.I))
69-
(+){N}(index1::CartesianIndex{N}, index2::CartesianIndex{N}) =
68+
@inline (-){N}(index::CartesianIndex{N}) =
69+
CartesianIndex{N}(map(-, index.I))
70+
@inline (+){N}(index1::CartesianIndex{N}, index2::CartesianIndex{N}) =
7071
CartesianIndex{N}(map(+, index1.I, index2.I))
71-
(-){N}(index1::CartesianIndex{N}, index2::CartesianIndex{N}) =
72+
@inline (-){N}(index1::CartesianIndex{N}, index2::CartesianIndex{N}) =
7273
CartesianIndex{N}(map(-, index1.I, index2.I))
73-
min{N}(index1::CartesianIndex{N}, index2::CartesianIndex{N}) =
74+
@inline min{N}(index1::CartesianIndex{N}, index2::CartesianIndex{N}) =
7475
CartesianIndex{N}(map(min, index1.I, index2.I))
75-
max{N}(index1::CartesianIndex{N}, index2::CartesianIndex{N}) =
76+
@inline max{N}(index1::CartesianIndex{N}, index2::CartesianIndex{N}) =
7677
CartesianIndex{N}(map(max, index1.I, index2.I))
7778

78-
(+)(i::Integer, index::CartesianIndex) = index+i
79-
(+){N}(index::CartesianIndex{N}, i::Integer) = CartesianIndex{N}(map(x->x+i, index.I))
80-
(-){N}(index::CartesianIndex{N}, i::Integer) = CartesianIndex{N}(map(x->x-i, index.I))
81-
(-){N}(i::Integer, index::CartesianIndex{N}) = CartesianIndex{N}(map(x->i-x, index.I))
82-
(*){N}(a::Integer, index::CartesianIndex{N}) = CartesianIndex{N}(map(x->a*x, index.I))
83-
(*)(index::CartesianIndex,a::Integer)=*(a,index)
79+
@inline (+)(i::Integer, index::CartesianIndex) = index+i
80+
@inline (+){N}(index::CartesianIndex{N}, i::Integer) = CartesianIndex{N}(map(x->x+i, index.I))
81+
@inline (-){N}(index::CartesianIndex{N}, i::Integer) = CartesianIndex{N}(map(x->x-i, index.I))
82+
@inline (-){N}(i::Integer, index::CartesianIndex{N}) = CartesianIndex{N}(map(x->i-x, index.I))
83+
@inline (*){N}(a::Integer, index::CartesianIndex{N}) = CartesianIndex{N}(map(x->a*x, index.I))
84+
@inline (*)(index::CartesianIndex,a::Integer)=*(a,index)
8485

8586
# comparison
8687
@inline isless{N}(I1::CartesianIndex{N}, I2::CartesianIndex{N}) = _isless(0, I1.I, I2.I)

0 commit comments

Comments
 (0)