From d85fbddcdf0d6aec6354fa240f7b492721e14ab6 Mon Sep 17 00:00:00 2001 From: fjosw Date: Tue, 3 Jan 2023 10:01:33 +0000 Subject: [PATCH] Documentation updated --- docs/pyerrors/correlators.html | 182 +++++++++++++++---------------- docs/pyerrors/covobs.html | 20 ++-- docs/pyerrors/dirac.html | 12 +- docs/pyerrors/fits.html | 38 +++---- docs/pyerrors/input/bdio.html | 16 +-- docs/pyerrors/input/dobs.html | 32 +++--- docs/pyerrors/input/hadrons.html | 24 ++-- docs/pyerrors/input/json.html | 30 ++--- docs/pyerrors/input/misc.html | 4 +- docs/pyerrors/input/openQCD.html | 34 +++--- docs/pyerrors/input/pandas.html | 20 ++-- docs/pyerrors/input/sfcf.html | 4 +- docs/pyerrors/input/utils.html | 4 +- docs/pyerrors/linalg.html | 44 ++++---- docs/pyerrors/misc.html | 16 +-- docs/pyerrors/mpm.html | 4 +- docs/pyerrors/obs.html | 160 +++++++++++++-------------- docs/pyerrors/roots.html | 4 +- 18 files changed, 324 insertions(+), 324 deletions(-) diff --git a/docs/pyerrors/correlators.html b/docs/pyerrors/correlators.html index 02e101c0..b4fd0787 100644 --- a/docs/pyerrors/correlators.html +++ b/docs/pyerrors/correlators.html @@ -224,7 +224,7 @@ 11 12 13class Corr: - 14 """The class for a correlator (time dependent sequence of pe.Obs). + 14 """The class for a correlator (time dependent sequence of pe.Obs). 15 16 Everything, this class does, can be achieved using lists or arrays of Obs. 17 But it is simply more convenient to have a dedicated object for correlators. @@ -237,7 +237,7 @@ 24 """ 25 26 def __init__(self, data_input, padding=[0, 0], prange=None): - 27 """ Initialize a Corr object. + 27 """ Initialize a Corr object. 28 29 Parameters 30 ---------- @@ -308,7 +308,7 @@ 95 self.prange = prange 96 97 def __getitem__(self, idx): - 98 """Return the content of timeslice idx""" + 98 """Return the content of timeslice idx""" 99 if self.content[idx] is None: 100 return None 101 elif len(self.content[idx]) == 1: @@ -327,7 +327,7 @@ 114 raise Exception("Reweighting status of correlator corrupted.") 115 116 def gamma_method(self, **kwargs): - 117 """Apply the gamma method to the content of the Corr.""" + 117 """Apply the gamma method to the content of the Corr.""" 118 for item in self.content: 119 if not (item is None): 120 if self.N == 1: @@ -338,7 +338,7 @@ 125 item[i, j].gamma_method(**kwargs) 126 127 def projected(self, vector_l=None, vector_r=None, normalize=False): - 128 """We need to project the Correlator with a Vector to get a single value at each timeslice. + 128 """We need to project the Correlator with a Vector to get a single value at each timeslice. 129 130 The method can use one or two vectors. 131 If two are specified it returns v1@G@v2 (the order might be very important.) @@ -377,7 +377,7 @@ 164 return Corr(newcontent) 165 166 def item(self, i, j): - 167 """Picks the element [i,j] from every matrix and returns a correlator containing one Obs per timeslice. + 167 """Picks the element [i,j] from every matrix and returns a correlator containing one Obs per timeslice. 168 169 Parameters 170 ---------- @@ -392,7 +392,7 @@ 179 return Corr(newcontent) 180 181 def plottable(self): - 182 """Outputs the correlator in a plotable format. + 182 """Outputs the correlator in a plotable format. 183 184 Outputs three lists containing the timeslice index, the value on each 185 timeslice and the error on each timeslice. @@ -406,7 +406,7 @@ 193 return x_list, y_list, y_err_list 194 195 def symmetric(self): - 196 """ Symmetrize the correlator around x0=0.""" + 196 """ Symmetrize the correlator around x0=0.""" 197 if self.N != 1: 198 raise Exception('symmetric cannot be safely applied to multi-dimensional correlators.') 199 if self.T % 2 != 0: @@ -426,7 +426,7 @@ 213 return Corr(newcontent, prange=self.prange) 214 215 def anti_symmetric(self): - 216 """Anti-symmetrize the correlator around x0=0.""" + 216 """Anti-symmetrize the correlator around x0=0.""" 217 if self.N != 1: 218 raise Exception('anti_symmetric cannot be safely applied to multi-dimensional correlators.') 219 if self.T % 2 != 0: @@ -448,7 +448,7 @@ 235 return Corr(newcontent, prange=self.prange) 236 237 def is_matrix_symmetric(self): - 238 """Checks whether a correlator matrices is symmetric on every timeslice.""" + 238 """Checks whether a correlator matrices is symmetric on every timeslice.""" 239 if self.N == 1: 240 raise Exception("Only works for correlator matrices.") 241 for t in range(self.T): @@ -463,7 +463,7 @@ 250 return True 251 252 def matrix_symmetric(self): - 253 """Symmetrizes the correlator matrices on every timeslice.""" + 253 """Symmetrizes the correlator matrices on every timeslice.""" 254 if self.N == 1: 255 raise Exception("Trying to symmetrize a correlator matrix, that already has N=1.") 256 if self.is_matrix_symmetric(): @@ -473,7 +473,7 @@ 260 return 0.5 * (Corr(transposed) + self) 261 262 def GEVP(self, t0, ts=None, sort="Eigenvalue", **kwargs): - 263 r'''Solve the generalized eigenvalue problem on the correlator matrix and returns the corresponding eigenvectors. + 263 r'''Solve the generalized eigenvalue problem on the correlator matrix and returns the corresponding eigenvectors. 264 265 The eigenvectors are sorted according to the descending eigenvalues, the zeroth eigenvector(s) correspond to the 266 largest eigenvalue(s). The eigenvector(s) for the individual states can be accessed via slicing @@ -552,7 +552,7 @@ 339 return reordered_vecs 340 341 def Eigenvalue(self, t0, ts=None, state=0, sort="Eigenvalue"): - 342 """Determines the eigenvalue of the GEVP by solving and projecting the correlator + 342 """Determines the eigenvalue of the GEVP by solving and projecting the correlator 343 344 Parameters 345 ---------- @@ -565,7 +565,7 @@ 352 return self.projected(vec) 353 354 def Hankel(self, N, periodic=False): - 355 """Constructs an NxN Hankel matrix + 355 """Constructs an NxN Hankel matrix 356 357 C(t) c(t+1) ... c(t+n-1) 358 C(t+1) c(t+2) ... c(t+n) @@ -606,7 +606,7 @@ 393 return Corr(new_content) 394 395 def roll(self, dt): - 396 """Periodically shift the correlator by dt timeslices + 396 """Periodically shift the correlator by dt timeslices 397 398 Parameters 399 ---------- @@ -616,11 +616,11 @@ 403 return Corr(list(np.roll(np.array(self.content, dtype=object), dt))) 404 405 def reverse(self): - 406 """Reverse the time ordering of the Corr""" + 406 """Reverse the time ordering of the Corr""" 407 return Corr(self.content[:: -1]) 408 409 def thin(self, spacing=2, offset=0): - 410 """Thin out a correlator to suppress correlations + 410 """Thin out a correlator to suppress correlations 411 412 Parameters 413 ---------- @@ -638,7 +638,7 @@ 425 return Corr(new_content) 426 427 def correlate(self, partner): - 428 """Correlate the correlator with another correlator or Obs + 428 """Correlate the correlator with another correlator or Obs 429 430 Parameters 431 ---------- @@ -667,7 +667,7 @@ 454 return Corr(new_content) 455 456 def reweight(self, weight, **kwargs): - 457 """Reweight the correlator. + 457 """Reweight the correlator. 458 459 Parameters 460 ---------- @@ -690,7 +690,7 @@ 477 return Corr(new_content) 478 479 def T_symmetry(self, partner, parity=+1): - 480 """Return the time symmetry average of the correlator and its partner + 480 """Return the time symmetry average of the correlator and its partner 481 482 Parameters 483 ---------- @@ -720,7 +720,7 @@ 507 return (self + T_partner) / 2 508 509 def deriv(self, variant="symmetric"): - 510 """Return the first derivative of the correlator with respect to x0. + 510 """Return the first derivative of the correlator with respect to x0. 511 512 Parameters 513 ---------- @@ -785,7 +785,7 @@ 572 raise Exception("Unknown variant.") 573 574 def second_deriv(self, variant="symmetric"): - 575 """Return the second derivative of the correlator with respect to x0. + 575 """Return the second derivative of the correlator with respect to x0. 576 577 Parameters 578 ---------- @@ -830,7 +830,7 @@ 617 raise Exception("Unknown variant.") 618 619 def m_eff(self, variant='log', guess=1.0): - 620 """Returns the effective mass of the correlator as correlator object + 620 """Returns the effective mass of the correlator as correlator object 621 622 Parameters 623 ---------- @@ -914,7 +914,7 @@ 701 raise Exception('Unknown variant.') 702 703 def fit(self, function, fitrange=None, silent=False, **kwargs): - 704 r'''Fits function to the data + 704 r'''Fits function to the data 705 706 Parameters 707 ---------- @@ -948,7 +948,7 @@ 735 return result 736 737 def plateau(self, plateau_range=None, method="fit", auto_gamma=False): - 738 """ Extract a plateau value from a Corr object + 738 """ Extract a plateau value from a Corr object 739 740 Parameters 741 ---------- @@ -985,7 +985,7 @@ 772 raise Exception("Unsupported plateau method: " + method) 773 774 def set_prange(self, prange): - 775 """Sets the attribute prange of the Corr object.""" + 775 """Sets the attribute prange of the Corr object.""" 776 if not len(prange) == 2: 777 raise Exception("prange must be a list or array with two values") 778 if not ((isinstance(prange[0], int)) and (isinstance(prange[1], int))): @@ -997,7 +997,7 @@ 784 return 785 786 def show(self, x_range=None, comp=None, y_range=None, logscale=False, plateau=None, fit_res=None, ylabel=None, save=None, auto_gamma=False, hide_sigma=None, references=None, title=None): - 787 """Plots the correlator using the tag of the correlator as label if available. + 787 """Plots the correlator using the tag of the correlator as label if available. 788 789 Parameters 790 ---------- @@ -1116,7 +1116,7 @@ 903 raise Exception("'save' has to be a string.") 904 905 def spaghetti_plot(self, logscale=True): - 906 """Produces a spaghetti plot of the correlator suited to monitor exceptional configurations. + 906 """Produces a spaghetti plot of the correlator suited to monitor exceptional configurations. 907 908 Parameters 909 ---------- @@ -1145,7 +1145,7 @@ 932 plt.draw() 933 934 def dump(self, filename, datatype="json.gz", **kwargs): - 935 """Dumps the Corr into a file of chosen type + 935 """Dumps the Corr into a file of chosen type 936 Parameters 937 ---------- 938 filename : str @@ -1429,7 +1429,7 @@ 1216 return self._apply_func_to_corr(return_imag) 1217 1218 def prune(self, Ntrunc, tproj=3, t0proj=2, basematrix=None): -1219 r''' Project large correlation matrix to lowest states +1219 r''' Project large correlation matrix to lowest states 1220 1221 This method can be used to reduce the size of an (N x N) correlation matrix 1222 to (Ntrunc x Ntrunc) by solving a GEVP at very early times where the noise @@ -1487,7 +1487,7 @@ 1274 1275 1276def _sort_vectors(vec_set, ts): -1277 """Helper function used to find a set of Eigenvectors consistent over all timeslices""" +1277 """Helper function used to find a set of Eigenvectors consistent over all timeslices""" 1278 reference_sorting = np.array(vec_set[ts]) 1279 N = reference_sorting.shape[0] 1280 sorted_vec_set = [] @@ -1514,12 +1514,12 @@ 1301 1302 1303def _check_for_none(corr, entry): -1304 """Checks if entry for correlator corr is None""" +1304 """Checks if entry for correlator corr is None""" 1305 return len(list(filter(None, np.asarray(entry).flatten()))) < corr.N ** 2 1306 1307 1308def _GEVP_solver(Gt, G0): -1309 """Helper function for solving the GEVP and sorting the eigenvectors. +1309 """Helper function for solving the GEVP and sorting the eigenvectors. 1310 1311 The helper function assumes that both provided matrices are symmetric and 1312 only processes the lower triangular part of both matrices. In case the matrices @@ -1541,7 +1541,7 @@
  14class Corr:
-  15    """The class for a correlator (time dependent sequence of pe.Obs).
+  15    """The class for a correlator (time dependent sequence of pe.Obs).
   16
   17    Everything, this class does, can be achieved using lists or arrays of Obs.
   18    But it is simply more convenient to have a dedicated object for correlators.
@@ -1554,7 +1554,7 @@
   25    """
   26
   27    def __init__(self, data_input, padding=[0, 0], prange=None):
-  28        """ Initialize a Corr object.
+  28        """ Initialize a Corr object.
   29
   30        Parameters
   31        ----------
@@ -1625,7 +1625,7 @@
   96        self.prange = prange
   97
   98    def __getitem__(self, idx):
-  99        """Return the content of timeslice idx"""
+  99        """Return the content of timeslice idx"""
  100        if self.content[idx] is None:
  101            return None
  102        elif len(self.content[idx]) == 1:
@@ -1644,7 +1644,7 @@
  115            raise Exception("Reweighting status of correlator corrupted.")
  116
  117    def gamma_method(self, **kwargs):
- 118        """Apply the gamma method to the content of the Corr."""
+ 118        """Apply the gamma method to the content of the Corr."""
  119        for item in self.content:
  120            if not (item is None):
  121                if self.N == 1:
@@ -1655,7 +1655,7 @@
  126                            item[i, j].gamma_method(**kwargs)
  127
  128    def projected(self, vector_l=None, vector_r=None, normalize=False):
- 129        """We need to project the Correlator with a Vector to get a single value at each timeslice.
+ 129        """We need to project the Correlator with a Vector to get a single value at each timeslice.
  130
  131        The method can use one or two vectors.
  132        If two are specified it returns v1@G@v2 (the order might be very important.)
@@ -1694,7 +1694,7 @@
  165        return Corr(newcontent)
  166
  167    def item(self, i, j):
- 168        """Picks the element [i,j] from every matrix and returns a correlator containing one Obs per timeslice.
+ 168        """Picks the element [i,j] from every matrix and returns a correlator containing one Obs per timeslice.
  169
  170        Parameters
  171        ----------
@@ -1709,7 +1709,7 @@
  180        return Corr(newcontent)
  181
  182    def plottable(self):
- 183        """Outputs the correlator in a plotable format.
+ 183        """Outputs the correlator in a plotable format.
  184
  185        Outputs three lists containing the timeslice index, the value on each
  186        timeslice and the error on each timeslice.
@@ -1723,7 +1723,7 @@
  194        return x_list, y_list, y_err_list
  195
  196    def symmetric(self):
- 197        """ Symmetrize the correlator around x0=0."""
+ 197        """ Symmetrize the correlator around x0=0."""
  198        if self.N != 1:
  199            raise Exception('symmetric cannot be safely applied to multi-dimensional correlators.')
  200        if self.T % 2 != 0:
@@ -1743,7 +1743,7 @@
  214        return Corr(newcontent, prange=self.prange)
  215
  216    def anti_symmetric(self):
- 217        """Anti-symmetrize the correlator around x0=0."""
+ 217        """Anti-symmetrize the correlator around x0=0."""
  218        if self.N != 1:
  219            raise Exception('anti_symmetric cannot be safely applied to multi-dimensional correlators.')
  220        if self.T % 2 != 0:
@@ -1765,7 +1765,7 @@
  236        return Corr(newcontent, prange=self.prange)
  237
  238    def is_matrix_symmetric(self):
- 239        """Checks whether a correlator matrices is symmetric on every timeslice."""
+ 239        """Checks whether a correlator matrices is symmetric on every timeslice."""
  240        if self.N == 1:
  241            raise Exception("Only works for correlator matrices.")
  242        for t in range(self.T):
@@ -1780,7 +1780,7 @@
  251        return True
  252
  253    def matrix_symmetric(self):
- 254        """Symmetrizes the correlator matrices on every timeslice."""
+ 254        """Symmetrizes the correlator matrices on every timeslice."""
  255        if self.N == 1:
  256            raise Exception("Trying to symmetrize a correlator matrix, that already has N=1.")
  257        if self.is_matrix_symmetric():
@@ -1790,7 +1790,7 @@
  261            return 0.5 * (Corr(transposed) + self)
  262
  263    def GEVP(self, t0, ts=None, sort="Eigenvalue", **kwargs):
- 264        r'''Solve the generalized eigenvalue problem on the correlator matrix and returns the corresponding eigenvectors.
+ 264        r'''Solve the generalized eigenvalue problem on the correlator matrix and returns the corresponding eigenvectors.
  265
  266        The eigenvectors are sorted according to the descending eigenvalues, the zeroth eigenvector(s) correspond to the
  267        largest eigenvalue(s). The eigenvector(s) for the individual states can be accessed via slicing
@@ -1869,7 +1869,7 @@
  340            return reordered_vecs
  341
  342    def Eigenvalue(self, t0, ts=None, state=0, sort="Eigenvalue"):
- 343        """Determines the eigenvalue of the GEVP by solving and projecting the correlator
+ 343        """Determines the eigenvalue of the GEVP by solving and projecting the correlator
  344
  345        Parameters
  346        ----------
@@ -1882,7 +1882,7 @@
  353        return self.projected(vec)
  354
  355    def Hankel(self, N, periodic=False):
- 356        """Constructs an NxN Hankel matrix
+ 356        """Constructs an NxN Hankel matrix
  357
  358        C(t) c(t+1) ... c(t+n-1)
  359        C(t+1) c(t+2) ... c(t+n)
@@ -1923,7 +1923,7 @@
  394        return Corr(new_content)
  395
  396    def roll(self, dt):
- 397        """Periodically shift the correlator by dt timeslices
+ 397        """Periodically shift the correlator by dt timeslices
  398
  399        Parameters
  400        ----------
@@ -1933,11 +1933,11 @@
  404        return Corr(list(np.roll(np.array(self.content, dtype=object), dt)))
  405
  406    def reverse(self):
- 407        """Reverse the time ordering of the Corr"""
+ 407        """Reverse the time ordering of the Corr"""
  408        return Corr(self.content[:: -1])
  409
  410    def thin(self, spacing=2, offset=0):
- 411        """Thin out a correlator to suppress correlations
+ 411        """Thin out a correlator to suppress correlations
  412
  413        Parameters
  414        ----------
@@ -1955,7 +1955,7 @@
  426        return Corr(new_content)
  427
  428    def correlate(self, partner):
- 429        """Correlate the correlator with another correlator or Obs
+ 429        """Correlate the correlator with another correlator or Obs
  430
  431        Parameters
  432        ----------
@@ -1984,7 +1984,7 @@
  455        return Corr(new_content)
  456
  457    def reweight(self, weight, **kwargs):
- 458        """Reweight the correlator.
+ 458        """Reweight the correlator.
  459
  460        Parameters
  461        ----------
@@ -2007,7 +2007,7 @@
  478        return Corr(new_content)
  479
  480    def T_symmetry(self, partner, parity=+1):
- 481        """Return the time symmetry average of the correlator and its partner
+ 481        """Return the time symmetry average of the correlator and its partner
  482
  483        Parameters
  484        ----------
@@ -2037,7 +2037,7 @@
  508        return (self + T_partner) / 2
  509
  510    def deriv(self, variant="symmetric"):
- 511        """Return the first derivative of the correlator with respect to x0.
+ 511        """Return the first derivative of the correlator with respect to x0.
  512
  513        Parameters
  514        ----------
@@ -2102,7 +2102,7 @@
  573            raise Exception("Unknown variant.")
  574
  575    def second_deriv(self, variant="symmetric"):
- 576        """Return the second derivative of the correlator with respect to x0.
+ 576        """Return the second derivative of the correlator with respect to x0.
  577
  578        Parameters
  579        ----------
@@ -2147,7 +2147,7 @@
  618            raise Exception("Unknown variant.")
  619
  620    def m_eff(self, variant='log', guess=1.0):
- 621        """Returns the effective mass of the correlator as correlator object
+ 621        """Returns the effective mass of the correlator as correlator object
  622
  623        Parameters
  624        ----------
@@ -2231,7 +2231,7 @@
  702            raise Exception('Unknown variant.')
  703
  704    def fit(self, function, fitrange=None, silent=False, **kwargs):
- 705        r'''Fits function to the data
+ 705        r'''Fits function to the data
  706
  707        Parameters
  708        ----------
@@ -2265,7 +2265,7 @@
  736        return result
  737
  738    def plateau(self, plateau_range=None, method="fit", auto_gamma=False):
- 739        """ Extract a plateau value from a Corr object
+ 739        """ Extract a plateau value from a Corr object
  740
  741        Parameters
  742        ----------
@@ -2302,7 +2302,7 @@
  773            raise Exception("Unsupported plateau method: " + method)
  774
  775    def set_prange(self, prange):
- 776        """Sets the attribute prange of the Corr object."""
+ 776        """Sets the attribute prange of the Corr object."""
  777        if not len(prange) == 2:
  778            raise Exception("prange must be a list or array with two values")
  779        if not ((isinstance(prange[0], int)) and (isinstance(prange[1], int))):
@@ -2314,7 +2314,7 @@
  785        return
  786
  787    def show(self, x_range=None, comp=None, y_range=None, logscale=False, plateau=None, fit_res=None, ylabel=None, save=None, auto_gamma=False, hide_sigma=None, references=None, title=None):
- 788        """Plots the correlator using the tag of the correlator as label if available.
+ 788        """Plots the correlator using the tag of the correlator as label if available.
  789
  790        Parameters
  791        ----------
@@ -2433,7 +2433,7 @@
  904                raise Exception("'save' has to be a string.")
  905
  906    def spaghetti_plot(self, logscale=True):
- 907        """Produces a spaghetti plot of the correlator suited to monitor exceptional configurations.
+ 907        """Produces a spaghetti plot of the correlator suited to monitor exceptional configurations.
  908
  909        Parameters
  910        ----------
@@ -2462,7 +2462,7 @@
  933            plt.draw()
  934
  935    def dump(self, filename, datatype="json.gz", **kwargs):
- 936        """Dumps the Corr into a file of chosen type
+ 936        """Dumps the Corr into a file of chosen type
  937        Parameters
  938        ----------
  939        filename : str
@@ -2746,7 +2746,7 @@
 1217        return self._apply_func_to_corr(return_imag)
 1218
 1219    def prune(self, Ntrunc, tproj=3, t0proj=2, basematrix=None):
-1220        r''' Project large correlation matrix to lowest states
+1220        r''' Project large correlation matrix to lowest states
 1221
 1222        This method can be used to reduce the size of an (N x N) correlation matrix
 1223        to (Ntrunc x Ntrunc) by solving a GEVP at very early times where the noise
@@ -2827,7 +2827,7 @@ matrix at every timeslice. Other dependency (eg. spatial) are not supported.

27    def __init__(self, data_input, padding=[0, 0], prange=None):
-28        """ Initialize a Corr object.
+28        """ Initialize a Corr object.
 29
 30        Parameters
 31        ----------
@@ -2930,7 +2930,7 @@ region indentified for this correlator.
     
117    def gamma_method(self, **kwargs):
-118        """Apply the gamma method to the content of the Corr."""
+118        """Apply the gamma method to the content of the Corr."""
 119        for item in self.content:
 120            if not (item is None):
 121                if self.N == 1:
@@ -2959,7 +2959,7 @@ region indentified for this correlator.
     
128    def projected(self, vector_l=None, vector_r=None, normalize=False):
-129        """We need to project the Correlator with a Vector to get a single value at each timeslice.
+129        """We need to project the Correlator with a Vector to get a single value at each timeslice.
 130
 131        The method can use one or two vectors.
 132        If two are specified it returns v1@G@v2 (the order might be very important.)
@@ -3020,7 +3020,7 @@ By default it will return the lowest source, which usually means unsmeared-unsme
     
167    def item(self, i, j):
-168        """Picks the element [i,j] from every matrix and returns a correlator containing one Obs per timeslice.
+168        """Picks the element [i,j] from every matrix and returns a correlator containing one Obs per timeslice.
 169
 170        Parameters
 171        ----------
@@ -3062,7 +3062,7 @@ Second index to be picked.
     
182    def plottable(self):
-183        """Outputs the correlator in a plotable format.
+183        """Outputs the correlator in a plotable format.
 184
 185        Outputs three lists containing the timeslice index, the value on each
 186        timeslice and the error on each timeslice.
@@ -3097,7 +3097,7 @@ timeslice and the error on each timeslice.

196    def symmetric(self):
-197        """ Symmetrize the correlator around x0=0."""
+197        """ Symmetrize the correlator around x0=0."""
 198        if self.N != 1:
 199            raise Exception('symmetric cannot be safely applied to multi-dimensional correlators.')
 200        if self.T % 2 != 0:
@@ -3135,7 +3135,7 @@ timeslice and the error on each timeslice.

216    def anti_symmetric(self):
-217        """Anti-symmetrize the correlator around x0=0."""
+217        """Anti-symmetrize the correlator around x0=0."""
 218        if self.N != 1:
 219            raise Exception('anti_symmetric cannot be safely applied to multi-dimensional correlators.')
 220        if self.T % 2 != 0:
@@ -3175,7 +3175,7 @@ timeslice and the error on each timeslice.

238    def is_matrix_symmetric(self):
-239        """Checks whether a correlator matrices is symmetric on every timeslice."""
+239        """Checks whether a correlator matrices is symmetric on every timeslice."""
 240        if self.N == 1:
 241            raise Exception("Only works for correlator matrices.")
 242        for t in range(self.T):
@@ -3208,7 +3208,7 @@ timeslice and the error on each timeslice.

253    def matrix_symmetric(self):
-254        """Symmetrizes the correlator matrices on every timeslice."""
+254        """Symmetrizes the correlator matrices on every timeslice."""
 255        if self.N == 1:
 256            raise Exception("Trying to symmetrize a correlator matrix, that already has N=1.")
 257        if self.is_matrix_symmetric():
@@ -3236,7 +3236,7 @@ timeslice and the error on each timeslice.

263    def GEVP(self, t0, ts=None, sort="Eigenvalue", **kwargs):
-264        r'''Solve the generalized eigenvalue problem on the correlator matrix and returns the corresponding eigenvectors.
+264        r'''Solve the generalized eigenvalue problem on the correlator matrix and returns the corresponding eigenvectors.
 265
 266        The eigenvectors are sorted according to the descending eigenvalues, the zeroth eigenvector(s) correspond to the
 267        largest eigenvalue(s). The eigenvector(s) for the individual states can be accessed via slicing
@@ -3366,7 +3366,7 @@ Returns only the vector(s) for a specified state. The lowest state is zero.
     
342    def Eigenvalue(self, t0, ts=None, state=0, sort="Eigenvalue"):
-343        """Determines the eigenvalue of the GEVP by solving and projecting the correlator
+343        """Determines the eigenvalue of the GEVP by solving and projecting the correlator
 344
 345        Parameters
 346        ----------
@@ -3405,7 +3405,7 @@ The state one is interested in ordered by energy. The lowest state is zero.
     
355    def Hankel(self, N, periodic=False):
-356        """Constructs an NxN Hankel matrix
+356        """Constructs an NxN Hankel matrix
 357
 358        C(t) c(t+1) ... c(t+n-1)
 359        C(t+1) c(t+2) ... c(t+n)
@@ -3478,7 +3478,7 @@ determines whether the matrix is extended periodically
     
396    def roll(self, dt):
-397        """Periodically shift the correlator by dt timeslices
+397        """Periodically shift the correlator by dt timeslices
 398
 399        Parameters
 400        ----------
@@ -3513,7 +3513,7 @@ number of timeslices
     
406    def reverse(self):
-407        """Reverse the time ordering of the Corr"""
+407        """Reverse the time ordering of the Corr"""
 408        return Corr(self.content[:: -1])
 
@@ -3535,7 +3535,7 @@ number of timeslices
410    def thin(self, spacing=2, offset=0):
-411        """Thin out a correlator to suppress correlations
+411        """Thin out a correlator to suppress correlations
 412
 413        Parameters
 414        ----------
@@ -3580,7 +3580,7 @@ Offset the equal spacing
     
428    def correlate(self, partner):
-429        """Correlate the correlator with another correlator or Obs
+429        """Correlate the correlator with another correlator or Obs
 430
 431        Parameters
 432        ----------
@@ -3636,7 +3636,7 @@ correlator or a Corr of same length.
     
457    def reweight(self, weight, **kwargs):
-458        """Reweight the correlator.
+458        """Reweight the correlator.
 459
 460        Parameters
 461        ----------
@@ -3689,7 +3689,7 @@ on the configurations in obs[i].idl.
     
480    def T_symmetry(self, partner, parity=+1):
-481        """Return the time symmetry average of the correlator and its partner
+481        """Return the time symmetry average of the correlator and its partner
 482
 483        Parameters
 484        ----------
@@ -3746,7 +3746,7 @@ Parity quantum number of the correlator, can be +1 or -1
     
510    def deriv(self, variant="symmetric"):
-511        """Return the first derivative of the correlator with respect to x0.
+511        """Return the first derivative of the correlator with respect to x0.
 512
 513        Parameters
 514        ----------
@@ -3837,7 +3837,7 @@ Available choice: symmetric, forward, backward, improved, log, default: symmetri
     
575    def second_deriv(self, variant="symmetric"):
-576        """Return the second derivative of the correlator with respect to x0.
+576        """Return the second derivative of the correlator with respect to x0.
 577
 578        Parameters
 579        ----------
@@ -3908,7 +3908,7 @@ Available choice: symmetric, improved, log, default: symmetric
     
620    def m_eff(self, variant='log', guess=1.0):
-621        """Returns the effective mass of the correlator as correlator object
+621        """Returns the effective mass of the correlator as correlator object
 622
 623        Parameters
 624        ----------
@@ -4024,7 +4024,7 @@ guess for the root finder, only relevant for the root variant
     
704    def fit(self, function, fitrange=None, silent=False, **kwargs):
-705        r'''Fits function to the data
+705        r'''Fits function to the data
 706
 707        Parameters
 708        ----------
@@ -4090,7 +4090,7 @@ Decides whether output is printed to the standard output.
     
738    def plateau(self, plateau_range=None, method="fit", auto_gamma=False):
-739        """ Extract a plateau value from a Corr object
+739        """ Extract a plateau value from a Corr object
 740
 741        Parameters
 742        ----------
@@ -4159,7 +4159,7 @@ apply gamma_method with default parameters to the Corr. Defaults to None
     
775    def set_prange(self, prange):
-776        """Sets the attribute prange of the Corr object."""
+776        """Sets the attribute prange of the Corr object."""
 777        if not len(prange) == 2:
 778            raise Exception("prange must be a list or array with two values")
 779        if not ((isinstance(prange[0], int)) and (isinstance(prange[1], int))):
@@ -4189,7 +4189,7 @@ apply gamma_method with default parameters to the Corr. Defaults to None
     
787    def show(self, x_range=None, comp=None, y_range=None, logscale=False, plateau=None, fit_res=None, ylabel=None, save=None, auto_gamma=False, hide_sigma=None, references=None, title=None):
-788        """Plots the correlator using the tag of the correlator as label if available.
+788        """Plots the correlator using the tag of the correlator as label if available.
 789
 790        Parameters
 791        ----------
@@ -4354,7 +4354,7 @@ Optional title of the figure.
     
906    def spaghetti_plot(self, logscale=True):
-907        """Produces a spaghetti plot of the correlator suited to monitor exceptional configurations.
+907        """Produces a spaghetti plot of the correlator suited to monitor exceptional configurations.
 908
 909        Parameters
 910        ----------
@@ -4408,7 +4408,7 @@ Determines whether the scale of the y-axis is logarithmic or standard.
     
935    def dump(self, filename, datatype="json.gz", **kwargs):
-936        """Dumps the Corr into a file of chosen type
+936        """Dumps the Corr into a file of chosen type
 937        Parameters
 938        ----------
 939        filename : str
@@ -4768,7 +4768,7 @@ specifies a custom path for the file (default '.')
     
1219    def prune(self, Ntrunc, tproj=3, t0proj=2, basematrix=None):
-1220        r''' Project large correlation matrix to lowest states
+1220        r''' Project large correlation matrix to lowest states
 1221
 1222        This method can be used to reduce the size of an (N x N) correlation matrix
 1223        to (Ntrunc x Ntrunc) by solving a GEVP at very early times where the noise
diff --git a/docs/pyerrors/covobs.html b/docs/pyerrors/covobs.html
index e2d9729b..3db9b9f6 100644
--- a/docs/pyerrors/covobs.html
+++ b/docs/pyerrors/covobs.html
@@ -91,7 +91,7 @@
   4class Covobs:
   5
   6    def __init__(self, mean, cov, name, pos=None, grad=None):
-  7        """ Initialize Covobs object.
+  7        """ Initialize Covobs object.
   8
   9        Parameters
  10        ----------
@@ -127,12 +127,12 @@
  40        self.value = mean
  41
  42    def errsq(self):
- 43        """ Return the variance (= square of the error) of the Covobs
+ 43        """ Return the variance (= square of the error) of the Covobs
  44        """
  45        return float(np.dot(np.transpose(self.grad), np.dot(self.cov, self.grad)))
  46
  47    def _set_cov(self, cov):
- 48        """ Set the covariance matrix of the covobs
+ 48        """ Set the covariance matrix of the covobs
  49
  50        Parameters
  51        ----------
@@ -167,7 +167,7 @@
  80                raise Exception('Covariance matrix is not positive-semidefinite!')
  81
  82    def _set_grad(self, grad):
- 83        """ Set the gradient of the covobs
+ 83        """ Set the gradient of the covobs
  84
  85        Parameters
  86        ----------
@@ -207,7 +207,7 @@
             
  5class Covobs:
   6
   7    def __init__(self, mean, cov, name, pos=None, grad=None):
-  8        """ Initialize Covobs object.
+  8        """ Initialize Covobs object.
   9
  10        Parameters
  11        ----------
@@ -243,12 +243,12 @@
  41        self.value = mean
  42
  43    def errsq(self):
- 44        """ Return the variance (= square of the error) of the Covobs
+ 44        """ Return the variance (= square of the error) of the Covobs
  45        """
  46        return float(np.dot(np.transpose(self.grad), np.dot(self.cov, self.grad)))
  47
  48    def _set_cov(self, cov):
- 49        """ Set the covariance matrix of the covobs
+ 49        """ Set the covariance matrix of the covobs
  50
  51        Parameters
  52        ----------
@@ -283,7 +283,7 @@
  81                raise Exception('Covariance matrix is not positive-semidefinite!')
  82
  83    def _set_grad(self, grad):
- 84        """ Set the gradient of the covobs
+ 84        """ Set the gradient of the covobs
  85
  86        Parameters
  87        ----------
@@ -321,7 +321,7 @@
     
 7    def __init__(self, mean, cov, name, pos=None, grad=None):
- 8        """ Initialize Covobs object.
+ 8        """ Initialize Covobs object.
  9
 10        Parameters
 11        ----------
@@ -391,7 +391,7 @@ Gradient of the Covobs wrt. the means belonging to cov.
     
43    def errsq(self):
-44        """ Return the variance (= square of the error) of the Covobs
+44        """ Return the variance (= square of the error) of the Covobs
 45        """
 46        return float(np.dot(np.transpose(self.grad), np.dot(self.cov, self.grad)))
 
diff --git a/docs/pyerrors/dirac.html b/docs/pyerrors/dirac.html index 3f44c5df..ddbd6857 100644 --- a/docs/pyerrors/dirac.html +++ b/docs/pyerrors/dirac.html @@ -107,7 +107,7 @@
23 24 25def epsilon_tensor(i, j, k): -26 """Rank-3 epsilon tensor +26 """Rank-3 epsilon tensor 27 28 Based on https://codegolf.stackexchange.com/a/160375 29 """ @@ -119,7 +119,7 @@ 35 36 37def epsilon_tensor_rank4(i, j, k, o): -38 """Rank-4 epsilon tensor +38 """Rank-4 epsilon tensor 39 40 Extension of https://codegolf.stackexchange.com/a/160375 41 """ @@ -131,7 +131,7 @@ 47 48 49def Grid_gamma(gamma_tag): -50 """Returns gamma matrix in Grid labeling.""" +50 """Returns gamma matrix in Grid labeling.""" 51 if gamma_tag == 'Identity': 52 g = identity 53 elif gamma_tag == 'Gamma5': @@ -183,7 +183,7 @@
26def epsilon_tensor(i, j, k):
-27    """Rank-3 epsilon tensor
+27    """Rank-3 epsilon tensor
 28
 29    Based on https://codegolf.stackexchange.com/a/160375
 30    """
@@ -214,7 +214,7 @@
     
38def epsilon_tensor_rank4(i, j, k, o):
-39    """Rank-4 epsilon tensor
+39    """Rank-4 epsilon tensor
 40
 41    Extension of https://codegolf.stackexchange.com/a/160375
 42    """
@@ -245,7 +245,7 @@
     
50def Grid_gamma(gamma_tag):
-51    """Returns gamma matrix in Grid labeling."""
+51    """Returns gamma matrix in Grid labeling."""
 52    if gamma_tag == 'Identity':
 53        g = identity
 54    elif gamma_tag == 'Gamma5':
diff --git a/docs/pyerrors/fits.html b/docs/pyerrors/fits.html
index ed112d92..b5ea2136 100644
--- a/docs/pyerrors/fits.html
+++ b/docs/pyerrors/fits.html
@@ -126,7 +126,7 @@
  18
  19
  20class Fit_result(Sequence):
- 21    """Represents fit results.
+ 21    """Represents fit results.
  22
  23    Attributes
  24    ----------
@@ -151,7 +151,7 @@
  43        return len(self.fit_parameters)
  44
  45    def gamma_method(self, **kwargs):
- 46        """Apply the gamma method to all fit parameters"""
+ 46        """Apply the gamma method to all fit parameters"""
  47        [o.gamma_method(**kwargs) for o in self.fit_parameters]
  48
  49    def __str__(self):
@@ -177,7 +177,7 @@
  69
  70
  71def least_squares(x, y, func, priors=None, silent=False, **kwargs):
- 72    r'''Performs a non-linear fit to y = func(x).
+ 72    r'''Performs a non-linear fit to y = func(x).
  73
  74    Parameters
  75    ----------
@@ -243,7 +243,7 @@
 135
 136
 137def total_least_squares(x, y, func, silent=False, **kwargs):
-138    r'''Performs a non-linear fit to y = func(x) and returns a list of Obs corresponding to the fit parameters.
+138    r'''Performs a non-linear fit to y = func(x) and returns a list of Obs corresponding to the fit parameters.
 139
 140    Parameters
 141    ----------
@@ -765,7 +765,7 @@
 657
 658
 659def fit_lin(x, y, **kwargs):
-660    """Performs a linear fit to y = n + m * x and returns two Obs n, m.
+660    """Performs a linear fit to y = n + m * x and returns two Obs n, m.
 661
 662    Parameters
 663    ----------
@@ -791,7 +791,7 @@
 683
 684
 685def qqplot(x, o_y, func, p):
-686    """Generates a quantile-quantile plot of the fit result which can be used to
+686    """Generates a quantile-quantile plot of the fit result which can be used to
 687       check if the residuals of the fit are gaussian distributed.
 688    """
 689
@@ -817,7 +817,7 @@
 709
 710
 711def residual_plot(x, y, func, fit_res):
-712    """ Generates a plot which compares the fit to the data and displays the corresponding residuals"""
+712    """ Generates a plot which compares the fit to the data and displays the corresponding residuals"""
 713    sorted_x = sorted(x)
 714    xstart = sorted_x[0] - 0.5 * (sorted_x[1] - sorted_x[0])
 715    xstop = sorted_x[-1] + 0.5 * (sorted_x[-1] - sorted_x[-2])
@@ -847,7 +847,7 @@
 739
 740
 741def error_band(x, func, beta):
-742    """Returns the error band for an array of sample values x, for given fit function func with optimized parameters beta."""
+742    """Returns the error band for an array of sample values x, for given fit function func with optimized parameters beta."""
 743    cov = covariance(beta)
 744    if np.any(np.abs(cov - cov.T) > 1000 * np.finfo(np.float64).eps):
 745        warnings.warn("Covariance matrix is not symmetric within floating point precision", RuntimeWarning)
@@ -865,7 +865,7 @@
 757
 758
 759def ks_test(objects=None):
-760    """Performs a Kolmogorov–Smirnov test for the p-values of all fit object.
+760    """Performs a Kolmogorov–Smirnov test for the p-values of all fit object.
 761
 762    Parameters
 763    ----------
@@ -918,7 +918,7 @@
     
21class Fit_result(Sequence):
-22    """Represents fit results.
+22    """Represents fit results.
 23
 24    Attributes
 25    ----------
@@ -943,7 +943,7 @@
 44        return len(self.fit_parameters)
 45
 46    def gamma_method(self, **kwargs):
-47        """Apply the gamma method to all fit parameters"""
+47        """Apply the gamma method to all fit parameters"""
 48        [o.gamma_method(**kwargs) for o in self.fit_parameters]
 49
 50    def __str__(self):
@@ -1017,7 +1017,7 @@ Hotelling t-squared p-value for correlated fits.
     
46    def gamma_method(self, **kwargs):
-47        """Apply the gamma method to all fit parameters"""
+47        """Apply the gamma method to all fit parameters"""
 48        [o.gamma_method(**kwargs) for o in self.fit_parameters]
 
@@ -1050,7 +1050,7 @@ Hotelling t-squared p-value for correlated fits.
 72def least_squares(x, y, func, priors=None, silent=False, **kwargs):
- 73    r'''Performs a non-linear fit to y = func(x).
+ 73    r'''Performs a non-linear fit to y = func(x).
  74
  75    Parameters
  76    ----------
@@ -1194,7 +1194,7 @@ Use numerical differentation instead of automatic differentiation to perform the
     
138def total_least_squares(x, y, func, silent=False, **kwargs):
-139    r'''Performs a non-linear fit to y = func(x) and returns a list of Obs corresponding to the fit parameters.
+139    r'''Performs a non-linear fit to y = func(x) and returns a list of Obs corresponding to the fit parameters.
 140
 141    Parameters
 142    ----------
@@ -1457,7 +1457,7 @@ Use numerical differentation instead of automatic differentiation to perform the
     
660def fit_lin(x, y, **kwargs):
-661    """Performs a linear fit to y = n + m * x and returns two Obs n, m.
+661    """Performs a linear fit to y = n + m * x and returns two Obs n, m.
 662
 663    Parameters
 664    ----------
@@ -1510,7 +1510,7 @@ List of Obs, the dvalues of the Obs are used as yerror for the fit.
     
686def qqplot(x, o_y, func, p):
-687    """Generates a quantile-quantile plot of the fit result which can be used to
+687    """Generates a quantile-quantile plot of the fit result which can be used to
 688       check if the residuals of the fit are gaussian distributed.
 689    """
 690
@@ -1554,7 +1554,7 @@ check if the residuals of the fit are gaussian distributed.

712def residual_plot(x, y, func, fit_res):
-713    """ Generates a plot which compares the fit to the data and displays the corresponding residuals"""
+713    """ Generates a plot which compares the fit to the data and displays the corresponding residuals"""
 714    sorted_x = sorted(x)
 715    xstart = sorted_x[0] - 0.5 * (sorted_x[1] - sorted_x[0])
 716    xstop = sorted_x[-1] + 0.5 * (sorted_x[-1] - sorted_x[-2])
@@ -1601,7 +1601,7 @@ check if the residuals of the fit are gaussian distributed.

742def error_band(x, func, beta):
-743    """Returns the error band for an array of sample values x, for given fit function func with optimized parameters beta."""
+743    """Returns the error band for an array of sample values x, for given fit function func with optimized parameters beta."""
 744    cov = covariance(beta)
 745    if np.any(np.abs(cov - cov.T) > 1000 * np.finfo(np.float64).eps):
 746        warnings.warn("Covariance matrix is not symmetric within floating point precision", RuntimeWarning)
@@ -1636,7 +1636,7 @@ check if the residuals of the fit are gaussian distributed.

760def ks_test(objects=None):
-761    """Performs a Kolmogorov–Smirnov test for the p-values of all fit object.
+761    """Performs a Kolmogorov–Smirnov test for the p-values of all fit object.
 762
 763    Parameters
 764    ----------
diff --git a/docs/pyerrors/input/bdio.html b/docs/pyerrors/input/bdio.html
index fbb2973d..cd5b94b6 100644
--- a/docs/pyerrors/input/bdio.html
+++ b/docs/pyerrors/input/bdio.html
@@ -92,7 +92,7 @@
   5
   6
   7def read_ADerrors(file_path, bdio_path='./libbdio.so', **kwargs):
-  8    """ Extract generic MCMC data from a bdio file
+  8    """ Extract generic MCMC data from a bdio file
   9
  10    read_ADerrors requires bdio to be compiled into a shared library. This can be achieved by
  11    adding the flag -fPIC to CC and changing the all target to
@@ -243,7 +243,7 @@
 156
 157
 158def write_ADerrors(obs_list, file_path, bdio_path='./libbdio.so', **kwargs):
-159    """ Write Obs to a bdio file according to ADerrors conventions
+159    """ Write Obs to a bdio file according to ADerrors conventions
 160
 161    read_mesons requires bdio to be compiled into a shared library. This can be achieved by
 162    adding the flag -fPIC to CC and changing the all target to
@@ -376,7 +376,7 @@
 289
 290
 291def read_mesons(file_path, bdio_path='./libbdio.so', **kwargs):
-292    """ Extract mesons data from a bdio file and return it as a dictionary
+292    """ Extract mesons data from a bdio file and return it as a dictionary
 293
 294    The dictionary can be accessed with a tuple consisting of (type, source_position, kappa1, kappa2)
 295
@@ -586,7 +586,7 @@
 499
 500
 501def read_dSdm(file_path, bdio_path='./libbdio.so', **kwargs):
-502    """ Extract dSdm data from a bdio file and return it as a dictionary
+502    """ Extract dSdm data from a bdio file and return it as a dictionary
 503
 504    The dictionary can be accessed with a tuple consisting of (type, kappa)
 505
@@ -780,7 +780,7 @@
     
  8def read_ADerrors(file_path, bdio_path='./libbdio.so', **kwargs):
-  9    """ Extract generic MCMC data from a bdio file
+  9    """ Extract generic MCMC data from a bdio file
  10
  11    read_ADerrors requires bdio to be compiled into a shared library. This can be achieved by
  12    adding the flag -fPIC to CC and changing the all target to
@@ -962,7 +962,7 @@ adding the flag -fPIC to CC and changing the all target to

159def write_ADerrors(obs_list, file_path, bdio_path='./libbdio.so', **kwargs):
-160    """ Write Obs to a bdio file according to ADerrors conventions
+160    """ Write Obs to a bdio file according to ADerrors conventions
 161
 162    read_mesons requires bdio to be compiled into a shared library. This can be achieved by
 163    adding the flag -fPIC to CC and changing the all target to
@@ -1118,7 +1118,7 @@ adding the flag -fPIC to CC and changing the all target to

292def read_mesons(file_path, bdio_path='./libbdio.so', **kwargs):
-293    """ Extract mesons data from a bdio file and return it as a dictionary
+293    """ Extract mesons data from a bdio file and return it as a dictionary
 294
 295    The dictionary can be accessed with a tuple consisting of (type, source_position, kappa1, kappa2)
 296
@@ -1371,7 +1371,7 @@ Manually overwrite ensemble name
     
502def read_dSdm(file_path, bdio_path='./libbdio.so', **kwargs):
-503    """ Extract dSdm data from a bdio file and return it as a dictionary
+503    """ Extract dSdm data from a bdio file and return it as a dictionary
 504
 505    The dictionary can be accessed with a tuple consisting of (type, kappa)
 506
diff --git a/docs/pyerrors/input/dobs.html b/docs/pyerrors/input/dobs.html
index fea62754..8b966afe 100644
--- a/docs/pyerrors/input/dobs.html
+++ b/docs/pyerrors/input/dobs.html
@@ -111,7 +111,7 @@
  15
  16# Based on https://stackoverflow.com/a/10076823
  17def _etree_to_dict(t):
- 18    """ Convert the content of an XML file to a python dict"""
+ 18    """ Convert the content of an XML file to a python dict"""
  19    d = {t.tag: {} if t.attrib else None}
  20    children = list(t)
  21    if children:
@@ -182,7 +182,7 @@
  86
  87
  88def create_pobs_string(obsl, name, spec='', origin='', symbol=[], enstag=None):
- 89    """Export a list of Obs or structures containing Obs to an xml string
+ 89    """Export a list of Obs or structures containing Obs to an xml string
  90    according to the Zeuthen pobs format.
  91
  92    Tags are not written or recovered automatically. The separator | is removed from the replica names.
@@ -268,7 +268,7 @@
 172
 173
 174def write_pobs(obsl, fname, name, spec='', origin='', symbol=[], enstag=None, gz=True):
-175    """Export a list of Obs or structures containing Obs to a .xml.gz file
+175    """Export a list of Obs or structures containing Obs to a .xml.gz file
 176    according to the Zeuthen pobs format.
 177
 178    Tags are not written or recovered automatically. The separator | is removed from the replica names.
@@ -320,7 +320,7 @@
 224
 225
 226class _NoTagInDataError(Exception):
-227    """Raised when tag is not in data"""
+227    """Raised when tag is not in data"""
 228    def __init__(self, tag):
 229        self.tag = tag
 230        super().__init__('Tag %s not in data!' % (self.tag))
@@ -385,7 +385,7 @@
 289
 290
 291def read_pobs(fname, full_output=False, gz=True, separator_insertion=None):
-292    """Import a list of Obs from an xml.gz file in the Zeuthen pobs format.
+292    """Import a list of Obs from an xml.gz file in the Zeuthen pobs format.
 293
 294    Tags are not written or recovered automatically.
 295
@@ -477,7 +477,7 @@
 381
 382# this is based on Mattia Bruno's implementation at https://github.com/mbruno46/pyobs/blob/master/pyobs/IO/xml.py
 383def import_dobs_string(content, noempty=False, full_output=False, separator_insertion=True):
-384    """Import a list of Obs from a string in the Zeuthen dobs format.
+384    """Import a list of Obs from a string in the Zeuthen dobs format.
 385
 386    Tags are not written or recovered automatically.
 387
@@ -640,7 +640,7 @@
 544
 545
 546def read_dobs(fname, noempty=False, full_output=False, gz=True, separator_insertion=True):
-547    """Import a list of Obs from an xml.gz file in the Zeuthen dobs format.
+547    """Import a list of Obs from an xml.gz file in the Zeuthen dobs format.
 548
 549    Tags are not written or recovered automatically.
 550
@@ -741,7 +741,7 @@
 645
 646
 647def create_dobs_string(obsl, name, spec='dobs v1.0', origin='', symbol=[], who=None, enstags=None):
-648    """Generate the string for the export of a list of Obs or structures containing Obs
+648    """Generate the string for the export of a list of Obs or structures containing Obs
 649    to a .xml.gz file according to the Zeuthen dobs format.
 650
 651    Tags are not written or recovered automatically. The separator |is removed from the replica names.
@@ -925,7 +925,7 @@
 829
 830
 831def write_dobs(obsl, fname, name, spec='dobs v1.0', origin='', symbol=[], who=None, enstags=None, gz=True):
-832    """Export a list of Obs or structures containing Obs to a .xml.gz file
+832    """Export a list of Obs or structures containing Obs to a .xml.gz file
 833    according to the Zeuthen dobs format.
 834
 835    Tags are not written or recovered automatically. The separator | is removed from the replica names.
@@ -988,7 +988,7 @@
     
 89def create_pobs_string(obsl, name, spec='', origin='', symbol=[], enstag=None):
- 90    """Export a list of Obs or structures containing Obs to an xml string
+ 90    """Export a list of Obs or structures containing Obs to an xml string
  91    according to the Zeuthen pobs format.
  92
  93    Tags are not written or recovered automatically. The separator | is removed from the replica names.
@@ -1112,7 +1112,7 @@ Enstag that is written to pobs. If None, the ensemble name is used.
     
175def write_pobs(obsl, fname, name, spec='', origin='', symbol=[], enstag=None, gz=True):
-176    """Export a list of Obs or structures containing Obs to a .xml.gz file
+176    """Export a list of Obs or structures containing Obs to a .xml.gz file
 177    according to the Zeuthen pobs format.
 178
 179    Tags are not written or recovered automatically. The separator | is removed from the replica names.
@@ -1197,7 +1197,7 @@ If True, the output is a gzipped xml. If False, the output is an xml file.
     
292def read_pobs(fname, full_output=False, gz=True, separator_insertion=None):
-293    """Import a list of Obs from an xml.gz file in the Zeuthen pobs format.
+293    """Import a list of Obs from an xml.gz file in the Zeuthen pobs format.
 294
 295    Tags are not written or recovered automatically.
 296
@@ -1322,7 +1322,7 @@ None (default): Replica names remain unchanged.
     
384def import_dobs_string(content, noempty=False, full_output=False, separator_insertion=True):
-385    """Import a list of Obs from a string in the Zeuthen dobs format.
+385    """Import a list of Obs from a string in the Zeuthen dobs format.
 386
 387    Tags are not written or recovered automatically.
 388
@@ -1524,7 +1524,7 @@ None or False: No separator is inserted.
     
547def read_dobs(fname, noempty=False, full_output=False, gz=True, separator_insertion=True):
-548    """Import a list of Obs from an xml.gz file in the Zeuthen dobs format.
+548    """Import a list of Obs from an xml.gz file in the Zeuthen dobs format.
 549
 550    Tags are not written or recovered automatically.
 551
@@ -1607,7 +1607,7 @@ None or False: No separator is inserted.
     
648def create_dobs_string(obsl, name, spec='dobs v1.0', origin='', symbol=[], who=None, enstags=None):
-649    """Generate the string for the export of a list of Obs or structures containing Obs
+649    """Generate the string for the export of a list of Obs or structures containing Obs
 650    to a .xml.gz file according to the Zeuthen dobs format.
 651
 652    Tags are not written or recovered automatically. The separator |is removed from the replica names.
@@ -1833,7 +1833,7 @@ Otherwise, the ensemble name is used.
     
832def write_dobs(obsl, fname, name, spec='dobs v1.0', origin='', symbol=[], who=None, enstags=None, gz=True):
-833    """Export a list of Obs or structures containing Obs to a .xml.gz file
+833    """Export a list of Obs or structures containing Obs to a .xml.gz file
 834    according to the Zeuthen dobs format.
 835
 836    Tags are not written or recovered automatically. The separator | is removed from the replica names.
diff --git a/docs/pyerrors/input/hadrons.html b/docs/pyerrors/input/hadrons.html
index 495c4a91..1d9f9648 100644
--- a/docs/pyerrors/input/hadrons.html
+++ b/docs/pyerrors/input/hadrons.html
@@ -156,7 +156,7 @@
  54
  55
  56def read_meson_hd5(path, filestem, ens_id, meson='meson_0', idl=None, gammas=None):
- 57    r'''Read hadrons meson hdf5 file and extract the meson labeled 'meson'
+ 57    r'''Read hadrons meson hdf5 file and extract the meson labeled 'meson'
  58
  59    Parameters
  60    -----------------
@@ -219,7 +219,7 @@
 117
 118
 119def read_DistillationContraction_hd5(path, ens_id, diagrams=["direct"], idl=None):
-120    """Read hadrons DistillationContraction hdf5 files in given directory structure
+120    """Read hadrons DistillationContraction hdf5 files in given directory structure
 121
 122    Parameters
 123    -----------------
@@ -317,7 +317,7 @@
 215
 216    @property
 217    def g5H(self):
-218        """Gamma_5 hermitean conjugate
+218        """Gamma_5 hermitean conjugate
 219
 220        Uses the fact that the propagator is gamma5 hermitean, so just the
 221        in and out momenta of the propagator are exchanged.
@@ -348,7 +348,7 @@
 246
 247
 248def read_ExternalLeg_hd5(path, filestem, ens_id, idl=None):
-249    """Read hadrons ExternalLeg hdf5 file and output an array of CObs
+249    """Read hadrons ExternalLeg hdf5 file and output an array of CObs
 250
 251    Parameters
 252    ----------
@@ -388,7 +388,7 @@
 286
 287
 288def read_Bilinear_hd5(path, filestem, ens_id, idl=None):
-289    """Read hadrons Bilinear hdf5 file and output an array of CObs
+289    """Read hadrons Bilinear hdf5 file and output an array of CObs
 290
 291    Parameters
 292    ----------
@@ -442,7 +442,7 @@
 340
 341
 342def read_Fourquark_hd5(path, filestem, ens_id, idl=None, vertices=["VA", "AV"]):
-343    """Read hadrons FourquarkFullyConnected hdf5 file and output an array of CObs
+343    """Read hadrons FourquarkFullyConnected hdf5 file and output an array of CObs
 344
 345    Parameters
 346    ----------
@@ -579,7 +579,7 @@
     
 57def read_meson_hd5(path, filestem, ens_id, meson='meson_0', idl=None, gammas=None):
- 58    r'''Read hadrons meson hdf5 file and extract the meson labeled 'meson'
+ 58    r'''Read hadrons meson hdf5 file and extract the meson labeled 'meson'
  59
  60    Parameters
  61    -----------------
@@ -680,7 +680,7 @@ If specified only configurations in the given range are read in.
     
120def read_DistillationContraction_hd5(path, ens_id, diagrams=["direct"], idl=None):
-121    """Read hadrons DistillationContraction hdf5 files in given directory structure
+121    """Read hadrons DistillationContraction hdf5 files in given directory structure
 122
 123    Parameters
 124    -----------------
@@ -808,7 +808,7 @@ If specified only configurations in the given range are read in.
 216
 217    @property
 218    def g5H(self):
-219        """Gamma_5 hermitean conjugate
+219        """Gamma_5 hermitean conjugate
 220
 221        Uses the fact that the propagator is gamma5 hermitean, so just the
 222        in and out momenta of the propagator are exchanged.
@@ -1091,7 +1091,7 @@ in and out momenta of the propagator are exchanged.

249def read_ExternalLeg_hd5(path, filestem, ens_id, idl=None):
-250    """Read hadrons ExternalLeg hdf5 file and output an array of CObs
+250    """Read hadrons ExternalLeg hdf5 file and output an array of CObs
 251
 252    Parameters
 253    ----------
@@ -1161,7 +1161,7 @@ If specified only configurations in the given range are read in.
     
289def read_Bilinear_hd5(path, filestem, ens_id, idl=None):
-290    """Read hadrons Bilinear hdf5 file and output an array of CObs
+290    """Read hadrons Bilinear hdf5 file and output an array of CObs
 291
 292    Parameters
 293    ----------
@@ -1245,7 +1245,7 @@ If specified only configurations in the given range are read in.
     
343def read_Fourquark_hd5(path, filestem, ens_id, idl=None, vertices=["VA", "AV"]):
-344    """Read hadrons FourquarkFullyConnected hdf5 file and output an array of CObs
+344    """Read hadrons FourquarkFullyConnected hdf5 file and output an array of CObs
 345
 346    Parameters
 347    ----------
diff --git a/docs/pyerrors/input/json.html b/docs/pyerrors/input/json.html
index 0b8c382c..2b47ff81 100644
--- a/docs/pyerrors/input/json.html
+++ b/docs/pyerrors/input/json.html
@@ -108,7 +108,7 @@
  15
  16
  17def create_json_string(ol, description='', indent=1):
- 18    """Generate the string for the export of a list of Obs or structures containing Obs
+ 18    """Generate the string for the export of a list of Obs or structures containing Obs
  19    to a .json(.gz) file
  20
  21    Parameters
@@ -291,7 +291,7 @@
 198
 199
 200def dump_to_json(ol, fname, description='', indent=1, gz=True):
-201    """Export a list of Obs or structures containing Obs to a .json(.gz) file
+201    """Export a list of Obs or structures containing Obs to a .json(.gz) file
 202
 203    Parameters
 204    ----------
@@ -328,7 +328,7 @@
 235
 236
 237def _parse_json_dict(json_dict, verbose=True, full_output=False):
-238    """Reconstruct a list of Obs or structures containing Obs from a dict that
+238    """Reconstruct a list of Obs or structures containing Obs from a dict that
 239    was built out of a json string.
 240
 241    The following structures are supported: Obs, list, numpy.ndarray, Corr
@@ -534,7 +534,7 @@
 441
 442
 443def import_json_string(json_string, verbose=True, full_output=False):
-444    """Reconstruct a list of Obs or structures containing Obs from a json string.
+444    """Reconstruct a list of Obs or structures containing Obs from a json string.
 445
 446    The following structures are supported: Obs, list, numpy.ndarray, Corr
 447    If the list contains only one element, it is unpacked from the list.
@@ -554,7 +554,7 @@
 461
 462
 463def load_json(fname, verbose=True, gz=True, full_output=False):
-464    """Import a list of Obs or structures containing Obs from a .json(.gz) file.
+464    """Import a list of Obs or structures containing Obs from a .json(.gz) file.
 465
 466    The following structures are supported: Obs, list, numpy.ndarray, Corr
 467    If the list contains only one element, it is unpacked from the list.
@@ -588,7 +588,7 @@
 495
 496
 497def _ol_from_dict(ind, reps='DICTOBS'):
-498    """Convert a dictionary of Obs objects to a list and a dictionary that contains
+498    """Convert a dictionary of Obs objects to a list and a dictionary that contains
 499    placeholders instead of the Obs objects.
 500
 501    Parameters
@@ -668,7 +668,7 @@
 575
 576
 577def dump_dict_to_json(od, fname, description='', indent=1, reps='DICTOBS', gz=True):
-578    """Export a dict of Obs or structures containing Obs to a .json(.gz) file
+578    """Export a dict of Obs or structures containing Obs to a .json(.gz) file
 579
 580    Parameters
 581    ----------
@@ -704,7 +704,7 @@
 611
 612
 613def _od_from_list_and_dict(ol, ind, reps='DICTOBS'):
-614    """Parse a list of Obs or structures containing Obs and an accompanying
+614    """Parse a list of Obs or structures containing Obs and an accompanying
 615    dict, where the structures have been replaced by placeholders to a
 616    dict that contains the structures.
 617
@@ -767,7 +767,7 @@
 674
 675
 676def load_json_dict(fname, verbose=True, gz=True, full_output=False, reps='DICTOBS'):
-677    """Import a dict of Obs or structures containing Obs from a .json(.gz) file.
+677    """Import a dict of Obs or structures containing Obs from a .json(.gz) file.
 678
 679    The following structures are supported: Obs, list, numpy.ndarray, Corr
 680
@@ -813,7 +813,7 @@
     
 18def create_json_string(ol, description='', indent=1):
- 19    """Generate the string for the export of a list of Obs or structures containing Obs
+ 19    """Generate the string for the export of a list of Obs or structures containing Obs
  20    to a .json(.gz) file
  21
  22    Parameters
@@ -1028,7 +1028,7 @@ saves disk space.
     
201def dump_to_json(ol, fname, description='', indent=1, gz=True):
-202    """Export a list of Obs or structures containing Obs to a .json(.gz) file
+202    """Export a list of Obs or structures containing Obs to a .json(.gz) file
 203
 204    Parameters
 205    ----------
@@ -1100,7 +1100,7 @@ If True, the output is a gzipped json. If False, the output is a json file.
     
444def import_json_string(json_string, verbose=True, full_output=False):
-445    """Reconstruct a list of Obs or structures containing Obs from a json string.
+445    """Reconstruct a list of Obs or structures containing Obs from a json string.
 446
 447    The following structures are supported: Obs, list, numpy.ndarray, Corr
 448    If the list contains only one element, it is unpacked from the list.
@@ -1152,7 +1152,7 @@ If False, only the data is returned.
     
464def load_json(fname, verbose=True, gz=True, full_output=False):
-465    """Import a list of Obs or structures containing Obs from a .json(.gz) file.
+465    """Import a list of Obs or structures containing Obs from a .json(.gz) file.
 466
 467    The following structures are supported: Obs, list, numpy.ndarray, Corr
 468    If the list contains only one element, it is unpacked from the list.
@@ -1220,7 +1220,7 @@ If False, only the data is returned.
     
578def dump_dict_to_json(od, fname, description='', indent=1, reps='DICTOBS', gz=True):
-579    """Export a dict of Obs or structures containing Obs to a .json(.gz) file
+579    """Export a dict of Obs or structures containing Obs to a .json(.gz) file
 580
 581    Parameters
 582    ----------
@@ -1293,7 +1293,7 @@ If True, the output is a gzipped json. If False, the output is a json file.
     
677def load_json_dict(fname, verbose=True, gz=True, full_output=False, reps='DICTOBS'):
-678    """Import a dict of Obs or structures containing Obs from a .json(.gz) file.
+678    """Import a dict of Obs or structures containing Obs from a .json(.gz) file.
 679
 680    The following structures are supported: Obs, list, numpy.ndarray, Corr
 681
diff --git a/docs/pyerrors/input/misc.html b/docs/pyerrors/input/misc.html
index bc500424..3c057acb 100644
--- a/docs/pyerrors/input/misc.html
+++ b/docs/pyerrors/input/misc.html
@@ -85,7 +85,7 @@
   7
   8
   9def read_pbp(path, prefix, **kwargs):
- 10    """Read pbp format from given folder structure. Returns a list of length nrw
+ 10    """Read pbp format from given folder structure. Returns a list of length nrw
  11
  12    Parameters
  13    ----------
@@ -214,7 +214,7 @@
     
 10def read_pbp(path, prefix, **kwargs):
- 11    """Read pbp format from given folder structure. Returns a list of length nrw
+ 11    """Read pbp format from given folder structure. Returns a list of length nrw
  12
  13    Parameters
  14    ----------
diff --git a/docs/pyerrors/input/openQCD.html b/docs/pyerrors/input/openQCD.html
index f42217d3..47527df7 100644
--- a/docs/pyerrors/input/openQCD.html
+++ b/docs/pyerrors/input/openQCD.html
@@ -109,7 +109,7 @@
   13
   14
   15def read_rwms(path, prefix, version='2.0', names=None, **kwargs):
-  16    """Read rwms format from given folder structure. Returns a list of length nrw
+  16    """Read rwms format from given folder structure. Returns a list of length nrw
   17
   18    Parameters
   19    ----------
@@ -328,7 +328,7 @@
  232
  233
  234def extract_t0(path, prefix, dtr_read, xmin, spatial_extent, fit_range=5, **kwargs):
- 235    """Extract t0 from given .ms.dat files. Returns t0 as Obs.
+ 235    """Extract t0 from given .ms.dat files. Returns t0 as Obs.
  236
  237    It is assumed that all boundary effects have
  238    sufficiently decayed at x0=xmin.
@@ -619,7 +619,7 @@
  523
  524
  525def read_qtop(path, prefix, c, dtr_cnfg=1, version="openQCD", **kwargs):
- 526    """Read the topologial charge based on openQCD gradient flow measurements.
+ 526    """Read the topologial charge based on openQCD gradient flow measurements.
  527
  528    Parameters
  529    ----------
@@ -667,7 +667,7 @@
  571
  572
  573def read_gf_coupling(path, prefix, c, dtr_cnfg=1, Zeuthen_flow=True, **kwargs):
- 574    """Read the gradient flow coupling based on sfqcd gradient flow measurements. See 1607.06423 for details.
+ 574    """Read the gradient flow coupling based on sfqcd gradient flow measurements. See 1607.06423 for details.
  575
  576    Note: The current implementation only works for c=0.3 and T=L. The definition of the coupling in 1607.06423 requires projection to topological charge zero which is not done within this function but has to be performed in a separate step.
  577
@@ -739,7 +739,7 @@
  643
  644
  645def _read_flow_obs(path, prefix, c, dtr_cnfg=1, version="openQCD", obspos=0, sum_t=True, **kwargs):
- 646    """Read a flow observable based on openQCD gradient flow measurements.
+ 646    """Read a flow observable based on openQCD gradient flow measurements.
  647
  648    Parameters
  649    ----------
@@ -1011,7 +1011,7 @@
  915
  916
  917def qtop_projection(qtop, target=0):
- 918    """Returns the projection to the topological charge sector defined by target.
+ 918    """Returns the projection to the topological charge sector defined by target.
  919
  920    Parameters
  921    ----------
@@ -1025,7 +1025,7 @@
  929
  930    proj_qtop = []
  931    for n in qtop.deltas:
- 932        proj_qtop.append(np.array([1 if round(qtop.value + q) == target else 0 for q in qtop.deltas[n]]))
+ 932        proj_qtop.append(np.array([1 if round(qtop.r_values[n] + q) == target else 0 for q in qtop.deltas[n]]))
  933
  934    reto = Obs(proj_qtop, qtop.names, idl=[qtop.idl[name] for name in qtop.names])
  935    reto.is_merged = qtop.is_merged
@@ -1033,7 +1033,7 @@
  937
  938
  939def read_qtop_sector(path, prefix, c, target=0, **kwargs):
- 940    """Constructs reweighting factors to a specified topological sector.
+ 940    """Constructs reweighting factors to a specified topological sector.
  941
  942    Parameters
  943    ----------
@@ -1086,7 +1086,7 @@
  990
  991
  992def read_ms5_xsf(path, prefix, qc, corr, sep="r", **kwargs):
- 993    """
+ 993    """
  994    Read data from files in the specified directory with the specified prefix and quark combination extension, and return a `Corr` object containing the data.
  995
  996    Parameters
@@ -1243,7 +1243,7 @@
     
 16def read_rwms(path, prefix, version='2.0', names=None, **kwargs):
- 17    """Read rwms format from given folder structure. Returns a list of length nrw
+ 17    """Read rwms format from given folder structure. Returns a list of length nrw
  18
  19    Parameters
  20    ----------
@@ -1509,7 +1509,7 @@ Print additional information that is useful for debugging.
     
235def extract_t0(path, prefix, dtr_read, xmin, spatial_extent, fit_range=5, **kwargs):
-236    """Extract t0 from given .ms.dat files. Returns t0 as Obs.
+236    """Extract t0 from given .ms.dat files. Returns t0 as Obs.
 237
 238    It is assumed that all boundary effects have
 239    sufficiently decayed at x0=xmin.
@@ -1826,7 +1826,7 @@ If False: The config numbers are assumed to be traj_number // difference
     
526def read_qtop(path, prefix, c, dtr_cnfg=1, version="openQCD", **kwargs):
-527    """Read the topologial charge based on openQCD gradient flow measurements.
+527    """Read the topologial charge based on openQCD gradient flow measurements.
 528
 529    Parameters
 530    ----------
@@ -1934,7 +1934,7 @@ If True, the charge is rounded towards the nearest integer on each config.
     
574def read_gf_coupling(path, prefix, c, dtr_cnfg=1, Zeuthen_flow=True, **kwargs):
-575    """Read the gradient flow coupling based on sfqcd gradient flow measurements. See 1607.06423 for details.
+575    """Read the gradient flow coupling based on sfqcd gradient flow measurements. See 1607.06423 for details.
 576
 577    Note: The current implementation only works for c=0.3 and T=L. The definition of the coupling in 1607.06423 requires projection to topological charge zero which is not done within this function but has to be performed in a separate step.
 578
@@ -2059,7 +2059,7 @@ postfix of the file to read, e.g. '.gfms.dat' for openQCD-files
     
918def qtop_projection(qtop, target=0):
-919    """Returns the projection to the topological charge sector defined by target.
+919    """Returns the projection to the topological charge sector defined by target.
 920
 921    Parameters
 922    ----------
@@ -2073,7 +2073,7 @@ postfix of the file to read, e.g. '.gfms.dat' for openQCD-files
 930
 931    proj_qtop = []
 932    for n in qtop.deltas:
-933        proj_qtop.append(np.array([1 if round(qtop.value + q) == target else 0 for q in qtop.deltas[n]]))
+933        proj_qtop.append(np.array([1 if round(qtop.r_values[n] + q) == target else 0 for q in qtop.deltas[n]]))
 934
 935    reto = Obs(proj_qtop, qtop.names, idl=[qtop.idl[name] for name in qtop.names])
 936    reto.is_merged = qtop.is_merged
@@ -2107,7 +2107,7 @@ Specifies the topological sector to be reweighted to (default 0)
     
940def read_qtop_sector(path, prefix, c, target=0, **kwargs):
-941    """Constructs reweighting factors to a specified topological sector.
+941    """Constructs reweighting factors to a specified topological sector.
 942
 943    Parameters
 944    ----------
@@ -2219,7 +2219,7 @@ for version=='sfqcd' If False, the Wilson flow is used.
     
 993def read_ms5_xsf(path, prefix, qc, corr, sep="r", **kwargs):
- 994    """
+ 994    """
  995    Read data from files in the specified directory with the specified prefix and quark combination extension, and return a `Corr` object containing the data.
  996
  997    Parameters
diff --git a/docs/pyerrors/input/pandas.html b/docs/pyerrors/input/pandas.html
index 84c5396c..201598ba 100644
--- a/docs/pyerrors/input/pandas.html
+++ b/docs/pyerrors/input/pandas.html
@@ -95,7 +95,7 @@
   8
   9
  10def to_sql(df, table_name, db, if_exists='fail', gz=True, **kwargs):
- 11    """Write DataFrame including Obs or Corr valued columns to sqlite database.
+ 11    """Write DataFrame including Obs or Corr valued columns to sqlite database.
  12
  13    Parameters
  14    ----------
@@ -117,7 +117,7 @@
  30
  31
  32def read_sql(sql, db, auto_gamma=False, **kwargs):
- 33    """Execute SQL query on sqlite database and obtain DataFrame including Obs or Corr valued columns.
+ 33    """Execute SQL query on sqlite database and obtain DataFrame including Obs or Corr valued columns.
  34
  35    Parameters
  36    ----------
@@ -136,7 +136,7 @@
  49
  50
  51def dump_df(df, fname, gz=True):
- 52    """Exports a pandas DataFrame containing Obs valued columns to a (gzipped) csv file.
+ 52    """Exports a pandas DataFrame containing Obs valued columns to a (gzipped) csv file.
  53
  54    Before making use of pandas to_csv functionality Obs objects are serialized via the standardized
  55    json format of pyerrors.
@@ -164,7 +164,7 @@
  77
  78
  79def load_df(fname, auto_gamma=False, gz=True):
- 80    """Imports a pandas DataFrame from a csv.(gz) file in which Obs objects are serialized as json strings.
+ 80    """Imports a pandas DataFrame from a csv.(gz) file in which Obs objects are serialized as json strings.
  81
  82    Parameters
  83    ----------
@@ -193,7 +193,7 @@
 106
 107
 108def _serialize_df(df, gz=False):
-109    """Serializes all Obs or Corr valued columns into json strings according to the pyerrors json specification.
+109    """Serializes all Obs or Corr valued columns into json strings according to the pyerrors json specification.
 110
 111    Parameters
 112    ----------
@@ -212,7 +212,7 @@
 125
 126
 127def _deserialize_df(df, auto_gamma=False):
-128    """Deserializes all pyerrors json strings into Obs or Corr objects according to the pyerrors json specification.
+128    """Deserializes all pyerrors json strings into Obs or Corr objects according to the pyerrors json specification.
 129
 130    Parameters
 131    ----------
@@ -252,7 +252,7 @@
     
11def to_sql(df, table_name, db, if_exists='fail', gz=True, **kwargs):
-12    """Write DataFrame including Obs or Corr valued columns to sqlite database.
+12    """Write DataFrame including Obs or Corr valued columns to sqlite database.
 13
 14    Parameters
 15    ----------
@@ -306,7 +306,7 @@ If True the json strings are gzipped.
     
33def read_sql(sql, db, auto_gamma=False, **kwargs):
-34    """Execute SQL query on sqlite database and obtain DataFrame including Obs or Corr valued columns.
+34    """Execute SQL query on sqlite database and obtain DataFrame including Obs or Corr valued columns.
 35
 36    Parameters
 37    ----------
@@ -354,7 +354,7 @@ the error analysis. Default False.
     
52def dump_df(df, fname, gz=True):
-53    """Exports a pandas DataFrame containing Obs valued columns to a (gzipped) csv file.
+53    """Exports a pandas DataFrame containing Obs valued columns to a (gzipped) csv file.
 54
 55    Before making use of pandas to_csv functionality Obs objects are serialized via the standardized
 56    json format of pyerrors.
@@ -413,7 +413,7 @@ If True, the output is a gzipped csv file. If False, the output is a csv file.
     
             
 80def load_df(fname, auto_gamma=False, gz=True):
- 81    """Imports a pandas DataFrame from a csv.(gz) file in which Obs objects are serialized as json strings.
+ 81    """Imports a pandas DataFrame from a csv.(gz) file in which Obs objects are serialized as json strings.
  82
  83    Parameters
  84    ----------
diff --git a/docs/pyerrors/input/sfcf.html b/docs/pyerrors/input/sfcf.html
index 78ecdf8f..cd146b49 100644
--- a/docs/pyerrors/input/sfcf.html
+++ b/docs/pyerrors/input/sfcf.html
@@ -85,7 +85,7 @@
   7
   8
   9def read_sfcf(path, prefix, name, quarks='.*', corr_type='bi', noffset=0, wf=0, wf2=0, version="1.0c", cfg_separator="n", **kwargs):
- 10    """Read sfcf c format from given folder structure.
+ 10    """Read sfcf c format from given folder structure.
  11
  12    Parameters
  13    ----------
@@ -457,7 +457,7 @@
     
 10def read_sfcf(path, prefix, name, quarks='.*', corr_type='bi', noffset=0, wf=0, wf2=0, version="1.0c", cfg_separator="n", **kwargs):
- 11    """Read sfcf c format from given folder structure.
+ 11    """Read sfcf c format from given folder structure.
  12
  13    Parameters
  14    ----------
diff --git a/docs/pyerrors/input/utils.html b/docs/pyerrors/input/utils.html
index b01c4d88..5433490d 100644
--- a/docs/pyerrors/input/utils.html
+++ b/docs/pyerrors/input/utils.html
@@ -82,7 +82,7 @@
  2
  3
  4def check_idl(idl, che):
- 5    """Checks if list of configurations is contained in an idl
+ 5    """Checks if list of configurations is contained in an idl
  6
  7    Parameters
  8    ----------
@@ -118,7 +118,7 @@
     
 5def check_idl(idl, che):
- 6    """Checks if list of configurations is contained in an idl
+ 6    """Checks if list of configurations is contained in an idl
  7
  8    Parameters
  9    ----------
diff --git a/docs/pyerrors/linalg.html b/docs/pyerrors/linalg.html
index 8227570a..197975db 100644
--- a/docs/pyerrors/linalg.html
+++ b/docs/pyerrors/linalg.html
@@ -109,7 +109,7 @@
   4
   5
   6def matmul(*operands):
-  7    """Matrix multiply all operands.
+  7    """Matrix multiply all operands.
   8
   9    Parameters
  10    ----------
@@ -165,7 +165,7 @@
  60
  61
  62def jack_matmul(*operands):
- 63    """Matrix multiply both operands making use of the jackknife approximation.
+ 63    """Matrix multiply both operands making use of the jackknife approximation.
  64
  65    Parameters
  66    ----------
@@ -226,7 +226,7 @@
 121
 122
 123def einsum(subscripts, *operands):
-124    """Wrapper for numpy.einsum
+124    """Wrapper for numpy.einsum
 125
 126    Parameters
 127    ----------
@@ -300,24 +300,24 @@
 195
 196
 197def inv(x):
-198    """Inverse of Obs or CObs valued matrices."""
+198    """Inverse of Obs or CObs valued matrices."""
 199    return _mat_mat_op(anp.linalg.inv, x)
 200
 201
 202def cholesky(x):
-203    """Cholesky decomposition of Obs valued matrices."""
+203    """Cholesky decomposition of Obs valued matrices."""
 204    if any(isinstance(o, CObs) for o in x.ravel()):
 205        raise Exception("Cholesky decomposition is not implemented for CObs.")
 206    return _mat_mat_op(anp.linalg.cholesky, x)
 207
 208
 209def det(x):
-210    """Determinant of Obs valued matrices."""
+210    """Determinant of Obs valued matrices."""
 211    return _scalar_mat_op(anp.linalg.det, x)
 212
 213
 214def _scalar_mat_op(op, obs, **kwargs):
-215    """Computes the matrix to scalar operation op to a given matrix of Obs."""
+215    """Computes the matrix to scalar operation op to a given matrix of Obs."""
 216    def _mat(x, **kwargs):
 217        dim = int(np.sqrt(len(x)))
 218
@@ -338,7 +338,7 @@
 233
 234
 235def _mat_mat_op(op, obs, **kwargs):
-236    """Computes the matrix to matrix operation op to a given matrix of Obs."""
+236    """Computes the matrix to matrix operation op to a given matrix of Obs."""
 237    # Use real representation to calculate matrix operations for complex matrices
 238    if any(isinstance(o, CObs) for o in obs.ravel()):
 239        A = np.empty_like(obs)
@@ -364,25 +364,25 @@
 259
 260
 261def eigh(obs, **kwargs):
-262    """Computes the eigenvalues and eigenvectors of a given hermitian matrix of Obs according to np.linalg.eigh."""
+262    """Computes the eigenvalues and eigenvectors of a given hermitian matrix of Obs according to np.linalg.eigh."""
 263    w = derived_observable(lambda x, **kwargs: anp.linalg.eigh(x)[0], obs)
 264    v = derived_observable(lambda x, **kwargs: anp.linalg.eigh(x)[1], obs)
 265    return w, v
 266
 267
 268def eig(obs, **kwargs):
-269    """Computes the eigenvalues of a given matrix of Obs according to np.linalg.eig."""
+269    """Computes the eigenvalues of a given matrix of Obs according to np.linalg.eig."""
 270    w = derived_observable(lambda x, **kwargs: anp.real(anp.linalg.eig(x)[0]), obs)
 271    return w
 272
 273
 274def pinv(obs, **kwargs):
-275    """Computes the Moore-Penrose pseudoinverse of a matrix of Obs."""
+275    """Computes the Moore-Penrose pseudoinverse of a matrix of Obs."""
 276    return derived_observable(lambda x, **kwargs: anp.linalg.pinv(x), obs)
 277
 278
 279def svd(obs, **kwargs):
-280    """Computes the singular value decomposition of a matrix of Obs."""
+280    """Computes the singular value decomposition of a matrix of Obs."""
 281    u = derived_observable(lambda x, **kwargs: anp.linalg.svd(x, full_matrices=False)[0], obs)
 282    s = derived_observable(lambda x, **kwargs: anp.linalg.svd(x, full_matrices=False)[1], obs)
 283    vh = derived_observable(lambda x, **kwargs: anp.linalg.svd(x, full_matrices=False)[2], obs)
@@ -403,7 +403,7 @@
     
 7def matmul(*operands):
- 8    """Matrix multiply all operands.
+ 8    """Matrix multiply all operands.
  9
 10    Parameters
 11    ----------
@@ -485,7 +485,7 @@ Obs valued.
     
 63def jack_matmul(*operands):
- 64    """Matrix multiply both operands making use of the jackknife approximation.
+ 64    """Matrix multiply both operands making use of the jackknife approximation.
  65
  66    Parameters
  67    ----------
@@ -572,7 +572,7 @@ Obs valued.
     
124def einsum(subscripts, *operands):
-125    """Wrapper for numpy.einsum
+125    """Wrapper for numpy.einsum
 126
 127    Parameters
 128    ----------
@@ -673,7 +673,7 @@ Obs valued.
     
198def inv(x):
-199    """Inverse of Obs or CObs valued matrices."""
+199    """Inverse of Obs or CObs valued matrices."""
 200    return _mat_mat_op(anp.linalg.inv, x)
 
@@ -695,7 +695,7 @@ Obs valued.
203def cholesky(x):
-204    """Cholesky decomposition of Obs valued matrices."""
+204    """Cholesky decomposition of Obs valued matrices."""
 205    if any(isinstance(o, CObs) for o in x.ravel()):
 206        raise Exception("Cholesky decomposition is not implemented for CObs.")
 207    return _mat_mat_op(anp.linalg.cholesky, x)
@@ -719,7 +719,7 @@ Obs valued.
     
210def det(x):
-211    """Determinant of Obs valued matrices."""
+211    """Determinant of Obs valued matrices."""
 212    return _scalar_mat_op(anp.linalg.det, x)
 
@@ -741,7 +741,7 @@ Obs valued.
262def eigh(obs, **kwargs):
-263    """Computes the eigenvalues and eigenvectors of a given hermitian matrix of Obs according to np.linalg.eigh."""
+263    """Computes the eigenvalues and eigenvectors of a given hermitian matrix of Obs according to np.linalg.eigh."""
 264    w = derived_observable(lambda x, **kwargs: anp.linalg.eigh(x)[0], obs)
 265    v = derived_observable(lambda x, **kwargs: anp.linalg.eigh(x)[1], obs)
 266    return w, v
@@ -765,7 +765,7 @@ Obs valued.
     
269def eig(obs, **kwargs):
-270    """Computes the eigenvalues of a given matrix of Obs according to np.linalg.eig."""
+270    """Computes the eigenvalues of a given matrix of Obs according to np.linalg.eig."""
 271    w = derived_observable(lambda x, **kwargs: anp.real(anp.linalg.eig(x)[0]), obs)
 272    return w
 
@@ -788,7 +788,7 @@ Obs valued.
275def pinv(obs, **kwargs):
-276    """Computes the Moore-Penrose pseudoinverse of a matrix of Obs."""
+276    """Computes the Moore-Penrose pseudoinverse of a matrix of Obs."""
 277    return derived_observable(lambda x, **kwargs: anp.linalg.pinv(x), obs)
 
@@ -810,7 +810,7 @@ Obs valued.
280def svd(obs, **kwargs):
-281    """Computes the singular value decomposition of a matrix of Obs."""
+281    """Computes the singular value decomposition of a matrix of Obs."""
 282    u = derived_observable(lambda x, **kwargs: anp.linalg.svd(x, full_matrices=False)[0], obs)
 283    s = derived_observable(lambda x, **kwargs: anp.linalg.svd(x, full_matrices=False)[1], obs)
 284    vh = derived_observable(lambda x, **kwargs: anp.linalg.svd(x, full_matrices=False)[2], obs)
diff --git a/docs/pyerrors/misc.html b/docs/pyerrors/misc.html
index de71352e..9795eb3a 100644
--- a/docs/pyerrors/misc.html
+++ b/docs/pyerrors/misc.html
@@ -91,7 +91,7 @@
   4
   5
   6def dump_object(obj, name, **kwargs):
-  7    """Dump object into pickle file.
+  7    """Dump object into pickle file.
   8
   9    Parameters
  10    ----------
@@ -111,7 +111,7 @@
  24
  25
  26def load_object(path):
- 27    """Load object from pickle file.
+ 27    """Load object from pickle file.
  28
  29    Parameters
  30    ----------
@@ -123,7 +123,7 @@
  36
  37
  38def pseudo_Obs(value, dvalue, name, samples=1000):
- 39    """Generate an Obs object with given value, dvalue and name for test purposes
+ 39    """Generate an Obs object with given value, dvalue and name for test purposes
  40
  41    Parameters
  42    ----------
@@ -155,7 +155,7 @@
  68
  69
  70def gen_correlated_data(means, cov, name, tau=0.5, samples=1000):
- 71    """ Generate observables with given covariance and autocorrelation times.
+ 71    """ Generate observables with given covariance and autocorrelation times.
  72
  73    Parameters
  74    ----------
@@ -216,7 +216,7 @@
     
 7def dump_object(obj, name, **kwargs):
- 8    """Dump object into pickle file.
+ 8    """Dump object into pickle file.
  9
 10    Parameters
 11    ----------
@@ -264,7 +264,7 @@ specifies a custom path for the file (default '.')
     
27def load_object(path):
-28    """Load object from pickle file.
+28    """Load object from pickle file.
 29
 30    Parameters
 31    ----------
@@ -300,7 +300,7 @@ path to the file
     
39def pseudo_Obs(value, dvalue, name, samples=1000):
-40    """Generate an Obs object with given value, dvalue and name for test purposes
+40    """Generate an Obs object with given value, dvalue and name for test purposes
 41
 42    Parameters
 43    ----------
@@ -362,7 +362,7 @@ number of samples for the Obs (default 1000).
     
 71def gen_correlated_data(means, cov, name, tau=0.5, samples=1000):
- 72    """ Generate observables with given covariance and autocorrelation times.
+ 72    """ Generate observables with given covariance and autocorrelation times.
  73
  74    Parameters
  75    ----------
diff --git a/docs/pyerrors/mpm.html b/docs/pyerrors/mpm.html
index 10afb66b..198fe7e9 100644
--- a/docs/pyerrors/mpm.html
+++ b/docs/pyerrors/mpm.html
@@ -83,7 +83,7 @@
  5
  6
  7def matrix_pencil_method(corrs, k=1, p=None, **kwargs):
- 8    """Matrix pencil method to extract k energy levels from data
+ 8    """Matrix pencil method to extract k energy levels from data
  9
 10    Implementation of the matrix pencil method based on
 11    eq. (2.17) of Y. Hua, T. K. Sarkar, IEEE Trans. Acoust. 38, 814-824 (1990)
@@ -150,7 +150,7 @@
     
 8def matrix_pencil_method(corrs, k=1, p=None, **kwargs):
- 9    """Matrix pencil method to extract k energy levels from data
+ 9    """Matrix pencil method to extract k energy levels from data
 10
 11    Implementation of the matrix pencil method based on
 12    eq. (2.17) of Y. Hua, T. K. Sarkar, IEEE Trans. Acoust. 38, 814-824 (1990)
diff --git a/docs/pyerrors/obs.html b/docs/pyerrors/obs.html
index e526141d..eeba5e51 100644
--- a/docs/pyerrors/obs.html
+++ b/docs/pyerrors/obs.html
@@ -221,7 +221,7 @@
   17
   18
   19class Obs:
-  20    """Class for a general observable.
+  20    """Class for a general observable.
   21
   22    Instances of Obs are the basic objects of a pyerrors error analysis.
   23    They are initialized with a list which contains arrays of samples for
@@ -264,7 +264,7 @@
   60    filter_eps = 1e-10
   61
   62    def __init__(self, samples, names, idl=None, **kwargs):
-  63        """ Initialize Obs object.
+  63        """ Initialize Obs object.
   64
   65        Parameters
   66        ----------
@@ -379,7 +379,7 @@
  175        return self._covobs
  176
  177    def gamma_method(self, **kwargs):
- 178        """Estimate the error and related properties of the Obs.
+ 178        """Estimate the error and related properties of the Obs.
  179
  180        Parameters
  181        ----------
@@ -554,7 +554,7 @@
  350        return
  351
  352    def _calc_gamma(self, deltas, idx, shape, w_max, fft):
- 353        """Calculate Gamma_{AA} from the deltas, which are defined on idx.
+ 353        """Calculate Gamma_{AA} from the deltas, which are defined on idx.
  354           idx is assumed to be a contiguous range (possibly with a stepsize != 1)
  355
  356        Parameters
@@ -587,7 +587,7 @@
  383        return gamma
  384
  385    def details(self, ens_content=True):
- 386        """Output detailed properties of the Obs.
+ 386        """Output detailed properties of the Obs.
  387
  388        Parameters
  389        ----------
@@ -659,7 +659,7 @@
  455            print('\n'.join(my_string_list))
  456
  457    def reweight(self, weight):
- 458        """Reweight the obs with given rewighting factors.
+ 458        """Reweight the obs with given rewighting factors.
  459
  460        Parameters
  461        ----------
@@ -674,7 +674,7 @@
  470        return reweight(weight, [self])[0]
  471
  472    def is_zero_within_error(self, sigma=1):
- 473        """Checks whether the observable is zero within 'sigma' standard errors.
+ 473        """Checks whether the observable is zero within 'sigma' standard errors.
  474
  475        Parameters
  476        ----------
@@ -686,7 +686,7 @@
  482        return self.is_zero() or np.abs(self.value) <= sigma * self._dvalue
  483
  484    def is_zero(self, atol=1e-10):
- 485        """Checks whether the observable is zero within a given tolerance.
+ 485        """Checks whether the observable is zero within a given tolerance.
  486
  487        Parameters
  488        ----------
@@ -696,7 +696,7 @@
  492        return np.isclose(0.0, self.value, 1e-14, atol) and all(np.allclose(0.0, delta, 1e-14, atol) for delta in self.deltas.values()) and all(np.allclose(0.0, delta.errsq(), 1e-14, atol) for delta in self.covobs.values())
  493
  494    def plot_tauint(self, save=None):
- 495        """Plot integrated autocorrelation time for each ensemble.
+ 495        """Plot integrated autocorrelation time for each ensemble.
  496
  497        Parameters
  498        ----------
@@ -736,7 +736,7 @@
  532                fig.savefig(save + "_" + str(e))
  533
  534    def plot_rho(self, save=None):
- 535        """Plot normalized autocorrelation function time for each ensemble.
+ 535        """Plot normalized autocorrelation function time for each ensemble.
  536
  537        Parameters
  538        ----------
@@ -767,7 +767,7 @@
  563                fig.savefig(save + "_" + str(e))
  564
  565    def plot_rep_dist(self):
- 566        """Plot replica distribution for each ensemble with more than one replicum."""
+ 566        """Plot replica distribution for each ensemble with more than one replicum."""
  567        if not hasattr(self, 'e_dvalue'):
  568            raise Exception('Run the gamma method first.')
  569        for e, e_name in enumerate(self.mc_names):
@@ -789,7 +789,7 @@
  585            plt.draw()
  586
  587    def plot_history(self, expand=True):
- 588        """Plot derived Monte Carlo history for each ensemble
+ 588        """Plot derived Monte Carlo history for each ensemble
  589
  590        Parameters
  591        ----------
@@ -821,7 +821,7 @@
  617            plt.draw()
  618
  619    def plot_piechart(self, save=None):
- 620        """Plot piechart which shows the fractional contribution of each
+ 620        """Plot piechart which shows the fractional contribution of each
  621        ensemble to the error and returns a dictionary containing the fractions.
  622
  623        Parameters
@@ -845,7 +845,7 @@
  641        return dict(zip(self.e_names, sizes))
  642
  643    def dump(self, filename, datatype="json.gz", description="", **kwargs):
- 644        """Dump the Obs to a file 'name' of chosen format.
+ 644        """Dump the Obs to a file 'name' of chosen format.
  645
  646        Parameters
  647        ----------
@@ -874,7 +874,7 @@
  670            raise Exception("Unknown datatype " + str(datatype))
  671
  672    def export_jackknife(self):
- 673        """Export jackknife samples from the Obs
+ 673        """Export jackknife samples from the Obs
  674
  675        Returns
  676        -------
@@ -1072,7 +1072,7 @@
  868
  869
  870class CObs:
- 871    """Class for a complex valued observable."""
+ 871    """Class for a complex valued observable."""
  872    __slots__ = ['_real', '_imag', 'tag']
  873
  874    def __init__(self, real, imag=0.0):
@@ -1089,14 +1089,14 @@
  885        return self._imag
  886
  887    def gamma_method(self, **kwargs):
- 888        """Executes the gamma_method for the real and the imaginary part."""
+ 888        """Executes the gamma_method for the real and the imaginary part."""
  889        if isinstance(self.real, Obs):
  890            self.real.gamma_method(**kwargs)
  891        if isinstance(self.imag, Obs):
  892            self.imag.gamma_method(**kwargs)
  893
  894    def is_zero(self):
- 895        """Checks whether both real and imaginary part are zero within machine precision."""
+ 895        """Checks whether both real and imaginary part are zero within machine precision."""
  896        return self.real == 0.0 and self.imag == 0.0
  897
  898    def conjugate(self):
@@ -1183,7 +1183,7 @@
  979
  980
  981def _format_uncertainty(value, dvalue):
- 982    """Creates a string of a value and its error in paranthesis notation, e.g., 13.02(45)"""
+ 982    """Creates a string of a value and its error in paranthesis notation, e.g., 13.02(45)"""
  983    if dvalue == 0.0:
  984        return str(value)
  985    fexp = np.floor(np.log10(dvalue))
@@ -1196,7 +1196,7 @@
  992
  993
  994def _expand_deltas(deltas, idx, shape):
- 995    """Expand deltas defined on idx to a regular, contiguous range, where holes are filled by 0.
+ 995    """Expand deltas defined on idx to a regular, contiguous range, where holes are filled by 0.
  996       If idx is of type range, the deltas are not changed
  997
  998    Parameters
@@ -1218,7 +1218,7 @@
 1014
 1015
 1016def _merge_idx(idl):
-1017    """Returns the union of all lists in idl as sorted list
+1017    """Returns the union of all lists in idl as sorted list
 1018
 1019    Parameters
 1020    ----------
@@ -1245,7 +1245,7 @@
 1041
 1042
 1043def _intersection_idx(idl):
-1044    """Returns the intersection of all lists in idl as sorted list
+1044    """Returns the intersection of all lists in idl as sorted list
 1045
 1046    Parameters
 1047    ----------
@@ -1254,7 +1254,7 @@
 1050    """
 1051
 1052    def _lcm(*args):
-1053        """Returns the lowest common multiple of args.
+1053        """Returns the lowest common multiple of args.
 1054
 1055        From python 3.9 onwards the math library contains an lcm function."""
 1056        return reduce(lambda a, b: a * b // gcd(a, b), args)
@@ -1278,7 +1278,7 @@
 1074
 1075
 1076def _expand_deltas_for_merge(deltas, idx, shape, new_idx):
-1077    """Expand deltas defined on idx to the list of configs that is defined by new_idx.
+1077    """Expand deltas defined on idx to the list of configs that is defined by new_idx.
 1078       New, empty entries are filled by 0. If idx and new_idx are of type range, the smallest
 1079       common divisor of the step sizes is used as new step size.
 1080
@@ -1305,7 +1305,7 @@
 1101
 1102
 1103def _filter_zeroes(deltas, idx, eps=Obs.filter_eps):
-1104    """Filter out all configurations with vanishing fluctuation such that they do not
+1104    """Filter out all configurations with vanishing fluctuation such that they do not
 1105       contribute to the error estimate anymore. Returns the new deltas and
 1106       idx according to the filtering.
 1107       A fluctuation is considered to be vanishing, if it is smaller than eps times
@@ -1334,7 +1334,7 @@
 1130
 1131
 1132def derived_observable(func, data, array_mode=False, **kwargs):
-1133    """Construct a derived Obs according to func(data, **kwargs) using automatic differentiation.
+1133    """Construct a derived Obs according to func(data, **kwargs) using automatic differentiation.
 1134
 1135    Parameters
 1136    ----------
@@ -1514,7 +1514,7 @@
 1310
 1311
 1312def _reduce_deltas(deltas, idx_old, idx_new):
-1313    """Extract deltas defined on idx_old on all configs of idx_new.
+1313    """Extract deltas defined on idx_old on all configs of idx_new.
 1314
 1315    Assumes, that idx_old and idx_new are correctly defined idl, i.e., they
 1316    are ordered in an ascending order.
@@ -1548,7 +1548,7 @@
 1344
 1345
 1346def reweight(weight, obs, **kwargs):
-1347    """Reweight a list of observables.
+1347    """Reweight a list of observables.
 1348
 1349    Parameters
 1350    ----------
@@ -1591,7 +1591,7 @@
 1387
 1388
 1389def correlate(obs_a, obs_b):
-1390    """Correlate two observables.
+1390    """Correlate two observables.
 1391
 1392    Parameters
 1393    ----------
@@ -1608,7 +1608,7 @@
 1404    """
 1405
 1406    if sorted(obs_a.names) != sorted(obs_b.names):
-1407        raise Exception(f"Ensembles do not fit {set(sorted(obs_a.names)) ^ set(sorted(obs_b.names))}")
+1407        raise Exception(f"Ensembles do not fit {set(sorted(obs_a.names)) ^ set(sorted(obs_b.names))}")
 1408    if len(obs_a.cov_names) or len(obs_b.cov_names):
 1409        raise Exception('Error: Not possible to correlate Obs that contain covobs!')
 1410    for name in obs_a.names:
@@ -1635,7 +1635,7 @@
 1431
 1432
 1433def covariance(obs, visualize=False, correlation=False, smooth=None, **kwargs):
-1434    r'''Calculates the error covariance matrix of a set of observables.
+1434    r'''Calculates the error covariance matrix of a set of observables.
 1435
 1436    WARNING: This function should be used with care, especially for observables with support on multiple
 1437             ensembles with differing autocorrelations. See the notes below for details.
@@ -1705,7 +1705,7 @@
 1501
 1502
 1503def _smooth_eigenvalues(corr, E):
-1504    """Eigenvalue smoothing as described in hep-lat/9412087
+1504    """Eigenvalue smoothing as described in hep-lat/9412087
 1505
 1506    corr : np.ndarray
 1507        correlation matrix
@@ -1713,7 +1713,7 @@
 1509        Number of eigenvalues to be left substantially unchanged
 1510    """
 1511    if not (2 < E < corr.shape[0] - 1):
-1512        raise Exception(f"'E' has to be between 2 and the dimension of the correlation matrix minus 1 ({corr.shape[0] - 1}).")
+1512        raise Exception(f"'E' has to be between 2 and the dimension of the correlation matrix minus 1 ({corr.shape[0] - 1}).")
 1513    vals, vec = np.linalg.eigh(corr)
 1514    lambda_min = np.mean(vals[:-E])
 1515    vals[vals < lambda_min] = lambda_min
@@ -1722,7 +1722,7 @@
 1518
 1519
 1520def _covariance_element(obs1, obs2):
-1521    """Estimates the covariance of two Obs objects, neglecting autocorrelations."""
+1521    """Estimates the covariance of two Obs objects, neglecting autocorrelations."""
 1522
 1523    def calc_gamma(deltas1, deltas2, idx1, idx2, new_idx):
 1524        deltas1 = _reduce_deltas(deltas1, idx1, new_idx)
@@ -1782,7 +1782,7 @@
 1578
 1579
 1580def import_jackknife(jacks, name, idl=None):
-1581    """Imports jackknife samples and returns an Obs
+1581    """Imports jackknife samples and returns an Obs
 1582
 1583    Parameters
 1584    ----------
@@ -1802,7 +1802,7 @@
 1598
 1599
 1600def merge_obs(list_of_obs):
-1601    """Combine all observables in list_of_obs into one new observable
+1601    """Combine all observables in list_of_obs into one new observable
 1602
 1603    Parameters
 1604    ----------
@@ -1833,7 +1833,7 @@
 1629
 1630
 1631def cov_Obs(means, cov, name, grad=None):
-1632    """Create an Obs based on mean(s) and a covariance matrix
+1632    """Create an Obs based on mean(s) and a covariance matrix
 1633
 1634    Parameters
 1635    ----------
@@ -1848,7 +1848,7 @@
 1644    """
 1645
 1646    def covobs_to_obs(co):
-1647        """Make an Obs out of a Covobs
+1647        """Make an Obs out of a Covobs
 1648
 1649        Parameters
 1650        ----------
@@ -1889,7 +1889,7 @@
     
 20class Obs:
- 21    """Class for a general observable.
+ 21    """Class for a general observable.
  22
  23    Instances of Obs are the basic objects of a pyerrors error analysis.
  24    They are initialized with a list which contains arrays of samples for
@@ -1932,7 +1932,7 @@
  61    filter_eps = 1e-10
  62
  63    def __init__(self, samples, names, idl=None, **kwargs):
- 64        """ Initialize Obs object.
+ 64        """ Initialize Obs object.
  65
  66        Parameters
  67        ----------
@@ -2047,7 +2047,7 @@
 176        return self._covobs
 177
 178    def gamma_method(self, **kwargs):
-179        """Estimate the error and related properties of the Obs.
+179        """Estimate the error and related properties of the Obs.
 180
 181        Parameters
 182        ----------
@@ -2222,7 +2222,7 @@
 351        return
 352
 353    def _calc_gamma(self, deltas, idx, shape, w_max, fft):
-354        """Calculate Gamma_{AA} from the deltas, which are defined on idx.
+354        """Calculate Gamma_{AA} from the deltas, which are defined on idx.
 355           idx is assumed to be a contiguous range (possibly with a stepsize != 1)
 356
 357        Parameters
@@ -2255,7 +2255,7 @@
 384        return gamma
 385
 386    def details(self, ens_content=True):
-387        """Output detailed properties of the Obs.
+387        """Output detailed properties of the Obs.
 388
 389        Parameters
 390        ----------
@@ -2327,7 +2327,7 @@
 456            print('\n'.join(my_string_list))
 457
 458    def reweight(self, weight):
-459        """Reweight the obs with given rewighting factors.
+459        """Reweight the obs with given rewighting factors.
 460
 461        Parameters
 462        ----------
@@ -2342,7 +2342,7 @@
 471        return reweight(weight, [self])[0]
 472
 473    def is_zero_within_error(self, sigma=1):
-474        """Checks whether the observable is zero within 'sigma' standard errors.
+474        """Checks whether the observable is zero within 'sigma' standard errors.
 475
 476        Parameters
 477        ----------
@@ -2354,7 +2354,7 @@
 483        return self.is_zero() or np.abs(self.value) <= sigma * self._dvalue
 484
 485    def is_zero(self, atol=1e-10):
-486        """Checks whether the observable is zero within a given tolerance.
+486        """Checks whether the observable is zero within a given tolerance.
 487
 488        Parameters
 489        ----------
@@ -2364,7 +2364,7 @@
 493        return np.isclose(0.0, self.value, 1e-14, atol) and all(np.allclose(0.0, delta, 1e-14, atol) for delta in self.deltas.values()) and all(np.allclose(0.0, delta.errsq(), 1e-14, atol) for delta in self.covobs.values())
 494
 495    def plot_tauint(self, save=None):
-496        """Plot integrated autocorrelation time for each ensemble.
+496        """Plot integrated autocorrelation time for each ensemble.
 497
 498        Parameters
 499        ----------
@@ -2404,7 +2404,7 @@
 533                fig.savefig(save + "_" + str(e))
 534
 535    def plot_rho(self, save=None):
-536        """Plot normalized autocorrelation function time for each ensemble.
+536        """Plot normalized autocorrelation function time for each ensemble.
 537
 538        Parameters
 539        ----------
@@ -2435,7 +2435,7 @@
 564                fig.savefig(save + "_" + str(e))
 565
 566    def plot_rep_dist(self):
-567        """Plot replica distribution for each ensemble with more than one replicum."""
+567        """Plot replica distribution for each ensemble with more than one replicum."""
 568        if not hasattr(self, 'e_dvalue'):
 569            raise Exception('Run the gamma method first.')
 570        for e, e_name in enumerate(self.mc_names):
@@ -2457,7 +2457,7 @@
 586            plt.draw()
 587
 588    def plot_history(self, expand=True):
-589        """Plot derived Monte Carlo history for each ensemble
+589        """Plot derived Monte Carlo history for each ensemble
 590
 591        Parameters
 592        ----------
@@ -2489,7 +2489,7 @@
 618            plt.draw()
 619
 620    def plot_piechart(self, save=None):
-621        """Plot piechart which shows the fractional contribution of each
+621        """Plot piechart which shows the fractional contribution of each
 622        ensemble to the error and returns a dictionary containing the fractions.
 623
 624        Parameters
@@ -2513,7 +2513,7 @@
 642        return dict(zip(self.e_names, sizes))
 643
 644    def dump(self, filename, datatype="json.gz", description="", **kwargs):
-645        """Dump the Obs to a file 'name' of chosen format.
+645        """Dump the Obs to a file 'name' of chosen format.
 646
 647        Parameters
 648        ----------
@@ -2542,7 +2542,7 @@
 671            raise Exception("Unknown datatype " + str(datatype))
 672
 673    def export_jackknife(self):
-674        """Export jackknife samples from the Obs
+674        """Export jackknife samples from the Obs
 675
 676        Returns
 677        -------
@@ -2783,7 +2783,7 @@ this overwrites the standard value for that ensemble.
     
 63    def __init__(self, samples, names, idl=None, **kwargs):
- 64        """ Initialize Obs object.
+ 64        """ Initialize Obs object.
  65
  66        Parameters
  67        ----------
@@ -2894,7 +2894,7 @@ list of ranges or lists on which the samples are defined
     
178    def gamma_method(self, **kwargs):
-179        """Estimate the error and related properties of the Obs.
+179        """Estimate the error and related properties of the Obs.
 180
 181        Parameters
 182        ----------
@@ -3106,7 +3106,7 @@ of the autocorrelation function (default True)
     
386    def details(self, ens_content=True):
-387        """Output detailed properties of the Obs.
+387        """Output detailed properties of the Obs.
 388
 389        Parameters
 390        ----------
@@ -3203,7 +3203,7 @@ print details about the ensembles and replica if true.
     
458    def reweight(self, weight):
-459        """Reweight the obs with given rewighting factors.
+459        """Reweight the obs with given rewighting factors.
 460
 461        Parameters
 462        ----------
@@ -3248,7 +3248,7 @@ on the configurations in obs[i].idl. Default False.
     
473    def is_zero_within_error(self, sigma=1):
-474        """Checks whether the observable is zero within 'sigma' standard errors.
+474        """Checks whether the observable is zero within 'sigma' standard errors.
 475
 476        Parameters
 477        ----------
@@ -3286,7 +3286,7 @@ Number of standard errors used for the check.
     
485    def is_zero(self, atol=1e-10):
-486        """Checks whether the observable is zero within a given tolerance.
+486        """Checks whether the observable is zero within a given tolerance.
 487
 488        Parameters
 489        ----------
@@ -3321,7 +3321,7 @@ Absolute tolerance (for details see numpy documentation).
     
495    def plot_tauint(self, save=None):
-496        """Plot integrated autocorrelation time for each ensemble.
+496        """Plot integrated autocorrelation time for each ensemble.
 497
 498        Parameters
 499        ----------
@@ -3386,7 +3386,7 @@ saves the figure to a file named 'save' if.
     
535    def plot_rho(self, save=None):
-536        """Plot normalized autocorrelation function time for each ensemble.
+536        """Plot normalized autocorrelation function time for each ensemble.
 537
 538        Parameters
 539        ----------
@@ -3442,7 +3442,7 @@ saves the figure to a file named 'save' if.
     
566    def plot_rep_dist(self):
-567        """Plot replica distribution for each ensemble with more than one replicum."""
+567        """Plot replica distribution for each ensemble with more than one replicum."""
 568        if not hasattr(self, 'e_dvalue'):
 569            raise Exception('Run the gamma method first.')
 570        for e, e_name in enumerate(self.mc_names):
@@ -3482,7 +3482,7 @@ saves the figure to a file named 'save' if.
     
588    def plot_history(self, expand=True):
-589        """Plot derived Monte Carlo history for each ensemble
+589        """Plot derived Monte Carlo history for each ensemble
 590
 591        Parameters
 592        ----------
@@ -3539,7 +3539,7 @@ show expanded history for irregular Monte Carlo chains (default: True).
     
620    def plot_piechart(self, save=None):
-621        """Plot piechart which shows the fractional contribution of each
+621        """Plot piechart which shows the fractional contribution of each
 622        ensemble to the error and returns a dictionary containing the fractions.
 623
 624        Parameters
@@ -3589,7 +3589,7 @@ saves the figure to a file named 'save' if.
     
644    def dump(self, filename, datatype="json.gz", description="", **kwargs):
-645        """Dump the Obs to a file 'name' of chosen format.
+645        """Dump the Obs to a file 'name' of chosen format.
 646
 647        Parameters
 648        ----------
@@ -3650,7 +3650,7 @@ specifies a custom path for the file (default '.')
     
673    def export_jackknife(self):
-674        """Export jackknife samples from the Obs
+674        """Export jackknife samples from the Obs
 675
 676        Returns
 677        -------
@@ -3991,7 +3991,7 @@ should agree with samples from a full jackknife analysis up to O(1/N).
     
871class CObs:
-872    """Class for a complex valued observable."""
+872    """Class for a complex valued observable."""
 873    __slots__ = ['_real', '_imag', 'tag']
 874
 875    def __init__(self, real, imag=0.0):
@@ -4008,14 +4008,14 @@ should agree with samples from a full jackknife analysis up to O(1/N).
 886        return self._imag
 887
 888    def gamma_method(self, **kwargs):
-889        """Executes the gamma_method for the real and the imaginary part."""
+889        """Executes the gamma_method for the real and the imaginary part."""
 890        if isinstance(self.real, Obs):
 891            self.real.gamma_method(**kwargs)
 892        if isinstance(self.imag, Obs):
 893            self.imag.gamma_method(**kwargs)
 894
 895    def is_zero(self):
-896        """Checks whether both real and imaginary part are zero within machine precision."""
+896        """Checks whether both real and imaginary part are zero within machine precision."""
 897        return self.real == 0.0 and self.imag == 0.0
 898
 899    def conjugate(self):
@@ -4138,7 +4138,7 @@ should agree with samples from a full jackknife analysis up to O(1/N).
     
888    def gamma_method(self, **kwargs):
-889        """Executes the gamma_method for the real and the imaginary part."""
+889        """Executes the gamma_method for the real and the imaginary part."""
 890        if isinstance(self.real, Obs):
 891            self.real.gamma_method(**kwargs)
 892        if isinstance(self.imag, Obs):
@@ -4163,7 +4163,7 @@ should agree with samples from a full jackknife analysis up to O(1/N).
     
895    def is_zero(self):
-896        """Checks whether both real and imaginary part are zero within machine precision."""
+896        """Checks whether both real and imaginary part are zero within machine precision."""
 897        return self.real == 0.0 and self.imag == 0.0
 
@@ -4205,7 +4205,7 @@ should agree with samples from a full jackknife analysis up to O(1/N).
1133def derived_observable(func, data, array_mode=False, **kwargs):
-1134    """Construct a derived Obs according to func(data, **kwargs) using automatic differentiation.
+1134    """Construct a derived Obs according to func(data, **kwargs) using automatic differentiation.
 1135
 1136    Parameters
 1137    ----------
@@ -4429,7 +4429,7 @@ functions. For the ratio of two observables one can e.g. use

1347def reweight(weight, obs, **kwargs):
-1348    """Reweight a list of observables.
+1348    """Reweight a list of observables.
 1349
 1350    Parameters
 1351    ----------
@@ -4503,7 +4503,7 @@ on the configurations in obs[i].idl. Default False.
     
1390def correlate(obs_a, obs_b):
-1391    """Correlate two observables.
+1391    """Correlate two observables.
 1392
 1393    Parameters
 1394    ----------
@@ -4520,7 +4520,7 @@ on the configurations in obs[i].idl. Default False.
 1405    """
 1406
 1407    if sorted(obs_a.names) != sorted(obs_b.names):
-1408        raise Exception(f"Ensembles do not fit {set(sorted(obs_a.names)) ^ set(sorted(obs_b.names))}")
+1408        raise Exception(f"Ensembles do not fit {set(sorted(obs_a.names)) ^ set(sorted(obs_b.names))}")
 1409    if len(obs_a.cov_names) or len(obs_b.cov_names):
 1410        raise Exception('Error: Not possible to correlate Obs that contain covobs!')
 1411    for name in obs_a.names:
@@ -4579,7 +4579,7 @@ Currently only works if ensembles are identical (this is not strictly necessary)
     
1434def covariance(obs, visualize=False, correlation=False, smooth=None, **kwargs):
-1435    r'''Calculates the error covariance matrix of a set of observables.
+1435    r'''Calculates the error covariance matrix of a set of observables.
 1436
 1437    WARNING: This function should be used with care, especially for observables with support on multiple
 1438             ensembles with differing autocorrelations. See the notes below for details.
@@ -4698,7 +4698,7 @@ This construction ensures that the estimated covariance matrix is positive semi-
     
1581def import_jackknife(jacks, name, idl=None):
-1582    """Imports jackknife samples and returns an Obs
+1582    """Imports jackknife samples and returns an Obs
 1583
 1584    Parameters
 1585    ----------
@@ -4745,7 +4745,7 @@ name of the ensemble the samples are defined on.
     
1601def merge_obs(list_of_obs):
-1602    """Combine all observables in list_of_obs into one new observable
+1602    """Combine all observables in list_of_obs into one new observable
 1603
 1604    Parameters
 1605    ----------
@@ -4804,7 +4804,7 @@ list of the Obs object to be combined
     
1632def cov_Obs(means, cov, name, grad=None):
-1633    """Create an Obs based on mean(s) and a covariance matrix
+1633    """Create an Obs based on mean(s) and a covariance matrix
 1634
 1635    Parameters
 1636    ----------
@@ -4819,7 +4819,7 @@ list of the Obs object to be combined
 1645    """
 1646
 1647    def covobs_to_obs(co):
-1648        """Make an Obs out of a Covobs
+1648        """Make an Obs out of a Covobs
 1649
 1650        Parameters
 1651        ----------
diff --git a/docs/pyerrors/roots.html b/docs/pyerrors/roots.html
index dfad773c..d61fc364 100644
--- a/docs/pyerrors/roots.html
+++ b/docs/pyerrors/roots.html
@@ -83,7 +83,7 @@
  5
  6
  7def find_root(d, func, guess=1.0, **kwargs):
- 8    r'''Finds the root of the function func(x, d) where d is an `Obs`.
+ 8    r'''Finds the root of the function func(x, d) where d is an `Obs`.
  9
 10    Parameters
 11    -----------------
@@ -133,7 +133,7 @@
     
 8def find_root(d, func, guess=1.0, **kwargs):
- 9    r'''Finds the root of the function func(x, d) where d is an `Obs`.
+ 9    r'''Finds the root of the function func(x, d) where d is an `Obs`.
 10
 11    Parameters
 12    -----------------