summaryrefslogtreecommitdiff
path: root/lib/wolff.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/wolff.h')
-rw-r--r--lib/wolff.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/lib/wolff.h b/lib/wolff.h
index ce7040a..29286ba 100644
--- a/lib/wolff.h
+++ b/lib/wolff.h
@@ -20,6 +20,8 @@
#include "graph.h"
#include "tree.h"
#include "measurement.h"
+#include "orthogonal.h"
+#include "dihedral.h"
typedef struct {
graph_t *g;
@@ -29,12 +31,27 @@ typedef struct {
double *H;
double *J_probs;
double *H_probs;
+ dihedral_t *R;
double E;
v_t *M;
q_t q;
} ising_state_t;
+typedef struct {
+ graph_t *g;
+ double *spins;
+ double T;
+ double (*J)(double);
+ double (*H)(double *);
+ double *R;
+ double E;
+ double *M;
+ q_t n;
+} vector_state_t;
+
v_t flip_cluster(ising_state_t *s, v_t v0, q_t s1, gsl_rng *r);
+v_t flip_cluster_vector(vector_state_t *s, v_t v0, double *rot, gsl_rng *r);
+
graph_t *graph_add_ext(const graph_t *g);