47 double pi = 2 * asin(1.0);
49 std::complex<double> om = std::complex<double>(
50 cos(2 * pi / n), sin(2 * pi / n));
52 auto *pe =
new std::complex<double>[n / 2];
54 auto *po =
new std::complex<double>[n / 2];
57 for (
int j = 0; j < n; j++) {
66 std::complex<double> *ye =
69 std::complex<double> *yo =
72 auto *y =
new std::complex<double>[n];
76 for (
int i = 0; i < n / 2; i++) {
78 ye[k1] + pow(om, i) * yo[k2];
80 ye[k1] - pow(om, i) * yo[k2];
108 auto *t1 =
new std::complex<double>[2];
109 auto *t2 =
new std::complex<double>[4];
120 std::vector<std::complex<double>> r1 = {
123 std::vector<std::complex<double>> r2 = {
124 {10, 0}, {-2, -2}, {-2, 0}, {-2, 2}};
127 std::complex<double> *t3 =
130 std::complex<double> *t4 =
132 for (uint8_t i = 0; i < n1; i++) {
133 assert((r1[i].real() - o1->real() < 0.000000000001) &&
134 (r1[i].imag() - o1->imag() <
140 for (uint8_t i = 0; i < n2; i++) {
141 assert((r2[i].real() - o2->real() < 0.000000000001) &&
142 (r2[i].imag() - o2->imag() <
152 std::cout <<
"All tests have successfully passed!\n";