From 1df6adf16e623570215defa2b22c10e343738edf Mon Sep 17 00:00:00 2001 From: Jaron Kent-Dobias Date: Tue, 17 Mar 2020 14:42:43 -0400 Subject: Interactive choice for whether to finish tuning. --- hadamard.cpp | 30 ++++++++++++++++++++++++------ pcg-cpp | 2 +- 2 files changed, 25 insertions(+), 7 deletions(-) diff --git a/hadamard.cpp b/hadamard.cpp index a2c4199..b311e2d 100644 --- a/hadamard.cpp +++ b/hadamard.cpp @@ -118,13 +118,31 @@ int main(int argc, char* argv[]) { sim.E = sim.M.energy(); } + std::vector f; + std::cout << "Beginning simulation of " << n << ".\n"; - std::cout << "Beginning " << n_tuning << " tuning tempering updates of " << M - << " sweeps each.\n"; - std::vector f = p.tune(n_tuning, M, ε, ε2); - std::cout << "Finished tuning, beginning " << m << " measurement tempering updates of " << M - << " sweeps each.\n"; - p.run(m, M); + bool still_tuning = true; + while (still_tuning) { + std::cout << "Beginning " << n_tuning << " tuning tempering updates of " << M + << " sweeps each.\n"; + f = p.tune(n_tuning, M, ε, ε2); + std::cout << "Finished tuning, beginning " << m << " measurement tempering updates of " << M + << " sweeps each.\n"; + std::cout << "βs: "; + for (const MCMC& M : p.Ms) { + std::cout << M.β << " "; + } + std::cout << std::endl; + std::cout << "Accept tuning as finished? (y/N): "; + char answer = getchar(); + if (answer == 'y') { + still_tuning = false; + } + ε /= 2; + ε2 /= 2; + } + std::cout << "Running " << m << " PT swaps of " << M << " sweeps each."; + p.run(m, M); std::cout << "Finished " << n << ".\n"; auto tag = std::chrono::high_resolution_clock::now(); diff --git a/pcg-cpp b/pcg-cpp index b263c73..5b5cac8 160000 --- a/pcg-cpp +++ b/pcg-cpp @@ -1 +1 @@ -Subproject commit b263c73ec965ad515de8be8286086d78c67c2f01 +Subproject commit 5b5cac8d61339e810c5dbb4692d868a1d7ca1b2d -- cgit v1.2.3-54-g00ecf