
On Sat, 22 Jan 2011, Grigory Sarnitskiy wrote:
I need to deal with functions of type (Double -> Double). I need Fourier transform, integration, + - * / operations, value of a function in a point, probably composition.
Incidentally I am currently working on a function representation based on Gaussians. It supports exact Fourier transform, convolution, but not division and composition. http://code.haskell.org/numericprelude/src/MathObj/Gaussian/Polynomial.hs http://users.informatik.uni-halle.de/~thielema/Research/fourieralgebra.pdf
Is there some libraries which allow me to work with functions as if their type was (Double -> Double), but indeed it was something faster?
No, you have to use a special type for the particular function representation and use an 'apply' function, that converts your representation to a real function: apply :: FunctionRepresentation a b -> a -> b You can also define an infix operator ($$) :: FunctionRepresentation a b -> a -> b and then write f $$ x where you would have written (f x) if 'f' would be a function and not a function representation.