Documentation updated

This commit is contained in:
fjosw 2021-12-07 08:32:32 +00:00
parent 78435f533f
commit 56bf153622
3 changed files with 7 additions and 170 deletions

View file

@ -794,7 +794,7 @@
<span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s1">&#39;Theoretical quantiles&#39;</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s1">&#39;Ordered Values&#39;</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">legend</span><span class="p">()</span>
<span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
<span class="n">plt</span><span class="o">.</span><span class="n">draw</span><span class="p">()</span>
<span class="k">def</span> <span class="nf">residual_plot</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="n">func</span><span class="p">,</span> <span class="n">fit_res</span><span class="p">):</span>
@ -823,7 +823,7 @@
<span class="n">ax1</span><span class="o">.</span><span class="n">set_xlim</span><span class="p">([</span><span class="n">xstart</span><span class="p">,</span> <span class="n">xstop</span><span class="p">])</span>
<span class="n">ax1</span><span class="o">.</span><span class="n">set_ylabel</span><span class="p">(</span><span class="s1">&#39;Residuals&#39;</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">subplots_adjust</span><span class="p">(</span><span class="n">wspace</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">hspace</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
<span class="n">plt</span><span class="o">.</span><span class="n">draw</span><span class="p">()</span>
<span class="k">def</span> <span class="nf">covariance_matrix</span><span class="p">(</span><span class="n">y</span><span class="p">):</span>
@ -898,7 +898,7 @@
<span class="n">loc_max_diff</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">argmax</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">diffs</span><span class="p">))</span>
<span class="n">loc</span> <span class="o">=</span> <span class="n">Xs</span><span class="p">[</span><span class="n">loc_max_diff</span><span class="p">]</span>
<span class="n">plt</span><span class="o">.</span><span class="n">annotate</span><span class="p">(</span><span class="n">s</span><span class="o">=</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="n">xy</span><span class="o">=</span><span class="p">(</span><span class="n">loc</span><span class="p">,</span> <span class="n">loc</span><span class="p">),</span> <span class="n">xytext</span><span class="o">=</span><span class="p">(</span><span class="n">loc</span><span class="p">,</span> <span class="n">loc</span> <span class="o">+</span> <span class="n">diffs</span><span class="p">[</span><span class="n">loc_max_diff</span><span class="p">]),</span> <span class="n">arrowprops</span><span class="o">=</span><span class="nb">dict</span><span class="p">(</span><span class="n">arrowstyle</span><span class="o">=</span><span class="s1">&#39;&lt;-&gt;&#39;</span><span class="p">,</span> <span class="n">shrinkA</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">shrinkB</span><span class="o">=</span><span class="mi">0</span><span class="p">))</span>
<span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
<span class="n">plt</span><span class="o">.</span><span class="n">draw</span><span class="p">()</span>
<span class="nb">print</span><span class="p">(</span><span class="n">scipy</span><span class="o">.</span><span class="n">stats</span><span class="o">.</span><span class="n">kstest</span><span class="p">(</span><span class="n">Qs</span><span class="p">,</span> <span class="s1">&#39;uniform&#39;</span><span class="p">))</span>
@ -1643,7 +1643,7 @@ a list of Obs, where the dvalues of the Obs are used as xerror for the fit.</p>
<span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s1">&#39;Theoretical quantiles&#39;</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s1">&#39;Ordered Values&#39;</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">legend</span><span class="p">()</span>
<span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
<span class="n">plt</span><span class="o">.</span><span class="n">draw</span><span class="p">()</span>
</pre></div>
</details>
@ -1690,7 +1690,7 @@ check if the residuals of the fit are gaussian distributed.</p>
<span class="n">ax1</span><span class="o">.</span><span class="n">set_xlim</span><span class="p">([</span><span class="n">xstart</span><span class="p">,</span> <span class="n">xstop</span><span class="p">])</span>
<span class="n">ax1</span><span class="o">.</span><span class="n">set_ylabel</span><span class="p">(</span><span class="s1">&#39;Residuals&#39;</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">subplots_adjust</span><span class="p">(</span><span class="n">wspace</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">hspace</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
<span class="n">plt</span><span class="o">.</span><span class="n">draw</span><span class="p">()</span>
</pre></div>
</details>
@ -1816,7 +1816,7 @@ check if the residuals of the fit are gaussian distributed.</p>
<span class="n">loc_max_diff</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">argmax</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">diffs</span><span class="p">))</span>
<span class="n">loc</span> <span class="o">=</span> <span class="n">Xs</span><span class="p">[</span><span class="n">loc_max_diff</span><span class="p">]</span>
<span class="n">plt</span><span class="o">.</span><span class="n">annotate</span><span class="p">(</span><span class="n">s</span><span class="o">=</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="n">xy</span><span class="o">=</span><span class="p">(</span><span class="n">loc</span><span class="p">,</span> <span class="n">loc</span><span class="p">),</span> <span class="n">xytext</span><span class="o">=</span><span class="p">(</span><span class="n">loc</span><span class="p">,</span> <span class="n">loc</span> <span class="o">+</span> <span class="n">diffs</span><span class="p">[</span><span class="n">loc_max_diff</span><span class="p">]),</span> <span class="n">arrowprops</span><span class="o">=</span><span class="nb">dict</span><span class="p">(</span><span class="n">arrowstyle</span><span class="o">=</span><span class="s1">&#39;&lt;-&gt;&#39;</span><span class="p">,</span> <span class="n">shrinkA</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">shrinkB</span><span class="o">=</span><span class="mi">0</span><span class="p">))</span>
<span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
<span class="n">plt</span><span class="o">.</span><span class="n">draw</span><span class="p">()</span>
<span class="nb">print</span><span class="p">(</span><span class="n">scipy</span><span class="o">.</span><span class="n">stats</span><span class="o">.</span><span class="n">kstest</span><span class="p">(</span><span class="n">Qs</span><span class="p">,</span> <span class="s1">&#39;uniform&#39;</span><span class="p">))</span>
</pre></div>

View file

@ -290,9 +290,6 @@
<li>
<a class="function" href="#covariance2">covariance2</a>
</li>
<li>
<a class="function" href="#covariance3">covariance3</a>
</li>
<li>
<a class="function" href="#pseudo_Obs">pseudo_Obs</a>
</li>
@ -1872,70 +1869,6 @@
<span class="k">return</span> <span class="n">dvalue</span>
<span class="k">def</span> <span class="nf">covariance3</span><span class="p">(</span><span class="n">obs1</span><span class="p">,</span> <span class="n">obs2</span><span class="p">,</span> <span class="n">correlation</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Another alternative implementation of the covariance of two observables.</span>
<span class="sd"> covariance2(obs, obs) is equal to obs.dvalue ** 2</span>
<span class="sd"> Currently only works if ensembles are identical.</span>
<span class="sd"> The gamma method has to be applied first to both observables.</span>
<span class="sd"> If abs(covariance2(obs1, obs2)) &gt; obs1.dvalue * obs2.dvalue, the covariance</span>
<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"> plot -- if true, the integrated autocorrelation time for each ensemble is</span>
<span class="sd"> plotted.</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>
<span class="k">if</span> <span class="p">(</span><span class="n">obs1</span><span class="o">.</span><span class="n">shape</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> <span class="o">!=</span> <span class="n">obs2</span><span class="o">.</span><span class="n">shape</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="p">))</span> <span class="ow">and</span> <span class="p">(</span><span class="n">obs1</span><span class="o">.</span><span class="n">shape</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">)</span> <span class="ow">and</span> <span class="p">(</span><span class="n">obs2</span><span class="o">.</span><span class="n">shape</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">):</span>
<span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;Shapes of ensemble&#39;</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="s1">&#39;do not fit&#39;</span><span class="p">)</span>
<span class="k">if</span> <span class="p">(</span><span class="mi">1</span> <span class="o">!=</span> <span class="nb">len</span><span class="p">(</span><span class="nb">set</span><span class="p">([</span><span class="nb">len</span><span class="p">(</span><span class="n">idx</span><span class="p">)</span> <span class="k">for</span> <span class="n">idx</span> <span class="ow">in</span> <span class="p">[</span><span class="n">obs1</span><span class="o">.</span><span class="n">idl</span><span class="p">[</span><span class="n">name</span><span class="p">],</span> <span class="n">obs2</span><span class="o">.</span><span class="n">idl</span><span class="p">[</span><span class="n">name</span><span class="p">],</span> <span class="n">_merge_idx</span><span class="p">([</span><span class="n">obs1</span><span class="o">.</span><span class="n">idl</span><span class="p">[</span><span class="n">name</span><span class="p">],</span> <span class="n">obs2</span><span class="o">.</span><span class="n">idl</span><span class="p">[</span><span class="n">name</span><span class="p">]])]]))):</span>
<span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;Shapes of ensemble&#39;</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="s1">&#39;do not fit&#39;</span><span class="p">)</span>
<span class="k">if</span> <span class="ow">not</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">obs1</span><span class="p">,</span> <span class="s1">&#39;e_names&#39;</span><span class="p">)</span> <span class="ow">or</span> <span class="ow">not</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">obs2</span><span class="p">,</span> <span class="s1">&#39;e_names&#39;</span><span class="p">):</span>
<span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;The gamma method has to be applied to both Obs first.&#39;</span><span class="p">)</span>
<span class="n">tau_exp</span> <span class="o">=</span> <span class="p">[]</span>
<span class="n">S</span> <span class="o">=</span> <span class="p">[]</span>
<span class="k">for</span> <span class="n">e_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">e_names</span> <span class="o">+</span> <span class="n">obs2</span><span class="o">.</span><span class="n">e_names</span><span class="p">)):</span>
<span class="n">t_1</span> <span class="o">=</span> <span class="n">obs1</span><span class="o">.</span><span class="n">tau_exp</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">e_name</span><span class="p">)</span>
<span class="n">t_2</span> <span class="o">=</span> <span class="n">obs2</span><span class="o">.</span><span class="n">tau_exp</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">e_name</span><span class="p">)</span>
<span class="k">if</span> <span class="n">t_1</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
<span class="n">t_1</span> <span class="o">=</span> <span class="mi">0</span>
<span class="k">if</span> <span class="n">t_2</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
<span class="n">t_2</span> <span class="o">=</span> <span class="mi">0</span>
<span class="n">tau_exp</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="nb">max</span><span class="p">(</span><span class="n">t_1</span><span class="p">,</span> <span class="n">t_2</span><span class="p">))</span>
<span class="n">S_1</span> <span class="o">=</span> <span class="n">obs1</span><span class="o">.</span><span class="n">S</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">e_name</span><span class="p">)</span>
<span class="n">S_2</span> <span class="o">=</span> <span class="n">obs2</span><span class="o">.</span><span class="n">S</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">e_name</span><span class="p">)</span>
<span class="k">if</span> <span class="n">S_1</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
<span class="n">S_1</span> <span class="o">=</span> <span class="n">Obs</span><span class="o">.</span><span class="n">S_global</span>
<span class="k">if</span> <span class="n">S_2</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
<span class="n">S_2</span> <span class="o">=</span> <span class="n">Obs</span><span class="o">.</span><span class="n">S_global</span>
<span class="n">S</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="nb">max</span><span class="p">(</span><span class="n">S_1</span><span class="p">,</span> <span class="n">S_2</span><span class="p">))</span>
<span class="n">check_obs</span> <span class="o">=</span> <span class="n">obs1</span> <span class="o">+</span> <span class="n">obs2</span>
<span class="n">check_obs</span><span class="o">.</span><span class="n">gamma_method</span><span class="p">(</span><span class="n">tau_exp</span><span class="o">=</span><span class="n">tau_exp</span><span class="p">,</span> <span class="n">S</span><span class="o">=</span><span class="n">S</span><span class="p">)</span>
<span class="k">if</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;plot&#39;</span><span class="p">):</span>
<span class="n">check_obs</span><span class="o">.</span><span class="n">plot_tauint</span><span class="p">()</span>
<span class="n">check_obs</span><span class="o">.</span><span class="n">plot_rho</span><span class="p">()</span>
<span class="n">cov</span> <span class="o">=</span> <span class="p">(</span><span class="n">check_obs</span><span class="o">.</span><span class="n">dvalue</span> <span class="o">**</span> <span class="mi">2</span> <span class="o">-</span> <span class="n">obs1</span><span class="o">.</span><span class="n">dvalue</span> <span class="o">**</span> <span class="mi">2</span> <span class="o">-</span> <span class="n">obs2</span><span class="o">.</span><span class="n">dvalue</span> <span class="o">**</span> <span class="mi">2</span><span class="p">)</span> <span class="o">/</span> <span class="mi">2</span>
<span class="k">if</span> <span class="n">np</span><span class="o">.</span><span class="n">abs</span><span class="p">(</span><span class="n">cov</span> <span class="o">/</span> <span class="n">obs1</span><span class="o">.</span><span class="n">dvalue</span> <span class="o">/</span> <span class="n">obs2</span><span class="o">.</span><span class="n">dvalue</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mf">1.0</span><span class="p">:</span>
<span class="n">cov</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">sign</span><span class="p">(</span><span class="n">cov</span><span class="p">)</span> <span class="o">*</span> <span class="n">obs1</span><span class="o">.</span><span class="n">dvalue</span> <span class="o">*</span> <span class="n">obs2</span><span class="o">.</span><span class="n">dvalue</span>
<span class="k">if</span> <span class="n">correlation</span><span class="p">:</span>
<span class="n">cov</span> <span class="o">=</span> <span class="n">cov</span> <span class="o">/</span> <span class="n">obs1</span><span class="o">.</span><span class="n">dvalue</span> <span class="o">/</span> <span class="n">obs2</span><span class="o">.</span><span class="n">dvalue</span>
<span class="k">return</span> <span class="n">cov</span>
<span class="k">def</span> <span class="nf">pseudo_Obs</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">dvalue</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">samples</span><span class="o">=</span><span class="mi">1000</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Generate a pseudo Obs with given value, dvalue and name</span>
@ -5277,102 +5210,6 @@ matrices are positive semidefinite.</p>
</div>
</section>
<section id="covariance3">
<div class="attr function"><a class="headerlink" href="#covariance3">#&nbsp;&nbsp</a>
<span class="def">def</span>
<span class="name">covariance3</span><span class="signature">(obs1, obs2, correlation=False, **kwargs)</span>:
</div>
<details>
<summary>View Source</summary>
<div class="codehilite"><pre><span></span><span class="k">def</span> <span class="nf">covariance3</span><span class="p">(</span><span class="n">obs1</span><span class="p">,</span> <span class="n">obs2</span><span class="p">,</span> <span class="n">correlation</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Another alternative implementation of the covariance of two observables.</span>
<span class="sd"> covariance2(obs, obs) is equal to obs.dvalue ** 2</span>
<span class="sd"> Currently only works if ensembles are identical.</span>
<span class="sd"> The gamma method has to be applied first to both observables.</span>
<span class="sd"> If abs(covariance2(obs1, obs2)) &gt; obs1.dvalue * obs2.dvalue, the covariance</span>
<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"> plot -- if true, the integrated autocorrelation time for each ensemble is</span>
<span class="sd"> plotted.</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>
<span class="k">if</span> <span class="p">(</span><span class="n">obs1</span><span class="o">.</span><span class="n">shape</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> <span class="o">!=</span> <span class="n">obs2</span><span class="o">.</span><span class="n">shape</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="p">))</span> <span class="ow">and</span> <span class="p">(</span><span class="n">obs1</span><span class="o">.</span><span class="n">shape</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">)</span> <span class="ow">and</span> <span class="p">(</span><span class="n">obs2</span><span class="o">.</span><span class="n">shape</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">):</span>
<span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;Shapes of ensemble&#39;</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="s1">&#39;do not fit&#39;</span><span class="p">)</span>
<span class="k">if</span> <span class="p">(</span><span class="mi">1</span> <span class="o">!=</span> <span class="nb">len</span><span class="p">(</span><span class="nb">set</span><span class="p">([</span><span class="nb">len</span><span class="p">(</span><span class="n">idx</span><span class="p">)</span> <span class="k">for</span> <span class="n">idx</span> <span class="ow">in</span> <span class="p">[</span><span class="n">obs1</span><span class="o">.</span><span class="n">idl</span><span class="p">[</span><span class="n">name</span><span class="p">],</span> <span class="n">obs2</span><span class="o">.</span><span class="n">idl</span><span class="p">[</span><span class="n">name</span><span class="p">],</span> <span class="n">_merge_idx</span><span class="p">([</span><span class="n">obs1</span><span class="o">.</span><span class="n">idl</span><span class="p">[</span><span class="n">name</span><span class="p">],</span> <span class="n">obs2</span><span class="o">.</span><span class="n">idl</span><span class="p">[</span><span class="n">name</span><span class="p">]])]]))):</span>
<span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;Shapes of ensemble&#39;</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="s1">&#39;do not fit&#39;</span><span class="p">)</span>
<span class="k">if</span> <span class="ow">not</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">obs1</span><span class="p">,</span> <span class="s1">&#39;e_names&#39;</span><span class="p">)</span> <span class="ow">or</span> <span class="ow">not</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">obs2</span><span class="p">,</span> <span class="s1">&#39;e_names&#39;</span><span class="p">):</span>
<span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;The gamma method has to be applied to both Obs first.&#39;</span><span class="p">)</span>
<span class="n">tau_exp</span> <span class="o">=</span> <span class="p">[]</span>
<span class="n">S</span> <span class="o">=</span> <span class="p">[]</span>
<span class="k">for</span> <span class="n">e_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">e_names</span> <span class="o">+</span> <span class="n">obs2</span><span class="o">.</span><span class="n">e_names</span><span class="p">)):</span>
<span class="n">t_1</span> <span class="o">=</span> <span class="n">obs1</span><span class="o">.</span><span class="n">tau_exp</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">e_name</span><span class="p">)</span>
<span class="n">t_2</span> <span class="o">=</span> <span class="n">obs2</span><span class="o">.</span><span class="n">tau_exp</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">e_name</span><span class="p">)</span>
<span class="k">if</span> <span class="n">t_1</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
<span class="n">t_1</span> <span class="o">=</span> <span class="mi">0</span>
<span class="k">if</span> <span class="n">t_2</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
<span class="n">t_2</span> <span class="o">=</span> <span class="mi">0</span>
<span class="n">tau_exp</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="nb">max</span><span class="p">(</span><span class="n">t_1</span><span class="p">,</span> <span class="n">t_2</span><span class="p">))</span>
<span class="n">S_1</span> <span class="o">=</span> <span class="n">obs1</span><span class="o">.</span><span class="n">S</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">e_name</span><span class="p">)</span>
<span class="n">S_2</span> <span class="o">=</span> <span class="n">obs2</span><span class="o">.</span><span class="n">S</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">e_name</span><span class="p">)</span>
<span class="k">if</span> <span class="n">S_1</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
<span class="n">S_1</span> <span class="o">=</span> <span class="n">Obs</span><span class="o">.</span><span class="n">S_global</span>
<span class="k">if</span> <span class="n">S_2</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
<span class="n">S_2</span> <span class="o">=</span> <span class="n">Obs</span><span class="o">.</span><span class="n">S_global</span>
<span class="n">S</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="nb">max</span><span class="p">(</span><span class="n">S_1</span><span class="p">,</span> <span class="n">S_2</span><span class="p">))</span>
<span class="n">check_obs</span> <span class="o">=</span> <span class="n">obs1</span> <span class="o">+</span> <span class="n">obs2</span>
<span class="n">check_obs</span><span class="o">.</span><span class="n">gamma_method</span><span class="p">(</span><span class="n">tau_exp</span><span class="o">=</span><span class="n">tau_exp</span><span class="p">,</span> <span class="n">S</span><span class="o">=</span><span class="n">S</span><span class="p">)</span>
<span class="k">if</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;plot&#39;</span><span class="p">):</span>
<span class="n">check_obs</span><span class="o">.</span><span class="n">plot_tauint</span><span class="p">()</span>
<span class="n">check_obs</span><span class="o">.</span><span class="n">plot_rho</span><span class="p">()</span>
<span class="n">cov</span> <span class="o">=</span> <span class="p">(</span><span class="n">check_obs</span><span class="o">.</span><span class="n">dvalue</span> <span class="o">**</span> <span class="mi">2</span> <span class="o">-</span> <span class="n">obs1</span><span class="o">.</span><span class="n">dvalue</span> <span class="o">**</span> <span class="mi">2</span> <span class="o">-</span> <span class="n">obs2</span><span class="o">.</span><span class="n">dvalue</span> <span class="o">**</span> <span class="mi">2</span><span class="p">)</span> <span class="o">/</span> <span class="mi">2</span>
<span class="k">if</span> <span class="n">np</span><span class="o">.</span><span class="n">abs</span><span class="p">(</span><span class="n">cov</span> <span class="o">/</span> <span class="n">obs1</span><span class="o">.</span><span class="n">dvalue</span> <span class="o">/</span> <span class="n">obs2</span><span class="o">.</span><span class="n">dvalue</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mf">1.0</span><span class="p">:</span>
<span class="n">cov</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">sign</span><span class="p">(</span><span class="n">cov</span><span class="p">)</span> <span class="o">*</span> <span class="n">obs1</span><span class="o">.</span><span class="n">dvalue</span> <span class="o">*</span> <span class="n">obs2</span><span class="o">.</span><span class="n">dvalue</span>
<span class="k">if</span> <span class="n">correlation</span><span class="p">:</span>
<span class="n">cov</span> <span class="o">=</span> <span class="n">cov</span> <span class="o">/</span> <span class="n">obs1</span><span class="o">.</span><span class="n">dvalue</span> <span class="o">/</span> <span class="n">obs2</span><span class="o">.</span><span class="n">dvalue</span>
<span class="k">return</span> <span class="n">cov</span>
</pre></div>
</details>
<div class="docstring"><p>Another alternative implementation of the covariance of two observables.</p>
<p>covariance2(obs, obs) is equal to obs.dvalue ** 2
Currently only works if ensembles are identical.
The gamma method has to be applied first to both observables.</p>
<p>If abs(covariance2(obs1, obs2)) &gt; obs1.dvalue * obs2.dvalue, the covariance
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>
<p>correlation -- if true the correlation instead of the covariance is
returned (default False)
plot -- if true, the integrated autocorrelation time for each ensemble is
plotted.</p>
</div>
</section>
<section id="pseudo_Obs">
<div class="attr function"><a class="headerlink" href="#pseudo_Obs">#&nbsp;&nbsp</a>

File diff suppressed because one or more lines are too long