Bug fix for edge case in _compute_drho (#189)

This commit is contained in:
s-kuberski 2023-05-30 16:29:22 +02:00 committed by Fabian Joswig
parent 02b57817ae
commit b222b116f2
No known key found for this signature in database
2 changed files with 12 additions and 1 deletions

View file

@ -278,7 +278,7 @@ class Obs:
def _compute_drho(i):
tmp = (self.e_rho[e_name][i + 1:w_max]
+ np.concatenate([self.e_rho[e_name][i - 1:None if i - w_max // 2 <= 0 else 2 * (i - w_max // 2):-1],
+ np.concatenate([self.e_rho[e_name][i - 1:None if i - w_max // 2 <= 0 else (2 * i - (2 * w_max) // 2):-1],
self.e_rho[e_name][1:max(1, w_max - 2 * i)]])
- 2 * self.e_rho[e_name][i] * self.e_rho[e_name][1:w_max - i])
self.e_drho[e_name][i] = np.sqrt(np.sum(tmp ** 2) / e_N)

View file

@ -767,6 +767,17 @@ def test_gamma_method_irregular():
a = pe.Obs([carr], ['a'])
a.gm()
arr = np.random.normal(1, .2, size=999)
carr = gen_autocorrelated_array(arr, .8)
o = pe.Obs([carr], ['test'])
o.gamma_method()
no = np.NaN * o
no.gamma_method()
o.idl['test'] = range(1, 1998, 2)
o.gamma_method()
no = np.NaN * o
no.gamma_method()
def test_irregular_gapped_dtauint():
my_idl = list(range(0, 5010, 10))