From 5ffaf0a1bb0f0b47d57d0f24ee1134659775dacb Mon Sep 17 00:00:00 2001 From: Jaron Kent-Dobias Date: Fri, 20 Jul 2018 22:57:39 -0400 Subject: added ising example to cpp collection --- lib/cluster.h | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'lib/cluster.h') diff --git a/lib/cluster.h b/lib/cluster.h index 2225e2f..4b3c2f6 100644 --- a/lib/cluster.h +++ b/lib/cluster.h @@ -23,6 +23,8 @@ #include "measurement.h" #include "vector.h" #include "orthogonal.h" +#include "ising.h" +#include "z2.h" #include "dihedral.h" #include "dihinf.h" #include "yule_walker.h" @@ -107,17 +109,17 @@ void flip_cluster(state_t *state, v_t v0, R_t r, gsl_rng *rand) { double dE = state->H(rs_old) - state->H(rs_new); prob = 1.0 - exp(-dE / state->T); - subtract (&(state->M), rs_old); - add (&(state->M), rs_new); + add(&(state->M), -1, rs_old); + add(&(state->M), 1, rs_new); state->E += dE; for (D_t i = 0; i < state->D; i++) { double x = (double)((non_ghost / (v_t)pow(state->L, state->D - i - 1)) % state->L) / (double)state->L; - scalar_subtract(&(state->ReF[i]), cos(2 * M_PI * x), rs_old); - scalar_add(&(state->ReF[i]), cos(2 * M_PI * x), rs_new); + add(&(state->ReF[i]), -cos(2 * M_PI * x), rs_old); + add(&(state->ReF[i]), cos(2 * M_PI * x), rs_new); - scalar_subtract(&(state->ImF[i]), sin(2 * M_PI * x), rs_old); - scalar_add(&(state->ImF[i]), sin(2 * M_PI * x), rs_new); + add(&(state->ImF[i]), -sin(2 * M_PI * x), rs_old); + add(&(state->ImF[i]), sin(2 * M_PI * x), rs_new); } free_spin (rs_old); -- cgit v1.2.3-70-g09d2