From 4dd562a8fd8acff887f65ca628d6bf112ba56a37 Mon Sep 17 00:00:00 2001 From: Jaron Kent-Dobias Date: Mon, 9 Sep 2019 15:37:37 -0400 Subject: more precision in output strings, and clang-format --- metastable.cpp | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/metastable.cpp b/metastable.cpp index cb47ffc..bebb96a 100644 --- a/metastable.cpp +++ b/metastable.cpp @@ -1,17 +1,25 @@ #define WOLFF_USE_FINITE_STATES -#include #include #include - +#include +#include #include "randutils/randutils.hpp" #include "wolff/lib/wolff_models/ising.hpp" using namespace wolff; -void update_distribution_file(std::string id, const std::vector& data, std::string model_string) { +template std::string to_string_with_precision(const T a_value, const int n = 12) { + std::ostringstream out; + out.precision(n); + out << std::fixed << a_value; + return out.str(); +} + +void update_distribution_file(std::string id, const std::vector& data, + std::string model_string) { std::string filename = model_string + id + ".dat"; std::ifstream file(filename); @@ -30,13 +38,14 @@ void update_distribution_file(std::string id, const std::vector& data, std::ofstream file_out(filename); for (unsigned i = 0; i < data.size(); i++) { - file_out <>& data, std::string model_string) { +void update_distribution_file(std::string id, const std::vector>& data, + std::string model_string) { std::string filename = model_string + id + ".dat"; std::ifstream file(filename); @@ -81,13 +90,15 @@ private: std::string model_string; public: - meas(const system>& S, double H) : mag_dist(S.nv + 1, 0), energy_mag_dist(S.nv + 1) { + meas(const system>& S, double H) + : mag_dist(S.nv + 1, 0), energy_mag_dist(S.nv + 1) { M = S.nv * S.s[0]; E = S.ne; for (std::vector& d : energy_mag_dist) { d.resize(S.ne + 1, 0); } - model_string = "metastable_" + std::to_string(S.G.D) + "_" + std::to_string(S.G.L) + "_" + std::to_string(S.T) + "_" + std::to_string(H) + "_"; + model_string = "metastable_" + std::to_string(S.G.D) + "_" + std::to_string(S.G.L) + "_" + + to_string_with_precision(S.T) + "_" + to_string_with_precision(H) + "_"; } ~meas() { @@ -95,8 +106,8 @@ public: update_distribution_file("e", energy_mag_dist, model_string); } - void plain_bond_visited(const system>&, const typename graph<>::halfedge&, const ising_t&, - double dE) override { + void plain_bond_visited(const system>&, + const typename graph<>::halfedge&, const ising_t&, double dE) override { if (dE > 0) { E -= 2; } else { -- cgit v1.2.3-54-g00ecf