I have a Fourier transformed function f(w) whose analytical form I know. Say
f(w) = Product of j=1 to 1000 (a1_j * exp (i * w * b1_j) + a2_j * exp (i* w* b2_j)+...+a10_j * exp (i* w* b10_j)+ c_j)
Where a,b,c are real numbers and "i" is sqrt(-1). So even though the the a,b,c's are known function has to computed numerically it is not really analytically tractable.
Now I want to compute inverse transform f(w) to obtain the original function F(x).
My question is partly mathematical and partly software related:
I can compute the inverse transform using a available software routines but I am not sure what kind of discrete sampling should I do for f(w) to be able reproduce F(x) faithfully given some tolerance. The domain of F(x) can be quite large. So what is a way out ?
Is there any freely available software routines in C/C++ which can take in as input say a functor f(w) and perform the inverse transform for a given "x". If this exist it will bypass my first question (because I guess it will internally handle how many points to use to perform the sampling/integration given any function)
complex
type (std::complex
) but in C there is only a macro for complex type. – Thomas Matthews