edbennett / glue_analysis

MIT License
0 stars 1 forks source link

Correctness #14

Closed chillenzer closed 1 year ago

chillenzer commented 1 year ago

Is your formula for the correlation matrix actually correct? What we want to compute is

C_{ab} = \left\langle O_a O_b \right\rangle - \left\langle O_a \right\rangle \left\langle O_b \right\rangle.

The first term is fine but for the second term you are using the following matrix inside of pe.Obs:

vevs = self.vevs.sort_values(by=["Bin_index", "Op_index"]).Vac_exp.values.reshape(self.num_bins, self.num_ops)
vev_matrix = vevs[:, :, np.newaxis] * vevs[:, np.newaxis, :] / self.NT**2
pe.Obs([vev_matrix[:, op_idx1, op_idx2]], ["glue_bins"])

which for my understanding means multiply the two spacetime averages of $O_{a/b}$ and only afterwards take an expectation value. Shouldn't it be

vevs = self.vevs.sort_values(by=["Bin_index", "Op_index"]).Vac_exp.values.reshape(self.num_bins, self.num_ops)
vev_matrix = pe.Obs(vevs[:, :, np.newaxis]) * pe.Obs(vevs[:, np.newaxis, :]) / self.NT**2

(modulo details of correctly calling pe.Obs)?

chillenzer commented 1 year ago

Just confirmed that this issue is real. Working on it.