On Wednesday, June 18, 2014 11:37:02 AM UTC+8, Jameson wrote:
>
> Eliminate all uses of eval, by replacing your input expression with an
> anonymous function
>
>
Doh, yep, much better idea. Ok does this look better?
function lowpass(input::Float64, lp::Float64, g::Float64)
hp::Float64 = input - lp
lp += g * hp
[lp, hp]
end
function parametricarray2D(f, time::Vector{Float64})
len = length(time)
ret = f(time[1])
output = Array(Float64, len, length(ret))
output[1,:] = ret
for i in 1:len-1
output[i,:] = f(time[i])
end
output
end
s = 0.0;
data = parametricarray2D(t->begin input=sin(100.0*t); [t, input,
lowpass(input, s, 0.5)] end, linspace(0.0,2.0pi,2*44100))