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.
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe