@@ -496,13 +496,15 @@ Base.reduce(f, d::DArray) =
496
496
mapreduce (fetch, f,
497
497
Any[ @spawnat p reduce (f, localpart (d)) for p in procs (d) ])
498
498
499
- Base. mapreduce (f, opt:: Function , d:: DArray ) = mapreduce (f, Base. specialized_binary (opt), d)
500
-
501
- Base. mapreduce (f, opt, d:: DArray ) =
499
+ function _mapreduce (f, opt, d:: DArray )
502
500
mapreduce (fetch, opt,
503
501
Any[ @spawnat p mapreduce (f, opt, localpart (d)) for p in procs (d) ])
502
+ end
503
+ Base. mapreduce (f, opt:: Union{Base.OrFun,Base.AndFun} , d:: DArray ) = _mapreduce (f, opt, d)
504
+ Base. mapreduce (f, opt:: Function , d:: DArray ) = _mapreduce (f, Base. specialized_binary (opt), d)
505
+ Base. mapreduce (f, opt, d:: DArray ) = _mapreduce (f, opt, d)
504
506
505
- Base. map! (f, d:: DArray ) = begin
507
+ Base. map! (f, d:: DArray ) = begin
506
508
@sync for p in procs (d)
507
509
@spawnat p map! (f, localpart (d))
508
510
end
@@ -579,27 +581,26 @@ for (fn, fr) in ((:sum, :AddFun),
579
581
(:minimum , :MinFun ),
580
582
(:any , :OrFun ),
581
583
(:all , :AndFun ))
582
- @eval begin
583
- (Base.$ fn)(d:: DArray ) = reduce ((Base.$ fr)(), d)
584
- end
584
+ @eval (Base.$ fn)(d:: DArray ) = reduce ((Base.$ fr)(), d)
585
585
end
586
586
587
587
# mapreduce like
588
588
for (fn, fr1, fr2) in ((:maxabs , :AbsFun , :MaxFun ),
589
589
(:minabs , :AbsFun , :MinFun ),
590
590
(:sumabs , :AbsFun , :AddFun ),
591
591
(:sumabs2 , :Abs2Fun , :AddFun ))
592
- @eval begin
593
- (Base.$ fn)(d:: DArray ) = mapreduce ((Base.$ fr1)(), (Base.$ fr2)(), d)
594
- end
592
+ @eval (Base.$ fn)(d:: DArray ) = mapreduce ((Base.$ fr1)(), (Base.$ fr2)(), d)
595
593
end
596
594
597
595
# semi mapreduce
598
596
for (fn, fr) in ((:any , :OrFun ),
599
597
(:all , :AndFun ),
600
598
(:count , :AddFun ))
601
599
@eval begin
602
- (Base.$ fn)(f:: Union(Base.Callable,Base.Func{1}) , d:: DArray ) = mapreduce (f, (Base.$ fr)(), d)
600
+ (Base.$ fn)(f:: Base.IdFun , d:: DArray ) = mapreduce (f, (Base.$ fr)(), d)
601
+ (Base.$ fn)(f:: Base.Predicate , d:: DArray ) = mapreduce (r, (Base.$ fr)(), d)
602
+ (Base.$ fn)(f:: Base.Func{1} , d:: DArray ) = mapreduce (f, (Base.$ fr)(), d)
603
+ (Base.$ fn)(f:: Callable , d:: DArray ) = mapreduce (f, (Base.$ fr)(), d)
603
604
end
604
605
end
605
606
0 commit comments