This should work if https://github.com/JuliaLang/julia/pull/17389 gets merged.
On Monday, August 1, 2016 at 3:06:36 PM UTC+2, Oliver Schulz wrote: > > > Not before the bug is fixed and this is also orthogonal to loop fusion. > > Sure, I get that. But that means then that bug is fixed, things like > broadcasting with (e.g.) muladd will be possible again? That would be > wonderful! > > > > On Monday, August 1, 2016 at 2:47:44 PM UTC+2, Yichao Yu wrote: >> >> On Mon, Aug 1, 2016 at 8:41 PM, Oliver Schulz >> <oliver...@tu-dortmund.de> wrote: >> > So cases like >> > >> > broadcast((x,y,z)->..., A, B, C) >> > >> > can't be supported any longer? Darn. :-( I love the things you guys are >> > doing in regard to fusing operations, but that was a very, very useful >> thing >> > to have. Is there any other way to do this now? >> >> Not before the bug is fixed and this is also orthogonal to loop fusion. >> >> > >> > On Monday, August 1, 2016 at 2:22:07 PM UTC+2, Yichao Yu wrote: >> >> >> >> On Mon, Aug 1, 2016 at 8:15 PM, Oliver Schulz >> >> <oliver...@tu-dortmund.de> wrote: >> >> > Hi, >> >> > >> >> > sorry if this is already covered somewhere - have the semantics of >> >> > broadcast >> >> > changed in Julia 0.5? >> >> >> >> Essentially https://github.com/JuliaLang/julia/issues/17314 >> >> The promote_op basically assumes everything is a pure unary or binary >> >> operator. >> >> >> >> > >> >> > In 0.4, I can do >> >> > >> >> > broadcast(muladd, rand(5), rand(5), rand(5)) >> >> > >> >> > But in 0.5 (0.5.0-rc0+86), I get >> >> > >> >> > ERROR: MethodError: no method matching muladd(::Float64, ::Float64) >> >> > Closest candidates are: >> >> > muladd(::Float64, ::Float64, ::Float64) at float.jl:247 >> >> > muladd(::Real, ::Real, ::Complex{T<:Real}) at complex.jl:177 >> >> > muladd{T<:Number}(::T<:Number, ::T<:Number, ::T<:Number) at >> >> > promotion.jl:239 >> >> > ... >> >> > [...] >> >> > >> >> > >> >> > Is this a bug, or to be expected? >> >> > >> >> > Cheers, >> >> > >> >> > Oliver >> >> > >> >