mirror of
https://github.com/fjosw/pyerrors.git
synced 2025-03-15 23:00:25 +01:00
Obs value and dvalue are now properties
This commit is contained in:
parent
a3ddf51965
commit
60d2e25ed7
1 changed files with 18 additions and 10 deletions
|
@ -77,13 +77,13 @@ class Obs:
|
||||||
|
|
||||||
self.N = sum(map(np.size, list(self.deltas.values())))
|
self.N = sum(map(np.size, list(self.deltas.values())))
|
||||||
|
|
||||||
self.value = 0
|
self._value = 0
|
||||||
if 'means' not in kwargs:
|
if 'means' not in kwargs:
|
||||||
for name in self.names:
|
for name in self.names:
|
||||||
self.value += self.shape[name] * self.r_values[name]
|
self._value += self.shape[name] * self.r_values[name]
|
||||||
self.value /= self.N
|
self._value /= self.N
|
||||||
|
|
||||||
self.dvalue = 0.0
|
self._dvalue = 0.0
|
||||||
self.ddvalue = 0.0
|
self.ddvalue = 0.0
|
||||||
self.reweighted = 0
|
self.reweighted = 0
|
||||||
|
|
||||||
|
@ -106,6 +106,14 @@ class Obs:
|
||||||
|
|
||||||
self.tag = None
|
self.tag = None
|
||||||
|
|
||||||
|
@property
|
||||||
|
def value(self):
|
||||||
|
return self._value
|
||||||
|
|
||||||
|
@property
|
||||||
|
def dvalue(self):
|
||||||
|
return self._dvalue
|
||||||
|
|
||||||
def gamma_method(self, **kwargs):
|
def gamma_method(self, **kwargs):
|
||||||
"""Calculate the error and related properties of the Obs.
|
"""Calculate the error and related properties of the Obs.
|
||||||
|
|
||||||
|
@ -143,8 +151,8 @@ class Obs:
|
||||||
e_gamma = {}
|
e_gamma = {}
|
||||||
self.e_rho = {}
|
self.e_rho = {}
|
||||||
self.e_drho = {}
|
self.e_drho = {}
|
||||||
self.dvalue = 0
|
self._dvalue = 0
|
||||||
self.ddvalue = 0
|
self._ddvalue = 0
|
||||||
|
|
||||||
self.S = {}
|
self.S = {}
|
||||||
self.tau_exp = {}
|
self.tau_exp = {}
|
||||||
|
@ -312,10 +320,10 @@ class Obs:
|
||||||
self.e_windowsize[e_name] = n
|
self.e_windowsize[e_name] = n
|
||||||
break
|
break
|
||||||
|
|
||||||
self.dvalue += self.e_dvalue[e_name] ** 2
|
self._dvalue += self.e_dvalue[e_name] ** 2
|
||||||
self.ddvalue += (self.e_dvalue[e_name] * self.e_ddvalue[e_name]) ** 2
|
self.ddvalue += (self.e_dvalue[e_name] * self.e_ddvalue[e_name]) ** 2
|
||||||
|
|
||||||
self.dvalue = np.sqrt(self.dvalue)
|
self._dvalue = np.sqrt(self.dvalue)
|
||||||
if self.dvalue == 0.0:
|
if self.dvalue == 0.0:
|
||||||
self.ddvalue = 0.0
|
self.ddvalue = 0.0
|
||||||
else:
|
else:
|
||||||
|
@ -867,7 +875,7 @@ def derived_observable(func, data, **kwargs):
|
||||||
new_means.append(new_r_values[name][i_val])
|
new_means.append(new_r_values[name][i_val])
|
||||||
|
|
||||||
final_result[i_val] = Obs(new_samples, new_names, means=new_means)
|
final_result[i_val] = Obs(new_samples, new_names, means=new_means)
|
||||||
final_result[i_val].value = new_val
|
final_result[i_val]._value = new_val
|
||||||
|
|
||||||
if multi == 0:
|
if multi == 0:
|
||||||
final_result = final_result.item()
|
final_result = final_result.item()
|
||||||
|
@ -1168,7 +1176,7 @@ def pseudo_Obs(value, dvalue, name, samples=1000):
|
||||||
if abs(res.dvalue - dvalue) < 1e-10 * dvalue:
|
if abs(res.dvalue - dvalue) < 1e-10 * dvalue:
|
||||||
break
|
break
|
||||||
|
|
||||||
res.value = float(value)
|
res._value = float(value)
|
||||||
|
|
||||||
return res
|
return res
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue