diff options
author | Jaron Kent-Dobias <jaron@kent-dobias.com> | 2025-04-21 19:09:21 -0300 |
---|---|---|
committer | Jaron Kent-Dobias <jaron@kent-dobias.com> | 2025-04-21 19:09:21 -0300 |
commit | 3ff3bcc3545f04443231c2f3a89edfe5d15859fb (patch) | |
tree | be1e6280d8c4a2c156cec064f986316d2af9b673 | |
parent | 3d11ca6b53efd4592d12282020a7f2f8da4bc042 (diff) | |
download | code-3ff3bcc3545f04443231c2f3a89edfe5d15859fb.tar.gz code-3ff3bcc3545f04443231c2f3a89edfe5d15859fb.tar.bz2 code-3ff3bcc3545f04443231c2f3a89edfe5d15859fb.zip |
-rw-r--r-- | log-fourier_integrator.cpp | 15 |
1 files changed, 3 insertions, 12 deletions
diff --git a/log-fourier_integrator.cpp b/log-fourier_integrator.cpp index 750f79d..c30d01d 100644 --- a/log-fourier_integrator.cpp +++ b/log-fourier_integrator.cpp @@ -119,7 +119,6 @@ int main(int argc, char* argv[]) { Real γ = γ₀; Real ΔCmin = 1000; Real ΔCₜ = 100; - unsigned stepsDown = 0; unsigned stepsUp = 0; while (ΔCₜ > ε) { auto [RddfCt, dfCt] = RddfCtdfCt(fft, Cₜ, Rₜ, p, s, λ); @@ -137,17 +136,15 @@ int main(int argc, char* argv[]) { ΔCₜ = 0; for (unsigned i = 0; i < N; i++) { - ΔCₜ += std::norm(Ĉₜ[i] - Ĉₜ₊₁[i]); - ΔCₜ += std::norm(Ȓₜ[i] - Ȓₜ₊₁[i]); + ΔCₜ += std::norm(Cₜ[i] - Cₜ₊₁[i]); + ΔCₜ += std::norm(Rₜ[i] - Rₜ₊₁[i]); } ΔCₜ = sqrt(ΔCₜ) / (2*N); - if (ΔCₜ < ΔCmin) { + if (ΔCₜ < 0.9 * ΔCmin) { ΔCmin = ΔCₜ; stepsUp = 0; - stepsDown++; } else { - stepsDown = 0; stepsUp++; } @@ -157,12 +154,6 @@ int main(int argc, char* argv[]) { ΔCmin = ΔCₜ; } - if (stepsDown > stepsToRespond) { - γ = std::min(2*γ, 1.0); - stepsDown = 0; - ΔCmin = ΔCₜ; - } - for (unsigned i = 0; i < N; i++) { Cₜ[i] += γ * (Cₜ₊₁[i] - Cₜ[i]); Rₜ[i] += γ * (Rₜ₊₁[i] - Rₜ[i]); |