JuliaDSP / MFCC.jl

Mel Frequency Cepstral Coefficients calculation for Julia
BSD 2-Clause "Simplified" License
33 stars 18 forks source link

Changed meaning of .+= in Julia 0.5 #4

Closed stevengj closed 8 years ago

stevengj commented 8 years ago

Your code uses x .+= y, so you should know that in Julia 0.5 this has changed meaning to be equivalent to broadcast!(identity, x, x .+ y), so that it mutates the x array (see JuliaLang/julia#17510 … in Julia 0.6 the whole operation will occur in-place without temporaries). So .+ should only be used if the left-hand side is a mutable array, and you don't mind mutating it.

At first glance, this looks like it is okay for you, because you use it in y .+= dither * nwin / (sumabs2(window) * sr / 2), where y seems like an array that you won't mind mutating. But if it were a problem you could always change it to +=.

davidavdav commented 8 years ago

Thanks, I have been wishing for this interpretation for a while. Indeed I'll have to go though all code. This code was written a while ago and probably needs some investigation for efficiency anyways, it involves mostly vectorized operations.