From a446c8ae813ae5e1c33d377dabd85d3d362b1878 Mon Sep 17 00:00:00 2001 From: Jaron Kent-Dobias Date: Thu, 3 Apr 2025 17:54:00 -0300 Subject: Removed some more duplicate code. --- fourier.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'fourier.cpp') diff --git a/fourier.cpp b/fourier.cpp index 7808989..8943521 100644 --- a/fourier.cpp +++ b/fourier.cpp @@ -71,7 +71,7 @@ Real energy(const std::vector& C, const std::vector& R, unsigned p, std::tuple, std::vector> RddfCtdfCt(FourierTransform& fft, const std::vector& C, const std::vector& R, unsigned p, unsigned s, Real λ) { std::vector RddfC(C.size()); - for (unsigned i = 0; i < C.size(); i++) { + for (unsigned i = 0; i < C.size() / 2; i++) { RddfC[i] = R[i] * ddf(λ, p, s, C[i]); } std::vector RddfCt = fft.fourier(RddfC); @@ -84,3 +84,9 @@ std::tuple, std::vector> RddfCtdfCt(FourierTransfo return {RddfCt, dfCt}; } + +Real estimateZ(FourierTransform& fft, const std::vector& C, const std::vector& Ct, const std::vector& R, const std::vector& Rt, unsigned p, unsigned s, Real λ, Real y) { + auto [RddfCt, dfCt] = RddfCtdfCt(fft, C, R, p, s, λ); + + return ((std::conj(Rt[0]) + pow(y, 2) * (RddfCt[0] * Ct[0] + dfCt[0] * std::conj(Rt[0]))) / Ct[0]).real(); +} -- cgit v1.2.3-70-g09d2