diff options
Diffstat (limited to 'src/wolff_planar.cpp')
-rw-r--r-- | src/wolff_planar.cpp | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/wolff_planar.cpp b/src/wolff_planar.cpp index 4f26471..37eb6f8 100644 --- a/src/wolff_planar.cpp +++ b/src/wolff_planar.cpp @@ -4,6 +4,8 @@ #include <wolff.h> #include <correlation.h> +typedef state_t <orthogonal_t <2, double>, vector_t <2, double>> sim_t; + int main(int argc, char *argv[]) { count_t N = (count_t)1e7; @@ -63,7 +65,7 @@ int main(int argc, char *argv[]) { const char *pert_type; - std::function <orthogonal_t <2, double>(gsl_rng *, const state_t <orthogonal_t <2, double>, vector_t <2, double>> *)> gen_R; + std::function <orthogonal_t <2, double>(gsl_rng *, const sim_t *)> gen_R; if (use_pert) { gen_R = std::bind(generate_rotation_perturbation <2>, std::placeholders::_1, std::placeholders::_2, epsilon); @@ -109,20 +111,20 @@ int main(int argc, char *argv[]) { free(filename_S); free(filename_X); - std::function <void(const state_t <orthogonal_t <2, double>, vector_t <2, double>> *)> *measurements = (std::function <void(const state_t <orthogonal_t <2, double>, vector_t <2, double>> *)> *)calloc(4, sizeof(std::function <void(const state_t <orthogonal_t <2, double>, vector_t <2, double>> *)>)); + std::function <void(const sim_t *)> *measurements = (std::function <void(const sim_t *)> *)calloc(4, sizeof(std::function <void(const sim_t *)>)); - measurements[0] = (std::function <void(const state_t <orthogonal_t <2, double>, vector_t <2, double>> *)>)[&](const state_t <orthogonal_t <2, double>, vector_t <2, double>> *s) { + measurements[0] = (std::function <void(const sim_t *)>)[&](const sim_t *s) { float smaller_E = (float)s->E; fwrite(&smaller_E, sizeof(float), 1, outfile_E); }; - measurements[1] = [&](const state_t <orthogonal_t <2, double>, vector_t <2, double>> *s) { + measurements[1] = [&](const sim_t *s) { float smaller_X = (float)correlation_length(s); fwrite(&smaller_X, sizeof(float), 1, outfile_X); }; - measurements[2] = [&](const state_t <orthogonal_t <2, double>, vector_t <2, double>> *s) { + measurements[2] = [&](const sim_t *s) { write_magnetization(s->M, outfile_M); }; - measurements[3] = [&](const state_t <orthogonal_t <2, double>, vector_t <2, double>> *s) { + measurements[3] = [&](const sim_t *s) { fwrite(&(s->last_cluster_size), sizeof(uint32_t), 1, outfile_S); }; |