Skip to content

Commit 83b2655

Browse files
authored
Merge pull request #170 from kshyatt/ksh/mrd
Fix a bug and add tests for mapreducedim
2 parents 423e9ff + 7e1711e commit 83b2655

File tree

2 files changed

+5
-1
lines changed

2 files changed

+5
-1
lines changed

src/mapreduce.jl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,14 +126,15 @@ end
126126
end
127127

128128
@generated function _mapreducedim(f, op, ::Size{S}, a::StaticArray, ::Type{Val{D}}, v0) where {S, D}
129-
N = ndims(a)
129+
N = length(S)
130130
Snew = ([n==D ? 1 : S[n] for n = 1:N]...)
131131

132132
exprs = Array{Expr}(Snew)
133133
itr = [1:n for n = Snew]
134134
for i Base.product(itr...)
135135
expr = :v0
136136
for k = 1:S[D]
137+
ik = collect(i)
137138
ik[D] = k
138139
expr = :(op($expr, f(a[$(ik...)])))
139140
end

test/mapreduce.jl

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,9 @@
5252
a = @SArray rand(4,3) # as of Julia v0.5, diff() for regular Array is defined only for vectors and matrices
5353
@test diff(a) == diff(a, Val{1}) == diff(a, 1)
5454
@test diff(a, Val{2}) == diff(a, 2)
55+
56+
@test reducedim(max, a, Val{1}, -1.) == reducedim(max, a, 1, -1.)
57+
@test reducedim(max, a, Val{2}, -1.) == reducedim(max, a, 2, -1.)
5558
end
5659

5760
@testset "mapreduce" begin

0 commit comments

Comments
 (0)