JuliaLinearAlgebra / AppleAccelerate.jl

Julia interface to the macOS Accelerate framework
Other
96 stars 18 forks source link

Initial Implementation of Biquads #18

Closed rprechelt closed 8 years ago

rprechelt commented 8 years ago

This PR contains an initial implementation of Accelerate's single channel biquad functions.

There are currently no tests in runtest.jl for these functions because I wanted to get thoughts on the best way to test functions that don't have equivalents in Base; I have tested them manually against Matlab so I know that they are functioning correctly. I've laid out the two testing options that I'm aware of:

1) If we include DSP.jl, we can compare our results on random vectors to the pure Julia equivalents included in DSP.jl. This obviously makes our testing dependent upon the state of DSP.jl, but may be the cleaner solution 2) I can hard-code in some representative tests into runtest.jl so that we don't have any test dependencies; this will obviously limit the size and variability of the test cases. 3) ~~Write pure Julia versions of the Accelerate biquad functions to test against. https://github.com/JuliaLang/AppleAccelerate.jl~~

I'm more in the favor of option 1 or 3, but wanted to run it by anyone who was interested.

@simonbyrne What is your preference?

simonbyrne commented 8 years ago

If you think DSP.jl is sufficiently reliable, I think the easiest is option 1 (remember to add it to test/REQUIRE)

rprechelt commented 8 years ago

Ok - this is commit-ready (pending your review). I had to remove Float32 support for biquadratic filtering due to a bug in Accelerate itself. I have filed a bug report with Apple but have received no estimate on a timeline for a fix.

Let me know what changes need to be made before this can be merged.