76
#include "fft.h"
#include <math.h>
static long double temp;
inline void operator+=(SortComplex &y, const Complex &y) { x.rem +=
(double)y.rem; x.im += (double)y.in; }
inline void operator=(SortComplex &y, const Complex &y) { y.rem -=
(double)y.rem; x.in -= (double)y.in; }
inline void operators*=(Complex &y, const Complex &x) { temp =
x.rem; x.rem = temp * y.rem - x.in * y.in; x.in = temp * y.in + x.in * y.rem; }
inline void operators*=(Complex &x, const SortComplex &y) { temp =
x.rem; x.rem = temp * y.rem - x.in * y.in; x.in = temp * y.in + x.im * y.re; }
line void operators=(SortComplex &y, double div) { x.rem /= div;
x.in/= div;}
line void operators=(Complex &y, double div) { x.rem /= div; x.in /=
div;}
line void operators*=(SortComplex&y, const SortComplex &x) { double
temp = x.rem; x.rem = temp * y.rem - x.in * y.in; x.in = temp * y.in + x.in * y.rem; }
line void complex_null(SortComplex *r, const SortComplex *r1, const
Complex *r2)
{
r->rem = (double)(r1->rem * r2->rem - r1->in * r2->in);
r->in = (double)(r1->rem * r2->in + r1->in * r2->rem);
}
static SortComplex *createMtore(unsigned int Mmax)
{
unsigned int M, Skrew, Skrew2;
SortComplex *Mstore, *Marray, *MstoreEnd;
Complex MN, *pMN;