From 90e7dcd17f264e22dc4f2e9f53ba82d3c292e42a Mon Sep 17 00:00:00 2001 From: Jaron Kent-Dobias Date: Fri, 9 May 2025 07:44:48 -0300 Subject: Don't use negative values to compute the energy --- log-fourier.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/log-fourier.cpp b/log-fourier.cpp index 5b5955a..e8404d7 100644 --- a/log-fourier.cpp +++ b/log-fourier.cpp @@ -186,6 +186,7 @@ Real estimateZ(LogarithmicFourierTransform& fft, const std::vector& C, con Real energy(const LogarithmicFourierTransform& fft, std::vector& C, const std::vector& R, unsigned p, unsigned s, Real λ, Real β) { Real E = fft.t(0) * (df(λ, p, s, 1) + R[0] * df(λ, p, s, C[0])) / 2; for (unsigned n = 0; n < C.size()/2-1; n++) { + if (C[2*n+2] < 0 || R[2*n+2] < 0) break; Real h₂ₙ = fft.t(2*n+1) - fft.t(2*n); Real h₂ₙ₊₁ = fft.t(2*n+2) - fft.t(2*n+1); Real f₂ₙ = R[2*n] * df(λ, p, s, C[2*n]); -- cgit v1.2.3-70-g09d2