summaryrefslogtreecommitdiff
path: root/lib/measure.h
diff options
context:
space:
mode:
authorJaron Kent-Dobias <jaron@kent-dobias.com>2018-10-10 21:45:32 -0400
committerJaron Kent-Dobias <jaron@kent-dobias.com>2018-10-10 21:45:32 -0400
commita43ff1f98e9b9814f858bccb11c174b418458491 (patch)
treeae7e094d914eddb8a1ae9548420ba8c2f329ffae /lib/measure.h
parent6e264d243f0b29d90e90b605b6cdeab8227129c9 (diff)
downloadc++-a43ff1f98e9b9814f858bccb11c174b418458491.tar.gz
c++-a43ff1f98e9b9814f858bccb11c174b418458491.tar.bz2
c++-a43ff1f98e9b9814f858bccb11c174b418458491.zip
big rearrangement of files to make libraries and example (research) files clearer, and changed to c++ std lib random numbers
Diffstat (limited to 'lib/measure.h')
-rw-r--r--lib/measure.h63
1 files changed, 0 insertions, 63 deletions
diff --git a/lib/measure.h b/lib/measure.h
deleted file mode 100644
index 2c5ffb7..0000000
--- a/lib/measure.h
+++ /dev/null
@@ -1,63 +0,0 @@
-
-#pragma once
-
-#include "state.h"
-#include "correlation.h"
-#include <functional>
-
-#define POSSIBLE_MEASUREMENTS 4
-const unsigned char measurement_energy = 1 << 0;
-const unsigned char measurement_clusterSize = 1 << 1;
-const unsigned char measurement_magnetization = 1 << 2;
-const unsigned char measurement_fourierZero = 1 << 3;
-
-char const *measurement_labels[] = {"E", "S", "M", "F"};
-
-FILE **measure_setup_files(unsigned char flags, unsigned long timestamp) {
- FILE **files = (FILE **)calloc(POSSIBLE_MEASUREMENTS, sizeof(FILE *));
-
- for (uint8_t i = 0; i < POSSIBLE_MEASUREMENTS; i++) {
- if (flags & (1 << i)) {
- char *filename = (char *)malloc(255 * sizeof(char));
- sprintf(filename, "wolff_%lu_%s.dat", timestamp, measurement_labels[i]);
- files[i] = fopen(filename, "wb");
- free(filename);
- }
- }
-
- return files;
-}
-
-template <class R_t, class X_t>
-std::function <void(const state_t <R_t, X_t>&)> measure_function_write_files(unsigned char flags, FILE **files, std::function <void(const state_t <R_t, X_t>&)> other_f) {
- return [=] (const state_t <R_t, X_t>& s) {
- if (flags & measurement_energy) {
- float smaller_E = (float)s.E;
- fwrite(&smaller_E, sizeof(float), 1, files[0]);
- }
- if (flags & measurement_clusterSize) {
- fwrite(&(s.last_cluster_size), sizeof(uint32_t), 1, files[1]);
- }
- if (flags & measurement_magnetization) {
- write_magnetization(s.M, files[2]);
- }
- if (flags & measurement_fourierZero) {
- float smaller_X = (float)correlation_length(s);
- fwrite(&smaller_X, sizeof(float), 1, files[3]);
- }
-
- other_f(s);
- };
-}
-
-void measure_free_files(unsigned char flags, FILE **files) {
- for (uint8_t i = 0; i < POSSIBLE_MEASUREMENTS; i++) {
- if (flags & (1 << i)) {
- fclose(files[i]);
- }
- }
-
- free(files);
-}
-
-