summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--log-fourier.cpp7
-rw-r--r--log-fourier_integrator.cpp4
2 files changed, 7 insertions, 4 deletions
diff --git a/log-fourier.cpp b/log-fourier.cpp
index 3ffa3c6..7461a70 100644
--- a/log-fourier.cpp
+++ b/log-fourier.cpp
@@ -1,4 +1,5 @@
#include "log-fourier.hpp"
+#include <complex>
LogarithmicFourierTransform::LogarithmicFourierTransform(unsigned N, Real k, Real Δτ, unsigned pad) : N(N), pad(pad), k(k), Δτ(Δτ) {
τₛ = -0.5 * N;
@@ -83,7 +84,11 @@ std::vector<Real> LogarithmicFourierTransform::inverse(const std::vector<Complex
for (Real σ : σs) {
for (unsigned n = 0; n < pad * N; n++) {
if (n < N) {
- a[n] = ĉ[n] * exp((1 - k) * ω(n));
+ if (σ < 0) {
+ a[n] = std::conj(ĉ[n]) * exp((1 - k) * ω(n));
+ } else {
+ a[n] = ĉ[n] * exp((1 - k) * ω(n));
+ }
} else {
a[n] = 0;
}
diff --git a/log-fourier_integrator.cpp b/log-fourier_integrator.cpp
index 531565c..f0c5649 100644
--- a/log-fourier_integrator.cpp
+++ b/log-fourier_integrator.cpp
@@ -111,8 +111,6 @@ int main(int argc, char* argv[]) {
for (unsigned n = 0; n < N; n++) {
Ȓₜ₊₁[n] = (1.0 + pow(β, 2) * RddfCt[n] * Ȓₜ[n]) / (μ + 1i * fft.ν(n));
-// Ĉₜ₊₁[n] = - 2 * Γ₀ * Ȓₜ₊₁[n].imag() / (1 + pow(τ₀ * fft.ν(n), 2)) / fft.ν(n);
- Ĉₜ₊₁[n] = (2 * Γ₀ * std::conj(Ȓₜ₊₁[n]) / (1 + pow(τ₀ * fft.ν(n), 2)) + pow(β, 2) * (RddfCt[n] * Ĉₜ[n] + dfCt[n] * std::conj(Ȓₜ₊₁[n]))) / (μ + 1i * fft.ν(n));
}
std::vector<Real> Rₜ₊₁ = fft.inverse(Ȓₜ₊₁);
@@ -176,7 +174,7 @@ int main(int argc, char* argv[]) {
+ (2 - h₂ₙ / h₂ₙ₊₁) * f₂ₙ₊₂
);
}
- E *= β;
+// E *= β;
std::cerr << "\x1b[2K" << "\r";
std::cerr << β << " " << μ << " " << Ĉₜ[0].real() << " " << E << " " << γ << std::endl;