summaryrefslogtreecommitdiff
path: root/log-fourier_test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'log-fourier_test.cpp')
-rw-r--r--log-fourier_test.cpp50
1 files changed, 50 insertions, 0 deletions
diff --git a/log-fourier_test.cpp b/log-fourier_test.cpp
new file mode 100644
index 0000000..678e4b1
--- /dev/null
+++ b/log-fourier_test.cpp
@@ -0,0 +1,50 @@
+#include "log-fourier.hpp"
+#include <getopt.h>
+#include <iostream>
+
+int main(int argc, char* argv[]) {
+ /* Log-Fourier parameters */
+ unsigned log2n = 8;
+ Real Δτ = 0.1;
+ Real k = 0.1;
+ unsigned pad = 4;
+
+ int opt;
+
+ while ((opt = getopt(argc, argv, "p:s:2:T:t:b:d:g:k:D:e:0:lS:x:P:")) != -1) {
+ switch (opt) {
+ case '2':
+ log2n = atoi(optarg);
+ break;
+ case 'k':
+ k = atof(optarg);
+ break;
+ case 'D':
+ Δτ = atof(optarg);
+ break;
+ case 'P':
+ pad = atoi(optarg);
+ break;
+ default:
+ exit(1);
+ }
+ }
+
+ unsigned N =log2n;
+
+ LogarithmicFourierTransform fft(N, k, Δτ, pad);
+
+ std::vector<Complex> a(N);
+
+ for (unsigned i = 0; i < N; i++) {
+ a[i] = 1 / (1 + pow(fft.ν(i), 2));
+ }
+
+ std::vector<Real> â = fft.inverse(a);
+
+ for (unsigned i = 0; i < N; i++) {
+ std::cout << fft.t(i) << " " << â[i] << std::endl;
+ }
+
+ return 0;
+}