Documentation updated

This commit is contained in:
fjosw 2021-11-07 21:45:25 +00:00
parent bf3eda40c2
commit eec13a754e
9 changed files with 744 additions and 670 deletions

View file

@ -113,15 +113,15 @@
<li>
<a class="variable" href="#Obs.e_content">e_content</a>
</li>
<li>
<a class="function" href="#Obs.gamma_method">gamma_method</a>
</li>
<li>
<a class="function" href="#Obs.expand_deltas">expand_deltas</a>
</li>
<li>
<a class="function" href="#Obs.calc_gamma">calc_gamma</a>
</li>
<li>
<a class="function" href="#Obs.gamma_method">gamma_method</a>
</li>
<li>
<a class="function" href="#Obs.print">print</a>
</li>
@ -382,7 +382,7 @@
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">samples</span><span class="p">,</span> <span class="n">names</span><span class="p">,</span> <span class="n">idl</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">means</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot; Initialize Obs object.</span>
<span class="sd"> Attributes</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> samples : list</span>
<span class="sd"> list of numpy arrays containing the Monte Carlo samples</span>
@ -479,57 +479,11 @@
<span class="n">res</span><span class="p">[</span><span class="n">e_name</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">e_name</span><span class="p">)</span>
<span class="k">return</span> <span class="n">res</span>
<span class="k">def</span> <span class="nf">expand_deltas</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">deltas</span><span class="p">,</span> <span class="n">idx</span><span class="p">,</span> <span class="n">shape</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Expand deltas defined on idx to a regular, contiguous range, where holes are filled by 0.</span>
<span class="sd"> If idx is of type range, the deltas are not changed</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> deltas -- List of fluctuations</span>
<span class="sd"> idx -- List or range of configs on which the deltas are defined.</span>
<span class="sd"> shape -- Number of configs in idx.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">idx</span><span class="p">)</span> <span class="ow">is</span> <span class="nb">range</span><span class="p">:</span>
<span class="k">return</span> <span class="n">deltas</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">ret</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="n">idx</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">-</span> <span class="n">idx</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span>
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">shape</span><span class="p">):</span>
<span class="n">ret</span><span class="p">[</span><span class="n">idx</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">-</span> <span class="n">idx</span><span class="p">[</span><span class="mi">0</span><span class="p">]]</span> <span class="o">=</span> <span class="n">deltas</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
<span class="k">return</span> <span class="n">ret</span>
<span class="k">def</span> <span class="nf">calc_gamma</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">deltas</span><span class="p">,</span> <span class="n">idx</span><span class="p">,</span> <span class="n">shape</span><span class="p">,</span> <span class="n">w_max</span><span class="p">,</span> <span class="n">fft</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Calculate Gamma_{AA} from the deltas, which are defined on idx.</span>
<span class="sd"> idx is assumed to be a contiguous range (possibly with a stepsize != 1)</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> deltas -- List of fluctuations</span>
<span class="sd"> idx -- List or range of configs on which the deltas are defined.</span>
<span class="sd"> shape -- Number of configs in idx.</span>
<span class="sd"> w_max -- Upper bound for the summation window</span>
<span class="sd"> fft -- boolean, which determines whether the fft algorithm is used for</span>
<span class="sd"> the computation of the autocorrelation function</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">gamma</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="n">w_max</span><span class="p">)</span>
<span class="n">deltas</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expand_deltas</span><span class="p">(</span><span class="n">deltas</span><span class="p">,</span> <span class="n">idx</span><span class="p">,</span> <span class="n">shape</span><span class="p">)</span>
<span class="n">new_shape</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">deltas</span><span class="p">)</span>
<span class="k">if</span> <span class="n">fft</span><span class="p">:</span>
<span class="n">max_gamma</span> <span class="o">=</span> <span class="nb">min</span><span class="p">(</span><span class="n">new_shape</span><span class="p">,</span> <span class="n">w_max</span><span class="p">)</span>
<span class="c1"># The padding for the fft has to be even</span>
<span class="n">padding</span> <span class="o">=</span> <span class="n">new_shape</span> <span class="o">+</span> <span class="n">max_gamma</span> <span class="o">+</span> <span class="p">(</span><span class="n">new_shape</span> <span class="o">+</span> <span class="n">max_gamma</span><span class="p">)</span> <span class="o">%</span> <span class="mi">2</span>
<span class="n">gamma</span><span class="p">[:</span><span class="n">max_gamma</span><span class="p">]</span> <span class="o">+=</span> <span class="n">np</span><span class="o">.</span><span class="n">fft</span><span class="o">.</span><span class="n">irfft</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">abs</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">fft</span><span class="o">.</span><span class="n">rfft</span><span class="p">(</span><span class="n">deltas</span><span class="p">,</span> <span class="n">padding</span><span class="p">))</span> <span class="o">**</span> <span class="mi">2</span><span class="p">)[:</span><span class="n">max_gamma</span><span class="p">]</span>
<span class="k">else</span><span class="p">:</span>
<span class="k">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">w_max</span><span class="p">):</span>
<span class="k">if</span> <span class="n">new_shape</span> <span class="o">-</span> <span class="n">n</span> <span class="o">&gt;=</span> <span class="mi">0</span><span class="p">:</span>
<span class="n">gamma</span><span class="p">[</span><span class="n">n</span><span class="p">]</span> <span class="o">+=</span> <span class="n">deltas</span><span class="p">[</span><span class="mi">0</span><span class="p">:</span><span class="n">new_shape</span> <span class="o">-</span> <span class="n">n</span><span class="p">]</span><span class="o">.</span><span class="n">dot</span><span class="p">(</span><span class="n">deltas</span><span class="p">[</span><span class="n">n</span><span class="p">:</span><span class="n">new_shape</span><span class="p">])</span>
<span class="k">return</span> <span class="n">gamma</span>
<span class="k">def</span> <span class="nf">gamma_method</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Calculate the error and related properties of the Obs.</span>
<span class="sd"> Keyword arguments</span>
<span class="sd"> -----------------</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> S : float</span>
<span class="sd"> specifies a custom value for the parameter S (default 2.0), can be</span>
<span class="sd"> a float or an array of floats for different ensembles</span>
@ -707,6 +661,52 @@
<span class="bp">self</span><span class="o">.</span><span class="n">ddvalue</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">ddvalue</span><span class="p">)</span> <span class="o">/</span> <span class="bp">self</span><span class="o">.</span><span class="n">dvalue</span>
<span class="k">return</span>
<span class="k">def</span> <span class="nf">expand_deltas</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">deltas</span><span class="p">,</span> <span class="n">idx</span><span class="p">,</span> <span class="n">shape</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Expand deltas defined on idx to a regular, contiguous range, where holes are filled by 0.</span>
<span class="sd"> If idx is of type range, the deltas are not changed</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> deltas -- List of fluctuations</span>
<span class="sd"> idx -- List or range of configs on which the deltas are defined.</span>
<span class="sd"> shape -- Number of configs in idx.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">idx</span><span class="p">)</span> <span class="ow">is</span> <span class="nb">range</span><span class="p">:</span>
<span class="k">return</span> <span class="n">deltas</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">ret</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="n">idx</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">-</span> <span class="n">idx</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span>
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">shape</span><span class="p">):</span>
<span class="n">ret</span><span class="p">[</span><span class="n">idx</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">-</span> <span class="n">idx</span><span class="p">[</span><span class="mi">0</span><span class="p">]]</span> <span class="o">=</span> <span class="n">deltas</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
<span class="k">return</span> <span class="n">ret</span>
<span class="k">def</span> <span class="nf">calc_gamma</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">deltas</span><span class="p">,</span> <span class="n">idx</span><span class="p">,</span> <span class="n">shape</span><span class="p">,</span> <span class="n">w_max</span><span class="p">,</span> <span class="n">fft</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Calculate Gamma_{AA} from the deltas, which are defined on idx.</span>
<span class="sd"> idx is assumed to be a contiguous range (possibly with a stepsize != 1)</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> deltas -- List of fluctuations</span>
<span class="sd"> idx -- List or range of configs on which the deltas are defined.</span>
<span class="sd"> shape -- Number of configs in idx.</span>
<span class="sd"> w_max -- Upper bound for the summation window</span>
<span class="sd"> fft -- boolean, which determines whether the fft algorithm is used for</span>
<span class="sd"> the computation of the autocorrelation function</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">gamma</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="n">w_max</span><span class="p">)</span>
<span class="n">deltas</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expand_deltas</span><span class="p">(</span><span class="n">deltas</span><span class="p">,</span> <span class="n">idx</span><span class="p">,</span> <span class="n">shape</span><span class="p">)</span>
<span class="n">new_shape</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">deltas</span><span class="p">)</span>
<span class="k">if</span> <span class="n">fft</span><span class="p">:</span>
<span class="n">max_gamma</span> <span class="o">=</span> <span class="nb">min</span><span class="p">(</span><span class="n">new_shape</span><span class="p">,</span> <span class="n">w_max</span><span class="p">)</span>
<span class="c1"># The padding for the fft has to be even</span>
<span class="n">padding</span> <span class="o">=</span> <span class="n">new_shape</span> <span class="o">+</span> <span class="n">max_gamma</span> <span class="o">+</span> <span class="p">(</span><span class="n">new_shape</span> <span class="o">+</span> <span class="n">max_gamma</span><span class="p">)</span> <span class="o">%</span> <span class="mi">2</span>
<span class="n">gamma</span><span class="p">[:</span><span class="n">max_gamma</span><span class="p">]</span> <span class="o">+=</span> <span class="n">np</span><span class="o">.</span><span class="n">fft</span><span class="o">.</span><span class="n">irfft</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">abs</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">fft</span><span class="o">.</span><span class="n">rfft</span><span class="p">(</span><span class="n">deltas</span><span class="p">,</span> <span class="n">padding</span><span class="p">))</span> <span class="o">**</span> <span class="mi">2</span><span class="p">)[:</span><span class="n">max_gamma</span><span class="p">]</span>
<span class="k">else</span><span class="p">:</span>
<span class="k">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">w_max</span><span class="p">):</span>
<span class="k">if</span> <span class="n">new_shape</span> <span class="o">-</span> <span class="n">n</span> <span class="o">&gt;=</span> <span class="mi">0</span><span class="p">:</span>
<span class="n">gamma</span><span class="p">[</span><span class="n">n</span><span class="p">]</span> <span class="o">+=</span> <span class="n">deltas</span><span class="p">[</span><span class="mi">0</span><span class="p">:</span><span class="n">new_shape</span> <span class="o">-</span> <span class="n">n</span><span class="p">]</span><span class="o">.</span><span class="n">dot</span><span class="p">(</span><span class="n">deltas</span><span class="p">[</span><span class="n">n</span><span class="p">:</span><span class="n">new_shape</span><span class="p">])</span>
<span class="k">return</span> <span class="n">gamma</span>
<span class="k">def</span> <span class="nf">print</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">level</span><span class="o">=</span><span class="mi">1</span><span class="p">):</span>
<span class="n">warnings</span><span class="o">.</span><span class="n">warn</span><span class="p">(</span><span class="s2">&quot;Method &#39;print&#39; renamed to &#39;details&#39;&quot;</span><span class="p">,</span> <span class="ne">DeprecationWarning</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">details</span><span class="p">(</span><span class="n">level</span> <span class="o">&gt;</span> <span class="mi">1</span><span class="p">)</span>
@ -868,9 +868,10 @@
<span class="k">def</span> <span class="nf">dump</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Dump the Obs to a pickle file &#39;name&#39;.</span>
<span class="sd"> Keyword arguments</span>
<span class="sd"> -----------------</span>
<span class="sd"> path -- specifies a custom path for the file (default &#39;.&#39;)</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> path : str</span>
<span class="sd"> specifies a custom path for the file (default &#39;.&#39;)</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">if</span> <span class="s1">&#39;path&#39;</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
<span class="n">file_name</span> <span class="o">=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;path&#39;</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;/&#39;</span> <span class="o">+</span> <span class="n">name</span> <span class="o">+</span> <span class="s1">&#39;.p&#39;</span>
@ -1165,7 +1166,8 @@
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> idl -- List of lists or ranges.</span>
<span class="sd"> idl : list</span>
<span class="sd"> List of lists or ranges.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="c1"># Use groupby to efficiently check whether all elements of idl are identical</span>
@ -1222,14 +1224,15 @@
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> names -- List of names</span>
<span class="sd"> deltas -- Dict lists of fluctuations</span>
<span class="sd"> idx -- Dict of lists or ranges of configs on which the deltas are defined.</span>
<span class="sd"> Has to be a subset of new_idx.</span>
<span class="sd"> Optional parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> eps -- Prefactor that enters the filter criterion.</span>
<span class="sd"> names : list</span>
<span class="sd"> List of names</span>
<span class="sd"> deltas : dict</span>
<span class="sd"> Dict lists of fluctuations</span>
<span class="sd"> idx : dict</span>
<span class="sd"> Dict of lists or ranges of configs on which the deltas are defined.</span>
<span class="sd"> Has to be a subset of new_idx.</span>
<span class="sd"> eps : float</span>
<span class="sd"> Prefactor that enters the filter criterion.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">new_names</span> <span class="o">=</span> <span class="p">[]</span>
<span class="n">new_deltas</span> <span class="o">=</span> <span class="p">{}</span>
@ -1260,9 +1263,6 @@
<span class="sd"> the autograd wrapper (use &#39;import autograd.numpy as anp&#39;).</span>
<span class="sd"> data : list</span>
<span class="sd"> list of Obs, e.g. [obs1, obs2, obs3].</span>
<span class="sd"> Keyword arguments</span>
<span class="sd"> -----------------</span>
<span class="sd"> num_grad : bool</span>
<span class="sd"> if True, numerical derivatives are used instead of autograd</span>
<span class="sd"> (default False). To control the numerical differentiation the</span>
@ -1401,10 +1401,13 @@
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> deltas -- List of fluctuations</span>
<span class="sd"> idx_old -- List or range of configs on which the deltas are defined</span>
<span class="sd"> idx_new -- List of configs for which we want to extract the deltas.</span>
<span class="sd"> Has to be a subset of idx_old.</span>
<span class="sd"> deltas : list</span>
<span class="sd"> List of fluctuations</span>
<span class="sd"> idx_old : list</span>
<span class="sd"> List or range of configs on which the deltas are defined</span>
<span class="sd"> idx_new : list</span>
<span class="sd"> List of configs for which we want to extract the deltas.</span>
<span class="sd"> Has to be a subset of idx_old.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">if</span> <span class="ow">not</span> <span class="nb">len</span><span class="p">(</span><span class="n">deltas</span><span class="p">)</span> <span class="o">==</span> <span class="nb">len</span><span class="p">(</span><span class="n">idx_old</span><span class="p">):</span>
<span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;Lenght of deltas and idx_old have to be the same: </span><span class="si">%d</span><span class="s1"> != </span><span class="si">%d</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">deltas</span><span class="p">),</span> <span class="nb">len</span><span class="p">(</span><span class="n">idx_old</span><span class="p">)))</span>
@ -1438,9 +1441,6 @@
<span class="sd"> configurations in obs[i].idl for all i.</span>
<span class="sd"> obs : list</span>
<span class="sd"> list of Obs, e.g. [obs1, obs2, obs3].</span>
<span class="sd"> Keyword arguments</span>
<span class="sd"> -----------------</span>
<span class="sd"> all_configs : bool</span>
<span class="sd"> if True, the reweighted observables are normalized by the average of</span>
<span class="sd"> the reweighting factor on all configurations in weight.idl and not</span>
@ -1475,8 +1475,8 @@
<span class="k">def</span> <span class="nf">correlate</span><span class="p">(</span><span class="n">obs_a</span><span class="p">,</span> <span class="n">obs_b</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Correlate two observables.</span>
<span class="sd"> Attributes:</span>
<span class="sd"> -----------</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> obs_a : Obs</span>
<span class="sd"> First observable</span>
<span class="sd"> obs_b : Obs</span>
@ -1522,10 +1522,11 @@
<span class="sd"> is constrained to the maximum value in order to make sure that covariance</span>
<span class="sd"> matrices are positive semidefinite.</span>
<span class="sd"> Keyword arguments</span>
<span class="sd"> -----------------</span>
<span class="sd"> correlation -- if true the correlation instead of the covariance is</span>
<span class="sd"> returned (default False)</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> correlation : bool</span>
<span class="sd"> if true the correlation instead of the covariance is</span>
<span class="sd"> returned (default False)</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="nb">sorted</span><span class="p">(</span><span class="nb">set</span><span class="p">(</span><span class="n">obs1</span><span class="o">.</span><span class="n">names</span> <span class="o">+</span> <span class="n">obs2</span><span class="o">.</span><span class="n">names</span><span class="p">)):</span>
@ -1779,9 +1780,14 @@
<span class="k">def</span> <span class="nf">dump_object</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Dump object into pickle file.</span>
<span class="sd"> Keyword arguments</span>
<span class="sd"> -----------------</span>
<span class="sd"> path -- specifies a custom path for the file (default &#39;.&#39;)</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> obj : object</span>
<span class="sd"> object to be saved in the pickle file</span>
<span class="sd"> name : str</span>
<span class="sd"> name of the file</span>
<span class="sd"> path : str</span>
<span class="sd"> specifies a custom path for the file (default &#39;.&#39;)</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">if</span> <span class="s1">&#39;path&#39;</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
<span class="n">file_name</span> <span class="o">=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;path&#39;</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;/&#39;</span> <span class="o">+</span> <span class="n">name</span> <span class="o">+</span> <span class="s1">&#39;.p&#39;</span>
@ -1800,6 +1806,11 @@
<span class="k">def</span> <span class="nf">merge_obs</span><span class="p">(</span><span class="n">list_of_obs</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Combine all observables in list_of_obs into one new observable</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> list_of_obs : list</span>
<span class="sd"> list of the Obs object to be combined</span>
<span class="sd"> It is not possible to combine obs which are based on the same replicum</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">replist</span> <span class="o">=</span> <span class="p">[</span><span class="n">item</span> <span class="k">for</span> <span class="n">obs</span> <span class="ow">in</span> <span class="n">list_of_obs</span> <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">obs</span><span class="o">.</span><span class="n">names</span><span class="p">]</span>
@ -1875,7 +1886,7 @@
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">samples</span><span class="p">,</span> <span class="n">names</span><span class="p">,</span> <span class="n">idl</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">means</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot; Initialize Obs object.</span>
<span class="sd"> Attributes</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> samples : list</span>
<span class="sd"> list of numpy arrays containing the Monte Carlo samples</span>
@ -1972,57 +1983,11 @@
<span class="n">res</span><span class="p">[</span><span class="n">e_name</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">e_name</span><span class="p">)</span>
<span class="k">return</span> <span class="n">res</span>
<span class="k">def</span> <span class="nf">expand_deltas</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">deltas</span><span class="p">,</span> <span class="n">idx</span><span class="p">,</span> <span class="n">shape</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Expand deltas defined on idx to a regular, contiguous range, where holes are filled by 0.</span>
<span class="sd"> If idx is of type range, the deltas are not changed</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> deltas -- List of fluctuations</span>
<span class="sd"> idx -- List or range of configs on which the deltas are defined.</span>
<span class="sd"> shape -- Number of configs in idx.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">idx</span><span class="p">)</span> <span class="ow">is</span> <span class="nb">range</span><span class="p">:</span>
<span class="k">return</span> <span class="n">deltas</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">ret</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="n">idx</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">-</span> <span class="n">idx</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span>
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">shape</span><span class="p">):</span>
<span class="n">ret</span><span class="p">[</span><span class="n">idx</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">-</span> <span class="n">idx</span><span class="p">[</span><span class="mi">0</span><span class="p">]]</span> <span class="o">=</span> <span class="n">deltas</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
<span class="k">return</span> <span class="n">ret</span>
<span class="k">def</span> <span class="nf">calc_gamma</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">deltas</span><span class="p">,</span> <span class="n">idx</span><span class="p">,</span> <span class="n">shape</span><span class="p">,</span> <span class="n">w_max</span><span class="p">,</span> <span class="n">fft</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Calculate Gamma_{AA} from the deltas, which are defined on idx.</span>
<span class="sd"> idx is assumed to be a contiguous range (possibly with a stepsize != 1)</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> deltas -- List of fluctuations</span>
<span class="sd"> idx -- List or range of configs on which the deltas are defined.</span>
<span class="sd"> shape -- Number of configs in idx.</span>
<span class="sd"> w_max -- Upper bound for the summation window</span>
<span class="sd"> fft -- boolean, which determines whether the fft algorithm is used for</span>
<span class="sd"> the computation of the autocorrelation function</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">gamma</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="n">w_max</span><span class="p">)</span>
<span class="n">deltas</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expand_deltas</span><span class="p">(</span><span class="n">deltas</span><span class="p">,</span> <span class="n">idx</span><span class="p">,</span> <span class="n">shape</span><span class="p">)</span>
<span class="n">new_shape</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">deltas</span><span class="p">)</span>
<span class="k">if</span> <span class="n">fft</span><span class="p">:</span>
<span class="n">max_gamma</span> <span class="o">=</span> <span class="nb">min</span><span class="p">(</span><span class="n">new_shape</span><span class="p">,</span> <span class="n">w_max</span><span class="p">)</span>
<span class="c1"># The padding for the fft has to be even</span>
<span class="n">padding</span> <span class="o">=</span> <span class="n">new_shape</span> <span class="o">+</span> <span class="n">max_gamma</span> <span class="o">+</span> <span class="p">(</span><span class="n">new_shape</span> <span class="o">+</span> <span class="n">max_gamma</span><span class="p">)</span> <span class="o">%</span> <span class="mi">2</span>
<span class="n">gamma</span><span class="p">[:</span><span class="n">max_gamma</span><span class="p">]</span> <span class="o">+=</span> <span class="n">np</span><span class="o">.</span><span class="n">fft</span><span class="o">.</span><span class="n">irfft</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">abs</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">fft</span><span class="o">.</span><span class="n">rfft</span><span class="p">(</span><span class="n">deltas</span><span class="p">,</span> <span class="n">padding</span><span class="p">))</span> <span class="o">**</span> <span class="mi">2</span><span class="p">)[:</span><span class="n">max_gamma</span><span class="p">]</span>
<span class="k">else</span><span class="p">:</span>
<span class="k">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">w_max</span><span class="p">):</span>
<span class="k">if</span> <span class="n">new_shape</span> <span class="o">-</span> <span class="n">n</span> <span class="o">&gt;=</span> <span class="mi">0</span><span class="p">:</span>
<span class="n">gamma</span><span class="p">[</span><span class="n">n</span><span class="p">]</span> <span class="o">+=</span> <span class="n">deltas</span><span class="p">[</span><span class="mi">0</span><span class="p">:</span><span class="n">new_shape</span> <span class="o">-</span> <span class="n">n</span><span class="p">]</span><span class="o">.</span><span class="n">dot</span><span class="p">(</span><span class="n">deltas</span><span class="p">[</span><span class="n">n</span><span class="p">:</span><span class="n">new_shape</span><span class="p">])</span>
<span class="k">return</span> <span class="n">gamma</span>
<span class="k">def</span> <span class="nf">gamma_method</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Calculate the error and related properties of the Obs.</span>
<span class="sd"> Keyword arguments</span>
<span class="sd"> -----------------</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> S : float</span>
<span class="sd"> specifies a custom value for the parameter S (default 2.0), can be</span>
<span class="sd"> a float or an array of floats for different ensembles</span>
@ -2200,6 +2165,52 @@
<span class="bp">self</span><span class="o">.</span><span class="n">ddvalue</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">ddvalue</span><span class="p">)</span> <span class="o">/</span> <span class="bp">self</span><span class="o">.</span><span class="n">dvalue</span>
<span class="k">return</span>
<span class="k">def</span> <span class="nf">expand_deltas</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">deltas</span><span class="p">,</span> <span class="n">idx</span><span class="p">,</span> <span class="n">shape</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Expand deltas defined on idx to a regular, contiguous range, where holes are filled by 0.</span>
<span class="sd"> If idx is of type range, the deltas are not changed</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> deltas -- List of fluctuations</span>
<span class="sd"> idx -- List or range of configs on which the deltas are defined.</span>
<span class="sd"> shape -- Number of configs in idx.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">idx</span><span class="p">)</span> <span class="ow">is</span> <span class="nb">range</span><span class="p">:</span>
<span class="k">return</span> <span class="n">deltas</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">ret</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="n">idx</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">-</span> <span class="n">idx</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span>
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">shape</span><span class="p">):</span>
<span class="n">ret</span><span class="p">[</span><span class="n">idx</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">-</span> <span class="n">idx</span><span class="p">[</span><span class="mi">0</span><span class="p">]]</span> <span class="o">=</span> <span class="n">deltas</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
<span class="k">return</span> <span class="n">ret</span>
<span class="k">def</span> <span class="nf">calc_gamma</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">deltas</span><span class="p">,</span> <span class="n">idx</span><span class="p">,</span> <span class="n">shape</span><span class="p">,</span> <span class="n">w_max</span><span class="p">,</span> <span class="n">fft</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Calculate Gamma_{AA} from the deltas, which are defined on idx.</span>
<span class="sd"> idx is assumed to be a contiguous range (possibly with a stepsize != 1)</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> deltas -- List of fluctuations</span>
<span class="sd"> idx -- List or range of configs on which the deltas are defined.</span>
<span class="sd"> shape -- Number of configs in idx.</span>
<span class="sd"> w_max -- Upper bound for the summation window</span>
<span class="sd"> fft -- boolean, which determines whether the fft algorithm is used for</span>
<span class="sd"> the computation of the autocorrelation function</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">gamma</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="n">w_max</span><span class="p">)</span>
<span class="n">deltas</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expand_deltas</span><span class="p">(</span><span class="n">deltas</span><span class="p">,</span> <span class="n">idx</span><span class="p">,</span> <span class="n">shape</span><span class="p">)</span>
<span class="n">new_shape</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">deltas</span><span class="p">)</span>
<span class="k">if</span> <span class="n">fft</span><span class="p">:</span>
<span class="n">max_gamma</span> <span class="o">=</span> <span class="nb">min</span><span class="p">(</span><span class="n">new_shape</span><span class="p">,</span> <span class="n">w_max</span><span class="p">)</span>
<span class="c1"># The padding for the fft has to be even</span>
<span class="n">padding</span> <span class="o">=</span> <span class="n">new_shape</span> <span class="o">+</span> <span class="n">max_gamma</span> <span class="o">+</span> <span class="p">(</span><span class="n">new_shape</span> <span class="o">+</span> <span class="n">max_gamma</span><span class="p">)</span> <span class="o">%</span> <span class="mi">2</span>
<span class="n">gamma</span><span class="p">[:</span><span class="n">max_gamma</span><span class="p">]</span> <span class="o">+=</span> <span class="n">np</span><span class="o">.</span><span class="n">fft</span><span class="o">.</span><span class="n">irfft</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">abs</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">fft</span><span class="o">.</span><span class="n">rfft</span><span class="p">(</span><span class="n">deltas</span><span class="p">,</span> <span class="n">padding</span><span class="p">))</span> <span class="o">**</span> <span class="mi">2</span><span class="p">)[:</span><span class="n">max_gamma</span><span class="p">]</span>
<span class="k">else</span><span class="p">:</span>
<span class="k">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">w_max</span><span class="p">):</span>
<span class="k">if</span> <span class="n">new_shape</span> <span class="o">-</span> <span class="n">n</span> <span class="o">&gt;=</span> <span class="mi">0</span><span class="p">:</span>
<span class="n">gamma</span><span class="p">[</span><span class="n">n</span><span class="p">]</span> <span class="o">+=</span> <span class="n">deltas</span><span class="p">[</span><span class="mi">0</span><span class="p">:</span><span class="n">new_shape</span> <span class="o">-</span> <span class="n">n</span><span class="p">]</span><span class="o">.</span><span class="n">dot</span><span class="p">(</span><span class="n">deltas</span><span class="p">[</span><span class="n">n</span><span class="p">:</span><span class="n">new_shape</span><span class="p">])</span>
<span class="k">return</span> <span class="n">gamma</span>
<span class="k">def</span> <span class="nf">print</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">level</span><span class="o">=</span><span class="mi">1</span><span class="p">):</span>
<span class="n">warnings</span><span class="o">.</span><span class="n">warn</span><span class="p">(</span><span class="s2">&quot;Method &#39;print&#39; renamed to &#39;details&#39;&quot;</span><span class="p">,</span> <span class="ne">DeprecationWarning</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">details</span><span class="p">(</span><span class="n">level</span> <span class="o">&gt;</span> <span class="mi">1</span><span class="p">)</span>
@ -2361,9 +2372,10 @@
<span class="k">def</span> <span class="nf">dump</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Dump the Obs to a pickle file &#39;name&#39;.</span>
<span class="sd"> Keyword arguments</span>
<span class="sd"> -----------------</span>
<span class="sd"> path -- specifies a custom path for the file (default &#39;.&#39;)</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> path : str</span>
<span class="sd"> specifies a custom path for the file (default &#39;.&#39;)</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">if</span> <span class="s1">&#39;path&#39;</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
<span class="n">file_name</span> <span class="o">=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;path&#39;</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;/&#39;</span> <span class="o">+</span> <span class="n">name</span> <span class="o">+</span> <span class="s1">&#39;.p&#39;</span>
@ -2588,7 +2600,7 @@ Standard value for N_sigma (default 1.0)</li>
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">samples</span><span class="p">,</span> <span class="n">names</span><span class="p">,</span> <span class="n">idl</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">means</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot; Initialize Obs object.</span>
<span class="sd"> Attributes</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> samples : list</span>
<span class="sd"> list of numpy arrays containing the Monte Carlo samples</span>
@ -2669,7 +2681,7 @@ Standard value for N_sigma (default 1.0)</li>
<div class="docstring"><p>Initialize Obs object.</p>
<h6 id="attributes">Attributes</h6>
<h6 id="parameters">Parameters</h6>
<ul>
<li><strong>samples</strong> (list):
@ -2865,108 +2877,6 @@ already subtracted from the samples</li>
</div>
<div id="Obs.expand_deltas" class="classattr">
<div class="attr function"><a class="headerlink" href="#Obs.expand_deltas">#&nbsp;&nbsp</a>
<span class="def">def</span>
<span class="name">expand_deltas</span><span class="signature">(self, deltas, idx, shape)</span>:
</div>
<details>
<summary>View Source</summary>
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">expand_deltas</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">deltas</span><span class="p">,</span> <span class="n">idx</span><span class="p">,</span> <span class="n">shape</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Expand deltas defined on idx to a regular, contiguous range, where holes are filled by 0.</span>
<span class="sd"> If idx is of type range, the deltas are not changed</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> deltas -- List of fluctuations</span>
<span class="sd"> idx -- List or range of configs on which the deltas are defined.</span>
<span class="sd"> shape -- Number of configs in idx.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">idx</span><span class="p">)</span> <span class="ow">is</span> <span class="nb">range</span><span class="p">:</span>
<span class="k">return</span> <span class="n">deltas</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">ret</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="n">idx</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">-</span> <span class="n">idx</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span>
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">shape</span><span class="p">):</span>
<span class="n">ret</span><span class="p">[</span><span class="n">idx</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">-</span> <span class="n">idx</span><span class="p">[</span><span class="mi">0</span><span class="p">]]</span> <span class="o">=</span> <span class="n">deltas</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
<span class="k">return</span> <span class="n">ret</span>
</pre></div>
</details>
<div class="docstring"><p>Expand deltas defined on idx to a regular, contiguous range, where holes are filled by 0.
If idx is of type range, the deltas are not changed</p>
<h6 id="parameters">Parameters</h6>
<ul>
<li><strong>deltas -- List of fluctuations</strong></li>
<li><strong>idx -- List or range of configs on which the deltas are defined.</strong></li>
<li><strong>shape -- Number of configs in idx.</strong></li>
</ul>
</div>
</div>
<div id="Obs.calc_gamma" class="classattr">
<div class="attr function"><a class="headerlink" href="#Obs.calc_gamma">#&nbsp;&nbsp</a>
<span class="def">def</span>
<span class="name">calc_gamma</span><span class="signature">(self, deltas, idx, shape, w_max, fft)</span>:
</div>
<details>
<summary>View Source</summary>
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">calc_gamma</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">deltas</span><span class="p">,</span> <span class="n">idx</span><span class="p">,</span> <span class="n">shape</span><span class="p">,</span> <span class="n">w_max</span><span class="p">,</span> <span class="n">fft</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Calculate Gamma_{AA} from the deltas, which are defined on idx.</span>
<span class="sd"> idx is assumed to be a contiguous range (possibly with a stepsize != 1)</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> deltas -- List of fluctuations</span>
<span class="sd"> idx -- List or range of configs on which the deltas are defined.</span>
<span class="sd"> shape -- Number of configs in idx.</span>
<span class="sd"> w_max -- Upper bound for the summation window</span>
<span class="sd"> fft -- boolean, which determines whether the fft algorithm is used for</span>
<span class="sd"> the computation of the autocorrelation function</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">gamma</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="n">w_max</span><span class="p">)</span>
<span class="n">deltas</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expand_deltas</span><span class="p">(</span><span class="n">deltas</span><span class="p">,</span> <span class="n">idx</span><span class="p">,</span> <span class="n">shape</span><span class="p">)</span>
<span class="n">new_shape</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">deltas</span><span class="p">)</span>
<span class="k">if</span> <span class="n">fft</span><span class="p">:</span>
<span class="n">max_gamma</span> <span class="o">=</span> <span class="nb">min</span><span class="p">(</span><span class="n">new_shape</span><span class="p">,</span> <span class="n">w_max</span><span class="p">)</span>
<span class="c1"># The padding for the fft has to be even</span>
<span class="n">padding</span> <span class="o">=</span> <span class="n">new_shape</span> <span class="o">+</span> <span class="n">max_gamma</span> <span class="o">+</span> <span class="p">(</span><span class="n">new_shape</span> <span class="o">+</span> <span class="n">max_gamma</span><span class="p">)</span> <span class="o">%</span> <span class="mi">2</span>
<span class="n">gamma</span><span class="p">[:</span><span class="n">max_gamma</span><span class="p">]</span> <span class="o">+=</span> <span class="n">np</span><span class="o">.</span><span class="n">fft</span><span class="o">.</span><span class="n">irfft</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">abs</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">fft</span><span class="o">.</span><span class="n">rfft</span><span class="p">(</span><span class="n">deltas</span><span class="p">,</span> <span class="n">padding</span><span class="p">))</span> <span class="o">**</span> <span class="mi">2</span><span class="p">)[:</span><span class="n">max_gamma</span><span class="p">]</span>
<span class="k">else</span><span class="p">:</span>
<span class="k">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">w_max</span><span class="p">):</span>
<span class="k">if</span> <span class="n">new_shape</span> <span class="o">-</span> <span class="n">n</span> <span class="o">&gt;=</span> <span class="mi">0</span><span class="p">:</span>
<span class="n">gamma</span><span class="p">[</span><span class="n">n</span><span class="p">]</span> <span class="o">+=</span> <span class="n">deltas</span><span class="p">[</span><span class="mi">0</span><span class="p">:</span><span class="n">new_shape</span> <span class="o">-</span> <span class="n">n</span><span class="p">]</span><span class="o">.</span><span class="n">dot</span><span class="p">(</span><span class="n">deltas</span><span class="p">[</span><span class="n">n</span><span class="p">:</span><span class="n">new_shape</span><span class="p">])</span>
<span class="k">return</span> <span class="n">gamma</span>
</pre></div>
</details>
<div class="docstring"><p>Calculate Gamma_{AA} from the deltas, which are defined on idx.
idx is assumed to be a contiguous range (possibly with a stepsize != 1)</p>
<h6 id="parameters">Parameters</h6>
<ul>
<li><strong>deltas -- List of fluctuations</strong></li>
<li><strong>idx -- List or range of configs on which the deltas are defined.</strong></li>
<li><strong>shape -- Number of configs in idx.</strong></li>
<li><strong>w_max -- Upper bound for the summation window</strong></li>
<li><strong>fft -- boolean, which determines whether the fft algorithm is used for</strong>: the computation of the autocorrelation function</li>
</ul>
</div>
</div>
<div id="Obs.gamma_method" class="classattr">
<div class="attr function"><a class="headerlink" href="#Obs.gamma_method">#&nbsp;&nbsp</a>
@ -2981,8 +2891,8 @@ already subtracted from the samples</li>
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">gamma_method</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Calculate the error and related properties of the Obs.</span>
<span class="sd"> Keyword arguments</span>
<span class="sd"> -----------------</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> S : float</span>
<span class="sd"> specifies a custom value for the parameter S (default 2.0), can be</span>
<span class="sd"> a float or an array of floats for different ensembles</span>
@ -3165,21 +3075,125 @@ already subtracted from the samples</li>
<div class="docstring"><p>Calculate the error and related properties of the Obs.</p>
<h6 id="keyword-arguments">Keyword arguments</h6>
<h6 id="parameters">Parameters</h6>
<p>S : float
specifies a custom value for the parameter S (default 2.0), can be
a float or an array of floats for different ensembles
tau_exp : float
positive value triggers the critical slowing down analysis
(default 0.0), can be a float or an array of floats for different
ensembles
N_sigma : float
number of standard deviations from zero until the tail is
attached to the autocorrelation function (default 1)
fft : bool
determines whether the fft algorithm is used for the computation
of the autocorrelation function (default True)</p>
<ul>
<li><strong>S</strong> (float):
specifies a custom value for the parameter S (default 2.0), can be
a float or an array of floats for different ensembles</li>
<li><strong>tau_exp</strong> (float):
positive value triggers the critical slowing down analysis
(default 0.0), can be a float or an array of floats for different
ensembles</li>
<li><strong>N_sigma</strong> (float):
number of standard deviations from zero until the tail is
attached to the autocorrelation function (default 1)</li>
<li><strong>fft</strong> (bool):
determines whether the fft algorithm is used for the computation
of the autocorrelation function (default True)</li>
</ul>
</div>
</div>
<div id="Obs.expand_deltas" class="classattr">
<div class="attr function"><a class="headerlink" href="#Obs.expand_deltas">#&nbsp;&nbsp</a>
<span class="def">def</span>
<span class="name">expand_deltas</span><span class="signature">(self, deltas, idx, shape)</span>:
</div>
<details>
<summary>View Source</summary>
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">expand_deltas</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">deltas</span><span class="p">,</span> <span class="n">idx</span><span class="p">,</span> <span class="n">shape</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Expand deltas defined on idx to a regular, contiguous range, where holes are filled by 0.</span>
<span class="sd"> If idx is of type range, the deltas are not changed</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> deltas -- List of fluctuations</span>
<span class="sd"> idx -- List or range of configs on which the deltas are defined.</span>
<span class="sd"> shape -- Number of configs in idx.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">idx</span><span class="p">)</span> <span class="ow">is</span> <span class="nb">range</span><span class="p">:</span>
<span class="k">return</span> <span class="n">deltas</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">ret</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="n">idx</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">-</span> <span class="n">idx</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span>
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">shape</span><span class="p">):</span>
<span class="n">ret</span><span class="p">[</span><span class="n">idx</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">-</span> <span class="n">idx</span><span class="p">[</span><span class="mi">0</span><span class="p">]]</span> <span class="o">=</span> <span class="n">deltas</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
<span class="k">return</span> <span class="n">ret</span>
</pre></div>
</details>
<div class="docstring"><p>Expand deltas defined on idx to a regular, contiguous range, where holes are filled by 0.
If idx is of type range, the deltas are not changed</p>
<h6 id="parameters">Parameters</h6>
<ul>
<li><strong>deltas -- List of fluctuations</strong></li>
<li><strong>idx -- List or range of configs on which the deltas are defined.</strong></li>
<li><strong>shape -- Number of configs in idx.</strong></li>
</ul>
</div>
</div>
<div id="Obs.calc_gamma" class="classattr">
<div class="attr function"><a class="headerlink" href="#Obs.calc_gamma">#&nbsp;&nbsp</a>
<span class="def">def</span>
<span class="name">calc_gamma</span><span class="signature">(self, deltas, idx, shape, w_max, fft)</span>:
</div>
<details>
<summary>View Source</summary>
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">calc_gamma</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">deltas</span><span class="p">,</span> <span class="n">idx</span><span class="p">,</span> <span class="n">shape</span><span class="p">,</span> <span class="n">w_max</span><span class="p">,</span> <span class="n">fft</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Calculate Gamma_{AA} from the deltas, which are defined on idx.</span>
<span class="sd"> idx is assumed to be a contiguous range (possibly with a stepsize != 1)</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> deltas -- List of fluctuations</span>
<span class="sd"> idx -- List or range of configs on which the deltas are defined.</span>
<span class="sd"> shape -- Number of configs in idx.</span>
<span class="sd"> w_max -- Upper bound for the summation window</span>
<span class="sd"> fft -- boolean, which determines whether the fft algorithm is used for</span>
<span class="sd"> the computation of the autocorrelation function</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">gamma</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="n">w_max</span><span class="p">)</span>
<span class="n">deltas</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expand_deltas</span><span class="p">(</span><span class="n">deltas</span><span class="p">,</span> <span class="n">idx</span><span class="p">,</span> <span class="n">shape</span><span class="p">)</span>
<span class="n">new_shape</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">deltas</span><span class="p">)</span>
<span class="k">if</span> <span class="n">fft</span><span class="p">:</span>
<span class="n">max_gamma</span> <span class="o">=</span> <span class="nb">min</span><span class="p">(</span><span class="n">new_shape</span><span class="p">,</span> <span class="n">w_max</span><span class="p">)</span>
<span class="c1"># The padding for the fft has to be even</span>
<span class="n">padding</span> <span class="o">=</span> <span class="n">new_shape</span> <span class="o">+</span> <span class="n">max_gamma</span> <span class="o">+</span> <span class="p">(</span><span class="n">new_shape</span> <span class="o">+</span> <span class="n">max_gamma</span><span class="p">)</span> <span class="o">%</span> <span class="mi">2</span>
<span class="n">gamma</span><span class="p">[:</span><span class="n">max_gamma</span><span class="p">]</span> <span class="o">+=</span> <span class="n">np</span><span class="o">.</span><span class="n">fft</span><span class="o">.</span><span class="n">irfft</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">abs</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">fft</span><span class="o">.</span><span class="n">rfft</span><span class="p">(</span><span class="n">deltas</span><span class="p">,</span> <span class="n">padding</span><span class="p">))</span> <span class="o">**</span> <span class="mi">2</span><span class="p">)[:</span><span class="n">max_gamma</span><span class="p">]</span>
<span class="k">else</span><span class="p">:</span>
<span class="k">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">w_max</span><span class="p">):</span>
<span class="k">if</span> <span class="n">new_shape</span> <span class="o">-</span> <span class="n">n</span> <span class="o">&gt;=</span> <span class="mi">0</span><span class="p">:</span>
<span class="n">gamma</span><span class="p">[</span><span class="n">n</span><span class="p">]</span> <span class="o">+=</span> <span class="n">deltas</span><span class="p">[</span><span class="mi">0</span><span class="p">:</span><span class="n">new_shape</span> <span class="o">-</span> <span class="n">n</span><span class="p">]</span><span class="o">.</span><span class="n">dot</span><span class="p">(</span><span class="n">deltas</span><span class="p">[</span><span class="n">n</span><span class="p">:</span><span class="n">new_shape</span><span class="p">])</span>
<span class="k">return</span> <span class="n">gamma</span>
</pre></div>
</details>
<div class="docstring"><p>Calculate Gamma_{AA} from the deltas, which are defined on idx.
idx is assumed to be a contiguous range (possibly with a stepsize != 1)</p>
<h6 id="parameters">Parameters</h6>
<ul>
<li><strong>deltas -- List of fluctuations</strong></li>
<li><strong>idx -- List or range of configs on which the deltas are defined.</strong></li>
<li><strong>shape -- Number of configs in idx.</strong></li>
<li><strong>w_max -- Upper bound for the summation window</strong></li>
<li><strong>fft -- boolean, which determines whether the fft algorithm is used for</strong>: the computation of the autocorrelation function</li>
</ul>
</div>
@ -3518,9 +3532,10 @@ ensemble to the error and returns a dictionary containing the fractions.</p>
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">dump</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Dump the Obs to a pickle file &#39;name&#39;.</span>
<span class="sd"> Keyword arguments</span>
<span class="sd"> -----------------</span>
<span class="sd"> path -- specifies a custom path for the file (default &#39;.&#39;)</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> path : str</span>
<span class="sd"> specifies a custom path for the file (default &#39;.&#39;)</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">if</span> <span class="s1">&#39;path&#39;</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
<span class="n">file_name</span> <span class="o">=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;path&#39;</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;/&#39;</span> <span class="o">+</span> <span class="n">name</span> <span class="o">+</span> <span class="s1">&#39;.p&#39;</span>
@ -3534,9 +3549,12 @@ ensemble to the error and returns a dictionary containing the fractions.</p>
<div class="docstring"><p>Dump the Obs to a pickle file 'name'.</p>
<h6 id="keyword-arguments">Keyword arguments</h6>
<h6 id="parameters">Parameters</h6>
<p>path -- specifies a custom path for the file (default '.')</p>
<ul>
<li><strong>path</strong> (str):
specifies a custom path for the file (default '.')</li>
</ul>
</div>
@ -4208,7 +4226,8 @@ ensemble to the error and returns a dictionary containing the fractions.</p>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> idl -- List of lists or ranges.</span>
<span class="sd"> idl : list</span>
<span class="sd"> List of lists or ranges.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="c1"># Use groupby to efficiently check whether all elements of idl are identical</span>
@ -4236,7 +4255,8 @@ ensemble to the error and returns a dictionary containing the fractions.</p>
<h6 id="parameters">Parameters</h6>
<ul>
<li><strong>idl -- List of lists or ranges.</strong></li>
<li><strong>idl</strong> (list):
List of lists or ranges.</li>
</ul>
</div>
@ -4321,14 +4341,15 @@ List of configs that defines the new range.</li>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> names -- List of names</span>
<span class="sd"> deltas -- Dict lists of fluctuations</span>
<span class="sd"> idx -- Dict of lists or ranges of configs on which the deltas are defined.</span>
<span class="sd"> Has to be a subset of new_idx.</span>
<span class="sd"> Optional parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> eps -- Prefactor that enters the filter criterion.</span>
<span class="sd"> names : list</span>
<span class="sd"> List of names</span>
<span class="sd"> deltas : dict</span>
<span class="sd"> Dict lists of fluctuations</span>
<span class="sd"> idx : dict</span>
<span class="sd"> Dict of lists or ranges of configs on which the deltas are defined.</span>
<span class="sd"> Has to be a subset of new_idx.</span>
<span class="sd"> eps : float</span>
<span class="sd"> Prefactor that enters the filter criterion.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">new_names</span> <span class="o">=</span> <span class="p">[]</span>
<span class="n">new_deltas</span> <span class="o">=</span> <span class="p">{}</span>
@ -4359,14 +4380,16 @@ List of configs that defines the new range.</li>
<h6 id="parameters">Parameters</h6>
<ul>
<li><strong>names -- List of names</strong></li>
<li><strong>deltas -- Dict lists of fluctuations</strong></li>
<li><strong>idx -- Dict of lists or ranges of configs on which the deltas are defined.</strong>: Has to be a subset of new_idx.</li>
<li><strong>names</strong> (list):
List of names</li>
<li><strong>deltas</strong> (dict):
Dict lists of fluctuations</li>
<li><strong>idx</strong> (dict):
Dict of lists or ranges of configs on which the deltas are defined.
Has to be a subset of new_idx.</li>
<li><strong>eps</strong> (float):
Prefactor that enters the filter criterion.</li>
</ul>
<h6 id="optional-parameters">Optional parameters</h6>
<p>eps -- Prefactor that enters the filter criterion.</p>
</div>
@ -4392,9 +4415,6 @@ List of configs that defines the new range.</li>
<span class="sd"> the autograd wrapper (use &#39;import autograd.numpy as anp&#39;).</span>
<span class="sd"> data : list</span>
<span class="sd"> list of Obs, e.g. [obs1, obs2, obs3].</span>
<span class="sd"> Keyword arguments</span>
<span class="sd"> -----------------</span>
<span class="sd"> num_grad : bool</span>
<span class="sd"> if True, numerical derivatives are used instead of autograd</span>
<span class="sd"> (default False). To control the numerical differentiation the</span>
@ -4541,20 +4561,17 @@ automatic differentiation to work, all numpy functions have to have
the autograd wrapper (use 'import autograd.numpy as anp').</li>
<li><strong>data</strong> (list):
list of Obs, e.g. [obs1, obs2, obs3].</li>
<li><strong>num_grad</strong> (bool):
if True, numerical derivatives are used instead of autograd
(default False). To control the numerical differentiation the
kwargs of numdifftools.step_generators.MaxStepGenerator
can be used.</li>
<li><strong>man_grad</strong> (list):
manually supply a list or an array which contains the jacobian
of func. Use cautiously, supplying the wrong derivative will
not be intercepted.</li>
</ul>
<h6 id="keyword-arguments">Keyword arguments</h6>
<p>num_grad : bool
if True, numerical derivatives are used instead of autograd
(default False). To control the numerical differentiation the
kwargs of numdifftools.step_generators.MaxStepGenerator
can be used.
man_grad : list
manually supply a list or an array which contains the jacobian
of func. Use cautiously, supplying the wrong derivative will
not be intercepted.</p>
<h6 id="notes">Notes</h6>
<p>For simple mathematical operations it can be practical to use anonymous
@ -4580,10 +4597,13 @@ functions. For the ratio of two observables one can e.g. use</p>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> deltas -- List of fluctuations</span>
<span class="sd"> idx_old -- List or range of configs on which the deltas are defined</span>
<span class="sd"> idx_new -- List of configs for which we want to extract the deltas.</span>
<span class="sd"> Has to be a subset of idx_old.</span>
<span class="sd"> deltas : list</span>
<span class="sd"> List of fluctuations</span>
<span class="sd"> idx_old : list</span>
<span class="sd"> List or range of configs on which the deltas are defined</span>
<span class="sd"> idx_new : list</span>
<span class="sd"> List of configs for which we want to extract the deltas.</span>
<span class="sd"> Has to be a subset of idx_old.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">if</span> <span class="ow">not</span> <span class="nb">len</span><span class="p">(</span><span class="n">deltas</span><span class="p">)</span> <span class="o">==</span> <span class="nb">len</span><span class="p">(</span><span class="n">idx_old</span><span class="p">):</span>
<span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;Lenght of deltas and idx_old have to be the same: </span><span class="si">%d</span><span class="s1"> != </span><span class="si">%d</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">deltas</span><span class="p">),</span> <span class="nb">len</span><span class="p">(</span><span class="n">idx_old</span><span class="p">)))</span>
@ -4614,9 +4634,13 @@ functions. For the ratio of two observables one can e.g. use</p>
<h6 id="parameters">Parameters</h6>
<ul>
<li><strong>deltas -- List of fluctuations</strong></li>
<li><strong>idx_old -- List or range of configs on which the deltas are defined</strong></li>
<li><strong>idx_new -- List of configs for which we want to extract the deltas.</strong>: Has to be a subset of idx_old.</li>
<li><strong>deltas</strong> (list):
List of fluctuations</li>
<li><strong>idx_old</strong> (list):
List or range of configs on which the deltas are defined</li>
<li><strong>idx_new</strong> (list):
List of configs for which we want to extract the deltas.
Has to be a subset of idx_old.</li>
</ul>
</div>
@ -4642,9 +4666,6 @@ functions. For the ratio of two observables one can e.g. use</p>
<span class="sd"> configurations in obs[i].idl for all i.</span>
<span class="sd"> obs : list</span>
<span class="sd"> list of Obs, e.g. [obs1, obs2, obs3].</span>
<span class="sd"> Keyword arguments</span>
<span class="sd"> -----------------</span>
<span class="sd"> all_configs : bool</span>
<span class="sd"> if True, the reweighted observables are normalized by the average of</span>
<span class="sd"> the reweighting factor on all configurations in weight.idl and not</span>
@ -4688,14 +4709,11 @@ Reweighting factor. An Observable that has to be defined on a superset of the
configurations in obs[i].idl for all i.</li>
<li><strong>obs</strong> (list):
list of Obs, e.g. [obs1, obs2, obs3].</li>
<li><strong>all_configs</strong> (bool):
if True, the reweighted observables are normalized by the average of
the reweighting factor on all configurations in weight.idl and not
on the configurations in obs[i].idl.</li>
</ul>
<h6 id="keyword-arguments">Keyword arguments</h6>
<p>all_configs : bool
if True, the reweighted observables are normalized by the average of
the reweighting factor on all configurations in weight.idl and not
on the configurations in obs[i].idl.</p>
</div>
@ -4713,8 +4731,8 @@ list of Obs, e.g. [obs1, obs2, obs3].</li>
<div class="codehilite"><pre><span></span><span class="k">def</span> <span class="nf">correlate</span><span class="p">(</span><span class="n">obs_a</span><span class="p">,</span> <span class="n">obs_b</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Correlate two observables.</span>
<span class="sd"> Attributes:</span>
<span class="sd"> -----------</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> obs_a : Obs</span>
<span class="sd"> First observable</span>
<span class="sd"> obs_b : Obs</span>
@ -4754,16 +4772,17 @@ list of Obs, e.g. [obs1, obs2, obs3].</li>
<div class="docstring"><p>Correlate two observables.</p>
<h2 id="attributes">Attributes:</h2>
<h6 id="parameters">Parameters</h6>
<p>obs_a : Obs
First observable
obs_b : Obs
Second observable</p>
<p>Keep in mind to only correlate primary observables which have not been reweighted
yet. The reweighting has to be applied after correlating the observables.
Currently only works if ensembles are identical. This is not really necessary.</p>
<ul>
<li><strong>obs_a</strong> (Obs):
First observable</li>
<li><strong>obs_b</strong> (Obs):
Second observable</li>
<li><strong>Keep in mind to only correlate primary observables which have not been reweighted</strong></li>
<li><strong>yet. The reweighting has to be applied after correlating the observables.</strong></li>
<li><strong>Currently only works if ensembles are identical. This is not really necessary.</strong></li>
</ul>
</div>
@ -4788,10 +4807,11 @@ Currently only works if ensembles are identical. This is not really necessary.</
<span class="sd"> is constrained to the maximum value in order to make sure that covariance</span>
<span class="sd"> matrices are positive semidefinite.</span>
<span class="sd"> Keyword arguments</span>
<span class="sd"> -----------------</span>
<span class="sd"> correlation -- if true the correlation instead of the covariance is</span>
<span class="sd"> returned (default False)</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> correlation : bool</span>
<span class="sd"> if true the correlation instead of the covariance is</span>
<span class="sd"> returned (default False)</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="nb">sorted</span><span class="p">(</span><span class="nb">set</span><span class="p">(</span><span class="n">obs1</span><span class="o">.</span><span class="n">names</span> <span class="o">+</span> <span class="n">obs2</span><span class="o">.</span><span class="n">names</span><span class="p">)):</span>
@ -4845,10 +4865,13 @@ The gamma method has to be applied first to both observables.</p>
is constrained to the maximum value in order to make sure that covariance
matrices are positive semidefinite.</p>
<h6 id="keyword-arguments">Keyword arguments</h6>
<h6 id="parameters">Parameters</h6>
<p>correlation -- if true the correlation instead of the covariance is
returned (default False)</p>
<ul>
<li><strong>correlation</strong> (bool):
if true the correlation instead of the covariance is
returned (default False)</li>
</ul>
</div>
@ -5154,9 +5177,14 @@ plot -- if true, the integrated autocorrelation time for each ensemble is
<div class="codehilite"><pre><span></span><span class="k">def</span> <span class="nf">dump_object</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Dump object into pickle file.</span>
<span class="sd"> Keyword arguments</span>
<span class="sd"> -----------------</span>
<span class="sd"> path -- specifies a custom path for the file (default &#39;.&#39;)</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> obj : object</span>
<span class="sd"> object to be saved in the pickle file</span>
<span class="sd"> name : str</span>
<span class="sd"> name of the file</span>
<span class="sd"> path : str</span>
<span class="sd"> specifies a custom path for the file (default &#39;.&#39;)</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">if</span> <span class="s1">&#39;path&#39;</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
<span class="n">file_name</span> <span class="o">=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;path&#39;</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;/&#39;</span> <span class="o">+</span> <span class="n">name</span> <span class="o">+</span> <span class="s1">&#39;.p&#39;</span>
@ -5170,9 +5198,16 @@ plot -- if true, the integrated autocorrelation time for each ensemble is
<div class="docstring"><p>Dump object into pickle file.</p>
<h6 id="keyword-arguments">Keyword arguments</h6>
<h6 id="parameters">Parameters</h6>
<p>path -- specifies a custom path for the file (default '.')</p>
<ul>
<li><strong>obj</strong> (object):
object to be saved in the pickle file</li>
<li><strong>name</strong> (str):
name of the file</li>
<li><strong>path</strong> (str):
specifies a custom path for the file (default '.')</li>
</ul>
</div>
@ -5213,6 +5248,11 @@ plot -- if true, the integrated autocorrelation time for each ensemble is
<div class="codehilite"><pre><span></span><span class="k">def</span> <span class="nf">merge_obs</span><span class="p">(</span><span class="n">list_of_obs</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Combine all observables in list_of_obs into one new observable</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> list_of_obs : list</span>
<span class="sd"> list of the Obs object to be combined</span>
<span class="sd"> It is not possible to combine obs which are based on the same replicum</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">replist</span> <span class="o">=</span> <span class="p">[</span><span class="n">item</span> <span class="k">for</span> <span class="n">obs</span> <span class="ow">in</span> <span class="n">list_of_obs</span> <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">obs</span><span class="o">.</span><span class="n">names</span><span class="p">]</span>
@ -5236,7 +5276,13 @@ plot -- if true, the integrated autocorrelation time for each ensemble is
<div class="docstring"><p>Combine all observables in list_of_obs into one new observable</p>
<p>It is not possible to combine obs which are based on the same replicum</p>
<h6 id="parameters">Parameters</h6>
<ul>
<li><strong>list_of_obs</strong> (list):
list of the Obs object to be combined</li>
<li><strong>It is not possible to combine obs which are based on the same replicum</strong></li>
</ul>
</div>