Rewriting for 64-bit compatibility.

Replacing float with CGFloat in the process. Also abstracting away differences in the vDSP calls.

I am curious: did you make any benchmarks concerning the negative speed impact of allocating on the heap?