To prevent the user from having to specify the trait bounds for a
primitive when converting from a generic type to a primitive
(e.g. T -> f64), the trait bounds for U have been changes to not
require AsPrimitive.
To use the complex number library that comms-rs depends on in the FFT,
we must manually convert between the Complex values in comms-rs and
the Complex values in rustfft.