summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/wolff_heisenberg.cpp14
-rw-r--r--src/wolff_planar.cpp14
2 files changed, 16 insertions, 12 deletions
diff --git a/src/wolff_heisenberg.cpp b/src/wolff_heisenberg.cpp
index f38fa96..5403b49 100644
--- a/src/wolff_heisenberg.cpp
+++ b/src/wolff_heisenberg.cpp
@@ -4,6 +4,8 @@
#include <correlation.h>
#include <wolff.h>
+typedef state_t <orthogonal_t <3, double>, vector_t <3, double>> sim_t;
+
int main(int argc, char *argv[]) {
count_t N = (count_t)1e7;
@@ -61,7 +63,7 @@ int main(int argc, char *argv[]) {
timestamp = spec.tv_sec*1000000000LL + spec.tv_nsec;
}
- std::function <orthogonal_t <3, double>(gsl_rng *, const state_t <orthogonal_t <3, double>, vector_t <3, double>> *)> gen_R;
+ std::function <orthogonal_t <3, double>(gsl_rng *, const sim_t *)> gen_R;
const char *pert_type;
@@ -108,20 +110,20 @@ int main(int argc, char *argv[]) {
free(filename_S);
free(filename_X);
- std::function <void(const state_t <orthogonal_t <3, double>, vector_t <3, double>> *)> *measurements = (std::function <void(const state_t <orthogonal_t <3, double>, vector_t <3, double>> *)> *)malloc(4 * sizeof(std::function <void(const state_t <orthogonal_t <3, double>, vector_t <3, double>> *)>));
+ std::function <void(const sim_t *)> *measurements = (std::function <void(const sim_t *)> *)malloc(4 * sizeof(std::function <void(const sim_t *)>));
- measurements[0] = [&](const state_t <orthogonal_t <3, double>, vector_t <3, double>> *s) {
+ measurements[0] = [&](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 <3, double>, vector_t <3, 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 <3, double>, vector_t <3, double>> *s) {
+ measurements[2] = [&](const sim_t *s) {
write_magnetization(s->M, outfile_M);
};
- measurements[3] = [&](const state_t <orthogonal_t <3, double>, vector_t <3, double>> *s) {
+ measurements[3] = [&](const sim_t *s) {
fwrite(&(s->last_cluster_size), sizeof(uint32_t), 1, outfile_S);
};
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);
};