mirror of
https://github.com/fjosw/pyerrors.git
synced 2025-03-15 14:50:25 +01:00
refactor: pseudo_Obs moved to misc
This commit is contained in:
parent
0a1a9ce1a1
commit
8f2312240f
2 changed files with 32 additions and 32 deletions
|
@ -35,6 +35,38 @@ def load_object(path):
|
|||
return pickle.load(file)
|
||||
|
||||
|
||||
def pseudo_Obs(value, dvalue, name, samples=1000):
|
||||
"""Generate an Obs object with given value, dvalue and name for test purposes
|
||||
|
||||
Parameters
|
||||
----------
|
||||
value : float
|
||||
central value of the Obs to be generated.
|
||||
dvalue : float
|
||||
error of the Obs to be generated.
|
||||
name : str
|
||||
name of the ensemble for which the Obs is to be generated.
|
||||
samples: int
|
||||
number of samples for the Obs (default 1000).
|
||||
"""
|
||||
if dvalue <= 0.0:
|
||||
return Obs([np.zeros(samples) + value], [name])
|
||||
else:
|
||||
for _ in range(100):
|
||||
deltas = [np.random.normal(0.0, dvalue * np.sqrt(samples), samples)]
|
||||
deltas -= np.mean(deltas)
|
||||
deltas *= dvalue / np.sqrt((np.var(deltas) / samples)) / np.sqrt(1 + 3 / samples)
|
||||
deltas += value
|
||||
res = Obs(deltas, [name])
|
||||
res.gamma_method(S=2, tau_exp=0)
|
||||
if abs(res.dvalue - dvalue) < 1e-10 * dvalue:
|
||||
break
|
||||
|
||||
res._value = float(value)
|
||||
|
||||
return res
|
||||
|
||||
|
||||
def gen_correlated_data(means, cov, name, tau=0.5, samples=1000):
|
||||
""" Generate observables with given covariance and autocorrelation times.
|
||||
|
||||
|
|
|
@ -1461,38 +1461,6 @@ def covariance(obs1, obs2, correlation=False, **kwargs):
|
|||
return dvalue
|
||||
|
||||
|
||||
def pseudo_Obs(value, dvalue, name, samples=1000):
|
||||
"""Generate an Obs object with given value, dvalue and name for test purposes
|
||||
|
||||
Parameters
|
||||
----------
|
||||
value : float
|
||||
central value of the Obs to be generated.
|
||||
dvalue : float
|
||||
error of the Obs to be generated.
|
||||
name : str
|
||||
name of the ensemble for which the Obs is to be generated.
|
||||
samples: int
|
||||
number of samples for the Obs (default 1000).
|
||||
"""
|
||||
if dvalue <= 0.0:
|
||||
return Obs([np.zeros(samples) + value], [name])
|
||||
else:
|
||||
for _ in range(100):
|
||||
deltas = [np.random.normal(0.0, dvalue * np.sqrt(samples), samples)]
|
||||
deltas -= np.mean(deltas)
|
||||
deltas *= dvalue / np.sqrt((np.var(deltas) / samples)) / np.sqrt(1 + 3 / samples)
|
||||
deltas += value
|
||||
res = Obs(deltas, [name])
|
||||
res.gamma_method(S=2, tau_exp=0)
|
||||
if abs(res.dvalue - dvalue) < 1e-10 * dvalue:
|
||||
break
|
||||
|
||||
res._value = float(value)
|
||||
|
||||
return res
|
||||
|
||||
|
||||
def import_jackknife(jacks, name, idl=None):
|
||||
"""Imports jackknife samples and returns an Obs
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue