summaryrefslogtreecommitdiff
path: root/src/wolff_planar.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/wolff_planar.cpp')
-rw-r--r--src/wolff_planar.cpp14
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);
};