Documentation updated

This commit is contained in:
fjosw 2025-01-06 09:47:33 +00:00
parent 8a798c838d
commit 35df837bb4
23 changed files with 1983 additions and 1928 deletions

View file

@ -167,8 +167,8 @@ conda<span class="w"> </span>update<span class="w"> </span>-c<span class="w"> </
<h2 id="basic-example">Basic example</h2>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
<span class="kn">import</span> <span class="nn">pyerrors</span> <span class="k">as</span> <span class="nn">pe</span>
<pre><span></span><code><span class="kn">import</span><span class="w"> </span><span class="nn">numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">np</span>
<span class="kn">import</span><span class="w"> </span><span class="nn">pyerrors</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">pe</span>
<span class="n">my_obs</span> <span class="o">=</span> <span class="n">pe</span><span class="o">.</span><span class="n">Obs</span><span class="p">([</span><span class="n">samples</span><span class="p">],</span> <span class="p">[</span><span class="s1">&#39;ensemble_name&#39;</span><span class="p">])</span> <span class="c1"># Initialize an Obs object</span>
<span class="n">my_new_obs</span> <span class="o">=</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">np</span><span class="o">.</span><span class="n">log</span><span class="p">(</span><span class="n">my_obs</span><span class="p">)</span> <span class="o">/</span> <span class="n">my_obs</span> <span class="o">**</span> <span class="mi">2</span> <span class="c1"># Construct derived Obs object</span>
@ -186,7 +186,7 @@ The samples can either be provided as python list or as numpy array.
The second argument is a list containing the names of the respective Monte Carlo chains as strings. These strings uniquely identify a Monte Carlo chain/ensemble. <strong>It is crucial for the correct error propagation that observations from the same Monte Carlo history are labeled with the same name. See <a href="#multiple-ensemblesreplica">Multiple ensembles/replica</a> for details.</strong></p>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="kn">import</span> <span class="nn">pyerrors</span> <span class="k">as</span> <span class="nn">pe</span>
<pre><span></span><code><span class="kn">import</span><span class="w"> </span><span class="nn">pyerrors</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">pe</span>
<span class="n">my_obs</span> <span class="o">=</span> <span class="n">pe</span><span class="o">.</span><span class="n">Obs</span><span class="p">([</span><span class="n">samples</span><span class="p">],</span> <span class="p">[</span><span class="s1">&#39;ensemble_name&#39;</span><span class="p">])</span>
</code></pre>
@ -202,8 +202,8 @@ The required derivatives $\bar{f}_\alpha$ are evaluated up to machine precision
<p>The <code>Obs</code> class is designed such that mathematical numpy functions can be used on <code>Obs</code> just as for regular floats.</p>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
<span class="kn">import</span> <span class="nn">pyerrors</span> <span class="k">as</span> <span class="nn">pe</span>
<pre><span></span><code><span class="kn">import</span><span class="w"> </span><span class="nn">numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">np</span>
<span class="kn">import</span><span class="w"> </span><span class="nn">pyerrors</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">pe</span>
<span class="n">my_obs1</span> <span class="o">=</span> <span class="n">pe</span><span class="o">.</span><span class="n">Obs</span><span class="p">([</span><span class="n">samples1</span><span class="p">],</span> <span class="p">[</span><span class="s1">&#39;ensemble_name&#39;</span><span class="p">])</span>
<span class="n">my_obs2</span> <span class="o">=</span> <span class="n">pe</span><span class="o">.</span><span class="n">Obs</span><span class="p">([</span><span class="n">samples2</span><span class="p">],</span> <span class="p">[</span><span class="s1">&#39;ensemble_name&#39;</span><span class="p">])</span>
@ -232,7 +232,7 @@ After having arrived at the derived quantity of interest the <code>gamma_method<
<span class="o">&gt;</span> <span class="n">Result</span> <span class="mf">1.70000000e+00</span> <span class="o">+/-</span> <span class="mf">5.72046658e-01</span> <span class="o">+/-</span> <span class="mf">7.56746598e-02</span> <span class="p">(</span><span class="mf">33.650</span><span class="o">%</span><span class="p">)</span>
<span class="o">&gt;</span> <span class="n">t_int</span> <span class="mf">2.71422900e+00</span> <span class="o">+/-</span> <span class="mf">6.40320983e-01</span> <span class="n">S</span> <span class="o">=</span> <span class="mf">2.00</span>
<span class="o">&gt;</span> <span class="mi">1000</span> <span class="n">samples</span> <span class="ow">in</span> <span class="mi">1</span> <span class="n">ensemble</span><span class="p">:</span>
<span class="o">&gt;</span> <span class="err">·</span> <span class="n">Ensemble</span> <span class="s1">&#39;ensemble_name&#39;</span> <span class="p">:</span> <span class="mi">1000</span> <span class="n">configurations</span> <span class="p">(</span><span class="kn">from</span> <span class="mi">1</span> <span class="n">to</span> <span class="mi">1000</span><span class="p">)</span>
<span class="o">&gt;</span> <span class="err">·</span> <span class="n">Ensemble</span> <span class="s1">&#39;ensemble_name&#39;</span> <span class="p">:</span> <span class="mi">1000</span> <span class="n">configurations</span> <span class="p">(</span><span class="kn">from</span><span class="w"> </span><span class="mi">1</span> <span class="n">to</span> <span class="mi">1000</span><span class="p">)</span>
</code></pre>
</div>
@ -249,7 +249,7 @@ The standard value for the parameter $S$ of this automatic windowing procedure i
<span class="o">&gt;</span> <span class="n">Result</span> <span class="mf">1.70000000e+00</span> <span class="o">+/-</span> <span class="mf">6.30675201e-01</span> <span class="o">+/-</span> <span class="mf">1.04585650e-01</span> <span class="p">(</span><span class="mf">37.099</span><span class="o">%</span><span class="p">)</span>
<span class="o">&gt;</span> <span class="n">t_int</span> <span class="mf">3.29909703e+00</span> <span class="o">+/-</span> <span class="mf">9.77310102e-01</span> <span class="n">S</span> <span class="o">=</span> <span class="mf">3.00</span>
<span class="o">&gt;</span> <span class="mi">1000</span> <span class="n">samples</span> <span class="ow">in</span> <span class="mi">1</span> <span class="n">ensemble</span><span class="p">:</span>
<span class="o">&gt;</span> <span class="err">·</span> <span class="n">Ensemble</span> <span class="s1">&#39;ensemble_name&#39;</span> <span class="p">:</span> <span class="mi">1000</span> <span class="n">configurations</span> <span class="p">(</span><span class="kn">from</span> <span class="mi">1</span> <span class="n">to</span> <span class="mi">1000</span><span class="p">)</span>
<span class="o">&gt;</span> <span class="err">·</span> <span class="n">Ensemble</span> <span class="s1">&#39;ensemble_name&#39;</span> <span class="p">:</span> <span class="mi">1000</span> <span class="n">configurations</span> <span class="p">(</span><span class="kn">from</span><span class="w"> </span><span class="mi">1</span> <span class="n">to</span> <span class="mi">1000</span><span class="p">)</span>
</code></pre>
</div>
@ -268,7 +268,7 @@ In this case the error estimate is identical to the sample standard error.</p>
<span class="o">&gt;</span> <span class="n">Result</span> <span class="mf">1.70000000e+00</span> <span class="o">+/-</span> <span class="mf">6.28097762e-01</span> <span class="o">+/-</span> <span class="mf">5.79077524e-02</span> <span class="p">(</span><span class="mf">36.947</span><span class="o">%</span><span class="p">)</span>
<span class="o">&gt;</span> <span class="n">t_int</span> <span class="mf">3.27218667e+00</span> <span class="o">+/-</span> <span class="mf">7.99583654e-01</span> <span class="n">tau_exp</span> <span class="o">=</span> <span class="mf">7.20</span><span class="p">,</span> <span class="n">N_sigma</span> <span class="o">=</span> <span class="mi">1</span>
<span class="o">&gt;</span> <span class="mi">1000</span> <span class="n">samples</span> <span class="ow">in</span> <span class="mi">1</span> <span class="n">ensemble</span><span class="p">:</span>
<span class="o">&gt;</span> <span class="err">·</span> <span class="n">Ensemble</span> <span class="s1">&#39;ensemble_name&#39;</span> <span class="p">:</span> <span class="mi">1000</span> <span class="n">configurations</span> <span class="p">(</span><span class="kn">from</span> <span class="mi">1</span> <span class="n">to</span> <span class="mi">1000</span><span class="p">)</span>
<span class="o">&gt;</span> <span class="err">·</span> <span class="n">Ensemble</span> <span class="s1">&#39;ensemble_name&#39;</span> <span class="p">:</span> <span class="mi">1000</span> <span class="n">configurations</span> <span class="p">(</span><span class="kn">from</span><span class="w"> </span><span class="mi">1</span> <span class="n">to</span> <span class="mi">1000</span><span class="p">)</span>
</code></pre>
</div>
@ -286,8 +286,8 @@ In this case the error estimate is identical to the sample standard error.</p>
<span class="n">my_sum</span><span class="o">.</span><span class="n">details</span><span class="p">()</span>
<span class="o">&gt;</span> <span class="n">Result</span> <span class="mf">2.00697958e+00</span>
<span class="o">&gt;</span> <span class="mi">1500</span> <span class="n">samples</span> <span class="ow">in</span> <span class="mi">2</span> <span class="n">ensembles</span><span class="p">:</span>
<span class="o">&gt;</span> <span class="err">·</span> <span class="n">Ensemble</span> <span class="s1">&#39;ensemble1&#39;</span> <span class="p">:</span> <span class="mi">1000</span> <span class="n">configurations</span> <span class="p">(</span><span class="kn">from</span> <span class="mi">1</span> <span class="n">to</span> <span class="mi">1000</span><span class="p">)</span>
<span class="o">&gt;</span> <span class="err">·</span> <span class="n">Ensemble</span> <span class="s1">&#39;ensemble2&#39;</span> <span class="p">:</span> <span class="mi">500</span> <span class="n">configurations</span> <span class="p">(</span><span class="kn">from</span> <span class="mi">1</span> <span class="n">to</span> <span class="mi">500</span><span class="p">)</span>
<span class="o">&gt;</span> <span class="err">·</span> <span class="n">Ensemble</span> <span class="s1">&#39;ensemble1&#39;</span> <span class="p">:</span> <span class="mi">1000</span> <span class="n">configurations</span> <span class="p">(</span><span class="kn">from</span><span class="w"> </span><span class="mi">1</span> <span class="n">to</span> <span class="mi">1000</span><span class="p">)</span>
<span class="o">&gt;</span> <span class="err">·</span> <span class="n">Ensemble</span> <span class="s1">&#39;ensemble2&#39;</span> <span class="p">:</span> <span class="mi">500</span> <span class="n">configurations</span> <span class="p">(</span><span class="kn">from</span><span class="w"> </span><span class="mi">1</span> <span class="n">to</span> <span class="mi">500</span><span class="p">)</span>
</code></pre>
</div>
@ -304,8 +304,8 @@ In this case the error estimate is identical to the sample standard error.</p>
<span class="o">&gt;</span> <span class="n">Result</span> <span class="mf">2.00697958e+00</span>
<span class="o">&gt;</span> <span class="mi">1500</span> <span class="n">samples</span> <span class="ow">in</span> <span class="mi">1</span> <span class="n">ensemble</span><span class="p">:</span>
<span class="o">&gt;</span> <span class="err">·</span> <span class="n">Ensemble</span> <span class="s1">&#39;ensemble1&#39;</span>
<span class="o">&gt;</span> <span class="err">·</span> <span class="n">Replicum</span> <span class="s1">&#39;r01&#39;</span> <span class="p">:</span> <span class="mi">1000</span> <span class="n">configurations</span> <span class="p">(</span><span class="kn">from</span> <span class="mi">1</span> <span class="n">to</span> <span class="mi">1000</span><span class="p">)</span>
<span class="o">&gt;</span> <span class="err">·</span> <span class="n">Replicum</span> <span class="s1">&#39;r02&#39;</span> <span class="p">:</span> <span class="mi">500</span> <span class="n">configurations</span> <span class="p">(</span><span class="kn">from</span> <span class="mi">1</span> <span class="n">to</span> <span class="mi">500</span><span class="p">)</span>
<span class="o">&gt;</span> <span class="err">·</span> <span class="n">Replicum</span> <span class="s1">&#39;r01&#39;</span> <span class="p">:</span> <span class="mi">1000</span> <span class="n">configurations</span> <span class="p">(</span><span class="kn">from</span><span class="w"> </span><span class="mi">1</span> <span class="n">to</span> <span class="mi">1000</span><span class="p">)</span>
<span class="o">&gt;</span> <span class="err">·</span> <span class="n">Replicum</span> <span class="s1">&#39;r02&#39;</span> <span class="p">:</span> <span class="mi">500</span> <span class="n">configurations</span> <span class="p">(</span><span class="kn">from</span><span class="w"> </span><span class="mi">1</span> <span class="n">to</span> <span class="mi">500</span><span class="p">)</span>
</code></pre>
</div>
@ -333,14 +333,14 @@ Passing arguments to the <code>gamma_method</code> still dominates over the dict
<span class="n">obs1</span><span class="o">.</span><span class="n">details</span><span class="p">()</span>
<span class="o">&gt;</span> <span class="n">Result</span> <span class="mf">9.98319881e-01</span>
<span class="o">&gt;</span> <span class="mi">500</span> <span class="n">samples</span> <span class="ow">in</span> <span class="mi">1</span> <span class="n">ensemble</span><span class="p">:</span>
<span class="o">&gt;</span> <span class="err">·</span> <span class="n">Ensemble</span> <span class="s1">&#39;ensemble1&#39;</span> <span class="p">:</span> <span class="mi">500</span> <span class="n">configurations</span> <span class="p">(</span><span class="kn">from</span> <span class="mi">20</span> <span class="n">to</span> <span class="mi">519</span><span class="p">)</span>
<span class="o">&gt;</span> <span class="err">·</span> <span class="n">Ensemble</span> <span class="s1">&#39;ensemble1&#39;</span> <span class="p">:</span> <span class="mi">500</span> <span class="n">configurations</span> <span class="p">(</span><span class="kn">from</span><span class="w"> </span><span class="mi">20</span> <span class="n">to</span> <span class="mi">519</span><span class="p">)</span>
<span class="c1"># Observable defined on every second configuration between 5 and 1003</span>
<span class="n">obs2</span> <span class="o">=</span> <span class="n">pe</span><span class="o">.</span><span class="n">Obs</span><span class="p">([</span><span class="n">samples2</span><span class="p">],</span> <span class="p">[</span><span class="s1">&#39;ensemble1&#39;</span><span class="p">],</span> <span class="n">idl</span><span class="o">=</span><span class="p">[</span><span class="nb">range</span><span class="p">(</span><span class="mi">5</span><span class="p">,</span> <span class="mi">1005</span><span class="p">,</span> <span class="mi">2</span><span class="p">)])</span>
<span class="n">obs2</span><span class="o">.</span><span class="n">details</span><span class="p">()</span>
<span class="o">&gt;</span> <span class="n">Result</span> <span class="mf">9.99100712e-01</span>
<span class="o">&gt;</span> <span class="mi">500</span> <span class="n">samples</span> <span class="ow">in</span> <span class="mi">1</span> <span class="n">ensemble</span><span class="p">:</span>
<span class="o">&gt;</span> <span class="err">·</span> <span class="n">Ensemble</span> <span class="s1">&#39;ensemble1&#39;</span> <span class="p">:</span> <span class="mi">500</span> <span class="n">configurations</span> <span class="p">(</span><span class="kn">from</span> <span class="mi">5</span> <span class="n">to</span> <span class="mi">1003</span> <span class="ow">in</span> <span class="n">steps</span> <span class="n">of</span> <span class="mi">2</span><span class="p">)</span>
<span class="o">&gt;</span> <span class="err">·</span> <span class="n">Ensemble</span> <span class="s1">&#39;ensemble1&#39;</span> <span class="p">:</span> <span class="mi">500</span> <span class="n">configurations</span> <span class="p">(</span><span class="kn">from</span><span class="w"> </span><span class="mi">5</span> <span class="n">to</span> <span class="mi">1003</span> <span class="ow">in</span> <span class="n">steps</span> <span class="n">of</span> <span class="mi">2</span><span class="p">)</span>
<span class="c1"># Observable defined on configurations 2, 9, 28, 29 and 501</span>
<span class="n">obs3</span> <span class="o">=</span> <span class="n">pe</span><span class="o">.</span><span class="n">Obs</span><span class="p">([</span><span class="n">samples3</span><span class="p">],</span> <span class="p">[</span><span class="s1">&#39;ensemble1&#39;</span><span class="p">],</span> <span class="n">idl</span><span class="o">=</span><span class="p">[[</span><span class="mi">2</span><span class="p">,</span> <span class="mi">9</span><span class="p">,</span> <span class="mi">28</span><span class="p">,</span> <span class="mi">29</span><span class="p">,</span> <span class="mi">501</span><span class="p">]])</span>
@ -459,7 +459,7 @@ Make sure to check the autocorrelation time with e.g. <code><a href="pyerrors/ob
<p>This concept is built into the definition of <code>Covobs</code>. In <code><a href="">pyerrors</a></code>, external input is defined by $M$ mean values, a $M\times M$ covariance matrix, where $M=1$ is permissible, and a name that uniquely identifies the covariance matrix. Below, we define the pion mass, based on its mean value and error, 134.9768(5). <strong>Note, that the square of the error enters <code>cov_Obs</code></strong>, since the second argument of this function is the covariance matrix of the <code>Covobs</code>.</p>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="kn">import</span> <span class="nn"><a href="pyerrors/obs.html">pyerrors.obs</a></span> <span class="k">as</span> <span class="nn">pe</span>
<pre><span></span><code><span class="kn">import</span><span class="w"> </span><span class="nn"><a href="pyerrors/obs.html">pyerrors.obs</a></span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">pe</span>
<span class="n">mpi</span> <span class="o">=</span> <span class="n">pe</span><span class="o">.</span><span class="n">cov_Obs</span><span class="p">(</span><span class="mf">134.9768</span><span class="p">,</span> <span class="mf">0.0005</span><span class="o">**</span><span class="mi">2</span><span class="p">,</span> <span class="s1">&#39;pi^0 mass&#39;</span><span class="p">)</span>
<span class="n">mpi</span><span class="o">.</span><span class="n">gamma_method</span><span class="p">()</span>
@ -504,9 +504,9 @@ where the Jacobian is computed for each derived quantity via automatic different
<p>Fit functions have to be of the following form</p>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="kn">import</span> <span class="nn">autograd.numpy</span> <span class="k">as</span> <span class="nn">anp</span>
<pre><span></span><code><span class="kn">import</span><span class="w"> </span><span class="nn">autograd.numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">anp</span>
<span class="k">def</span> <span class="nf">func</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">x</span><span class="p">):</span>
<span class="k">def</span><span class="w"> </span><span class="nf">func</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">x</span><span class="p">):</span>
<span class="k">return</span> <span class="n">a</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">*</span> <span class="n">anp</span><span class="o">.</span><span class="n">exp</span><span class="p">(</span><span class="o">-</span><span class="n">a</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">*</span> <span class="n">x</span><span class="p">)</span>
</code></pre>
</div>
@ -547,7 +547,7 @@ where the Jacobian is computed for each derived quantity via automatic different
<p>For fit functions with multiple independent variables the fit function can be of the form</p>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="k">def</span> <span class="nf">func</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">x</span><span class="p">):</span>
<pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">func</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">x</span><span class="p">):</span>
<span class="p">(</span><span class="n">x1</span><span class="p">,</span> <span class="n">x2</span><span class="p">)</span> <span class="o">=</span> <span class="n">x</span>
<span class="k">return</span> <span class="n">a</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">*</span> <span class="n">x1</span> <span class="o">**</span> <span class="mi">2</span> <span class="o">+</span> <span class="n">a</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">*</span> <span class="n">x2</span>
</code></pre>
@ -1151,19 +1151,19 @@ The following entries are optional:</li>
</span><span id="L-477"><a href="#L-477"><span class="linenos">477</span></a>
</span><span id="L-478"><a href="#L-478"><span class="linenos">478</span></a><span class="sd">Julia I/O routines for the json.gz format, compatible with [ADerrors.jl](https://gitlab.ift.uam-csic.es/alberto/aderrors.jl), can be found [here](https://github.com/fjosw/ADjson.jl).</span>
</span><span id="L-479"><a href="#L-479"><span class="linenos">479</span></a><span class="sd">&#39;&#39;&#39;</span>
</span><span id="L-480"><a href="#L-480"><span class="linenos">480</span></a><span class="kn">from</span> <span class="nn">.obs</span> <span class="kn">import</span> <span class="o">*</span>
</span><span id="L-481"><a href="#L-481"><span class="linenos">481</span></a><span class="kn">from</span> <span class="nn">.correlators</span> <span class="kn">import</span> <span class="o">*</span>
</span><span id="L-482"><a href="#L-482"><span class="linenos">482</span></a><span class="kn">from</span> <span class="nn">.fits</span> <span class="kn">import</span> <span class="o">*</span>
</span><span id="L-483"><a href="#L-483"><span class="linenos">483</span></a><span class="kn">from</span> <span class="nn">.misc</span> <span class="kn">import</span> <span class="o">*</span>
</span><span id="L-484"><a href="#L-484"><span class="linenos">484</span></a><span class="kn">from</span> <span class="nn">.</span> <span class="kn">import</span> <span class="n">dirac</span> <span class="k">as</span> <span class="n">dirac</span>
</span><span id="L-485"><a href="#L-485"><span class="linenos">485</span></a><span class="kn">from</span> <span class="nn">.</span> <span class="kn">import</span> <span class="nb">input</span> <span class="k">as</span> <span class="nb">input</span>
</span><span id="L-486"><a href="#L-486"><span class="linenos">486</span></a><span class="kn">from</span> <span class="nn">.</span> <span class="kn">import</span> <span class="n">linalg</span> <span class="k">as</span> <span class="n">linalg</span>
</span><span id="L-487"><a href="#L-487"><span class="linenos">487</span></a><span class="kn">from</span> <span class="nn">.</span> <span class="kn">import</span> <span class="n">mpm</span> <span class="k">as</span> <span class="n">mpm</span>
</span><span id="L-488"><a href="#L-488"><span class="linenos">488</span></a><span class="kn">from</span> <span class="nn">.</span> <span class="kn">import</span> <span class="n">roots</span> <span class="k">as</span> <span class="n">roots</span>
</span><span id="L-489"><a href="#L-489"><span class="linenos">489</span></a><span class="kn">from</span> <span class="nn">.</span> <span class="kn">import</span> <span class="n">integrate</span> <span class="k">as</span> <span class="n">integrate</span>
</span><span id="L-490"><a href="#L-490"><span class="linenos">490</span></a><span class="kn">from</span> <span class="nn">.</span> <span class="kn">import</span> <span class="n">special</span> <span class="k">as</span> <span class="n">special</span>
</span><span id="L-480"><a href="#L-480"><span class="linenos">480</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">.obs</span><span class="w"> </span><span class="kn">import</span> <span class="o">*</span>
</span><span id="L-481"><a href="#L-481"><span class="linenos">481</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">.correlators</span><span class="w"> </span><span class="kn">import</span> <span class="o">*</span>
</span><span id="L-482"><a href="#L-482"><span class="linenos">482</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">.fits</span><span class="w"> </span><span class="kn">import</span> <span class="o">*</span>
</span><span id="L-483"><a href="#L-483"><span class="linenos">483</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">.misc</span><span class="w"> </span><span class="kn">import</span> <span class="o">*</span>
</span><span id="L-484"><a href="#L-484"><span class="linenos">484</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">.</span><span class="w"> </span><span class="kn">import</span> <span class="n">dirac</span> <span class="k">as</span> <span class="n">dirac</span>
</span><span id="L-485"><a href="#L-485"><span class="linenos">485</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">.</span><span class="w"> </span><span class="kn">import</span> <span class="nb">input</span> <span class="k">as</span> <span class="nb">input</span>
</span><span id="L-486"><a href="#L-486"><span class="linenos">486</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">.</span><span class="w"> </span><span class="kn">import</span> <span class="n">linalg</span> <span class="k">as</span> <span class="n">linalg</span>
</span><span id="L-487"><a href="#L-487"><span class="linenos">487</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">.</span><span class="w"> </span><span class="kn">import</span> <span class="n">mpm</span> <span class="k">as</span> <span class="n">mpm</span>
</span><span id="L-488"><a href="#L-488"><span class="linenos">488</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">.</span><span class="w"> </span><span class="kn">import</span> <span class="n">roots</span> <span class="k">as</span> <span class="n">roots</span>
</span><span id="L-489"><a href="#L-489"><span class="linenos">489</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">.</span><span class="w"> </span><span class="kn">import</span> <span class="n">integrate</span> <span class="k">as</span> <span class="n">integrate</span>
</span><span id="L-490"><a href="#L-490"><span class="linenos">490</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">.</span><span class="w"> </span><span class="kn">import</span> <span class="n">special</span> <span class="k">as</span> <span class="n">special</span>
</span><span id="L-491"><a href="#L-491"><span class="linenos">491</span></a>
</span><span id="L-492"><a href="#L-492"><span class="linenos">492</span></a><span class="kn">from</span> <span class="nn">.version</span> <span class="kn">import</span> <span class="n">__version__</span> <span class="k">as</span> <span class="n">__version__</span>
</span><span id="L-492"><a href="#L-492"><span class="linenos">492</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">.version</span><span class="w"> </span><span class="kn">import</span> <span class="n">__version__</span> <span class="k">as</span> <span class="n">__version__</span>
</span></pre></div>

File diff suppressed because it is too large Load diff

View file

@ -97,12 +97,12 @@
<label class="view-source-button" for="mod-covobs-view-source"><span>View Source</span></label>
<div class="pdoc-code codehilite"><pre><span></span><span id="L-1"><a href="#L-1"><span class="linenos"> 1</span></a><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="L-1"><a href="#L-1"><span class="linenos"> 1</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">np</span>
</span><span id="L-2"><a href="#L-2"><span class="linenos"> 2</span></a>
</span><span id="L-3"><a href="#L-3"><span class="linenos"> 3</span></a>
</span><span id="L-4"><a href="#L-4"><span class="linenos"> 4</span></a><span class="k">class</span> <span class="nc">Covobs</span><span class="p">:</span>
</span><span id="L-4"><a href="#L-4"><span class="linenos"> 4</span></a><span class="k">class</span><span class="w"> </span><span class="nc">Covobs</span><span class="p">:</span>
</span><span id="L-5"><a href="#L-5"><span class="linenos"> 5</span></a>
</span><span id="L-6"><a href="#L-6"><span class="linenos"> 6</span></a> <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">mean</span><span class="p">,</span> <span class="n">cov</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">pos</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">grad</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
</span><span id="L-6"><a href="#L-6"><span class="linenos"> 6</span></a> <span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mean</span><span class="p">,</span> <span class="n">cov</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">pos</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">grad</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
</span><span id="L-7"><a href="#L-7"><span class="linenos"> 7</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot; Initialize Covobs object.</span>
</span><span id="L-8"><a href="#L-8"><span class="linenos"> 8</span></a>
</span><span id="L-9"><a href="#L-9"><span class="linenos"> 9</span></a><span class="sd"> Parameters</span>
@ -138,12 +138,12 @@
</span><span id="L-39"><a href="#L-39"><span class="linenos"> 39</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_set_grad</span><span class="p">(</span><span class="n">grad</span><span class="p">)</span>
</span><span id="L-40"><a href="#L-40"><span class="linenos"> 40</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">value</span> <span class="o">=</span> <span class="n">mean</span>
</span><span id="L-41"><a href="#L-41"><span class="linenos"> 41</span></a>
</span><span id="L-42"><a href="#L-42"><span class="linenos"> 42</span></a> <span class="k">def</span> <span class="nf">errsq</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="L-42"><a href="#L-42"><span class="linenos"> 42</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">errsq</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="L-43"><a href="#L-43"><span class="linenos"> 43</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot; Return the variance (= square of the error) of the Covobs</span>
</span><span id="L-44"><a href="#L-44"><span class="linenos"> 44</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-45"><a href="#L-45"><span class="linenos"> 45</span></a> <span class="k">return</span> <span class="n">np</span><span class="o">.</span><span class="n">dot</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">transpose</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">grad</span><span class="p">),</span> <span class="n">np</span><span class="o">.</span><span class="n">dot</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">cov</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">grad</span><span class="p">))</span><span class="o">.</span><span class="n">item</span><span class="p">()</span>
</span><span id="L-46"><a href="#L-46"><span class="linenos"> 46</span></a>
</span><span id="L-47"><a href="#L-47"><span class="linenos"> 47</span></a> <span class="k">def</span> <span class="nf">_set_cov</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">cov</span><span class="p">):</span>
</span><span id="L-47"><a href="#L-47"><span class="linenos"> 47</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">_set_cov</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">cov</span><span class="p">):</span>
</span><span id="L-48"><a href="#L-48"><span class="linenos"> 48</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot; Set the covariance matrix of the covobs</span>
</span><span id="L-49"><a href="#L-49"><span class="linenos"> 49</span></a>
</span><span id="L-50"><a href="#L-50"><span class="linenos"> 50</span></a><span class="sd"> Parameters</span>
@ -178,7 +178,7 @@
</span><span id="L-79"><a href="#L-79"><span class="linenos"> 79</span></a> <span class="k">if</span> <span class="n">ev</span> <span class="o">&lt;</span> <span class="mi">0</span><span class="p">:</span>
</span><span id="L-80"><a href="#L-80"><span class="linenos"> 80</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;Covariance matrix is not positive-semidefinite!&#39;</span><span class="p">)</span>
</span><span id="L-81"><a href="#L-81"><span class="linenos"> 81</span></a>
</span><span id="L-82"><a href="#L-82"><span class="linenos"> 82</span></a> <span class="k">def</span> <span class="nf">_set_grad</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">grad</span><span class="p">):</span>
</span><span id="L-82"><a href="#L-82"><span class="linenos"> 82</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">_set_grad</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">grad</span><span class="p">):</span>
</span><span id="L-83"><a href="#L-83"><span class="linenos"> 83</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot; Set the gradient of the covobs</span>
</span><span id="L-84"><a href="#L-84"><span class="linenos"> 84</span></a>
</span><span id="L-85"><a href="#L-85"><span class="linenos"> 85</span></a><span class="sd"> Parameters</span>
@ -195,11 +195,11 @@
</span><span id="L-96"><a href="#L-96"><span class="linenos"> 96</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;Invalid dimension of grad!&#39;</span><span class="p">)</span>
</span><span id="L-97"><a href="#L-97"><span class="linenos"> 97</span></a>
</span><span id="L-98"><a href="#L-98"><span class="linenos"> 98</span></a> <span class="nd">@property</span>
</span><span id="L-99"><a href="#L-99"><span class="linenos"> 99</span></a> <span class="k">def</span> <span class="nf">cov</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="L-99"><a href="#L-99"><span class="linenos"> 99</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">cov</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="L-100"><a href="#L-100"><span class="linenos">100</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_cov</span>
</span><span id="L-101"><a href="#L-101"><span class="linenos">101</span></a>
</span><span id="L-102"><a href="#L-102"><span class="linenos">102</span></a> <span class="nd">@property</span>
</span><span id="L-103"><a href="#L-103"><span class="linenos">103</span></a> <span class="k">def</span> <span class="nf">grad</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="L-103"><a href="#L-103"><span class="linenos">103</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">grad</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="L-104"><a href="#L-104"><span class="linenos">104</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_grad</span>
</span></pre></div>
@ -216,9 +216,9 @@
</div>
<a class="headerlink" href="#Covobs"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Covobs-5"><a href="#Covobs-5"><span class="linenos"> 5</span></a><span class="k">class</span> <span class="nc">Covobs</span><span class="p">:</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="Covobs-5"><a href="#Covobs-5"><span class="linenos"> 5</span></a><span class="k">class</span><span class="w"> </span><span class="nc">Covobs</span><span class="p">:</span>
</span><span id="Covobs-6"><a href="#Covobs-6"><span class="linenos"> 6</span></a>
</span><span id="Covobs-7"><a href="#Covobs-7"><span class="linenos"> 7</span></a> <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">mean</span><span class="p">,</span> <span class="n">cov</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">pos</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">grad</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
</span><span id="Covobs-7"><a href="#Covobs-7"><span class="linenos"> 7</span></a> <span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mean</span><span class="p">,</span> <span class="n">cov</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">pos</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">grad</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
</span><span id="Covobs-8"><a href="#Covobs-8"><span class="linenos"> 8</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot; Initialize Covobs object.</span>
</span><span id="Covobs-9"><a href="#Covobs-9"><span class="linenos"> 9</span></a>
</span><span id="Covobs-10"><a href="#Covobs-10"><span class="linenos"> 10</span></a><span class="sd"> Parameters</span>
@ -254,12 +254,12 @@
</span><span id="Covobs-40"><a href="#Covobs-40"><span class="linenos"> 40</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_set_grad</span><span class="p">(</span><span class="n">grad</span><span class="p">)</span>
</span><span id="Covobs-41"><a href="#Covobs-41"><span class="linenos"> 41</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">value</span> <span class="o">=</span> <span class="n">mean</span>
</span><span id="Covobs-42"><a href="#Covobs-42"><span class="linenos"> 42</span></a>
</span><span id="Covobs-43"><a href="#Covobs-43"><span class="linenos"> 43</span></a> <span class="k">def</span> <span class="nf">errsq</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="Covobs-43"><a href="#Covobs-43"><span class="linenos"> 43</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">errsq</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="Covobs-44"><a href="#Covobs-44"><span class="linenos"> 44</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot; Return the variance (= square of the error) of the Covobs</span>
</span><span id="Covobs-45"><a href="#Covobs-45"><span class="linenos"> 45</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Covobs-46"><a href="#Covobs-46"><span class="linenos"> 46</span></a> <span class="k">return</span> <span class="n">np</span><span class="o">.</span><span class="n">dot</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">transpose</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">grad</span><span class="p">),</span> <span class="n">np</span><span class="o">.</span><span class="n">dot</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">cov</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">grad</span><span class="p">))</span><span class="o">.</span><span class="n">item</span><span class="p">()</span>
</span><span id="Covobs-47"><a href="#Covobs-47"><span class="linenos"> 47</span></a>
</span><span id="Covobs-48"><a href="#Covobs-48"><span class="linenos"> 48</span></a> <span class="k">def</span> <span class="nf">_set_cov</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">cov</span><span class="p">):</span>
</span><span id="Covobs-48"><a href="#Covobs-48"><span class="linenos"> 48</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">_set_cov</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">cov</span><span class="p">):</span>
</span><span id="Covobs-49"><a href="#Covobs-49"><span class="linenos"> 49</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot; Set the covariance matrix of the covobs</span>
</span><span id="Covobs-50"><a href="#Covobs-50"><span class="linenos"> 50</span></a>
</span><span id="Covobs-51"><a href="#Covobs-51"><span class="linenos"> 51</span></a><span class="sd"> Parameters</span>
@ -294,7 +294,7 @@
</span><span id="Covobs-80"><a href="#Covobs-80"><span class="linenos"> 80</span></a> <span class="k">if</span> <span class="n">ev</span> <span class="o">&lt;</span> <span class="mi">0</span><span class="p">:</span>
</span><span id="Covobs-81"><a href="#Covobs-81"><span class="linenos"> 81</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;Covariance matrix is not positive-semidefinite!&#39;</span><span class="p">)</span>
</span><span id="Covobs-82"><a href="#Covobs-82"><span class="linenos"> 82</span></a>
</span><span id="Covobs-83"><a href="#Covobs-83"><span class="linenos"> 83</span></a> <span class="k">def</span> <span class="nf">_set_grad</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">grad</span><span class="p">):</span>
</span><span id="Covobs-83"><a href="#Covobs-83"><span class="linenos"> 83</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">_set_grad</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">grad</span><span class="p">):</span>
</span><span id="Covobs-84"><a href="#Covobs-84"><span class="linenos"> 84</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot; Set the gradient of the covobs</span>
</span><span id="Covobs-85"><a href="#Covobs-85"><span class="linenos"> 85</span></a>
</span><span id="Covobs-86"><a href="#Covobs-86"><span class="linenos"> 86</span></a><span class="sd"> Parameters</span>
@ -311,11 +311,11 @@
</span><span id="Covobs-97"><a href="#Covobs-97"><span class="linenos"> 97</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;Invalid dimension of grad!&#39;</span><span class="p">)</span>
</span><span id="Covobs-98"><a href="#Covobs-98"><span class="linenos"> 98</span></a>
</span><span id="Covobs-99"><a href="#Covobs-99"><span class="linenos"> 99</span></a> <span class="nd">@property</span>
</span><span id="Covobs-100"><a href="#Covobs-100"><span class="linenos">100</span></a> <span class="k">def</span> <span class="nf">cov</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="Covobs-100"><a href="#Covobs-100"><span class="linenos">100</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">cov</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="Covobs-101"><a href="#Covobs-101"><span class="linenos">101</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_cov</span>
</span><span id="Covobs-102"><a href="#Covobs-102"><span class="linenos">102</span></a>
</span><span id="Covobs-103"><a href="#Covobs-103"><span class="linenos">103</span></a> <span class="nd">@property</span>
</span><span id="Covobs-104"><a href="#Covobs-104"><span class="linenos">104</span></a> <span class="k">def</span> <span class="nf">grad</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="Covobs-104"><a href="#Covobs-104"><span class="linenos">104</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">grad</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="Covobs-105"><a href="#Covobs-105"><span class="linenos">105</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_grad</span>
</span></pre></div>
@ -332,7 +332,7 @@
</div>
<a class="headerlink" href="#Covobs.__init__"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Covobs.__init__-7"><a href="#Covobs.__init__-7"><span class="linenos"> 7</span></a> <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">mean</span><span class="p">,</span> <span class="n">cov</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">pos</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">grad</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="Covobs.__init__-7"><a href="#Covobs.__init__-7"><span class="linenos"> 7</span></a> <span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mean</span><span class="p">,</span> <span class="n">cov</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">pos</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">grad</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
</span><span id="Covobs.__init__-8"><a href="#Covobs.__init__-8"><span class="linenos"> 8</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot; Initialize Covobs object.</span>
</span><span id="Covobs.__init__-9"><a href="#Covobs.__init__-9"><span class="linenos"> 9</span></a>
</span><span id="Covobs.__init__-10"><a href="#Covobs.__init__-10"><span class="linenos">10</span></a><span class="sd"> Parameters</span>
@ -424,7 +424,7 @@ Gradient of the Covobs wrt. the means belonging to cov.</li>
</div>
<a class="headerlink" href="#Covobs.errsq"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Covobs.errsq-43"><a href="#Covobs.errsq-43"><span class="linenos">43</span></a> <span class="k">def</span> <span class="nf">errsq</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="Covobs.errsq-43"><a href="#Covobs.errsq-43"><span class="linenos">43</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">errsq</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="Covobs.errsq-44"><a href="#Covobs.errsq-44"><span class="linenos">44</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot; Return the variance (= square of the error) of the Covobs</span>
</span><span id="Covobs.errsq-45"><a href="#Covobs.errsq-45"><span class="linenos">45</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Covobs.errsq-46"><a href="#Covobs.errsq-46"><span class="linenos">46</span></a> <span class="k">return</span> <span class="n">np</span><span class="o">.</span><span class="n">dot</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">transpose</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">grad</span><span class="p">),</span> <span class="n">np</span><span class="o">.</span><span class="n">dot</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">cov</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">grad</span><span class="p">))</span><span class="o">.</span><span class="n">item</span><span class="p">()</span>
@ -446,7 +446,7 @@ Gradient of the Covobs wrt. the means belonging to cov.</li>
</div>
<a class="headerlink" href="#Covobs.cov"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Covobs.cov-99"><a href="#Covobs.cov-99"><span class="linenos"> 99</span></a> <span class="nd">@property</span>
</span><span id="Covobs.cov-100"><a href="#Covobs.cov-100"><span class="linenos">100</span></a> <span class="k">def</span> <span class="nf">cov</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="Covobs.cov-100"><a href="#Covobs.cov-100"><span class="linenos">100</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">cov</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="Covobs.cov-101"><a href="#Covobs.cov-101"><span class="linenos">101</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_cov</span>
</span></pre></div>
@ -464,7 +464,7 @@ Gradient of the Covobs wrt. the means belonging to cov.</li>
</div>
<a class="headerlink" href="#Covobs.grad"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Covobs.grad-103"><a href="#Covobs.grad-103"><span class="linenos">103</span></a> <span class="nd">@property</span>
</span><span id="Covobs.grad-104"><a href="#Covobs.grad-104"><span class="linenos">104</span></a> <span class="k">def</span> <span class="nf">grad</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="Covobs.grad-104"><a href="#Covobs.grad-104"><span class="linenos">104</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">grad</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="Covobs.grad-105"><a href="#Covobs.grad-105"><span class="linenos">105</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_grad</span>
</span></pre></div>

View file

@ -103,7 +103,7 @@
<label class="view-source-button" for="mod-dirac-view-source"><span>View Source</span></label>
<div class="pdoc-code codehilite"><pre><span></span><span id="L-1"><a href="#L-1"><span class="linenos"> 1</span></a><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="L-1"><a href="#L-1"><span class="linenos"> 1</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">np</span>
</span><span id="L-2"><a href="#L-2"><span class="linenos"> 2</span></a>
</span><span id="L-3"><a href="#L-3"><span class="linenos"> 3</span></a>
</span><span id="L-4"><a href="#L-4"><span class="linenos"> 4</span></a><span class="n">gammaX</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span>
@ -127,7 +127,7 @@
</span><span id="L-22"><a href="#L-22"><span class="linenos">22</span></a> <span class="n">dtype</span><span class="o">=</span><span class="nb">complex</span><span class="p">)</span>
</span><span id="L-23"><a href="#L-23"><span class="linenos">23</span></a>
</span><span id="L-24"><a href="#L-24"><span class="linenos">24</span></a>
</span><span id="L-25"><a href="#L-25"><span class="linenos">25</span></a><span class="k">def</span> <span class="nf">epsilon_tensor</span><span class="p">(</span><span class="n">i</span><span class="p">,</span> <span class="n">j</span><span class="p">,</span> <span class="n">k</span><span class="p">):</span>
</span><span id="L-25"><a href="#L-25"><span class="linenos">25</span></a><span class="k">def</span><span class="w"> </span><span class="nf">epsilon_tensor</span><span class="p">(</span><span class="n">i</span><span class="p">,</span> <span class="n">j</span><span class="p">,</span> <span class="n">k</span><span class="p">):</span>
</span><span id="L-26"><a href="#L-26"><span class="linenos">26</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Rank-3 epsilon tensor</span>
</span><span id="L-27"><a href="#L-27"><span class="linenos">27</span></a>
</span><span id="L-28"><a href="#L-28"><span class="linenos">28</span></a><span class="sd"> Based on https://codegolf.stackexchange.com/a/160375</span>
@ -144,7 +144,7 @@
</span><span id="L-39"><a href="#L-39"><span class="linenos">39</span></a> <span class="k">return</span> <span class="p">(</span><span class="n">i</span> <span class="o">-</span> <span class="n">j</span><span class="p">)</span> <span class="o">*</span> <span class="p">(</span><span class="n">j</span> <span class="o">-</span> <span class="n">k</span><span class="p">)</span> <span class="o">*</span> <span class="p">(</span><span class="n">k</span> <span class="o">-</span> <span class="n">i</span><span class="p">)</span> <span class="o">/</span> <span class="mi">2</span>
</span><span id="L-40"><a href="#L-40"><span class="linenos">40</span></a>
</span><span id="L-41"><a href="#L-41"><span class="linenos">41</span></a>
</span><span id="L-42"><a href="#L-42"><span class="linenos">42</span></a><span class="k">def</span> <span class="nf">epsilon_tensor_rank4</span><span class="p">(</span><span class="n">i</span><span class="p">,</span> <span class="n">j</span><span class="p">,</span> <span class="n">k</span><span class="p">,</span> <span class="n">o</span><span class="p">):</span>
</span><span id="L-42"><a href="#L-42"><span class="linenos">42</span></a><span class="k">def</span><span class="w"> </span><span class="nf">epsilon_tensor_rank4</span><span class="p">(</span><span class="n">i</span><span class="p">,</span> <span class="n">j</span><span class="p">,</span> <span class="n">k</span><span class="p">,</span> <span class="n">o</span><span class="p">):</span>
</span><span id="L-43"><a href="#L-43"><span class="linenos">43</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Rank-4 epsilon tensor</span>
</span><span id="L-44"><a href="#L-44"><span class="linenos">44</span></a>
</span><span id="L-45"><a href="#L-45"><span class="linenos">45</span></a><span class="sd"> Extension of https://codegolf.stackexchange.com/a/160375</span>
@ -162,7 +162,7 @@
</span><span id="L-57"><a href="#L-57"><span class="linenos">57</span></a> <span class="k">return</span> <span class="p">(</span><span class="n">i</span> <span class="o">-</span> <span class="n">j</span><span class="p">)</span> <span class="o">*</span> <span class="p">(</span><span class="n">j</span> <span class="o">-</span> <span class="n">k</span><span class="p">)</span> <span class="o">*</span> <span class="p">(</span><span class="n">k</span> <span class="o">-</span> <span class="n">i</span><span class="p">)</span> <span class="o">*</span> <span class="p">(</span><span class="n">i</span> <span class="o">-</span> <span class="n">o</span><span class="p">)</span> <span class="o">*</span> <span class="p">(</span><span class="n">j</span> <span class="o">-</span> <span class="n">o</span><span class="p">)</span> <span class="o">*</span> <span class="p">(</span><span class="n">o</span> <span class="o">-</span> <span class="n">k</span><span class="p">)</span> <span class="o">/</span> <span class="mi">12</span>
</span><span id="L-58"><a href="#L-58"><span class="linenos">58</span></a>
</span><span id="L-59"><a href="#L-59"><span class="linenos">59</span></a>
</span><span id="L-60"><a href="#L-60"><span class="linenos">60</span></a><span class="k">def</span> <span class="nf">Grid_gamma</span><span class="p">(</span><span class="n">gamma_tag</span><span class="p">):</span>
</span><span id="L-60"><a href="#L-60"><span class="linenos">60</span></a><span class="k">def</span><span class="w"> </span><span class="nf">Grid_gamma</span><span class="p">(</span><span class="n">gamma_tag</span><span class="p">):</span>
</span><span id="L-61"><a href="#L-61"><span class="linenos">61</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Returns gamma matrix in Grid labeling.&quot;&quot;&quot;</span>
</span><span id="L-62"><a href="#L-62"><span class="linenos">62</span></a> <span class="k">if</span> <span class="n">gamma_tag</span> <span class="o">==</span> <span class="s1">&#39;Identity&#39;</span><span class="p">:</span>
</span><span id="L-63"><a href="#L-63"><span class="linenos">63</span></a> <span class="n">g</span> <span class="o">=</span> <span class="n">identity</span>
@ -341,7 +341,7 @@
</div>
<a class="headerlink" href="#epsilon_tensor"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="epsilon_tensor-26"><a href="#epsilon_tensor-26"><span class="linenos">26</span></a><span class="k">def</span> <span class="nf">epsilon_tensor</span><span class="p">(</span><span class="n">i</span><span class="p">,</span> <span class="n">j</span><span class="p">,</span> <span class="n">k</span><span class="p">):</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="epsilon_tensor-26"><a href="#epsilon_tensor-26"><span class="linenos">26</span></a><span class="k">def</span><span class="w"> </span><span class="nf">epsilon_tensor</span><span class="p">(</span><span class="n">i</span><span class="p">,</span> <span class="n">j</span><span class="p">,</span> <span class="n">k</span><span class="p">):</span>
</span><span id="epsilon_tensor-27"><a href="#epsilon_tensor-27"><span class="linenos">27</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Rank-3 epsilon tensor</span>
</span><span id="epsilon_tensor-28"><a href="#epsilon_tensor-28"><span class="linenos">28</span></a>
</span><span id="epsilon_tensor-29"><a href="#epsilon_tensor-29"><span class="linenos">29</span></a><span class="sd"> Based on https://codegolf.stackexchange.com/a/160375</span>
@ -384,7 +384,7 @@ Element (i,j,k) of the epsilon tensor of rank 3</li>
</div>
<a class="headerlink" href="#epsilon_tensor_rank4"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="epsilon_tensor_rank4-43"><a href="#epsilon_tensor_rank4-43"><span class="linenos">43</span></a><span class="k">def</span> <span class="nf">epsilon_tensor_rank4</span><span class="p">(</span><span class="n">i</span><span class="p">,</span> <span class="n">j</span><span class="p">,</span> <span class="n">k</span><span class="p">,</span> <span class="n">o</span><span class="p">):</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="epsilon_tensor_rank4-43"><a href="#epsilon_tensor_rank4-43"><span class="linenos">43</span></a><span class="k">def</span><span class="w"> </span><span class="nf">epsilon_tensor_rank4</span><span class="p">(</span><span class="n">i</span><span class="p">,</span> <span class="n">j</span><span class="p">,</span> <span class="n">k</span><span class="p">,</span> <span class="n">o</span><span class="p">):</span>
</span><span id="epsilon_tensor_rank4-44"><a href="#epsilon_tensor_rank4-44"><span class="linenos">44</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Rank-4 epsilon tensor</span>
</span><span id="epsilon_tensor_rank4-45"><a href="#epsilon_tensor_rank4-45"><span class="linenos">45</span></a>
</span><span id="epsilon_tensor_rank4-46"><a href="#epsilon_tensor_rank4-46"><span class="linenos">46</span></a><span class="sd"> Extension of https://codegolf.stackexchange.com/a/160375</span>
@ -428,7 +428,7 @@ Element (i,j,k,o) of the epsilon tensor of rank 4</li>
</div>
<a class="headerlink" href="#Grid_gamma"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Grid_gamma-61"><a href="#Grid_gamma-61"><span class="linenos">61</span></a><span class="k">def</span> <span class="nf">Grid_gamma</span><span class="p">(</span><span class="n">gamma_tag</span><span class="p">):</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="Grid_gamma-61"><a href="#Grid_gamma-61"><span class="linenos">61</span></a><span class="k">def</span><span class="w"> </span><span class="nf">Grid_gamma</span><span class="p">(</span><span class="n">gamma_tag</span><span class="p">):</span>
</span><span id="Grid_gamma-62"><a href="#Grid_gamma-62"><span class="linenos">62</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Returns gamma matrix in Grid labeling.&quot;&quot;&quot;</span>
</span><span id="Grid_gamma-63"><a href="#Grid_gamma-63"><span class="linenos">63</span></a> <span class="k">if</span> <span class="n">gamma_tag</span> <span class="o">==</span> <span class="s1">&#39;Identity&#39;</span><span class="p">:</span>
</span><span id="Grid_gamma-64"><a href="#Grid_gamma-64"><span class="linenos">64</span></a> <span class="n">g</span> <span class="o">=</span> <span class="n">identity</span>

View file

@ -109,26 +109,26 @@
<label class="view-source-button" for="mod-fits-view-source"><span>View Source</span></label>
<div class="pdoc-code codehilite"><pre><span></span><span id="L-1"><a href="#L-1"><span class="linenos"> 1</span></a><span class="kn">import</span> <span class="nn">gc</span>
</span><span id="L-2"><a href="#L-2"><span class="linenos"> 2</span></a><span class="kn">from</span> <span class="nn">collections.abc</span> <span class="kn">import</span> <span class="n">Sequence</span>
</span><span id="L-3"><a href="#L-3"><span class="linenos"> 3</span></a><span class="kn">import</span> <span class="nn">warnings</span>
</span><span id="L-4"><a href="#L-4"><span class="linenos"> 4</span></a><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
</span><span id="L-5"><a href="#L-5"><span class="linenos"> 5</span></a><span class="kn">import</span> <span class="nn">autograd.numpy</span> <span class="k">as</span> <span class="nn">anp</span>
</span><span id="L-6"><a href="#L-6"><span class="linenos"> 6</span></a><span class="kn">import</span> <span class="nn">scipy.optimize</span>
</span><span id="L-7"><a href="#L-7"><span class="linenos"> 7</span></a><span class="kn">import</span> <span class="nn">scipy.stats</span>
</span><span id="L-8"><a href="#L-8"><span class="linenos"> 8</span></a><span class="kn">import</span> <span class="nn">matplotlib.pyplot</span> <span class="k">as</span> <span class="nn">plt</span>
</span><span id="L-9"><a href="#L-9"><span class="linenos"> 9</span></a><span class="kn">from</span> <span class="nn">matplotlib</span> <span class="kn">import</span> <span class="n">gridspec</span>
</span><span id="L-10"><a href="#L-10"><span class="linenos"> 10</span></a><span class="kn">from</span> <span class="nn">scipy.odr</span> <span class="kn">import</span> <span class="n">ODR</span><span class="p">,</span> <span class="n">Model</span><span class="p">,</span> <span class="n">RealData</span>
</span><span id="L-11"><a href="#L-11"><span class="linenos"> 11</span></a><span class="kn">import</span> <span class="nn">iminuit</span>
</span><span id="L-12"><a href="#L-12"><span class="linenos"> 12</span></a><span class="kn">from</span> <span class="nn">autograd</span> <span class="kn">import</span> <span class="n">jacobian</span> <span class="k">as</span> <span class="n">auto_jacobian</span>
</span><span id="L-13"><a href="#L-13"><span class="linenos"> 13</span></a><span class="kn">from</span> <span class="nn">autograd</span> <span class="kn">import</span> <span class="n">hessian</span> <span class="k">as</span> <span class="n">auto_hessian</span>
</span><span id="L-14"><a href="#L-14"><span class="linenos"> 14</span></a><span class="kn">from</span> <span class="nn">autograd</span> <span class="kn">import</span> <span class="n">elementwise_grad</span> <span class="k">as</span> <span class="n">egrad</span>
</span><span id="L-15"><a href="#L-15"><span class="linenos"> 15</span></a><span class="kn">from</span> <span class="nn">numdifftools</span> <span class="kn">import</span> <span class="n">Jacobian</span> <span class="k">as</span> <span class="n">num_jacobian</span>
</span><span id="L-16"><a href="#L-16"><span class="linenos"> 16</span></a><span class="kn">from</span> <span class="nn">numdifftools</span> <span class="kn">import</span> <span class="n">Hessian</span> <span class="k">as</span> <span class="n">num_hessian</span>
</span><span id="L-17"><a href="#L-17"><span class="linenos"> 17</span></a><span class="kn">from</span> <span class="nn">.obs</span> <span class="kn">import</span> <span class="n">Obs</span><span class="p">,</span> <span class="n">derived_observable</span><span class="p">,</span> <span class="n">covariance</span><span class="p">,</span> <span class="n">cov_Obs</span><span class="p">,</span> <span class="n">invert_corr_cov_cholesky</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="L-1"><a href="#L-1"><span class="linenos"> 1</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">gc</span>
</span><span id="L-2"><a href="#L-2"><span class="linenos"> 2</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">collections.abc</span><span class="w"> </span><span class="kn">import</span> <span class="n">Sequence</span>
</span><span id="L-3"><a href="#L-3"><span class="linenos"> 3</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">warnings</span>
</span><span id="L-4"><a href="#L-4"><span class="linenos"> 4</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">np</span>
</span><span id="L-5"><a href="#L-5"><span class="linenos"> 5</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">autograd.numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">anp</span>
</span><span id="L-6"><a href="#L-6"><span class="linenos"> 6</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">scipy.optimize</span>
</span><span id="L-7"><a href="#L-7"><span class="linenos"> 7</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">scipy.stats</span>
</span><span id="L-8"><a href="#L-8"><span class="linenos"> 8</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">matplotlib.pyplot</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">plt</span>
</span><span id="L-9"><a href="#L-9"><span class="linenos"> 9</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">matplotlib</span><span class="w"> </span><span class="kn">import</span> <span class="n">gridspec</span>
</span><span id="L-10"><a href="#L-10"><span class="linenos"> 10</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">scipy.odr</span><span class="w"> </span><span class="kn">import</span> <span class="n">ODR</span><span class="p">,</span> <span class="n">Model</span><span class="p">,</span> <span class="n">RealData</span>
</span><span id="L-11"><a href="#L-11"><span class="linenos"> 11</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">iminuit</span>
</span><span id="L-12"><a href="#L-12"><span class="linenos"> 12</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">autograd</span><span class="w"> </span><span class="kn">import</span> <span class="n">jacobian</span> <span class="k">as</span> <span class="n">auto_jacobian</span>
</span><span id="L-13"><a href="#L-13"><span class="linenos"> 13</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">autograd</span><span class="w"> </span><span class="kn">import</span> <span class="n">hessian</span> <span class="k">as</span> <span class="n">auto_hessian</span>
</span><span id="L-14"><a href="#L-14"><span class="linenos"> 14</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">autograd</span><span class="w"> </span><span class="kn">import</span> <span class="n">elementwise_grad</span> <span class="k">as</span> <span class="n">egrad</span>
</span><span id="L-15"><a href="#L-15"><span class="linenos"> 15</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">numdifftools</span><span class="w"> </span><span class="kn">import</span> <span class="n">Jacobian</span> <span class="k">as</span> <span class="n">num_jacobian</span>
</span><span id="L-16"><a href="#L-16"><span class="linenos"> 16</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">numdifftools</span><span class="w"> </span><span class="kn">import</span> <span class="n">Hessian</span> <span class="k">as</span> <span class="n">num_hessian</span>
</span><span id="L-17"><a href="#L-17"><span class="linenos"> 17</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">.obs</span><span class="w"> </span><span class="kn">import</span> <span class="n">Obs</span><span class="p">,</span> <span class="n">derived_observable</span><span class="p">,</span> <span class="n">covariance</span><span class="p">,</span> <span class="n">cov_Obs</span><span class="p">,</span> <span class="n">invert_corr_cov_cholesky</span>
</span><span id="L-18"><a href="#L-18"><span class="linenos"> 18</span></a>
</span><span id="L-19"><a href="#L-19"><span class="linenos"> 19</span></a>
</span><span id="L-20"><a href="#L-20"><span class="linenos"> 20</span></a><span class="k">class</span> <span class="nc">Fit_result</span><span class="p">(</span><span class="n">Sequence</span><span class="p">):</span>
</span><span id="L-20"><a href="#L-20"><span class="linenos"> 20</span></a><span class="k">class</span><span class="w"> </span><span class="nc">Fit_result</span><span class="p">(</span><span class="n">Sequence</span><span class="p">):</span>
</span><span id="L-21"><a href="#L-21"><span class="linenos"> 21</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Represents fit results.</span>
</span><span id="L-22"><a href="#L-22"><span class="linenos"> 22</span></a>
</span><span id="L-23"><a href="#L-23"><span class="linenos"> 23</span></a><span class="sd"> Attributes</span>
@ -144,22 +144,22 @@
</span><span id="L-33"><a href="#L-33"><span class="linenos"> 33</span></a><span class="sd"> Hotelling t-squared p-value for correlated fits.</span>
</span><span id="L-34"><a href="#L-34"><span class="linenos"> 34</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-35"><a href="#L-35"><span class="linenos"> 35</span></a>
</span><span id="L-36"><a href="#L-36"><span class="linenos"> 36</span></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="L-36"><a href="#L-36"><span class="linenos"> 36</span></a> <span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="L-37"><a href="#L-37"><span class="linenos"> 37</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">fit_parameters</span> <span class="o">=</span> <span class="kc">None</span>
</span><span id="L-38"><a href="#L-38"><span class="linenos"> 38</span></a>
</span><span id="L-39"><a href="#L-39"><span class="linenos"> 39</span></a> <span class="k">def</span> <span class="fm">__getitem__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">idx</span><span class="p">):</span>
</span><span id="L-39"><a href="#L-39"><span class="linenos"> 39</span></a> <span class="k">def</span><span class="w"> </span><span class="fm">__getitem__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">idx</span><span class="p">):</span>
</span><span id="L-40"><a href="#L-40"><span class="linenos"> 40</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">fit_parameters</span><span class="p">[</span><span class="n">idx</span><span class="p">]</span>
</span><span id="L-41"><a href="#L-41"><span class="linenos"> 41</span></a>
</span><span id="L-42"><a href="#L-42"><span class="linenos"> 42</span></a> <span class="k">def</span> <span class="fm">__len__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="L-42"><a href="#L-42"><span class="linenos"> 42</span></a> <span class="k">def</span><span class="w"> </span><span class="fm">__len__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="L-43"><a href="#L-43"><span class="linenos"> 43</span></a> <span class="k">return</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">fit_parameters</span><span class="p">)</span>
</span><span id="L-44"><a href="#L-44"><span class="linenos"> 44</span></a>
</span><span id="L-45"><a href="#L-45"><span class="linenos"> 45</span></a> <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><span id="L-45"><a href="#L-45"><span class="linenos"> 45</span></a> <span class="k">def</span><span class="w"> </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><span id="L-46"><a href="#L-46"><span class="linenos"> 46</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Apply the gamma method to all fit parameters&quot;&quot;&quot;</span>
</span><span id="L-47"><a href="#L-47"><span class="linenos"> 47</span></a> <span class="p">[</span><span class="n">o</span><span class="o">.</span><span class="n">gamma_method</span><span class="p">(</span><span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">fit_parameters</span><span class="p">]</span>
</span><span id="L-48"><a href="#L-48"><span class="linenos"> 48</span></a>
</span><span id="L-49"><a href="#L-49"><span class="linenos"> 49</span></a> <span class="n">gm</span> <span class="o">=</span> <span class="n">gamma_method</span>
</span><span id="L-50"><a href="#L-50"><span class="linenos"> 50</span></a>
</span><span id="L-51"><a href="#L-51"><span class="linenos"> 51</span></a> <span class="k">def</span> <span class="fm">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="L-51"><a href="#L-51"><span class="linenos"> 51</span></a> <span class="k">def</span><span class="w"> </span><span class="fm">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="L-52"><a href="#L-52"><span class="linenos"> 52</span></a> <span class="n">my_str</span> <span class="o">=</span> <span class="s1">&#39;Goodness of fit:</span><span class="se">\n</span><span class="s1">&#39;</span>
</span><span id="L-53"><a href="#L-53"><span class="linenos"> 53</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="s1">&#39;chisquare_by_dof&#39;</span><span class="p">):</span>
</span><span id="L-54"><a href="#L-54"><span class="linenos"> 54</span></a> <span class="n">my_str</span> <span class="o">+=</span> <span class="s1">&#39;</span><span class="se">\u03C7\u00b2</span><span class="s1">/d.o.f. = &#39;</span> <span class="o">+</span> <span class="sa">f</span><span class="s1">&#39;</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">chisquare_by_dof</span><span class="si">:</span><span class="s1">2.6f</span><span class="si">}</span><span class="s1">&#39;</span> <span class="o">+</span> <span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</span>
@ -176,12 +176,12 @@
</span><span id="L-65"><a href="#L-65"><span class="linenos"> 65</span></a> <span class="n">my_str</span> <span class="o">+=</span> <span class="nb">str</span><span class="p">(</span><span class="n">i_par</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;</span><span class="se">\t</span><span class="s1">&#39;</span> <span class="o">+</span> <span class="s1">&#39; &#39;</span> <span class="o">*</span> <span class="nb">int</span><span class="p">(</span><span class="n">par</span> <span class="o">&gt;=</span> <span class="mi">0</span><span class="p">)</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">par</span><span class="p">)</span><span class="o">.</span><span class="n">rjust</span><span class="p">(</span><span class="nb">int</span><span class="p">(</span><span class="n">par</span> <span class="o">&lt;</span> <span class="mf">0.0</span><span class="p">))</span> <span class="o">+</span> <span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</span>
</span><span id="L-66"><a href="#L-66"><span class="linenos"> 66</span></a> <span class="k">return</span> <span class="n">my_str</span>
</span><span id="L-67"><a href="#L-67"><span class="linenos"> 67</span></a>
</span><span id="L-68"><a href="#L-68"><span class="linenos"> 68</span></a> <span class="k">def</span> <span class="fm">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="L-68"><a href="#L-68"><span class="linenos"> 68</span></a> <span class="k">def</span><span class="w"> </span><span class="fm">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="L-69"><a href="#L-69"><span class="linenos"> 69</span></a> <span class="n">m</span> <span class="o">=</span> <span class="nb">max</span><span class="p">(</span><span class="nb">map</span><span class="p">(</span><span class="nb">len</span><span class="p">,</span> <span class="nb">list</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="vm">__dict__</span><span class="o">.</span><span class="n">keys</span><span class="p">())))</span> <span class="o">+</span> <span class="mi">1</span>
</span><span id="L-70"><a href="#L-70"><span class="linenos"> 70</span></a> <span class="k">return</span> <span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">join</span><span class="p">([</span><span class="n">key</span><span class="o">.</span><span class="n">rjust</span><span class="p">(</span><span class="n">m</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;: &#39;</span> <span class="o">+</span> <span class="nb">repr</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> <span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="nb">sorted</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="vm">__dict__</span><span class="o">.</span><span class="n">items</span><span class="p">())])</span>
</span><span id="L-71"><a href="#L-71"><span class="linenos"> 71</span></a>
</span><span id="L-72"><a href="#L-72"><span class="linenos"> 72</span></a>
</span><span id="L-73"><a href="#L-73"><span class="linenos"> 73</span></a><span class="k">def</span> <span class="nf">least_squares</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">priors</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">silent</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><span id="L-73"><a href="#L-73"><span class="linenos"> 73</span></a><span class="k">def</span><span class="w"> </span><span class="nf">least_squares</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">priors</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">silent</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><span id="L-74"><a href="#L-74"><span class="linenos"> 74</span></a><span class="w"> </span><span class="sa">r</span><span class="sd">&#39;&#39;&#39;Performs a non-linear fit to y = func(x).</span>
</span><span id="L-75"><a href="#L-75"><span class="linenos"> 75</span></a><span class="sd"> ```</span>
</span><span id="L-76"><a href="#L-76"><span class="linenos"> 76</span></a>
@ -455,15 +455,15 @@
</span><span id="L-344"><a href="#L-344"><span class="linenos">344</span></a> <span class="n">x0</span> <span class="o">=</span> <span class="p">[</span><span class="mf">0.1</span><span class="p">]</span> <span class="o">*</span> <span class="n">n_parms</span>
</span><span id="L-345"><a href="#L-345"><span class="linenos">345</span></a>
</span><span id="L-346"><a href="#L-346"><span class="linenos">346</span></a> <span class="k">if</span> <span class="n">priors</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
</span><span id="L-347"><a href="#L-347"><span class="linenos">347</span></a> <span class="k">def</span> <span class="nf">general_chisqfunc_uncorr</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">ivars</span><span class="p">,</span> <span class="n">pr</span><span class="p">):</span>
</span><span id="L-347"><a href="#L-347"><span class="linenos">347</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">general_chisqfunc_uncorr</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">ivars</span><span class="p">,</span> <span class="n">pr</span><span class="p">):</span>
</span><span id="L-348"><a href="#L-348"><span class="linenos">348</span></a> <span class="n">model</span> <span class="o">=</span> <span class="n">anp</span><span class="o">.</span><span class="n">concatenate</span><span class="p">([</span><span class="n">anp</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">funcd</span><span class="p">[</span><span class="n">key</span><span class="p">](</span><span class="n">p</span><span class="p">,</span> <span class="n">xd</span><span class="p">[</span><span class="n">key</span><span class="p">]))</span><span class="o">.</span><span class="n">reshape</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">key</span> <span class="ow">in</span> <span class="n">key_ls</span><span class="p">])</span>
</span><span id="L-349"><a href="#L-349"><span class="linenos">349</span></a> <span class="k">return</span> <span class="p">(</span><span class="n">ivars</span> <span class="o">-</span> <span class="n">model</span><span class="p">)</span> <span class="o">/</span> <span class="n">dy_f</span>
</span><span id="L-350"><a href="#L-350"><span class="linenos">350</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-351"><a href="#L-351"><span class="linenos">351</span></a> <span class="k">def</span> <span class="nf">general_chisqfunc_uncorr</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">ivars</span><span class="p">,</span> <span class="n">pr</span><span class="p">):</span>
</span><span id="L-351"><a href="#L-351"><span class="linenos">351</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">general_chisqfunc_uncorr</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">ivars</span><span class="p">,</span> <span class="n">pr</span><span class="p">):</span>
</span><span id="L-352"><a href="#L-352"><span class="linenos">352</span></a> <span class="n">model</span> <span class="o">=</span> <span class="n">anp</span><span class="o">.</span><span class="n">concatenate</span><span class="p">([</span><span class="n">anp</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">funcd</span><span class="p">[</span><span class="n">key</span><span class="p">](</span><span class="n">p</span><span class="p">,</span> <span class="n">xd</span><span class="p">[</span><span class="n">key</span><span class="p">]))</span><span class="o">.</span><span class="n">reshape</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">key</span> <span class="ow">in</span> <span class="n">key_ls</span><span class="p">])</span>
</span><span id="L-353"><a href="#L-353"><span class="linenos">353</span></a> <span class="k">return</span> <span class="n">anp</span><span class="o">.</span><span class="n">concatenate</span><span class="p">(((</span><span class="n">ivars</span> <span class="o">-</span> <span class="n">model</span><span class="p">)</span> <span class="o">/</span> <span class="n">dy_f</span><span class="p">,</span> <span class="p">(</span><span class="n">p</span><span class="p">[</span><span class="n">prior_mask</span><span class="p">]</span> <span class="o">-</span> <span class="n">pr</span><span class="p">)</span> <span class="o">/</span> <span class="n">dp_f</span><span class="p">))</span>
</span><span id="L-354"><a href="#L-354"><span class="linenos">354</span></a>
</span><span id="L-355"><a href="#L-355"><span class="linenos">355</span></a> <span class="k">def</span> <span class="nf">chisqfunc_uncorr</span><span class="p">(</span><span class="n">p</span><span class="p">):</span>
</span><span id="L-355"><a href="#L-355"><span class="linenos">355</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">chisqfunc_uncorr</span><span class="p">(</span><span class="n">p</span><span class="p">):</span>
</span><span id="L-356"><a href="#L-356"><span class="linenos">356</span></a> <span class="k">return</span> <span class="n">anp</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="n">general_chisqfunc_uncorr</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">y_f</span><span class="p">,</span> <span class="n">p_f</span><span class="p">)</span> <span class="o">**</span> <span class="mi">2</span><span class="p">)</span>
</span><span id="L-357"><a href="#L-357"><span class="linenos">357</span></a>
</span><span id="L-358"><a href="#L-358"><span class="linenos">358</span></a> <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;correlated_fit&#39;</span><span class="p">)</span> <span class="ow">is</span> <span class="kc">True</span><span class="p">:</span>
@ -481,11 +481,11 @@
</span><span id="L-370"><a href="#L-370"><span class="linenos">370</span></a> <span class="n">inverrdiag</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">diag</span><span class="p">(</span><span class="mi">1</span> <span class="o">/</span> <span class="n">np</span><span class="o">.</span><span class="n">asarray</span><span class="p">(</span><span class="n">dy_f</span><span class="p">))</span>
</span><span id="L-371"><a href="#L-371"><span class="linenos">371</span></a> <span class="n">chol_inv</span> <span class="o">=</span> <span class="n">invert_corr_cov_cholesky</span><span class="p">(</span><span class="n">corr</span><span class="p">,</span> <span class="n">inverrdiag</span><span class="p">)</span>
</span><span id="L-372"><a href="#L-372"><span class="linenos">372</span></a>
</span><span id="L-373"><a href="#L-373"><span class="linenos">373</span></a> <span class="k">def</span> <span class="nf">general_chisqfunc</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">ivars</span><span class="p">,</span> <span class="n">pr</span><span class="p">):</span>
</span><span id="L-373"><a href="#L-373"><span class="linenos">373</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">general_chisqfunc</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">ivars</span><span class="p">,</span> <span class="n">pr</span><span class="p">):</span>
</span><span id="L-374"><a href="#L-374"><span class="linenos">374</span></a> <span class="n">model</span> <span class="o">=</span> <span class="n">anp</span><span class="o">.</span><span class="n">concatenate</span><span class="p">([</span><span class="n">anp</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">funcd</span><span class="p">[</span><span class="n">key</span><span class="p">](</span><span class="n">p</span><span class="p">,</span> <span class="n">xd</span><span class="p">[</span><span class="n">key</span><span class="p">]))</span><span class="o">.</span><span class="n">reshape</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">key</span> <span class="ow">in</span> <span class="n">key_ls</span><span class="p">])</span>
</span><span id="L-375"><a href="#L-375"><span class="linenos">375</span></a> <span class="k">return</span> <span class="n">anp</span><span class="o">.</span><span class="n">concatenate</span><span class="p">((</span><span class="n">anp</span><span class="o">.</span><span class="n">dot</span><span class="p">(</span><span class="n">chol_inv</span><span class="p">,</span> <span class="p">(</span><span class="n">ivars</span> <span class="o">-</span> <span class="n">model</span><span class="p">)),</span> <span class="p">(</span><span class="n">p</span><span class="p">[</span><span class="n">prior_mask</span><span class="p">]</span> <span class="o">-</span> <span class="n">pr</span><span class="p">)</span> <span class="o">/</span> <span class="n">dp_f</span><span class="p">))</span>
</span><span id="L-376"><a href="#L-376"><span class="linenos">376</span></a>
</span><span id="L-377"><a href="#L-377"><span class="linenos">377</span></a> <span class="k">def</span> <span class="nf">chisqfunc</span><span class="p">(</span><span class="n">p</span><span class="p">):</span>
</span><span id="L-377"><a href="#L-377"><span class="linenos">377</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">chisqfunc</span><span class="p">(</span><span class="n">p</span><span class="p">):</span>
</span><span id="L-378"><a href="#L-378"><span class="linenos">378</span></a> <span class="k">return</span> <span class="n">anp</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="n">general_chisqfunc</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">y_f</span><span class="p">,</span> <span class="n">p_f</span><span class="p">)</span> <span class="o">**</span> <span class="mi">2</span><span class="p">)</span>
</span><span id="L-379"><a href="#L-379"><span class="linenos">379</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-380"><a href="#L-380"><span class="linenos">380</span></a> <span class="n">general_chisqfunc</span> <span class="o">=</span> <span class="n">general_chisqfunc_uncorr</span>
@ -519,12 +519,12 @@
</span><span id="L-408"><a href="#L-408"><span class="linenos">408</span></a> <span class="k">if</span> <span class="s1">&#39;tol&#39;</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
</span><span id="L-409"><a href="#L-409"><span class="linenos">409</span></a> <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;tol cannot be set for Levenberg-Marquardt&#39;</span><span class="p">)</span>
</span><span id="L-410"><a href="#L-410"><span class="linenos">410</span></a>
</span><span id="L-411"><a href="#L-411"><span class="linenos">411</span></a> <span class="k">def</span> <span class="nf">chisqfunc_residuals_uncorr</span><span class="p">(</span><span class="n">p</span><span class="p">):</span>
</span><span id="L-411"><a href="#L-411"><span class="linenos">411</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">chisqfunc_residuals_uncorr</span><span class="p">(</span><span class="n">p</span><span class="p">):</span>
</span><span id="L-412"><a href="#L-412"><span class="linenos">412</span></a> <span class="k">return</span> <span class="n">general_chisqfunc_uncorr</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">y_f</span><span class="p">,</span> <span class="n">p_f</span><span class="p">)</span>
</span><span id="L-413"><a href="#L-413"><span class="linenos">413</span></a>
</span><span id="L-414"><a href="#L-414"><span class="linenos">414</span></a> <span class="n">fit_result</span> <span class="o">=</span> <span class="n">scipy</span><span class="o">.</span><span class="n">optimize</span><span class="o">.</span><span class="n">least_squares</span><span class="p">(</span><span class="n">chisqfunc_residuals_uncorr</span><span class="p">,</span> <span class="n">x0</span><span class="p">,</span> <span class="n">method</span><span class="o">=</span><span class="s1">&#39;lm&#39;</span><span class="p">,</span> <span class="n">ftol</span><span class="o">=</span><span class="mf">1e-15</span><span class="p">,</span> <span class="n">gtol</span><span class="o">=</span><span class="mf">1e-15</span><span class="p">,</span> <span class="n">xtol</span><span class="o">=</span><span class="mf">1e-15</span><span class="p">)</span>
</span><span id="L-415"><a href="#L-415"><span class="linenos">415</span></a> <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;correlated_fit&#39;</span><span class="p">)</span> <span class="ow">is</span> <span class="kc">True</span><span class="p">:</span>
</span><span id="L-416"><a href="#L-416"><span class="linenos">416</span></a> <span class="k">def</span> <span class="nf">chisqfunc_residuals</span><span class="p">(</span><span class="n">p</span><span class="p">):</span>
</span><span id="L-416"><a href="#L-416"><span class="linenos">416</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">chisqfunc_residuals</span><span class="p">(</span><span class="n">p</span><span class="p">):</span>
</span><span id="L-417"><a href="#L-417"><span class="linenos">417</span></a> <span class="k">return</span> <span class="n">general_chisqfunc</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">y_f</span><span class="p">,</span> <span class="n">p_f</span><span class="p">)</span>
</span><span id="L-418"><a href="#L-418"><span class="linenos">418</span></a>
</span><span id="L-419"><a href="#L-419"><span class="linenos">419</span></a> <span class="n">fit_result</span> <span class="o">=</span> <span class="n">scipy</span><span class="o">.</span><span class="n">optimize</span><span class="o">.</span><span class="n">least_squares</span><span class="p">(</span><span class="n">chisqfunc_residuals</span><span class="p">,</span> <span class="n">fit_result</span><span class="o">.</span><span class="n">x</span><span class="p">,</span> <span class="n">method</span><span class="o">=</span><span class="s1">&#39;lm&#39;</span><span class="p">,</span> <span class="n">ftol</span><span class="o">=</span><span class="mf">1e-15</span><span class="p">,</span> <span class="n">gtol</span><span class="o">=</span><span class="mf">1e-15</span><span class="p">,</span> <span class="n">xtol</span><span class="o">=</span><span class="mf">1e-15</span><span class="p">)</span>
@ -551,7 +551,7 @@
</span><span id="L-440"><a href="#L-440"><span class="linenos">440</span></a> <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;chisquare/d.o.f.:&#39;</span><span class="p">,</span> <span class="n">output</span><span class="o">.</span><span class="n">chisquare_by_dof</span><span class="p">)</span>
</span><span id="L-441"><a href="#L-441"><span class="linenos">441</span></a> <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;fit parameters&#39;</span><span class="p">,</span> <span class="n">fit_result</span><span class="o">.</span><span class="n">x</span><span class="p">)</span>
</span><span id="L-442"><a href="#L-442"><span class="linenos">442</span></a>
</span><span id="L-443"><a href="#L-443"><span class="linenos">443</span></a> <span class="k">def</span> <span class="nf">prepare_hat_matrix</span><span class="p">():</span>
</span><span id="L-443"><a href="#L-443"><span class="linenos">443</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">prepare_hat_matrix</span><span class="p">():</span>
</span><span id="L-444"><a href="#L-444"><span class="linenos">444</span></a> <span class="n">hat_vector</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-445"><a href="#L-445"><span class="linenos">445</span></a> <span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="n">key_ls</span><span class="p">:</span>
</span><span id="L-446"><a href="#L-446"><span class="linenos">446</span></a> <span class="k">if</span> <span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">xd</span><span class="p">[</span><span class="n">key</span><span class="p">])</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">):</span>
@ -576,11 +576,11 @@
</span><span id="L-465"><a href="#L-465"><span class="linenos">465</span></a> <span class="k">try</span><span class="p">:</span>
</span><span id="L-466"><a href="#L-466"><span class="linenos">466</span></a> <span class="n">hess</span> <span class="o">=</span> <span class="n">hessian</span><span class="p">(</span><span class="n">chisqfunc</span><span class="p">)(</span><span class="n">fitp</span><span class="p">)</span>
</span><span id="L-467"><a href="#L-467"><span class="linenos">467</span></a> <span class="k">except</span> <span class="ne">TypeError</span><span class="p">:</span>
</span><span id="L-468"><a href="#L-468"><span class="linenos">468</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">&quot;It is required to use autograd.numpy instead of numpy within fit functions, see the documentation for details.&quot;</span><span class="p">)</span> <span class="kn">from</span> <span class="kc">None</span>
</span><span id="L-468"><a href="#L-468"><span class="linenos">468</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">&quot;It is required to use autograd.numpy instead of numpy within fit functions, see the documentation for details.&quot;</span><span class="p">)</span> <span class="kn">from</span><span class="w"> </span><span class="kc">None</span>
</span><span id="L-469"><a href="#L-469"><span class="linenos">469</span></a>
</span><span id="L-470"><a href="#L-470"><span class="linenos">470</span></a> <span class="n">len_y</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">y_f</span><span class="p">)</span>
</span><span id="L-471"><a href="#L-471"><span class="linenos">471</span></a>
</span><span id="L-472"><a href="#L-472"><span class="linenos">472</span></a> <span class="k">def</span> <span class="nf">chisqfunc_compact</span><span class="p">(</span><span class="n">d</span><span class="p">):</span>
</span><span id="L-472"><a href="#L-472"><span class="linenos">472</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">chisqfunc_compact</span><span class="p">(</span><span class="n">d</span><span class="p">):</span>
</span><span id="L-473"><a href="#L-473"><span class="linenos">473</span></a> <span class="k">return</span> <span class="n">anp</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="n">general_chisqfunc</span><span class="p">(</span><span class="n">d</span><span class="p">[:</span><span class="n">n_parms</span><span class="p">],</span> <span class="n">d</span><span class="p">[</span><span class="n">n_parms</span><span class="p">:</span> <span class="n">n_parms</span> <span class="o">+</span> <span class="n">len_y</span><span class="p">],</span> <span class="n">d</span><span class="p">[</span><span class="n">n_parms</span> <span class="o">+</span> <span class="n">len_y</span><span class="p">:])</span> <span class="o">**</span> <span class="mi">2</span><span class="p">)</span>
</span><span id="L-474"><a href="#L-474"><span class="linenos">474</span></a>
</span><span id="L-475"><a href="#L-475"><span class="linenos">475</span></a> <span class="n">jac_jac_y</span> <span class="o">=</span> <span class="n">hessian</span><span class="p">(</span><span class="n">chisqfunc_compact</span><span class="p">)(</span><span class="n">np</span><span class="o">.</span><span class="n">concatenate</span><span class="p">((</span><span class="n">fitp</span><span class="p">,</span> <span class="n">y_f</span><span class="p">,</span> <span class="n">p_f</span><span class="p">)))</span>
@ -614,7 +614,7 @@
</span><span id="L-503"><a href="#L-503"><span class="linenos">503</span></a> <span class="k">return</span> <span class="n">output</span>
</span><span id="L-504"><a href="#L-504"><span class="linenos">504</span></a>
</span><span id="L-505"><a href="#L-505"><span class="linenos">505</span></a>
</span><span id="L-506"><a href="#L-506"><span class="linenos">506</span></a><span class="k">def</span> <span class="nf">total_least_squares</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">silent</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><span id="L-506"><a href="#L-506"><span class="linenos">506</span></a><span class="k">def</span><span class="w"> </span><span class="nf">total_least_squares</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">silent</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><span id="L-507"><a href="#L-507"><span class="linenos">507</span></a><span class="w"> </span><span class="sa">r</span><span class="sd">&#39;&#39;&#39;Performs a non-linear fit to y = func(x) and returns a list of Obs corresponding to the fit parameters.</span>
</span><span id="L-508"><a href="#L-508"><span class="linenos">508</span></a>
</span><span id="L-509"><a href="#L-509"><span class="linenos">509</span></a><span class="sd"> Parameters</span>
@ -742,7 +742,7 @@
</span><span id="L-631"><a href="#L-631"><span class="linenos">631</span></a>
</span><span id="L-632"><a href="#L-632"><span class="linenos">632</span></a> <span class="n">m</span> <span class="o">=</span> <span class="n">x_f</span><span class="o">.</span><span class="n">size</span>
</span><span id="L-633"><a href="#L-633"><span class="linenos">633</span></a>
</span><span id="L-634"><a href="#L-634"><span class="linenos">634</span></a> <span class="k">def</span> <span class="nf">odr_chisquare</span><span class="p">(</span><span class="n">p</span><span class="p">):</span>
</span><span id="L-634"><a href="#L-634"><span class="linenos">634</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">odr_chisquare</span><span class="p">(</span><span class="n">p</span><span class="p">):</span>
</span><span id="L-635"><a href="#L-635"><span class="linenos">635</span></a> <span class="n">model</span> <span class="o">=</span> <span class="n">func</span><span class="p">(</span><span class="n">p</span><span class="p">[:</span><span class="n">n_parms</span><span class="p">],</span> <span class="n">p</span><span class="p">[</span><span class="n">n_parms</span><span class="p">:]</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="n">x_shape</span><span class="p">))</span>
</span><span id="L-636"><a href="#L-636"><span class="linenos">636</span></a> <span class="n">chisq</span> <span class="o">=</span> <span class="n">anp</span><span class="o">.</span><span class="n">sum</span><span class="p">(((</span><span class="n">y_f</span> <span class="o">-</span> <span class="n">model</span><span class="p">)</span> <span class="o">/</span> <span class="n">dy_f</span><span class="p">)</span> <span class="o">**</span> <span class="mi">2</span><span class="p">)</span> <span class="o">+</span> <span class="n">anp</span><span class="o">.</span><span class="n">sum</span><span class="p">(((</span><span class="n">x_f</span> <span class="o">-</span> <span class="n">p</span><span class="p">[</span><span class="n">n_parms</span><span class="p">:]</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="n">x_shape</span><span class="p">))</span> <span class="o">/</span> <span class="n">dx_f</span><span class="p">)</span> <span class="o">**</span> <span class="mi">2</span><span class="p">)</span>
</span><span id="L-637"><a href="#L-637"><span class="linenos">637</span></a> <span class="k">return</span> <span class="n">chisq</span>
@ -777,9 +777,9 @@
</span><span id="L-666"><a href="#L-666"><span class="linenos">666</span></a> <span class="k">try</span><span class="p">:</span>
</span><span id="L-667"><a href="#L-667"><span class="linenos">667</span></a> <span class="n">hess</span> <span class="o">=</span> <span class="n">hessian</span><span class="p">(</span><span class="n">odr_chisquare</span><span class="p">)(</span><span class="n">np</span><span class="o">.</span><span class="n">concatenate</span><span class="p">((</span><span class="n">fitp</span><span class="p">,</span> <span class="n">out</span><span class="o">.</span><span class="n">xplus</span><span class="o">.</span><span class="n">ravel</span><span class="p">())))</span>
</span><span id="L-668"><a href="#L-668"><span class="linenos">668</span></a> <span class="k">except</span> <span class="ne">TypeError</span><span class="p">:</span>
</span><span id="L-669"><a href="#L-669"><span class="linenos">669</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">&quot;It is required to use autograd.numpy instead of numpy within fit functions, see the documentation for details.&quot;</span><span class="p">)</span> <span class="kn">from</span> <span class="kc">None</span>
</span><span id="L-669"><a href="#L-669"><span class="linenos">669</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">&quot;It is required to use autograd.numpy instead of numpy within fit functions, see the documentation for details.&quot;</span><span class="p">)</span> <span class="kn">from</span><span class="w"> </span><span class="kc">None</span>
</span><span id="L-670"><a href="#L-670"><span class="linenos">670</span></a>
</span><span id="L-671"><a href="#L-671"><span class="linenos">671</span></a> <span class="k">def</span> <span class="nf">odr_chisquare_compact_x</span><span class="p">(</span><span class="n">d</span><span class="p">):</span>
</span><span id="L-671"><a href="#L-671"><span class="linenos">671</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">odr_chisquare_compact_x</span><span class="p">(</span><span class="n">d</span><span class="p">):</span>
</span><span id="L-672"><a href="#L-672"><span class="linenos">672</span></a> <span class="n">model</span> <span class="o">=</span> <span class="n">func</span><span class="p">(</span><span class="n">d</span><span class="p">[:</span><span class="n">n_parms</span><span class="p">],</span> <span class="n">d</span><span class="p">[</span><span class="n">n_parms</span><span class="p">:</span><span class="n">n_parms</span> <span class="o">+</span> <span class="n">m</span><span class="p">]</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="n">x_shape</span><span class="p">))</span>
</span><span id="L-673"><a href="#L-673"><span class="linenos">673</span></a> <span class="n">chisq</span> <span class="o">=</span> <span class="n">anp</span><span class="o">.</span><span class="n">sum</span><span class="p">(((</span><span class="n">y_f</span> <span class="o">-</span> <span class="n">model</span><span class="p">)</span> <span class="o">/</span> <span class="n">dy_f</span><span class="p">)</span> <span class="o">**</span> <span class="mi">2</span><span class="p">)</span> <span class="o">+</span> <span class="n">anp</span><span class="o">.</span><span class="n">sum</span><span class="p">(((</span><span class="n">d</span><span class="p">[</span><span class="n">n_parms</span> <span class="o">+</span> <span class="n">m</span><span class="p">:]</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="n">x_shape</span><span class="p">)</span> <span class="o">-</span> <span class="n">d</span><span class="p">[</span><span class="n">n_parms</span><span class="p">:</span><span class="n">n_parms</span> <span class="o">+</span> <span class="n">m</span><span class="p">]</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="n">x_shape</span><span class="p">))</span> <span class="o">/</span> <span class="n">dx_f</span><span class="p">)</span> <span class="o">**</span> <span class="mi">2</span><span class="p">)</span>
</span><span id="L-674"><a href="#L-674"><span class="linenos">674</span></a> <span class="k">return</span> <span class="n">chisq</span>
@ -792,7 +792,7 @@
</span><span id="L-681"><a href="#L-681"><span class="linenos">681</span></a> <span class="k">except</span> <span class="n">np</span><span class="o">.</span><span class="n">linalg</span><span class="o">.</span><span class="n">LinAlgError</span><span class="p">:</span>
</span><span id="L-682"><a href="#L-682"><span class="linenos">682</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">&quot;Cannot invert hessian matrix.&quot;</span><span class="p">)</span>
</span><span id="L-683"><a href="#L-683"><span class="linenos">683</span></a>
</span><span id="L-684"><a href="#L-684"><span class="linenos">684</span></a> <span class="k">def</span> <span class="nf">odr_chisquare_compact_y</span><span class="p">(</span><span class="n">d</span><span class="p">):</span>
</span><span id="L-684"><a href="#L-684"><span class="linenos">684</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">odr_chisquare_compact_y</span><span class="p">(</span><span class="n">d</span><span class="p">):</span>
</span><span id="L-685"><a href="#L-685"><span class="linenos">685</span></a> <span class="n">model</span> <span class="o">=</span> <span class="n">func</span><span class="p">(</span><span class="n">d</span><span class="p">[:</span><span class="n">n_parms</span><span class="p">],</span> <span class="n">d</span><span class="p">[</span><span class="n">n_parms</span><span class="p">:</span><span class="n">n_parms</span> <span class="o">+</span> <span class="n">m</span><span class="p">]</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="n">x_shape</span><span class="p">))</span>
</span><span id="L-686"><a href="#L-686"><span class="linenos">686</span></a> <span class="n">chisq</span> <span class="o">=</span> <span class="n">anp</span><span class="o">.</span><span class="n">sum</span><span class="p">(((</span><span class="n">d</span><span class="p">[</span><span class="n">n_parms</span> <span class="o">+</span> <span class="n">m</span><span class="p">:]</span> <span class="o">-</span> <span class="n">model</span><span class="p">)</span> <span class="o">/</span> <span class="n">dy_f</span><span class="p">)</span> <span class="o">**</span> <span class="mi">2</span><span class="p">)</span> <span class="o">+</span> <span class="n">anp</span><span class="o">.</span><span class="n">sum</span><span class="p">(((</span><span class="n">x_f</span> <span class="o">-</span> <span class="n">d</span><span class="p">[</span><span class="n">n_parms</span><span class="p">:</span><span class="n">n_parms</span> <span class="o">+</span> <span class="n">m</span><span class="p">]</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="n">x_shape</span><span class="p">))</span> <span class="o">/</span> <span class="n">dx_f</span><span class="p">)</span> <span class="o">**</span> <span class="mi">2</span><span class="p">)</span>
</span><span id="L-687"><a href="#L-687"><span class="linenos">687</span></a> <span class="k">return</span> <span class="n">chisq</span>
@ -818,7 +818,7 @@
</span><span id="L-707"><a href="#L-707"><span class="linenos">707</span></a> <span class="k">return</span> <span class="n">output</span>
</span><span id="L-708"><a href="#L-708"><span class="linenos">708</span></a>
</span><span id="L-709"><a href="#L-709"><span class="linenos">709</span></a>
</span><span id="L-710"><a href="#L-710"><span class="linenos">710</span></a><span class="k">def</span> <span class="nf">fit_lin</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="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="L-710"><a href="#L-710"><span class="linenos">710</span></a><span class="k">def</span><span class="w"> </span><span class="nf">fit_lin</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="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="L-711"><a href="#L-711"><span class="linenos">711</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Performs a linear fit to y = n + m * x and returns two Obs n, m.</span>
</span><span id="L-712"><a href="#L-712"><span class="linenos">712</span></a>
</span><span id="L-713"><a href="#L-713"><span class="linenos">713</span></a><span class="sd"> Parameters</span>
@ -835,7 +835,7 @@
</span><span id="L-724"><a href="#L-724"><span class="linenos">724</span></a><span class="sd"> LIist of fitted observables.</span>
</span><span id="L-725"><a href="#L-725"><span class="linenos">725</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-726"><a href="#L-726"><span class="linenos">726</span></a>
</span><span id="L-727"><a href="#L-727"><span class="linenos">727</span></a> <span class="k">def</span> <span class="nf">f</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">x</span><span class="p">):</span>
</span><span id="L-727"><a href="#L-727"><span class="linenos">727</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">f</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">x</span><span class="p">):</span>
</span><span id="L-728"><a href="#L-728"><span class="linenos">728</span></a> <span class="n">y</span> <span class="o">=</span> <span class="n">a</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="n">a</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">*</span> <span class="n">x</span>
</span><span id="L-729"><a href="#L-729"><span class="linenos">729</span></a> <span class="k">return</span> <span class="n">y</span>
</span><span id="L-730"><a href="#L-730"><span class="linenos">730</span></a>
@ -849,7 +849,7 @@
</span><span id="L-738"><a href="#L-738"><span class="linenos">738</span></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s1">&#39;Unsupported types for x&#39;</span><span class="p">)</span>
</span><span id="L-739"><a href="#L-739"><span class="linenos">739</span></a>
</span><span id="L-740"><a href="#L-740"><span class="linenos">740</span></a>
</span><span id="L-741"><a href="#L-741"><span class="linenos">741</span></a><span class="k">def</span> <span class="nf">qqplot</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">o_y</span><span class="p">,</span> <span class="n">func</span><span class="p">,</span> <span class="n">p</span><span class="p">,</span> <span class="n">title</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">):</span>
</span><span id="L-741"><a href="#L-741"><span class="linenos">741</span></a><span class="k">def</span><span class="w"> </span><span class="nf">qqplot</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">o_y</span><span class="p">,</span> <span class="n">func</span><span class="p">,</span> <span class="n">p</span><span class="p">,</span> <span class="n">title</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">):</span>
</span><span id="L-742"><a href="#L-742"><span class="linenos">742</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Generates a quantile-quantile plot of the fit result which can be used to</span>
</span><span id="L-743"><a href="#L-743"><span class="linenos">743</span></a><span class="sd"> check if the residuals of the fit are gaussian distributed.</span>
</span><span id="L-744"><a href="#L-744"><span class="linenos">744</span></a>
@ -879,7 +879,7 @@
</span><span id="L-768"><a href="#L-768"><span class="linenos">768</span></a> <span class="n">plt</span><span class="o">.</span><span class="n">draw</span><span class="p">()</span>
</span><span id="L-769"><a href="#L-769"><span class="linenos">769</span></a>
</span><span id="L-770"><a href="#L-770"><span class="linenos">770</span></a>
</span><span id="L-771"><a href="#L-771"><span class="linenos">771</span></a><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> <span class="n">title</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">):</span>
</span><span id="L-771"><a href="#L-771"><span class="linenos">771</span></a><span class="k">def</span><span class="w"> </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> <span class="n">title</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">):</span>
</span><span id="L-772"><a href="#L-772"><span class="linenos">772</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Generates a plot which compares the fit to the data and displays the corresponding residuals</span>
</span><span id="L-773"><a href="#L-773"><span class="linenos">773</span></a>
</span><span id="L-774"><a href="#L-774"><span class="linenos">774</span></a><span class="sd"> For uncorrelated data the residuals are expected to be distributed ~N(0,1).</span>
@ -916,7 +916,7 @@
</span><span id="L-805"><a href="#L-805"><span class="linenos">805</span></a> <span class="n">plt</span><span class="o">.</span><span class="n">draw</span><span class="p">()</span>
</span><span id="L-806"><a href="#L-806"><span class="linenos">806</span></a>
</span><span id="L-807"><a href="#L-807"><span class="linenos">807</span></a>
</span><span id="L-808"><a href="#L-808"><span class="linenos">808</span></a><span class="k">def</span> <span class="nf">error_band</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">func</span><span class="p">,</span> <span class="n">beta</span><span class="p">):</span>
</span><span id="L-808"><a href="#L-808"><span class="linenos">808</span></a><span class="k">def</span><span class="w"> </span><span class="nf">error_band</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">func</span><span class="p">,</span> <span class="n">beta</span><span class="p">):</span>
</span><span id="L-809"><a href="#L-809"><span class="linenos">809</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Calculate the error band for an array of sample values x, for given fit function func with optimized parameters beta.</span>
</span><span id="L-810"><a href="#L-810"><span class="linenos">810</span></a>
</span><span id="L-811"><a href="#L-811"><span class="linenos">811</span></a><span class="sd"> Returns</span>
@ -940,7 +940,7 @@
</span><span id="L-829"><a href="#L-829"><span class="linenos">829</span></a> <span class="k">return</span> <span class="n">err</span>
</span><span id="L-830"><a href="#L-830"><span class="linenos">830</span></a>
</span><span id="L-831"><a href="#L-831"><span class="linenos">831</span></a>
</span><span id="L-832"><a href="#L-832"><span class="linenos">832</span></a><span class="k">def</span> <span class="nf">ks_test</span><span class="p">(</span><span class="n">objects</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
</span><span id="L-832"><a href="#L-832"><span class="linenos">832</span></a><span class="k">def</span><span class="w"> </span><span class="nf">ks_test</span><span class="p">(</span><span class="n">objects</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
</span><span id="L-833"><a href="#L-833"><span class="linenos">833</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Performs a KolmogorovSmirnov test for the p-values of all fit object.</span>
</span><span id="L-834"><a href="#L-834"><span class="linenos">834</span></a>
</span><span id="L-835"><a href="#L-835"><span class="linenos">835</span></a><span class="sd"> Parameters</span>
@ -984,7 +984,7 @@
</span><span id="L-873"><a href="#L-873"><span class="linenos">873</span></a> <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">p_values</span><span class="p">,</span> <span class="s1">&#39;uniform&#39;</span><span class="p">))</span>
</span><span id="L-874"><a href="#L-874"><span class="linenos">874</span></a>
</span><span id="L-875"><a href="#L-875"><span class="linenos">875</span></a>
</span><span id="L-876"><a href="#L-876"><span class="linenos">876</span></a><span class="k">def</span> <span class="nf">_extract_val_and_dval</span><span class="p">(</span><span class="n">string</span><span class="p">):</span>
</span><span id="L-876"><a href="#L-876"><span class="linenos">876</span></a><span class="k">def</span><span class="w"> </span><span class="nf">_extract_val_and_dval</span><span class="p">(</span><span class="n">string</span><span class="p">):</span>
</span><span id="L-877"><a href="#L-877"><span class="linenos">877</span></a> <span class="n">split_string</span> <span class="o">=</span> <span class="n">string</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;(&#39;</span><span class="p">)</span>
</span><span id="L-878"><a href="#L-878"><span class="linenos">878</span></a> <span class="k">if</span> <span class="s1">&#39;.&#39;</span> <span class="ow">in</span> <span class="n">split_string</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="ow">and</span> <span class="s1">&#39;.&#39;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">split_string</span><span class="p">[</span><span class="mi">1</span><span class="p">][:</span><span class="o">-</span><span class="mi">1</span><span class="p">]:</span>
</span><span id="L-879"><a href="#L-879"><span class="linenos">879</span></a> <span class="n">factor</span> <span class="o">=</span> <span class="mi">10</span> <span class="o">**</span> <span class="o">-</span><span class="nb">len</span><span class="p">(</span><span class="n">split_string</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">partition</span><span class="p">(</span><span class="s1">&#39;.&#39;</span><span class="p">)[</span><span class="mi">2</span><span class="p">])</span>
@ -993,7 +993,7 @@
</span><span id="L-882"><a href="#L-882"><span class="linenos">882</span></a> <span class="k">return</span> <span class="nb">float</span><span class="p">(</span><span class="n">split_string</span><span class="p">[</span><span class="mi">0</span><span class="p">]),</span> <span class="nb">float</span><span class="p">(</span><span class="n">split_string</span><span class="p">[</span><span class="mi">1</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">factor</span>
</span><span id="L-883"><a href="#L-883"><span class="linenos">883</span></a>
</span><span id="L-884"><a href="#L-884"><span class="linenos">884</span></a>
</span><span id="L-885"><a href="#L-885"><span class="linenos">885</span></a><span class="k">def</span> <span class="nf">_construct_prior_obs</span><span class="p">(</span><span class="n">i_prior</span><span class="p">,</span> <span class="n">i_n</span><span class="p">):</span>
</span><span id="L-885"><a href="#L-885"><span class="linenos">885</span></a><span class="k">def</span><span class="w"> </span><span class="nf">_construct_prior_obs</span><span class="p">(</span><span class="n">i_prior</span><span class="p">,</span> <span class="n">i_n</span><span class="p">):</span>
</span><span id="L-886"><a href="#L-886"><span class="linenos">886</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">i_prior</span><span class="p">,</span> <span class="n">Obs</span><span class="p">):</span>
</span><span id="L-887"><a href="#L-887"><span class="linenos">887</span></a> <span class="k">return</span> <span class="n">i_prior</span>
</span><span id="L-888"><a href="#L-888"><span class="linenos">888</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">i_prior</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
@ -1016,7 +1016,7 @@
</div>
<a class="headerlink" href="#Fit_result"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Fit_result-21"><a href="#Fit_result-21"><span class="linenos">21</span></a><span class="k">class</span> <span class="nc">Fit_result</span><span class="p">(</span><span class="n">Sequence</span><span class="p">):</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="Fit_result-21"><a href="#Fit_result-21"><span class="linenos">21</span></a><span class="k">class</span><span class="w"> </span><span class="nc">Fit_result</span><span class="p">(</span><span class="n">Sequence</span><span class="p">):</span>
</span><span id="Fit_result-22"><a href="#Fit_result-22"><span class="linenos">22</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Represents fit results.</span>
</span><span id="Fit_result-23"><a href="#Fit_result-23"><span class="linenos">23</span></a>
</span><span id="Fit_result-24"><a href="#Fit_result-24"><span class="linenos">24</span></a><span class="sd"> Attributes</span>
@ -1032,22 +1032,22 @@
</span><span id="Fit_result-34"><a href="#Fit_result-34"><span class="linenos">34</span></a><span class="sd"> Hotelling t-squared p-value for correlated fits.</span>
</span><span id="Fit_result-35"><a href="#Fit_result-35"><span class="linenos">35</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Fit_result-36"><a href="#Fit_result-36"><span class="linenos">36</span></a>
</span><span id="Fit_result-37"><a href="#Fit_result-37"><span class="linenos">37</span></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="Fit_result-37"><a href="#Fit_result-37"><span class="linenos">37</span></a> <span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="Fit_result-38"><a href="#Fit_result-38"><span class="linenos">38</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">fit_parameters</span> <span class="o">=</span> <span class="kc">None</span>
</span><span id="Fit_result-39"><a href="#Fit_result-39"><span class="linenos">39</span></a>
</span><span id="Fit_result-40"><a href="#Fit_result-40"><span class="linenos">40</span></a> <span class="k">def</span> <span class="fm">__getitem__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">idx</span><span class="p">):</span>
</span><span id="Fit_result-40"><a href="#Fit_result-40"><span class="linenos">40</span></a> <span class="k">def</span><span class="w"> </span><span class="fm">__getitem__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">idx</span><span class="p">):</span>
</span><span id="Fit_result-41"><a href="#Fit_result-41"><span class="linenos">41</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">fit_parameters</span><span class="p">[</span><span class="n">idx</span><span class="p">]</span>
</span><span id="Fit_result-42"><a href="#Fit_result-42"><span class="linenos">42</span></a>
</span><span id="Fit_result-43"><a href="#Fit_result-43"><span class="linenos">43</span></a> <span class="k">def</span> <span class="fm">__len__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="Fit_result-43"><a href="#Fit_result-43"><span class="linenos">43</span></a> <span class="k">def</span><span class="w"> </span><span class="fm">__len__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="Fit_result-44"><a href="#Fit_result-44"><span class="linenos">44</span></a> <span class="k">return</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">fit_parameters</span><span class="p">)</span>
</span><span id="Fit_result-45"><a href="#Fit_result-45"><span class="linenos">45</span></a>
</span><span id="Fit_result-46"><a href="#Fit_result-46"><span class="linenos">46</span></a> <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><span id="Fit_result-46"><a href="#Fit_result-46"><span class="linenos">46</span></a> <span class="k">def</span><span class="w"> </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><span id="Fit_result-47"><a href="#Fit_result-47"><span class="linenos">47</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Apply the gamma method to all fit parameters&quot;&quot;&quot;</span>
</span><span id="Fit_result-48"><a href="#Fit_result-48"><span class="linenos">48</span></a> <span class="p">[</span><span class="n">o</span><span class="o">.</span><span class="n">gamma_method</span><span class="p">(</span><span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">fit_parameters</span><span class="p">]</span>
</span><span id="Fit_result-49"><a href="#Fit_result-49"><span class="linenos">49</span></a>
</span><span id="Fit_result-50"><a href="#Fit_result-50"><span class="linenos">50</span></a> <span class="n">gm</span> <span class="o">=</span> <span class="n">gamma_method</span>
</span><span id="Fit_result-51"><a href="#Fit_result-51"><span class="linenos">51</span></a>
</span><span id="Fit_result-52"><a href="#Fit_result-52"><span class="linenos">52</span></a> <span class="k">def</span> <span class="fm">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="Fit_result-52"><a href="#Fit_result-52"><span class="linenos">52</span></a> <span class="k">def</span><span class="w"> </span><span class="fm">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="Fit_result-53"><a href="#Fit_result-53"><span class="linenos">53</span></a> <span class="n">my_str</span> <span class="o">=</span> <span class="s1">&#39;Goodness of fit:</span><span class="se">\n</span><span class="s1">&#39;</span>
</span><span id="Fit_result-54"><a href="#Fit_result-54"><span class="linenos">54</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="s1">&#39;chisquare_by_dof&#39;</span><span class="p">):</span>
</span><span id="Fit_result-55"><a href="#Fit_result-55"><span class="linenos">55</span></a> <span class="n">my_str</span> <span class="o">+=</span> <span class="s1">&#39;</span><span class="se">\u03C7\u00b2</span><span class="s1">/d.o.f. = &#39;</span> <span class="o">+</span> <span class="sa">f</span><span class="s1">&#39;</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">chisquare_by_dof</span><span class="si">:</span><span class="s1">2.6f</span><span class="si">}</span><span class="s1">&#39;</span> <span class="o">+</span> <span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</span>
@ -1064,7 +1064,7 @@
</span><span id="Fit_result-66"><a href="#Fit_result-66"><span class="linenos">66</span></a> <span class="n">my_str</span> <span class="o">+=</span> <span class="nb">str</span><span class="p">(</span><span class="n">i_par</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;</span><span class="se">\t</span><span class="s1">&#39;</span> <span class="o">+</span> <span class="s1">&#39; &#39;</span> <span class="o">*</span> <span class="nb">int</span><span class="p">(</span><span class="n">par</span> <span class="o">&gt;=</span> <span class="mi">0</span><span class="p">)</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">par</span><span class="p">)</span><span class="o">.</span><span class="n">rjust</span><span class="p">(</span><span class="nb">int</span><span class="p">(</span><span class="n">par</span> <span class="o">&lt;</span> <span class="mf">0.0</span><span class="p">))</span> <span class="o">+</span> <span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</span>
</span><span id="Fit_result-67"><a href="#Fit_result-67"><span class="linenos">67</span></a> <span class="k">return</span> <span class="n">my_str</span>
</span><span id="Fit_result-68"><a href="#Fit_result-68"><span class="linenos">68</span></a>
</span><span id="Fit_result-69"><a href="#Fit_result-69"><span class="linenos">69</span></a> <span class="k">def</span> <span class="fm">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="Fit_result-69"><a href="#Fit_result-69"><span class="linenos">69</span></a> <span class="k">def</span><span class="w"> </span><span class="fm">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="Fit_result-70"><a href="#Fit_result-70"><span class="linenos">70</span></a> <span class="n">m</span> <span class="o">=</span> <span class="nb">max</span><span class="p">(</span><span class="nb">map</span><span class="p">(</span><span class="nb">len</span><span class="p">,</span> <span class="nb">list</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="vm">__dict__</span><span class="o">.</span><span class="n">keys</span><span class="p">())))</span> <span class="o">+</span> <span class="mi">1</span>
</span><span id="Fit_result-71"><a href="#Fit_result-71"><span class="linenos">71</span></a> <span class="k">return</span> <span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">join</span><span class="p">([</span><span class="n">key</span><span class="o">.</span><span class="n">rjust</span><span class="p">(</span><span class="n">m</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;: &#39;</span> <span class="o">+</span> <span class="nb">repr</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> <span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="nb">sorted</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="vm">__dict__</span><span class="o">.</span><span class="n">items</span><span class="p">())])</span>
</span></pre></div>
@ -1110,7 +1110,7 @@ Hotelling t-squared p-value for correlated fits.</li>
</div>
<a class="headerlink" href="#Fit_result.gamma_method"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Fit_result.gamma_method-46"><a href="#Fit_result.gamma_method-46"><span class="linenos">46</span></a> <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>
<div class="pdoc-code codehilite"><pre><span></span><span id="Fit_result.gamma_method-46"><a href="#Fit_result.gamma_method-46"><span class="linenos">46</span></a> <span class="k">def</span><span class="w"> </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><span id="Fit_result.gamma_method-47"><a href="#Fit_result.gamma_method-47"><span class="linenos">47</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Apply the gamma method to all fit parameters&quot;&quot;&quot;</span>
</span><span id="Fit_result.gamma_method-48"><a href="#Fit_result.gamma_method-48"><span class="linenos">48</span></a> <span class="p">[</span><span class="n">o</span><span class="o">.</span><span class="n">gamma_method</span><span class="p">(</span><span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">fit_parameters</span><span class="p">]</span>
</span></pre></div>
@ -1132,7 +1132,7 @@ Hotelling t-squared p-value for correlated fits.</li>
</div>
<a class="headerlink" href="#Fit_result.gm"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Fit_result.gm-46"><a href="#Fit_result.gm-46"><span class="linenos">46</span></a> <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>
<div class="pdoc-code codehilite"><pre><span></span><span id="Fit_result.gm-46"><a href="#Fit_result.gm-46"><span class="linenos">46</span></a> <span class="k">def</span><span class="w"> </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><span id="Fit_result.gm-47"><a href="#Fit_result.gm-47"><span class="linenos">47</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Apply the gamma method to all fit parameters&quot;&quot;&quot;</span>
</span><span id="Fit_result.gm-48"><a href="#Fit_result.gm-48"><span class="linenos">48</span></a> <span class="p">[</span><span class="n">o</span><span class="o">.</span><span class="n">gamma_method</span><span class="p">(</span><span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">fit_parameters</span><span class="p">]</span>
</span></pre></div>
@ -1155,7 +1155,7 @@ Hotelling t-squared p-value for correlated fits.</li>
</div>
<a class="headerlink" href="#least_squares"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="least_squares-74"><a href="#least_squares-74"><span class="linenos"> 74</span></a><span class="k">def</span> <span class="nf">least_squares</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">priors</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">silent</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>
<div class="pdoc-code codehilite"><pre><span></span><span id="least_squares-74"><a href="#least_squares-74"><span class="linenos"> 74</span></a><span class="k">def</span><span class="w"> </span><span class="nf">least_squares</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">priors</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">silent</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><span id="least_squares-75"><a href="#least_squares-75"><span class="linenos"> 75</span></a><span class="w"> </span><span class="sa">r</span><span class="sd">&#39;&#39;&#39;Performs a non-linear fit to y = func(x).</span>
</span><span id="least_squares-76"><a href="#least_squares-76"><span class="linenos"> 76</span></a><span class="sd"> ```</span>
</span><span id="least_squares-77"><a href="#least_squares-77"><span class="linenos"> 77</span></a>
@ -1429,15 +1429,15 @@ Hotelling t-squared p-value for correlated fits.</li>
</span><span id="least_squares-345"><a href="#least_squares-345"><span class="linenos">345</span></a> <span class="n">x0</span> <span class="o">=</span> <span class="p">[</span><span class="mf">0.1</span><span class="p">]</span> <span class="o">*</span> <span class="n">n_parms</span>
</span><span id="least_squares-346"><a href="#least_squares-346"><span class="linenos">346</span></a>
</span><span id="least_squares-347"><a href="#least_squares-347"><span class="linenos">347</span></a> <span class="k">if</span> <span class="n">priors</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
</span><span id="least_squares-348"><a href="#least_squares-348"><span class="linenos">348</span></a> <span class="k">def</span> <span class="nf">general_chisqfunc_uncorr</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">ivars</span><span class="p">,</span> <span class="n">pr</span><span class="p">):</span>
</span><span id="least_squares-348"><a href="#least_squares-348"><span class="linenos">348</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">general_chisqfunc_uncorr</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">ivars</span><span class="p">,</span> <span class="n">pr</span><span class="p">):</span>
</span><span id="least_squares-349"><a href="#least_squares-349"><span class="linenos">349</span></a> <span class="n">model</span> <span class="o">=</span> <span class="n">anp</span><span class="o">.</span><span class="n">concatenate</span><span class="p">([</span><span class="n">anp</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">funcd</span><span class="p">[</span><span class="n">key</span><span class="p">](</span><span class="n">p</span><span class="p">,</span> <span class="n">xd</span><span class="p">[</span><span class="n">key</span><span class="p">]))</span><span class="o">.</span><span class="n">reshape</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">key</span> <span class="ow">in</span> <span class="n">key_ls</span><span class="p">])</span>
</span><span id="least_squares-350"><a href="#least_squares-350"><span class="linenos">350</span></a> <span class="k">return</span> <span class="p">(</span><span class="n">ivars</span> <span class="o">-</span> <span class="n">model</span><span class="p">)</span> <span class="o">/</span> <span class="n">dy_f</span>
</span><span id="least_squares-351"><a href="#least_squares-351"><span class="linenos">351</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="least_squares-352"><a href="#least_squares-352"><span class="linenos">352</span></a> <span class="k">def</span> <span class="nf">general_chisqfunc_uncorr</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">ivars</span><span class="p">,</span> <span class="n">pr</span><span class="p">):</span>
</span><span id="least_squares-352"><a href="#least_squares-352"><span class="linenos">352</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">general_chisqfunc_uncorr</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">ivars</span><span class="p">,</span> <span class="n">pr</span><span class="p">):</span>
</span><span id="least_squares-353"><a href="#least_squares-353"><span class="linenos">353</span></a> <span class="n">model</span> <span class="o">=</span> <span class="n">anp</span><span class="o">.</span><span class="n">concatenate</span><span class="p">([</span><span class="n">anp</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">funcd</span><span class="p">[</span><span class="n">key</span><span class="p">](</span><span class="n">p</span><span class="p">,</span> <span class="n">xd</span><span class="p">[</span><span class="n">key</span><span class="p">]))</span><span class="o">.</span><span class="n">reshape</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">key</span> <span class="ow">in</span> <span class="n">key_ls</span><span class="p">])</span>
</span><span id="least_squares-354"><a href="#least_squares-354"><span class="linenos">354</span></a> <span class="k">return</span> <span class="n">anp</span><span class="o">.</span><span class="n">concatenate</span><span class="p">(((</span><span class="n">ivars</span> <span class="o">-</span> <span class="n">model</span><span class="p">)</span> <span class="o">/</span> <span class="n">dy_f</span><span class="p">,</span> <span class="p">(</span><span class="n">p</span><span class="p">[</span><span class="n">prior_mask</span><span class="p">]</span> <span class="o">-</span> <span class="n">pr</span><span class="p">)</span> <span class="o">/</span> <span class="n">dp_f</span><span class="p">))</span>
</span><span id="least_squares-355"><a href="#least_squares-355"><span class="linenos">355</span></a>
</span><span id="least_squares-356"><a href="#least_squares-356"><span class="linenos">356</span></a> <span class="k">def</span> <span class="nf">chisqfunc_uncorr</span><span class="p">(</span><span class="n">p</span><span class="p">):</span>
</span><span id="least_squares-356"><a href="#least_squares-356"><span class="linenos">356</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">chisqfunc_uncorr</span><span class="p">(</span><span class="n">p</span><span class="p">):</span>
</span><span id="least_squares-357"><a href="#least_squares-357"><span class="linenos">357</span></a> <span class="k">return</span> <span class="n">anp</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="n">general_chisqfunc_uncorr</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">y_f</span><span class="p">,</span> <span class="n">p_f</span><span class="p">)</span> <span class="o">**</span> <span class="mi">2</span><span class="p">)</span>
</span><span id="least_squares-358"><a href="#least_squares-358"><span class="linenos">358</span></a>
</span><span id="least_squares-359"><a href="#least_squares-359"><span class="linenos">359</span></a> <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;correlated_fit&#39;</span><span class="p">)</span> <span class="ow">is</span> <span class="kc">True</span><span class="p">:</span>
@ -1455,11 +1455,11 @@ Hotelling t-squared p-value for correlated fits.</li>
</span><span id="least_squares-371"><a href="#least_squares-371"><span class="linenos">371</span></a> <span class="n">inverrdiag</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">diag</span><span class="p">(</span><span class="mi">1</span> <span class="o">/</span> <span class="n">np</span><span class="o">.</span><span class="n">asarray</span><span class="p">(</span><span class="n">dy_f</span><span class="p">))</span>
</span><span id="least_squares-372"><a href="#least_squares-372"><span class="linenos">372</span></a> <span class="n">chol_inv</span> <span class="o">=</span> <span class="n">invert_corr_cov_cholesky</span><span class="p">(</span><span class="n">corr</span><span class="p">,</span> <span class="n">inverrdiag</span><span class="p">)</span>
</span><span id="least_squares-373"><a href="#least_squares-373"><span class="linenos">373</span></a>
</span><span id="least_squares-374"><a href="#least_squares-374"><span class="linenos">374</span></a> <span class="k">def</span> <span class="nf">general_chisqfunc</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">ivars</span><span class="p">,</span> <span class="n">pr</span><span class="p">):</span>
</span><span id="least_squares-374"><a href="#least_squares-374"><span class="linenos">374</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">general_chisqfunc</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">ivars</span><span class="p">,</span> <span class="n">pr</span><span class="p">):</span>
</span><span id="least_squares-375"><a href="#least_squares-375"><span class="linenos">375</span></a> <span class="n">model</span> <span class="o">=</span> <span class="n">anp</span><span class="o">.</span><span class="n">concatenate</span><span class="p">([</span><span class="n">anp</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">funcd</span><span class="p">[</span><span class="n">key</span><span class="p">](</span><span class="n">p</span><span class="p">,</span> <span class="n">xd</span><span class="p">[</span><span class="n">key</span><span class="p">]))</span><span class="o">.</span><span class="n">reshape</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">key</span> <span class="ow">in</span> <span class="n">key_ls</span><span class="p">])</span>
</span><span id="least_squares-376"><a href="#least_squares-376"><span class="linenos">376</span></a> <span class="k">return</span> <span class="n">anp</span><span class="o">.</span><span class="n">concatenate</span><span class="p">((</span><span class="n">anp</span><span class="o">.</span><span class="n">dot</span><span class="p">(</span><span class="n">chol_inv</span><span class="p">,</span> <span class="p">(</span><span class="n">ivars</span> <span class="o">-</span> <span class="n">model</span><span class="p">)),</span> <span class="p">(</span><span class="n">p</span><span class="p">[</span><span class="n">prior_mask</span><span class="p">]</span> <span class="o">-</span> <span class="n">pr</span><span class="p">)</span> <span class="o">/</span> <span class="n">dp_f</span><span class="p">))</span>
</span><span id="least_squares-377"><a href="#least_squares-377"><span class="linenos">377</span></a>
</span><span id="least_squares-378"><a href="#least_squares-378"><span class="linenos">378</span></a> <span class="k">def</span> <span class="nf">chisqfunc</span><span class="p">(</span><span class="n">p</span><span class="p">):</span>
</span><span id="least_squares-378"><a href="#least_squares-378"><span class="linenos">378</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">chisqfunc</span><span class="p">(</span><span class="n">p</span><span class="p">):</span>
</span><span id="least_squares-379"><a href="#least_squares-379"><span class="linenos">379</span></a> <span class="k">return</span> <span class="n">anp</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="n">general_chisqfunc</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">y_f</span><span class="p">,</span> <span class="n">p_f</span><span class="p">)</span> <span class="o">**</span> <span class="mi">2</span><span class="p">)</span>
</span><span id="least_squares-380"><a href="#least_squares-380"><span class="linenos">380</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="least_squares-381"><a href="#least_squares-381"><span class="linenos">381</span></a> <span class="n">general_chisqfunc</span> <span class="o">=</span> <span class="n">general_chisqfunc_uncorr</span>
@ -1493,12 +1493,12 @@ Hotelling t-squared p-value for correlated fits.</li>
</span><span id="least_squares-409"><a href="#least_squares-409"><span class="linenos">409</span></a> <span class="k">if</span> <span class="s1">&#39;tol&#39;</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
</span><span id="least_squares-410"><a href="#least_squares-410"><span class="linenos">410</span></a> <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;tol cannot be set for Levenberg-Marquardt&#39;</span><span class="p">)</span>
</span><span id="least_squares-411"><a href="#least_squares-411"><span class="linenos">411</span></a>
</span><span id="least_squares-412"><a href="#least_squares-412"><span class="linenos">412</span></a> <span class="k">def</span> <span class="nf">chisqfunc_residuals_uncorr</span><span class="p">(</span><span class="n">p</span><span class="p">):</span>
</span><span id="least_squares-412"><a href="#least_squares-412"><span class="linenos">412</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">chisqfunc_residuals_uncorr</span><span class="p">(</span><span class="n">p</span><span class="p">):</span>
</span><span id="least_squares-413"><a href="#least_squares-413"><span class="linenos">413</span></a> <span class="k">return</span> <span class="n">general_chisqfunc_uncorr</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">y_f</span><span class="p">,</span> <span class="n">p_f</span><span class="p">)</span>
</span><span id="least_squares-414"><a href="#least_squares-414"><span class="linenos">414</span></a>
</span><span id="least_squares-415"><a href="#least_squares-415"><span class="linenos">415</span></a> <span class="n">fit_result</span> <span class="o">=</span> <span class="n">scipy</span><span class="o">.</span><span class="n">optimize</span><span class="o">.</span><span class="n">least_squares</span><span class="p">(</span><span class="n">chisqfunc_residuals_uncorr</span><span class="p">,</span> <span class="n">x0</span><span class="p">,</span> <span class="n">method</span><span class="o">=</span><span class="s1">&#39;lm&#39;</span><span class="p">,</span> <span class="n">ftol</span><span class="o">=</span><span class="mf">1e-15</span><span class="p">,</span> <span class="n">gtol</span><span class="o">=</span><span class="mf">1e-15</span><span class="p">,</span> <span class="n">xtol</span><span class="o">=</span><span class="mf">1e-15</span><span class="p">)</span>
</span><span id="least_squares-416"><a href="#least_squares-416"><span class="linenos">416</span></a> <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;correlated_fit&#39;</span><span class="p">)</span> <span class="ow">is</span> <span class="kc">True</span><span class="p">:</span>
</span><span id="least_squares-417"><a href="#least_squares-417"><span class="linenos">417</span></a> <span class="k">def</span> <span class="nf">chisqfunc_residuals</span><span class="p">(</span><span class="n">p</span><span class="p">):</span>
</span><span id="least_squares-417"><a href="#least_squares-417"><span class="linenos">417</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">chisqfunc_residuals</span><span class="p">(</span><span class="n">p</span><span class="p">):</span>
</span><span id="least_squares-418"><a href="#least_squares-418"><span class="linenos">418</span></a> <span class="k">return</span> <span class="n">general_chisqfunc</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">y_f</span><span class="p">,</span> <span class="n">p_f</span><span class="p">)</span>
</span><span id="least_squares-419"><a href="#least_squares-419"><span class="linenos">419</span></a>
</span><span id="least_squares-420"><a href="#least_squares-420"><span class="linenos">420</span></a> <span class="n">fit_result</span> <span class="o">=</span> <span class="n">scipy</span><span class="o">.</span><span class="n">optimize</span><span class="o">.</span><span class="n">least_squares</span><span class="p">(</span><span class="n">chisqfunc_residuals</span><span class="p">,</span> <span class="n">fit_result</span><span class="o">.</span><span class="n">x</span><span class="p">,</span> <span class="n">method</span><span class="o">=</span><span class="s1">&#39;lm&#39;</span><span class="p">,</span> <span class="n">ftol</span><span class="o">=</span><span class="mf">1e-15</span><span class="p">,</span> <span class="n">gtol</span><span class="o">=</span><span class="mf">1e-15</span><span class="p">,</span> <span class="n">xtol</span><span class="o">=</span><span class="mf">1e-15</span><span class="p">)</span>
@ -1525,7 +1525,7 @@ Hotelling t-squared p-value for correlated fits.</li>
</span><span id="least_squares-441"><a href="#least_squares-441"><span class="linenos">441</span></a> <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;chisquare/d.o.f.:&#39;</span><span class="p">,</span> <span class="n">output</span><span class="o">.</span><span class="n">chisquare_by_dof</span><span class="p">)</span>
</span><span id="least_squares-442"><a href="#least_squares-442"><span class="linenos">442</span></a> <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;fit parameters&#39;</span><span class="p">,</span> <span class="n">fit_result</span><span class="o">.</span><span class="n">x</span><span class="p">)</span>
</span><span id="least_squares-443"><a href="#least_squares-443"><span class="linenos">443</span></a>
</span><span id="least_squares-444"><a href="#least_squares-444"><span class="linenos">444</span></a> <span class="k">def</span> <span class="nf">prepare_hat_matrix</span><span class="p">():</span>
</span><span id="least_squares-444"><a href="#least_squares-444"><span class="linenos">444</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">prepare_hat_matrix</span><span class="p">():</span>
</span><span id="least_squares-445"><a href="#least_squares-445"><span class="linenos">445</span></a> <span class="n">hat_vector</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="least_squares-446"><a href="#least_squares-446"><span class="linenos">446</span></a> <span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="n">key_ls</span><span class="p">:</span>
</span><span id="least_squares-447"><a href="#least_squares-447"><span class="linenos">447</span></a> <span class="k">if</span> <span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">xd</span><span class="p">[</span><span class="n">key</span><span class="p">])</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">):</span>
@ -1550,11 +1550,11 @@ Hotelling t-squared p-value for correlated fits.</li>
</span><span id="least_squares-466"><a href="#least_squares-466"><span class="linenos">466</span></a> <span class="k">try</span><span class="p">:</span>
</span><span id="least_squares-467"><a href="#least_squares-467"><span class="linenos">467</span></a> <span class="n">hess</span> <span class="o">=</span> <span class="n">hessian</span><span class="p">(</span><span class="n">chisqfunc</span><span class="p">)(</span><span class="n">fitp</span><span class="p">)</span>
</span><span id="least_squares-468"><a href="#least_squares-468"><span class="linenos">468</span></a> <span class="k">except</span> <span class="ne">TypeError</span><span class="p">:</span>
</span><span id="least_squares-469"><a href="#least_squares-469"><span class="linenos">469</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">&quot;It is required to use autograd.numpy instead of numpy within fit functions, see the documentation for details.&quot;</span><span class="p">)</span> <span class="kn">from</span> <span class="kc">None</span>
</span><span id="least_squares-469"><a href="#least_squares-469"><span class="linenos">469</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">&quot;It is required to use autograd.numpy instead of numpy within fit functions, see the documentation for details.&quot;</span><span class="p">)</span> <span class="kn">from</span><span class="w"> </span><span class="kc">None</span>
</span><span id="least_squares-470"><a href="#least_squares-470"><span class="linenos">470</span></a>
</span><span id="least_squares-471"><a href="#least_squares-471"><span class="linenos">471</span></a> <span class="n">len_y</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">y_f</span><span class="p">)</span>
</span><span id="least_squares-472"><a href="#least_squares-472"><span class="linenos">472</span></a>
</span><span id="least_squares-473"><a href="#least_squares-473"><span class="linenos">473</span></a> <span class="k">def</span> <span class="nf">chisqfunc_compact</span><span class="p">(</span><span class="n">d</span><span class="p">):</span>
</span><span id="least_squares-473"><a href="#least_squares-473"><span class="linenos">473</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">chisqfunc_compact</span><span class="p">(</span><span class="n">d</span><span class="p">):</span>
</span><span id="least_squares-474"><a href="#least_squares-474"><span class="linenos">474</span></a> <span class="k">return</span> <span class="n">anp</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="n">general_chisqfunc</span><span class="p">(</span><span class="n">d</span><span class="p">[:</span><span class="n">n_parms</span><span class="p">],</span> <span class="n">d</span><span class="p">[</span><span class="n">n_parms</span><span class="p">:</span> <span class="n">n_parms</span> <span class="o">+</span> <span class="n">len_y</span><span class="p">],</span> <span class="n">d</span><span class="p">[</span><span class="n">n_parms</span> <span class="o">+</span> <span class="n">len_y</span><span class="p">:])</span> <span class="o">**</span> <span class="mi">2</span><span class="p">)</span>
</span><span id="least_squares-475"><a href="#least_squares-475"><span class="linenos">475</span></a>
</span><span id="least_squares-476"><a href="#least_squares-476"><span class="linenos">476</span></a> <span class="n">jac_jac_y</span> <span class="o">=</span> <span class="n">hessian</span><span class="p">(</span><span class="n">chisqfunc_compact</span><span class="p">)(</span><span class="n">np</span><span class="o">.</span><span class="n">concatenate</span><span class="p">((</span><span class="n">fitp</span><span class="p">,</span> <span class="n">y_f</span><span class="p">,</span> <span class="n">p_f</span><span class="p">)))</span>
@ -1604,9 +1604,9 @@ list of Obs.</li>
fit function, has to be of the form</p>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="kn">import</span> <span class="nn">autograd.numpy</span> <span class="k">as</span> <span class="nn">anp</span>
<pre><span></span><code><span class="kn">import</span><span class="w"> </span><span class="nn">autograd.numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">anp</span>
<span class="k">def</span> <span class="nf">func</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">x</span><span class="p">):</span>
<span class="k">def</span><span class="w"> </span><span class="nf">func</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">x</span><span class="p">):</span>
<span class="k">return</span> <span class="n">a</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="n">a</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">*</span> <span class="n">x</span> <span class="o">+</span> <span class="n">a</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">*</span> <span class="n">anp</span><span class="o">.</span><span class="n">sinh</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
</code></pre>
</div>
@ -1614,7 +1614,7 @@ fit function, has to be of the form</p>
<p>For multiple x values func can be of the form</p>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="k">def</span> <span class="nf">func</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">x</span><span class="p">):</span>
<pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">func</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">x</span><span class="p">):</span>
<span class="p">(</span><span class="n">x1</span><span class="p">,</span> <span class="n">x2</span><span class="p">)</span> <span class="o">=</span> <span class="n">x</span>
<span class="k">return</span> <span class="n">a</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">*</span> <span class="n">x1</span> <span class="o">**</span> <span class="mi">2</span> <span class="o">+</span> <span class="n">a</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">*</span> <span class="n">x2</span>
</code></pre>
@ -1698,10 +1698,10 @@ Parameters and information on the fitted result.</li>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="c1"># Example of a correlated (correlated_fit = True, inv_chol_cov_matrix handed over) combined fit, based on a randomly generated data set</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">scipy.stats</span> <span class="kn">import</span> <span class="n">norm</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">scipy.linalg</span> <span class="kn">import</span> <span class="n">cholesky</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">pyerrors</span> <span class="k">as</span> <span class="nn">pe</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span><span class="w"> </span><span class="nn">numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">np</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span><span class="w"> </span><span class="nn">scipy.stats</span><span class="w"> </span><span class="kn">import</span> <span class="n">norm</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span><span class="w"> </span><span class="nn">scipy.linalg</span><span class="w"> </span><span class="kn">import</span> <span class="n">cholesky</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span><span class="w"> </span><span class="nn">pyerrors</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">pe</span>
<span class="gp">&gt;&gt;&gt; </span><span class="c1"># generating the random data set</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">num_samples</span> <span class="o">=</span> <span class="mi">400</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">N</span> <span class="o">=</span> <span class="mi">3</span>
@ -1734,9 +1734,9 @@ Parameters and information on the fitted result.</li>
<span class="gp">&gt;&gt;&gt; </span> <span class="n">chol_inv</span> <span class="o">=</span> <span class="n">pe</span><span class="o">.</span><span class="n">obs</span><span class="o">.</span><span class="n">invert_corr_cov_cholesky</span><span class="p">(</span><span class="n">corr</span><span class="p">,</span> <span class="n">inverrdiag</span><span class="p">)</span> <span class="c1"># gives form of the inverse covariance matrix needed for the combined correlated fit below</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">y_dict</span> <span class="o">=</span> <span class="p">{</span><span class="s1">&#39;a&#39;</span><span class="p">:</span> <span class="n">data</span><span class="p">[:</span><span class="mi">3</span><span class="p">],</span> <span class="s1">&#39;b&#39;</span><span class="p">:</span> <span class="n">data</span><span class="p">[</span><span class="mi">3</span><span class="p">:]}</span>
<span class="gp">&gt;&gt;&gt; </span><span class="c1"># common fit parameter p[0] in combined fit</span>
<span class="gp">&gt;&gt;&gt; </span><span class="k">def</span> <span class="nf">fit1</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">x</span><span class="p">):</span>
<span class="gp">&gt;&gt;&gt; </span><span class="k">def</span><span class="w"> </span><span class="nf">fit1</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">x</span><span class="p">):</span>
<span class="gp">&gt;&gt;&gt; </span> <span class="k">return</span> <span class="n">p</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="n">p</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">*</span> <span class="n">x</span>
<span class="gp">&gt;&gt;&gt; </span><span class="k">def</span> <span class="nf">fit2</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">x</span><span class="p">):</span>
<span class="gp">&gt;&gt;&gt; </span><span class="k">def</span><span class="w"> </span><span class="nf">fit2</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">x</span><span class="p">):</span>
<span class="gp">&gt;&gt;&gt; </span> <span class="k">return</span> <span class="n">p</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="n">p</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">*</span> <span class="n">x</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">fitf_dict</span> <span class="o">=</span> <span class="p">{</span><span class="s1">&#39;a&#39;</span><span class="p">:</span> <span class="n">fit1</span><span class="p">,</span> <span class="s1">&#39;b&#39;</span><span class="p">:</span><span class="n">fit2</span><span class="p">}</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">fitp_inv_cov_combined_fit</span> <span class="o">=</span> <span class="n">pe</span><span class="o">.</span><span class="n">least_squares</span><span class="p">(</span><span class="n">x_dict</span><span class="p">,</span><span class="n">y_dict</span><span class="p">,</span> <span class="n">fitf_dict</span><span class="p">,</span> <span class="n">correlated_fit</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">inv_chol_cov_matrix</span> <span class="o">=</span> <span class="p">[</span><span class="n">chol_inv</span><span class="p">,[</span><span class="s1">&#39;a&#39;</span><span class="p">,</span><span class="s1">&#39;b&#39;</span><span class="p">]])</span>
@ -1762,7 +1762,7 @@ Parameters and information on the fitted result.</li>
</div>
<a class="headerlink" href="#total_least_squares"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="total_least_squares-507"><a href="#total_least_squares-507"><span class="linenos">507</span></a><span class="k">def</span> <span class="nf">total_least_squares</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">silent</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>
<div class="pdoc-code codehilite"><pre><span></span><span id="total_least_squares-507"><a href="#total_least_squares-507"><span class="linenos">507</span></a><span class="k">def</span><span class="w"> </span><span class="nf">total_least_squares</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">silent</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><span id="total_least_squares-508"><a href="#total_least_squares-508"><span class="linenos">508</span></a><span class="w"> </span><span class="sa">r</span><span class="sd">&#39;&#39;&#39;Performs a non-linear fit to y = func(x) and returns a list of Obs corresponding to the fit parameters.</span>
</span><span id="total_least_squares-509"><a href="#total_least_squares-509"><span class="linenos">509</span></a>
</span><span id="total_least_squares-510"><a href="#total_least_squares-510"><span class="linenos">510</span></a><span class="sd"> Parameters</span>
@ -1890,7 +1890,7 @@ Parameters and information on the fitted result.</li>
</span><span id="total_least_squares-632"><a href="#total_least_squares-632"><span class="linenos">632</span></a>
</span><span id="total_least_squares-633"><a href="#total_least_squares-633"><span class="linenos">633</span></a> <span class="n">m</span> <span class="o">=</span> <span class="n">x_f</span><span class="o">.</span><span class="n">size</span>
</span><span id="total_least_squares-634"><a href="#total_least_squares-634"><span class="linenos">634</span></a>
</span><span id="total_least_squares-635"><a href="#total_least_squares-635"><span class="linenos">635</span></a> <span class="k">def</span> <span class="nf">odr_chisquare</span><span class="p">(</span><span class="n">p</span><span class="p">):</span>
</span><span id="total_least_squares-635"><a href="#total_least_squares-635"><span class="linenos">635</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">odr_chisquare</span><span class="p">(</span><span class="n">p</span><span class="p">):</span>
</span><span id="total_least_squares-636"><a href="#total_least_squares-636"><span class="linenos">636</span></a> <span class="n">model</span> <span class="o">=</span> <span class="n">func</span><span class="p">(</span><span class="n">p</span><span class="p">[:</span><span class="n">n_parms</span><span class="p">],</span> <span class="n">p</span><span class="p">[</span><span class="n">n_parms</span><span class="p">:]</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="n">x_shape</span><span class="p">))</span>
</span><span id="total_least_squares-637"><a href="#total_least_squares-637"><span class="linenos">637</span></a> <span class="n">chisq</span> <span class="o">=</span> <span class="n">anp</span><span class="o">.</span><span class="n">sum</span><span class="p">(((</span><span class="n">y_f</span> <span class="o">-</span> <span class="n">model</span><span class="p">)</span> <span class="o">/</span> <span class="n">dy_f</span><span class="p">)</span> <span class="o">**</span> <span class="mi">2</span><span class="p">)</span> <span class="o">+</span> <span class="n">anp</span><span class="o">.</span><span class="n">sum</span><span class="p">(((</span><span class="n">x_f</span> <span class="o">-</span> <span class="n">p</span><span class="p">[</span><span class="n">n_parms</span><span class="p">:]</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="n">x_shape</span><span class="p">))</span> <span class="o">/</span> <span class="n">dx_f</span><span class="p">)</span> <span class="o">**</span> <span class="mi">2</span><span class="p">)</span>
</span><span id="total_least_squares-638"><a href="#total_least_squares-638"><span class="linenos">638</span></a> <span class="k">return</span> <span class="n">chisq</span>
@ -1925,9 +1925,9 @@ Parameters and information on the fitted result.</li>
</span><span id="total_least_squares-667"><a href="#total_least_squares-667"><span class="linenos">667</span></a> <span class="k">try</span><span class="p">:</span>
</span><span id="total_least_squares-668"><a href="#total_least_squares-668"><span class="linenos">668</span></a> <span class="n">hess</span> <span class="o">=</span> <span class="n">hessian</span><span class="p">(</span><span class="n">odr_chisquare</span><span class="p">)(</span><span class="n">np</span><span class="o">.</span><span class="n">concatenate</span><span class="p">((</span><span class="n">fitp</span><span class="p">,</span> <span class="n">out</span><span class="o">.</span><span class="n">xplus</span><span class="o">.</span><span class="n">ravel</span><span class="p">())))</span>
</span><span id="total_least_squares-669"><a href="#total_least_squares-669"><span class="linenos">669</span></a> <span class="k">except</span> <span class="ne">TypeError</span><span class="p">:</span>
</span><span id="total_least_squares-670"><a href="#total_least_squares-670"><span class="linenos">670</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">&quot;It is required to use autograd.numpy instead of numpy within fit functions, see the documentation for details.&quot;</span><span class="p">)</span> <span class="kn">from</span> <span class="kc">None</span>
</span><span id="total_least_squares-670"><a href="#total_least_squares-670"><span class="linenos">670</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">&quot;It is required to use autograd.numpy instead of numpy within fit functions, see the documentation for details.&quot;</span><span class="p">)</span> <span class="kn">from</span><span class="w"> </span><span class="kc">None</span>
</span><span id="total_least_squares-671"><a href="#total_least_squares-671"><span class="linenos">671</span></a>
</span><span id="total_least_squares-672"><a href="#total_least_squares-672"><span class="linenos">672</span></a> <span class="k">def</span> <span class="nf">odr_chisquare_compact_x</span><span class="p">(</span><span class="n">d</span><span class="p">):</span>
</span><span id="total_least_squares-672"><a href="#total_least_squares-672"><span class="linenos">672</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">odr_chisquare_compact_x</span><span class="p">(</span><span class="n">d</span><span class="p">):</span>
</span><span id="total_least_squares-673"><a href="#total_least_squares-673"><span class="linenos">673</span></a> <span class="n">model</span> <span class="o">=</span> <span class="n">func</span><span class="p">(</span><span class="n">d</span><span class="p">[:</span><span class="n">n_parms</span><span class="p">],</span> <span class="n">d</span><span class="p">[</span><span class="n">n_parms</span><span class="p">:</span><span class="n">n_parms</span> <span class="o">+</span> <span class="n">m</span><span class="p">]</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="n">x_shape</span><span class="p">))</span>
</span><span id="total_least_squares-674"><a href="#total_least_squares-674"><span class="linenos">674</span></a> <span class="n">chisq</span> <span class="o">=</span> <span class="n">anp</span><span class="o">.</span><span class="n">sum</span><span class="p">(((</span><span class="n">y_f</span> <span class="o">-</span> <span class="n">model</span><span class="p">)</span> <span class="o">/</span> <span class="n">dy_f</span><span class="p">)</span> <span class="o">**</span> <span class="mi">2</span><span class="p">)</span> <span class="o">+</span> <span class="n">anp</span><span class="o">.</span><span class="n">sum</span><span class="p">(((</span><span class="n">d</span><span class="p">[</span><span class="n">n_parms</span> <span class="o">+</span> <span class="n">m</span><span class="p">:]</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="n">x_shape</span><span class="p">)</span> <span class="o">-</span> <span class="n">d</span><span class="p">[</span><span class="n">n_parms</span><span class="p">:</span><span class="n">n_parms</span> <span class="o">+</span> <span class="n">m</span><span class="p">]</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="n">x_shape</span><span class="p">))</span> <span class="o">/</span> <span class="n">dx_f</span><span class="p">)</span> <span class="o">**</span> <span class="mi">2</span><span class="p">)</span>
</span><span id="total_least_squares-675"><a href="#total_least_squares-675"><span class="linenos">675</span></a> <span class="k">return</span> <span class="n">chisq</span>
@ -1940,7 +1940,7 @@ Parameters and information on the fitted result.</li>
</span><span id="total_least_squares-682"><a href="#total_least_squares-682"><span class="linenos">682</span></a> <span class="k">except</span> <span class="n">np</span><span class="o">.</span><span class="n">linalg</span><span class="o">.</span><span class="n">LinAlgError</span><span class="p">:</span>
</span><span id="total_least_squares-683"><a href="#total_least_squares-683"><span class="linenos">683</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">&quot;Cannot invert hessian matrix.&quot;</span><span class="p">)</span>
</span><span id="total_least_squares-684"><a href="#total_least_squares-684"><span class="linenos">684</span></a>
</span><span id="total_least_squares-685"><a href="#total_least_squares-685"><span class="linenos">685</span></a> <span class="k">def</span> <span class="nf">odr_chisquare_compact_y</span><span class="p">(</span><span class="n">d</span><span class="p">):</span>
</span><span id="total_least_squares-685"><a href="#total_least_squares-685"><span class="linenos">685</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">odr_chisquare_compact_y</span><span class="p">(</span><span class="n">d</span><span class="p">):</span>
</span><span id="total_least_squares-686"><a href="#total_least_squares-686"><span class="linenos">686</span></a> <span class="n">model</span> <span class="o">=</span> <span class="n">func</span><span class="p">(</span><span class="n">d</span><span class="p">[:</span><span class="n">n_parms</span><span class="p">],</span> <span class="n">d</span><span class="p">[</span><span class="n">n_parms</span><span class="p">:</span><span class="n">n_parms</span> <span class="o">+</span> <span class="n">m</span><span class="p">]</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="n">x_shape</span><span class="p">))</span>
</span><span id="total_least_squares-687"><a href="#total_least_squares-687"><span class="linenos">687</span></a> <span class="n">chisq</span> <span class="o">=</span> <span class="n">anp</span><span class="o">.</span><span class="n">sum</span><span class="p">(((</span><span class="n">d</span><span class="p">[</span><span class="n">n_parms</span> <span class="o">+</span> <span class="n">m</span><span class="p">:]</span> <span class="o">-</span> <span class="n">model</span><span class="p">)</span> <span class="o">/</span> <span class="n">dy_f</span><span class="p">)</span> <span class="o">**</span> <span class="mi">2</span><span class="p">)</span> <span class="o">+</span> <span class="n">anp</span><span class="o">.</span><span class="n">sum</span><span class="p">(((</span><span class="n">x_f</span> <span class="o">-</span> <span class="n">d</span><span class="p">[</span><span class="n">n_parms</span><span class="p">:</span><span class="n">n_parms</span> <span class="o">+</span> <span class="n">m</span><span class="p">]</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="n">x_shape</span><span class="p">))</span> <span class="o">/</span> <span class="n">dx_f</span><span class="p">)</span> <span class="o">**</span> <span class="mi">2</span><span class="p">)</span>
</span><span id="total_least_squares-688"><a href="#total_least_squares-688"><span class="linenos">688</span></a> <span class="k">return</span> <span class="n">chisq</span>
@ -1980,9 +1980,9 @@ list of Obs. The dvalues of the Obs are used as x- and yerror for the fit.</li>
func has to be of the form</p>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="kn">import</span> <span class="nn">autograd.numpy</span> <span class="k">as</span> <span class="nn">anp</span>
<pre><span></span><code><span class="kn">import</span><span class="w"> </span><span class="nn">autograd.numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">anp</span>
<span class="k">def</span> <span class="nf">func</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">x</span><span class="p">):</span>
<span class="k">def</span><span class="w"> </span><span class="nf">func</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">x</span><span class="p">):</span>
<span class="k">return</span> <span class="n">a</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="n">a</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">*</span> <span class="n">x</span> <span class="o">+</span> <span class="n">a</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">*</span> <span class="n">anp</span><span class="o">.</span><span class="n">sinh</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
</code></pre>
</div>
@ -1990,7 +1990,7 @@ func has to be of the form</p>
<p>For multiple x values func can be of the form</p>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="k">def</span> <span class="nf">func</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">x</span><span class="p">):</span>
<pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">func</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">x</span><span class="p">):</span>
<span class="p">(</span><span class="n">x1</span><span class="p">,</span> <span class="n">x2</span><span class="p">)</span> <span class="o">=</span> <span class="n">x</span>
<span class="k">return</span> <span class="n">a</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">*</span> <span class="n">x1</span> <span class="o">**</span> <span class="mi">2</span> <span class="o">+</span> <span class="n">a</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">*</span> <span class="n">x2</span>
</code></pre>
@ -2037,7 +2037,7 @@ Parameters and information on the fitted result.</li>
</div>
<a class="headerlink" href="#fit_lin"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="fit_lin-711"><a href="#fit_lin-711"><span class="linenos">711</span></a><span class="k">def</span> <span class="nf">fit_lin</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="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="fit_lin-711"><a href="#fit_lin-711"><span class="linenos">711</span></a><span class="k">def</span><span class="w"> </span><span class="nf">fit_lin</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="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="fit_lin-712"><a href="#fit_lin-712"><span class="linenos">712</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Performs a linear fit to y = n + m * x and returns two Obs n, m.</span>
</span><span id="fit_lin-713"><a href="#fit_lin-713"><span class="linenos">713</span></a>
</span><span id="fit_lin-714"><a href="#fit_lin-714"><span class="linenos">714</span></a><span class="sd"> Parameters</span>
@ -2054,7 +2054,7 @@ Parameters and information on the fitted result.</li>
</span><span id="fit_lin-725"><a href="#fit_lin-725"><span class="linenos">725</span></a><span class="sd"> LIist of fitted observables.</span>
</span><span id="fit_lin-726"><a href="#fit_lin-726"><span class="linenos">726</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="fit_lin-727"><a href="#fit_lin-727"><span class="linenos">727</span></a>
</span><span id="fit_lin-728"><a href="#fit_lin-728"><span class="linenos">728</span></a> <span class="k">def</span> <span class="nf">f</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">x</span><span class="p">):</span>
</span><span id="fit_lin-728"><a href="#fit_lin-728"><span class="linenos">728</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">f</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">x</span><span class="p">):</span>
</span><span id="fit_lin-729"><a href="#fit_lin-729"><span class="linenos">729</span></a> <span class="n">y</span> <span class="o">=</span> <span class="n">a</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="n">a</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">*</span> <span class="n">x</span>
</span><span id="fit_lin-730"><a href="#fit_lin-730"><span class="linenos">730</span></a> <span class="k">return</span> <span class="n">y</span>
</span><span id="fit_lin-731"><a href="#fit_lin-731"><span class="linenos">731</span></a>
@ -2102,7 +2102,7 @@ LIist of fitted observables.</li>
</div>
<a class="headerlink" href="#qqplot"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="qqplot-742"><a href="#qqplot-742"><span class="linenos">742</span></a><span class="k">def</span> <span class="nf">qqplot</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">o_y</span><span class="p">,</span> <span class="n">func</span><span class="p">,</span> <span class="n">p</span><span class="p">,</span> <span class="n">title</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">):</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="qqplot-742"><a href="#qqplot-742"><span class="linenos">742</span></a><span class="k">def</span><span class="w"> </span><span class="nf">qqplot</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">o_y</span><span class="p">,</span> <span class="n">func</span><span class="p">,</span> <span class="n">p</span><span class="p">,</span> <span class="n">title</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">):</span>
</span><span id="qqplot-743"><a href="#qqplot-743"><span class="linenos">743</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Generates a quantile-quantile plot of the fit result which can be used to</span>
</span><span id="qqplot-744"><a href="#qqplot-744"><span class="linenos">744</span></a><span class="sd"> check if the residuals of the fit are gaussian distributed.</span>
</span><span id="qqplot-745"><a href="#qqplot-745"><span class="linenos">745</span></a>
@ -2156,7 +2156,7 @@ LIist of fitted observables.</li>
</div>
<a class="headerlink" href="#residual_plot"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="residual_plot-772"><a href="#residual_plot-772"><span class="linenos">772</span></a><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> <span class="n">title</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">):</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="residual_plot-772"><a href="#residual_plot-772"><span class="linenos">772</span></a><span class="k">def</span><span class="w"> </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> <span class="n">title</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">):</span>
</span><span id="residual_plot-773"><a href="#residual_plot-773"><span class="linenos">773</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Generates a plot which compares the fit to the data and displays the corresponding residuals</span>
</span><span id="residual_plot-774"><a href="#residual_plot-774"><span class="linenos">774</span></a>
</span><span id="residual_plot-775"><a href="#residual_plot-775"><span class="linenos">775</span></a><span class="sd"> For uncorrelated data the residuals are expected to be distributed ~N(0,1).</span>
@ -2218,7 +2218,7 @@ LIist of fitted observables.</li>
</div>
<a class="headerlink" href="#error_band"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="error_band-809"><a href="#error_band-809"><span class="linenos">809</span></a><span class="k">def</span> <span class="nf">error_band</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">func</span><span class="p">,</span> <span class="n">beta</span><span class="p">):</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="error_band-809"><a href="#error_band-809"><span class="linenos">809</span></a><span class="k">def</span><span class="w"> </span><span class="nf">error_band</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">func</span><span class="p">,</span> <span class="n">beta</span><span class="p">):</span>
</span><span id="error_band-810"><a href="#error_band-810"><span class="linenos">810</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Calculate the error band for an array of sample values x, for given fit function func with optimized parameters beta.</span>
</span><span id="error_band-811"><a href="#error_band-811"><span class="linenos">811</span></a>
</span><span id="error_band-812"><a href="#error_band-812"><span class="linenos">812</span></a><span class="sd"> Returns</span>
@ -2266,7 +2266,7 @@ Error band for an array of sample values x</li>
</div>
<a class="headerlink" href="#ks_test"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="ks_test-833"><a href="#ks_test-833"><span class="linenos">833</span></a><span class="k">def</span> <span class="nf">ks_test</span><span class="p">(</span><span class="n">objects</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="ks_test-833"><a href="#ks_test-833"><span class="linenos">833</span></a><span class="k">def</span><span class="w"> </span><span class="nf">ks_test</span><span class="p">(</span><span class="n">objects</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
</span><span id="ks_test-834"><a href="#ks_test-834"><span class="linenos">834</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Performs a KolmogorovSmirnov test for the p-values of all fit object.</span>
</span><span id="ks_test-835"><a href="#ks_test-835"><span class="linenos">835</span></a>
</span><span id="ks_test-836"><a href="#ks_test-836"><span class="linenos">836</span></a><span class="sd"> Parameters</span>

View file

@ -100,14 +100,14 @@ See <code><a href="obs.html#Obs.export_jackknife">pyerrors.obs.Obs.export_jackkn
</span><span id="L-5"><a href="#L-5"><span class="linenos"> 5</span></a><span class="sd">For comparison with other analysis workflows `pyerrors` can also generate jackknife samples from an `Obs` object or import jackknife samples into an `Obs` object.</span>
</span><span id="L-6"><a href="#L-6"><span class="linenos"> 6</span></a><span class="sd">See `pyerrors.obs.Obs.export_jackknife` and `pyerrors.obs.import_jackknife` for details.</span>
</span><span id="L-7"><a href="#L-7"><span class="linenos"> 7</span></a><span class="sd">&#39;&#39;&#39;</span>
</span><span id="L-8"><a href="#L-8"><span class="linenos"> 8</span></a><span class="kn">from</span> <span class="nn">.</span> <span class="kn">import</span> <span class="n">bdio</span> <span class="k">as</span> <span class="n">bdio</span>
</span><span id="L-9"><a href="#L-9"><span class="linenos"> 9</span></a><span class="kn">from</span> <span class="nn">.</span> <span class="kn">import</span> <span class="n">dobs</span> <span class="k">as</span> <span class="n">dobs</span>
</span><span id="L-10"><a href="#L-10"><span class="linenos">10</span></a><span class="kn">from</span> <span class="nn">.</span> <span class="kn">import</span> <span class="n">hadrons</span> <span class="k">as</span> <span class="n">hadrons</span>
</span><span id="L-11"><a href="#L-11"><span class="linenos">11</span></a><span class="kn">from</span> <span class="nn">.</span> <span class="kn">import</span> <span class="n">json</span> <span class="k">as</span> <span class="n">json</span>
</span><span id="L-12"><a href="#L-12"><span class="linenos">12</span></a><span class="kn">from</span> <span class="nn">.</span> <span class="kn">import</span> <span class="n">misc</span> <span class="k">as</span> <span class="n">misc</span>
</span><span id="L-13"><a href="#L-13"><span class="linenos">13</span></a><span class="kn">from</span> <span class="nn">.</span> <span class="kn">import</span> <span class="n">openQCD</span> <span class="k">as</span> <span class="n">openQCD</span>
</span><span id="L-14"><a href="#L-14"><span class="linenos">14</span></a><span class="kn">from</span> <span class="nn">.</span> <span class="kn">import</span> <span class="n">pandas</span> <span class="k">as</span> <span class="n">pandas</span>
</span><span id="L-15"><a href="#L-15"><span class="linenos">15</span></a><span class="kn">from</span> <span class="nn">.</span> <span class="kn">import</span> <span class="n">sfcf</span> <span class="k">as</span> <span class="n">sfcf</span>
</span><span id="L-8"><a href="#L-8"><span class="linenos"> 8</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">.</span><span class="w"> </span><span class="kn">import</span> <span class="n">bdio</span> <span class="k">as</span> <span class="n">bdio</span>
</span><span id="L-9"><a href="#L-9"><span class="linenos"> 9</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">.</span><span class="w"> </span><span class="kn">import</span> <span class="n">dobs</span> <span class="k">as</span> <span class="n">dobs</span>
</span><span id="L-10"><a href="#L-10"><span class="linenos">10</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">.</span><span class="w"> </span><span class="kn">import</span> <span class="n">hadrons</span> <span class="k">as</span> <span class="n">hadrons</span>
</span><span id="L-11"><a href="#L-11"><span class="linenos">11</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">.</span><span class="w"> </span><span class="kn">import</span> <span class="n">json</span> <span class="k">as</span> <span class="n">json</span>
</span><span id="L-12"><a href="#L-12"><span class="linenos">12</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">.</span><span class="w"> </span><span class="kn">import</span> <span class="n">misc</span> <span class="k">as</span> <span class="n">misc</span>
</span><span id="L-13"><a href="#L-13"><span class="linenos">13</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">.</span><span class="w"> </span><span class="kn">import</span> <span class="n">openQCD</span> <span class="k">as</span> <span class="n">openQCD</span>
</span><span id="L-14"><a href="#L-14"><span class="linenos">14</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">.</span><span class="w"> </span><span class="kn">import</span> <span class="n">pandas</span> <span class="k">as</span> <span class="n">pandas</span>
</span><span id="L-15"><a href="#L-15"><span class="linenos">15</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">.</span><span class="w"> </span><span class="kn">import</span> <span class="n">sfcf</span> <span class="k">as</span> <span class="n">sfcf</span>
</span></pre></div>

View file

@ -85,13 +85,13 @@
<label class="view-source-button" for="mod-bdio-view-source"><span>View Source</span></label>
<div class="pdoc-code codehilite"><pre><span></span><span id="L-1"><a href="#L-1"><span class="linenos"> 1</span></a><span class="kn">import</span> <span class="nn">ctypes</span>
</span><span id="L-2"><a href="#L-2"><span class="linenos"> 2</span></a><span class="kn">import</span> <span class="nn">hashlib</span>
</span><span id="L-3"><a href="#L-3"><span class="linenos"> 3</span></a><span class="kn">import</span> <span class="nn">autograd.numpy</span> <span class="k">as</span> <span class="nn">np</span> <span class="c1"># Thinly-wrapped numpy</span>
</span><span id="L-4"><a href="#L-4"><span class="linenos"> 4</span></a><span class="kn">from</span> <span class="nn">..obs</span> <span class="kn">import</span> <span class="n">Obs</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="L-1"><a href="#L-1"><span class="linenos"> 1</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">ctypes</span>
</span><span id="L-2"><a href="#L-2"><span class="linenos"> 2</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">hashlib</span>
</span><span id="L-3"><a href="#L-3"><span class="linenos"> 3</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">autograd.numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">np</span> <span class="c1"># Thinly-wrapped numpy</span>
</span><span id="L-4"><a href="#L-4"><span class="linenos"> 4</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">..obs</span><span class="w"> </span><span class="kn">import</span> <span class="n">Obs</span>
</span><span id="L-5"><a href="#L-5"><span class="linenos"> 5</span></a>
</span><span id="L-6"><a href="#L-6"><span class="linenos"> 6</span></a>
</span><span id="L-7"><a href="#L-7"><span class="linenos"> 7</span></a><span class="k">def</span> <span class="nf">read_ADerrors</span><span class="p">(</span><span class="n">file_path</span><span class="p">,</span> <span class="n">bdio_path</span><span class="o">=</span><span class="s1">&#39;./libbdio.so&#39;</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="L-7"><a href="#L-7"><span class="linenos"> 7</span></a><span class="k">def</span><span class="w"> </span><span class="nf">read_ADerrors</span><span class="p">(</span><span class="n">file_path</span><span class="p">,</span> <span class="n">bdio_path</span><span class="o">=</span><span class="s1">&#39;./libbdio.so&#39;</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="L-8"><a href="#L-8"><span class="linenos"> 8</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot; Extract generic MCMC data from a bdio file</span>
</span><span id="L-9"><a href="#L-9"><span class="linenos"> 9</span></a>
</span><span id="L-10"><a href="#L-10"><span class="linenos"> 10</span></a><span class="sd"> read_ADerrors requires bdio to be compiled into a shared library. This can be achieved by</span>
@ -166,7 +166,7 @@
</span><span id="L-79"><a href="#L-79"><span class="linenos"> 79</span></a> <span class="k">break</span>
</span><span id="L-80"><a href="#L-80"><span class="linenos"> 80</span></a> <span class="n">bdio_get_rlen</span><span class="p">(</span><span class="n">fbdio</span><span class="p">)</span>
</span><span id="L-81"><a href="#L-81"><span class="linenos"> 81</span></a>
</span><span id="L-82"><a href="#L-82"><span class="linenos"> 82</span></a> <span class="k">def</span> <span class="nf">read_c_double</span><span class="p">():</span>
</span><span id="L-82"><a href="#L-82"><span class="linenos"> 82</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">read_c_double</span><span class="p">():</span>
</span><span id="L-83"><a href="#L-83"><span class="linenos"> 83</span></a> <span class="n">d_buf</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">c_double</span>
</span><span id="L-84"><a href="#L-84"><span class="linenos"> 84</span></a> <span class="n">pd_buf</span> <span class="o">=</span> <span class="n">d_buf</span><span class="p">()</span>
</span><span id="L-85"><a href="#L-85"><span class="linenos"> 85</span></a> <span class="n">ppd_buf</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">c_void_p</span><span class="p">(</span><span class="n">ctypes</span><span class="o">.</span><span class="n">addressof</span><span class="p">(</span><span class="n">pd_buf</span><span class="p">))</span>
@ -176,7 +176,7 @@
</span><span id="L-89"><a href="#L-89"><span class="linenos"> 89</span></a> <span class="n">mean</span> <span class="o">=</span> <span class="n">read_c_double</span><span class="p">()</span>
</span><span id="L-90"><a href="#L-90"><span class="linenos"> 90</span></a> <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;mean&#39;</span><span class="p">,</span> <span class="n">mean</span><span class="p">)</span>
</span><span id="L-91"><a href="#L-91"><span class="linenos"> 91</span></a>
</span><span id="L-92"><a href="#L-92"><span class="linenos"> 92</span></a> <span class="k">def</span> <span class="nf">read_c_size_t</span><span class="p">():</span>
</span><span id="L-92"><a href="#L-92"><span class="linenos"> 92</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">read_c_size_t</span><span class="p">():</span>
</span><span id="L-93"><a href="#L-93"><span class="linenos"> 93</span></a> <span class="n">d_buf</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">c_size_t</span>
</span><span id="L-94"><a href="#L-94"><span class="linenos"> 94</span></a> <span class="n">pd_buf</span> <span class="o">=</span> <span class="n">d_buf</span><span class="p">()</span>
</span><span id="L-95"><a href="#L-95"><span class="linenos"> 95</span></a> <span class="n">ppd_buf</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">c_void_p</span><span class="p">(</span><span class="n">ctypes</span><span class="o">.</span><span class="n">addressof</span><span class="p">(</span><span class="n">pd_buf</span><span class="p">))</span>
@ -247,7 +247,7 @@
</span><span id="L-160"><a href="#L-160"><span class="linenos">160</span></a> <span class="k">return</span> <span class="n">return_list</span>
</span><span id="L-161"><a href="#L-161"><span class="linenos">161</span></a>
</span><span id="L-162"><a href="#L-162"><span class="linenos">162</span></a>
</span><span id="L-163"><a href="#L-163"><span class="linenos">163</span></a><span class="k">def</span> <span class="nf">write_ADerrors</span><span class="p">(</span><span class="n">obs_list</span><span class="p">,</span> <span class="n">file_path</span><span class="p">,</span> <span class="n">bdio_path</span><span class="o">=</span><span class="s1">&#39;./libbdio.so&#39;</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="L-163"><a href="#L-163"><span class="linenos">163</span></a><span class="k">def</span><span class="w"> </span><span class="nf">write_ADerrors</span><span class="p">(</span><span class="n">obs_list</span><span class="p">,</span> <span class="n">file_path</span><span class="p">,</span> <span class="n">bdio_path</span><span class="o">=</span><span class="s1">&#39;./libbdio.so&#39;</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="L-164"><a href="#L-164"><span class="linenos">164</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot; Write Obs to a bdio file according to ADerrors conventions</span>
</span><span id="L-165"><a href="#L-165"><span class="linenos">165</span></a>
</span><span id="L-166"><a href="#L-166"><span class="linenos">166</span></a><span class="sd"> read_mesons requires bdio to be compiled into a shared library. This can be achieved by</span>
@ -341,12 +341,12 @@
</span><span id="L-254"><a href="#L-254"><span class="linenos">254</span></a>
</span><span id="L-255"><a href="#L-255"><span class="linenos">255</span></a> <span class="n">bdio_start_record</span><span class="p">(</span><span class="mh">0x00</span><span class="p">,</span> <span class="mi">8</span><span class="p">,</span> <span class="n">fbdio</span><span class="p">)</span>
</span><span id="L-256"><a href="#L-256"><span class="linenos">256</span></a>
</span><span id="L-257"><a href="#L-257"><span class="linenos">257</span></a> <span class="k">def</span> <span class="nf">write_c_double</span><span class="p">(</span><span class="n">double</span><span class="p">):</span>
</span><span id="L-257"><a href="#L-257"><span class="linenos">257</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">write_c_double</span><span class="p">(</span><span class="n">double</span><span class="p">):</span>
</span><span id="L-258"><a href="#L-258"><span class="linenos">258</span></a> <span class="n">pd_buf</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">c_double</span><span class="p">(</span><span class="n">double</span><span class="p">)</span>
</span><span id="L-259"><a href="#L-259"><span class="linenos">259</span></a> <span class="n">ppd_buf</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">c_void_p</span><span class="p">(</span><span class="n">ctypes</span><span class="o">.</span><span class="n">addressof</span><span class="p">(</span><span class="n">pd_buf</span><span class="p">))</span>
</span><span id="L-260"><a href="#L-260"><span class="linenos">260</span></a> <span class="n">bdio_write_f64</span><span class="p">(</span><span class="n">ppd_buf</span><span class="p">,</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">c_size_t</span><span class="p">(</span><span class="mi">8</span><span class="p">),</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">c_void_p</span><span class="p">(</span><span class="n">fbdio</span><span class="p">))</span>
</span><span id="L-261"><a href="#L-261"><span class="linenos">261</span></a>
</span><span id="L-262"><a href="#L-262"><span class="linenos">262</span></a> <span class="k">def</span> <span class="nf">write_c_size_t</span><span class="p">(</span><span class="n">int32</span><span class="p">):</span>
</span><span id="L-262"><a href="#L-262"><span class="linenos">262</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">write_c_size_t</span><span class="p">(</span><span class="n">int32</span><span class="p">):</span>
</span><span id="L-263"><a href="#L-263"><span class="linenos">263</span></a> <span class="n">pd_buf</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">c_size_t</span><span class="p">(</span><span class="n">int32</span><span class="p">)</span>
</span><span id="L-264"><a href="#L-264"><span class="linenos">264</span></a> <span class="n">ppd_buf</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">c_void_p</span><span class="p">(</span><span class="n">ctypes</span><span class="o">.</span><span class="n">addressof</span><span class="p">(</span><span class="n">pd_buf</span><span class="p">))</span>
</span><span id="L-265"><a href="#L-265"><span class="linenos">265</span></a> <span class="n">bdio_write_int32</span><span class="p">(</span><span class="n">ppd_buf</span><span class="p">,</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">c_size_t</span><span class="p">(</span><span class="mi">4</span><span class="p">),</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">c_void_p</span><span class="p">(</span><span class="n">fbdio</span><span class="p">))</span>
@ -377,15 +377,15 @@
</span><span id="L-290"><a href="#L-290"><span class="linenos">290</span></a> <span class="k">return</span> <span class="mi">0</span>
</span><span id="L-291"><a href="#L-291"><span class="linenos">291</span></a>
</span><span id="L-292"><a href="#L-292"><span class="linenos">292</span></a>
</span><span id="L-293"><a href="#L-293"><span class="linenos">293</span></a><span class="k">def</span> <span class="nf">_get_kwd</span><span class="p">(</span><span class="n">string</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
</span><span id="L-293"><a href="#L-293"><span class="linenos">293</span></a><span class="k">def</span><span class="w"> </span><span class="nf">_get_kwd</span><span class="p">(</span><span class="n">string</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
</span><span id="L-294"><a href="#L-294"><span class="linenos">294</span></a> <span class="k">return</span> <span class="p">(</span><span class="n">string</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="mi">1</span><span class="p">)[</span><span class="mi">1</span><span class="p">])</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">&quot; &quot;</span><span class="p">,</span> <span class="mi">1</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
</span><span id="L-295"><a href="#L-295"><span class="linenos">295</span></a>
</span><span id="L-296"><a href="#L-296"><span class="linenos">296</span></a>
</span><span id="L-297"><a href="#L-297"><span class="linenos">297</span></a><span class="k">def</span> <span class="nf">_get_corr_name</span><span class="p">(</span><span class="n">string</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
</span><span id="L-297"><a href="#L-297"><span class="linenos">297</span></a><span class="k">def</span><span class="w"> </span><span class="nf">_get_corr_name</span><span class="p">(</span><span class="n">string</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
</span><span id="L-298"><a href="#L-298"><span class="linenos">298</span></a> <span class="k">return</span> <span class="p">(</span><span class="n">string</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="mi">1</span><span class="p">)[</span><span class="mi">1</span><span class="p">])</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39; NDIM=&#39;</span><span class="p">,</span> <span class="mi">1</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
</span><span id="L-299"><a href="#L-299"><span class="linenos">299</span></a>
</span><span id="L-300"><a href="#L-300"><span class="linenos">300</span></a>
</span><span id="L-301"><a href="#L-301"><span class="linenos">301</span></a><span class="k">def</span> <span class="nf">read_mesons</span><span class="p">(</span><span class="n">file_path</span><span class="p">,</span> <span class="n">bdio_path</span><span class="o">=</span><span class="s1">&#39;./libbdio.so&#39;</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="L-301"><a href="#L-301"><span class="linenos">301</span></a><span class="k">def</span><span class="w"> </span><span class="nf">read_mesons</span><span class="p">(</span><span class="n">file_path</span><span class="p">,</span> <span class="n">bdio_path</span><span class="o">=</span><span class="s1">&#39;./libbdio.so&#39;</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="L-302"><a href="#L-302"><span class="linenos">302</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot; Extract mesons data from a bdio file and return it as a dictionary</span>
</span><span id="L-303"><a href="#L-303"><span class="linenos">303</span></a>
</span><span id="L-304"><a href="#L-304"><span class="linenos">304</span></a><span class="sd"> The dictionary can be accessed with a tuple consisting of (type, source_position, kappa1, kappa2)</span>
@ -600,7 +600,7 @@
</span><span id="L-513"><a href="#L-513"><span class="linenos">513</span></a> <span class="k">return</span> <span class="n">result</span>
</span><span id="L-514"><a href="#L-514"><span class="linenos">514</span></a>
</span><span id="L-515"><a href="#L-515"><span class="linenos">515</span></a>
</span><span id="L-516"><a href="#L-516"><span class="linenos">516</span></a><span class="k">def</span> <span class="nf">read_dSdm</span><span class="p">(</span><span class="n">file_path</span><span class="p">,</span> <span class="n">bdio_path</span><span class="o">=</span><span class="s1">&#39;./libbdio.so&#39;</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="L-516"><a href="#L-516"><span class="linenos">516</span></a><span class="k">def</span><span class="w"> </span><span class="nf">read_dSdm</span><span class="p">(</span><span class="n">file_path</span><span class="p">,</span> <span class="n">bdio_path</span><span class="o">=</span><span class="s1">&#39;./libbdio.so&#39;</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="L-517"><a href="#L-517"><span class="linenos">517</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot; Extract dSdm data from a bdio file and return it as a dictionary</span>
</span><span id="L-518"><a href="#L-518"><span class="linenos">518</span></a>
</span><span id="L-519"><a href="#L-519"><span class="linenos">519</span></a><span class="sd"> The dictionary can be accessed with a tuple consisting of (type, kappa)</span>
@ -794,7 +794,7 @@
</div>
<a class="headerlink" href="#read_ADerrors"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="read_ADerrors-8"><a href="#read_ADerrors-8"><span class="linenos"> 8</span></a><span class="k">def</span> <span class="nf">read_ADerrors</span><span class="p">(</span><span class="n">file_path</span><span class="p">,</span> <span class="n">bdio_path</span><span class="o">=</span><span class="s1">&#39;./libbdio.so&#39;</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="read_ADerrors-8"><a href="#read_ADerrors-8"><span class="linenos"> 8</span></a><span class="k">def</span><span class="w"> </span><span class="nf">read_ADerrors</span><span class="p">(</span><span class="n">file_path</span><span class="p">,</span> <span class="n">bdio_path</span><span class="o">=</span><span class="s1">&#39;./libbdio.so&#39;</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="read_ADerrors-9"><a href="#read_ADerrors-9"><span class="linenos"> 9</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot; Extract generic MCMC data from a bdio file</span>
</span><span id="read_ADerrors-10"><a href="#read_ADerrors-10"><span class="linenos"> 10</span></a>
</span><span id="read_ADerrors-11"><a href="#read_ADerrors-11"><span class="linenos"> 11</span></a><span class="sd"> read_ADerrors requires bdio to be compiled into a shared library. This can be achieved by</span>
@ -869,7 +869,7 @@
</span><span id="read_ADerrors-80"><a href="#read_ADerrors-80"><span class="linenos"> 80</span></a> <span class="k">break</span>
</span><span id="read_ADerrors-81"><a href="#read_ADerrors-81"><span class="linenos"> 81</span></a> <span class="n">bdio_get_rlen</span><span class="p">(</span><span class="n">fbdio</span><span class="p">)</span>
</span><span id="read_ADerrors-82"><a href="#read_ADerrors-82"><span class="linenos"> 82</span></a>
</span><span id="read_ADerrors-83"><a href="#read_ADerrors-83"><span class="linenos"> 83</span></a> <span class="k">def</span> <span class="nf">read_c_double</span><span class="p">():</span>
</span><span id="read_ADerrors-83"><a href="#read_ADerrors-83"><span class="linenos"> 83</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">read_c_double</span><span class="p">():</span>
</span><span id="read_ADerrors-84"><a href="#read_ADerrors-84"><span class="linenos"> 84</span></a> <span class="n">d_buf</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">c_double</span>
</span><span id="read_ADerrors-85"><a href="#read_ADerrors-85"><span class="linenos"> 85</span></a> <span class="n">pd_buf</span> <span class="o">=</span> <span class="n">d_buf</span><span class="p">()</span>
</span><span id="read_ADerrors-86"><a href="#read_ADerrors-86"><span class="linenos"> 86</span></a> <span class="n">ppd_buf</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">c_void_p</span><span class="p">(</span><span class="n">ctypes</span><span class="o">.</span><span class="n">addressof</span><span class="p">(</span><span class="n">pd_buf</span><span class="p">))</span>
@ -879,7 +879,7 @@
</span><span id="read_ADerrors-90"><a href="#read_ADerrors-90"><span class="linenos"> 90</span></a> <span class="n">mean</span> <span class="o">=</span> <span class="n">read_c_double</span><span class="p">()</span>
</span><span id="read_ADerrors-91"><a href="#read_ADerrors-91"><span class="linenos"> 91</span></a> <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;mean&#39;</span><span class="p">,</span> <span class="n">mean</span><span class="p">)</span>
</span><span id="read_ADerrors-92"><a href="#read_ADerrors-92"><span class="linenos"> 92</span></a>
</span><span id="read_ADerrors-93"><a href="#read_ADerrors-93"><span class="linenos"> 93</span></a> <span class="k">def</span> <span class="nf">read_c_size_t</span><span class="p">():</span>
</span><span id="read_ADerrors-93"><a href="#read_ADerrors-93"><span class="linenos"> 93</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">read_c_size_t</span><span class="p">():</span>
</span><span id="read_ADerrors-94"><a href="#read_ADerrors-94"><span class="linenos"> 94</span></a> <span class="n">d_buf</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">c_size_t</span>
</span><span id="read_ADerrors-95"><a href="#read_ADerrors-95"><span class="linenos"> 95</span></a> <span class="n">pd_buf</span> <span class="o">=</span> <span class="n">d_buf</span><span class="p">()</span>
</span><span id="read_ADerrors-96"><a href="#read_ADerrors-96"><span class="linenos"> 96</span></a> <span class="n">ppd_buf</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">c_void_p</span><span class="p">(</span><span class="n">ctypes</span><span class="o">.</span><span class="n">addressof</span><span class="p">(</span><span class="n">pd_buf</span><span class="p">))</span>
@ -988,7 +988,7 @@ Extracted data</li>
</div>
<a class="headerlink" href="#write_ADerrors"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="write_ADerrors-164"><a href="#write_ADerrors-164"><span class="linenos">164</span></a><span class="k">def</span> <span class="nf">write_ADerrors</span><span class="p">(</span><span class="n">obs_list</span><span class="p">,</span> <span class="n">file_path</span><span class="p">,</span> <span class="n">bdio_path</span><span class="o">=</span><span class="s1">&#39;./libbdio.so&#39;</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="write_ADerrors-164"><a href="#write_ADerrors-164"><span class="linenos">164</span></a><span class="k">def</span><span class="w"> </span><span class="nf">write_ADerrors</span><span class="p">(</span><span class="n">obs_list</span><span class="p">,</span> <span class="n">file_path</span><span class="p">,</span> <span class="n">bdio_path</span><span class="o">=</span><span class="s1">&#39;./libbdio.so&#39;</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="write_ADerrors-165"><a href="#write_ADerrors-165"><span class="linenos">165</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot; Write Obs to a bdio file according to ADerrors conventions</span>
</span><span id="write_ADerrors-166"><a href="#write_ADerrors-166"><span class="linenos">166</span></a>
</span><span id="write_ADerrors-167"><a href="#write_ADerrors-167"><span class="linenos">167</span></a><span class="sd"> read_mesons requires bdio to be compiled into a shared library. This can be achieved by</span>
@ -1082,12 +1082,12 @@ Extracted data</li>
</span><span id="write_ADerrors-255"><a href="#write_ADerrors-255"><span class="linenos">255</span></a>
</span><span id="write_ADerrors-256"><a href="#write_ADerrors-256"><span class="linenos">256</span></a> <span class="n">bdio_start_record</span><span class="p">(</span><span class="mh">0x00</span><span class="p">,</span> <span class="mi">8</span><span class="p">,</span> <span class="n">fbdio</span><span class="p">)</span>
</span><span id="write_ADerrors-257"><a href="#write_ADerrors-257"><span class="linenos">257</span></a>
</span><span id="write_ADerrors-258"><a href="#write_ADerrors-258"><span class="linenos">258</span></a> <span class="k">def</span> <span class="nf">write_c_double</span><span class="p">(</span><span class="n">double</span><span class="p">):</span>
</span><span id="write_ADerrors-258"><a href="#write_ADerrors-258"><span class="linenos">258</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">write_c_double</span><span class="p">(</span><span class="n">double</span><span class="p">):</span>
</span><span id="write_ADerrors-259"><a href="#write_ADerrors-259"><span class="linenos">259</span></a> <span class="n">pd_buf</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">c_double</span><span class="p">(</span><span class="n">double</span><span class="p">)</span>
</span><span id="write_ADerrors-260"><a href="#write_ADerrors-260"><span class="linenos">260</span></a> <span class="n">ppd_buf</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">c_void_p</span><span class="p">(</span><span class="n">ctypes</span><span class="o">.</span><span class="n">addressof</span><span class="p">(</span><span class="n">pd_buf</span><span class="p">))</span>
</span><span id="write_ADerrors-261"><a href="#write_ADerrors-261"><span class="linenos">261</span></a> <span class="n">bdio_write_f64</span><span class="p">(</span><span class="n">ppd_buf</span><span class="p">,</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">c_size_t</span><span class="p">(</span><span class="mi">8</span><span class="p">),</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">c_void_p</span><span class="p">(</span><span class="n">fbdio</span><span class="p">))</span>
</span><span id="write_ADerrors-262"><a href="#write_ADerrors-262"><span class="linenos">262</span></a>
</span><span id="write_ADerrors-263"><a href="#write_ADerrors-263"><span class="linenos">263</span></a> <span class="k">def</span> <span class="nf">write_c_size_t</span><span class="p">(</span><span class="n">int32</span><span class="p">):</span>
</span><span id="write_ADerrors-263"><a href="#write_ADerrors-263"><span class="linenos">263</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">write_c_size_t</span><span class="p">(</span><span class="n">int32</span><span class="p">):</span>
</span><span id="write_ADerrors-264"><a href="#write_ADerrors-264"><span class="linenos">264</span></a> <span class="n">pd_buf</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">c_size_t</span><span class="p">(</span><span class="n">int32</span><span class="p">)</span>
</span><span id="write_ADerrors-265"><a href="#write_ADerrors-265"><span class="linenos">265</span></a> <span class="n">ppd_buf</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">c_void_p</span><span class="p">(</span><span class="n">ctypes</span><span class="o">.</span><span class="n">addressof</span><span class="p">(</span><span class="n">pd_buf</span><span class="p">))</span>
</span><span id="write_ADerrors-266"><a href="#write_ADerrors-266"><span class="linenos">266</span></a> <span class="n">bdio_write_int32</span><span class="p">(</span><span class="n">ppd_buf</span><span class="p">,</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">c_size_t</span><span class="p">(</span><span class="mi">4</span><span class="p">),</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">c_void_p</span><span class="p">(</span><span class="n">fbdio</span><span class="p">))</span>
@ -1156,7 +1156,7 @@ returns 0 is successful</li>
</div>
<a class="headerlink" href="#read_mesons"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="read_mesons-302"><a href="#read_mesons-302"><span class="linenos">302</span></a><span class="k">def</span> <span class="nf">read_mesons</span><span class="p">(</span><span class="n">file_path</span><span class="p">,</span> <span class="n">bdio_path</span><span class="o">=</span><span class="s1">&#39;./libbdio.so&#39;</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="read_mesons-302"><a href="#read_mesons-302"><span class="linenos">302</span></a><span class="k">def</span><span class="w"> </span><span class="nf">read_mesons</span><span class="p">(</span><span class="n">file_path</span><span class="p">,</span> <span class="n">bdio_path</span><span class="o">=</span><span class="s1">&#39;./libbdio.so&#39;</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="read_mesons-303"><a href="#read_mesons-303"><span class="linenos">303</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot; Extract mesons data from a bdio file and return it as a dictionary</span>
</span><span id="read_mesons-304"><a href="#read_mesons-304"><span class="linenos">304</span></a>
</span><span id="read_mesons-305"><a href="#read_mesons-305"><span class="linenos">305</span></a><span class="sd"> The dictionary can be accessed with a tuple consisting of (type, source_position, kappa1, kappa2)</span>
@ -1421,7 +1421,7 @@ Extracted meson data</li>
</div>
<a class="headerlink" href="#read_dSdm"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="read_dSdm-517"><a href="#read_dSdm-517"><span class="linenos">517</span></a><span class="k">def</span> <span class="nf">read_dSdm</span><span class="p">(</span><span class="n">file_path</span><span class="p">,</span> <span class="n">bdio_path</span><span class="o">=</span><span class="s1">&#39;./libbdio.so&#39;</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="read_dSdm-517"><a href="#read_dSdm-517"><span class="linenos">517</span></a><span class="k">def</span><span class="w"> </span><span class="nf">read_dSdm</span><span class="p">(</span><span class="n">file_path</span><span class="p">,</span> <span class="n">bdio_path</span><span class="o">=</span><span class="s1">&#39;./libbdio.so&#39;</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="read_dSdm-518"><a href="#read_dSdm-518"><span class="linenos">518</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot; Extract dSdm data from a bdio file and return it as a dictionary</span>
</span><span id="read_dSdm-519"><a href="#read_dSdm-519"><span class="linenos">519</span></a>
</span><span id="read_dSdm-520"><a href="#read_dSdm-520"><span class="linenos">520</span></a><span class="sd"> The dictionary can be accessed with a tuple consisting of (type, kappa)</span>

View file

@ -94,23 +94,23 @@
<label class="view-source-button" for="mod-dobs-view-source"><span>View Source</span></label>
<div class="pdoc-code codehilite"><pre><span></span><span id="L-1"><a href="#L-1"><span class="linenos"> 1</span></a><span class="kn">from</span> <span class="nn">collections</span> <span class="kn">import</span> <span class="n">defaultdict</span>
</span><span id="L-2"><a href="#L-2"><span class="linenos"> 2</span></a><span class="kn">import</span> <span class="nn">gzip</span>
</span><span id="L-3"><a href="#L-3"><span class="linenos"> 3</span></a><span class="kn">import</span> <span class="nn">lxml.etree</span> <span class="k">as</span> <span class="nn">et</span>
</span><span id="L-4"><a href="#L-4"><span class="linenos"> 4</span></a><span class="kn">import</span> <span class="nn">getpass</span>
</span><span id="L-5"><a href="#L-5"><span class="linenos"> 5</span></a><span class="kn">import</span> <span class="nn">socket</span>
</span><span id="L-6"><a href="#L-6"><span class="linenos"> 6</span></a><span class="kn">import</span> <span class="nn">datetime</span>
</span><span id="L-7"><a href="#L-7"><span class="linenos"> 7</span></a><span class="kn">import</span> <span class="nn">json</span>
</span><span id="L-8"><a href="#L-8"><span class="linenos"> 8</span></a><span class="kn">import</span> <span class="nn">warnings</span>
</span><span id="L-9"><a href="#L-9"><span class="linenos"> 9</span></a><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
</span><span id="L-10"><a href="#L-10"><span class="linenos"> 10</span></a><span class="kn">from</span> <span class="nn">..obs</span> <span class="kn">import</span> <span class="n">Obs</span>
</span><span id="L-11"><a href="#L-11"><span class="linenos"> 11</span></a><span class="kn">from</span> <span class="nn">..obs</span> <span class="kn">import</span> <span class="n">_merge_idx</span>
</span><span id="L-12"><a href="#L-12"><span class="linenos"> 12</span></a><span class="kn">from</span> <span class="nn">..covobs</span> <span class="kn">import</span> <span class="n">Covobs</span>
</span><span id="L-13"><a href="#L-13"><span class="linenos"> 13</span></a><span class="kn">from</span> <span class="nn">..</span> <span class="kn">import</span> <span class="n">version</span> <span class="k">as</span> <span class="n">pyerrorsversion</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="L-1"><a href="#L-1"><span class="linenos"> 1</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">collections</span><span class="w"> </span><span class="kn">import</span> <span class="n">defaultdict</span>
</span><span id="L-2"><a href="#L-2"><span class="linenos"> 2</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">gzip</span>
</span><span id="L-3"><a href="#L-3"><span class="linenos"> 3</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">lxml.etree</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">et</span>
</span><span id="L-4"><a href="#L-4"><span class="linenos"> 4</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">getpass</span>
</span><span id="L-5"><a href="#L-5"><span class="linenos"> 5</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">socket</span>
</span><span id="L-6"><a href="#L-6"><span class="linenos"> 6</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">datetime</span>
</span><span id="L-7"><a href="#L-7"><span class="linenos"> 7</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">json</span>
</span><span id="L-8"><a href="#L-8"><span class="linenos"> 8</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">warnings</span>
</span><span id="L-9"><a href="#L-9"><span class="linenos"> 9</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">np</span>
</span><span id="L-10"><a href="#L-10"><span class="linenos"> 10</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">..obs</span><span class="w"> </span><span class="kn">import</span> <span class="n">Obs</span>
</span><span id="L-11"><a href="#L-11"><span class="linenos"> 11</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">..obs</span><span class="w"> </span><span class="kn">import</span> <span class="n">_merge_idx</span>
</span><span id="L-12"><a href="#L-12"><span class="linenos"> 12</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">..covobs</span><span class="w"> </span><span class="kn">import</span> <span class="n">Covobs</span>
</span><span id="L-13"><a href="#L-13"><span class="linenos"> 13</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">..</span><span class="w"> </span><span class="kn">import</span> <span class="n">version</span> <span class="k">as</span> <span class="n">pyerrorsversion</span>
</span><span id="L-14"><a href="#L-14"><span class="linenos"> 14</span></a>
</span><span id="L-15"><a href="#L-15"><span class="linenos"> 15</span></a>
</span><span id="L-16"><a href="#L-16"><span class="linenos"> 16</span></a><span class="c1"># Based on https://stackoverflow.com/a/10076823</span>
</span><span id="L-17"><a href="#L-17"><span class="linenos"> 17</span></a><span class="k">def</span> <span class="nf">_etree_to_dict</span><span class="p">(</span><span class="n">t</span><span class="p">):</span>
</span><span id="L-17"><a href="#L-17"><span class="linenos"> 17</span></a><span class="k">def</span><span class="w"> </span><span class="nf">_etree_to_dict</span><span class="p">(</span><span class="n">t</span><span class="p">):</span>
</span><span id="L-18"><a href="#L-18"><span class="linenos"> 18</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot; Convert the content of an XML file to a python dict&quot;&quot;&quot;</span>
</span><span id="L-19"><a href="#L-19"><span class="linenos"> 19</span></a> <span class="n">d</span> <span class="o">=</span> <span class="p">{</span><span class="n">t</span><span class="o">.</span><span class="n">tag</span><span class="p">:</span> <span class="p">{}</span> <span class="k">if</span> <span class="n">t</span><span class="o">.</span><span class="n">attrib</span> <span class="k">else</span> <span class="kc">None</span><span class="p">}</span>
</span><span id="L-20"><a href="#L-20"><span class="linenos"> 20</span></a> <span class="n">children</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">t</span><span class="p">)</span>
@ -134,7 +134,7 @@
</span><span id="L-38"><a href="#L-38"><span class="linenos"> 38</span></a> <span class="k">return</span> <span class="n">d</span>
</span><span id="L-39"><a href="#L-39"><span class="linenos"> 39</span></a>
</span><span id="L-40"><a href="#L-40"><span class="linenos"> 40</span></a>
</span><span id="L-41"><a href="#L-41"><span class="linenos"> 41</span></a><span class="k">def</span> <span class="nf">_dict_to_xmlstring</span><span class="p">(</span><span class="n">d</span><span class="p">):</span>
</span><span id="L-41"><a href="#L-41"><span class="linenos"> 41</span></a><span class="k">def</span><span class="w"> </span><span class="nf">_dict_to_xmlstring</span><span class="p">(</span><span class="n">d</span><span class="p">):</span>
</span><span id="L-42"><a href="#L-42"><span class="linenos"> 42</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">d</span><span class="p">,</span> <span class="nb">dict</span><span class="p">):</span>
</span><span id="L-43"><a href="#L-43"><span class="linenos"> 43</span></a> <span class="n">iters</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
</span><span id="L-44"><a href="#L-44"><span class="linenos"> 44</span></a> <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="n">d</span><span class="p">:</span>
@ -162,7 +162,7 @@
</span><span id="L-66"><a href="#L-66"><span class="linenos"> 66</span></a> <span class="k">return</span> <span class="n">iters</span>
</span><span id="L-67"><a href="#L-67"><span class="linenos"> 67</span></a>
</span><span id="L-68"><a href="#L-68"><span class="linenos"> 68</span></a>
</span><span id="L-69"><a href="#L-69"><span class="linenos"> 69</span></a><span class="k">def</span> <span class="nf">_dict_to_xmlstring_spaces</span><span class="p">(</span><span class="n">d</span><span class="p">,</span> <span class="n">space</span><span class="o">=</span><span class="s1">&#39; &#39;</span><span class="p">):</span>
</span><span id="L-69"><a href="#L-69"><span class="linenos"> 69</span></a><span class="k">def</span><span class="w"> </span><span class="nf">_dict_to_xmlstring_spaces</span><span class="p">(</span><span class="n">d</span><span class="p">,</span> <span class="n">space</span><span class="o">=</span><span class="s1">&#39; &#39;</span><span class="p">):</span>
</span><span id="L-70"><a href="#L-70"><span class="linenos"> 70</span></a> <span class="n">s</span> <span class="o">=</span> <span class="n">_dict_to_xmlstring</span><span class="p">(</span><span class="n">d</span><span class="p">)</span>
</span><span id="L-71"><a href="#L-71"><span class="linenos"> 71</span></a> <span class="n">o</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
</span><span id="L-72"><a href="#L-72"><span class="linenos"> 72</span></a> <span class="n">c</span> <span class="o">=</span> <span class="mi">0</span>
@ -181,7 +181,7 @@
</span><span id="L-85"><a href="#L-85"><span class="linenos"> 85</span></a> <span class="k">return</span> <span class="n">o</span>
</span><span id="L-86"><a href="#L-86"><span class="linenos"> 86</span></a>
</span><span id="L-87"><a href="#L-87"><span class="linenos"> 87</span></a>
</span><span id="L-88"><a href="#L-88"><span class="linenos"> 88</span></a><span class="k">def</span> <span class="nf">create_pobs_string</span><span class="p">(</span><span class="n">obsl</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">spec</span><span class="o">=</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="n">origin</span><span class="o">=</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="n">symbol</span><span class="o">=</span><span class="p">[],</span> <span class="n">enstag</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
</span><span id="L-88"><a href="#L-88"><span class="linenos"> 88</span></a><span class="k">def</span><span class="w"> </span><span class="nf">create_pobs_string</span><span class="p">(</span><span class="n">obsl</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">spec</span><span class="o">=</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="n">origin</span><span class="o">=</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="n">symbol</span><span class="o">=</span><span class="p">[],</span> <span class="n">enstag</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
</span><span id="L-89"><a href="#L-89"><span class="linenos"> 89</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Export a list of Obs or structures containing Obs to an xml string</span>
</span><span id="L-90"><a href="#L-90"><span class="linenos"> 90</span></a><span class="sd"> according to the Zeuthen pobs format.</span>
</span><span id="L-91"><a href="#L-91"><span class="linenos"> 91</span></a>
@ -272,7 +272,7 @@
</span><span id="L-176"><a href="#L-176"><span class="linenos">176</span></a> <span class="k">return</span> <span class="n">rs</span>
</span><span id="L-177"><a href="#L-177"><span class="linenos">177</span></a>
</span><span id="L-178"><a href="#L-178"><span class="linenos">178</span></a>
</span><span id="L-179"><a href="#L-179"><span class="linenos">179</span></a><span class="k">def</span> <span class="nf">write_pobs</span><span class="p">(</span><span class="n">obsl</span><span class="p">,</span> <span class="n">fname</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">spec</span><span class="o">=</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="n">origin</span><span class="o">=</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="n">symbol</span><span class="o">=</span><span class="p">[],</span> <span class="n">enstag</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">gz</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
</span><span id="L-179"><a href="#L-179"><span class="linenos">179</span></a><span class="k">def</span><span class="w"> </span><span class="nf">write_pobs</span><span class="p">(</span><span class="n">obsl</span><span class="p">,</span> <span class="n">fname</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">spec</span><span class="o">=</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="n">origin</span><span class="o">=</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="n">symbol</span><span class="o">=</span><span class="p">[],</span> <span class="n">enstag</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">gz</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
</span><span id="L-180"><a href="#L-180"><span class="linenos">180</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Export a list of Obs or structures containing Obs to a .xml.gz file</span>
</span><span id="L-181"><a href="#L-181"><span class="linenos">181</span></a><span class="sd"> according to the Zeuthen pobs format.</span>
</span><span id="L-182"><a href="#L-182"><span class="linenos">182</span></a>
@ -319,30 +319,30 @@
</span><span id="L-223"><a href="#L-223"><span class="linenos">223</span></a> <span class="n">fp</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
</span><span id="L-224"><a href="#L-224"><span class="linenos">224</span></a>
</span><span id="L-225"><a href="#L-225"><span class="linenos">225</span></a>
</span><span id="L-226"><a href="#L-226"><span class="linenos">226</span></a><span class="k">def</span> <span class="nf">_import_data</span><span class="p">(</span><span class="n">string</span><span class="p">):</span>
</span><span id="L-226"><a href="#L-226"><span class="linenos">226</span></a><span class="k">def</span><span class="w"> </span><span class="nf">_import_data</span><span class="p">(</span><span class="n">string</span><span class="p">):</span>
</span><span id="L-227"><a href="#L-227"><span class="linenos">227</span></a> <span class="k">return</span> <span class="n">json</span><span class="o">.</span><span class="n">loads</span><span class="p">(</span><span class="s2">&quot;[&quot;</span> <span class="o">+</span> <span class="s2">&quot;,&quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">string</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s1">&#39; +&#39;</span><span class="p">,</span> <span class="s1">&#39; &#39;</span><span class="p">)</span><span class="o">.</span><span class="n">split</span><span class="p">())</span> <span class="o">+</span> <span class="s2">&quot;]&quot;</span><span class="p">)</span>
</span><span id="L-228"><a href="#L-228"><span class="linenos">228</span></a>
</span><span id="L-229"><a href="#L-229"><span class="linenos">229</span></a>
</span><span id="L-230"><a href="#L-230"><span class="linenos">230</span></a><span class="k">def</span> <span class="nf">_check</span><span class="p">(</span><span class="n">condition</span><span class="p">):</span>
</span><span id="L-230"><a href="#L-230"><span class="linenos">230</span></a><span class="k">def</span><span class="w"> </span><span class="nf">_check</span><span class="p">(</span><span class="n">condition</span><span class="p">):</span>
</span><span id="L-231"><a href="#L-231"><span class="linenos">231</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">condition</span><span class="p">:</span>
</span><span id="L-232"><a href="#L-232"><span class="linenos">232</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">&quot;XML file format not supported&quot;</span><span class="p">)</span>
</span><span id="L-233"><a href="#L-233"><span class="linenos">233</span></a>
</span><span id="L-234"><a href="#L-234"><span class="linenos">234</span></a>
</span><span id="L-235"><a href="#L-235"><span class="linenos">235</span></a><span class="k">class</span> <span class="nc">_NoTagInDataError</span><span class="p">(</span><span class="ne">Exception</span><span class="p">):</span>
</span><span id="L-235"><a href="#L-235"><span class="linenos">235</span></a><span class="k">class</span><span class="w"> </span><span class="nc">_NoTagInDataError</span><span class="p">(</span><span class="ne">Exception</span><span class="p">):</span>
</span><span id="L-236"><a href="#L-236"><span class="linenos">236</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Raised when tag is not in data&quot;&quot;&quot;</span>
</span><span id="L-237"><a href="#L-237"><span class="linenos">237</span></a> <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">tag</span><span class="p">):</span>
</span><span id="L-237"><a href="#L-237"><span class="linenos">237</span></a> <span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">tag</span><span class="p">):</span>
</span><span id="L-238"><a href="#L-238"><span class="linenos">238</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">tag</span> <span class="o">=</span> <span class="n">tag</span>
</span><span id="L-239"><a href="#L-239"><span class="linenos">239</span></a> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="s1">&#39;Tag </span><span class="si">%s</span><span class="s1"> not in data!&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">tag</span><span class="p">))</span>
</span><span id="L-240"><a href="#L-240"><span class="linenos">240</span></a>
</span><span id="L-241"><a href="#L-241"><span class="linenos">241</span></a>
</span><span id="L-242"><a href="#L-242"><span class="linenos">242</span></a><span class="k">def</span> <span class="nf">_find_tag</span><span class="p">(</span><span class="n">dat</span><span class="p">,</span> <span class="n">tag</span><span class="p">):</span>
</span><span id="L-242"><a href="#L-242"><span class="linenos">242</span></a><span class="k">def</span><span class="w"> </span><span class="nf">_find_tag</span><span class="p">(</span><span class="n">dat</span><span class="p">,</span> <span class="n">tag</span><span class="p">):</span>
</span><span id="L-243"><a href="#L-243"><span class="linenos">243</span></a> <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="nb">len</span><span class="p">(</span><span class="n">dat</span><span class="p">)):</span>
</span><span id="L-244"><a href="#L-244"><span class="linenos">244</span></a> <span class="k">if</span> <span class="n">dat</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span> <span class="o">==</span> <span class="n">tag</span><span class="p">:</span>
</span><span id="L-245"><a href="#L-245"><span class="linenos">245</span></a> <span class="k">return</span> <span class="n">i</span>
</span><span id="L-246"><a href="#L-246"><span class="linenos">246</span></a> <span class="k">raise</span> <span class="n">_NoTagInDataError</span><span class="p">(</span><span class="n">tag</span><span class="p">)</span>
</span><span id="L-247"><a href="#L-247"><span class="linenos">247</span></a>
</span><span id="L-248"><a href="#L-248"><span class="linenos">248</span></a>
</span><span id="L-249"><a href="#L-249"><span class="linenos">249</span></a><span class="k">def</span> <span class="nf">_import_array</span><span class="p">(</span><span class="n">arr</span><span class="p">):</span>
</span><span id="L-249"><a href="#L-249"><span class="linenos">249</span></a><span class="k">def</span><span class="w"> </span><span class="nf">_import_array</span><span class="p">(</span><span class="n">arr</span><span class="p">):</span>
</span><span id="L-250"><a href="#L-250"><span class="linenos">250</span></a> <span class="n">name</span> <span class="o">=</span> <span class="n">arr</span><span class="p">[</span><span class="n">_find_tag</span><span class="p">(</span><span class="n">arr</span><span class="p">,</span> <span class="s1">&#39;id&#39;</span><span class="p">)]</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
</span><span id="L-251"><a href="#L-251"><span class="linenos">251</span></a> <span class="n">index</span> <span class="o">=</span> <span class="n">_find_tag</span><span class="p">(</span><span class="n">arr</span><span class="p">,</span> <span class="s1">&#39;layout&#39;</span><span class="p">)</span>
</span><span id="L-252"><a href="#L-252"><span class="linenos">252</span></a> <span class="k">try</span><span class="p">:</span>
@ -380,12 +380,12 @@
</span><span id="L-284"><a href="#L-284"><span class="linenos">284</span></a> <span class="n">_check</span><span class="p">(</span><span class="kc">False</span><span class="p">)</span>
</span><span id="L-285"><a href="#L-285"><span class="linenos">285</span></a>
</span><span id="L-286"><a href="#L-286"><span class="linenos">286</span></a>
</span><span id="L-287"><a href="#L-287"><span class="linenos">287</span></a><span class="k">def</span> <span class="nf">_import_rdata</span><span class="p">(</span><span class="n">rd</span><span class="p">):</span>
</span><span id="L-287"><a href="#L-287"><span class="linenos">287</span></a><span class="k">def</span><span class="w"> </span><span class="nf">_import_rdata</span><span class="p">(</span><span class="n">rd</span><span class="p">):</span>
</span><span id="L-288"><a href="#L-288"><span class="linenos">288</span></a> <span class="n">name</span><span class="p">,</span> <span class="n">idx</span><span class="p">,</span> <span class="n">mask</span><span class="p">,</span> <span class="n">deltas</span> <span class="o">=</span> <span class="n">_import_array</span><span class="p">(</span><span class="n">rd</span><span class="p">)</span>
</span><span id="L-289"><a href="#L-289"><span class="linenos">289</span></a> <span class="k">return</span> <span class="n">deltas</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">idx</span>
</span><span id="L-290"><a href="#L-290"><span class="linenos">290</span></a>
</span><span id="L-291"><a href="#L-291"><span class="linenos">291</span></a>
</span><span id="L-292"><a href="#L-292"><span class="linenos">292</span></a><span class="k">def</span> <span class="nf">_import_cdata</span><span class="p">(</span><span class="n">cd</span><span class="p">):</span>
</span><span id="L-292"><a href="#L-292"><span class="linenos">292</span></a><span class="k">def</span><span class="w"> </span><span class="nf">_import_cdata</span><span class="p">(</span><span class="n">cd</span><span class="p">):</span>
</span><span id="L-293"><a href="#L-293"><span class="linenos">293</span></a> <span class="n">_check</span><span class="p">(</span><span class="n">cd</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span> <span class="o">==</span> <span class="s2">&quot;id&quot;</span><span class="p">)</span>
</span><span id="L-294"><a href="#L-294"><span class="linenos">294</span></a> <span class="n">_check</span><span class="p">(</span><span class="n">cd</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="o">==</span> <span class="s2">&quot;cov&quot;</span><span class="p">)</span>
</span><span id="L-295"><a href="#L-295"><span class="linenos">295</span></a> <span class="n">cov</span> <span class="o">=</span> <span class="n">_import_array</span><span class="p">(</span><span class="n">cd</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
@ -393,7 +393,7 @@
</span><span id="L-297"><a href="#L-297"><span class="linenos">297</span></a> <span class="k">return</span> <span class="n">cd</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">strip</span><span class="p">(),</span> <span class="n">cov</span><span class="p">,</span> <span class="n">grad</span>
</span><span id="L-298"><a href="#L-298"><span class="linenos">298</span></a>
</span><span id="L-299"><a href="#L-299"><span class="linenos">299</span></a>
</span><span id="L-300"><a href="#L-300"><span class="linenos">300</span></a><span class="k">def</span> <span class="nf">read_pobs</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="n">full_output</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">gz</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">separator_insertion</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
</span><span id="L-300"><a href="#L-300"><span class="linenos">300</span></a><span class="k">def</span><span class="w"> </span><span class="nf">read_pobs</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="n">full_output</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">gz</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">separator_insertion</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
</span><span id="L-301"><a href="#L-301"><span class="linenos">301</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Import a list of Obs from an xml.gz file in the Zeuthen pobs format.</span>
</span><span id="L-302"><a href="#L-302"><span class="linenos">302</span></a>
</span><span id="L-303"><a href="#L-303"><span class="linenos">303</span></a><span class="sd"> Tags are not written or recovered automatically.</span>
@ -493,7 +493,7 @@
</span><span id="L-397"><a href="#L-397"><span class="linenos">397</span></a>
</span><span id="L-398"><a href="#L-398"><span class="linenos">398</span></a>
</span><span id="L-399"><a href="#L-399"><span class="linenos">399</span></a><span class="c1"># this is based on Mattia Bruno&#39;s implementation at https://github.com/mbruno46/pyobs/blob/master/pyobs/IO/xml.py</span>
</span><span id="L-400"><a href="#L-400"><span class="linenos">400</span></a><span class="k">def</span> <span class="nf">import_dobs_string</span><span class="p">(</span><span class="n">content</span><span class="p">,</span> <span class="n">full_output</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">separator_insertion</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
</span><span id="L-400"><a href="#L-400"><span class="linenos">400</span></a><span class="k">def</span><span class="w"> </span><span class="nf">import_dobs_string</span><span class="p">(</span><span class="n">content</span><span class="p">,</span> <span class="n">full_output</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">separator_insertion</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
</span><span id="L-401"><a href="#L-401"><span class="linenos">401</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Import a list of Obs from a string in the Zeuthen dobs format.</span>
</span><span id="L-402"><a href="#L-402"><span class="linenos">402</span></a>
</span><span id="L-403"><a href="#L-403"><span class="linenos">403</span></a><span class="sd"> Tags are not written or recovered automatically.</span>
@ -667,7 +667,7 @@
</span><span id="L-571"><a href="#L-571"><span class="linenos">571</span></a> <span class="k">return</span> <span class="n">res</span>
</span><span id="L-572"><a href="#L-572"><span class="linenos">572</span></a>
</span><span id="L-573"><a href="#L-573"><span class="linenos">573</span></a>
</span><span id="L-574"><a href="#L-574"><span class="linenos">574</span></a><span class="k">def</span> <span class="nf">read_dobs</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="n">full_output</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">gz</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">separator_insertion</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
</span><span id="L-574"><a href="#L-574"><span class="linenos">574</span></a><span class="k">def</span><span class="w"> </span><span class="nf">read_dobs</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="n">full_output</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">gz</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">separator_insertion</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
</span><span id="L-575"><a href="#L-575"><span class="linenos">575</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Import a list of Obs from an xml.gz file in the Zeuthen dobs format.</span>
</span><span id="L-576"><a href="#L-576"><span class="linenos">576</span></a>
</span><span id="L-577"><a href="#L-577"><span class="linenos">577</span></a><span class="sd"> Tags are not written or recovered automatically.</span>
@ -714,7 +714,7 @@
</span><span id="L-618"><a href="#L-618"><span class="linenos">618</span></a> <span class="k">return</span> <span class="n">import_dobs_string</span><span class="p">(</span><span class="n">content</span><span class="p">,</span> <span class="n">full_output</span><span class="p">,</span> <span class="n">separator_insertion</span><span class="o">=</span><span class="n">separator_insertion</span><span class="p">)</span>
</span><span id="L-619"><a href="#L-619"><span class="linenos">619</span></a>
</span><span id="L-620"><a href="#L-620"><span class="linenos">620</span></a>
</span><span id="L-621"><a href="#L-621"><span class="linenos">621</span></a><span class="k">def</span> <span class="nf">_dobsdict_to_xmlstring</span><span class="p">(</span><span class="n">d</span><span class="p">):</span>
</span><span id="L-621"><a href="#L-621"><span class="linenos">621</span></a><span class="k">def</span><span class="w"> </span><span class="nf">_dobsdict_to_xmlstring</span><span class="p">(</span><span class="n">d</span><span class="p">):</span>
</span><span id="L-622"><a href="#L-622"><span class="linenos">622</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">d</span><span class="p">,</span> <span class="nb">dict</span><span class="p">):</span>
</span><span id="L-623"><a href="#L-623"><span class="linenos">623</span></a> <span class="n">iters</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
</span><span id="L-624"><a href="#L-624"><span class="linenos">624</span></a> <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="n">d</span><span class="p">:</span>
@ -754,7 +754,7 @@
</span><span id="L-658"><a href="#L-658"><span class="linenos">658</span></a> <span class="k">return</span> <span class="n">iters</span>
</span><span id="L-659"><a href="#L-659"><span class="linenos">659</span></a>
</span><span id="L-660"><a href="#L-660"><span class="linenos">660</span></a>
</span><span id="L-661"><a href="#L-661"><span class="linenos">661</span></a><span class="k">def</span> <span class="nf">_dobsdict_to_xmlstring_spaces</span><span class="p">(</span><span class="n">d</span><span class="p">,</span> <span class="n">space</span><span class="o">=</span><span class="s1">&#39; &#39;</span><span class="p">):</span>
</span><span id="L-661"><a href="#L-661"><span class="linenos">661</span></a><span class="k">def</span><span class="w"> </span><span class="nf">_dobsdict_to_xmlstring_spaces</span><span class="p">(</span><span class="n">d</span><span class="p">,</span> <span class="n">space</span><span class="o">=</span><span class="s1">&#39; &#39;</span><span class="p">):</span>
</span><span id="L-662"><a href="#L-662"><span class="linenos">662</span></a> <span class="n">s</span> <span class="o">=</span> <span class="n">_dobsdict_to_xmlstring</span><span class="p">(</span><span class="n">d</span><span class="p">)</span>
</span><span id="L-663"><a href="#L-663"><span class="linenos">663</span></a> <span class="n">o</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
</span><span id="L-664"><a href="#L-664"><span class="linenos">664</span></a> <span class="n">c</span> <span class="o">=</span> <span class="mi">0</span>
@ -773,7 +773,7 @@
</span><span id="L-677"><a href="#L-677"><span class="linenos">677</span></a> <span class="k">return</span> <span class="n">o</span>
</span><span id="L-678"><a href="#L-678"><span class="linenos">678</span></a>
</span><span id="L-679"><a href="#L-679"><span class="linenos">679</span></a>
</span><span id="L-680"><a href="#L-680"><span class="linenos">680</span></a><span class="k">def</span> <span class="nf">create_dobs_string</span><span class="p">(</span><span class="n">obsl</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">spec</span><span class="o">=</span><span class="s1">&#39;dobs v1.0&#39;</span><span class="p">,</span> <span class="n">origin</span><span class="o">=</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="n">symbol</span><span class="o">=</span><span class="p">[],</span> <span class="n">who</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">enstags</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
</span><span id="L-680"><a href="#L-680"><span class="linenos">680</span></a><span class="k">def</span><span class="w"> </span><span class="nf">create_dobs_string</span><span class="p">(</span><span class="n">obsl</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">spec</span><span class="o">=</span><span class="s1">&#39;dobs v1.0&#39;</span><span class="p">,</span> <span class="n">origin</span><span class="o">=</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="n">symbol</span><span class="o">=</span><span class="p">[],</span> <span class="n">who</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">enstags</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
</span><span id="L-681"><a href="#L-681"><span class="linenos">681</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Generate the string for the export of a list of Obs or structures containing Obs</span>
</span><span id="L-682"><a href="#L-682"><span class="linenos">682</span></a><span class="sd"> to a .xml.gz file according to the Zeuthen dobs format.</span>
</span><span id="L-683"><a href="#L-683"><span class="linenos">683</span></a>
@ -962,7 +962,7 @@
</span><span id="L-866"><a href="#L-866"><span class="linenos">866</span></a> <span class="k">return</span> <span class="n">rs</span>
</span><span id="L-867"><a href="#L-867"><span class="linenos">867</span></a>
</span><span id="L-868"><a href="#L-868"><span class="linenos">868</span></a>
</span><span id="L-869"><a href="#L-869"><span class="linenos">869</span></a><span class="k">def</span> <span class="nf">write_dobs</span><span class="p">(</span><span class="n">obsl</span><span class="p">,</span> <span class="n">fname</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">spec</span><span class="o">=</span><span class="s1">&#39;dobs v1.0&#39;</span><span class="p">,</span> <span class="n">origin</span><span class="o">=</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="n">symbol</span><span class="o">=</span><span class="p">[],</span> <span class="n">who</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">enstags</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">gz</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
</span><span id="L-869"><a href="#L-869"><span class="linenos">869</span></a><span class="k">def</span><span class="w"> </span><span class="nf">write_dobs</span><span class="p">(</span><span class="n">obsl</span><span class="p">,</span> <span class="n">fname</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">spec</span><span class="o">=</span><span class="s1">&#39;dobs v1.0&#39;</span><span class="p">,</span> <span class="n">origin</span><span class="o">=</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="n">symbol</span><span class="o">=</span><span class="p">[],</span> <span class="n">who</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">enstags</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">gz</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
</span><span id="L-870"><a href="#L-870"><span class="linenos">870</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Export a list of Obs or structures containing Obs to a .xml.gz file</span>
</span><span id="L-871"><a href="#L-871"><span class="linenos">871</span></a><span class="sd"> according to the Zeuthen dobs format.</span>
</span><span id="L-872"><a href="#L-872"><span class="linenos">872</span></a>
@ -1029,7 +1029,7 @@
</div>
<a class="headerlink" href="#create_pobs_string"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="create_pobs_string-89"><a href="#create_pobs_string-89"><span class="linenos"> 89</span></a><span class="k">def</span> <span class="nf">create_pobs_string</span><span class="p">(</span><span class="n">obsl</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">spec</span><span class="o">=</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="n">origin</span><span class="o">=</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="n">symbol</span><span class="o">=</span><span class="p">[],</span> <span class="n">enstag</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="create_pobs_string-89"><a href="#create_pobs_string-89"><span class="linenos"> 89</span></a><span class="k">def</span><span class="w"> </span><span class="nf">create_pobs_string</span><span class="p">(</span><span class="n">obsl</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">spec</span><span class="o">=</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="n">origin</span><span class="o">=</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="n">symbol</span><span class="o">=</span><span class="p">[],</span> <span class="n">enstag</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
</span><span id="create_pobs_string-90"><a href="#create_pobs_string-90"><span class="linenos"> 90</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Export a list of Obs or structures containing Obs to an xml string</span>
</span><span id="create_pobs_string-91"><a href="#create_pobs_string-91"><span class="linenos"> 91</span></a><span class="sd"> according to the Zeuthen pobs format.</span>
</span><span id="create_pobs_string-92"><a href="#create_pobs_string-92"><span class="linenos"> 92</span></a>
@ -1165,7 +1165,7 @@ XML formatted string of the input data</li>
</div>
<a class="headerlink" href="#write_pobs"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="write_pobs-180"><a href="#write_pobs-180"><span class="linenos">180</span></a><span class="k">def</span> <span class="nf">write_pobs</span><span class="p">(</span><span class="n">obsl</span><span class="p">,</span> <span class="n">fname</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">spec</span><span class="o">=</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="n">origin</span><span class="o">=</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="n">symbol</span><span class="o">=</span><span class="p">[],</span> <span class="n">enstag</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">gz</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="write_pobs-180"><a href="#write_pobs-180"><span class="linenos">180</span></a><span class="k">def</span><span class="w"> </span><span class="nf">write_pobs</span><span class="p">(</span><span class="n">obsl</span><span class="p">,</span> <span class="n">fname</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">spec</span><span class="o">=</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="n">origin</span><span class="o">=</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="n">symbol</span><span class="o">=</span><span class="p">[],</span> <span class="n">enstag</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">gz</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
</span><span id="write_pobs-181"><a href="#write_pobs-181"><span class="linenos">181</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Export a list of Obs or structures containing Obs to a .xml.gz file</span>
</span><span id="write_pobs-182"><a href="#write_pobs-182"><span class="linenos">182</span></a><span class="sd"> according to the Zeuthen pobs format.</span>
</span><span id="write_pobs-183"><a href="#write_pobs-183"><span class="linenos">183</span></a>
@ -1260,7 +1260,7 @@ If True, the output is a gzipped xml. If False, the output is an xml file.</li>
</div>
<a class="headerlink" href="#read_pobs"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="read_pobs-301"><a href="#read_pobs-301"><span class="linenos">301</span></a><span class="k">def</span> <span class="nf">read_pobs</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="n">full_output</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">gz</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">separator_insertion</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="read_pobs-301"><a href="#read_pobs-301"><span class="linenos">301</span></a><span class="k">def</span><span class="w"> </span><span class="nf">read_pobs</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="n">full_output</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">gz</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">separator_insertion</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
</span><span id="read_pobs-302"><a href="#read_pobs-302"><span class="linenos">302</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Import a list of Obs from an xml.gz file in the Zeuthen pobs format.</span>
</span><span id="read_pobs-303"><a href="#read_pobs-303"><span class="linenos">303</span></a>
</span><span id="read_pobs-304"><a href="#read_pobs-304"><span class="linenos">304</span></a><span class="sd"> Tags are not written or recovered automatically.</span>
@ -1403,7 +1403,7 @@ Imported data and meta-data</li>
</div>
<a class="headerlink" href="#import_dobs_string"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="import_dobs_string-401"><a href="#import_dobs_string-401"><span class="linenos">401</span></a><span class="k">def</span> <span class="nf">import_dobs_string</span><span class="p">(</span><span class="n">content</span><span class="p">,</span> <span class="n">full_output</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">separator_insertion</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="import_dobs_string-401"><a href="#import_dobs_string-401"><span class="linenos">401</span></a><span class="k">def</span><span class="w"> </span><span class="nf">import_dobs_string</span><span class="p">(</span><span class="n">content</span><span class="p">,</span> <span class="n">full_output</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">separator_insertion</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
</span><span id="import_dobs_string-402"><a href="#import_dobs_string-402"><span class="linenos">402</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Import a list of Obs from a string in the Zeuthen dobs format.</span>
</span><span id="import_dobs_string-403"><a href="#import_dobs_string-403"><span class="linenos">403</span></a>
</span><span id="import_dobs_string-404"><a href="#import_dobs_string-404"><span class="linenos">404</span></a><span class="sd"> Tags are not written or recovered automatically.</span>
@ -1623,7 +1623,7 @@ Imported data and meta-data</li>
</div>
<a class="headerlink" href="#read_dobs"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="read_dobs-575"><a href="#read_dobs-575"><span class="linenos">575</span></a><span class="k">def</span> <span class="nf">read_dobs</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="n">full_output</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">gz</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">separator_insertion</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="read_dobs-575"><a href="#read_dobs-575"><span class="linenos">575</span></a><span class="k">def</span><span class="w"> </span><span class="nf">read_dobs</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="n">full_output</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">gz</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">separator_insertion</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
</span><span id="read_dobs-576"><a href="#read_dobs-576"><span class="linenos">576</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Import a list of Obs from an xml.gz file in the Zeuthen dobs format.</span>
</span><span id="read_dobs-577"><a href="#read_dobs-577"><span class="linenos">577</span></a>
</span><span id="read_dobs-578"><a href="#read_dobs-578"><span class="linenos">578</span></a><span class="sd"> Tags are not written or recovered automatically.</span>
@ -1718,7 +1718,7 @@ Imported data and meta-data</li>
</div>
<a class="headerlink" href="#create_dobs_string"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="create_dobs_string-681"><a href="#create_dobs_string-681"><span class="linenos">681</span></a><span class="k">def</span> <span class="nf">create_dobs_string</span><span class="p">(</span><span class="n">obsl</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">spec</span><span class="o">=</span><span class="s1">&#39;dobs v1.0&#39;</span><span class="p">,</span> <span class="n">origin</span><span class="o">=</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="n">symbol</span><span class="o">=</span><span class="p">[],</span> <span class="n">who</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">enstags</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="create_dobs_string-681"><a href="#create_dobs_string-681"><span class="linenos">681</span></a><span class="k">def</span><span class="w"> </span><span class="nf">create_dobs_string</span><span class="p">(</span><span class="n">obsl</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">spec</span><span class="o">=</span><span class="s1">&#39;dobs v1.0&#39;</span><span class="p">,</span> <span class="n">origin</span><span class="o">=</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="n">symbol</span><span class="o">=</span><span class="p">[],</span> <span class="n">who</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">enstags</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
</span><span id="create_dobs_string-682"><a href="#create_dobs_string-682"><span class="linenos">682</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Generate the string for the export of a list of Obs or structures containing Obs</span>
</span><span id="create_dobs_string-683"><a href="#create_dobs_string-683"><span class="linenos">683</span></a><span class="sd"> to a .xml.gz file according to the Zeuthen dobs format.</span>
</span><span id="create_dobs_string-684"><a href="#create_dobs_string-684"><span class="linenos">684</span></a>
@ -1956,7 +1956,7 @@ XML string generated from the data</li>
</div>
<a class="headerlink" href="#write_dobs"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="write_dobs-870"><a href="#write_dobs-870"><span class="linenos">870</span></a><span class="k">def</span> <span class="nf">write_dobs</span><span class="p">(</span><span class="n">obsl</span><span class="p">,</span> <span class="n">fname</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">spec</span><span class="o">=</span><span class="s1">&#39;dobs v1.0&#39;</span><span class="p">,</span> <span class="n">origin</span><span class="o">=</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="n">symbol</span><span class="o">=</span><span class="p">[],</span> <span class="n">who</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">enstags</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">gz</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="write_dobs-870"><a href="#write_dobs-870"><span class="linenos">870</span></a><span class="k">def</span><span class="w"> </span><span class="nf">write_dobs</span><span class="p">(</span><span class="n">obsl</span><span class="p">,</span> <span class="n">fname</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">spec</span><span class="o">=</span><span class="s1">&#39;dobs v1.0&#39;</span><span class="p">,</span> <span class="n">origin</span><span class="o">=</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="n">symbol</span><span class="o">=</span><span class="p">[],</span> <span class="n">who</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">enstags</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">gz</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
</span><span id="write_dobs-871"><a href="#write_dobs-871"><span class="linenos">871</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Export a list of Obs or structures containing Obs to a .xml.gz file</span>
</span><span id="write_dobs-872"><a href="#write_dobs-872"><span class="linenos">872</span></a><span class="sd"> according to the Zeuthen dobs format.</span>
</span><span id="write_dobs-873"><a href="#write_dobs-873"><span class="linenos">873</span></a>

View file

@ -103,18 +103,18 @@
<label class="view-source-button" for="mod-hadrons-view-source"><span>View Source</span></label>
<div class="pdoc-code codehilite"><pre><span></span><span id="L-1"><a href="#L-1"><span class="linenos"> 1</span></a><span class="kn">import</span> <span class="nn">os</span>
</span><span id="L-2"><a href="#L-2"><span class="linenos"> 2</span></a><span class="kn">from</span> <span class="nn">collections</span> <span class="kn">import</span> <span class="n">Counter</span>
</span><span id="L-3"><a href="#L-3"><span class="linenos"> 3</span></a><span class="kn">import</span> <span class="nn">h5py</span>
</span><span id="L-4"><a href="#L-4"><span class="linenos"> 4</span></a><span class="kn">from</span> <span class="nn">pathlib</span> <span class="kn">import</span> <span class="n">Path</span>
</span><span id="L-5"><a href="#L-5"><span class="linenos"> 5</span></a><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
</span><span id="L-6"><a href="#L-6"><span class="linenos"> 6</span></a><span class="kn">from</span> <span class="nn">..obs</span> <span class="kn">import</span> <span class="n">Obs</span><span class="p">,</span> <span class="n">CObs</span>
</span><span id="L-7"><a href="#L-7"><span class="linenos"> 7</span></a><span class="kn">from</span> <span class="nn">..correlators</span> <span class="kn">import</span> <span class="n">Corr</span>
</span><span id="L-8"><a href="#L-8"><span class="linenos"> 8</span></a><span class="kn">from</span> <span class="nn">..dirac</span> <span class="kn">import</span> <span class="n">epsilon_tensor_rank4</span>
</span><span id="L-9"><a href="#L-9"><span class="linenos"> 9</span></a><span class="kn">from</span> <span class="nn">.misc</span> <span class="kn">import</span> <span class="n">fit_t0</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="L-1"><a href="#L-1"><span class="linenos"> 1</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">os</span>
</span><span id="L-2"><a href="#L-2"><span class="linenos"> 2</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">collections</span><span class="w"> </span><span class="kn">import</span> <span class="n">Counter</span>
</span><span id="L-3"><a href="#L-3"><span class="linenos"> 3</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">h5py</span>
</span><span id="L-4"><a href="#L-4"><span class="linenos"> 4</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">pathlib</span><span class="w"> </span><span class="kn">import</span> <span class="n">Path</span>
</span><span id="L-5"><a href="#L-5"><span class="linenos"> 5</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">np</span>
</span><span id="L-6"><a href="#L-6"><span class="linenos"> 6</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">..obs</span><span class="w"> </span><span class="kn">import</span> <span class="n">Obs</span><span class="p">,</span> <span class="n">CObs</span>
</span><span id="L-7"><a href="#L-7"><span class="linenos"> 7</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">..correlators</span><span class="w"> </span><span class="kn">import</span> <span class="n">Corr</span>
</span><span id="L-8"><a href="#L-8"><span class="linenos"> 8</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">..dirac</span><span class="w"> </span><span class="kn">import</span> <span class="n">epsilon_tensor_rank4</span>
</span><span id="L-9"><a href="#L-9"><span class="linenos"> 9</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">.misc</span><span class="w"> </span><span class="kn">import</span> <span class="n">fit_t0</span>
</span><span id="L-10"><a href="#L-10"><span class="linenos"> 10</span></a>
</span><span id="L-11"><a href="#L-11"><span class="linenos"> 11</span></a>
</span><span id="L-12"><a href="#L-12"><span class="linenos"> 12</span></a><span class="k">def</span> <span class="nf">_get_files</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">filestem</span><span class="p">,</span> <span class="n">idl</span><span class="p">):</span>
</span><span id="L-12"><a href="#L-12"><span class="linenos"> 12</span></a><span class="k">def</span><span class="w"> </span><span class="nf">_get_files</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">filestem</span><span class="p">,</span> <span class="n">idl</span><span class="p">):</span>
</span><span id="L-13"><a href="#L-13"><span class="linenos"> 13</span></a> <span class="n">ls</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">listdir</span><span class="p">(</span><span class="n">path</span><span class="p">)</span>
</span><span id="L-14"><a href="#L-14"><span class="linenos"> 14</span></a>
</span><span id="L-15"><a href="#L-15"><span class="linenos"> 15</span></a> <span class="c1"># Clean up file list</span>
@ -123,7 +123,7 @@
</span><span id="L-18"><a href="#L-18"><span class="linenos"> 18</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">files</span><span class="p">:</span>
</span><span id="L-19"><a href="#L-19"><span class="linenos"> 19</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;No files starting with&#39;</span><span class="p">,</span> <span class="n">filestem</span><span class="p">,</span> <span class="s1">&#39;in folder&#39;</span><span class="p">,</span> <span class="n">path</span><span class="p">)</span>
</span><span id="L-20"><a href="#L-20"><span class="linenos"> 20</span></a>
</span><span id="L-21"><a href="#L-21"><span class="linenos"> 21</span></a> <span class="k">def</span> <span class="nf">get_cnfg_number</span><span class="p">(</span><span class="n">n</span><span class="p">):</span>
</span><span id="L-21"><a href="#L-21"><span class="linenos"> 21</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">get_cnfg_number</span><span class="p">(</span><span class="n">n</span><span class="p">):</span>
</span><span id="L-22"><a href="#L-22"><span class="linenos"> 22</span></a> <span class="k">return</span> <span class="nb">int</span><span class="p">(</span><span class="n">n</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s2">&quot;.h5&quot;</span><span class="p">,</span> <span class="s2">&quot;&quot;</span><span class="p">)[</span><span class="nb">len</span><span class="p">(</span><span class="n">filestem</span><span class="p">)</span> <span class="o">+</span> <span class="mi">1</span><span class="p">:])</span> <span class="c1"># From python 3.9 onward the safer &#39;removesuffix&#39; method can be used.</span>
</span><span id="L-23"><a href="#L-23"><span class="linenos"> 23</span></a>
</span><span id="L-24"><a href="#L-24"><span class="linenos"> 24</span></a> <span class="c1"># Sort according to configuration number</span>
@ -159,7 +159,7 @@
</span><span id="L-54"><a href="#L-54"><span class="linenos"> 54</span></a> <span class="k">return</span> <span class="n">filtered_files</span><span class="p">,</span> <span class="n">idx</span>
</span><span id="L-55"><a href="#L-55"><span class="linenos"> 55</span></a>
</span><span id="L-56"><a href="#L-56"><span class="linenos"> 56</span></a>
</span><span id="L-57"><a href="#L-57"><span class="linenos"> 57</span></a><span class="k">def</span> <span class="nf">read_hd5</span><span class="p">(</span><span class="n">filestem</span><span class="p">,</span> <span class="n">ens_id</span><span class="p">,</span> <span class="n">group</span><span class="p">,</span> <span class="n">attrs</span><span class="o">=</span><span class="kc">None</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">part</span><span class="o">=</span><span class="s2">&quot;real&quot;</span><span class="p">):</span>
</span><span id="L-57"><a href="#L-57"><span class="linenos"> 57</span></a><span class="k">def</span><span class="w"> </span><span class="nf">read_hd5</span><span class="p">(</span><span class="n">filestem</span><span class="p">,</span> <span class="n">ens_id</span><span class="p">,</span> <span class="n">group</span><span class="p">,</span> <span class="n">attrs</span><span class="o">=</span><span class="kc">None</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">part</span><span class="o">=</span><span class="s2">&quot;real&quot;</span><span class="p">):</span>
</span><span id="L-58"><a href="#L-58"><span class="linenos"> 58</span></a><span class="w"> </span><span class="sa">r</span><span class="sd">&#39;&#39;&#39;Read hadrons hdf5 file and extract entry based on attributes.</span>
</span><span id="L-59"><a href="#L-59"><span class="linenos"> 59</span></a>
</span><span id="L-60"><a href="#L-60"><span class="linenos"> 60</span></a><span class="sd"> Parameters</span>
@ -245,7 +245,7 @@
</span><span id="L-140"><a href="#L-140"><span class="linenos">140</span></a> <span class="k">return</span> <span class="n">corr</span>
</span><span id="L-141"><a href="#L-141"><span class="linenos">141</span></a>
</span><span id="L-142"><a href="#L-142"><span class="linenos">142</span></a>
</span><span id="L-143"><a href="#L-143"><span class="linenos">143</span></a><span class="k">def</span> <span class="nf">read_meson_hd5</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">filestem</span><span class="p">,</span> <span class="n">ens_id</span><span class="p">,</span> <span class="n">meson</span><span class="o">=</span><span class="s1">&#39;meson_0&#39;</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">gammas</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
</span><span id="L-143"><a href="#L-143"><span class="linenos">143</span></a><span class="k">def</span><span class="w"> </span><span class="nf">read_meson_hd5</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">filestem</span><span class="p">,</span> <span class="n">ens_id</span><span class="p">,</span> <span class="n">meson</span><span class="o">=</span><span class="s1">&#39;meson_0&#39;</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">gammas</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
</span><span id="L-144"><a href="#L-144"><span class="linenos">144</span></a><span class="w"> </span><span class="sa">r</span><span class="sd">&#39;&#39;&#39;Read hadrons meson hdf5 file and extract the meson labeled &#39;meson&#39;</span>
</span><span id="L-145"><a href="#L-145"><span class="linenos">145</span></a>
</span><span id="L-146"><a href="#L-146"><span class="linenos">146</span></a><span class="sd"> Parameters</span>
@ -284,7 +284,7 @@
</span><span id="L-179"><a href="#L-179"><span class="linenos">179</span></a> <span class="n">part</span><span class="o">=</span><span class="s2">&quot;real&quot;</span><span class="p">)</span>
</span><span id="L-180"><a href="#L-180"><span class="linenos">180</span></a>
</span><span id="L-181"><a href="#L-181"><span class="linenos">181</span></a>
</span><span id="L-182"><a href="#L-182"><span class="linenos">182</span></a><span class="k">def</span> <span class="nf">_extract_real_arrays</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">files</span><span class="p">,</span> <span class="n">tree</span><span class="p">,</span> <span class="n">keys</span><span class="p">):</span>
</span><span id="L-182"><a href="#L-182"><span class="linenos">182</span></a><span class="k">def</span><span class="w"> </span><span class="nf">_extract_real_arrays</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">files</span><span class="p">,</span> <span class="n">tree</span><span class="p">,</span> <span class="n">keys</span><span class="p">):</span>
</span><span id="L-183"><a href="#L-183"><span class="linenos">183</span></a> <span class="n">corr_data</span> <span class="o">=</span> <span class="p">{}</span>
</span><span id="L-184"><a href="#L-184"><span class="linenos">184</span></a> <span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="n">keys</span><span class="p">:</span>
</span><span id="L-185"><a href="#L-185"><span class="linenos">185</span></a> <span class="n">corr_data</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
@ -302,7 +302,7 @@
</span><span id="L-197"><a href="#L-197"><span class="linenos">197</span></a> <span class="k">return</span> <span class="n">corr_data</span>
</span><span id="L-198"><a href="#L-198"><span class="linenos">198</span></a>
</span><span id="L-199"><a href="#L-199"><span class="linenos">199</span></a>
</span><span id="L-200"><a href="#L-200"><span class="linenos">200</span></a><span class="k">def</span> <span class="nf">extract_t0_hd5</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">filestem</span><span class="p">,</span> <span class="n">ens_id</span><span class="p">,</span> <span class="n">obs</span><span class="o">=</span><span class="s1">&#39;Clover energy density&#39;</span><span class="p">,</span> <span class="n">fit_range</span><span class="o">=</span><span class="mi">5</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="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="L-200"><a href="#L-200"><span class="linenos">200</span></a><span class="k">def</span><span class="w"> </span><span class="nf">extract_t0_hd5</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">filestem</span><span class="p">,</span> <span class="n">ens_id</span><span class="p">,</span> <span class="n">obs</span><span class="o">=</span><span class="s1">&#39;Clover energy density&#39;</span><span class="p">,</span> <span class="n">fit_range</span><span class="o">=</span><span class="mi">5</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="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="L-201"><a href="#L-201"><span class="linenos">201</span></a><span class="w"> </span><span class="sa">r</span><span class="sd">&#39;&#39;&#39;Read hadrons FlowObservables hdf5 file and extract t0</span>
</span><span id="L-202"><a href="#L-202"><span class="linenos">202</span></a>
</span><span id="L-203"><a href="#L-203"><span class="linenos">203</span></a><span class="sd"> Parameters</span>
@ -350,7 +350,7 @@
</span><span id="L-245"><a href="#L-245"><span class="linenos">245</span></a> <span class="k">return</span> <span class="n">fit_t0</span><span class="p">(</span><span class="n">t2E_dict</span><span class="p">,</span> <span class="n">fit_range</span><span class="p">,</span> <span class="n">plot_fit</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;plot_fit&#39;</span><span class="p">))</span>
</span><span id="L-246"><a href="#L-246"><span class="linenos">246</span></a>
</span><span id="L-247"><a href="#L-247"><span class="linenos">247</span></a>
</span><span id="L-248"><a href="#L-248"><span class="linenos">248</span></a><span class="k">def</span> <span class="nf">read_DistillationContraction_hd5</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">ens_id</span><span class="p">,</span> <span class="n">diagrams</span><span class="o">=</span><span class="p">[</span><span class="s2">&quot;direct&quot;</span><span class="p">],</span> <span class="n">idl</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
</span><span id="L-248"><a href="#L-248"><span class="linenos">248</span></a><span class="k">def</span><span class="w"> </span><span class="nf">read_DistillationContraction_hd5</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">ens_id</span><span class="p">,</span> <span class="n">diagrams</span><span class="o">=</span><span class="p">[</span><span class="s2">&quot;direct&quot;</span><span class="p">],</span> <span class="n">idl</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
</span><span id="L-249"><a href="#L-249"><span class="linenos">249</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Read hadrons DistillationContraction hdf5 files in given directory structure</span>
</span><span id="L-250"><a href="#L-250"><span class="linenos">250</span></a>
</span><span id="L-251"><a href="#L-251"><span class="linenos">251</span></a><span class="sd"> Parameters</span>
@ -447,16 +447,16 @@
</span><span id="L-342"><a href="#L-342"><span class="linenos">342</span></a> <span class="k">return</span> <span class="n">res_dict</span>
</span><span id="L-343"><a href="#L-343"><span class="linenos">343</span></a>
</span><span id="L-344"><a href="#L-344"><span class="linenos">344</span></a>
</span><span id="L-345"><a href="#L-345"><span class="linenos">345</span></a><span class="k">class</span> <span class="nc">Npr_matrix</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">ndarray</span><span class="p">):</span>
</span><span id="L-345"><a href="#L-345"><span class="linenos">345</span></a><span class="k">class</span><span class="w"> </span><span class="nc">Npr_matrix</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">ndarray</span><span class="p">):</span>
</span><span id="L-346"><a href="#L-346"><span class="linenos">346</span></a>
</span><span id="L-347"><a href="#L-347"><span class="linenos">347</span></a> <span class="k">def</span> <span class="fm">__new__</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">input_array</span><span class="p">,</span> <span class="n">mom_in</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">mom_out</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
</span><span id="L-347"><a href="#L-347"><span class="linenos">347</span></a> <span class="k">def</span><span class="w"> </span><span class="fm">__new__</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">input_array</span><span class="p">,</span> <span class="n">mom_in</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">mom_out</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
</span><span id="L-348"><a href="#L-348"><span class="linenos">348</span></a> <span class="n">obj</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">asarray</span><span class="p">(</span><span class="n">input_array</span><span class="p">)</span><span class="o">.</span><span class="n">view</span><span class="p">(</span><span class="bp">cls</span><span class="p">)</span>
</span><span id="L-349"><a href="#L-349"><span class="linenos">349</span></a> <span class="n">obj</span><span class="o">.</span><span class="n">mom_in</span> <span class="o">=</span> <span class="n">mom_in</span>
</span><span id="L-350"><a href="#L-350"><span class="linenos">350</span></a> <span class="n">obj</span><span class="o">.</span><span class="n">mom_out</span> <span class="o">=</span> <span class="n">mom_out</span>
</span><span id="L-351"><a href="#L-351"><span class="linenos">351</span></a> <span class="k">return</span> <span class="n">obj</span>
</span><span id="L-352"><a href="#L-352"><span class="linenos">352</span></a>
</span><span id="L-353"><a href="#L-353"><span class="linenos">353</span></a> <span class="nd">@property</span>
</span><span id="L-354"><a href="#L-354"><span class="linenos">354</span></a> <span class="k">def</span> <span class="nf">g5H</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="L-354"><a href="#L-354"><span class="linenos">354</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">g5H</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="L-355"><a href="#L-355"><span class="linenos">355</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Gamma_5 hermitean conjugate</span>
</span><span id="L-356"><a href="#L-356"><span class="linenos">356</span></a>
</span><span id="L-357"><a href="#L-357"><span class="linenos">357</span></a><span class="sd"> Uses the fact that the propagator is gamma5 hermitean, so just the</span>
@ -466,7 +466,7 @@
</span><span id="L-361"><a href="#L-361"><span class="linenos">361</span></a> <span class="n">mom_in</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">mom_out</span><span class="p">,</span>
</span><span id="L-362"><a href="#L-362"><span class="linenos">362</span></a> <span class="n">mom_out</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">mom_in</span><span class="p">)</span>
</span><span id="L-363"><a href="#L-363"><span class="linenos">363</span></a>
</span><span id="L-364"><a href="#L-364"><span class="linenos">364</span></a> <span class="k">def</span> <span class="nf">_propagate_mom</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">name</span><span class="p">):</span>
</span><span id="L-364"><a href="#L-364"><span class="linenos">364</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">_propagate_mom</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">name</span><span class="p">):</span>
</span><span id="L-365"><a href="#L-365"><span class="linenos">365</span></a> <span class="n">s_mom</span> <span class="o">=</span> <span class="nb">getattr</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="kc">None</span><span class="p">)</span>
</span><span id="L-366"><a href="#L-366"><span class="linenos">366</span></a> <span class="n">o_mom</span> <span class="o">=</span> <span class="nb">getattr</span><span class="p">(</span><span class="n">other</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
</span><span id="L-367"><a href="#L-367"><span class="linenos">367</span></a> <span class="k">if</span> <span class="n">s_mom</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="n">o_mom</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
@ -474,20 +474,20 @@
</span><span id="L-369"><a href="#L-369"><span class="linenos">369</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="n">name</span> <span class="o">+</span> <span class="s1">&#39; does not match.&#39;</span><span class="p">)</span>
</span><span id="L-370"><a href="#L-370"><span class="linenos">370</span></a> <span class="k">return</span> <span class="n">o_mom</span> <span class="k">if</span> <span class="n">o_mom</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="k">else</span> <span class="n">s_mom</span>
</span><span id="L-371"><a href="#L-371"><span class="linenos">371</span></a>
</span><span id="L-372"><a href="#L-372"><span class="linenos">372</span></a> <span class="k">def</span> <span class="fm">__matmul__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">):</span>
</span><span id="L-372"><a href="#L-372"><span class="linenos">372</span></a> <span class="k">def</span><span class="w"> </span><span class="fm">__matmul__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">):</span>
</span><span id="L-373"><a href="#L-373"><span class="linenos">373</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="fm">__new__</span><span class="p">(</span><span class="n">Npr_matrix</span><span class="p">,</span>
</span><span id="L-374"><a href="#L-374"><span class="linenos">374</span></a> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__matmul__</span><span class="p">(</span><span class="n">other</span><span class="p">),</span>
</span><span id="L-375"><a href="#L-375"><span class="linenos">375</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_propagate_mom</span><span class="p">(</span><span class="n">other</span><span class="p">,</span> <span class="s1">&#39;mom_in&#39;</span><span class="p">),</span>
</span><span id="L-376"><a href="#L-376"><span class="linenos">376</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_propagate_mom</span><span class="p">(</span><span class="n">other</span><span class="p">,</span> <span class="s1">&#39;mom_out&#39;</span><span class="p">))</span>
</span><span id="L-377"><a href="#L-377"><span class="linenos">377</span></a>
</span><span id="L-378"><a href="#L-378"><span class="linenos">378</span></a> <span class="k">def</span> <span class="nf">__array_finalize__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">obj</span><span class="p">):</span>
</span><span id="L-378"><a href="#L-378"><span class="linenos">378</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">__array_finalize__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">obj</span><span class="p">):</span>
</span><span id="L-379"><a href="#L-379"><span class="linenos">379</span></a> <span class="k">if</span> <span class="n">obj</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
</span><span id="L-380"><a href="#L-380"><span class="linenos">380</span></a> <span class="k">return</span>
</span><span id="L-381"><a href="#L-381"><span class="linenos">381</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">mom_in</span> <span class="o">=</span> <span class="nb">getattr</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span> <span class="s1">&#39;mom_in&#39;</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
</span><span id="L-382"><a href="#L-382"><span class="linenos">382</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">mom_out</span> <span class="o">=</span> <span class="nb">getattr</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span> <span class="s1">&#39;mom_out&#39;</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
</span><span id="L-383"><a href="#L-383"><span class="linenos">383</span></a>
</span><span id="L-384"><a href="#L-384"><span class="linenos">384</span></a>
</span><span id="L-385"><a href="#L-385"><span class="linenos">385</span></a><span class="k">def</span> <span class="nf">read_ExternalLeg_hd5</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">filestem</span><span class="p">,</span> <span class="n">ens_id</span><span class="p">,</span> <span class="n">idl</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
</span><span id="L-385"><a href="#L-385"><span class="linenos">385</span></a><span class="k">def</span><span class="w"> </span><span class="nf">read_ExternalLeg_hd5</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">filestem</span><span class="p">,</span> <span class="n">ens_id</span><span class="p">,</span> <span class="n">idl</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
</span><span id="L-386"><a href="#L-386"><span class="linenos">386</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Read hadrons ExternalLeg hdf5 file and output an array of CObs</span>
</span><span id="L-387"><a href="#L-387"><span class="linenos">387</span></a>
</span><span id="L-388"><a href="#L-388"><span class="linenos">388</span></a><span class="sd"> Parameters</span>
@ -532,7 +532,7 @@
</span><span id="L-427"><a href="#L-427"><span class="linenos">427</span></a> <span class="k">return</span> <span class="n">Npr_matrix</span><span class="p">(</span><span class="n">matrix</span><span class="p">,</span> <span class="n">mom_in</span><span class="o">=</span><span class="n">mom</span><span class="p">)</span>
</span><span id="L-428"><a href="#L-428"><span class="linenos">428</span></a>
</span><span id="L-429"><a href="#L-429"><span class="linenos">429</span></a>
</span><span id="L-430"><a href="#L-430"><span class="linenos">430</span></a><span class="k">def</span> <span class="nf">read_Bilinear_hd5</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">filestem</span><span class="p">,</span> <span class="n">ens_id</span><span class="p">,</span> <span class="n">idl</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
</span><span id="L-430"><a href="#L-430"><span class="linenos">430</span></a><span class="k">def</span><span class="w"> </span><span class="nf">read_Bilinear_hd5</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">filestem</span><span class="p">,</span> <span class="n">ens_id</span><span class="p">,</span> <span class="n">idl</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
</span><span id="L-431"><a href="#L-431"><span class="linenos">431</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Read hadrons Bilinear hdf5 file and output an array of CObs</span>
</span><span id="L-432"><a href="#L-432"><span class="linenos">432</span></a>
</span><span id="L-433"><a href="#L-433"><span class="linenos">433</span></a><span class="sd"> Parameters</span>
@ -591,7 +591,7 @@
</span><span id="L-486"><a href="#L-486"><span class="linenos">486</span></a> <span class="k">return</span> <span class="n">result_dict</span>
</span><span id="L-487"><a href="#L-487"><span class="linenos">487</span></a>
</span><span id="L-488"><a href="#L-488"><span class="linenos">488</span></a>
</span><span id="L-489"><a href="#L-489"><span class="linenos">489</span></a><span class="k">def</span> <span class="nf">read_Fourquark_hd5</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">filestem</span><span class="p">,</span> <span class="n">ens_id</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">vertices</span><span class="o">=</span><span class="p">[</span><span class="s2">&quot;VA&quot;</span><span class="p">,</span> <span class="s2">&quot;AV&quot;</span><span class="p">]):</span>
</span><span id="L-489"><a href="#L-489"><span class="linenos">489</span></a><span class="k">def</span><span class="w"> </span><span class="nf">read_Fourquark_hd5</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">filestem</span><span class="p">,</span> <span class="n">ens_id</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">vertices</span><span class="o">=</span><span class="p">[</span><span class="s2">&quot;VA&quot;</span><span class="p">,</span> <span class="s2">&quot;AV&quot;</span><span class="p">]):</span>
</span><span id="L-490"><a href="#L-490"><span class="linenos">490</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Read hadrons FourquarkFullyConnected hdf5 file and output an array of CObs</span>
</span><span id="L-491"><a href="#L-491"><span class="linenos">491</span></a>
</span><span id="L-492"><a href="#L-492"><span class="linenos">492</span></a><span class="sd"> Parameters</span>
@ -677,7 +677,7 @@
</span><span id="L-572"><a href="#L-572"><span class="linenos">572</span></a> <span class="k">return</span> <span class="n">result_dict</span>
</span><span id="L-573"><a href="#L-573"><span class="linenos">573</span></a>
</span><span id="L-574"><a href="#L-574"><span class="linenos">574</span></a>
</span><span id="L-575"><a href="#L-575"><span class="linenos">575</span></a><span class="k">def</span> <span class="nf">_get_lorentz_names</span><span class="p">(</span><span class="n">name</span><span class="p">):</span>
</span><span id="L-575"><a href="#L-575"><span class="linenos">575</span></a><span class="k">def</span><span class="w"> </span><span class="nf">_get_lorentz_names</span><span class="p">(</span><span class="n">name</span><span class="p">):</span>
</span><span id="L-576"><a href="#L-576"><span class="linenos">576</span></a> <span class="n">lorentz_index</span> <span class="o">=</span> <span class="p">[</span><span class="s1">&#39;X&#39;</span><span class="p">,</span> <span class="s1">&#39;Y&#39;</span><span class="p">,</span> <span class="s1">&#39;Z&#39;</span><span class="p">,</span> <span class="s1">&#39;T&#39;</span><span class="p">]</span>
</span><span id="L-577"><a href="#L-577"><span class="linenos">577</span></a>
</span><span id="L-578"><a href="#L-578"><span class="linenos">578</span></a> <span class="n">res</span> <span class="o">=</span> <span class="p">[]</span>
@ -733,7 +733,7 @@
</div>
<a class="headerlink" href="#read_hd5"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="read_hd5-58"><a href="#read_hd5-58"><span class="linenos"> 58</span></a><span class="k">def</span> <span class="nf">read_hd5</span><span class="p">(</span><span class="n">filestem</span><span class="p">,</span> <span class="n">ens_id</span><span class="p">,</span> <span class="n">group</span><span class="p">,</span> <span class="n">attrs</span><span class="o">=</span><span class="kc">None</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">part</span><span class="o">=</span><span class="s2">&quot;real&quot;</span><span class="p">):</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="read_hd5-58"><a href="#read_hd5-58"><span class="linenos"> 58</span></a><span class="k">def</span><span class="w"> </span><span class="nf">read_hd5</span><span class="p">(</span><span class="n">filestem</span><span class="p">,</span> <span class="n">ens_id</span><span class="p">,</span> <span class="n">group</span><span class="p">,</span> <span class="n">attrs</span><span class="o">=</span><span class="kc">None</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">part</span><span class="o">=</span><span class="s2">&quot;real&quot;</span><span class="p">):</span>
</span><span id="read_hd5-59"><a href="#read_hd5-59"><span class="linenos"> 59</span></a><span class="w"> </span><span class="sa">r</span><span class="sd">&#39;&#39;&#39;Read hadrons hdf5 file and extract entry based on attributes.</span>
</span><span id="read_hd5-60"><a href="#read_hd5-60"><span class="linenos"> 60</span></a>
</span><span id="read_hd5-61"><a href="#read_hd5-61"><span class="linenos"> 61</span></a><span class="sd"> Parameters</span>
@ -871,7 +871,7 @@ Correlator of the source sink combination in question.</li>
</div>
<a class="headerlink" href="#read_meson_hd5"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="read_meson_hd5-144"><a href="#read_meson_hd5-144"><span class="linenos">144</span></a><span class="k">def</span> <span class="nf">read_meson_hd5</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">filestem</span><span class="p">,</span> <span class="n">ens_id</span><span class="p">,</span> <span class="n">meson</span><span class="o">=</span><span class="s1">&#39;meson_0&#39;</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">gammas</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="read_meson_hd5-144"><a href="#read_meson_hd5-144"><span class="linenos">144</span></a><span class="k">def</span><span class="w"> </span><span class="nf">read_meson_hd5</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">filestem</span><span class="p">,</span> <span class="n">ens_id</span><span class="p">,</span> <span class="n">meson</span><span class="o">=</span><span class="s1">&#39;meson_0&#39;</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">gammas</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
</span><span id="read_meson_hd5-145"><a href="#read_meson_hd5-145"><span class="linenos">145</span></a><span class="w"> </span><span class="sa">r</span><span class="sd">&#39;&#39;&#39;Read hadrons meson hdf5 file and extract the meson labeled &#39;meson&#39;</span>
</span><span id="read_meson_hd5-146"><a href="#read_meson_hd5-146"><span class="linenos">146</span></a>
</span><span id="read_meson_hd5-147"><a href="#read_meson_hd5-147"><span class="linenos">147</span></a><span class="sd"> Parameters</span>
@ -955,7 +955,7 @@ Correlator of the source sink combination in question.</li>
</div>
<a class="headerlink" href="#extract_t0_hd5"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="extract_t0_hd5-201"><a href="#extract_t0_hd5-201"><span class="linenos">201</span></a><span class="k">def</span> <span class="nf">extract_t0_hd5</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">filestem</span><span class="p">,</span> <span class="n">ens_id</span><span class="p">,</span> <span class="n">obs</span><span class="o">=</span><span class="s1">&#39;Clover energy density&#39;</span><span class="p">,</span> <span class="n">fit_range</span><span class="o">=</span><span class="mi">5</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="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="extract_t0_hd5-201"><a href="#extract_t0_hd5-201"><span class="linenos">201</span></a><span class="k">def</span><span class="w"> </span><span class="nf">extract_t0_hd5</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">filestem</span><span class="p">,</span> <span class="n">ens_id</span><span class="p">,</span> <span class="n">obs</span><span class="o">=</span><span class="s1">&#39;Clover energy density&#39;</span><span class="p">,</span> <span class="n">fit_range</span><span class="o">=</span><span class="mi">5</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="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="extract_t0_hd5-202"><a href="#extract_t0_hd5-202"><span class="linenos">202</span></a><span class="w"> </span><span class="sa">r</span><span class="sd">&#39;&#39;&#39;Read hadrons FlowObservables hdf5 file and extract t0</span>
</span><span id="extract_t0_hd5-203"><a href="#extract_t0_hd5-203"><span class="linenos">203</span></a>
</span><span id="extract_t0_hd5-204"><a href="#extract_t0_hd5-204"><span class="linenos">204</span></a><span class="sd"> Parameters</span>
@ -1041,7 +1041,7 @@ If true, the fit for the extraction of t0 is shown together with the data.</li>
</div>
<a class="headerlink" href="#read_DistillationContraction_hd5"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="read_DistillationContraction_hd5-249"><a href="#read_DistillationContraction_hd5-249"><span class="linenos">249</span></a><span class="k">def</span> <span class="nf">read_DistillationContraction_hd5</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">ens_id</span><span class="p">,</span> <span class="n">diagrams</span><span class="o">=</span><span class="p">[</span><span class="s2">&quot;direct&quot;</span><span class="p">],</span> <span class="n">idl</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="read_DistillationContraction_hd5-249"><a href="#read_DistillationContraction_hd5-249"><span class="linenos">249</span></a><span class="k">def</span><span class="w"> </span><span class="nf">read_DistillationContraction_hd5</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">ens_id</span><span class="p">,</span> <span class="n">diagrams</span><span class="o">=</span><span class="p">[</span><span class="s2">&quot;direct&quot;</span><span class="p">],</span> <span class="n">idl</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
</span><span id="read_DistillationContraction_hd5-250"><a href="#read_DistillationContraction_hd5-250"><span class="linenos">250</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Read hadrons DistillationContraction hdf5 files in given directory structure</span>
</span><span id="read_DistillationContraction_hd5-251"><a href="#read_DistillationContraction_hd5-251"><span class="linenos">251</span></a>
</span><span id="read_DistillationContraction_hd5-252"><a href="#read_DistillationContraction_hd5-252"><span class="linenos">252</span></a><span class="sd"> Parameters</span>
@ -1175,16 +1175,16 @@ extracted DistillationContration data</li>
</div>
<a class="headerlink" href="#Npr_matrix"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Npr_matrix-346"><a href="#Npr_matrix-346"><span class="linenos">346</span></a><span class="k">class</span> <span class="nc">Npr_matrix</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">ndarray</span><span class="p">):</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="Npr_matrix-346"><a href="#Npr_matrix-346"><span class="linenos">346</span></a><span class="k">class</span><span class="w"> </span><span class="nc">Npr_matrix</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">ndarray</span><span class="p">):</span>
</span><span id="Npr_matrix-347"><a href="#Npr_matrix-347"><span class="linenos">347</span></a>
</span><span id="Npr_matrix-348"><a href="#Npr_matrix-348"><span class="linenos">348</span></a> <span class="k">def</span> <span class="fm">__new__</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">input_array</span><span class="p">,</span> <span class="n">mom_in</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">mom_out</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
</span><span id="Npr_matrix-348"><a href="#Npr_matrix-348"><span class="linenos">348</span></a> <span class="k">def</span><span class="w"> </span><span class="fm">__new__</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">input_array</span><span class="p">,</span> <span class="n">mom_in</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">mom_out</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
</span><span id="Npr_matrix-349"><a href="#Npr_matrix-349"><span class="linenos">349</span></a> <span class="n">obj</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">asarray</span><span class="p">(</span><span class="n">input_array</span><span class="p">)</span><span class="o">.</span><span class="n">view</span><span class="p">(</span><span class="bp">cls</span><span class="p">)</span>
</span><span id="Npr_matrix-350"><a href="#Npr_matrix-350"><span class="linenos">350</span></a> <span class="n">obj</span><span class="o">.</span><span class="n">mom_in</span> <span class="o">=</span> <span class="n">mom_in</span>
</span><span id="Npr_matrix-351"><a href="#Npr_matrix-351"><span class="linenos">351</span></a> <span class="n">obj</span><span class="o">.</span><span class="n">mom_out</span> <span class="o">=</span> <span class="n">mom_out</span>
</span><span id="Npr_matrix-352"><a href="#Npr_matrix-352"><span class="linenos">352</span></a> <span class="k">return</span> <span class="n">obj</span>
</span><span id="Npr_matrix-353"><a href="#Npr_matrix-353"><span class="linenos">353</span></a>
</span><span id="Npr_matrix-354"><a href="#Npr_matrix-354"><span class="linenos">354</span></a> <span class="nd">@property</span>
</span><span id="Npr_matrix-355"><a href="#Npr_matrix-355"><span class="linenos">355</span></a> <span class="k">def</span> <span class="nf">g5H</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="Npr_matrix-355"><a href="#Npr_matrix-355"><span class="linenos">355</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">g5H</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="Npr_matrix-356"><a href="#Npr_matrix-356"><span class="linenos">356</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Gamma_5 hermitean conjugate</span>
</span><span id="Npr_matrix-357"><a href="#Npr_matrix-357"><span class="linenos">357</span></a>
</span><span id="Npr_matrix-358"><a href="#Npr_matrix-358"><span class="linenos">358</span></a><span class="sd"> Uses the fact that the propagator is gamma5 hermitean, so just the</span>
@ -1194,7 +1194,7 @@ extracted DistillationContration data</li>
</span><span id="Npr_matrix-362"><a href="#Npr_matrix-362"><span class="linenos">362</span></a> <span class="n">mom_in</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">mom_out</span><span class="p">,</span>
</span><span id="Npr_matrix-363"><a href="#Npr_matrix-363"><span class="linenos">363</span></a> <span class="n">mom_out</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">mom_in</span><span class="p">)</span>
</span><span id="Npr_matrix-364"><a href="#Npr_matrix-364"><span class="linenos">364</span></a>
</span><span id="Npr_matrix-365"><a href="#Npr_matrix-365"><span class="linenos">365</span></a> <span class="k">def</span> <span class="nf">_propagate_mom</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">name</span><span class="p">):</span>
</span><span id="Npr_matrix-365"><a href="#Npr_matrix-365"><span class="linenos">365</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">_propagate_mom</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">name</span><span class="p">):</span>
</span><span id="Npr_matrix-366"><a href="#Npr_matrix-366"><span class="linenos">366</span></a> <span class="n">s_mom</span> <span class="o">=</span> <span class="nb">getattr</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="kc">None</span><span class="p">)</span>
</span><span id="Npr_matrix-367"><a href="#Npr_matrix-367"><span class="linenos">367</span></a> <span class="n">o_mom</span> <span class="o">=</span> <span class="nb">getattr</span><span class="p">(</span><span class="n">other</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
</span><span id="Npr_matrix-368"><a href="#Npr_matrix-368"><span class="linenos">368</span></a> <span class="k">if</span> <span class="n">s_mom</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="n">o_mom</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
@ -1202,13 +1202,13 @@ extracted DistillationContration data</li>
</span><span id="Npr_matrix-370"><a href="#Npr_matrix-370"><span class="linenos">370</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="n">name</span> <span class="o">+</span> <span class="s1">&#39; does not match.&#39;</span><span class="p">)</span>
</span><span id="Npr_matrix-371"><a href="#Npr_matrix-371"><span class="linenos">371</span></a> <span class="k">return</span> <span class="n">o_mom</span> <span class="k">if</span> <span class="n">o_mom</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="k">else</span> <span class="n">s_mom</span>
</span><span id="Npr_matrix-372"><a href="#Npr_matrix-372"><span class="linenos">372</span></a>
</span><span id="Npr_matrix-373"><a href="#Npr_matrix-373"><span class="linenos">373</span></a> <span class="k">def</span> <span class="fm">__matmul__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">):</span>
</span><span id="Npr_matrix-373"><a href="#Npr_matrix-373"><span class="linenos">373</span></a> <span class="k">def</span><span class="w"> </span><span class="fm">__matmul__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">):</span>
</span><span id="Npr_matrix-374"><a href="#Npr_matrix-374"><span class="linenos">374</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="fm">__new__</span><span class="p">(</span><span class="n">Npr_matrix</span><span class="p">,</span>
</span><span id="Npr_matrix-375"><a href="#Npr_matrix-375"><span class="linenos">375</span></a> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__matmul__</span><span class="p">(</span><span class="n">other</span><span class="p">),</span>
</span><span id="Npr_matrix-376"><a href="#Npr_matrix-376"><span class="linenos">376</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_propagate_mom</span><span class="p">(</span><span class="n">other</span><span class="p">,</span> <span class="s1">&#39;mom_in&#39;</span><span class="p">),</span>
</span><span id="Npr_matrix-377"><a href="#Npr_matrix-377"><span class="linenos">377</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_propagate_mom</span><span class="p">(</span><span class="n">other</span><span class="p">,</span> <span class="s1">&#39;mom_out&#39;</span><span class="p">))</span>
</span><span id="Npr_matrix-378"><a href="#Npr_matrix-378"><span class="linenos">378</span></a>
</span><span id="Npr_matrix-379"><a href="#Npr_matrix-379"><span class="linenos">379</span></a> <span class="k">def</span> <span class="nf">__array_finalize__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">obj</span><span class="p">):</span>
</span><span id="Npr_matrix-379"><a href="#Npr_matrix-379"><span class="linenos">379</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">__array_finalize__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">obj</span><span class="p">):</span>
</span><span id="Npr_matrix-380"><a href="#Npr_matrix-380"><span class="linenos">380</span></a> <span class="k">if</span> <span class="n">obj</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
</span><span id="Npr_matrix-381"><a href="#Npr_matrix-381"><span class="linenos">381</span></a> <span class="k">return</span>
</span><span id="Npr_matrix-382"><a href="#Npr_matrix-382"><span class="linenos">382</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">mom_in</span> <span class="o">=</span> <span class="nb">getattr</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span> <span class="s1">&#39;mom_in&#39;</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
@ -1330,7 +1330,7 @@ ndarray.</p>
<p>First mode, <code>buffer</code> is None:</p>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span><span class="w"> </span><span class="nn">numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">np</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">np</span><span class="o">.</span><span class="n">ndarray</span><span class="p">(</span><span class="n">shape</span><span class="o">=</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="mi">2</span><span class="p">),</span> <span class="n">dtype</span><span class="o">=</span><span class="nb">float</span><span class="p">,</span> <span class="n">order</span><span class="o">=</span><span class="s1">&#39;F&#39;</span><span class="p">)</span>
<span class="go">array([[0.0e+000, 0.0e+000], # random</span>
<span class="go"> [ nan, 2.5e-323]])</span>
@ -1359,7 +1359,7 @@ ndarray.</p>
</div>
<a class="headerlink" href="#Npr_matrix.g5H"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Npr_matrix.g5H-354"><a href="#Npr_matrix.g5H-354"><span class="linenos">354</span></a> <span class="nd">@property</span>
</span><span id="Npr_matrix.g5H-355"><a href="#Npr_matrix.g5H-355"><span class="linenos">355</span></a> <span class="k">def</span> <span class="nf">g5H</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="Npr_matrix.g5H-355"><a href="#Npr_matrix.g5H-355"><span class="linenos">355</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">g5H</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="Npr_matrix.g5H-356"><a href="#Npr_matrix.g5H-356"><span class="linenos">356</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Gamma_5 hermitean conjugate</span>
</span><span id="Npr_matrix.g5H-357"><a href="#Npr_matrix.g5H-357"><span class="linenos">357</span></a>
</span><span id="Npr_matrix.g5H-358"><a href="#Npr_matrix.g5H-358"><span class="linenos">358</span></a><span class="sd"> Uses the fact that the propagator is gamma5 hermitean, so just the</span>
@ -1391,7 +1391,7 @@ in and out momenta of the propagator are exchanged.</p>
</div>
<a class="headerlink" href="#read_ExternalLeg_hd5"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="read_ExternalLeg_hd5-386"><a href="#read_ExternalLeg_hd5-386"><span class="linenos">386</span></a><span class="k">def</span> <span class="nf">read_ExternalLeg_hd5</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">filestem</span><span class="p">,</span> <span class="n">ens_id</span><span class="p">,</span> <span class="n">idl</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="read_ExternalLeg_hd5-386"><a href="#read_ExternalLeg_hd5-386"><span class="linenos">386</span></a><span class="k">def</span><span class="w"> </span><span class="nf">read_ExternalLeg_hd5</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">filestem</span><span class="p">,</span> <span class="n">ens_id</span><span class="p">,</span> <span class="n">idl</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
</span><span id="read_ExternalLeg_hd5-387"><a href="#read_ExternalLeg_hd5-387"><span class="linenos">387</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Read hadrons ExternalLeg hdf5 file and output an array of CObs</span>
</span><span id="read_ExternalLeg_hd5-388"><a href="#read_ExternalLeg_hd5-388"><span class="linenos">388</span></a>
</span><span id="read_ExternalLeg_hd5-389"><a href="#read_ExternalLeg_hd5-389"><span class="linenos">389</span></a><span class="sd"> Parameters</span>
@ -1473,7 +1473,7 @@ read Cobs-matrix</li>
</div>
<a class="headerlink" href="#read_Bilinear_hd5"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="read_Bilinear_hd5-431"><a href="#read_Bilinear_hd5-431"><span class="linenos">431</span></a><span class="k">def</span> <span class="nf">read_Bilinear_hd5</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">filestem</span><span class="p">,</span> <span class="n">ens_id</span><span class="p">,</span> <span class="n">idl</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="read_Bilinear_hd5-431"><a href="#read_Bilinear_hd5-431"><span class="linenos">431</span></a><span class="k">def</span><span class="w"> </span><span class="nf">read_Bilinear_hd5</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">filestem</span><span class="p">,</span> <span class="n">ens_id</span><span class="p">,</span> <span class="n">idl</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
</span><span id="read_Bilinear_hd5-432"><a href="#read_Bilinear_hd5-432"><span class="linenos">432</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Read hadrons Bilinear hdf5 file and output an array of CObs</span>
</span><span id="read_Bilinear_hd5-433"><a href="#read_Bilinear_hd5-433"><span class="linenos">433</span></a>
</span><span id="read_Bilinear_hd5-434"><a href="#read_Bilinear_hd5-434"><span class="linenos">434</span></a><span class="sd"> Parameters</span>
@ -1569,7 +1569,7 @@ extracted Bilinears</li>
</div>
<a class="headerlink" href="#read_Fourquark_hd5"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="read_Fourquark_hd5-490"><a href="#read_Fourquark_hd5-490"><span class="linenos">490</span></a><span class="k">def</span> <span class="nf">read_Fourquark_hd5</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">filestem</span><span class="p">,</span> <span class="n">ens_id</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">vertices</span><span class="o">=</span><span class="p">[</span><span class="s2">&quot;VA&quot;</span><span class="p">,</span> <span class="s2">&quot;AV&quot;</span><span class="p">]):</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="read_Fourquark_hd5-490"><a href="#read_Fourquark_hd5-490"><span class="linenos">490</span></a><span class="k">def</span><span class="w"> </span><span class="nf">read_Fourquark_hd5</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">filestem</span><span class="p">,</span> <span class="n">ens_id</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">vertices</span><span class="o">=</span><span class="p">[</span><span class="s2">&quot;VA&quot;</span><span class="p">,</span> <span class="s2">&quot;AV&quot;</span><span class="p">]):</span>
</span><span id="read_Fourquark_hd5-491"><a href="#read_Fourquark_hd5-491"><span class="linenos">491</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Read hadrons FourquarkFullyConnected hdf5 file and output an array of CObs</span>
</span><span id="read_Fourquark_hd5-492"><a href="#read_Fourquark_hd5-492"><span class="linenos">492</span></a>
</span><span id="read_Fourquark_hd5-493"><a href="#read_Fourquark_hd5-493"><span class="linenos">493</span></a><span class="sd"> Parameters</span>

View file

@ -91,23 +91,23 @@
<label class="view-source-button" for="mod-json-view-source"><span>View Source</span></label>
<div class="pdoc-code codehilite"><pre><span></span><span id="L-1"><a href="#L-1"><span class="linenos"> 1</span></a><span class="kn">import</span> <span class="nn">rapidjson</span> <span class="k">as</span> <span class="nn">json</span>
</span><span id="L-2"><a href="#L-2"><span class="linenos"> 2</span></a><span class="kn">import</span> <span class="nn">gzip</span>
</span><span id="L-3"><a href="#L-3"><span class="linenos"> 3</span></a><span class="kn">import</span> <span class="nn">getpass</span>
</span><span id="L-4"><a href="#L-4"><span class="linenos"> 4</span></a><span class="kn">import</span> <span class="nn">socket</span>
</span><span id="L-5"><a href="#L-5"><span class="linenos"> 5</span></a><span class="kn">import</span> <span class="nn">datetime</span>
</span><span id="L-6"><a href="#L-6"><span class="linenos"> 6</span></a><span class="kn">import</span> <span class="nn">platform</span>
</span><span id="L-7"><a href="#L-7"><span class="linenos"> 7</span></a><span class="kn">import</span> <span class="nn">warnings</span>
</span><span id="L-8"><a href="#L-8"><span class="linenos"> 8</span></a><span class="kn">import</span> <span class="nn">re</span>
</span><span id="L-9"><a href="#L-9"><span class="linenos"> 9</span></a><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
</span><span id="L-10"><a href="#L-10"><span class="linenos"> 10</span></a><span class="kn">from</span> <span class="nn">..obs</span> <span class="kn">import</span> <span class="n">Obs</span>
</span><span id="L-11"><a href="#L-11"><span class="linenos"> 11</span></a><span class="kn">from</span> <span class="nn">..covobs</span> <span class="kn">import</span> <span class="n">Covobs</span>
</span><span id="L-12"><a href="#L-12"><span class="linenos"> 12</span></a><span class="kn">from</span> <span class="nn">..correlators</span> <span class="kn">import</span> <span class="n">Corr</span>
</span><span id="L-13"><a href="#L-13"><span class="linenos"> 13</span></a><span class="kn">from</span> <span class="nn">..misc</span> <span class="kn">import</span> <span class="n">_assert_equal_properties</span>
</span><span id="L-14"><a href="#L-14"><span class="linenos"> 14</span></a><span class="kn">from</span> <span class="nn">..</span> <span class="kn">import</span> <span class="n">version</span> <span class="k">as</span> <span class="n">pyerrorsversion</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="L-1"><a href="#L-1"><span class="linenos"> 1</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">rapidjson</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">json</span>
</span><span id="L-2"><a href="#L-2"><span class="linenos"> 2</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">gzip</span>
</span><span id="L-3"><a href="#L-3"><span class="linenos"> 3</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">getpass</span>
</span><span id="L-4"><a href="#L-4"><span class="linenos"> 4</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">socket</span>
</span><span id="L-5"><a href="#L-5"><span class="linenos"> 5</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">datetime</span>
</span><span id="L-6"><a href="#L-6"><span class="linenos"> 6</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">platform</span>
</span><span id="L-7"><a href="#L-7"><span class="linenos"> 7</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">warnings</span>
</span><span id="L-8"><a href="#L-8"><span class="linenos"> 8</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">re</span>
</span><span id="L-9"><a href="#L-9"><span class="linenos"> 9</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">np</span>
</span><span id="L-10"><a href="#L-10"><span class="linenos"> 10</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">..obs</span><span class="w"> </span><span class="kn">import</span> <span class="n">Obs</span>
</span><span id="L-11"><a href="#L-11"><span class="linenos"> 11</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">..covobs</span><span class="w"> </span><span class="kn">import</span> <span class="n">Covobs</span>
</span><span id="L-12"><a href="#L-12"><span class="linenos"> 12</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">..correlators</span><span class="w"> </span><span class="kn">import</span> <span class="n">Corr</span>
</span><span id="L-13"><a href="#L-13"><span class="linenos"> 13</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">..misc</span><span class="w"> </span><span class="kn">import</span> <span class="n">_assert_equal_properties</span>
</span><span id="L-14"><a href="#L-14"><span class="linenos"> 14</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">..</span><span class="w"> </span><span class="kn">import</span> <span class="n">version</span> <span class="k">as</span> <span class="n">pyerrorsversion</span>
</span><span id="L-15"><a href="#L-15"><span class="linenos"> 15</span></a>
</span><span id="L-16"><a href="#L-16"><span class="linenos"> 16</span></a>
</span><span id="L-17"><a href="#L-17"><span class="linenos"> 17</span></a><span class="k">def</span> <span class="nf">create_json_string</span><span class="p">(</span><span class="n">ol</span><span class="p">,</span> <span class="n">description</span><span class="o">=</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="n">indent</span><span class="o">=</span><span class="mi">1</span><span class="p">):</span>
</span><span id="L-17"><a href="#L-17"><span class="linenos"> 17</span></a><span class="k">def</span><span class="w"> </span><span class="nf">create_json_string</span><span class="p">(</span><span class="n">ol</span><span class="p">,</span> <span class="n">description</span><span class="o">=</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="n">indent</span><span class="o">=</span><span class="mi">1</span><span class="p">):</span>
</span><span id="L-18"><a href="#L-18"><span class="linenos"> 18</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Generate the string for the export of a list of Obs or structures containing Obs</span>
</span><span id="L-19"><a href="#L-19"><span class="linenos"> 19</span></a><span class="sd"> to a .json(.gz) file</span>
</span><span id="L-20"><a href="#L-20"><span class="linenos"> 20</span></a>
@ -129,7 +129,7 @@
</span><span id="L-36"><a href="#L-36"><span class="linenos"> 36</span></a><span class="sd"> String for export to .json(.gz) file</span>
</span><span id="L-37"><a href="#L-37"><span class="linenos"> 37</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-38"><a href="#L-38"><span class="linenos"> 38</span></a>
</span><span id="L-39"><a href="#L-39"><span class="linenos"> 39</span></a> <span class="k">def</span> <span class="nf">_gen_data_d_from_list</span><span class="p">(</span><span class="n">ol</span><span class="p">):</span>
</span><span id="L-39"><a href="#L-39"><span class="linenos"> 39</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">_gen_data_d_from_list</span><span class="p">(</span><span class="n">ol</span><span class="p">):</span>
</span><span id="L-40"><a href="#L-40"><span class="linenos"> 40</span></a> <span class="n">dl</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-41"><a href="#L-41"><span class="linenos"> 41</span></a> <span class="n">No</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">ol</span><span class="p">)</span>
</span><span id="L-42"><a href="#L-42"><span class="linenos"> 42</span></a> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">ol</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">mc_names</span><span class="p">:</span>
@ -149,7 +149,7 @@
</span><span id="L-56"><a href="#L-56"><span class="linenos"> 56</span></a> <span class="n">dl</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">ed</span><span class="p">)</span>
</span><span id="L-57"><a href="#L-57"><span class="linenos"> 57</span></a> <span class="k">return</span> <span class="n">dl</span>
</span><span id="L-58"><a href="#L-58"><span class="linenos"> 58</span></a>
</span><span id="L-59"><a href="#L-59"><span class="linenos"> 59</span></a> <span class="k">def</span> <span class="nf">_gen_cdata_d_from_list</span><span class="p">(</span><span class="n">ol</span><span class="p">):</span>
</span><span id="L-59"><a href="#L-59"><span class="linenos"> 59</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">_gen_cdata_d_from_list</span><span class="p">(</span><span class="n">ol</span><span class="p">):</span>
</span><span id="L-60"><a href="#L-60"><span class="linenos"> 60</span></a> <span class="n">dl</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-61"><a href="#L-61"><span class="linenos"> 61</span></a> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">ol</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">cov_names</span><span class="p">:</span>
</span><span id="L-62"><a href="#L-62"><span class="linenos"> 62</span></a> <span class="n">ed</span> <span class="o">=</span> <span class="p">{}</span>
@ -165,7 +165,7 @@
</span><span id="L-72"><a href="#L-72"><span class="linenos"> 72</span></a> <span class="n">dl</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">ed</span><span class="p">)</span>
</span><span id="L-73"><a href="#L-73"><span class="linenos"> 73</span></a> <span class="k">return</span> <span class="n">dl</span>
</span><span id="L-74"><a href="#L-74"><span class="linenos"> 74</span></a>
</span><span id="L-75"><a href="#L-75"><span class="linenos"> 75</span></a> <span class="k">def</span> <span class="nf">write_Obs_to_dict</span><span class="p">(</span><span class="n">o</span><span class="p">):</span>
</span><span id="L-75"><a href="#L-75"><span class="linenos"> 75</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">write_Obs_to_dict</span><span class="p">(</span><span class="n">o</span><span class="p">):</span>
</span><span id="L-76"><a href="#L-76"><span class="linenos"> 76</span></a> <span class="n">d</span> <span class="o">=</span> <span class="p">{}</span>
</span><span id="L-77"><a href="#L-77"><span class="linenos"> 77</span></a> <span class="n">d</span><span class="p">[</span><span class="s1">&#39;type&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;Obs&#39;</span>
</span><span id="L-78"><a href="#L-78"><span class="linenos"> 78</span></a> <span class="n">d</span><span class="p">[</span><span class="s1">&#39;layout&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;1&#39;</span>
@ -182,7 +182,7 @@
</span><span id="L-89"><a href="#L-89"><span class="linenos"> 89</span></a> <span class="n">d</span><span class="p">[</span><span class="s1">&#39;cdata&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">cdata</span>
</span><span id="L-90"><a href="#L-90"><span class="linenos"> 90</span></a> <span class="k">return</span> <span class="n">d</span>
</span><span id="L-91"><a href="#L-91"><span class="linenos"> 91</span></a>
</span><span id="L-92"><a href="#L-92"><span class="linenos"> 92</span></a> <span class="k">def</span> <span class="nf">write_List_to_dict</span><span class="p">(</span><span class="n">ol</span><span class="p">):</span>
</span><span id="L-92"><a href="#L-92"><span class="linenos"> 92</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">write_List_to_dict</span><span class="p">(</span><span class="n">ol</span><span class="p">):</span>
</span><span id="L-93"><a href="#L-93"><span class="linenos"> 93</span></a> <span class="n">_assert_equal_properties</span><span class="p">(</span><span class="n">ol</span><span class="p">)</span>
</span><span id="L-94"><a href="#L-94"><span class="linenos"> 94</span></a> <span class="n">d</span> <span class="o">=</span> <span class="p">{}</span>
</span><span id="L-95"><a href="#L-95"><span class="linenos"> 95</span></a> <span class="n">d</span><span class="p">[</span><span class="s1">&#39;type&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;List&#39;</span>
@ -201,7 +201,7 @@
</span><span id="L-108"><a href="#L-108"><span class="linenos">108</span></a> <span class="n">d</span><span class="p">[</span><span class="s1">&#39;cdata&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">cdata</span>
</span><span id="L-109"><a href="#L-109"><span class="linenos">109</span></a> <span class="k">return</span> <span class="n">d</span>
</span><span id="L-110"><a href="#L-110"><span class="linenos">110</span></a>
</span><span id="L-111"><a href="#L-111"><span class="linenos">111</span></a> <span class="k">def</span> <span class="nf">write_Array_to_dict</span><span class="p">(</span><span class="n">oa</span><span class="p">):</span>
</span><span id="L-111"><a href="#L-111"><span class="linenos">111</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">write_Array_to_dict</span><span class="p">(</span><span class="n">oa</span><span class="p">):</span>
</span><span id="L-112"><a href="#L-112"><span class="linenos">112</span></a> <span class="n">ol</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">ravel</span><span class="p">(</span><span class="n">oa</span><span class="p">)</span>
</span><span id="L-113"><a href="#L-113"><span class="linenos">113</span></a> <span class="n">_assert_equal_properties</span><span class="p">(</span><span class="n">ol</span><span class="p">)</span>
</span><span id="L-114"><a href="#L-114"><span class="linenos">114</span></a> <span class="n">d</span> <span class="o">=</span> <span class="p">{}</span>
@ -221,7 +221,7 @@
</span><span id="L-128"><a href="#L-128"><span class="linenos">128</span></a> <span class="n">d</span><span class="p">[</span><span class="s1">&#39;cdata&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">cdata</span>
</span><span id="L-129"><a href="#L-129"><span class="linenos">129</span></a> <span class="k">return</span> <span class="n">d</span>
</span><span id="L-130"><a href="#L-130"><span class="linenos">130</span></a>
</span><span id="L-131"><a href="#L-131"><span class="linenos">131</span></a> <span class="k">def</span> <span class="nf">_nan_Obs_like</span><span class="p">(</span><span class="n">obs</span><span class="p">):</span>
</span><span id="L-131"><a href="#L-131"><span class="linenos">131</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">_nan_Obs_like</span><span class="p">(</span><span class="n">obs</span><span class="p">):</span>
</span><span id="L-132"><a href="#L-132"><span class="linenos">132</span></a> <span class="n">samples</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-133"><a href="#L-133"><span class="linenos">133</span></a> <span class="n">names</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-134"><a href="#L-134"><span class="linenos">134</span></a> <span class="n">idl</span> <span class="o">=</span> <span class="p">[]</span>
@ -236,7 +236,7 @@
</span><span id="L-143"><a href="#L-143"><span class="linenos">143</span></a> <span class="n">my_obs</span><span class="o">.</span><span class="n">reweighted</span> <span class="o">=</span> <span class="n">obs</span><span class="o">.</span><span class="n">reweighted</span>
</span><span id="L-144"><a href="#L-144"><span class="linenos">144</span></a> <span class="k">return</span> <span class="n">my_obs</span>
</span><span id="L-145"><a href="#L-145"><span class="linenos">145</span></a>
</span><span id="L-146"><a href="#L-146"><span class="linenos">146</span></a> <span class="k">def</span> <span class="nf">write_Corr_to_dict</span><span class="p">(</span><span class="n">my_corr</span><span class="p">):</span>
</span><span id="L-146"><a href="#L-146"><span class="linenos">146</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">write_Corr_to_dict</span><span class="p">(</span><span class="n">my_corr</span><span class="p">):</span>
</span><span id="L-147"><a href="#L-147"><span class="linenos">147</span></a> <span class="n">first_not_none</span> <span class="o">=</span> <span class="nb">next</span><span class="p">(</span><span class="n">i</span> <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">j</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">my_corr</span><span class="o">.</span><span class="n">content</span><span class="p">)</span> <span class="k">if</span> <span class="n">np</span><span class="o">.</span><span class="n">all</span><span class="p">(</span><span class="n">j</span><span class="p">))</span>
</span><span id="L-148"><a href="#L-148"><span class="linenos">148</span></a> <span class="n">dummy_array</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">empty</span><span class="p">((</span><span class="n">my_corr</span><span class="o">.</span><span class="n">N</span><span class="p">,</span> <span class="n">my_corr</span><span class="o">.</span><span class="n">N</span><span class="p">),</span> <span class="n">dtype</span><span class="o">=</span><span class="nb">object</span><span class="p">)</span>
</span><span id="L-149"><a href="#L-149"><span class="linenos">149</span></a> <span class="n">dummy_array</span><span class="p">[:]</span> <span class="o">=</span> <span class="n">_nan_Obs_like</span><span class="p">(</span><span class="n">my_corr</span><span class="o">.</span><span class="n">content</span><span class="p">[</span><span class="n">first_not_none</span><span class="p">]</span><span class="o">.</span><span class="n">ravel</span><span class="p">()[</span><span class="mi">0</span><span class="p">])</span>
@ -281,7 +281,7 @@
</span><span id="L-188"><a href="#L-188"><span class="linenos">188</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-189"><a href="#L-189"><span class="linenos">189</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">&quot;Unkown datatype.&quot;</span><span class="p">)</span>
</span><span id="L-190"><a href="#L-190"><span class="linenos">190</span></a>
</span><span id="L-191"><a href="#L-191"><span class="linenos">191</span></a> <span class="k">def</span> <span class="nf">_jsonifier</span><span class="p">(</span><span class="n">obj</span><span class="p">):</span>
</span><span id="L-191"><a href="#L-191"><span class="linenos">191</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">_jsonifier</span><span class="p">(</span><span class="n">obj</span><span class="p">):</span>
</span><span id="L-192"><a href="#L-192"><span class="linenos">192</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span> <span class="nb">dict</span><span class="p">):</span>
</span><span id="L-193"><a href="#L-193"><span class="linenos">193</span></a> <span class="n">result</span> <span class="o">=</span> <span class="p">{}</span>
</span><span id="L-194"><a href="#L-194"><span class="linenos">194</span></a> <span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="n">obj</span><span class="p">:</span>
@ -309,7 +309,7 @@
</span><span id="L-216"><a href="#L-216"><span class="linenos">216</span></a> <span class="k">return</span> <span class="n">json</span><span class="o">.</span><span class="n">dumps</span><span class="p">(</span><span class="n">d</span><span class="p">,</span> <span class="n">indent</span><span class="o">=</span><span class="n">indent</span><span class="p">,</span> <span class="n">ensure_ascii</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="n">_jsonifier</span><span class="p">,</span> <span class="n">write_mode</span><span class="o">=</span><span class="n">json</span><span class="o">.</span><span class="n">WM_COMPACT</span><span class="p">)</span>
</span><span id="L-217"><a href="#L-217"><span class="linenos">217</span></a>
</span><span id="L-218"><a href="#L-218"><span class="linenos">218</span></a>
</span><span id="L-219"><a href="#L-219"><span class="linenos">219</span></a><span class="k">def</span> <span class="nf">dump_to_json</span><span class="p">(</span><span class="n">ol</span><span class="p">,</span> <span class="n">fname</span><span class="p">,</span> <span class="n">description</span><span class="o">=</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="n">indent</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">gz</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
</span><span id="L-219"><a href="#L-219"><span class="linenos">219</span></a><span class="k">def</span><span class="w"> </span><span class="nf">dump_to_json</span><span class="p">(</span><span class="n">ol</span><span class="p">,</span> <span class="n">fname</span><span class="p">,</span> <span class="n">description</span><span class="o">=</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="n">indent</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">gz</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
</span><span id="L-220"><a href="#L-220"><span class="linenos">220</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Export a list of Obs or structures containing Obs to a .json(.gz) file.</span>
</span><span id="L-221"><a href="#L-221"><span class="linenos">221</span></a><span class="sd"> Dict keys that are not JSON-serializable such as floats are converted to strings.</span>
</span><span id="L-222"><a href="#L-222"><span class="linenos">222</span></a>
@ -351,7 +351,7 @@
</span><span id="L-258"><a href="#L-258"><span class="linenos">258</span></a> <span class="n">fp</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
</span><span id="L-259"><a href="#L-259"><span class="linenos">259</span></a>
</span><span id="L-260"><a href="#L-260"><span class="linenos">260</span></a>
</span><span id="L-261"><a href="#L-261"><span class="linenos">261</span></a><span class="k">def</span> <span class="nf">_parse_json_dict</span><span class="p">(</span><span class="n">json_dict</span><span class="p">,</span> <span class="n">verbose</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">full_output</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
</span><span id="L-261"><a href="#L-261"><span class="linenos">261</span></a><span class="k">def</span><span class="w"> </span><span class="nf">_parse_json_dict</span><span class="p">(</span><span class="n">json_dict</span><span class="p">,</span> <span class="n">verbose</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">full_output</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
</span><span id="L-262"><a href="#L-262"><span class="linenos">262</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Reconstruct a list of Obs or structures containing Obs from a dict that</span>
</span><span id="L-263"><a href="#L-263"><span class="linenos">263</span></a><span class="sd"> was built out of a json string.</span>
</span><span id="L-264"><a href="#L-264"><span class="linenos">264</span></a>
@ -380,7 +380,7 @@
</span><span id="L-287"><a href="#L-287"><span class="linenos">287</span></a><span class="sd"> if full_output=True</span>
</span><span id="L-288"><a href="#L-288"><span class="linenos">288</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-289"><a href="#L-289"><span class="linenos">289</span></a>
</span><span id="L-290"><a href="#L-290"><span class="linenos">290</span></a> <span class="k">def</span> <span class="nf">_gen_obsd_from_datad</span><span class="p">(</span><span class="n">d</span><span class="p">):</span>
</span><span id="L-290"><a href="#L-290"><span class="linenos">290</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">_gen_obsd_from_datad</span><span class="p">(</span><span class="n">d</span><span class="p">):</span>
</span><span id="L-291"><a href="#L-291"><span class="linenos">291</span></a> <span class="n">retd</span> <span class="o">=</span> <span class="p">{}</span>
</span><span id="L-292"><a href="#L-292"><span class="linenos">292</span></a> <span class="k">if</span> <span class="n">d</span><span class="p">:</span>
</span><span id="L-293"><a href="#L-293"><span class="linenos">293</span></a> <span class="n">retd</span><span class="p">[</span><span class="s1">&#39;names&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
@ -399,7 +399,7 @@
</span><span id="L-306"><a href="#L-306"><span class="linenos">306</span></a> <span class="n">retd</span><span class="p">[</span><span class="s1">&#39;deltas&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([</span><span class="n">di</span><span class="p">[</span><span class="mi">1</span><span class="p">:]</span> <span class="k">for</span> <span class="n">di</span> <span class="ow">in</span> <span class="n">rep</span><span class="p">[</span><span class="s1">&#39;deltas&#39;</span><span class="p">]]))</span>
</span><span id="L-307"><a href="#L-307"><span class="linenos">307</span></a> <span class="k">return</span> <span class="n">retd</span>
</span><span id="L-308"><a href="#L-308"><span class="linenos">308</span></a>
</span><span id="L-309"><a href="#L-309"><span class="linenos">309</span></a> <span class="k">def</span> <span class="nf">_gen_covobsd_from_cdatad</span><span class="p">(</span><span class="n">d</span><span class="p">):</span>
</span><span id="L-309"><a href="#L-309"><span class="linenos">309</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">_gen_covobsd_from_cdatad</span><span class="p">(</span><span class="n">d</span><span class="p">):</span>
</span><span id="L-310"><a href="#L-310"><span class="linenos">310</span></a> <span class="n">retd</span> <span class="o">=</span> <span class="p">{}</span>
</span><span id="L-311"><a href="#L-311"><span class="linenos">311</span></a> <span class="k">for</span> <span class="n">ens</span> <span class="ow">in</span> <span class="n">d</span><span class="p">:</span>
</span><span id="L-312"><a href="#L-312"><span class="linenos">312</span></a> <span class="n">retl</span> <span class="o">=</span> <span class="p">[]</span>
@ -414,7 +414,7 @@
</span><span id="L-321"><a href="#L-321"><span class="linenos">321</span></a> <span class="n">retd</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="n">retl</span>
</span><span id="L-322"><a href="#L-322"><span class="linenos">322</span></a> <span class="k">return</span> <span class="n">retd</span>
</span><span id="L-323"><a href="#L-323"><span class="linenos">323</span></a>
</span><span id="L-324"><a href="#L-324"><span class="linenos">324</span></a> <span class="k">def</span> <span class="nf">get_Obs_from_dict</span><span class="p">(</span><span class="n">o</span><span class="p">):</span>
</span><span id="L-324"><a href="#L-324"><span class="linenos">324</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">get_Obs_from_dict</span><span class="p">(</span><span class="n">o</span><span class="p">):</span>
</span><span id="L-325"><a href="#L-325"><span class="linenos">325</span></a> <span class="n">layouts</span> <span class="o">=</span> <span class="n">o</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;layout&#39;</span><span class="p">,</span> <span class="s1">&#39;1&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
</span><span id="L-326"><a href="#L-326"><span class="linenos">326</span></a> <span class="k">if</span> <span class="n">layouts</span> <span class="o">!=</span> <span class="s1">&#39;1&#39;</span><span class="p">:</span>
</span><span id="L-327"><a href="#L-327"><span class="linenos">327</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">&quot;layout is </span><span class="si">%s</span><span class="s2"> has to be 1 for type Obs.&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">layouts</span><span class="p">),</span> <span class="ne">RuntimeWarning</span><span class="p">)</span>
@ -438,7 +438,7 @@
</span><span id="L-345"><a href="#L-345"><span class="linenos">345</span></a> <span class="n">ret</span><span class="o">.</span><span class="n">tag</span> <span class="o">=</span> <span class="n">o</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;tag&#39;</span><span class="p">,</span> <span class="p">[</span><span class="kc">None</span><span class="p">])[</span><span class="mi">0</span><span class="p">]</span>
</span><span id="L-346"><a href="#L-346"><span class="linenos">346</span></a> <span class="k">return</span> <span class="n">ret</span>
</span><span id="L-347"><a href="#L-347"><span class="linenos">347</span></a>
</span><span id="L-348"><a href="#L-348"><span class="linenos">348</span></a> <span class="k">def</span> <span class="nf">get_List_from_dict</span><span class="p">(</span><span class="n">o</span><span class="p">):</span>
</span><span id="L-348"><a href="#L-348"><span class="linenos">348</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">get_List_from_dict</span><span class="p">(</span><span class="n">o</span><span class="p">):</span>
</span><span id="L-349"><a href="#L-349"><span class="linenos">349</span></a> <span class="n">layouts</span> <span class="o">=</span> <span class="n">o</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;layout&#39;</span><span class="p">,</span> <span class="s1">&#39;1&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
</span><span id="L-350"><a href="#L-350"><span class="linenos">350</span></a> <span class="n">layout</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">layouts</span><span class="p">)</span>
</span><span id="L-351"><a href="#L-351"><span class="linenos">351</span></a> <span class="n">values</span> <span class="o">=</span> <span class="n">o</span><span class="p">[</span><span class="s1">&#39;value&#39;</span><span class="p">]</span>
@ -464,7 +464,7 @@
</span><span id="L-371"><a href="#L-371"><span class="linenos">371</span></a> <span class="n">ret</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">tag</span> <span class="o">=</span> <span class="n">taglist</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
</span><span id="L-372"><a href="#L-372"><span class="linenos">372</span></a> <span class="k">return</span> <span class="n">ret</span>
</span><span id="L-373"><a href="#L-373"><span class="linenos">373</span></a>
</span><span id="L-374"><a href="#L-374"><span class="linenos">374</span></a> <span class="k">def</span> <span class="nf">get_Array_from_dict</span><span class="p">(</span><span class="n">o</span><span class="p">):</span>
</span><span id="L-374"><a href="#L-374"><span class="linenos">374</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">get_Array_from_dict</span><span class="p">(</span><span class="n">o</span><span class="p">):</span>
</span><span id="L-375"><a href="#L-375"><span class="linenos">375</span></a> <span class="n">layouts</span> <span class="o">=</span> <span class="n">o</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;layout&#39;</span><span class="p">,</span> <span class="s1">&#39;1&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
</span><span id="L-376"><a href="#L-376"><span class="linenos">376</span></a> <span class="n">layout</span> <span class="o">=</span> <span class="p">[</span><span class="nb">int</span><span class="p">(</span><span class="n">ls</span><span class="o">.</span><span class="n">strip</span><span class="p">())</span> <span class="k">for</span> <span class="n">ls</span> <span class="ow">in</span> <span class="n">layouts</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;,&#39;</span><span class="p">)</span> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">ls</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">]</span>
</span><span id="L-377"><a href="#L-377"><span class="linenos">377</span></a> <span class="n">N</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">prod</span><span class="p">(</span><span class="n">layout</span><span class="p">)</span>
@ -489,7 +489,7 @@
</span><span id="L-396"><a href="#L-396"><span class="linenos">396</span></a> <span class="n">ret</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">tag</span> <span class="o">=</span> <span class="n">taglist</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
</span><span id="L-397"><a href="#L-397"><span class="linenos">397</span></a> <span class="k">return</span> <span class="n">np</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="n">ret</span><span class="p">,</span> <span class="n">layout</span><span class="p">)</span>
</span><span id="L-398"><a href="#L-398"><span class="linenos">398</span></a>
</span><span id="L-399"><a href="#L-399"><span class="linenos">399</span></a> <span class="k">def</span> <span class="nf">get_Corr_from_dict</span><span class="p">(</span><span class="n">o</span><span class="p">):</span>
</span><span id="L-399"><a href="#L-399"><span class="linenos">399</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">get_Corr_from_dict</span><span class="p">(</span><span class="n">o</span><span class="p">):</span>
</span><span id="L-400"><a href="#L-400"><span class="linenos">400</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">o</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;tag&#39;</span><span class="p">),</span> <span class="nb">list</span><span class="p">):</span> <span class="c1"># supports the old way</span>
</span><span id="L-401"><a href="#L-401"><span class="linenos">401</span></a> <span class="n">taglist</span> <span class="o">=</span> <span class="n">o</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;tag&#39;</span><span class="p">)</span> <span class="c1"># This had to be modified to get the taglist from the dictionary</span>
</span><span id="L-402"><a href="#L-402"><span class="linenos">402</span></a> <span class="n">temp_prange</span> <span class="o">=</span> <span class="kc">None</span>
@ -563,7 +563,7 @@
</span><span id="L-470"><a href="#L-470"><span class="linenos">470</span></a> <span class="k">return</span> <span class="n">ol</span>
</span><span id="L-471"><a href="#L-471"><span class="linenos">471</span></a>
</span><span id="L-472"><a href="#L-472"><span class="linenos">472</span></a>
</span><span id="L-473"><a href="#L-473"><span class="linenos">473</span></a><span class="k">def</span> <span class="nf">import_json_string</span><span class="p">(</span><span class="n">json_string</span><span class="p">,</span> <span class="n">verbose</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">full_output</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
</span><span id="L-473"><a href="#L-473"><span class="linenos">473</span></a><span class="k">def</span><span class="w"> </span><span class="nf">import_json_string</span><span class="p">(</span><span class="n">json_string</span><span class="p">,</span> <span class="n">verbose</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">full_output</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
</span><span id="L-474"><a href="#L-474"><span class="linenos">474</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Reconstruct a list of Obs or structures containing Obs from a json string.</span>
</span><span id="L-475"><a href="#L-475"><span class="linenos">475</span></a>
</span><span id="L-476"><a href="#L-476"><span class="linenos">476</span></a><span class="sd"> The following structures are supported: Obs, list, numpy.ndarray, Corr</span>
@ -593,7 +593,7 @@
</span><span id="L-500"><a href="#L-500"><span class="linenos">500</span></a> <span class="k">return</span> <span class="n">_parse_json_dict</span><span class="p">(</span><span class="n">json</span><span class="o">.</span><span class="n">loads</span><span class="p">(</span><span class="n">json_string</span><span class="p">),</span> <span class="n">verbose</span><span class="p">,</span> <span class="n">full_output</span><span class="p">)</span>
</span><span id="L-501"><a href="#L-501"><span class="linenos">501</span></a>
</span><span id="L-502"><a href="#L-502"><span class="linenos">502</span></a>
</span><span id="L-503"><a href="#L-503"><span class="linenos">503</span></a><span class="k">def</span> <span class="nf">load_json</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="n">verbose</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">gz</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">full_output</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
</span><span id="L-503"><a href="#L-503"><span class="linenos">503</span></a><span class="k">def</span><span class="w"> </span><span class="nf">load_json</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="n">verbose</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">gz</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">full_output</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
</span><span id="L-504"><a href="#L-504"><span class="linenos">504</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Import a list of Obs or structures containing Obs from a .json(.gz) file.</span>
</span><span id="L-505"><a href="#L-505"><span class="linenos">505</span></a>
</span><span id="L-506"><a href="#L-506"><span class="linenos">506</span></a><span class="sd"> The following structures are supported: Obs, list, numpy.ndarray, Corr</span>
@ -638,7 +638,7 @@
</span><span id="L-545"><a href="#L-545"><span class="linenos">545</span></a> <span class="k">return</span> <span class="n">_parse_json_dict</span><span class="p">(</span><span class="n">d</span><span class="p">,</span> <span class="n">verbose</span><span class="p">,</span> <span class="n">full_output</span><span class="p">)</span>
</span><span id="L-546"><a href="#L-546"><span class="linenos">546</span></a>
</span><span id="L-547"><a href="#L-547"><span class="linenos">547</span></a>
</span><span id="L-548"><a href="#L-548"><span class="linenos">548</span></a><span class="k">def</span> <span class="nf">_ol_from_dict</span><span class="p">(</span><span class="n">ind</span><span class="p">,</span> <span class="n">reps</span><span class="o">=</span><span class="s1">&#39;DICTOBS&#39;</span><span class="p">):</span>
</span><span id="L-548"><a href="#L-548"><span class="linenos">548</span></a><span class="k">def</span><span class="w"> </span><span class="nf">_ol_from_dict</span><span class="p">(</span><span class="n">ind</span><span class="p">,</span> <span class="n">reps</span><span class="o">=</span><span class="s1">&#39;DICTOBS&#39;</span><span class="p">):</span>
</span><span id="L-549"><a href="#L-549"><span class="linenos">549</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Convert a dictionary of Obs objects to a list and a dictionary that contains</span>
</span><span id="L-550"><a href="#L-550"><span class="linenos">550</span></a><span class="sd"> placeholders instead of the Obs objects.</span>
</span><span id="L-551"><a href="#L-551"><span class="linenos">551</span></a>
@ -659,7 +659,7 @@
</span><span id="L-566"><a href="#L-566"><span class="linenos">566</span></a> <span class="n">ol</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-567"><a href="#L-567"><span class="linenos">567</span></a> <span class="n">counter</span> <span class="o">=</span> <span class="mi">0</span>
</span><span id="L-568"><a href="#L-568"><span class="linenos">568</span></a>
</span><span id="L-569"><a href="#L-569"><span class="linenos">569</span></a> <span class="k">def</span> <span class="nf">dict_replace_obs</span><span class="p">(</span><span class="n">d</span><span class="p">):</span>
</span><span id="L-569"><a href="#L-569"><span class="linenos">569</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">dict_replace_obs</span><span class="p">(</span><span class="n">d</span><span class="p">):</span>
</span><span id="L-570"><a href="#L-570"><span class="linenos">570</span></a> <span class="k">nonlocal</span> <span class="n">ol</span>
</span><span id="L-571"><a href="#L-571"><span class="linenos">571</span></a> <span class="k">nonlocal</span> <span class="n">counter</span>
</span><span id="L-572"><a href="#L-572"><span class="linenos">572</span></a> <span class="n">x</span> <span class="o">=</span> <span class="p">{}</span>
@ -680,7 +680,7 @@
</span><span id="L-587"><a href="#L-587"><span class="linenos">587</span></a> <span class="n">x</span><span class="p">[</span><span class="n">k</span><span class="p">]</span> <span class="o">=</span> <span class="n">v</span>
</span><span id="L-588"><a href="#L-588"><span class="linenos">588</span></a> <span class="k">return</span> <span class="n">x</span>
</span><span id="L-589"><a href="#L-589"><span class="linenos">589</span></a>
</span><span id="L-590"><a href="#L-590"><span class="linenos">590</span></a> <span class="k">def</span> <span class="nf">list_replace_obs</span><span class="p">(</span><span class="n">li</span><span class="p">):</span>
</span><span id="L-590"><a href="#L-590"><span class="linenos">590</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">list_replace_obs</span><span class="p">(</span><span class="n">li</span><span class="p">):</span>
</span><span id="L-591"><a href="#L-591"><span class="linenos">591</span></a> <span class="k">nonlocal</span> <span class="n">ol</span>
</span><span id="L-592"><a href="#L-592"><span class="linenos">592</span></a> <span class="k">nonlocal</span> <span class="n">counter</span>
</span><span id="L-593"><a href="#L-593"><span class="linenos">593</span></a> <span class="n">x</span> <span class="o">=</span> <span class="p">[]</span>
@ -701,7 +701,7 @@
</span><span id="L-608"><a href="#L-608"><span class="linenos">608</span></a> <span class="n">x</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">e</span><span class="p">)</span>
</span><span id="L-609"><a href="#L-609"><span class="linenos">609</span></a> <span class="k">return</span> <span class="n">x</span>
</span><span id="L-610"><a href="#L-610"><span class="linenos">610</span></a>
</span><span id="L-611"><a href="#L-611"><span class="linenos">611</span></a> <span class="k">def</span> <span class="nf">obslist_replace_obs</span><span class="p">(</span><span class="n">li</span><span class="p">):</span>
</span><span id="L-611"><a href="#L-611"><span class="linenos">611</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">obslist_replace_obs</span><span class="p">(</span><span class="n">li</span><span class="p">):</span>
</span><span id="L-612"><a href="#L-612"><span class="linenos">612</span></a> <span class="k">nonlocal</span> <span class="n">ol</span>
</span><span id="L-613"><a href="#L-613"><span class="linenos">613</span></a> <span class="k">nonlocal</span> <span class="n">counter</span>
</span><span id="L-614"><a href="#L-614"><span class="linenos">614</span></a> <span class="n">il</span> <span class="o">=</span> <span class="p">[]</span>
@ -718,7 +718,7 @@
</span><span id="L-625"><a href="#L-625"><span class="linenos">625</span></a> <span class="k">return</span> <span class="n">ol</span><span class="p">,</span> <span class="n">nd</span>
</span><span id="L-626"><a href="#L-626"><span class="linenos">626</span></a>
</span><span id="L-627"><a href="#L-627"><span class="linenos">627</span></a>
</span><span id="L-628"><a href="#L-628"><span class="linenos">628</span></a><span class="k">def</span> <span class="nf">dump_dict_to_json</span><span class="p">(</span><span class="n">od</span><span class="p">,</span> <span class="n">fname</span><span class="p">,</span> <span class="n">description</span><span class="o">=</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="n">indent</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">reps</span><span class="o">=</span><span class="s1">&#39;DICTOBS&#39;</span><span class="p">,</span> <span class="n">gz</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
</span><span id="L-628"><a href="#L-628"><span class="linenos">628</span></a><span class="k">def</span><span class="w"> </span><span class="nf">dump_dict_to_json</span><span class="p">(</span><span class="n">od</span><span class="p">,</span> <span class="n">fname</span><span class="p">,</span> <span class="n">description</span><span class="o">=</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="n">indent</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">reps</span><span class="o">=</span><span class="s1">&#39;DICTOBS&#39;</span><span class="p">,</span> <span class="n">gz</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
</span><span id="L-629"><a href="#L-629"><span class="linenos">629</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Export a dict of Obs or structures containing Obs to a .json(.gz) file</span>
</span><span id="L-630"><a href="#L-630"><span class="linenos">630</span></a>
</span><span id="L-631"><a href="#L-631"><span class="linenos">631</span></a><span class="sd"> Parameters</span>
@ -758,7 +758,7 @@
</span><span id="L-665"><a href="#L-665"><span class="linenos">665</span></a> <span class="n">dump_to_json</span><span class="p">(</span><span class="n">ol</span><span class="p">,</span> <span class="n">fname</span><span class="p">,</span> <span class="n">description</span><span class="o">=</span><span class="n">desc_dict</span><span class="p">,</span> <span class="n">indent</span><span class="o">=</span><span class="n">indent</span><span class="p">,</span> <span class="n">gz</span><span class="o">=</span><span class="n">gz</span><span class="p">)</span>
</span><span id="L-666"><a href="#L-666"><span class="linenos">666</span></a>
</span><span id="L-667"><a href="#L-667"><span class="linenos">667</span></a>
</span><span id="L-668"><a href="#L-668"><span class="linenos">668</span></a><span class="k">def</span> <span class="nf">_od_from_list_and_dict</span><span class="p">(</span><span class="n">ol</span><span class="p">,</span> <span class="n">ind</span><span class="p">,</span> <span class="n">reps</span><span class="o">=</span><span class="s1">&#39;DICTOBS&#39;</span><span class="p">):</span>
</span><span id="L-668"><a href="#L-668"><span class="linenos">668</span></a><span class="k">def</span><span class="w"> </span><span class="nf">_od_from_list_and_dict</span><span class="p">(</span><span class="n">ol</span><span class="p">,</span> <span class="n">ind</span><span class="p">,</span> <span class="n">reps</span><span class="o">=</span><span class="s1">&#39;DICTOBS&#39;</span><span class="p">):</span>
</span><span id="L-669"><a href="#L-669"><span class="linenos">669</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Parse a list of Obs or structures containing Obs and an accompanying</span>
</span><span id="L-670"><a href="#L-670"><span class="linenos">670</span></a><span class="sd"> dict, where the structures have been replaced by placeholders to a</span>
</span><span id="L-671"><a href="#L-671"><span class="linenos">671</span></a><span class="sd"> dict that contains the structures.</span>
@ -781,7 +781,7 @@
</span><span id="L-688"><a href="#L-688"><span class="linenos">688</span></a>
</span><span id="L-689"><a href="#L-689"><span class="linenos">689</span></a> <span class="n">counter</span> <span class="o">=</span> <span class="mi">0</span>
</span><span id="L-690"><a href="#L-690"><span class="linenos">690</span></a>
</span><span id="L-691"><a href="#L-691"><span class="linenos">691</span></a> <span class="k">def</span> <span class="nf">dict_replace_string</span><span class="p">(</span><span class="n">d</span><span class="p">):</span>
</span><span id="L-691"><a href="#L-691"><span class="linenos">691</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">dict_replace_string</span><span class="p">(</span><span class="n">d</span><span class="p">):</span>
</span><span id="L-692"><a href="#L-692"><span class="linenos">692</span></a> <span class="k">nonlocal</span> <span class="n">counter</span>
</span><span id="L-693"><a href="#L-693"><span class="linenos">693</span></a> <span class="k">nonlocal</span> <span class="n">ol</span>
</span><span id="L-694"><a href="#L-694"><span class="linenos">694</span></a> <span class="n">x</span> <span class="o">=</span> <span class="p">{}</span>
@ -797,7 +797,7 @@
</span><span id="L-704"><a href="#L-704"><span class="linenos">704</span></a> <span class="n">x</span><span class="p">[</span><span class="n">k</span><span class="p">]</span> <span class="o">=</span> <span class="n">v</span>
</span><span id="L-705"><a href="#L-705"><span class="linenos">705</span></a> <span class="k">return</span> <span class="n">x</span>
</span><span id="L-706"><a href="#L-706"><span class="linenos">706</span></a>
</span><span id="L-707"><a href="#L-707"><span class="linenos">707</span></a> <span class="k">def</span> <span class="nf">list_replace_string</span><span class="p">(</span><span class="n">li</span><span class="p">):</span>
</span><span id="L-707"><a href="#L-707"><span class="linenos">707</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">list_replace_string</span><span class="p">(</span><span class="n">li</span><span class="p">):</span>
</span><span id="L-708"><a href="#L-708"><span class="linenos">708</span></a> <span class="k">nonlocal</span> <span class="n">counter</span>
</span><span id="L-709"><a href="#L-709"><span class="linenos">709</span></a> <span class="k">nonlocal</span> <span class="n">ol</span>
</span><span id="L-710"><a href="#L-710"><span class="linenos">710</span></a> <span class="n">x</span> <span class="o">=</span> <span class="p">[]</span>
@ -821,7 +821,7 @@
</span><span id="L-728"><a href="#L-728"><span class="linenos">728</span></a> <span class="k">return</span> <span class="n">nd</span>
</span><span id="L-729"><a href="#L-729"><span class="linenos">729</span></a>
</span><span id="L-730"><a href="#L-730"><span class="linenos">730</span></a>
</span><span id="L-731"><a href="#L-731"><span class="linenos">731</span></a><span class="k">def</span> <span class="nf">load_json_dict</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="n">verbose</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">gz</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">full_output</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">reps</span><span class="o">=</span><span class="s1">&#39;DICTOBS&#39;</span><span class="p">):</span>
</span><span id="L-731"><a href="#L-731"><span class="linenos">731</span></a><span class="k">def</span><span class="w"> </span><span class="nf">load_json_dict</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="n">verbose</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">gz</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">full_output</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">reps</span><span class="o">=</span><span class="s1">&#39;DICTOBS&#39;</span><span class="p">):</span>
</span><span id="L-732"><a href="#L-732"><span class="linenos">732</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Import a dict of Obs or structures containing Obs from a .json(.gz) file.</span>
</span><span id="L-733"><a href="#L-733"><span class="linenos">733</span></a>
</span><span id="L-734"><a href="#L-734"><span class="linenos">734</span></a><span class="sd"> The following structures are supported: Obs, list, numpy.ndarray, Corr</span>
@ -875,7 +875,7 @@
</div>
<a class="headerlink" href="#create_json_string"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="create_json_string-18"><a href="#create_json_string-18"><span class="linenos"> 18</span></a><span class="k">def</span> <span class="nf">create_json_string</span><span class="p">(</span><span class="n">ol</span><span class="p">,</span> <span class="n">description</span><span class="o">=</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="n">indent</span><span class="o">=</span><span class="mi">1</span><span class="p">):</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="create_json_string-18"><a href="#create_json_string-18"><span class="linenos"> 18</span></a><span class="k">def</span><span class="w"> </span><span class="nf">create_json_string</span><span class="p">(</span><span class="n">ol</span><span class="p">,</span> <span class="n">description</span><span class="o">=</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="n">indent</span><span class="o">=</span><span class="mi">1</span><span class="p">):</span>
</span><span id="create_json_string-19"><a href="#create_json_string-19"><span class="linenos"> 19</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Generate the string for the export of a list of Obs or structures containing Obs</span>
</span><span id="create_json_string-20"><a href="#create_json_string-20"><span class="linenos"> 20</span></a><span class="sd"> to a .json(.gz) file</span>
</span><span id="create_json_string-21"><a href="#create_json_string-21"><span class="linenos"> 21</span></a>
@ -897,7 +897,7 @@
</span><span id="create_json_string-37"><a href="#create_json_string-37"><span class="linenos"> 37</span></a><span class="sd"> String for export to .json(.gz) file</span>
</span><span id="create_json_string-38"><a href="#create_json_string-38"><span class="linenos"> 38</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="create_json_string-39"><a href="#create_json_string-39"><span class="linenos"> 39</span></a>
</span><span id="create_json_string-40"><a href="#create_json_string-40"><span class="linenos"> 40</span></a> <span class="k">def</span> <span class="nf">_gen_data_d_from_list</span><span class="p">(</span><span class="n">ol</span><span class="p">):</span>
</span><span id="create_json_string-40"><a href="#create_json_string-40"><span class="linenos"> 40</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">_gen_data_d_from_list</span><span class="p">(</span><span class="n">ol</span><span class="p">):</span>
</span><span id="create_json_string-41"><a href="#create_json_string-41"><span class="linenos"> 41</span></a> <span class="n">dl</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="create_json_string-42"><a href="#create_json_string-42"><span class="linenos"> 42</span></a> <span class="n">No</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">ol</span><span class="p">)</span>
</span><span id="create_json_string-43"><a href="#create_json_string-43"><span class="linenos"> 43</span></a> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">ol</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">mc_names</span><span class="p">:</span>
@ -917,7 +917,7 @@
</span><span id="create_json_string-57"><a href="#create_json_string-57"><span class="linenos"> 57</span></a> <span class="n">dl</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">ed</span><span class="p">)</span>
</span><span id="create_json_string-58"><a href="#create_json_string-58"><span class="linenos"> 58</span></a> <span class="k">return</span> <span class="n">dl</span>
</span><span id="create_json_string-59"><a href="#create_json_string-59"><span class="linenos"> 59</span></a>
</span><span id="create_json_string-60"><a href="#create_json_string-60"><span class="linenos"> 60</span></a> <span class="k">def</span> <span class="nf">_gen_cdata_d_from_list</span><span class="p">(</span><span class="n">ol</span><span class="p">):</span>
</span><span id="create_json_string-60"><a href="#create_json_string-60"><span class="linenos"> 60</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">_gen_cdata_d_from_list</span><span class="p">(</span><span class="n">ol</span><span class="p">):</span>
</span><span id="create_json_string-61"><a href="#create_json_string-61"><span class="linenos"> 61</span></a> <span class="n">dl</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="create_json_string-62"><a href="#create_json_string-62"><span class="linenos"> 62</span></a> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">ol</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">cov_names</span><span class="p">:</span>
</span><span id="create_json_string-63"><a href="#create_json_string-63"><span class="linenos"> 63</span></a> <span class="n">ed</span> <span class="o">=</span> <span class="p">{}</span>
@ -933,7 +933,7 @@
</span><span id="create_json_string-73"><a href="#create_json_string-73"><span class="linenos"> 73</span></a> <span class="n">dl</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">ed</span><span class="p">)</span>
</span><span id="create_json_string-74"><a href="#create_json_string-74"><span class="linenos"> 74</span></a> <span class="k">return</span> <span class="n">dl</span>
</span><span id="create_json_string-75"><a href="#create_json_string-75"><span class="linenos"> 75</span></a>
</span><span id="create_json_string-76"><a href="#create_json_string-76"><span class="linenos"> 76</span></a> <span class="k">def</span> <span class="nf">write_Obs_to_dict</span><span class="p">(</span><span class="n">o</span><span class="p">):</span>
</span><span id="create_json_string-76"><a href="#create_json_string-76"><span class="linenos"> 76</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">write_Obs_to_dict</span><span class="p">(</span><span class="n">o</span><span class="p">):</span>
</span><span id="create_json_string-77"><a href="#create_json_string-77"><span class="linenos"> 77</span></a> <span class="n">d</span> <span class="o">=</span> <span class="p">{}</span>
</span><span id="create_json_string-78"><a href="#create_json_string-78"><span class="linenos"> 78</span></a> <span class="n">d</span><span class="p">[</span><span class="s1">&#39;type&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;Obs&#39;</span>
</span><span id="create_json_string-79"><a href="#create_json_string-79"><span class="linenos"> 79</span></a> <span class="n">d</span><span class="p">[</span><span class="s1">&#39;layout&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;1&#39;</span>
@ -950,7 +950,7 @@
</span><span id="create_json_string-90"><a href="#create_json_string-90"><span class="linenos"> 90</span></a> <span class="n">d</span><span class="p">[</span><span class="s1">&#39;cdata&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">cdata</span>
</span><span id="create_json_string-91"><a href="#create_json_string-91"><span class="linenos"> 91</span></a> <span class="k">return</span> <span class="n">d</span>
</span><span id="create_json_string-92"><a href="#create_json_string-92"><span class="linenos"> 92</span></a>
</span><span id="create_json_string-93"><a href="#create_json_string-93"><span class="linenos"> 93</span></a> <span class="k">def</span> <span class="nf">write_List_to_dict</span><span class="p">(</span><span class="n">ol</span><span class="p">):</span>
</span><span id="create_json_string-93"><a href="#create_json_string-93"><span class="linenos"> 93</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">write_List_to_dict</span><span class="p">(</span><span class="n">ol</span><span class="p">):</span>
</span><span id="create_json_string-94"><a href="#create_json_string-94"><span class="linenos"> 94</span></a> <span class="n">_assert_equal_properties</span><span class="p">(</span><span class="n">ol</span><span class="p">)</span>
</span><span id="create_json_string-95"><a href="#create_json_string-95"><span class="linenos"> 95</span></a> <span class="n">d</span> <span class="o">=</span> <span class="p">{}</span>
</span><span id="create_json_string-96"><a href="#create_json_string-96"><span class="linenos"> 96</span></a> <span class="n">d</span><span class="p">[</span><span class="s1">&#39;type&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;List&#39;</span>
@ -969,7 +969,7 @@
</span><span id="create_json_string-109"><a href="#create_json_string-109"><span class="linenos">109</span></a> <span class="n">d</span><span class="p">[</span><span class="s1">&#39;cdata&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">cdata</span>
</span><span id="create_json_string-110"><a href="#create_json_string-110"><span class="linenos">110</span></a> <span class="k">return</span> <span class="n">d</span>
</span><span id="create_json_string-111"><a href="#create_json_string-111"><span class="linenos">111</span></a>
</span><span id="create_json_string-112"><a href="#create_json_string-112"><span class="linenos">112</span></a> <span class="k">def</span> <span class="nf">write_Array_to_dict</span><span class="p">(</span><span class="n">oa</span><span class="p">):</span>
</span><span id="create_json_string-112"><a href="#create_json_string-112"><span class="linenos">112</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">write_Array_to_dict</span><span class="p">(</span><span class="n">oa</span><span class="p">):</span>
</span><span id="create_json_string-113"><a href="#create_json_string-113"><span class="linenos">113</span></a> <span class="n">ol</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">ravel</span><span class="p">(</span><span class="n">oa</span><span class="p">)</span>
</span><span id="create_json_string-114"><a href="#create_json_string-114"><span class="linenos">114</span></a> <span class="n">_assert_equal_properties</span><span class="p">(</span><span class="n">ol</span><span class="p">)</span>
</span><span id="create_json_string-115"><a href="#create_json_string-115"><span class="linenos">115</span></a> <span class="n">d</span> <span class="o">=</span> <span class="p">{}</span>
@ -989,7 +989,7 @@
</span><span id="create_json_string-129"><a href="#create_json_string-129"><span class="linenos">129</span></a> <span class="n">d</span><span class="p">[</span><span class="s1">&#39;cdata&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">cdata</span>
</span><span id="create_json_string-130"><a href="#create_json_string-130"><span class="linenos">130</span></a> <span class="k">return</span> <span class="n">d</span>
</span><span id="create_json_string-131"><a href="#create_json_string-131"><span class="linenos">131</span></a>
</span><span id="create_json_string-132"><a href="#create_json_string-132"><span class="linenos">132</span></a> <span class="k">def</span> <span class="nf">_nan_Obs_like</span><span class="p">(</span><span class="n">obs</span><span class="p">):</span>
</span><span id="create_json_string-132"><a href="#create_json_string-132"><span class="linenos">132</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">_nan_Obs_like</span><span class="p">(</span><span class="n">obs</span><span class="p">):</span>
</span><span id="create_json_string-133"><a href="#create_json_string-133"><span class="linenos">133</span></a> <span class="n">samples</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="create_json_string-134"><a href="#create_json_string-134"><span class="linenos">134</span></a> <span class="n">names</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="create_json_string-135"><a href="#create_json_string-135"><span class="linenos">135</span></a> <span class="n">idl</span> <span class="o">=</span> <span class="p">[]</span>
@ -1004,7 +1004,7 @@
</span><span id="create_json_string-144"><a href="#create_json_string-144"><span class="linenos">144</span></a> <span class="n">my_obs</span><span class="o">.</span><span class="n">reweighted</span> <span class="o">=</span> <span class="n">obs</span><span class="o">.</span><span class="n">reweighted</span>
</span><span id="create_json_string-145"><a href="#create_json_string-145"><span class="linenos">145</span></a> <span class="k">return</span> <span class="n">my_obs</span>
</span><span id="create_json_string-146"><a href="#create_json_string-146"><span class="linenos">146</span></a>
</span><span id="create_json_string-147"><a href="#create_json_string-147"><span class="linenos">147</span></a> <span class="k">def</span> <span class="nf">write_Corr_to_dict</span><span class="p">(</span><span class="n">my_corr</span><span class="p">):</span>
</span><span id="create_json_string-147"><a href="#create_json_string-147"><span class="linenos">147</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">write_Corr_to_dict</span><span class="p">(</span><span class="n">my_corr</span><span class="p">):</span>
</span><span id="create_json_string-148"><a href="#create_json_string-148"><span class="linenos">148</span></a> <span class="n">first_not_none</span> <span class="o">=</span> <span class="nb">next</span><span class="p">(</span><span class="n">i</span> <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">j</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">my_corr</span><span class="o">.</span><span class="n">content</span><span class="p">)</span> <span class="k">if</span> <span class="n">np</span><span class="o">.</span><span class="n">all</span><span class="p">(</span><span class="n">j</span><span class="p">))</span>
</span><span id="create_json_string-149"><a href="#create_json_string-149"><span class="linenos">149</span></a> <span class="n">dummy_array</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">empty</span><span class="p">((</span><span class="n">my_corr</span><span class="o">.</span><span class="n">N</span><span class="p">,</span> <span class="n">my_corr</span><span class="o">.</span><span class="n">N</span><span class="p">),</span> <span class="n">dtype</span><span class="o">=</span><span class="nb">object</span><span class="p">)</span>
</span><span id="create_json_string-150"><a href="#create_json_string-150"><span class="linenos">150</span></a> <span class="n">dummy_array</span><span class="p">[:]</span> <span class="o">=</span> <span class="n">_nan_Obs_like</span><span class="p">(</span><span class="n">my_corr</span><span class="o">.</span><span class="n">content</span><span class="p">[</span><span class="n">first_not_none</span><span class="p">]</span><span class="o">.</span><span class="n">ravel</span><span class="p">()[</span><span class="mi">0</span><span class="p">])</span>
@ -1049,7 +1049,7 @@
</span><span id="create_json_string-189"><a href="#create_json_string-189"><span class="linenos">189</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="create_json_string-190"><a href="#create_json_string-190"><span class="linenos">190</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">&quot;Unkown datatype.&quot;</span><span class="p">)</span>
</span><span id="create_json_string-191"><a href="#create_json_string-191"><span class="linenos">191</span></a>
</span><span id="create_json_string-192"><a href="#create_json_string-192"><span class="linenos">192</span></a> <span class="k">def</span> <span class="nf">_jsonifier</span><span class="p">(</span><span class="n">obj</span><span class="p">):</span>
</span><span id="create_json_string-192"><a href="#create_json_string-192"><span class="linenos">192</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">_jsonifier</span><span class="p">(</span><span class="n">obj</span><span class="p">):</span>
</span><span id="create_json_string-193"><a href="#create_json_string-193"><span class="linenos">193</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span> <span class="nb">dict</span><span class="p">):</span>
</span><span id="create_json_string-194"><a href="#create_json_string-194"><span class="linenos">194</span></a> <span class="n">result</span> <span class="o">=</span> <span class="p">{}</span>
</span><span id="create_json_string-195"><a href="#create_json_string-195"><span class="linenos">195</span></a> <span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="n">obj</span><span class="p">:</span>
@ -1116,7 +1116,7 @@ String for export to <a href="">pyerrors.input.json</a>(.gz) file</li>
</div>
<a class="headerlink" href="#dump_to_json"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="dump_to_json-220"><a href="#dump_to_json-220"><span class="linenos">220</span></a><span class="k">def</span> <span class="nf">dump_to_json</span><span class="p">(</span><span class="n">ol</span><span class="p">,</span> <span class="n">fname</span><span class="p">,</span> <span class="n">description</span><span class="o">=</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="n">indent</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">gz</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="dump_to_json-220"><a href="#dump_to_json-220"><span class="linenos">220</span></a><span class="k">def</span><span class="w"> </span><span class="nf">dump_to_json</span><span class="p">(</span><span class="n">ol</span><span class="p">,</span> <span class="n">fname</span><span class="p">,</span> <span class="n">description</span><span class="o">=</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="n">indent</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">gz</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
</span><span id="dump_to_json-221"><a href="#dump_to_json-221"><span class="linenos">221</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Export a list of Obs or structures containing Obs to a .json(.gz) file.</span>
</span><span id="dump_to_json-222"><a href="#dump_to_json-222"><span class="linenos">222</span></a><span class="sd"> Dict keys that are not JSON-serializable such as floats are converted to strings.</span>
</span><span id="dump_to_json-223"><a href="#dump_to_json-223"><span class="linenos">223</span></a>
@ -1200,7 +1200,7 @@ If True, the output is a gzipped json. If False, the output is a json file.</li>
</div>
<a class="headerlink" href="#import_json_string"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="import_json_string-474"><a href="#import_json_string-474"><span class="linenos">474</span></a><span class="k">def</span> <span class="nf">import_json_string</span><span class="p">(</span><span class="n">json_string</span><span class="p">,</span> <span class="n">verbose</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">full_output</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="import_json_string-474"><a href="#import_json_string-474"><span class="linenos">474</span></a><span class="k">def</span><span class="w"> </span><span class="nf">import_json_string</span><span class="p">(</span><span class="n">json_string</span><span class="p">,</span> <span class="n">verbose</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">full_output</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
</span><span id="import_json_string-475"><a href="#import_json_string-475"><span class="linenos">475</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Reconstruct a list of Obs or structures containing Obs from a json string.</span>
</span><span id="import_json_string-476"><a href="#import_json_string-476"><span class="linenos">476</span></a>
</span><span id="import_json_string-477"><a href="#import_json_string-477"><span class="linenos">477</span></a><span class="sd"> The following structures are supported: Obs, list, numpy.ndarray, Corr</span>
@ -1275,7 +1275,7 @@ if full_output=True</li>
</div>
<a class="headerlink" href="#load_json"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="load_json-504"><a href="#load_json-504"><span class="linenos">504</span></a><span class="k">def</span> <span class="nf">load_json</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="n">verbose</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">gz</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">full_output</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="load_json-504"><a href="#load_json-504"><span class="linenos">504</span></a><span class="k">def</span><span class="w"> </span><span class="nf">load_json</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="n">verbose</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">gz</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">full_output</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
</span><span id="load_json-505"><a href="#load_json-505"><span class="linenos">505</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Import a list of Obs or structures containing Obs from a .json(.gz) file.</span>
</span><span id="load_json-506"><a href="#load_json-506"><span class="linenos">506</span></a>
</span><span id="load_json-507"><a href="#load_json-507"><span class="linenos">507</span></a><span class="sd"> The following structures are supported: Obs, list, numpy.ndarray, Corr</span>
@ -1367,7 +1367,7 @@ if full_output=True</li>
</div>
<a class="headerlink" href="#dump_dict_to_json"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="dump_dict_to_json-629"><a href="#dump_dict_to_json-629"><span class="linenos">629</span></a><span class="k">def</span> <span class="nf">dump_dict_to_json</span><span class="p">(</span><span class="n">od</span><span class="p">,</span> <span class="n">fname</span><span class="p">,</span> <span class="n">description</span><span class="o">=</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="n">indent</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">reps</span><span class="o">=</span><span class="s1">&#39;DICTOBS&#39;</span><span class="p">,</span> <span class="n">gz</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="dump_dict_to_json-629"><a href="#dump_dict_to_json-629"><span class="linenos">629</span></a><span class="k">def</span><span class="w"> </span><span class="nf">dump_dict_to_json</span><span class="p">(</span><span class="n">od</span><span class="p">,</span> <span class="n">fname</span><span class="p">,</span> <span class="n">description</span><span class="o">=</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="n">indent</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">reps</span><span class="o">=</span><span class="s1">&#39;DICTOBS&#39;</span><span class="p">,</span> <span class="n">gz</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
</span><span id="dump_dict_to_json-630"><a href="#dump_dict_to_json-630"><span class="linenos">630</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Export a dict of Obs or structures containing Obs to a .json(.gz) file</span>
</span><span id="dump_dict_to_json-631"><a href="#dump_dict_to_json-631"><span class="linenos">631</span></a>
</span><span id="dump_dict_to_json-632"><a href="#dump_dict_to_json-632"><span class="linenos">632</span></a><span class="sd"> Parameters</span>
@ -1450,7 +1450,7 @@ If True, the output is a gzipped json. If False, the output is a json file.</li>
</div>
<a class="headerlink" href="#load_json_dict"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="load_json_dict-732"><a href="#load_json_dict-732"><span class="linenos">732</span></a><span class="k">def</span> <span class="nf">load_json_dict</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="n">verbose</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">gz</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">full_output</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">reps</span><span class="o">=</span><span class="s1">&#39;DICTOBS&#39;</span><span class="p">):</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="load_json_dict-732"><a href="#load_json_dict-732"><span class="linenos">732</span></a><span class="k">def</span><span class="w"> </span><span class="nf">load_json_dict</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="n">verbose</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">gz</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">full_output</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">reps</span><span class="o">=</span><span class="s1">&#39;DICTOBS&#39;</span><span class="p">):</span>
</span><span id="load_json_dict-733"><a href="#load_json_dict-733"><span class="linenos">733</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Import a dict of Obs or structures containing Obs from a .json(.gz) file.</span>
</span><span id="load_json_dict-734"><a href="#load_json_dict-734"><span class="linenos">734</span></a>
</span><span id="load_json_dict-735"><a href="#load_json_dict-735"><span class="linenos">735</span></a><span class="sd"> The following structures are supported: Obs, list, numpy.ndarray, Corr</span>

View file

@ -79,19 +79,19 @@
<label class="view-source-button" for="mod-misc-view-source"><span>View Source</span></label>
<div class="pdoc-code codehilite"><pre><span></span><span id="L-1"><a href="#L-1"><span class="linenos"> 1</span></a><span class="kn">import</span> <span class="nn">os</span>
</span><span id="L-2"><a href="#L-2"><span class="linenos"> 2</span></a><span class="kn">import</span> <span class="nn">fnmatch</span>
</span><span id="L-3"><a href="#L-3"><span class="linenos"> 3</span></a><span class="kn">import</span> <span class="nn">re</span>
</span><span id="L-4"><a href="#L-4"><span class="linenos"> 4</span></a><span class="kn">import</span> <span class="nn">struct</span>
</span><span id="L-5"><a href="#L-5"><span class="linenos"> 5</span></a><span class="kn">import</span> <span class="nn">warnings</span>
</span><span id="L-6"><a href="#L-6"><span class="linenos"> 6</span></a><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span> <span class="c1"># Thinly-wrapped numpy</span>
</span><span id="L-7"><a href="#L-7"><span class="linenos"> 7</span></a><span class="kn">import</span> <span class="nn">matplotlib.pyplot</span> <span class="k">as</span> <span class="nn">plt</span>
</span><span id="L-8"><a href="#L-8"><span class="linenos"> 8</span></a><span class="kn">from</span> <span class="nn">matplotlib</span> <span class="kn">import</span> <span class="n">gridspec</span>
</span><span id="L-9"><a href="#L-9"><span class="linenos"> 9</span></a><span class="kn">from</span> <span class="nn">..obs</span> <span class="kn">import</span> <span class="n">Obs</span>
</span><span id="L-10"><a href="#L-10"><span class="linenos"> 10</span></a><span class="kn">from</span> <span class="nn">..fits</span> <span class="kn">import</span> <span class="n">fit_lin</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="L-1"><a href="#L-1"><span class="linenos"> 1</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">os</span>
</span><span id="L-2"><a href="#L-2"><span class="linenos"> 2</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">fnmatch</span>
</span><span id="L-3"><a href="#L-3"><span class="linenos"> 3</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">re</span>
</span><span id="L-4"><a href="#L-4"><span class="linenos"> 4</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">struct</span>
</span><span id="L-5"><a href="#L-5"><span class="linenos"> 5</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">warnings</span>
</span><span id="L-6"><a href="#L-6"><span class="linenos"> 6</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">np</span> <span class="c1"># Thinly-wrapped numpy</span>
</span><span id="L-7"><a href="#L-7"><span class="linenos"> 7</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">matplotlib.pyplot</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">plt</span>
</span><span id="L-8"><a href="#L-8"><span class="linenos"> 8</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">matplotlib</span><span class="w"> </span><span class="kn">import</span> <span class="n">gridspec</span>
</span><span id="L-9"><a href="#L-9"><span class="linenos"> 9</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">..obs</span><span class="w"> </span><span class="kn">import</span> <span class="n">Obs</span>
</span><span id="L-10"><a href="#L-10"><span class="linenos"> 10</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">..fits</span><span class="w"> </span><span class="kn">import</span> <span class="n">fit_lin</span>
</span><span id="L-11"><a href="#L-11"><span class="linenos"> 11</span></a>
</span><span id="L-12"><a href="#L-12"><span class="linenos"> 12</span></a>
</span><span id="L-13"><a href="#L-13"><span class="linenos"> 13</span></a><span class="k">def</span> <span class="nf">fit_t0</span><span class="p">(</span><span class="n">t2E_dict</span><span class="p">,</span> <span class="n">fit_range</span><span class="p">,</span> <span class="n">plot_fit</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">observable</span><span class="o">=</span><span class="s1">&#39;t0&#39;</span><span class="p">):</span>
</span><span id="L-13"><a href="#L-13"><span class="linenos"> 13</span></a><span class="k">def</span><span class="w"> </span><span class="nf">fit_t0</span><span class="p">(</span><span class="n">t2E_dict</span><span class="p">,</span> <span class="n">fit_range</span><span class="p">,</span> <span class="n">plot_fit</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">observable</span><span class="o">=</span><span class="s1">&#39;t0&#39;</span><span class="p">):</span>
</span><span id="L-14"><a href="#L-14"><span class="linenos"> 14</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Compute the root of (flow-based) data based on a dictionary that contains</span>
</span><span id="L-15"><a href="#L-15"><span class="linenos"> 15</span></a><span class="sd"> the necessary information in key-value pairs a la (flow time: observable at flow time).</span>
</span><span id="L-16"><a href="#L-16"><span class="linenos"> 16</span></a>
@ -178,7 +178,7 @@
</span><span id="L-97"><a href="#L-97"><span class="linenos"> 97</span></a> <span class="k">return</span> <span class="o">-</span><span class="n">fit_result</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">/</span> <span class="n">fit_result</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span>
</span><span id="L-98"><a href="#L-98"><span class="linenos"> 98</span></a>
</span><span id="L-99"><a href="#L-99"><span class="linenos"> 99</span></a>
</span><span id="L-100"><a href="#L-100"><span class="linenos">100</span></a><span class="k">def</span> <span class="nf">read_pbp</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="L-100"><a href="#L-100"><span class="linenos">100</span></a><span class="k">def</span><span class="w"> </span><span class="nf">read_pbp</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="L-101"><a href="#L-101"><span class="linenos">101</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Read pbp format from given folder structure.</span>
</span><span id="L-102"><a href="#L-102"><span class="linenos">102</span></a>
</span><span id="L-103"><a href="#L-103"><span class="linenos">103</span></a><span class="sd"> Parameters</span>
@ -312,7 +312,7 @@
</div>
<a class="headerlink" href="#fit_t0"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="fit_t0-14"><a href="#fit_t0-14"><span class="linenos">14</span></a><span class="k">def</span> <span class="nf">fit_t0</span><span class="p">(</span><span class="n">t2E_dict</span><span class="p">,</span> <span class="n">fit_range</span><span class="p">,</span> <span class="n">plot_fit</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">observable</span><span class="o">=</span><span class="s1">&#39;t0&#39;</span><span class="p">):</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="fit_t0-14"><a href="#fit_t0-14"><span class="linenos">14</span></a><span class="k">def</span><span class="w"> </span><span class="nf">fit_t0</span><span class="p">(</span><span class="n">t2E_dict</span><span class="p">,</span> <span class="n">fit_range</span><span class="p">,</span> <span class="n">plot_fit</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">observable</span><span class="o">=</span><span class="s1">&#39;t0&#39;</span><span class="p">):</span>
</span><span id="fit_t0-15"><a href="#fit_t0-15"><span class="linenos">15</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Compute the root of (flow-based) data based on a dictionary that contains</span>
</span><span id="fit_t0-16"><a href="#fit_t0-16"><span class="linenos">16</span></a><span class="sd"> the necessary information in key-value pairs a la (flow time: observable at flow time).</span>
</span><span id="fit_t0-17"><a href="#fit_t0-17"><span class="linenos">17</span></a>
@ -447,7 +447,7 @@ The root of the data series.</li>
</div>
<a class="headerlink" href="#read_pbp"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="read_pbp-101"><a href="#read_pbp-101"><span class="linenos">101</span></a><span class="k">def</span> <span class="nf">read_pbp</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="read_pbp-101"><a href="#read_pbp-101"><span class="linenos">101</span></a><span class="k">def</span><span class="w"> </span><span class="nf">read_pbp</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="read_pbp-102"><a href="#read_pbp-102"><span class="linenos">102</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Read pbp format from given folder structure.</span>
</span><span id="read_pbp-103"><a href="#read_pbp-103"><span class="linenos">103</span></a>
</span><span id="read_pbp-104"><a href="#read_pbp-104"><span class="linenos">104</span></a><span class="sd"> Parameters</span>

View file

@ -97,19 +97,19 @@
<label class="view-source-button" for="mod-openQCD-view-source"><span>View Source</span></label>
<div class="pdoc-code codehilite"><pre><span></span><span id="L-1"><a href="#L-1"><span class="linenos"> 1</span></a><span class="kn">import</span> <span class="nn">os</span>
</span><span id="L-2"><a href="#L-2"><span class="linenos"> 2</span></a><span class="kn">import</span> <span class="nn">fnmatch</span>
</span><span id="L-3"><a href="#L-3"><span class="linenos"> 3</span></a><span class="kn">import</span> <span class="nn">struct</span>
</span><span id="L-4"><a href="#L-4"><span class="linenos"> 4</span></a><span class="kn">import</span> <span class="nn">warnings</span>
</span><span id="L-5"><a href="#L-5"><span class="linenos"> 5</span></a><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span> <span class="c1"># Thinly-wrapped numpy</span>
</span><span id="L-6"><a href="#L-6"><span class="linenos"> 6</span></a><span class="kn">from</span> <span class="nn">..obs</span> <span class="kn">import</span> <span class="n">Obs</span>
</span><span id="L-7"><a href="#L-7"><span class="linenos"> 7</span></a><span class="kn">from</span> <span class="nn">..obs</span> <span class="kn">import</span> <span class="n">CObs</span>
</span><span id="L-8"><a href="#L-8"><span class="linenos"> 8</span></a><span class="kn">from</span> <span class="nn">..correlators</span> <span class="kn">import</span> <span class="n">Corr</span>
</span><span id="L-9"><a href="#L-9"><span class="linenos"> 9</span></a><span class="kn">from</span> <span class="nn">.misc</span> <span class="kn">import</span> <span class="n">fit_t0</span>
</span><span id="L-10"><a href="#L-10"><span class="linenos"> 10</span></a><span class="kn">from</span> <span class="nn">.utils</span> <span class="kn">import</span> <span class="n">sort_names</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="L-1"><a href="#L-1"><span class="linenos"> 1</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">os</span>
</span><span id="L-2"><a href="#L-2"><span class="linenos"> 2</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">fnmatch</span>
</span><span id="L-3"><a href="#L-3"><span class="linenos"> 3</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">struct</span>
</span><span id="L-4"><a href="#L-4"><span class="linenos"> 4</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">warnings</span>
</span><span id="L-5"><a href="#L-5"><span class="linenos"> 5</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">np</span> <span class="c1"># Thinly-wrapped numpy</span>
</span><span id="L-6"><a href="#L-6"><span class="linenos"> 6</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">..obs</span><span class="w"> </span><span class="kn">import</span> <span class="n">Obs</span>
</span><span id="L-7"><a href="#L-7"><span class="linenos"> 7</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">..obs</span><span class="w"> </span><span class="kn">import</span> <span class="n">CObs</span>
</span><span id="L-8"><a href="#L-8"><span class="linenos"> 8</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">..correlators</span><span class="w"> </span><span class="kn">import</span> <span class="n">Corr</span>
</span><span id="L-9"><a href="#L-9"><span class="linenos"> 9</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">.misc</span><span class="w"> </span><span class="kn">import</span> <span class="n">fit_t0</span>
</span><span id="L-10"><a href="#L-10"><span class="linenos"> 10</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">.utils</span><span class="w"> </span><span class="kn">import</span> <span class="n">sort_names</span>
</span><span id="L-11"><a href="#L-11"><span class="linenos"> 11</span></a>
</span><span id="L-12"><a href="#L-12"><span class="linenos"> 12</span></a>
</span><span id="L-13"><a href="#L-13"><span class="linenos"> 13</span></a><span class="k">def</span> <span class="nf">read_rwms</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">version</span><span class="o">=</span><span class="s1">&#39;2.0&#39;</span><span class="p">,</span> <span class="n">names</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><span id="L-13"><a href="#L-13"><span class="linenos"> 13</span></a><span class="k">def</span><span class="w"> </span><span class="nf">read_rwms</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">version</span><span class="o">=</span><span class="s1">&#39;2.0&#39;</span><span class="p">,</span> <span class="n">names</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><span id="L-14"><a href="#L-14"><span class="linenos"> 14</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Read rwms format from given folder structure. Returns a list of length nrw</span>
</span><span id="L-15"><a href="#L-15"><span class="linenos"> 15</span></a>
</span><span id="L-16"><a href="#L-16"><span class="linenos"> 16</span></a><span class="sd"> Parameters</span>
@ -299,7 +299,7 @@
</span><span id="L-200"><a href="#L-200"><span class="linenos"> 200</span></a> <span class="n">r_start_index</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">configlist</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">index</span><span class="p">(</span><span class="n">r_start</span><span class="p">[</span><span class="n">rep</span><span class="p">]))</span>
</span><span id="L-201"><a href="#L-201"><span class="linenos"> 201</span></a> <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>
</span><span id="L-202"><a href="#L-202"><span class="linenos"> 202</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;Config </span><span class="si">%d</span><span class="s1"> not in file with range [</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><span id="L-203"><a href="#L-203"><span class="linenos"> 203</span></a> <span class="n">r_start</span><span class="p">[</span><span class="n">rep</span><span class="p">],</span> <span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="mi">0</span><span class="p">],</span> <span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="o">-</span><span class="mi">1</span><span class="p">]))</span> <span class="kn">from</span> <span class="kc">None</span>
</span><span id="L-203"><a href="#L-203"><span class="linenos"> 203</span></a> <span class="n">r_start</span><span class="p">[</span><span class="n">rep</span><span class="p">],</span> <span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="mi">0</span><span class="p">],</span> <span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="o">-</span><span class="mi">1</span><span class="p">]))</span> <span class="kn">from</span><span class="w"> </span><span class="kc">None</span>
</span><span id="L-204"><a href="#L-204"><span class="linenos"> 204</span></a>
</span><span id="L-205"><a href="#L-205"><span class="linenos"> 205</span></a> <span class="k">if</span> <span class="n">r_stop</span><span class="p">[</span><span class="n">rep</span><span class="p">]</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
</span><span id="L-206"><a href="#L-206"><span class="linenos"> 206</span></a> <span class="n">r_stop_index</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span>
@ -308,7 +308,7 @@
</span><span id="L-209"><a href="#L-209"><span class="linenos"> 209</span></a> <span class="n">r_stop_index</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">configlist</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">index</span><span class="p">(</span><span class="n">r_stop</span><span class="p">[</span><span class="n">rep</span><span class="p">]))</span>
</span><span id="L-210"><a href="#L-210"><span class="linenos"> 210</span></a> <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>
</span><span id="L-211"><a href="#L-211"><span class="linenos"> 211</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;Config </span><span class="si">%d</span><span class="s1"> not in file with range [</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><span id="L-212"><a href="#L-212"><span class="linenos"> 212</span></a> <span class="n">r_stop</span><span class="p">[</span><span class="n">rep</span><span class="p">],</span> <span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="mi">0</span><span class="p">],</span> <span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="o">-</span><span class="mi">1</span><span class="p">]))</span> <span class="kn">from</span> <span class="kc">None</span>
</span><span id="L-212"><a href="#L-212"><span class="linenos"> 212</span></a> <span class="n">r_stop</span><span class="p">[</span><span class="n">rep</span><span class="p">],</span> <span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="mi">0</span><span class="p">],</span> <span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="o">-</span><span class="mi">1</span><span class="p">]))</span> <span class="kn">from</span><span class="w"> </span><span class="kc">None</span>
</span><span id="L-213"><a href="#L-213"><span class="linenos"> 213</span></a>
</span><span id="L-214"><a href="#L-214"><span class="linenos"> 214</span></a> <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">nrw</span><span class="p">):</span>
</span><span id="L-215"><a href="#L-215"><span class="linenos"> 215</span></a> <span class="n">deltas</span><span class="p">[</span><span class="n">k</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">tmp_array</span><span class="p">[</span><span class="n">k</span><span class="p">][</span><span class="n">r_start_index</span><span class="p">[</span><span class="n">rep</span><span class="p">]:</span><span class="n">r_stop_index</span><span class="p">[</span><span class="n">rep</span><span class="p">]</span> <span class="o">+</span> <span class="mi">1</span><span class="p">][::</span><span class="n">r_step</span><span class="p">])</span>
@ -328,7 +328,7 @@
</span><span id="L-229"><a href="#L-229"><span class="linenos"> 229</span></a> <span class="k">return</span> <span class="n">result</span>
</span><span id="L-230"><a href="#L-230"><span class="linenos"> 230</span></a>
</span><span id="L-231"><a href="#L-231"><span class="linenos"> 231</span></a>
</span><span id="L-232"><a href="#L-232"><span class="linenos"> 232</span></a><span class="k">def</span> <span class="nf">_extract_flowed_energy_density</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">dtr_read</span><span class="p">,</span> <span class="n">xmin</span><span class="p">,</span> <span class="n">spatial_extent</span><span class="p">,</span> <span class="n">postfix</span><span class="o">=</span><span class="s1">&#39;ms&#39;</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="L-232"><a href="#L-232"><span class="linenos"> 232</span></a><span class="k">def</span><span class="w"> </span><span class="nf">_extract_flowed_energy_density</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">dtr_read</span><span class="p">,</span> <span class="n">xmin</span><span class="p">,</span> <span class="n">spatial_extent</span><span class="p">,</span> <span class="n">postfix</span><span class="o">=</span><span class="s1">&#39;ms&#39;</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="L-233"><a href="#L-233"><span class="linenos"> 233</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Extract a dictionary with the flowed Yang-Mills action density from given .ms.dat files.</span>
</span><span id="L-234"><a href="#L-234"><span class="linenos"> 234</span></a><span class="sd"> Returns a dictionary with Obs as values and flow times as keys.</span>
</span><span id="L-235"><a href="#L-235"><span class="linenos"> 235</span></a>
@ -489,7 +489,7 @@
</span><span id="L-390"><a href="#L-390"><span class="linenos"> 390</span></a> <span class="n">r_start_index</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">configlist</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">index</span><span class="p">(</span><span class="n">r_start</span><span class="p">[</span><span class="n">rep</span><span class="p">]))</span>
</span><span id="L-391"><a href="#L-391"><span class="linenos"> 391</span></a> <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>
</span><span id="L-392"><a href="#L-392"><span class="linenos"> 392</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;Config </span><span class="si">%d</span><span class="s1"> not in file with range [</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><span id="L-393"><a href="#L-393"><span class="linenos"> 393</span></a> <span class="n">r_start</span><span class="p">[</span><span class="n">rep</span><span class="p">],</span> <span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="mi">0</span><span class="p">],</span> <span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="o">-</span><span class="mi">1</span><span class="p">]))</span> <span class="kn">from</span> <span class="kc">None</span>
</span><span id="L-393"><a href="#L-393"><span class="linenos"> 393</span></a> <span class="n">r_start</span><span class="p">[</span><span class="n">rep</span><span class="p">],</span> <span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="mi">0</span><span class="p">],</span> <span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="o">-</span><span class="mi">1</span><span class="p">]))</span> <span class="kn">from</span><span class="w"> </span><span class="kc">None</span>
</span><span id="L-394"><a href="#L-394"><span class="linenos"> 394</span></a>
</span><span id="L-395"><a href="#L-395"><span class="linenos"> 395</span></a> <span class="k">if</span> <span class="n">r_stop</span><span class="p">[</span><span class="n">rep</span><span class="p">]</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
</span><span id="L-396"><a href="#L-396"><span class="linenos"> 396</span></a> <span class="n">r_stop_index</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span>
@ -498,7 +498,7 @@
</span><span id="L-399"><a href="#L-399"><span class="linenos"> 399</span></a> <span class="n">r_stop_index</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">configlist</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">index</span><span class="p">(</span><span class="n">r_stop</span><span class="p">[</span><span class="n">rep</span><span class="p">]))</span>
</span><span id="L-400"><a href="#L-400"><span class="linenos"> 400</span></a> <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>
</span><span id="L-401"><a href="#L-401"><span class="linenos"> 401</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;Config </span><span class="si">%d</span><span class="s1"> not in file with range [</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><span id="L-402"><a href="#L-402"><span class="linenos"> 402</span></a> <span class="n">r_stop</span><span class="p">[</span><span class="n">rep</span><span class="p">],</span> <span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="mi">0</span><span class="p">],</span> <span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="o">-</span><span class="mi">1</span><span class="p">]))</span> <span class="kn">from</span> <span class="kc">None</span>
</span><span id="L-402"><a href="#L-402"><span class="linenos"> 402</span></a> <span class="n">r_stop</span><span class="p">[</span><span class="n">rep</span><span class="p">],</span> <span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="mi">0</span><span class="p">],</span> <span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="o">-</span><span class="mi">1</span><span class="p">]))</span> <span class="kn">from</span><span class="w"> </span><span class="kc">None</span>
</span><span id="L-403"><a href="#L-403"><span class="linenos"> 403</span></a>
</span><span id="L-404"><a href="#L-404"><span class="linenos"> 404</span></a> <span class="k">if</span> <span class="n">np</span><span class="o">.</span><span class="n">any</span><span class="p">([</span><span class="nb">len</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">unique</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">diff</span><span class="p">(</span><span class="n">cl</span><span class="p">)))</span> <span class="o">!=</span> <span class="mi">1</span> <span class="k">for</span> <span class="n">cl</span> <span class="ow">in</span> <span class="n">configlist</span><span class="p">]):</span>
</span><span id="L-405"><a href="#L-405"><span class="linenos"> 405</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;Irregular spaced data in input file!&#39;</span><span class="p">,</span> <span class="p">[</span><span class="nb">len</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">unique</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">diff</span><span class="p">(</span><span class="n">cl</span><span class="p">)))</span> <span class="k">for</span> <span class="n">cl</span> <span class="ow">in</span> <span class="n">configlist</span><span class="p">])</span>
@ -521,7 +521,7 @@
</span><span id="L-422"><a href="#L-422"><span class="linenos"> 422</span></a> <span class="k">return</span> <span class="n">E_dict</span>
</span><span id="L-423"><a href="#L-423"><span class="linenos"> 423</span></a>
</span><span id="L-424"><a href="#L-424"><span class="linenos"> 424</span></a>
</span><span id="L-425"><a href="#L-425"><span class="linenos"> 425</span></a><span class="k">def</span> <span class="nf">extract_t0</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">dtr_read</span><span class="p">,</span> <span class="n">xmin</span><span class="p">,</span> <span class="n">spatial_extent</span><span class="p">,</span> <span class="n">fit_range</span><span class="o">=</span><span class="mi">5</span><span class="p">,</span> <span class="n">postfix</span><span class="o">=</span><span class="s1">&#39;ms&#39;</span><span class="p">,</span> <span class="n">c</span><span class="o">=</span><span class="mf">0.3</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="L-425"><a href="#L-425"><span class="linenos"> 425</span></a><span class="k">def</span><span class="w"> </span><span class="nf">extract_t0</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">dtr_read</span><span class="p">,</span> <span class="n">xmin</span><span class="p">,</span> <span class="n">spatial_extent</span><span class="p">,</span> <span class="n">fit_range</span><span class="o">=</span><span class="mi">5</span><span class="p">,</span> <span class="n">postfix</span><span class="o">=</span><span class="s1">&#39;ms&#39;</span><span class="p">,</span> <span class="n">c</span><span class="o">=</span><span class="mf">0.3</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="L-426"><a href="#L-426"><span class="linenos"> 426</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Extract t0/a^2 from given .ms.dat files. Returns t0 as Obs.</span>
</span><span id="L-427"><a href="#L-427"><span class="linenos"> 427</span></a>
</span><span id="L-428"><a href="#L-428"><span class="linenos"> 428</span></a><span class="sd"> It is assumed that all boundary effects have</span>
@ -594,7 +594,7 @@
</span><span id="L-495"><a href="#L-495"><span class="linenos"> 495</span></a> <span class="k">return</span> <span class="n">fit_t0</span><span class="p">(</span><span class="n">t2E_dict</span><span class="p">,</span> <span class="n">fit_range</span><span class="p">,</span> <span class="n">plot_fit</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;plot_fit&#39;</span><span class="p">))</span>
</span><span id="L-496"><a href="#L-496"><span class="linenos"> 496</span></a>
</span><span id="L-497"><a href="#L-497"><span class="linenos"> 497</span></a>
</span><span id="L-498"><a href="#L-498"><span class="linenos"> 498</span></a><span class="k">def</span> <span class="nf">extract_w0</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">dtr_read</span><span class="p">,</span> <span class="n">xmin</span><span class="p">,</span> <span class="n">spatial_extent</span><span class="p">,</span> <span class="n">fit_range</span><span class="o">=</span><span class="mi">5</span><span class="p">,</span> <span class="n">postfix</span><span class="o">=</span><span class="s1">&#39;ms&#39;</span><span class="p">,</span> <span class="n">c</span><span class="o">=</span><span class="mf">0.3</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="L-498"><a href="#L-498"><span class="linenos"> 498</span></a><span class="k">def</span><span class="w"> </span><span class="nf">extract_w0</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">dtr_read</span><span class="p">,</span> <span class="n">xmin</span><span class="p">,</span> <span class="n">spatial_extent</span><span class="p">,</span> <span class="n">fit_range</span><span class="o">=</span><span class="mi">5</span><span class="p">,</span> <span class="n">postfix</span><span class="o">=</span><span class="s1">&#39;ms&#39;</span><span class="p">,</span> <span class="n">c</span><span class="o">=</span><span class="mf">0.3</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="L-499"><a href="#L-499"><span class="linenos"> 499</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Extract w0/a from given .ms.dat files. Returns w0 as Obs.</span>
</span><span id="L-500"><a href="#L-500"><span class="linenos"> 500</span></a>
</span><span id="L-501"><a href="#L-501"><span class="linenos"> 501</span></a><span class="sd"> It is assumed that all boundary effects have</span>
@ -676,7 +676,7 @@
</span><span id="L-577"><a href="#L-577"><span class="linenos"> 577</span></a> <span class="k">return</span> <span class="n">np</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="n">fit_t0</span><span class="p">(</span><span class="n">tdtt2E_dict</span><span class="p">,</span> <span class="n">fit_range</span><span class="p">,</span> <span class="n">plot_fit</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;plot_fit&#39;</span><span class="p">),</span> <span class="n">observable</span><span class="o">=</span><span class="s1">&#39;w0&#39;</span><span class="p">))</span>
</span><span id="L-578"><a href="#L-578"><span class="linenos"> 578</span></a>
</span><span id="L-579"><a href="#L-579"><span class="linenos"> 579</span></a>
</span><span id="L-580"><a href="#L-580"><span class="linenos"> 580</span></a><span class="k">def</span> <span class="nf">_parse_array_openQCD2</span><span class="p">(</span><span class="n">d</span><span class="p">,</span> <span class="n">n</span><span class="p">,</span> <span class="n">size</span><span class="p">,</span> <span class="n">wa</span><span class="p">,</span> <span class="n">quadrupel</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
</span><span id="L-580"><a href="#L-580"><span class="linenos"> 580</span></a><span class="k">def</span><span class="w"> </span><span class="nf">_parse_array_openQCD2</span><span class="p">(</span><span class="n">d</span><span class="p">,</span> <span class="n">n</span><span class="p">,</span> <span class="n">size</span><span class="p">,</span> <span class="n">wa</span><span class="p">,</span> <span class="n">quadrupel</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
</span><span id="L-581"><a href="#L-581"><span class="linenos"> 581</span></a> <span class="n">arr</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-582"><a href="#L-582"><span class="linenos"> 582</span></a> <span class="k">if</span> <span class="n">d</span> <span class="o">==</span> <span class="mi">2</span><span class="p">:</span>
</span><span id="L-583"><a href="#L-583"><span class="linenos"> 583</span></a> <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">n</span><span class="p">[</span><span class="mi">0</span><span class="p">]):</span>
@ -695,7 +695,7 @@
</span><span id="L-596"><a href="#L-596"><span class="linenos"> 596</span></a> <span class="k">return</span> <span class="n">arr</span>
</span><span id="L-597"><a href="#L-597"><span class="linenos"> 597</span></a>
</span><span id="L-598"><a href="#L-598"><span class="linenos"> 598</span></a>
</span><span id="L-599"><a href="#L-599"><span class="linenos"> 599</span></a><span class="k">def</span> <span class="nf">_find_files</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">postfix</span><span class="p">,</span> <span class="n">ext</span><span class="p">,</span> <span class="n">known_files</span><span class="o">=</span><span class="p">[]):</span>
</span><span id="L-599"><a href="#L-599"><span class="linenos"> 599</span></a><span class="k">def</span><span class="w"> </span><span class="nf">_find_files</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">postfix</span><span class="p">,</span> <span class="n">ext</span><span class="p">,</span> <span class="n">known_files</span><span class="o">=</span><span class="p">[]):</span>
</span><span id="L-600"><a href="#L-600"><span class="linenos"> 600</span></a> <span class="n">found</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-601"><a href="#L-601"><span class="linenos"> 601</span></a> <span class="n">files</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-602"><a href="#L-602"><span class="linenos"> 602</span></a>
@ -735,7 +735,7 @@
</span><span id="L-636"><a href="#L-636"><span class="linenos"> 636</span></a> <span class="k">return</span> <span class="n">files</span>
</span><span id="L-637"><a href="#L-637"><span class="linenos"> 637</span></a>
</span><span id="L-638"><a href="#L-638"><span class="linenos"> 638</span></a>
</span><span id="L-639"><a href="#L-639"><span class="linenos"> 639</span></a><span class="k">def</span> <span class="nf">_read_array_openQCD2</span><span class="p">(</span><span class="n">fp</span><span class="p">):</span>
</span><span id="L-639"><a href="#L-639"><span class="linenos"> 639</span></a><span class="k">def</span><span class="w"> </span><span class="nf">_read_array_openQCD2</span><span class="p">(</span><span class="n">fp</span><span class="p">):</span>
</span><span id="L-640"><a href="#L-640"><span class="linenos"> 640</span></a> <span class="n">t</span> <span class="o">=</span> <span class="n">fp</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="mi">4</span><span class="p">)</span>
</span><span id="L-641"><a href="#L-641"><span class="linenos"> 641</span></a> <span class="n">d</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="s1">&#39;i&#39;</span><span class="p">,</span> <span class="n">t</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
</span><span id="L-642"><a href="#L-642"><span class="linenos"> 642</span></a> <span class="n">t</span> <span class="o">=</span> <span class="n">fp</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="mi">4</span> <span class="o">*</span> <span class="n">d</span><span class="p">)</span>
@ -761,7 +761,7 @@
</span><span id="L-662"><a href="#L-662"><span class="linenos"> 662</span></a> <span class="k">return</span> <span class="p">{</span><span class="s1">&#39;d&#39;</span><span class="p">:</span> <span class="n">d</span><span class="p">,</span> <span class="s1">&#39;n&#39;</span><span class="p">:</span> <span class="n">n</span><span class="p">,</span> <span class="s1">&#39;size&#39;</span><span class="p">:</span> <span class="n">size</span><span class="p">,</span> <span class="s1">&#39;arr&#39;</span><span class="p">:</span> <span class="n">arr</span><span class="p">}</span>
</span><span id="L-663"><a href="#L-663"><span class="linenos"> 663</span></a>
</span><span id="L-664"><a href="#L-664"><span class="linenos"> 664</span></a>
</span><span id="L-665"><a href="#L-665"><span class="linenos"> 665</span></a><span class="k">def</span> <span class="nf">read_qtop</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">c</span><span class="p">,</span> <span class="n">dtr_cnfg</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">version</span><span class="o">=</span><span class="s2">&quot;openQCD&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="L-665"><a href="#L-665"><span class="linenos"> 665</span></a><span class="k">def</span><span class="w"> </span><span class="nf">read_qtop</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">c</span><span class="p">,</span> <span class="n">dtr_cnfg</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">version</span><span class="o">=</span><span class="s2">&quot;openQCD&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="L-666"><a href="#L-666"><span class="linenos"> 666</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Read the topologial charge based on openQCD gradient flow measurements.</span>
</span><span id="L-667"><a href="#L-667"><span class="linenos"> 667</span></a>
</span><span id="L-668"><a href="#L-668"><span class="linenos"> 668</span></a><span class="sd"> Parameters</span>
@ -814,7 +814,7 @@
</span><span id="L-715"><a href="#L-715"><span class="linenos"> 715</span></a> <span class="k">return</span> <span class="n">_read_flow_obs</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">c</span><span class="p">,</span> <span class="n">dtr_cnfg</span><span class="o">=</span><span class="n">dtr_cnfg</span><span class="p">,</span> <span class="n">version</span><span class="o">=</span><span class="n">version</span><span class="p">,</span> <span class="n">obspos</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
</span><span id="L-716"><a href="#L-716"><span class="linenos"> 716</span></a>
</span><span id="L-717"><a href="#L-717"><span class="linenos"> 717</span></a>
</span><span id="L-718"><a href="#L-718"><span class="linenos"> 718</span></a><span class="k">def</span> <span class="nf">read_gf_coupling</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">c</span><span class="p">,</span> <span class="n">dtr_cnfg</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">Zeuthen_flow</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="L-718"><a href="#L-718"><span class="linenos"> 718</span></a><span class="k">def</span><span class="w"> </span><span class="nf">read_gf_coupling</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">c</span><span class="p">,</span> <span class="n">dtr_cnfg</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">Zeuthen_flow</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="L-719"><a href="#L-719"><span class="linenos"> 719</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Read the gradient flow coupling based on sfqcd gradient flow measurements. See 1607.06423 for details.</span>
</span><span id="L-720"><a href="#L-720"><span class="linenos"> 720</span></a>
</span><span id="L-721"><a href="#L-721"><span class="linenos"> 721</span></a><span class="sd"> Note: The current implementation only works for c=0.3 and T=L. The definition of the coupling in 1607.06423 requires projection to topological charge zero which is not done within this function but has to be performed in a separate step.</span>
@ -886,7 +886,7 @@
</span><span id="L-787"><a href="#L-787"><span class="linenos"> 787</span></a> <span class="k">return</span> <span class="n">t</span> <span class="o">*</span> <span class="n">t</span> <span class="o">*</span> <span class="p">(</span><span class="mi">5</span> <span class="o">/</span> <span class="mi">3</span> <span class="o">*</span> <span class="n">plaq</span> <span class="o">-</span> <span class="mi">1</span> <span class="o">/</span> <span class="mi">12</span> <span class="o">*</span> <span class="n">C2x1</span><span class="p">)</span> <span class="o">/</span> <span class="n">normdict</span><span class="p">[</span><span class="n">L</span><span class="p">]</span>
</span><span id="L-788"><a href="#L-788"><span class="linenos"> 788</span></a>
</span><span id="L-789"><a href="#L-789"><span class="linenos"> 789</span></a>
</span><span id="L-790"><a href="#L-790"><span class="linenos"> 790</span></a><span class="k">def</span> <span class="nf">_read_flow_obs</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">c</span><span class="p">,</span> <span class="n">dtr_cnfg</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">version</span><span class="o">=</span><span class="s2">&quot;openQCD&quot;</span><span class="p">,</span> <span class="n">obspos</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">sum_t</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="L-790"><a href="#L-790"><span class="linenos"> 790</span></a><span class="k">def</span><span class="w"> </span><span class="nf">_read_flow_obs</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">c</span><span class="p">,</span> <span class="n">dtr_cnfg</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">version</span><span class="o">=</span><span class="s2">&quot;openQCD&quot;</span><span class="p">,</span> <span class="n">obspos</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">sum_t</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="L-791"><a href="#L-791"><span class="linenos"> 791</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Read a flow observable based on openQCD gradient flow measurements.</span>
</span><span id="L-792"><a href="#L-792"><span class="linenos"> 792</span></a>
</span><span id="L-793"><a href="#L-793"><span class="linenos"> 793</span></a><span class="sd"> Parameters</span>
@ -1094,7 +1094,7 @@
</span><span id="L-995"><a href="#L-995"><span class="linenos"> 995</span></a> <span class="n">r_start_index</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">configlist</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">index</span><span class="p">(</span><span class="n">r_start</span><span class="p">[</span><span class="n">rep</span><span class="p">]))</span>
</span><span id="L-996"><a href="#L-996"><span class="linenos"> 996</span></a> <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>
</span><span id="L-997"><a href="#L-997"><span class="linenos"> 997</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;Config </span><span class="si">%d</span><span class="s1"> not in file with range [</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><span id="L-998"><a href="#L-998"><span class="linenos"> 998</span></a> <span class="n">r_start</span><span class="p">[</span><span class="n">rep</span><span class="p">],</span> <span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="mi">0</span><span class="p">],</span> <span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="o">-</span><span class="mi">1</span><span class="p">]))</span> <span class="kn">from</span> <span class="kc">None</span>
</span><span id="L-998"><a href="#L-998"><span class="linenos"> 998</span></a> <span class="n">r_start</span><span class="p">[</span><span class="n">rep</span><span class="p">],</span> <span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="mi">0</span><span class="p">],</span> <span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="o">-</span><span class="mi">1</span><span class="p">]))</span> <span class="kn">from</span><span class="w"> </span><span class="kc">None</span>
</span><span id="L-999"><a href="#L-999"><span class="linenos"> 999</span></a>
</span><span id="L-1000"><a href="#L-1000"><span class="linenos">1000</span></a> <span class="k">if</span> <span class="n">r_stop</span><span class="p">[</span><span class="n">rep</span><span class="p">]</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
</span><span id="L-1001"><a href="#L-1001"><span class="linenos">1001</span></a> <span class="n">r_stop_index</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span>
@ -1103,7 +1103,7 @@
</span><span id="L-1004"><a href="#L-1004"><span class="linenos">1004</span></a> <span class="n">r_stop_index</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">configlist</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">index</span><span class="p">(</span><span class="n">r_stop</span><span class="p">[</span><span class="n">rep</span><span class="p">]))</span>
</span><span id="L-1005"><a href="#L-1005"><span class="linenos">1005</span></a> <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>
</span><span id="L-1006"><a href="#L-1006"><span class="linenos">1006</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;Config </span><span class="si">%d</span><span class="s1"> not in file with range [</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><span id="L-1007"><a href="#L-1007"><span class="linenos">1007</span></a> <span class="n">r_stop</span><span class="p">[</span><span class="n">rep</span><span class="p">],</span> <span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="mi">0</span><span class="p">],</span> <span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="o">-</span><span class="mi">1</span><span class="p">]))</span> <span class="kn">from</span> <span class="kc">None</span>
</span><span id="L-1007"><a href="#L-1007"><span class="linenos">1007</span></a> <span class="n">r_stop</span><span class="p">[</span><span class="n">rep</span><span class="p">],</span> <span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="mi">0</span><span class="p">],</span> <span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="o">-</span><span class="mi">1</span><span class="p">]))</span> <span class="kn">from</span><span class="w"> </span><span class="kc">None</span>
</span><span id="L-1008"><a href="#L-1008"><span class="linenos">1008</span></a>
</span><span id="L-1009"><a href="#L-1009"><span class="linenos">1009</span></a> <span class="k">if</span> <span class="n">version</span> <span class="ow">in</span> <span class="p">[</span><span class="s1">&#39;sfqcd&#39;</span><span class="p">]:</span>
</span><span id="L-1010"><a href="#L-1010"><span class="linenos">1010</span></a> <span class="n">cstepsize</span> <span class="o">=</span> <span class="n">cmax</span> <span class="o">/</span> <span class="n">ncs</span>
@ -1158,7 +1158,7 @@
</span><span id="L-1059"><a href="#L-1059"><span class="linenos">1059</span></a> <span class="k">return</span> <span class="n">result</span>
</span><span id="L-1060"><a href="#L-1060"><span class="linenos">1060</span></a>
</span><span id="L-1061"><a href="#L-1061"><span class="linenos">1061</span></a>
</span><span id="L-1062"><a href="#L-1062"><span class="linenos">1062</span></a><span class="k">def</span> <span class="nf">qtop_projection</span><span class="p">(</span><span class="n">qtop</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span>
</span><span id="L-1062"><a href="#L-1062"><span class="linenos">1062</span></a><span class="k">def</span><span class="w"> </span><span class="nf">qtop_projection</span><span class="p">(</span><span class="n">qtop</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span>
</span><span id="L-1063"><a href="#L-1063"><span class="linenos">1063</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Returns the projection to the topological charge sector defined by target.</span>
</span><span id="L-1064"><a href="#L-1064"><span class="linenos">1064</span></a>
</span><span id="L-1065"><a href="#L-1065"><span class="linenos">1065</span></a><span class="sd"> Parameters</span>
@ -1184,7 +1184,7 @@
</span><span id="L-1085"><a href="#L-1085"><span class="linenos">1085</span></a> <span class="k">return</span> <span class="n">reto</span>
</span><span id="L-1086"><a href="#L-1086"><span class="linenos">1086</span></a>
</span><span id="L-1087"><a href="#L-1087"><span class="linenos">1087</span></a>
</span><span id="L-1088"><a href="#L-1088"><span class="linenos">1088</span></a><span class="k">def</span> <span class="nf">read_qtop_sector</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">c</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="L-1088"><a href="#L-1088"><span class="linenos">1088</span></a><span class="k">def</span><span class="w"> </span><span class="nf">read_qtop_sector</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">c</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="L-1089"><a href="#L-1089"><span class="linenos">1089</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Constructs reweighting factors to a specified topological sector.</span>
</span><span id="L-1090"><a href="#L-1090"><span class="linenos">1090</span></a>
</span><span id="L-1091"><a href="#L-1091"><span class="linenos">1091</span></a><span class="sd"> Parameters</span>
@ -1242,7 +1242,7 @@
</span><span id="L-1143"><a href="#L-1143"><span class="linenos">1143</span></a> <span class="k">return</span> <span class="n">qtop_projection</span><span class="p">(</span><span class="n">qtop</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="n">target</span><span class="p">)</span>
</span><span id="L-1144"><a href="#L-1144"><span class="linenos">1144</span></a>
</span><span id="L-1145"><a href="#L-1145"><span class="linenos">1145</span></a>
</span><span id="L-1146"><a href="#L-1146"><span class="linenos">1146</span></a><span class="k">def</span> <span class="nf">read_ms5_xsf</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">qc</span><span class="p">,</span> <span class="n">corr</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="s2">&quot;r&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="L-1146"><a href="#L-1146"><span class="linenos">1146</span></a><span class="k">def</span><span class="w"> </span><span class="nf">read_ms5_xsf</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">qc</span><span class="p">,</span> <span class="n">corr</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="s2">&quot;r&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="L-1147"><a href="#L-1147"><span class="linenos">1147</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-1148"><a href="#L-1148"><span class="linenos">1148</span></a><span class="sd"> Read data from files in the specified directory with the specified prefix and quark combination extension, and return a `Corr` object containing the data.</span>
</span><span id="L-1149"><a href="#L-1149"><span class="linenos">1149</span></a>
@ -1423,7 +1423,7 @@
</div>
<a class="headerlink" href="#read_rwms"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="read_rwms-14"><a href="#read_rwms-14"><span class="linenos"> 14</span></a><span class="k">def</span> <span class="nf">read_rwms</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">version</span><span class="o">=</span><span class="s1">&#39;2.0&#39;</span><span class="p">,</span> <span class="n">names</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>
<div class="pdoc-code codehilite"><pre><span></span><span id="read_rwms-14"><a href="#read_rwms-14"><span class="linenos"> 14</span></a><span class="k">def</span><span class="w"> </span><span class="nf">read_rwms</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">version</span><span class="o">=</span><span class="s1">&#39;2.0&#39;</span><span class="p">,</span> <span class="n">names</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><span id="read_rwms-15"><a href="#read_rwms-15"><span class="linenos"> 15</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Read rwms format from given folder structure. Returns a list of length nrw</span>
</span><span id="read_rwms-16"><a href="#read_rwms-16"><span class="linenos"> 16</span></a>
</span><span id="read_rwms-17"><a href="#read_rwms-17"><span class="linenos"> 17</span></a><span class="sd"> Parameters</span>
@ -1613,7 +1613,7 @@
</span><span id="read_rwms-201"><a href="#read_rwms-201"><span class="linenos">201</span></a> <span class="n">r_start_index</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">configlist</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">index</span><span class="p">(</span><span class="n">r_start</span><span class="p">[</span><span class="n">rep</span><span class="p">]))</span>
</span><span id="read_rwms-202"><a href="#read_rwms-202"><span class="linenos">202</span></a> <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>
</span><span id="read_rwms-203"><a href="#read_rwms-203"><span class="linenos">203</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;Config </span><span class="si">%d</span><span class="s1"> not in file with range [</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><span id="read_rwms-204"><a href="#read_rwms-204"><span class="linenos">204</span></a> <span class="n">r_start</span><span class="p">[</span><span class="n">rep</span><span class="p">],</span> <span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="mi">0</span><span class="p">],</span> <span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="o">-</span><span class="mi">1</span><span class="p">]))</span> <span class="kn">from</span> <span class="kc">None</span>
</span><span id="read_rwms-204"><a href="#read_rwms-204"><span class="linenos">204</span></a> <span class="n">r_start</span><span class="p">[</span><span class="n">rep</span><span class="p">],</span> <span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="mi">0</span><span class="p">],</span> <span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="o">-</span><span class="mi">1</span><span class="p">]))</span> <span class="kn">from</span><span class="w"> </span><span class="kc">None</span>
</span><span id="read_rwms-205"><a href="#read_rwms-205"><span class="linenos">205</span></a>
</span><span id="read_rwms-206"><a href="#read_rwms-206"><span class="linenos">206</span></a> <span class="k">if</span> <span class="n">r_stop</span><span class="p">[</span><span class="n">rep</span><span class="p">]</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
</span><span id="read_rwms-207"><a href="#read_rwms-207"><span class="linenos">207</span></a> <span class="n">r_stop_index</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span>
@ -1622,7 +1622,7 @@
</span><span id="read_rwms-210"><a href="#read_rwms-210"><span class="linenos">210</span></a> <span class="n">r_stop_index</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">configlist</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">index</span><span class="p">(</span><span class="n">r_stop</span><span class="p">[</span><span class="n">rep</span><span class="p">]))</span>
</span><span id="read_rwms-211"><a href="#read_rwms-211"><span class="linenos">211</span></a> <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>
</span><span id="read_rwms-212"><a href="#read_rwms-212"><span class="linenos">212</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;Config </span><span class="si">%d</span><span class="s1"> not in file with range [</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><span id="read_rwms-213"><a href="#read_rwms-213"><span class="linenos">213</span></a> <span class="n">r_stop</span><span class="p">[</span><span class="n">rep</span><span class="p">],</span> <span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="mi">0</span><span class="p">],</span> <span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="o">-</span><span class="mi">1</span><span class="p">]))</span> <span class="kn">from</span> <span class="kc">None</span>
</span><span id="read_rwms-213"><a href="#read_rwms-213"><span class="linenos">213</span></a> <span class="n">r_stop</span><span class="p">[</span><span class="n">rep</span><span class="p">],</span> <span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="mi">0</span><span class="p">],</span> <span class="n">configlist</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="o">-</span><span class="mi">1</span><span class="p">]))</span> <span class="kn">from</span><span class="w"> </span><span class="kc">None</span>
</span><span id="read_rwms-214"><a href="#read_rwms-214"><span class="linenos">214</span></a>
</span><span id="read_rwms-215"><a href="#read_rwms-215"><span class="linenos">215</span></a> <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">nrw</span><span class="p">):</span>
</span><span id="read_rwms-216"><a href="#read_rwms-216"><span class="linenos">216</span></a> <span class="n">deltas</span><span class="p">[</span><span class="n">k</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">tmp_array</span><span class="p">[</span><span class="n">k</span><span class="p">][</span><span class="n">r_start_index</span><span class="p">[</span><span class="n">rep</span><span class="p">]:</span><span class="n">r_stop_index</span><span class="p">[</span><span class="n">rep</span><span class="p">]</span> <span class="o">+</span> <span class="mi">1</span><span class="p">][::</span><span class="n">r_step</span><span class="p">])</span>
@ -1696,7 +1696,7 @@ Reweighting factors read</li>
</div>
<a class="headerlink" href="#extract_t0"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="extract_t0-426"><a href="#extract_t0-426"><span class="linenos">426</span></a><span class="k">def</span> <span class="nf">extract_t0</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">dtr_read</span><span class="p">,</span> <span class="n">xmin</span><span class="p">,</span> <span class="n">spatial_extent</span><span class="p">,</span> <span class="n">fit_range</span><span class="o">=</span><span class="mi">5</span><span class="p">,</span> <span class="n">postfix</span><span class="o">=</span><span class="s1">&#39;ms&#39;</span><span class="p">,</span> <span class="n">c</span><span class="o">=</span><span class="mf">0.3</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="extract_t0-426"><a href="#extract_t0-426"><span class="linenos">426</span></a><span class="k">def</span><span class="w"> </span><span class="nf">extract_t0</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">dtr_read</span><span class="p">,</span> <span class="n">xmin</span><span class="p">,</span> <span class="n">spatial_extent</span><span class="p">,</span> <span class="n">fit_range</span><span class="o">=</span><span class="mi">5</span><span class="p">,</span> <span class="n">postfix</span><span class="o">=</span><span class="s1">&#39;ms&#39;</span><span class="p">,</span> <span class="n">c</span><span class="o">=</span><span class="mf">0.3</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="extract_t0-427"><a href="#extract_t0-427"><span class="linenos">427</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Extract t0/a^2 from given .ms.dat files. Returns t0 as Obs.</span>
</span><span id="extract_t0-428"><a href="#extract_t0-428"><span class="linenos">428</span></a>
</span><span id="extract_t0-429"><a href="#extract_t0-429"><span class="linenos">429</span></a><span class="sd"> It is assumed that all boundary effects have</span>
@ -1851,7 +1851,7 @@ Extracted t0</li>
</div>
<a class="headerlink" href="#extract_w0"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="extract_w0-499"><a href="#extract_w0-499"><span class="linenos">499</span></a><span class="k">def</span> <span class="nf">extract_w0</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">dtr_read</span><span class="p">,</span> <span class="n">xmin</span><span class="p">,</span> <span class="n">spatial_extent</span><span class="p">,</span> <span class="n">fit_range</span><span class="o">=</span><span class="mi">5</span><span class="p">,</span> <span class="n">postfix</span><span class="o">=</span><span class="s1">&#39;ms&#39;</span><span class="p">,</span> <span class="n">c</span><span class="o">=</span><span class="mf">0.3</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="extract_w0-499"><a href="#extract_w0-499"><span class="linenos">499</span></a><span class="k">def</span><span class="w"> </span><span class="nf">extract_w0</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">dtr_read</span><span class="p">,</span> <span class="n">xmin</span><span class="p">,</span> <span class="n">spatial_extent</span><span class="p">,</span> <span class="n">fit_range</span><span class="o">=</span><span class="mi">5</span><span class="p">,</span> <span class="n">postfix</span><span class="o">=</span><span class="s1">&#39;ms&#39;</span><span class="p">,</span> <span class="n">c</span><span class="o">=</span><span class="mf">0.3</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="extract_w0-500"><a href="#extract_w0-500"><span class="linenos">500</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Extract w0/a from given .ms.dat files. Returns w0 as Obs.</span>
</span><span id="extract_w0-501"><a href="#extract_w0-501"><span class="linenos">501</span></a>
</span><span id="extract_w0-502"><a href="#extract_w0-502"><span class="linenos">502</span></a><span class="sd"> It is assumed that all boundary effects have</span>
@ -2015,7 +2015,7 @@ Extracted w0</li>
</div>
<a class="headerlink" href="#read_qtop"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="read_qtop-666"><a href="#read_qtop-666"><span class="linenos">666</span></a><span class="k">def</span> <span class="nf">read_qtop</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">c</span><span class="p">,</span> <span class="n">dtr_cnfg</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">version</span><span class="o">=</span><span class="s2">&quot;openQCD&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="read_qtop-666"><a href="#read_qtop-666"><span class="linenos">666</span></a><span class="k">def</span><span class="w"> </span><span class="nf">read_qtop</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">c</span><span class="p">,</span> <span class="n">dtr_cnfg</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">version</span><span class="o">=</span><span class="s2">&quot;openQCD&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="read_qtop-667"><a href="#read_qtop-667"><span class="linenos">667</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Read the topologial charge based on openQCD gradient flow measurements.</span>
</span><span id="read_qtop-668"><a href="#read_qtop-668"><span class="linenos">668</span></a>
</span><span id="read_qtop-669"><a href="#read_qtop-669"><span class="linenos">669</span></a><span class="sd"> Parameters</span>
@ -2135,7 +2135,7 @@ Read topological charge</li>
</div>
<a class="headerlink" href="#read_gf_coupling"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="read_gf_coupling-719"><a href="#read_gf_coupling-719"><span class="linenos">719</span></a><span class="k">def</span> <span class="nf">read_gf_coupling</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">c</span><span class="p">,</span> <span class="n">dtr_cnfg</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">Zeuthen_flow</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="read_gf_coupling-719"><a href="#read_gf_coupling-719"><span class="linenos">719</span></a><span class="k">def</span><span class="w"> </span><span class="nf">read_gf_coupling</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">c</span><span class="p">,</span> <span class="n">dtr_cnfg</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">Zeuthen_flow</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="read_gf_coupling-720"><a href="#read_gf_coupling-720"><span class="linenos">720</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Read the gradient flow coupling based on sfqcd gradient flow measurements. See 1607.06423 for details.</span>
</span><span id="read_gf_coupling-721"><a href="#read_gf_coupling-721"><span class="linenos">721</span></a>
</span><span id="read_gf_coupling-722"><a href="#read_gf_coupling-722"><span class="linenos">722</span></a><span class="sd"> Note: The current implementation only works for c=0.3 and T=L. The definition of the coupling in 1607.06423 requires projection to topological charge zero which is not done within this function but has to be performed in a separate step.</span>
@ -2260,7 +2260,7 @@ postfix of the file to read, e.g. '.gfms.dat' for openQCD-files</li>
</div>
<a class="headerlink" href="#qtop_projection"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="qtop_projection-1063"><a href="#qtop_projection-1063"><span class="linenos">1063</span></a><span class="k">def</span> <span class="nf">qtop_projection</span><span class="p">(</span><span class="n">qtop</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="qtop_projection-1063"><a href="#qtop_projection-1063"><span class="linenos">1063</span></a><span class="k">def</span><span class="w"> </span><span class="nf">qtop_projection</span><span class="p">(</span><span class="n">qtop</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span>
</span><span id="qtop_projection-1064"><a href="#qtop_projection-1064"><span class="linenos">1064</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Returns the projection to the topological charge sector defined by target.</span>
</span><span id="qtop_projection-1065"><a href="#qtop_projection-1065"><span class="linenos">1065</span></a>
</span><span id="qtop_projection-1066"><a href="#qtop_projection-1066"><span class="linenos">1066</span></a><span class="sd"> Parameters</span>
@ -2319,7 +2319,7 @@ projection to the topological charge sector defined by target</li>
</div>
<a class="headerlink" href="#read_qtop_sector"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="read_qtop_sector-1089"><a href="#read_qtop_sector-1089"><span class="linenos">1089</span></a><span class="k">def</span> <span class="nf">read_qtop_sector</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">c</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="read_qtop_sector-1089"><a href="#read_qtop_sector-1089"><span class="linenos">1089</span></a><span class="k">def</span><span class="w"> </span><span class="nf">read_qtop_sector</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">c</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="read_qtop_sector-1090"><a href="#read_qtop_sector-1090"><span class="linenos">1090</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Constructs reweighting factors to a specified topological sector.</span>
</span><span id="read_qtop_sector-1091"><a href="#read_qtop_sector-1091"><span class="linenos">1091</span></a>
</span><span id="read_qtop_sector-1092"><a href="#read_qtop_sector-1092"><span class="linenos">1092</span></a><span class="sd"> Parameters</span>
@ -2443,7 +2443,7 @@ projection to the topological charge sector defined by target</li>
</div>
<a class="headerlink" href="#read_ms5_xsf"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="read_ms5_xsf-1147"><a href="#read_ms5_xsf-1147"><span class="linenos">1147</span></a><span class="k">def</span> <span class="nf">read_ms5_xsf</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">qc</span><span class="p">,</span> <span class="n">corr</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="s2">&quot;r&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="read_ms5_xsf-1147"><a href="#read_ms5_xsf-1147"><span class="linenos">1147</span></a><span class="k">def</span><span class="w"> </span><span class="nf">read_ms5_xsf</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">qc</span><span class="p">,</span> <span class="n">corr</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="s2">&quot;r&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="read_ms5_xsf-1148"><a href="#read_ms5_xsf-1148"><span class="linenos">1148</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="read_ms5_xsf-1149"><a href="#read_ms5_xsf-1149"><span class="linenos">1149</span></a><span class="sd"> Read data from files in the specified directory with the specified prefix and quark combination extension, and return a `Corr` object containing the data.</span>
</span><span id="read_ms5_xsf-1150"><a href="#read_ms5_xsf-1150"><span class="linenos">1150</span></a>

View file

@ -85,17 +85,17 @@
<label class="view-source-button" for="mod-pandas-view-source"><span>View Source</span></label>
<div class="pdoc-code codehilite"><pre><span></span><span id="L-1"><a href="#L-1"><span class="linenos"> 1</span></a><span class="kn">import</span> <span class="nn">warnings</span>
</span><span id="L-2"><a href="#L-2"><span class="linenos"> 2</span></a><span class="kn">import</span> <span class="nn">gzip</span>
</span><span id="L-3"><a href="#L-3"><span class="linenos"> 3</span></a><span class="kn">import</span> <span class="nn">sqlite3</span>
</span><span id="L-4"><a href="#L-4"><span class="linenos"> 4</span></a><span class="kn">import</span> <span class="nn">pandas</span> <span class="k">as</span> <span class="nn">pd</span>
</span><span id="L-5"><a href="#L-5"><span class="linenos"> 5</span></a><span class="kn">from</span> <span class="nn">..obs</span> <span class="kn">import</span> <span class="n">Obs</span>
</span><span id="L-6"><a href="#L-6"><span class="linenos"> 6</span></a><span class="kn">from</span> <span class="nn">..correlators</span> <span class="kn">import</span> <span class="n">Corr</span>
</span><span id="L-7"><a href="#L-7"><span class="linenos"> 7</span></a><span class="kn">from</span> <span class="nn">.json</span> <span class="kn">import</span> <span class="n">create_json_string</span><span class="p">,</span> <span class="n">import_json_string</span>
</span><span id="L-8"><a href="#L-8"><span class="linenos"> 8</span></a><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="L-1"><a href="#L-1"><span class="linenos"> 1</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">warnings</span>
</span><span id="L-2"><a href="#L-2"><span class="linenos"> 2</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">gzip</span>
</span><span id="L-3"><a href="#L-3"><span class="linenos"> 3</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">sqlite3</span>
</span><span id="L-4"><a href="#L-4"><span class="linenos"> 4</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">pandas</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">pd</span>
</span><span id="L-5"><a href="#L-5"><span class="linenos"> 5</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">..obs</span><span class="w"> </span><span class="kn">import</span> <span class="n">Obs</span>
</span><span id="L-6"><a href="#L-6"><span class="linenos"> 6</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">..correlators</span><span class="w"> </span><span class="kn">import</span> <span class="n">Corr</span>
</span><span id="L-7"><a href="#L-7"><span class="linenos"> 7</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">.json</span><span class="w"> </span><span class="kn">import</span> <span class="n">create_json_string</span><span class="p">,</span> <span class="n">import_json_string</span>
</span><span id="L-8"><a href="#L-8"><span class="linenos"> 8</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">np</span>
</span><span id="L-9"><a href="#L-9"><span class="linenos"> 9</span></a>
</span><span id="L-10"><a href="#L-10"><span class="linenos"> 10</span></a>
</span><span id="L-11"><a href="#L-11"><span class="linenos"> 11</span></a><span class="k">def</span> <span class="nf">to_sql</span><span class="p">(</span><span class="n">df</span><span class="p">,</span> <span class="n">table_name</span><span class="p">,</span> <span class="n">db</span><span class="p">,</span> <span class="n">if_exists</span><span class="o">=</span><span class="s1">&#39;fail&#39;</span><span class="p">,</span> <span class="n">gz</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="L-11"><a href="#L-11"><span class="linenos"> 11</span></a><span class="k">def</span><span class="w"> </span><span class="nf">to_sql</span><span class="p">(</span><span class="n">df</span><span class="p">,</span> <span class="n">table_name</span><span class="p">,</span> <span class="n">db</span><span class="p">,</span> <span class="n">if_exists</span><span class="o">=</span><span class="s1">&#39;fail&#39;</span><span class="p">,</span> <span class="n">gz</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="L-12"><a href="#L-12"><span class="linenos"> 12</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Write DataFrame including Obs or Corr valued columns to sqlite database.</span>
</span><span id="L-13"><a href="#L-13"><span class="linenos"> 13</span></a>
</span><span id="L-14"><a href="#L-14"><span class="linenos"> 14</span></a><span class="sd"> Parameters</span>
@ -121,7 +121,7 @@
</span><span id="L-34"><a href="#L-34"><span class="linenos"> 34</span></a> <span class="n">con</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
</span><span id="L-35"><a href="#L-35"><span class="linenos"> 35</span></a>
</span><span id="L-36"><a href="#L-36"><span class="linenos"> 36</span></a>
</span><span id="L-37"><a href="#L-37"><span class="linenos"> 37</span></a><span class="k">def</span> <span class="nf">read_sql</span><span class="p">(</span><span class="n">sql</span><span class="p">,</span> <span class="n">db</span><span class="p">,</span> <span class="n">auto_gamma</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><span id="L-37"><a href="#L-37"><span class="linenos"> 37</span></a><span class="k">def</span><span class="w"> </span><span class="nf">read_sql</span><span class="p">(</span><span class="n">sql</span><span class="p">,</span> <span class="n">db</span><span class="p">,</span> <span class="n">auto_gamma</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><span id="L-38"><a href="#L-38"><span class="linenos"> 38</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Execute SQL query on sqlite database and obtain DataFrame including Obs or Corr valued columns.</span>
</span><span id="L-39"><a href="#L-39"><span class="linenos"> 39</span></a>
</span><span id="L-40"><a href="#L-40"><span class="linenos"> 40</span></a><span class="sd"> Parameters</span>
@ -145,7 +145,7 @@
</span><span id="L-58"><a href="#L-58"><span class="linenos"> 58</span></a> <span class="k">return</span> <span class="n">_deserialize_df</span><span class="p">(</span><span class="n">extract_df</span><span class="p">,</span> <span class="n">auto_gamma</span><span class="o">=</span><span class="n">auto_gamma</span><span class="p">)</span>
</span><span id="L-59"><a href="#L-59"><span class="linenos"> 59</span></a>
</span><span id="L-60"><a href="#L-60"><span class="linenos"> 60</span></a>
</span><span id="L-61"><a href="#L-61"><span class="linenos"> 61</span></a><span class="k">def</span> <span class="nf">dump_df</span><span class="p">(</span><span class="n">df</span><span class="p">,</span> <span class="n">fname</span><span class="p">,</span> <span class="n">gz</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
</span><span id="L-61"><a href="#L-61"><span class="linenos"> 61</span></a><span class="k">def</span><span class="w"> </span><span class="nf">dump_df</span><span class="p">(</span><span class="n">df</span><span class="p">,</span> <span class="n">fname</span><span class="p">,</span> <span class="n">gz</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
</span><span id="L-62"><a href="#L-62"><span class="linenos"> 62</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Exports a pandas DataFrame containing Obs valued columns to a (gzipped) csv file.</span>
</span><span id="L-63"><a href="#L-63"><span class="linenos"> 63</span></a>
</span><span id="L-64"><a href="#L-64"><span class="linenos"> 64</span></a><span class="sd"> Before making use of pandas to_csv functionality Obs objects are serialized via the standardized</span>
@ -184,7 +184,7 @@
</span><span id="L-97"><a href="#L-97"><span class="linenos"> 97</span></a> <span class="n">out</span><span class="o">.</span><span class="n">to_csv</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="n">index</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
</span><span id="L-98"><a href="#L-98"><span class="linenos"> 98</span></a>
</span><span id="L-99"><a href="#L-99"><span class="linenos"> 99</span></a>
</span><span id="L-100"><a href="#L-100"><span class="linenos">100</span></a><span class="k">def</span> <span class="nf">load_df</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="n">auto_gamma</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">gz</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
</span><span id="L-100"><a href="#L-100"><span class="linenos">100</span></a><span class="k">def</span><span class="w"> </span><span class="nf">load_df</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="n">auto_gamma</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">gz</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
</span><span id="L-101"><a href="#L-101"><span class="linenos">101</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Imports a pandas DataFrame from a csv.(gz) file in which Obs objects are serialized as json strings.</span>
</span><span id="L-102"><a href="#L-102"><span class="linenos">102</span></a>
</span><span id="L-103"><a href="#L-103"><span class="linenos">103</span></a><span class="sd"> Parameters</span>
@ -218,7 +218,7 @@
</span><span id="L-131"><a href="#L-131"><span class="linenos">131</span></a> <span class="k">return</span> <span class="n">_deserialize_df</span><span class="p">(</span><span class="n">re_import</span><span class="p">,</span> <span class="n">auto_gamma</span><span class="o">=</span><span class="n">auto_gamma</span><span class="p">)</span>
</span><span id="L-132"><a href="#L-132"><span class="linenos">132</span></a>
</span><span id="L-133"><a href="#L-133"><span class="linenos">133</span></a>
</span><span id="L-134"><a href="#L-134"><span class="linenos">134</span></a><span class="k">def</span> <span class="nf">_serialize_df</span><span class="p">(</span><span class="n">df</span><span class="p">,</span> <span class="n">gz</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
</span><span id="L-134"><a href="#L-134"><span class="linenos">134</span></a><span class="k">def</span><span class="w"> </span><span class="nf">_serialize_df</span><span class="p">(</span><span class="n">df</span><span class="p">,</span> <span class="n">gz</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
</span><span id="L-135"><a href="#L-135"><span class="linenos">135</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Serializes all Obs or Corr valued columns into json strings according to the pyerrors json specification.</span>
</span><span id="L-136"><a href="#L-136"><span class="linenos">136</span></a>
</span><span id="L-137"><a href="#L-137"><span class="linenos">137</span></a><span class="sd"> Parameters</span>
@ -239,7 +239,7 @@
</span><span id="L-152"><a href="#L-152"><span class="linenos">152</span></a> <span class="k">return</span> <span class="n">out</span>
</span><span id="L-153"><a href="#L-153"><span class="linenos">153</span></a>
</span><span id="L-154"><a href="#L-154"><span class="linenos">154</span></a>
</span><span id="L-155"><a href="#L-155"><span class="linenos">155</span></a><span class="k">def</span> <span class="nf">_deserialize_df</span><span class="p">(</span><span class="n">df</span><span class="p">,</span> <span class="n">auto_gamma</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
</span><span id="L-155"><a href="#L-155"><span class="linenos">155</span></a><span class="k">def</span><span class="w"> </span><span class="nf">_deserialize_df</span><span class="p">(</span><span class="n">df</span><span class="p">,</span> <span class="n">auto_gamma</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
</span><span id="L-156"><a href="#L-156"><span class="linenos">156</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Deserializes all pyerrors json strings into Obs or Corr objects according to the pyerrors json specification.</span>
</span><span id="L-157"><a href="#L-157"><span class="linenos">157</span></a>
</span><span id="L-158"><a href="#L-158"><span class="linenos">158</span></a><span class="sd"> Parameters</span>
@ -275,7 +275,7 @@
</span><span id="L-188"><a href="#L-188"><span class="linenos">188</span></a> <span class="k">return</span> <span class="n">df</span>
</span><span id="L-189"><a href="#L-189"><span class="linenos">189</span></a>
</span><span id="L-190"><a href="#L-190"><span class="linenos">190</span></a>
</span><span id="L-191"><a href="#L-191"><span class="linenos">191</span></a><span class="k">def</span> <span class="nf">_need_to_serialize</span><span class="p">(</span><span class="n">col</span><span class="p">):</span>
</span><span id="L-191"><a href="#L-191"><span class="linenos">191</span></a><span class="k">def</span><span class="w"> </span><span class="nf">_need_to_serialize</span><span class="p">(</span><span class="n">col</span><span class="p">):</span>
</span><span id="L-192"><a href="#L-192"><span class="linenos">192</span></a> <span class="n">serialize</span> <span class="o">=</span> <span class="kc">False</span>
</span><span id="L-193"><a href="#L-193"><span class="linenos">193</span></a> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span>
</span><span id="L-194"><a href="#L-194"><span class="linenos">194</span></a> <span class="k">while</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="nb">len</span><span class="p">(</span><span class="n">col</span><span class="p">)</span> <span class="ow">and</span> <span class="n">col</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
@ -303,7 +303,7 @@
</div>
<a class="headerlink" href="#to_sql"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="to_sql-12"><a href="#to_sql-12"><span class="linenos">12</span></a><span class="k">def</span> <span class="nf">to_sql</span><span class="p">(</span><span class="n">df</span><span class="p">,</span> <span class="n">table_name</span><span class="p">,</span> <span class="n">db</span><span class="p">,</span> <span class="n">if_exists</span><span class="o">=</span><span class="s1">&#39;fail&#39;</span><span class="p">,</span> <span class="n">gz</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="to_sql-12"><a href="#to_sql-12"><span class="linenos">12</span></a><span class="k">def</span><span class="w"> </span><span class="nf">to_sql</span><span class="p">(</span><span class="n">df</span><span class="p">,</span> <span class="n">table_name</span><span class="p">,</span> <span class="n">db</span><span class="p">,</span> <span class="n">if_exists</span><span class="o">=</span><span class="s1">&#39;fail&#39;</span><span class="p">,</span> <span class="n">gz</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="to_sql-13"><a href="#to_sql-13"><span class="linenos">13</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Write DataFrame including Obs or Corr valued columns to sqlite database.</span>
</span><span id="to_sql-14"><a href="#to_sql-14"><span class="linenos">14</span></a>
</span><span id="to_sql-15"><a href="#to_sql-15"><span class="linenos">15</span></a><span class="sd"> Parameters</span>
@ -367,7 +367,7 @@ If True the json strings are gzipped.</li>
</div>
<a class="headerlink" href="#read_sql"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="read_sql-38"><a href="#read_sql-38"><span class="linenos">38</span></a><span class="k">def</span> <span class="nf">read_sql</span><span class="p">(</span><span class="n">sql</span><span class="p">,</span> <span class="n">db</span><span class="p">,</span> <span class="n">auto_gamma</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>
<div class="pdoc-code codehilite"><pre><span></span><span id="read_sql-38"><a href="#read_sql-38"><span class="linenos">38</span></a><span class="k">def</span><span class="w"> </span><span class="nf">read_sql</span><span class="p">(</span><span class="n">sql</span><span class="p">,</span> <span class="n">db</span><span class="p">,</span> <span class="n">auto_gamma</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><span id="read_sql-39"><a href="#read_sql-39"><span class="linenos">39</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Execute SQL query on sqlite database and obtain DataFrame including Obs or Corr valued columns.</span>
</span><span id="read_sql-40"><a href="#read_sql-40"><span class="linenos">40</span></a>
</span><span id="read_sql-41"><a href="#read_sql-41"><span class="linenos">41</span></a><span class="sd"> Parameters</span>
@ -427,7 +427,7 @@ Dataframe with the content of the sqlite database.</li>
</div>
<a class="headerlink" href="#dump_df"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="dump_df-62"><a href="#dump_df-62"><span class="linenos">62</span></a><span class="k">def</span> <span class="nf">dump_df</span><span class="p">(</span><span class="n">df</span><span class="p">,</span> <span class="n">fname</span><span class="p">,</span> <span class="n">gz</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="dump_df-62"><a href="#dump_df-62"><span class="linenos">62</span></a><span class="k">def</span><span class="w"> </span><span class="nf">dump_df</span><span class="p">(</span><span class="n">df</span><span class="p">,</span> <span class="n">fname</span><span class="p">,</span> <span class="n">gz</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
</span><span id="dump_df-63"><a href="#dump_df-63"><span class="linenos">63</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Exports a pandas DataFrame containing Obs valued columns to a (gzipped) csv file.</span>
</span><span id="dump_df-64"><a href="#dump_df-64"><span class="linenos">64</span></a>
</span><span id="dump_df-65"><a href="#dump_df-65"><span class="linenos">65</span></a><span class="sd"> Before making use of pandas to_csv functionality Obs objects are serialized via the standardized</span>
@ -503,7 +503,7 @@ If True, the output is a gzipped csv file. If False, the output is a csv file.</
</div>
<a class="headerlink" href="#load_df"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="load_df-101"><a href="#load_df-101"><span class="linenos">101</span></a><span class="k">def</span> <span class="nf">load_df</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="n">auto_gamma</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">gz</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="load_df-101"><a href="#load_df-101"><span class="linenos">101</span></a><span class="k">def</span><span class="w"> </span><span class="nf">load_df</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="n">auto_gamma</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">gz</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
</span><span id="load_df-102"><a href="#load_df-102"><span class="linenos">102</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Imports a pandas DataFrame from a csv.(gz) file in which Obs objects are serialized as json strings.</span>
</span><span id="load_df-103"><a href="#load_df-103"><span class="linenos">103</span></a>
</span><span id="load_df-104"><a href="#load_df-104"><span class="linenos">104</span></a><span class="sd"> Parameters</span>

File diff suppressed because it is too large Load diff

View file

@ -86,12 +86,12 @@
<div class="pdoc-code codehilite"><pre><span></span><span id="L-1"><a href="#L-1"><span class="linenos"> 1</span></a><span class="sd">&quot;&quot;&quot;Utilities for the input&quot;&quot;&quot;</span>
</span><span id="L-2"><a href="#L-2"><span class="linenos"> 2</span></a>
</span><span id="L-3"><a href="#L-3"><span class="linenos"> 3</span></a><span class="kn">import</span> <span class="nn">re</span>
</span><span id="L-4"><a href="#L-4"><span class="linenos"> 4</span></a><span class="kn">import</span> <span class="nn">fnmatch</span>
</span><span id="L-5"><a href="#L-5"><span class="linenos"> 5</span></a><span class="kn">import</span> <span class="nn">os</span>
</span><span id="L-3"><a href="#L-3"><span class="linenos"> 3</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">re</span>
</span><span id="L-4"><a href="#L-4"><span class="linenos"> 4</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">fnmatch</span>
</span><span id="L-5"><a href="#L-5"><span class="linenos"> 5</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">os</span>
</span><span id="L-6"><a href="#L-6"><span class="linenos"> 6</span></a>
</span><span id="L-7"><a href="#L-7"><span class="linenos"> 7</span></a>
</span><span id="L-8"><a href="#L-8"><span class="linenos"> 8</span></a><span class="k">def</span> <span class="nf">sort_names</span><span class="p">(</span><span class="n">ll</span><span class="p">):</span>
</span><span id="L-8"><a href="#L-8"><span class="linenos"> 8</span></a><span class="k">def</span><span class="w"> </span><span class="nf">sort_names</span><span class="p">(</span><span class="n">ll</span><span class="p">):</span>
</span><span id="L-9"><a href="#L-9"><span class="linenos"> 9</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Sorts a list of names of replika with searches for `r` and `id` in the replikum string.</span>
</span><span id="L-10"><a href="#L-10"><span class="linenos"> 10</span></a><span class="sd"> If this search fails, a fallback method is used,</span>
</span><span id="L-11"><a href="#L-11"><span class="linenos"> 11</span></a><span class="sd"> where the strings are simply compared and the first diffeing numeral is used for differentiation.</span>
@ -138,7 +138,7 @@
</span><span id="L-52"><a href="#L-52"><span class="linenos"> 52</span></a> <span class="k">return</span> <span class="n">ll</span>
</span><span id="L-53"><a href="#L-53"><span class="linenos"> 53</span></a>
</span><span id="L-54"><a href="#L-54"><span class="linenos"> 54</span></a>
</span><span id="L-55"><a href="#L-55"><span class="linenos"> 55</span></a><span class="k">def</span> <span class="nf">check_idl</span><span class="p">(</span><span class="n">idl</span><span class="p">,</span> <span class="n">che</span><span class="p">):</span>
</span><span id="L-55"><a href="#L-55"><span class="linenos"> 55</span></a><span class="k">def</span><span class="w"> </span><span class="nf">check_idl</span><span class="p">(</span><span class="n">idl</span><span class="p">,</span> <span class="n">che</span><span class="p">):</span>
</span><span id="L-56"><a href="#L-56"><span class="linenos"> 56</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Checks if list of configurations is contained in an idl</span>
</span><span id="L-57"><a href="#L-57"><span class="linenos"> 57</span></a>
</span><span id="L-58"><a href="#L-58"><span class="linenos"> 58</span></a><span class="sd"> Parameters</span>
@ -168,7 +168,7 @@
</span><span id="L-82"><a href="#L-82"><span class="linenos"> 82</span></a> <span class="k">return</span> <span class="n">miss_str</span>
</span><span id="L-83"><a href="#L-83"><span class="linenos"> 83</span></a>
</span><span id="L-84"><a href="#L-84"><span class="linenos"> 84</span></a>
</span><span id="L-85"><a href="#L-85"><span class="linenos"> 85</span></a><span class="k">def</span> <span class="nf">check_params</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">param_hash</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">param_prefix</span><span class="o">=</span><span class="s2">&quot;parameters_&quot;</span><span class="p">):</span>
</span><span id="L-85"><a href="#L-85"><span class="linenos"> 85</span></a><span class="k">def</span><span class="w"> </span><span class="nf">check_params</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">param_hash</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">param_prefix</span><span class="o">=</span><span class="s2">&quot;parameters_&quot;</span><span class="p">):</span>
</span><span id="L-86"><a href="#L-86"><span class="linenos"> 86</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-87"><a href="#L-87"><span class="linenos"> 87</span></a><span class="sd"> Check if, for sfcf, the parameter hashes at the end of the parameter files are in fact the expected one.</span>
</span><span id="L-88"><a href="#L-88"><span class="linenos"> 88</span></a>
@ -243,7 +243,7 @@
</div>
<a class="headerlink" href="#sort_names"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="sort_names-9"><a href="#sort_names-9"><span class="linenos"> 9</span></a><span class="k">def</span> <span class="nf">sort_names</span><span class="p">(</span><span class="n">ll</span><span class="p">):</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="sort_names-9"><a href="#sort_names-9"><span class="linenos"> 9</span></a><span class="k">def</span><span class="w"> </span><span class="nf">sort_names</span><span class="p">(</span><span class="n">ll</span><span class="p">):</span>
</span><span id="sort_names-10"><a href="#sort_names-10"><span class="linenos">10</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Sorts a list of names of replika with searches for `r` and `id` in the replikum string.</span>
</span><span id="sort_names-11"><a href="#sort_names-11"><span class="linenos">11</span></a><span class="sd"> If this search fails, a fallback method is used,</span>
</span><span id="sort_names-12"><a href="#sort_names-12"><span class="linenos">12</span></a><span class="sd"> where the strings are simply compared and the first diffeing numeral is used for differentiation.</span>
@ -323,7 +323,7 @@ sorted list</li>
</div>
<a class="headerlink" href="#check_idl"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="check_idl-56"><a href="#check_idl-56"><span class="linenos">56</span></a><span class="k">def</span> <span class="nf">check_idl</span><span class="p">(</span><span class="n">idl</span><span class="p">,</span> <span class="n">che</span><span class="p">):</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="check_idl-56"><a href="#check_idl-56"><span class="linenos">56</span></a><span class="k">def</span><span class="w"> </span><span class="nf">check_idl</span><span class="p">(</span><span class="n">idl</span><span class="p">,</span> <span class="n">che</span><span class="p">):</span>
</span><span id="check_idl-57"><a href="#check_idl-57"><span class="linenos">57</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Checks if list of configurations is contained in an idl</span>
</span><span id="check_idl-58"><a href="#check_idl-58"><span class="linenos">58</span></a>
</span><span id="check_idl-59"><a href="#check_idl-59"><span class="linenos">59</span></a><span class="sd"> Parameters</span>
@ -386,7 +386,7 @@ string with integers of which idls are missing</li>
</div>
<a class="headerlink" href="#check_params"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="check_params-86"><a href="#check_params-86"><span class="linenos"> 86</span></a><span class="k">def</span> <span class="nf">check_params</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">param_hash</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">param_prefix</span><span class="o">=</span><span class="s2">&quot;parameters_&quot;</span><span class="p">):</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="check_params-86"><a href="#check_params-86"><span class="linenos"> 86</span></a><span class="k">def</span><span class="w"> </span><span class="nf">check_params</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">param_hash</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">param_prefix</span><span class="o">=</span><span class="s2">&quot;parameters_&quot;</span><span class="p">):</span>
</span><span id="check_params-87"><a href="#check_params-87"><span class="linenos"> 87</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="check_params-88"><a href="#check_params-88"><span class="linenos"> 88</span></a><span class="sd"> Check if, for sfcf, the parameter hashes at the end of the parameter files are in fact the expected one.</span>
</span><span id="check_params-89"><a href="#check_params-89"><span class="linenos"> 89</span></a>

View file

@ -76,13 +76,13 @@
<label class="view-source-button" for="mod-integrate-view-source"><span>View Source</span></label>
<div class="pdoc-code codehilite"><pre><span></span><span id="L-1"><a href="#L-1"><span class="linenos"> 1</span></a><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
</span><span id="L-2"><a href="#L-2"><span class="linenos"> 2</span></a><span class="kn">from</span> <span class="nn">.obs</span> <span class="kn">import</span> <span class="n">derived_observable</span><span class="p">,</span> <span class="n">Obs</span>
</span><span id="L-3"><a href="#L-3"><span class="linenos"> 3</span></a><span class="kn">from</span> <span class="nn">autograd</span> <span class="kn">import</span> <span class="n">jacobian</span>
</span><span id="L-4"><a href="#L-4"><span class="linenos"> 4</span></a><span class="kn">from</span> <span class="nn">scipy.integrate</span> <span class="kn">import</span> <span class="n">quad</span> <span class="k">as</span> <span class="n">squad</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="L-1"><a href="#L-1"><span class="linenos"> 1</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">np</span>
</span><span id="L-2"><a href="#L-2"><span class="linenos"> 2</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">.obs</span><span class="w"> </span><span class="kn">import</span> <span class="n">derived_observable</span><span class="p">,</span> <span class="n">Obs</span>
</span><span id="L-3"><a href="#L-3"><span class="linenos"> 3</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">autograd</span><span class="w"> </span><span class="kn">import</span> <span class="n">jacobian</span>
</span><span id="L-4"><a href="#L-4"><span class="linenos"> 4</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">scipy.integrate</span><span class="w"> </span><span class="kn">import</span> <span class="n">quad</span> <span class="k">as</span> <span class="n">squad</span>
</span><span id="L-5"><a href="#L-5"><span class="linenos"> 5</span></a>
</span><span id="L-6"><a href="#L-6"><span class="linenos"> 6</span></a>
</span><span id="L-7"><a href="#L-7"><span class="linenos"> 7</span></a><span class="k">def</span> <span class="nf">quad</span><span class="p">(</span><span class="n">func</span><span class="p">,</span> <span class="n">p</span><span class="p">,</span> <span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="L-7"><a href="#L-7"><span class="linenos"> 7</span></a><span class="k">def</span><span class="w"> </span><span class="nf">quad</span><span class="p">(</span><span class="n">func</span><span class="p">,</span> <span class="n">p</span><span class="p">,</span> <span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="L-8"><a href="#L-8"><span class="linenos"> 8</span></a><span class="w"> </span><span class="sd">&#39;&#39;&#39;Performs a (one-dimensional) numeric integration of f(p, x) from a to b.</span>
</span><span id="L-9"><a href="#L-9"><span class="linenos"> 9</span></a>
</span><span id="L-10"><a href="#L-10"><span class="linenos">10</span></a><span class="sd"> The integration is performed using scipy.integrate.quad().</span>
@ -178,7 +178,7 @@
</div>
<a class="headerlink" href="#quad"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="quad-8"><a href="#quad-8"><span class="linenos"> 8</span></a><span class="k">def</span> <span class="nf">quad</span><span class="p">(</span><span class="n">func</span><span class="p">,</span> <span class="n">p</span><span class="p">,</span> <span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="quad-8"><a href="#quad-8"><span class="linenos"> 8</span></a><span class="k">def</span><span class="w"> </span><span class="nf">quad</span><span class="p">(</span><span class="n">func</span><span class="p">,</span> <span class="n">p</span><span class="p">,</span> <span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="quad-9"><a href="#quad-9"><span class="linenos"> 9</span></a><span class="w"> </span><span class="sd">&#39;&#39;&#39;Performs a (one-dimensional) numeric integration of f(p, x) from a to b.</span>
</span><span id="quad-10"><a href="#quad-10"><span class="linenos">10</span></a>
</span><span id="quad-11"><a href="#quad-11"><span class="linenos">11</span></a><span class="sd"> The integration is performed using scipy.integrate.quad().</span>
@ -275,9 +275,9 @@ The output is the same as for scipy.integrate.quad, the first element being an O
function to integrate, has to be of the form</p>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="kn">import</span> <span class="nn">autograd.numpy</span> <span class="k">as</span> <span class="nn">anp</span>
<pre><span></span><code><span class="kn">import</span><span class="w"> </span><span class="nn">autograd.numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">anp</span>
<span class="k">def</span> <span class="nf">func</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">x</span><span class="p">):</span>
<span class="k">def</span><span class="w"> </span><span class="nf">func</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">x</span><span class="p">):</span>
<span class="k">return</span> <span class="n">p</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="n">p</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">*</span> <span class="n">x</span> <span class="o">+</span> <span class="n">p</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">*</span> <span class="n">anp</span><span class="o">.</span><span class="n">sinh</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
</code></pre>
</div>

View file

@ -106,12 +106,12 @@
<label class="view-source-button" for="mod-linalg-view-source"><span>View Source</span></label>
<div class="pdoc-code codehilite"><pre><span></span><span id="L-1"><a href="#L-1"><span class="linenos"> 1</span></a><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
</span><span id="L-2"><a href="#L-2"><span class="linenos"> 2</span></a><span class="kn">import</span> <span class="nn">autograd.numpy</span> <span class="k">as</span> <span class="nn">anp</span> <span class="c1"># Thinly-wrapped numpy</span>
</span><span id="L-3"><a href="#L-3"><span class="linenos"> 3</span></a><span class="kn">from</span> <span class="nn">.obs</span> <span class="kn">import</span> <span class="n">derived_observable</span><span class="p">,</span> <span class="n">CObs</span><span class="p">,</span> <span class="n">Obs</span><span class="p">,</span> <span class="n">import_jackknife</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="L-1"><a href="#L-1"><span class="linenos"> 1</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">np</span>
</span><span id="L-2"><a href="#L-2"><span class="linenos"> 2</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">autograd.numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">anp</span> <span class="c1"># Thinly-wrapped numpy</span>
</span><span id="L-3"><a href="#L-3"><span class="linenos"> 3</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">.obs</span><span class="w"> </span><span class="kn">import</span> <span class="n">derived_observable</span><span class="p">,</span> <span class="n">CObs</span><span class="p">,</span> <span class="n">Obs</span><span class="p">,</span> <span class="n">import_jackknife</span>
</span><span id="L-4"><a href="#L-4"><span class="linenos"> 4</span></a>
</span><span id="L-5"><a href="#L-5"><span class="linenos"> 5</span></a>
</span><span id="L-6"><a href="#L-6"><span class="linenos"> 6</span></a><span class="k">def</span> <span class="nf">matmul</span><span class="p">(</span><span class="o">*</span><span class="n">operands</span><span class="p">):</span>
</span><span id="L-6"><a href="#L-6"><span class="linenos"> 6</span></a><span class="k">def</span><span class="w"> </span><span class="nf">matmul</span><span class="p">(</span><span class="o">*</span><span class="n">operands</span><span class="p">):</span>
</span><span id="L-7"><a href="#L-7"><span class="linenos"> 7</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Matrix multiply all operands.</span>
</span><span id="L-8"><a href="#L-8"><span class="linenos"> 8</span></a>
</span><span id="L-9"><a href="#L-9"><span class="linenos"> 9</span></a><span class="sd"> Parameters</span>
@ -129,7 +129,7 @@
</span><span id="L-21"><a href="#L-21"><span class="linenos"> 21</span></a> <span class="n">extended_operands</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">tmp</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
</span><span id="L-22"><a href="#L-22"><span class="linenos"> 22</span></a> <span class="n">extended_operands</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">tmp</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
</span><span id="L-23"><a href="#L-23"><span class="linenos"> 23</span></a>
</span><span id="L-24"><a href="#L-24"><span class="linenos"> 24</span></a> <span class="k">def</span> <span class="nf">multi_dot</span><span class="p">(</span><span class="n">operands</span><span class="p">,</span> <span class="n">part</span><span class="p">):</span>
</span><span id="L-24"><a href="#L-24"><span class="linenos"> 24</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">multi_dot</span><span class="p">(</span><span class="n">operands</span><span class="p">,</span> <span class="n">part</span><span class="p">):</span>
</span><span id="L-25"><a href="#L-25"><span class="linenos"> 25</span></a> <span class="n">stack_r</span> <span class="o">=</span> <span class="n">operands</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
</span><span id="L-26"><a href="#L-26"><span class="linenos"> 26</span></a> <span class="n">stack_i</span> <span class="o">=</span> <span class="n">operands</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span>
</span><span id="L-27"><a href="#L-27"><span class="linenos"> 27</span></a> <span class="k">for</span> <span class="n">op_r</span><span class="p">,</span> <span class="n">op_i</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">operands</span><span class="p">[</span><span class="mi">2</span><span class="p">::</span><span class="mi">2</span><span class="p">],</span> <span class="n">operands</span><span class="p">[</span><span class="mi">3</span><span class="p">::</span><span class="mi">2</span><span class="p">]):</span>
@ -144,10 +144,10 @@
</span><span id="L-36"><a href="#L-36"><span class="linenos"> 36</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-37"><a href="#L-37"><span class="linenos"> 37</span></a> <span class="k">return</span> <span class="n">stack_i</span>
</span><span id="L-38"><a href="#L-38"><span class="linenos"> 38</span></a>
</span><span id="L-39"><a href="#L-39"><span class="linenos"> 39</span></a> <span class="k">def</span> <span class="nf">multi_dot_r</span><span class="p">(</span><span class="n">operands</span><span class="p">):</span>
</span><span id="L-39"><a href="#L-39"><span class="linenos"> 39</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">multi_dot_r</span><span class="p">(</span><span class="n">operands</span><span class="p">):</span>
</span><span id="L-40"><a href="#L-40"><span class="linenos"> 40</span></a> <span class="k">return</span> <span class="n">multi_dot</span><span class="p">(</span><span class="n">operands</span><span class="p">,</span> <span class="s1">&#39;Real&#39;</span><span class="p">)</span>
</span><span id="L-41"><a href="#L-41"><span class="linenos"> 41</span></a>
</span><span id="L-42"><a href="#L-42"><span class="linenos"> 42</span></a> <span class="k">def</span> <span class="nf">multi_dot_i</span><span class="p">(</span><span class="n">operands</span><span class="p">):</span>
</span><span id="L-42"><a href="#L-42"><span class="linenos"> 42</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">multi_dot_i</span><span class="p">(</span><span class="n">operands</span><span class="p">):</span>
</span><span id="L-43"><a href="#L-43"><span class="linenos"> 43</span></a> <span class="k">return</span> <span class="n">multi_dot</span><span class="p">(</span><span class="n">operands</span><span class="p">,</span> <span class="s1">&#39;Imag&#39;</span><span class="p">)</span>
</span><span id="L-44"><a href="#L-44"><span class="linenos"> 44</span></a>
</span><span id="L-45"><a href="#L-45"><span class="linenos"> 45</span></a> <span class="n">Nr</span> <span class="o">=</span> <span class="n">derived_observable</span><span class="p">(</span><span class="n">multi_dot_r</span><span class="p">,</span> <span class="n">extended_operands</span><span class="p">,</span> <span class="n">array_mode</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
@ -159,7 +159,7 @@
</span><span id="L-51"><a href="#L-51"><span class="linenos"> 51</span></a>
</span><span id="L-52"><a href="#L-52"><span class="linenos"> 52</span></a> <span class="k">return</span> <span class="n">res</span>
</span><span id="L-53"><a href="#L-53"><span class="linenos"> 53</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-54"><a href="#L-54"><span class="linenos"> 54</span></a> <span class="k">def</span> <span class="nf">multi_dot</span><span class="p">(</span><span class="n">operands</span><span class="p">):</span>
</span><span id="L-54"><a href="#L-54"><span class="linenos"> 54</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">multi_dot</span><span class="p">(</span><span class="n">operands</span><span class="p">):</span>
</span><span id="L-55"><a href="#L-55"><span class="linenos"> 55</span></a> <span class="n">stack</span> <span class="o">=</span> <span class="n">operands</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
</span><span id="L-56"><a href="#L-56"><span class="linenos"> 56</span></a> <span class="k">for</span> <span class="n">op</span> <span class="ow">in</span> <span class="n">operands</span><span class="p">[</span><span class="mi">1</span><span class="p">:]:</span>
</span><span id="L-57"><a href="#L-57"><span class="linenos"> 57</span></a> <span class="n">stack</span> <span class="o">=</span> <span class="n">stack</span> <span class="o">@</span> <span class="n">op</span>
@ -167,7 +167,7 @@
</span><span id="L-59"><a href="#L-59"><span class="linenos"> 59</span></a> <span class="k">return</span> <span class="n">derived_observable</span><span class="p">(</span><span class="n">multi_dot</span><span class="p">,</span> <span class="n">operands</span><span class="p">,</span> <span class="n">array_mode</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
</span><span id="L-60"><a href="#L-60"><span class="linenos"> 60</span></a>
</span><span id="L-61"><a href="#L-61"><span class="linenos"> 61</span></a>
</span><span id="L-62"><a href="#L-62"><span class="linenos"> 62</span></a><span class="k">def</span> <span class="nf">jack_matmul</span><span class="p">(</span><span class="o">*</span><span class="n">operands</span><span class="p">):</span>
</span><span id="L-62"><a href="#L-62"><span class="linenos"> 62</span></a><span class="k">def</span><span class="w"> </span><span class="nf">jack_matmul</span><span class="p">(</span><span class="o">*</span><span class="n">operands</span><span class="p">):</span>
</span><span id="L-63"><a href="#L-63"><span class="linenos"> 63</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Matrix multiply both operands making use of the jackknife approximation.</span>
</span><span id="L-64"><a href="#L-64"><span class="linenos"> 64</span></a>
</span><span id="L-65"><a href="#L-65"><span class="linenos"> 65</span></a><span class="sd"> Parameters</span>
@ -179,25 +179,25 @@
</span><span id="L-71"><a href="#L-71"><span class="linenos"> 71</span></a><span class="sd"> For large matrices this is considerably faster compared to matmul.</span>
</span><span id="L-72"><a href="#L-72"><span class="linenos"> 72</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-73"><a href="#L-73"><span class="linenos"> 73</span></a>
</span><span id="L-74"><a href="#L-74"><span class="linenos"> 74</span></a> <span class="k">def</span> <span class="nf">_exp_to_jack</span><span class="p">(</span><span class="n">matrix</span><span class="p">):</span>
</span><span id="L-74"><a href="#L-74"><span class="linenos"> 74</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">_exp_to_jack</span><span class="p">(</span><span class="n">matrix</span><span class="p">):</span>
</span><span id="L-75"><a href="#L-75"><span class="linenos"> 75</span></a> <span class="n">base_matrix</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">empty_like</span><span class="p">(</span><span class="n">matrix</span><span class="p">)</span>
</span><span id="L-76"><a href="#L-76"><span class="linenos"> 76</span></a> <span class="k">for</span> <span class="n">index</span><span class="p">,</span> <span class="n">entry</span> <span class="ow">in</span> <span class="n">np</span><span class="o">.</span><span class="n">ndenumerate</span><span class="p">(</span><span class="n">matrix</span><span class="p">):</span>
</span><span id="L-77"><a href="#L-77"><span class="linenos"> 77</span></a> <span class="n">base_matrix</span><span class="p">[</span><span class="n">index</span><span class="p">]</span> <span class="o">=</span> <span class="n">entry</span><span class="o">.</span><span class="n">export_jackknife</span><span class="p">()</span>
</span><span id="L-78"><a href="#L-78"><span class="linenos"> 78</span></a> <span class="k">return</span> <span class="n">base_matrix</span>
</span><span id="L-79"><a href="#L-79"><span class="linenos"> 79</span></a>
</span><span id="L-80"><a href="#L-80"><span class="linenos"> 80</span></a> <span class="k">def</span> <span class="nf">_imp_from_jack</span><span class="p">(</span><span class="n">matrix</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">idl</span><span class="p">):</span>
</span><span id="L-80"><a href="#L-80"><span class="linenos"> 80</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">_imp_from_jack</span><span class="p">(</span><span class="n">matrix</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">idl</span><span class="p">):</span>
</span><span id="L-81"><a href="#L-81"><span class="linenos"> 81</span></a> <span class="n">base_matrix</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">empty_like</span><span class="p">(</span><span class="n">matrix</span><span class="p">)</span>
</span><span id="L-82"><a href="#L-82"><span class="linenos"> 82</span></a> <span class="k">for</span> <span class="n">index</span><span class="p">,</span> <span class="n">entry</span> <span class="ow">in</span> <span class="n">np</span><span class="o">.</span><span class="n">ndenumerate</span><span class="p">(</span><span class="n">matrix</span><span class="p">):</span>
</span><span id="L-83"><a href="#L-83"><span class="linenos"> 83</span></a> <span class="n">base_matrix</span><span class="p">[</span><span class="n">index</span><span class="p">]</span> <span class="o">=</span> <span class="n">import_jackknife</span><span class="p">(</span><span class="n">entry</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="p">[</span><span class="n">idl</span><span class="p">])</span>
</span><span id="L-84"><a href="#L-84"><span class="linenos"> 84</span></a> <span class="k">return</span> <span class="n">base_matrix</span>
</span><span id="L-85"><a href="#L-85"><span class="linenos"> 85</span></a>
</span><span id="L-86"><a href="#L-86"><span class="linenos"> 86</span></a> <span class="k">def</span> <span class="nf">_exp_to_jack_c</span><span class="p">(</span><span class="n">matrix</span><span class="p">):</span>
</span><span id="L-86"><a href="#L-86"><span class="linenos"> 86</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">_exp_to_jack_c</span><span class="p">(</span><span class="n">matrix</span><span class="p">):</span>
</span><span id="L-87"><a href="#L-87"><span class="linenos"> 87</span></a> <span class="n">base_matrix</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">empty_like</span><span class="p">(</span><span class="n">matrix</span><span class="p">)</span>
</span><span id="L-88"><a href="#L-88"><span class="linenos"> 88</span></a> <span class="k">for</span> <span class="n">index</span><span class="p">,</span> <span class="n">entry</span> <span class="ow">in</span> <span class="n">np</span><span class="o">.</span><span class="n">ndenumerate</span><span class="p">(</span><span class="n">matrix</span><span class="p">):</span>
</span><span id="L-89"><a href="#L-89"><span class="linenos"> 89</span></a> <span class="n">base_matrix</span><span class="p">[</span><span class="n">index</span><span class="p">]</span> <span class="o">=</span> <span class="n">entry</span><span class="o">.</span><span class="n">real</span><span class="o">.</span><span class="n">export_jackknife</span><span class="p">()</span> <span class="o">+</span> <span class="mi">1</span><span class="n">j</span> <span class="o">*</span> <span class="n">entry</span><span class="o">.</span><span class="n">imag</span><span class="o">.</span><span class="n">export_jackknife</span><span class="p">()</span>
</span><span id="L-90"><a href="#L-90"><span class="linenos"> 90</span></a> <span class="k">return</span> <span class="n">base_matrix</span>
</span><span id="L-91"><a href="#L-91"><span class="linenos"> 91</span></a>
</span><span id="L-92"><a href="#L-92"><span class="linenos"> 92</span></a> <span class="k">def</span> <span class="nf">_imp_from_jack_c</span><span class="p">(</span><span class="n">matrix</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">idl</span><span class="p">):</span>
</span><span id="L-92"><a href="#L-92"><span class="linenos"> 92</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">_imp_from_jack_c</span><span class="p">(</span><span class="n">matrix</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">idl</span><span class="p">):</span>
</span><span id="L-93"><a href="#L-93"><span class="linenos"> 93</span></a> <span class="n">base_matrix</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">empty_like</span><span class="p">(</span><span class="n">matrix</span><span class="p">)</span>
</span><span id="L-94"><a href="#L-94"><span class="linenos"> 94</span></a> <span class="k">for</span> <span class="n">index</span><span class="p">,</span> <span class="n">entry</span> <span class="ow">in</span> <span class="n">np</span><span class="o">.</span><span class="n">ndenumerate</span><span class="p">(</span><span class="n">matrix</span><span class="p">):</span>
</span><span id="L-95"><a href="#L-95"><span class="linenos"> 95</span></a> <span class="n">base_matrix</span><span class="p">[</span><span class="n">index</span><span class="p">]</span> <span class="o">=</span> <span class="n">CObs</span><span class="p">(</span><span class="n">import_jackknife</span><span class="p">(</span><span class="n">entry</span><span class="o">.</span><span class="n">real</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="p">[</span><span class="n">idl</span><span class="p">]),</span>
@ -228,7 +228,7 @@
</span><span id="L-120"><a href="#L-120"><span class="linenos">120</span></a> <span class="k">return</span> <span class="n">_imp_from_jack</span><span class="p">(</span><span class="n">r</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">idl</span><span class="p">)</span>
</span><span id="L-121"><a href="#L-121"><span class="linenos">121</span></a>
</span><span id="L-122"><a href="#L-122"><span class="linenos">122</span></a>
</span><span id="L-123"><a href="#L-123"><span class="linenos">123</span></a><span class="k">def</span> <span class="nf">einsum</span><span class="p">(</span><span class="n">subscripts</span><span class="p">,</span> <span class="o">*</span><span class="n">operands</span><span class="p">):</span>
</span><span id="L-123"><a href="#L-123"><span class="linenos">123</span></a><span class="k">def</span><span class="w"> </span><span class="nf">einsum</span><span class="p">(</span><span class="n">subscripts</span><span class="p">,</span> <span class="o">*</span><span class="n">operands</span><span class="p">):</span>
</span><span id="L-124"><a href="#L-124"><span class="linenos">124</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Wrapper for numpy.einsum</span>
</span><span id="L-125"><a href="#L-125"><span class="linenos">125</span></a>
</span><span id="L-126"><a href="#L-126"><span class="linenos">126</span></a><span class="sd"> Parameters</span>
@ -240,25 +240,25 @@
</span><span id="L-132"><a href="#L-132"><span class="linenos">132</span></a><span class="sd"> Obs valued.</span>
</span><span id="L-133"><a href="#L-133"><span class="linenos">133</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-134"><a href="#L-134"><span class="linenos">134</span></a>
</span><span id="L-135"><a href="#L-135"><span class="linenos">135</span></a> <span class="k">def</span> <span class="nf">_exp_to_jack</span><span class="p">(</span><span class="n">matrix</span><span class="p">):</span>
</span><span id="L-135"><a href="#L-135"><span class="linenos">135</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">_exp_to_jack</span><span class="p">(</span><span class="n">matrix</span><span class="p">):</span>
</span><span id="L-136"><a href="#L-136"><span class="linenos">136</span></a> <span class="n">base_matrix</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-137"><a href="#L-137"><span class="linenos">137</span></a> <span class="k">for</span> <span class="n">index</span><span class="p">,</span> <span class="n">entry</span> <span class="ow">in</span> <span class="n">np</span><span class="o">.</span><span class="n">ndenumerate</span><span class="p">(</span><span class="n">matrix</span><span class="p">):</span>
</span><span id="L-138"><a href="#L-138"><span class="linenos">138</span></a> <span class="n">base_matrix</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">entry</span><span class="o">.</span><span class="n">export_jackknife</span><span class="p">())</span>
</span><span id="L-139"><a href="#L-139"><span class="linenos">139</span></a> <span class="k">return</span> <span class="n">np</span><span class="o">.</span><span class="n">asarray</span><span class="p">(</span><span class="n">base_matrix</span><span class="p">)</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="n">matrix</span><span class="o">.</span><span class="n">shape</span> <span class="o">+</span> <span class="n">base_matrix</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">shape</span><span class="p">)</span>
</span><span id="L-140"><a href="#L-140"><span class="linenos">140</span></a>
</span><span id="L-141"><a href="#L-141"><span class="linenos">141</span></a> <span class="k">def</span> <span class="nf">_exp_to_jack_c</span><span class="p">(</span><span class="n">matrix</span><span class="p">):</span>
</span><span id="L-141"><a href="#L-141"><span class="linenos">141</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">_exp_to_jack_c</span><span class="p">(</span><span class="n">matrix</span><span class="p">):</span>
</span><span id="L-142"><a href="#L-142"><span class="linenos">142</span></a> <span class="n">base_matrix</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-143"><a href="#L-143"><span class="linenos">143</span></a> <span class="k">for</span> <span class="n">index</span><span class="p">,</span> <span class="n">entry</span> <span class="ow">in</span> <span class="n">np</span><span class="o">.</span><span class="n">ndenumerate</span><span class="p">(</span><span class="n">matrix</span><span class="p">):</span>
</span><span id="L-144"><a href="#L-144"><span class="linenos">144</span></a> <span class="n">base_matrix</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">entry</span><span class="o">.</span><span class="n">real</span><span class="o">.</span><span class="n">export_jackknife</span><span class="p">()</span> <span class="o">+</span> <span class="mi">1</span><span class="n">j</span> <span class="o">*</span> <span class="n">entry</span><span class="o">.</span><span class="n">imag</span><span class="o">.</span><span class="n">export_jackknife</span><span class="p">())</span>
</span><span id="L-145"><a href="#L-145"><span class="linenos">145</span></a> <span class="k">return</span> <span class="n">np</span><span class="o">.</span><span class="n">asarray</span><span class="p">(</span><span class="n">base_matrix</span><span class="p">)</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="n">matrix</span><span class="o">.</span><span class="n">shape</span> <span class="o">+</span> <span class="n">base_matrix</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">shape</span><span class="p">)</span>
</span><span id="L-146"><a href="#L-146"><span class="linenos">146</span></a>
</span><span id="L-147"><a href="#L-147"><span class="linenos">147</span></a> <span class="k">def</span> <span class="nf">_imp_from_jack</span><span class="p">(</span><span class="n">matrix</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">idl</span><span class="p">):</span>
</span><span id="L-147"><a href="#L-147"><span class="linenos">147</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">_imp_from_jack</span><span class="p">(</span><span class="n">matrix</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">idl</span><span class="p">):</span>
</span><span id="L-148"><a href="#L-148"><span class="linenos">148</span></a> <span class="n">base_matrix</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">empty</span><span class="p">(</span><span class="n">shape</span><span class="o">=</span><span class="n">matrix</span><span class="o">.</span><span class="n">shape</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">],</span> <span class="n">dtype</span><span class="o">=</span><span class="nb">object</span><span class="p">)</span>
</span><span id="L-149"><a href="#L-149"><span class="linenos">149</span></a> <span class="k">for</span> <span class="n">index</span> <span class="ow">in</span> <span class="n">np</span><span class="o">.</span><span class="n">ndindex</span><span class="p">(</span><span class="n">matrix</span><span class="o">.</span><span class="n">shape</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">]):</span>
</span><span id="L-150"><a href="#L-150"><span class="linenos">150</span></a> <span class="n">base_matrix</span><span class="p">[</span><span class="n">index</span><span class="p">]</span> <span class="o">=</span> <span class="n">import_jackknife</span><span class="p">(</span><span class="n">matrix</span><span class="p">[</span><span class="n">index</span><span class="p">],</span> <span class="n">name</span><span class="p">,</span> <span class="p">[</span><span class="n">idl</span><span class="p">])</span>
</span><span id="L-151"><a href="#L-151"><span class="linenos">151</span></a> <span class="k">return</span> <span class="n">base_matrix</span>
</span><span id="L-152"><a href="#L-152"><span class="linenos">152</span></a>
</span><span id="L-153"><a href="#L-153"><span class="linenos">153</span></a> <span class="k">def</span> <span class="nf">_imp_from_jack_c</span><span class="p">(</span><span class="n">matrix</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">idl</span><span class="p">):</span>
</span><span id="L-153"><a href="#L-153"><span class="linenos">153</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">_imp_from_jack_c</span><span class="p">(</span><span class="n">matrix</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">idl</span><span class="p">):</span>
</span><span id="L-154"><a href="#L-154"><span class="linenos">154</span></a> <span class="n">base_matrix</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">empty</span><span class="p">(</span><span class="n">shape</span><span class="o">=</span><span class="n">matrix</span><span class="o">.</span><span class="n">shape</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">],</span> <span class="n">dtype</span><span class="o">=</span><span class="nb">object</span><span class="p">)</span>
</span><span id="L-155"><a href="#L-155"><span class="linenos">155</span></a> <span class="k">for</span> <span class="n">index</span> <span class="ow">in</span> <span class="n">np</span><span class="o">.</span><span class="n">ndindex</span><span class="p">(</span><span class="n">matrix</span><span class="o">.</span><span class="n">shape</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">]):</span>
</span><span id="L-156"><a href="#L-156"><span class="linenos">156</span></a> <span class="n">base_matrix</span><span class="p">[</span><span class="n">index</span><span class="p">]</span> <span class="o">=</span> <span class="n">CObs</span><span class="p">(</span><span class="n">import_jackknife</span><span class="p">(</span><span class="n">matrix</span><span class="p">[</span><span class="n">index</span><span class="p">]</span><span class="o">.</span><span class="n">real</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="p">[</span><span class="n">idl</span><span class="p">]),</span>
@ -302,26 +302,26 @@
</span><span id="L-194"><a href="#L-194"><span class="linenos">194</span></a> <span class="k">return</span> <span class="n">result</span>
</span><span id="L-195"><a href="#L-195"><span class="linenos">195</span></a>
</span><span id="L-196"><a href="#L-196"><span class="linenos">196</span></a>
</span><span id="L-197"><a href="#L-197"><span class="linenos">197</span></a><span class="k">def</span> <span class="nf">inv</span><span class="p">(</span><span class="n">x</span><span class="p">):</span>
</span><span id="L-197"><a href="#L-197"><span class="linenos">197</span></a><span class="k">def</span><span class="w"> </span><span class="nf">inv</span><span class="p">(</span><span class="n">x</span><span class="p">):</span>
</span><span id="L-198"><a href="#L-198"><span class="linenos">198</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Inverse of Obs or CObs valued matrices.&quot;&quot;&quot;</span>
</span><span id="L-199"><a href="#L-199"><span class="linenos">199</span></a> <span class="k">return</span> <span class="n">_mat_mat_op</span><span class="p">(</span><span class="n">anp</span><span class="o">.</span><span class="n">linalg</span><span class="o">.</span><span class="n">inv</span><span class="p">,</span> <span class="n">x</span><span class="p">)</span>
</span><span id="L-200"><a href="#L-200"><span class="linenos">200</span></a>
</span><span id="L-201"><a href="#L-201"><span class="linenos">201</span></a>
</span><span id="L-202"><a href="#L-202"><span class="linenos">202</span></a><span class="k">def</span> <span class="nf">cholesky</span><span class="p">(</span><span class="n">x</span><span class="p">):</span>
</span><span id="L-202"><a href="#L-202"><span class="linenos">202</span></a><span class="k">def</span><span class="w"> </span><span class="nf">cholesky</span><span class="p">(</span><span class="n">x</span><span class="p">):</span>
</span><span id="L-203"><a href="#L-203"><span class="linenos">203</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Cholesky decomposition of Obs valued matrices.&quot;&quot;&quot;</span>
</span><span id="L-204"><a href="#L-204"><span class="linenos">204</span></a> <span class="k">if</span> <span class="nb">any</span><span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">o</span><span class="p">,</span> <span class="n">CObs</span><span class="p">)</span> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">x</span><span class="o">.</span><span class="n">ravel</span><span class="p">()):</span>
</span><span id="L-205"><a href="#L-205"><span class="linenos">205</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">&quot;Cholesky decomposition is not implemented for CObs.&quot;</span><span class="p">)</span>
</span><span id="L-206"><a href="#L-206"><span class="linenos">206</span></a> <span class="k">return</span> <span class="n">_mat_mat_op</span><span class="p">(</span><span class="n">anp</span><span class="o">.</span><span class="n">linalg</span><span class="o">.</span><span class="n">cholesky</span><span class="p">,</span> <span class="n">x</span><span class="p">)</span>
</span><span id="L-207"><a href="#L-207"><span class="linenos">207</span></a>
</span><span id="L-208"><a href="#L-208"><span class="linenos">208</span></a>
</span><span id="L-209"><a href="#L-209"><span class="linenos">209</span></a><span class="k">def</span> <span class="nf">det</span><span class="p">(</span><span class="n">x</span><span class="p">):</span>
</span><span id="L-209"><a href="#L-209"><span class="linenos">209</span></a><span class="k">def</span><span class="w"> </span><span class="nf">det</span><span class="p">(</span><span class="n">x</span><span class="p">):</span>
</span><span id="L-210"><a href="#L-210"><span class="linenos">210</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Determinant of Obs valued matrices.&quot;&quot;&quot;</span>
</span><span id="L-211"><a href="#L-211"><span class="linenos">211</span></a> <span class="k">return</span> <span class="n">_scalar_mat_op</span><span class="p">(</span><span class="n">anp</span><span class="o">.</span><span class="n">linalg</span><span class="o">.</span><span class="n">det</span><span class="p">,</span> <span class="n">x</span><span class="p">)</span>
</span><span id="L-212"><a href="#L-212"><span class="linenos">212</span></a>
</span><span id="L-213"><a href="#L-213"><span class="linenos">213</span></a>
</span><span id="L-214"><a href="#L-214"><span class="linenos">214</span></a><span class="k">def</span> <span class="nf">_scalar_mat_op</span><span class="p">(</span><span class="n">op</span><span class="p">,</span> <span class="n">obs</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="L-214"><a href="#L-214"><span class="linenos">214</span></a><span class="k">def</span><span class="w"> </span><span class="nf">_scalar_mat_op</span><span class="p">(</span><span class="n">op</span><span class="p">,</span> <span class="n">obs</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="L-215"><a href="#L-215"><span class="linenos">215</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Computes the matrix to scalar operation op to a given matrix of Obs.&quot;&quot;&quot;</span>
</span><span id="L-216"><a href="#L-216"><span class="linenos">216</span></a> <span class="k">def</span> <span class="nf">_mat</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="L-216"><a href="#L-216"><span class="linenos">216</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">_mat</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="L-217"><a href="#L-217"><span class="linenos">217</span></a> <span class="n">dim</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">x</span><span class="p">)))</span>
</span><span id="L-218"><a href="#L-218"><span class="linenos">218</span></a>
</span><span id="L-219"><a href="#L-219"><span class="linenos">219</span></a> <span class="n">mat</span> <span class="o">=</span> <span class="p">[]</span>
@ -340,7 +340,7 @@
</span><span id="L-232"><a href="#L-232"><span class="linenos">232</span></a> <span class="k">return</span> <span class="n">derived_observable</span><span class="p">(</span><span class="n">_mat</span><span class="p">,</span> <span class="n">raveled_obs</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
</span><span id="L-233"><a href="#L-233"><span class="linenos">233</span></a>
</span><span id="L-234"><a href="#L-234"><span class="linenos">234</span></a>
</span><span id="L-235"><a href="#L-235"><span class="linenos">235</span></a><span class="k">def</span> <span class="nf">_mat_mat_op</span><span class="p">(</span><span class="n">op</span><span class="p">,</span> <span class="n">obs</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="L-235"><a href="#L-235"><span class="linenos">235</span></a><span class="k">def</span><span class="w"> </span><span class="nf">_mat_mat_op</span><span class="p">(</span><span class="n">op</span><span class="p">,</span> <span class="n">obs</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="L-236"><a href="#L-236"><span class="linenos">236</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Computes the matrix to matrix operation op to a given matrix of Obs.&quot;&quot;&quot;</span>
</span><span id="L-237"><a href="#L-237"><span class="linenos">237</span></a> <span class="c1"># Use real representation to calculate matrix operations for complex matrices</span>
</span><span id="L-238"><a href="#L-238"><span class="linenos">238</span></a> <span class="k">if</span> <span class="nb">any</span><span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">o</span><span class="p">,</span> <span class="n">CObs</span><span class="p">)</span> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">obs</span><span class="o">.</span><span class="n">ravel</span><span class="p">()):</span>
@ -366,31 +366,31 @@
</span><span id="L-258"><a href="#L-258"><span class="linenos">258</span></a> <span class="k">return</span> <span class="n">derived_observable</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">:</span> <span class="n">op</span><span class="p">(</span><span class="n">x</span><span class="p">),</span> <span class="p">[</span><span class="n">obs</span><span class="p">],</span> <span class="n">array_mode</span><span class="o">=</span><span class="kc">True</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
</span><span id="L-259"><a href="#L-259"><span class="linenos">259</span></a>
</span><span id="L-260"><a href="#L-260"><span class="linenos">260</span></a>
</span><span id="L-261"><a href="#L-261"><span class="linenos">261</span></a><span class="k">def</span> <span class="nf">eigh</span><span class="p">(</span><span class="n">obs</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="L-261"><a href="#L-261"><span class="linenos">261</span></a><span class="k">def</span><span class="w"> </span><span class="nf">eigh</span><span class="p">(</span><span class="n">obs</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="L-262"><a href="#L-262"><span class="linenos">262</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Computes the eigenvalues and eigenvectors of a given hermitian matrix of Obs according to np.linalg.eigh.&quot;&quot;&quot;</span>
</span><span id="L-263"><a href="#L-263"><span class="linenos">263</span></a> <span class="n">w</span> <span class="o">=</span> <span class="n">derived_observable</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">:</span> <span class="n">anp</span><span class="o">.</span><span class="n">linalg</span><span class="o">.</span><span class="n">eigh</span><span class="p">(</span><span class="n">x</span><span class="p">)[</span><span class="mi">0</span><span class="p">],</span> <span class="n">obs</span><span class="p">)</span>
</span><span id="L-264"><a href="#L-264"><span class="linenos">264</span></a> <span class="n">v</span> <span class="o">=</span> <span class="n">derived_observable</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">:</span> <span class="n">anp</span><span class="o">.</span><span class="n">linalg</span><span class="o">.</span><span class="n">eigh</span><span class="p">(</span><span class="n">x</span><span class="p">)[</span><span class="mi">1</span><span class="p">],</span> <span class="n">obs</span><span class="p">)</span>
</span><span id="L-265"><a href="#L-265"><span class="linenos">265</span></a> <span class="k">return</span> <span class="n">w</span><span class="p">,</span> <span class="n">v</span>
</span><span id="L-266"><a href="#L-266"><span class="linenos">266</span></a>
</span><span id="L-267"><a href="#L-267"><span class="linenos">267</span></a>
</span><span id="L-268"><a href="#L-268"><span class="linenos">268</span></a><span class="k">def</span> <span class="nf">eig</span><span class="p">(</span><span class="n">obs</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="L-268"><a href="#L-268"><span class="linenos">268</span></a><span class="k">def</span><span class="w"> </span><span class="nf">eig</span><span class="p">(</span><span class="n">obs</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="L-269"><a href="#L-269"><span class="linenos">269</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Computes the eigenvalues of a given matrix of Obs according to np.linalg.eig.&quot;&quot;&quot;</span>
</span><span id="L-270"><a href="#L-270"><span class="linenos">270</span></a> <span class="n">w</span> <span class="o">=</span> <span class="n">derived_observable</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">:</span> <span class="n">anp</span><span class="o">.</span><span class="n">real</span><span class="p">(</span><span class="n">anp</span><span class="o">.</span><span class="n">linalg</span><span class="o">.</span><span class="n">eig</span><span class="p">(</span><span class="n">x</span><span class="p">)[</span><span class="mi">0</span><span class="p">]),</span> <span class="n">obs</span><span class="p">)</span>
</span><span id="L-271"><a href="#L-271"><span class="linenos">271</span></a> <span class="k">return</span> <span class="n">w</span>
</span><span id="L-272"><a href="#L-272"><span class="linenos">272</span></a>
</span><span id="L-273"><a href="#L-273"><span class="linenos">273</span></a>
</span><span id="L-274"><a href="#L-274"><span class="linenos">274</span></a><span class="k">def</span> <span class="nf">eigv</span><span class="p">(</span><span class="n">obs</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="L-274"><a href="#L-274"><span class="linenos">274</span></a><span class="k">def</span><span class="w"> </span><span class="nf">eigv</span><span class="p">(</span><span class="n">obs</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="L-275"><a href="#L-275"><span class="linenos">275</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Computes the eigenvectors of a given hermitian matrix of Obs according to np.linalg.eigh.&quot;&quot;&quot;</span>
</span><span id="L-276"><a href="#L-276"><span class="linenos">276</span></a> <span class="n">v</span> <span class="o">=</span> <span class="n">derived_observable</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">:</span> <span class="n">anp</span><span class="o">.</span><span class="n">linalg</span><span class="o">.</span><span class="n">eigh</span><span class="p">(</span><span class="n">x</span><span class="p">)[</span><span class="mi">1</span><span class="p">],</span> <span class="n">obs</span><span class="p">)</span>
</span><span id="L-277"><a href="#L-277"><span class="linenos">277</span></a> <span class="k">return</span> <span class="n">v</span>
</span><span id="L-278"><a href="#L-278"><span class="linenos">278</span></a>
</span><span id="L-279"><a href="#L-279"><span class="linenos">279</span></a>
</span><span id="L-280"><a href="#L-280"><span class="linenos">280</span></a><span class="k">def</span> <span class="nf">pinv</span><span class="p">(</span><span class="n">obs</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="L-280"><a href="#L-280"><span class="linenos">280</span></a><span class="k">def</span><span class="w"> </span><span class="nf">pinv</span><span class="p">(</span><span class="n">obs</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="L-281"><a href="#L-281"><span class="linenos">281</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Computes the Moore-Penrose pseudoinverse of a matrix of Obs.&quot;&quot;&quot;</span>
</span><span id="L-282"><a href="#L-282"><span class="linenos">282</span></a> <span class="k">return</span> <span class="n">derived_observable</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">:</span> <span class="n">anp</span><span class="o">.</span><span class="n">linalg</span><span class="o">.</span><span class="n">pinv</span><span class="p">(</span><span class="n">x</span><span class="p">),</span> <span class="n">obs</span><span class="p">)</span>
</span><span id="L-283"><a href="#L-283"><span class="linenos">283</span></a>
</span><span id="L-284"><a href="#L-284"><span class="linenos">284</span></a>
</span><span id="L-285"><a href="#L-285"><span class="linenos">285</span></a><span class="k">def</span> <span class="nf">svd</span><span class="p">(</span><span class="n">obs</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="L-285"><a href="#L-285"><span class="linenos">285</span></a><span class="k">def</span><span class="w"> </span><span class="nf">svd</span><span class="p">(</span><span class="n">obs</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="L-286"><a href="#L-286"><span class="linenos">286</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Computes the singular value decomposition of a matrix of Obs.&quot;&quot;&quot;</span>
</span><span id="L-287"><a href="#L-287"><span class="linenos">287</span></a> <span class="n">u</span> <span class="o">=</span> <span class="n">derived_observable</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">:</span> <span class="n">anp</span><span class="o">.</span><span class="n">linalg</span><span class="o">.</span><span class="n">svd</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">full_matrices</span><span class="o">=</span><span class="kc">False</span><span class="p">)[</span><span class="mi">0</span><span class="p">],</span> <span class="n">obs</span><span class="p">)</span>
</span><span id="L-288"><a href="#L-288"><span class="linenos">288</span></a> <span class="n">s</span> <span class="o">=</span> <span class="n">derived_observable</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">:</span> <span class="n">anp</span><span class="o">.</span><span class="n">linalg</span><span class="o">.</span><span class="n">svd</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">full_matrices</span><span class="o">=</span><span class="kc">False</span><span class="p">)[</span><span class="mi">1</span><span class="p">],</span> <span class="n">obs</span><span class="p">)</span>
@ -411,7 +411,7 @@
</div>
<a class="headerlink" href="#matmul"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="matmul-7"><a href="#matmul-7"><span class="linenos"> 7</span></a><span class="k">def</span> <span class="nf">matmul</span><span class="p">(</span><span class="o">*</span><span class="n">operands</span><span class="p">):</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="matmul-7"><a href="#matmul-7"><span class="linenos"> 7</span></a><span class="k">def</span><span class="w"> </span><span class="nf">matmul</span><span class="p">(</span><span class="o">*</span><span class="n">operands</span><span class="p">):</span>
</span><span id="matmul-8"><a href="#matmul-8"><span class="linenos"> 8</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Matrix multiply all operands.</span>
</span><span id="matmul-9"><a href="#matmul-9"><span class="linenos"> 9</span></a>
</span><span id="matmul-10"><a href="#matmul-10"><span class="linenos">10</span></a><span class="sd"> Parameters</span>
@ -429,7 +429,7 @@
</span><span id="matmul-22"><a href="#matmul-22"><span class="linenos">22</span></a> <span class="n">extended_operands</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">tmp</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
</span><span id="matmul-23"><a href="#matmul-23"><span class="linenos">23</span></a> <span class="n">extended_operands</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">tmp</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
</span><span id="matmul-24"><a href="#matmul-24"><span class="linenos">24</span></a>
</span><span id="matmul-25"><a href="#matmul-25"><span class="linenos">25</span></a> <span class="k">def</span> <span class="nf">multi_dot</span><span class="p">(</span><span class="n">operands</span><span class="p">,</span> <span class="n">part</span><span class="p">):</span>
</span><span id="matmul-25"><a href="#matmul-25"><span class="linenos">25</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">multi_dot</span><span class="p">(</span><span class="n">operands</span><span class="p">,</span> <span class="n">part</span><span class="p">):</span>
</span><span id="matmul-26"><a href="#matmul-26"><span class="linenos">26</span></a> <span class="n">stack_r</span> <span class="o">=</span> <span class="n">operands</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
</span><span id="matmul-27"><a href="#matmul-27"><span class="linenos">27</span></a> <span class="n">stack_i</span> <span class="o">=</span> <span class="n">operands</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span>
</span><span id="matmul-28"><a href="#matmul-28"><span class="linenos">28</span></a> <span class="k">for</span> <span class="n">op_r</span><span class="p">,</span> <span class="n">op_i</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">operands</span><span class="p">[</span><span class="mi">2</span><span class="p">::</span><span class="mi">2</span><span class="p">],</span> <span class="n">operands</span><span class="p">[</span><span class="mi">3</span><span class="p">::</span><span class="mi">2</span><span class="p">]):</span>
@ -444,10 +444,10 @@
</span><span id="matmul-37"><a href="#matmul-37"><span class="linenos">37</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="matmul-38"><a href="#matmul-38"><span class="linenos">38</span></a> <span class="k">return</span> <span class="n">stack_i</span>
</span><span id="matmul-39"><a href="#matmul-39"><span class="linenos">39</span></a>
</span><span id="matmul-40"><a href="#matmul-40"><span class="linenos">40</span></a> <span class="k">def</span> <span class="nf">multi_dot_r</span><span class="p">(</span><span class="n">operands</span><span class="p">):</span>
</span><span id="matmul-40"><a href="#matmul-40"><span class="linenos">40</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">multi_dot_r</span><span class="p">(</span><span class="n">operands</span><span class="p">):</span>
</span><span id="matmul-41"><a href="#matmul-41"><span class="linenos">41</span></a> <span class="k">return</span> <span class="n">multi_dot</span><span class="p">(</span><span class="n">operands</span><span class="p">,</span> <span class="s1">&#39;Real&#39;</span><span class="p">)</span>
</span><span id="matmul-42"><a href="#matmul-42"><span class="linenos">42</span></a>
</span><span id="matmul-43"><a href="#matmul-43"><span class="linenos">43</span></a> <span class="k">def</span> <span class="nf">multi_dot_i</span><span class="p">(</span><span class="n">operands</span><span class="p">):</span>
</span><span id="matmul-43"><a href="#matmul-43"><span class="linenos">43</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">multi_dot_i</span><span class="p">(</span><span class="n">operands</span><span class="p">):</span>
</span><span id="matmul-44"><a href="#matmul-44"><span class="linenos">44</span></a> <span class="k">return</span> <span class="n">multi_dot</span><span class="p">(</span><span class="n">operands</span><span class="p">,</span> <span class="s1">&#39;Imag&#39;</span><span class="p">)</span>
</span><span id="matmul-45"><a href="#matmul-45"><span class="linenos">45</span></a>
</span><span id="matmul-46"><a href="#matmul-46"><span class="linenos">46</span></a> <span class="n">Nr</span> <span class="o">=</span> <span class="n">derived_observable</span><span class="p">(</span><span class="n">multi_dot_r</span><span class="p">,</span> <span class="n">extended_operands</span><span class="p">,</span> <span class="n">array_mode</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
@ -459,7 +459,7 @@
</span><span id="matmul-52"><a href="#matmul-52"><span class="linenos">52</span></a>
</span><span id="matmul-53"><a href="#matmul-53"><span class="linenos">53</span></a> <span class="k">return</span> <span class="n">res</span>
</span><span id="matmul-54"><a href="#matmul-54"><span class="linenos">54</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="matmul-55"><a href="#matmul-55"><span class="linenos">55</span></a> <span class="k">def</span> <span class="nf">multi_dot</span><span class="p">(</span><span class="n">operands</span><span class="p">):</span>
</span><span id="matmul-55"><a href="#matmul-55"><span class="linenos">55</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">multi_dot</span><span class="p">(</span><span class="n">operands</span><span class="p">):</span>
</span><span id="matmul-56"><a href="#matmul-56"><span class="linenos">56</span></a> <span class="n">stack</span> <span class="o">=</span> <span class="n">operands</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
</span><span id="matmul-57"><a href="#matmul-57"><span class="linenos">57</span></a> <span class="k">for</span> <span class="n">op</span> <span class="ow">in</span> <span class="n">operands</span><span class="p">[</span><span class="mi">1</span><span class="p">:]:</span>
</span><span id="matmul-58"><a href="#matmul-58"><span class="linenos">58</span></a> <span class="n">stack</span> <span class="o">=</span> <span class="n">stack</span> <span class="o">@</span> <span class="n">op</span>
@ -493,7 +493,7 @@ Obs valued.</li>
</div>
<a class="headerlink" href="#jack_matmul"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="jack_matmul-63"><a href="#jack_matmul-63"><span class="linenos"> 63</span></a><span class="k">def</span> <span class="nf">jack_matmul</span><span class="p">(</span><span class="o">*</span><span class="n">operands</span><span class="p">):</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="jack_matmul-63"><a href="#jack_matmul-63"><span class="linenos"> 63</span></a><span class="k">def</span><span class="w"> </span><span class="nf">jack_matmul</span><span class="p">(</span><span class="o">*</span><span class="n">operands</span><span class="p">):</span>
</span><span id="jack_matmul-64"><a href="#jack_matmul-64"><span class="linenos"> 64</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Matrix multiply both operands making use of the jackknife approximation.</span>
</span><span id="jack_matmul-65"><a href="#jack_matmul-65"><span class="linenos"> 65</span></a>
</span><span id="jack_matmul-66"><a href="#jack_matmul-66"><span class="linenos"> 66</span></a><span class="sd"> Parameters</span>
@ -505,25 +505,25 @@ Obs valued.</li>
</span><span id="jack_matmul-72"><a href="#jack_matmul-72"><span class="linenos"> 72</span></a><span class="sd"> For large matrices this is considerably faster compared to matmul.</span>
</span><span id="jack_matmul-73"><a href="#jack_matmul-73"><span class="linenos"> 73</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="jack_matmul-74"><a href="#jack_matmul-74"><span class="linenos"> 74</span></a>
</span><span id="jack_matmul-75"><a href="#jack_matmul-75"><span class="linenos"> 75</span></a> <span class="k">def</span> <span class="nf">_exp_to_jack</span><span class="p">(</span><span class="n">matrix</span><span class="p">):</span>
</span><span id="jack_matmul-75"><a href="#jack_matmul-75"><span class="linenos"> 75</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">_exp_to_jack</span><span class="p">(</span><span class="n">matrix</span><span class="p">):</span>
</span><span id="jack_matmul-76"><a href="#jack_matmul-76"><span class="linenos"> 76</span></a> <span class="n">base_matrix</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">empty_like</span><span class="p">(</span><span class="n">matrix</span><span class="p">)</span>
</span><span id="jack_matmul-77"><a href="#jack_matmul-77"><span class="linenos"> 77</span></a> <span class="k">for</span> <span class="n">index</span><span class="p">,</span> <span class="n">entry</span> <span class="ow">in</span> <span class="n">np</span><span class="o">.</span><span class="n">ndenumerate</span><span class="p">(</span><span class="n">matrix</span><span class="p">):</span>
</span><span id="jack_matmul-78"><a href="#jack_matmul-78"><span class="linenos"> 78</span></a> <span class="n">base_matrix</span><span class="p">[</span><span class="n">index</span><span class="p">]</span> <span class="o">=</span> <span class="n">entry</span><span class="o">.</span><span class="n">export_jackknife</span><span class="p">()</span>
</span><span id="jack_matmul-79"><a href="#jack_matmul-79"><span class="linenos"> 79</span></a> <span class="k">return</span> <span class="n">base_matrix</span>
</span><span id="jack_matmul-80"><a href="#jack_matmul-80"><span class="linenos"> 80</span></a>
</span><span id="jack_matmul-81"><a href="#jack_matmul-81"><span class="linenos"> 81</span></a> <span class="k">def</span> <span class="nf">_imp_from_jack</span><span class="p">(</span><span class="n">matrix</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">idl</span><span class="p">):</span>
</span><span id="jack_matmul-81"><a href="#jack_matmul-81"><span class="linenos"> 81</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">_imp_from_jack</span><span class="p">(</span><span class="n">matrix</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">idl</span><span class="p">):</span>
</span><span id="jack_matmul-82"><a href="#jack_matmul-82"><span class="linenos"> 82</span></a> <span class="n">base_matrix</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">empty_like</span><span class="p">(</span><span class="n">matrix</span><span class="p">)</span>
</span><span id="jack_matmul-83"><a href="#jack_matmul-83"><span class="linenos"> 83</span></a> <span class="k">for</span> <span class="n">index</span><span class="p">,</span> <span class="n">entry</span> <span class="ow">in</span> <span class="n">np</span><span class="o">.</span><span class="n">ndenumerate</span><span class="p">(</span><span class="n">matrix</span><span class="p">):</span>
</span><span id="jack_matmul-84"><a href="#jack_matmul-84"><span class="linenos"> 84</span></a> <span class="n">base_matrix</span><span class="p">[</span><span class="n">index</span><span class="p">]</span> <span class="o">=</span> <span class="n">import_jackknife</span><span class="p">(</span><span class="n">entry</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="p">[</span><span class="n">idl</span><span class="p">])</span>
</span><span id="jack_matmul-85"><a href="#jack_matmul-85"><span class="linenos"> 85</span></a> <span class="k">return</span> <span class="n">base_matrix</span>
</span><span id="jack_matmul-86"><a href="#jack_matmul-86"><span class="linenos"> 86</span></a>
</span><span id="jack_matmul-87"><a href="#jack_matmul-87"><span class="linenos"> 87</span></a> <span class="k">def</span> <span class="nf">_exp_to_jack_c</span><span class="p">(</span><span class="n">matrix</span><span class="p">):</span>
</span><span id="jack_matmul-87"><a href="#jack_matmul-87"><span class="linenos"> 87</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">_exp_to_jack_c</span><span class="p">(</span><span class="n">matrix</span><span class="p">):</span>
</span><span id="jack_matmul-88"><a href="#jack_matmul-88"><span class="linenos"> 88</span></a> <span class="n">base_matrix</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">empty_like</span><span class="p">(</span><span class="n">matrix</span><span class="p">)</span>
</span><span id="jack_matmul-89"><a href="#jack_matmul-89"><span class="linenos"> 89</span></a> <span class="k">for</span> <span class="n">index</span><span class="p">,</span> <span class="n">entry</span> <span class="ow">in</span> <span class="n">np</span><span class="o">.</span><span class="n">ndenumerate</span><span class="p">(</span><span class="n">matrix</span><span class="p">):</span>
</span><span id="jack_matmul-90"><a href="#jack_matmul-90"><span class="linenos"> 90</span></a> <span class="n">base_matrix</span><span class="p">[</span><span class="n">index</span><span class="p">]</span> <span class="o">=</span> <span class="n">entry</span><span class="o">.</span><span class="n">real</span><span class="o">.</span><span class="n">export_jackknife</span><span class="p">()</span> <span class="o">+</span> <span class="mi">1</span><span class="n">j</span> <span class="o">*</span> <span class="n">entry</span><span class="o">.</span><span class="n">imag</span><span class="o">.</span><span class="n">export_jackknife</span><span class="p">()</span>
</span><span id="jack_matmul-91"><a href="#jack_matmul-91"><span class="linenos"> 91</span></a> <span class="k">return</span> <span class="n">base_matrix</span>
</span><span id="jack_matmul-92"><a href="#jack_matmul-92"><span class="linenos"> 92</span></a>
</span><span id="jack_matmul-93"><a href="#jack_matmul-93"><span class="linenos"> 93</span></a> <span class="k">def</span> <span class="nf">_imp_from_jack_c</span><span class="p">(</span><span class="n">matrix</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">idl</span><span class="p">):</span>
</span><span id="jack_matmul-93"><a href="#jack_matmul-93"><span class="linenos"> 93</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">_imp_from_jack_c</span><span class="p">(</span><span class="n">matrix</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">idl</span><span class="p">):</span>
</span><span id="jack_matmul-94"><a href="#jack_matmul-94"><span class="linenos"> 94</span></a> <span class="n">base_matrix</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">empty_like</span><span class="p">(</span><span class="n">matrix</span><span class="p">)</span>
</span><span id="jack_matmul-95"><a href="#jack_matmul-95"><span class="linenos"> 95</span></a> <span class="k">for</span> <span class="n">index</span><span class="p">,</span> <span class="n">entry</span> <span class="ow">in</span> <span class="n">np</span><span class="o">.</span><span class="n">ndenumerate</span><span class="p">(</span><span class="n">matrix</span><span class="p">):</span>
</span><span id="jack_matmul-96"><a href="#jack_matmul-96"><span class="linenos"> 96</span></a> <span class="n">base_matrix</span><span class="p">[</span><span class="n">index</span><span class="p">]</span> <span class="o">=</span> <span class="n">CObs</span><span class="p">(</span><span class="n">import_jackknife</span><span class="p">(</span><span class="n">entry</span><span class="o">.</span><span class="n">real</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="p">[</span><span class="n">idl</span><span class="p">]),</span>
@ -580,7 +580,7 @@ Obs valued.</li>
</div>
<a class="headerlink" href="#einsum"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="einsum-124"><a href="#einsum-124"><span class="linenos">124</span></a><span class="k">def</span> <span class="nf">einsum</span><span class="p">(</span><span class="n">subscripts</span><span class="p">,</span> <span class="o">*</span><span class="n">operands</span><span class="p">):</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="einsum-124"><a href="#einsum-124"><span class="linenos">124</span></a><span class="k">def</span><span class="w"> </span><span class="nf">einsum</span><span class="p">(</span><span class="n">subscripts</span><span class="p">,</span> <span class="o">*</span><span class="n">operands</span><span class="p">):</span>
</span><span id="einsum-125"><a href="#einsum-125"><span class="linenos">125</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Wrapper for numpy.einsum</span>
</span><span id="einsum-126"><a href="#einsum-126"><span class="linenos">126</span></a>
</span><span id="einsum-127"><a href="#einsum-127"><span class="linenos">127</span></a><span class="sd"> Parameters</span>
@ -592,25 +592,25 @@ Obs valued.</li>
</span><span id="einsum-133"><a href="#einsum-133"><span class="linenos">133</span></a><span class="sd"> Obs valued.</span>
</span><span id="einsum-134"><a href="#einsum-134"><span class="linenos">134</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="einsum-135"><a href="#einsum-135"><span class="linenos">135</span></a>
</span><span id="einsum-136"><a href="#einsum-136"><span class="linenos">136</span></a> <span class="k">def</span> <span class="nf">_exp_to_jack</span><span class="p">(</span><span class="n">matrix</span><span class="p">):</span>
</span><span id="einsum-136"><a href="#einsum-136"><span class="linenos">136</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">_exp_to_jack</span><span class="p">(</span><span class="n">matrix</span><span class="p">):</span>
</span><span id="einsum-137"><a href="#einsum-137"><span class="linenos">137</span></a> <span class="n">base_matrix</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="einsum-138"><a href="#einsum-138"><span class="linenos">138</span></a> <span class="k">for</span> <span class="n">index</span><span class="p">,</span> <span class="n">entry</span> <span class="ow">in</span> <span class="n">np</span><span class="o">.</span><span class="n">ndenumerate</span><span class="p">(</span><span class="n">matrix</span><span class="p">):</span>
</span><span id="einsum-139"><a href="#einsum-139"><span class="linenos">139</span></a> <span class="n">base_matrix</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">entry</span><span class="o">.</span><span class="n">export_jackknife</span><span class="p">())</span>
</span><span id="einsum-140"><a href="#einsum-140"><span class="linenos">140</span></a> <span class="k">return</span> <span class="n">np</span><span class="o">.</span><span class="n">asarray</span><span class="p">(</span><span class="n">base_matrix</span><span class="p">)</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="n">matrix</span><span class="o">.</span><span class="n">shape</span> <span class="o">+</span> <span class="n">base_matrix</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">shape</span><span class="p">)</span>
</span><span id="einsum-141"><a href="#einsum-141"><span class="linenos">141</span></a>
</span><span id="einsum-142"><a href="#einsum-142"><span class="linenos">142</span></a> <span class="k">def</span> <span class="nf">_exp_to_jack_c</span><span class="p">(</span><span class="n">matrix</span><span class="p">):</span>
</span><span id="einsum-142"><a href="#einsum-142"><span class="linenos">142</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">_exp_to_jack_c</span><span class="p">(</span><span class="n">matrix</span><span class="p">):</span>
</span><span id="einsum-143"><a href="#einsum-143"><span class="linenos">143</span></a> <span class="n">base_matrix</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="einsum-144"><a href="#einsum-144"><span class="linenos">144</span></a> <span class="k">for</span> <span class="n">index</span><span class="p">,</span> <span class="n">entry</span> <span class="ow">in</span> <span class="n">np</span><span class="o">.</span><span class="n">ndenumerate</span><span class="p">(</span><span class="n">matrix</span><span class="p">):</span>
</span><span id="einsum-145"><a href="#einsum-145"><span class="linenos">145</span></a> <span class="n">base_matrix</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">entry</span><span class="o">.</span><span class="n">real</span><span class="o">.</span><span class="n">export_jackknife</span><span class="p">()</span> <span class="o">+</span> <span class="mi">1</span><span class="n">j</span> <span class="o">*</span> <span class="n">entry</span><span class="o">.</span><span class="n">imag</span><span class="o">.</span><span class="n">export_jackknife</span><span class="p">())</span>
</span><span id="einsum-146"><a href="#einsum-146"><span class="linenos">146</span></a> <span class="k">return</span> <span class="n">np</span><span class="o">.</span><span class="n">asarray</span><span class="p">(</span><span class="n">base_matrix</span><span class="p">)</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="n">matrix</span><span class="o">.</span><span class="n">shape</span> <span class="o">+</span> <span class="n">base_matrix</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">shape</span><span class="p">)</span>
</span><span id="einsum-147"><a href="#einsum-147"><span class="linenos">147</span></a>
</span><span id="einsum-148"><a href="#einsum-148"><span class="linenos">148</span></a> <span class="k">def</span> <span class="nf">_imp_from_jack</span><span class="p">(</span><span class="n">matrix</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">idl</span><span class="p">):</span>
</span><span id="einsum-148"><a href="#einsum-148"><span class="linenos">148</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">_imp_from_jack</span><span class="p">(</span><span class="n">matrix</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">idl</span><span class="p">):</span>
</span><span id="einsum-149"><a href="#einsum-149"><span class="linenos">149</span></a> <span class="n">base_matrix</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">empty</span><span class="p">(</span><span class="n">shape</span><span class="o">=</span><span class="n">matrix</span><span class="o">.</span><span class="n">shape</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">],</span> <span class="n">dtype</span><span class="o">=</span><span class="nb">object</span><span class="p">)</span>
</span><span id="einsum-150"><a href="#einsum-150"><span class="linenos">150</span></a> <span class="k">for</span> <span class="n">index</span> <span class="ow">in</span> <span class="n">np</span><span class="o">.</span><span class="n">ndindex</span><span class="p">(</span><span class="n">matrix</span><span class="o">.</span><span class="n">shape</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">]):</span>
</span><span id="einsum-151"><a href="#einsum-151"><span class="linenos">151</span></a> <span class="n">base_matrix</span><span class="p">[</span><span class="n">index</span><span class="p">]</span> <span class="o">=</span> <span class="n">import_jackknife</span><span class="p">(</span><span class="n">matrix</span><span class="p">[</span><span class="n">index</span><span class="p">],</span> <span class="n">name</span><span class="p">,</span> <span class="p">[</span><span class="n">idl</span><span class="p">])</span>
</span><span id="einsum-152"><a href="#einsum-152"><span class="linenos">152</span></a> <span class="k">return</span> <span class="n">base_matrix</span>
</span><span id="einsum-153"><a href="#einsum-153"><span class="linenos">153</span></a>
</span><span id="einsum-154"><a href="#einsum-154"><span class="linenos">154</span></a> <span class="k">def</span> <span class="nf">_imp_from_jack_c</span><span class="p">(</span><span class="n">matrix</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">idl</span><span class="p">):</span>
</span><span id="einsum-154"><a href="#einsum-154"><span class="linenos">154</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">_imp_from_jack_c</span><span class="p">(</span><span class="n">matrix</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">idl</span><span class="p">):</span>
</span><span id="einsum-155"><a href="#einsum-155"><span class="linenos">155</span></a> <span class="n">base_matrix</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">empty</span><span class="p">(</span><span class="n">shape</span><span class="o">=</span><span class="n">matrix</span><span class="o">.</span><span class="n">shape</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">],</span> <span class="n">dtype</span><span class="o">=</span><span class="nb">object</span><span class="p">)</span>
</span><span id="einsum-156"><a href="#einsum-156"><span class="linenos">156</span></a> <span class="k">for</span> <span class="n">index</span> <span class="ow">in</span> <span class="n">np</span><span class="o">.</span><span class="n">ndindex</span><span class="p">(</span><span class="n">matrix</span><span class="o">.</span><span class="n">shape</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">]):</span>
</span><span id="einsum-157"><a href="#einsum-157"><span class="linenos">157</span></a> <span class="n">base_matrix</span><span class="p">[</span><span class="n">index</span><span class="p">]</span> <span class="o">=</span> <span class="n">CObs</span><span class="p">(</span><span class="n">import_jackknife</span><span class="p">(</span><span class="n">matrix</span><span class="p">[</span><span class="n">index</span><span class="p">]</span><span class="o">.</span><span class="n">real</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="p">[</span><span class="n">idl</span><span class="p">]),</span>
@ -681,7 +681,7 @@ Obs valued.</li>
</div>
<a class="headerlink" href="#inv"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="inv-198"><a href="#inv-198"><span class="linenos">198</span></a><span class="k">def</span> <span class="nf">inv</span><span class="p">(</span><span class="n">x</span><span class="p">):</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="inv-198"><a href="#inv-198"><span class="linenos">198</span></a><span class="k">def</span><span class="w"> </span><span class="nf">inv</span><span class="p">(</span><span class="n">x</span><span class="p">):</span>
</span><span id="inv-199"><a href="#inv-199"><span class="linenos">199</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Inverse of Obs or CObs valued matrices.&quot;&quot;&quot;</span>
</span><span id="inv-200"><a href="#inv-200"><span class="linenos">200</span></a> <span class="k">return</span> <span class="n">_mat_mat_op</span><span class="p">(</span><span class="n">anp</span><span class="o">.</span><span class="n">linalg</span><span class="o">.</span><span class="n">inv</span><span class="p">,</span> <span class="n">x</span><span class="p">)</span>
</span></pre></div>
@ -703,7 +703,7 @@ Obs valued.</li>
</div>
<a class="headerlink" href="#cholesky"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="cholesky-203"><a href="#cholesky-203"><span class="linenos">203</span></a><span class="k">def</span> <span class="nf">cholesky</span><span class="p">(</span><span class="n">x</span><span class="p">):</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="cholesky-203"><a href="#cholesky-203"><span class="linenos">203</span></a><span class="k">def</span><span class="w"> </span><span class="nf">cholesky</span><span class="p">(</span><span class="n">x</span><span class="p">):</span>
</span><span id="cholesky-204"><a href="#cholesky-204"><span class="linenos">204</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Cholesky decomposition of Obs valued matrices.&quot;&quot;&quot;</span>
</span><span id="cholesky-205"><a href="#cholesky-205"><span class="linenos">205</span></a> <span class="k">if</span> <span class="nb">any</span><span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">o</span><span class="p">,</span> <span class="n">CObs</span><span class="p">)</span> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">x</span><span class="o">.</span><span class="n">ravel</span><span class="p">()):</span>
</span><span id="cholesky-206"><a href="#cholesky-206"><span class="linenos">206</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">&quot;Cholesky decomposition is not implemented for CObs.&quot;</span><span class="p">)</span>
@ -727,7 +727,7 @@ Obs valued.</li>
</div>
<a class="headerlink" href="#det"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="det-210"><a href="#det-210"><span class="linenos">210</span></a><span class="k">def</span> <span class="nf">det</span><span class="p">(</span><span class="n">x</span><span class="p">):</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="det-210"><a href="#det-210"><span class="linenos">210</span></a><span class="k">def</span><span class="w"> </span><span class="nf">det</span><span class="p">(</span><span class="n">x</span><span class="p">):</span>
</span><span id="det-211"><a href="#det-211"><span class="linenos">211</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Determinant of Obs valued matrices.&quot;&quot;&quot;</span>
</span><span id="det-212"><a href="#det-212"><span class="linenos">212</span></a> <span class="k">return</span> <span class="n">_scalar_mat_op</span><span class="p">(</span><span class="n">anp</span><span class="o">.</span><span class="n">linalg</span><span class="o">.</span><span class="n">det</span><span class="p">,</span> <span class="n">x</span><span class="p">)</span>
</span></pre></div>
@ -749,7 +749,7 @@ Obs valued.</li>
</div>
<a class="headerlink" href="#eigh"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="eigh-262"><a href="#eigh-262"><span class="linenos">262</span></a><span class="k">def</span> <span class="nf">eigh</span><span class="p">(</span><span class="n">obs</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="eigh-262"><a href="#eigh-262"><span class="linenos">262</span></a><span class="k">def</span><span class="w"> </span><span class="nf">eigh</span><span class="p">(</span><span class="n">obs</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="eigh-263"><a href="#eigh-263"><span class="linenos">263</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Computes the eigenvalues and eigenvectors of a given hermitian matrix of Obs according to np.linalg.eigh.&quot;&quot;&quot;</span>
</span><span id="eigh-264"><a href="#eigh-264"><span class="linenos">264</span></a> <span class="n">w</span> <span class="o">=</span> <span class="n">derived_observable</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">:</span> <span class="n">anp</span><span class="o">.</span><span class="n">linalg</span><span class="o">.</span><span class="n">eigh</span><span class="p">(</span><span class="n">x</span><span class="p">)[</span><span class="mi">0</span><span class="p">],</span> <span class="n">obs</span><span class="p">)</span>
</span><span id="eigh-265"><a href="#eigh-265"><span class="linenos">265</span></a> <span class="n">v</span> <span class="o">=</span> <span class="n">derived_observable</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">:</span> <span class="n">anp</span><span class="o">.</span><span class="n">linalg</span><span class="o">.</span><span class="n">eigh</span><span class="p">(</span><span class="n">x</span><span class="p">)[</span><span class="mi">1</span><span class="p">],</span> <span class="n">obs</span><span class="p">)</span>
@ -773,7 +773,7 @@ Obs valued.</li>
</div>
<a class="headerlink" href="#eig"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="eig-269"><a href="#eig-269"><span class="linenos">269</span></a><span class="k">def</span> <span class="nf">eig</span><span class="p">(</span><span class="n">obs</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="eig-269"><a href="#eig-269"><span class="linenos">269</span></a><span class="k">def</span><span class="w"> </span><span class="nf">eig</span><span class="p">(</span><span class="n">obs</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="eig-270"><a href="#eig-270"><span class="linenos">270</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Computes the eigenvalues of a given matrix of Obs according to np.linalg.eig.&quot;&quot;&quot;</span>
</span><span id="eig-271"><a href="#eig-271"><span class="linenos">271</span></a> <span class="n">w</span> <span class="o">=</span> <span class="n">derived_observable</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">:</span> <span class="n">anp</span><span class="o">.</span><span class="n">real</span><span class="p">(</span><span class="n">anp</span><span class="o">.</span><span class="n">linalg</span><span class="o">.</span><span class="n">eig</span><span class="p">(</span><span class="n">x</span><span class="p">)[</span><span class="mi">0</span><span class="p">]),</span> <span class="n">obs</span><span class="p">)</span>
</span><span id="eig-272"><a href="#eig-272"><span class="linenos">272</span></a> <span class="k">return</span> <span class="n">w</span>
@ -796,7 +796,7 @@ Obs valued.</li>
</div>
<a class="headerlink" href="#eigv"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="eigv-275"><a href="#eigv-275"><span class="linenos">275</span></a><span class="k">def</span> <span class="nf">eigv</span><span class="p">(</span><span class="n">obs</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="eigv-275"><a href="#eigv-275"><span class="linenos">275</span></a><span class="k">def</span><span class="w"> </span><span class="nf">eigv</span><span class="p">(</span><span class="n">obs</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="eigv-276"><a href="#eigv-276"><span class="linenos">276</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Computes the eigenvectors of a given hermitian matrix of Obs according to np.linalg.eigh.&quot;&quot;&quot;</span>
</span><span id="eigv-277"><a href="#eigv-277"><span class="linenos">277</span></a> <span class="n">v</span> <span class="o">=</span> <span class="n">derived_observable</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">:</span> <span class="n">anp</span><span class="o">.</span><span class="n">linalg</span><span class="o">.</span><span class="n">eigh</span><span class="p">(</span><span class="n">x</span><span class="p">)[</span><span class="mi">1</span><span class="p">],</span> <span class="n">obs</span><span class="p">)</span>
</span><span id="eigv-278"><a href="#eigv-278"><span class="linenos">278</span></a> <span class="k">return</span> <span class="n">v</span>
@ -819,7 +819,7 @@ Obs valued.</li>
</div>
<a class="headerlink" href="#pinv"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="pinv-281"><a href="#pinv-281"><span class="linenos">281</span></a><span class="k">def</span> <span class="nf">pinv</span><span class="p">(</span><span class="n">obs</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="pinv-281"><a href="#pinv-281"><span class="linenos">281</span></a><span class="k">def</span><span class="w"> </span><span class="nf">pinv</span><span class="p">(</span><span class="n">obs</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="pinv-282"><a href="#pinv-282"><span class="linenos">282</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Computes the Moore-Penrose pseudoinverse of a matrix of Obs.&quot;&quot;&quot;</span>
</span><span id="pinv-283"><a href="#pinv-283"><span class="linenos">283</span></a> <span class="k">return</span> <span class="n">derived_observable</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">:</span> <span class="n">anp</span><span class="o">.</span><span class="n">linalg</span><span class="o">.</span><span class="n">pinv</span><span class="p">(</span><span class="n">x</span><span class="p">),</span> <span class="n">obs</span><span class="p">)</span>
</span></pre></div>
@ -841,7 +841,7 @@ Obs valued.</li>
</div>
<a class="headerlink" href="#svd"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="svd-286"><a href="#svd-286"><span class="linenos">286</span></a><span class="k">def</span> <span class="nf">svd</span><span class="p">(</span><span class="n">obs</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="svd-286"><a href="#svd-286"><span class="linenos">286</span></a><span class="k">def</span><span class="w"> </span><span class="nf">svd</span><span class="p">(</span><span class="n">obs</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="svd-287"><a href="#svd-287"><span class="linenos">287</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Computes the singular value decomposition of a matrix of Obs.&quot;&quot;&quot;</span>
</span><span id="svd-288"><a href="#svd-288"><span class="linenos">288</span></a> <span class="n">u</span> <span class="o">=</span> <span class="n">derived_observable</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">:</span> <span class="n">anp</span><span class="o">.</span><span class="n">linalg</span><span class="o">.</span><span class="n">svd</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">full_matrices</span><span class="o">=</span><span class="kc">False</span><span class="p">)[</span><span class="mi">0</span><span class="p">],</span> <span class="n">obs</span><span class="p">)</span>
</span><span id="svd-289"><a href="#svd-289"><span class="linenos">289</span></a> <span class="n">s</span> <span class="o">=</span> <span class="n">derived_observable</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">:</span> <span class="n">anp</span><span class="o">.</span><span class="n">linalg</span><span class="o">.</span><span class="n">svd</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">full_matrices</span><span class="o">=</span><span class="kc">False</span><span class="p">)[</span><span class="mi">1</span><span class="p">],</span> <span class="n">obs</span><span class="p">)</span>

View file

@ -91,18 +91,18 @@
<label class="view-source-button" for="mod-misc-view-source"><span>View Source</span></label>
<div class="pdoc-code codehilite"><pre><span></span><span id="L-1"><a href="#L-1"><span class="linenos"> 1</span></a><span class="kn">import</span> <span class="nn">platform</span>
</span><span id="L-2"><a href="#L-2"><span class="linenos"> 2</span></a><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
</span><span id="L-3"><a href="#L-3"><span class="linenos"> 3</span></a><span class="kn">import</span> <span class="nn">scipy</span>
</span><span id="L-4"><a href="#L-4"><span class="linenos"> 4</span></a><span class="kn">import</span> <span class="nn">matplotlib</span>
</span><span id="L-5"><a href="#L-5"><span class="linenos"> 5</span></a><span class="kn">import</span> <span class="nn">matplotlib.pyplot</span> <span class="k">as</span> <span class="nn">plt</span>
</span><span id="L-6"><a href="#L-6"><span class="linenos"> 6</span></a><span class="kn">import</span> <span class="nn">pandas</span> <span class="k">as</span> <span class="nn">pd</span>
</span><span id="L-7"><a href="#L-7"><span class="linenos"> 7</span></a><span class="kn">import</span> <span class="nn">pickle</span>
</span><span id="L-8"><a href="#L-8"><span class="linenos"> 8</span></a><span class="kn">from</span> <span class="nn">.obs</span> <span class="kn">import</span> <span class="n">Obs</span>
</span><span id="L-9"><a href="#L-9"><span class="linenos"> 9</span></a><span class="kn">from</span> <span class="nn">.version</span> <span class="kn">import</span> <span class="n">__version__</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="L-1"><a href="#L-1"><span class="linenos"> 1</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">platform</span>
</span><span id="L-2"><a href="#L-2"><span class="linenos"> 2</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">np</span>
</span><span id="L-3"><a href="#L-3"><span class="linenos"> 3</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">scipy</span>
</span><span id="L-4"><a href="#L-4"><span class="linenos"> 4</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">matplotlib</span>
</span><span id="L-5"><a href="#L-5"><span class="linenos"> 5</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">matplotlib.pyplot</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">plt</span>
</span><span id="L-6"><a href="#L-6"><span class="linenos"> 6</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">pandas</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">pd</span>
</span><span id="L-7"><a href="#L-7"><span class="linenos"> 7</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">pickle</span>
</span><span id="L-8"><a href="#L-8"><span class="linenos"> 8</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">.obs</span><span class="w"> </span><span class="kn">import</span> <span class="n">Obs</span>
</span><span id="L-9"><a href="#L-9"><span class="linenos"> 9</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">.version</span><span class="w"> </span><span class="kn">import</span> <span class="n">__version__</span>
</span><span id="L-10"><a href="#L-10"><span class="linenos"> 10</span></a>
</span><span id="L-11"><a href="#L-11"><span class="linenos"> 11</span></a>
</span><span id="L-12"><a href="#L-12"><span class="linenos"> 12</span></a><span class="k">def</span> <span class="nf">print_config</span><span class="p">():</span>
</span><span id="L-12"><a href="#L-12"><span class="linenos"> 12</span></a><span class="k">def</span><span class="w"> </span><span class="nf">print_config</span><span class="p">():</span>
</span><span id="L-13"><a href="#L-13"><span class="linenos"> 13</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Print information about version of python, pyerrors and dependencies.&quot;&quot;&quot;</span>
</span><span id="L-14"><a href="#L-14"><span class="linenos"> 14</span></a> <span class="n">config</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;system&quot;</span><span class="p">:</span> <span class="n">platform</span><span class="o">.</span><span class="n">system</span><span class="p">(),</span>
</span><span id="L-15"><a href="#L-15"><span class="linenos"> 15</span></a> <span class="s2">&quot;python&quot;</span><span class="p">:</span> <span class="n">platform</span><span class="o">.</span><span class="n">python_version</span><span class="p">(),</span>
@ -116,7 +116,7 @@
</span><span id="L-23"><a href="#L-23"><span class="linenos"> 23</span></a> <span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">key</span><span class="si">:</span><span class="s2"> &lt;10</span><span class="si">}</span><span class="se">\t</span><span class="s2"> </span><span class="si">{</span><span class="n">value</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
</span><span id="L-24"><a href="#L-24"><span class="linenos"> 24</span></a>
</span><span id="L-25"><a href="#L-25"><span class="linenos"> 25</span></a>
</span><span id="L-26"><a href="#L-26"><span class="linenos"> 26</span></a><span class="k">def</span> <span class="nf">errorbar</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">axes</span><span class="o">=</span><span class="n">plt</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="L-26"><a href="#L-26"><span class="linenos"> 26</span></a><span class="k">def</span><span class="w"> </span><span class="nf">errorbar</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">axes</span><span class="o">=</span><span class="n">plt</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="L-27"><a href="#L-27"><span class="linenos"> 27</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;pyerrors wrapper for the errorbars method of matplotlib</span>
</span><span id="L-28"><a href="#L-28"><span class="linenos"> 28</span></a>
</span><span id="L-29"><a href="#L-29"><span class="linenos"> 29</span></a><span class="sd"> Parameters</span>
@ -147,7 +147,7 @@
</span><span id="L-54"><a href="#L-54"><span class="linenos"> 54</span></a> <span class="n">axes</span><span class="o">.</span><span class="n">errorbar</span><span class="p">(</span><span class="n">val</span><span class="p">[</span><span class="s2">&quot;x&quot;</span><span class="p">],</span> <span class="n">val</span><span class="p">[</span><span class="s2">&quot;y&quot;</span><span class="p">],</span> <span class="n">xerr</span><span class="o">=</span><span class="n">err</span><span class="p">[</span><span class="s2">&quot;x&quot;</span><span class="p">],</span> <span class="n">yerr</span><span class="o">=</span><span class="n">err</span><span class="p">[</span><span class="s2">&quot;y&quot;</span><span class="p">],</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
</span><span id="L-55"><a href="#L-55"><span class="linenos"> 55</span></a>
</span><span id="L-56"><a href="#L-56"><span class="linenos"> 56</span></a>
</span><span id="L-57"><a href="#L-57"><span class="linenos"> 57</span></a><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><span id="L-57"><a href="#L-57"><span class="linenos"> 57</span></a><span class="k">def</span><span class="w"> </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><span id="L-58"><a href="#L-58"><span class="linenos"> 58</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Dump object into pickle file.</span>
</span><span id="L-59"><a href="#L-59"><span class="linenos"> 59</span></a>
</span><span id="L-60"><a href="#L-60"><span class="linenos"> 60</span></a><span class="sd"> Parameters</span>
@ -171,7 +171,7 @@
</span><span id="L-78"><a href="#L-78"><span class="linenos"> 78</span></a> <span class="n">pickle</span><span class="o">.</span><span class="n">dump</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span> <span class="n">fb</span><span class="p">)</span>
</span><span id="L-79"><a href="#L-79"><span class="linenos"> 79</span></a>
</span><span id="L-80"><a href="#L-80"><span class="linenos"> 80</span></a>
</span><span id="L-81"><a href="#L-81"><span class="linenos"> 81</span></a><span class="k">def</span> <span class="nf">load_object</span><span class="p">(</span><span class="n">path</span><span class="p">):</span>
</span><span id="L-81"><a href="#L-81"><span class="linenos"> 81</span></a><span class="k">def</span><span class="w"> </span><span class="nf">load_object</span><span class="p">(</span><span class="n">path</span><span class="p">):</span>
</span><span id="L-82"><a href="#L-82"><span class="linenos"> 82</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Load object from pickle file.</span>
</span><span id="L-83"><a href="#L-83"><span class="linenos"> 83</span></a>
</span><span id="L-84"><a href="#L-84"><span class="linenos"> 84</span></a><span class="sd"> Parameters</span>
@ -188,7 +188,7 @@
</span><span id="L-95"><a href="#L-95"><span class="linenos"> 95</span></a> <span class="k">return</span> <span class="n">pickle</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="n">file</span><span class="p">)</span>
</span><span id="L-96"><a href="#L-96"><span class="linenos"> 96</span></a>
</span><span id="L-97"><a href="#L-97"><span class="linenos"> 97</span></a>
</span><span id="L-98"><a href="#L-98"><span class="linenos"> 98</span></a><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><span id="L-98"><a href="#L-98"><span class="linenos"> 98</span></a><span class="k">def</span><span class="w"> </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><span id="L-99"><a href="#L-99"><span class="linenos"> 99</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Generate an Obs object with given value, dvalue and name for test purposes</span>
</span><span id="L-100"><a href="#L-100"><span class="linenos">100</span></a>
</span><span id="L-101"><a href="#L-101"><span class="linenos">101</span></a><span class="sd"> Parameters</span>
@ -225,7 +225,7 @@
</span><span id="L-132"><a href="#L-132"><span class="linenos">132</span></a> <span class="k">return</span> <span class="n">res</span>
</span><span id="L-133"><a href="#L-133"><span class="linenos">133</span></a>
</span><span id="L-134"><a href="#L-134"><span class="linenos">134</span></a>
</span><span id="L-135"><a href="#L-135"><span class="linenos">135</span></a><span class="k">def</span> <span class="nf">gen_correlated_data</span><span class="p">(</span><span class="n">means</span><span class="p">,</span> <span class="n">cov</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">tau</span><span class="o">=</span><span class="mf">0.5</span><span class="p">,</span> <span class="n">samples</span><span class="o">=</span><span class="mi">1000</span><span class="p">):</span>
</span><span id="L-135"><a href="#L-135"><span class="linenos">135</span></a><span class="k">def</span><span class="w"> </span><span class="nf">gen_correlated_data</span><span class="p">(</span><span class="n">means</span><span class="p">,</span> <span class="n">cov</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">tau</span><span class="o">=</span><span class="mf">0.5</span><span class="p">,</span> <span class="n">samples</span><span class="o">=</span><span class="mi">1000</span><span class="p">):</span>
</span><span id="L-136"><a href="#L-136"><span class="linenos">136</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot; Generate observables with given covariance and autocorrelation times.</span>
</span><span id="L-137"><a href="#L-137"><span class="linenos">137</span></a>
</span><span id="L-138"><a href="#L-138"><span class="linenos">138</span></a><span class="sd"> Parameters</span>
@ -267,7 +267,7 @@
</span><span id="L-174"><a href="#L-174"><span class="linenos">174</span></a> <span class="k">return</span> <span class="p">[</span><span class="n">Obs</span><span class="p">([</span><span class="n">dat</span><span class="p">],</span> <span class="p">[</span><span class="n">name</span><span class="p">])</span> <span class="k">for</span> <span class="n">dat</span> <span class="ow">in</span> <span class="n">corr_data</span><span class="o">.</span><span class="n">T</span><span class="p">]</span>
</span><span id="L-175"><a href="#L-175"><span class="linenos">175</span></a>
</span><span id="L-176"><a href="#L-176"><span class="linenos">176</span></a>
</span><span id="L-177"><a href="#L-177"><span class="linenos">177</span></a><span class="k">def</span> <span class="nf">_assert_equal_properties</span><span class="p">(</span><span class="n">ol</span><span class="p">,</span> <span class="n">otype</span><span class="o">=</span><span class="n">Obs</span><span class="p">):</span>
</span><span id="L-177"><a href="#L-177"><span class="linenos">177</span></a><span class="k">def</span><span class="w"> </span><span class="nf">_assert_equal_properties</span><span class="p">(</span><span class="n">ol</span><span class="p">,</span> <span class="n">otype</span><span class="o">=</span><span class="n">Obs</span><span class="p">):</span>
</span><span id="L-178"><a href="#L-178"><span class="linenos">178</span></a> <span class="n">otype</span> <span class="o">=</span> <span class="nb">type</span><span class="p">(</span><span class="n">ol</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
</span><span id="L-179"><a href="#L-179"><span class="linenos">179</span></a> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">ol</span><span class="p">[</span><span class="mi">1</span><span class="p">:]:</span>
</span><span id="L-180"><a href="#L-180"><span class="linenos">180</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">o</span><span class="p">,</span> <span class="n">otype</span><span class="p">):</span>
@ -291,7 +291,7 @@
</div>
<a class="headerlink" href="#print_config"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="print_config-13"><a href="#print_config-13"><span class="linenos">13</span></a><span class="k">def</span> <span class="nf">print_config</span><span class="p">():</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="print_config-13"><a href="#print_config-13"><span class="linenos">13</span></a><span class="k">def</span><span class="w"> </span><span class="nf">print_config</span><span class="p">():</span>
</span><span id="print_config-14"><a href="#print_config-14"><span class="linenos">14</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Print information about version of python, pyerrors and dependencies.&quot;&quot;&quot;</span>
</span><span id="print_config-15"><a href="#print_config-15"><span class="linenos">15</span></a> <span class="n">config</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;system&quot;</span><span class="p">:</span> <span class="n">platform</span><span class="o">.</span><span class="n">system</span><span class="p">(),</span>
</span><span id="print_config-16"><a href="#print_config-16"><span class="linenos">16</span></a> <span class="s2">&quot;python&quot;</span><span class="p">:</span> <span class="n">platform</span><span class="o">.</span><span class="n">python_version</span><span class="p">(),</span>
@ -316,13 +316,13 @@
<div class="attr function">
<span class="def">def</span>
<span class="name">errorbar</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">x</span>,</span><span class="param"> <span class="n">y</span>,</span><span class="param"> <span class="n">axes</span><span class="o">=&lt;</span><span class="n">module</span> <span class="s1">&#39;matplotlib.pyplot&#39;</span> <span class="kn">from</span> <span class="s1">&#39;/opt/hostedtoolcache/Python/3.10.15/x64/lib/python3.10/site-packages/matplotlib/pyplot.py&#39;</span><span class="o">&gt;</span>,</span><span class="param"> <span class="o">**</span><span class="n">kwargs</span></span><span class="return-annotation">):</span></span>
<span class="name">errorbar</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">x</span>,</span><span class="param"> <span class="n">y</span>,</span><span class="param"> <span class="n">axes</span><span class="o">=&lt;</span><span class="n">module</span> <span class="s1">&#39;matplotlib.pyplot&#39;</span> <span class="kn">from</span><span class="w"> </span><span class="s1">&#39;/opt/hostedtoolcache/Python/3.10.15/x64/lib/python3.10/site-packages/matplotlib/pyplot.py&#39;</span><span class="o">&gt;</span>,</span><span class="param"> <span class="o">**</span><span class="n">kwargs</span></span><span class="return-annotation">):</span></span>
<label class="view-source-button" for="errorbar-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#errorbar"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="errorbar-27"><a href="#errorbar-27"><span class="linenos">27</span></a><span class="k">def</span> <span class="nf">errorbar</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">axes</span><span class="o">=</span><span class="n">plt</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="errorbar-27"><a href="#errorbar-27"><span class="linenos">27</span></a><span class="k">def</span><span class="w"> </span><span class="nf">errorbar</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">axes</span><span class="o">=</span><span class="n">plt</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="errorbar-28"><a href="#errorbar-28"><span class="linenos">28</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;pyerrors wrapper for the errorbars method of matplotlib</span>
</span><span id="errorbar-29"><a href="#errorbar-29"><span class="linenos">29</span></a>
</span><span id="errorbar-30"><a href="#errorbar-30"><span class="linenos">30</span></a><span class="sd"> Parameters</span>
@ -381,7 +381,7 @@ The axes to plot on. default is plt.</li>
</div>
<a class="headerlink" href="#dump_object"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="dump_object-58"><a href="#dump_object-58"><span class="linenos">58</span></a><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>
<div class="pdoc-code codehilite"><pre><span></span><span id="dump_object-58"><a href="#dump_object-58"><span class="linenos">58</span></a><span class="k">def</span><span class="w"> </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><span id="dump_object-59"><a href="#dump_object-59"><span class="linenos">59</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Dump object into pickle file.</span>
</span><span id="dump_object-60"><a href="#dump_object-60"><span class="linenos">60</span></a>
</span><span id="dump_object-61"><a href="#dump_object-61"><span class="linenos">61</span></a><span class="sd"> Parameters</span>
@ -439,7 +439,7 @@ specifies a custom path for the file (default '.')</li>
</div>
<a class="headerlink" href="#load_object"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="load_object-82"><a href="#load_object-82"><span class="linenos">82</span></a><span class="k">def</span> <span class="nf">load_object</span><span class="p">(</span><span class="n">path</span><span class="p">):</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="load_object-82"><a href="#load_object-82"><span class="linenos">82</span></a><span class="k">def</span><span class="w"> </span><span class="nf">load_object</span><span class="p">(</span><span class="n">path</span><span class="p">):</span>
</span><span id="load_object-83"><a href="#load_object-83"><span class="linenos">83</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Load object from pickle file.</span>
</span><span id="load_object-84"><a href="#load_object-84"><span class="linenos">84</span></a>
</span><span id="load_object-85"><a href="#load_object-85"><span class="linenos">85</span></a><span class="sd"> Parameters</span>
@ -487,7 +487,7 @@ Loaded Object</li>
</div>
<a class="headerlink" href="#pseudo_Obs"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="pseudo_Obs-99"><a href="#pseudo_Obs-99"><span class="linenos"> 99</span></a><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>
<div class="pdoc-code codehilite"><pre><span></span><span id="pseudo_Obs-99"><a href="#pseudo_Obs-99"><span class="linenos"> 99</span></a><span class="k">def</span><span class="w"> </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><span id="pseudo_Obs-100"><a href="#pseudo_Obs-100"><span class="linenos">100</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Generate an Obs object with given value, dvalue and name for test purposes</span>
</span><span id="pseudo_Obs-101"><a href="#pseudo_Obs-101"><span class="linenos">101</span></a>
</span><span id="pseudo_Obs-102"><a href="#pseudo_Obs-102"><span class="linenos">102</span></a><span class="sd"> Parameters</span>
@ -561,7 +561,7 @@ Generated Observable</li>
</div>
<a class="headerlink" href="#gen_correlated_data"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="gen_correlated_data-136"><a href="#gen_correlated_data-136"><span class="linenos">136</span></a><span class="k">def</span> <span class="nf">gen_correlated_data</span><span class="p">(</span><span class="n">means</span><span class="p">,</span> <span class="n">cov</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">tau</span><span class="o">=</span><span class="mf">0.5</span><span class="p">,</span> <span class="n">samples</span><span class="o">=</span><span class="mi">1000</span><span class="p">):</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="gen_correlated_data-136"><a href="#gen_correlated_data-136"><span class="linenos">136</span></a><span class="k">def</span><span class="w"> </span><span class="nf">gen_correlated_data</span><span class="p">(</span><span class="n">means</span><span class="p">,</span> <span class="n">cov</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">tau</span><span class="o">=</span><span class="mf">0.5</span><span class="p">,</span> <span class="n">samples</span><span class="o">=</span><span class="mi">1000</span><span class="p">):</span>
</span><span id="gen_correlated_data-137"><a href="#gen_correlated_data-137"><span class="linenos">137</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot; Generate observables with given covariance and autocorrelation times.</span>
</span><span id="gen_correlated_data-138"><a href="#gen_correlated_data-138"><span class="linenos">138</span></a>
</span><span id="gen_correlated_data-139"><a href="#gen_correlated_data-139"><span class="linenos">139</span></a><span class="sd"> Parameters</span>

View file

@ -76,13 +76,13 @@
<label class="view-source-button" for="mod-mpm-view-source"><span>View Source</span></label>
<div class="pdoc-code codehilite"><pre><span></span><span id="L-1"><a href="#L-1"><span class="linenos"> 1</span></a><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
</span><span id="L-2"><a href="#L-2"><span class="linenos"> 2</span></a><span class="kn">import</span> <span class="nn">scipy.linalg</span>
</span><span id="L-3"><a href="#L-3"><span class="linenos"> 3</span></a><span class="kn">from</span> <span class="nn">.obs</span> <span class="kn">import</span> <span class="n">Obs</span>
</span><span id="L-4"><a href="#L-4"><span class="linenos"> 4</span></a><span class="kn">from</span> <span class="nn">.linalg</span> <span class="kn">import</span> <span class="n">svd</span><span class="p">,</span> <span class="n">eig</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="L-1"><a href="#L-1"><span class="linenos"> 1</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">np</span>
</span><span id="L-2"><a href="#L-2"><span class="linenos"> 2</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">scipy.linalg</span>
</span><span id="L-3"><a href="#L-3"><span class="linenos"> 3</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">.obs</span><span class="w"> </span><span class="kn">import</span> <span class="n">Obs</span>
</span><span id="L-4"><a href="#L-4"><span class="linenos"> 4</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">.linalg</span><span class="w"> </span><span class="kn">import</span> <span class="n">svd</span><span class="p">,</span> <span class="n">eig</span>
</span><span id="L-5"><a href="#L-5"><span class="linenos"> 5</span></a>
</span><span id="L-6"><a href="#L-6"><span class="linenos"> 6</span></a>
</span><span id="L-7"><a href="#L-7"><span class="linenos"> 7</span></a><span class="k">def</span> <span class="nf">matrix_pencil_method</span><span class="p">(</span><span class="n">corrs</span><span class="p">,</span> <span class="n">k</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">p</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><span id="L-7"><a href="#L-7"><span class="linenos"> 7</span></a><span class="k">def</span><span class="w"> </span><span class="nf">matrix_pencil_method</span><span class="p">(</span><span class="n">corrs</span><span class="p">,</span> <span class="n">k</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">p</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><span id="L-8"><a href="#L-8"><span class="linenos"> 8</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Matrix pencil method to extract k energy levels from data</span>
</span><span id="L-9"><a href="#L-9"><span class="linenos"> 9</span></a>
</span><span id="L-10"><a href="#L-10"><span class="linenos">10</span></a><span class="sd"> Implementation of the matrix pencil method based on</span>
@ -154,7 +154,7 @@
</div>
<a class="headerlink" href="#matrix_pencil_method"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="matrix_pencil_method-8"><a href="#matrix_pencil_method-8"><span class="linenos"> 8</span></a><span class="k">def</span> <span class="nf">matrix_pencil_method</span><span class="p">(</span><span class="n">corrs</span><span class="p">,</span> <span class="n">k</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">p</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>
<div class="pdoc-code codehilite"><pre><span></span><span id="matrix_pencil_method-8"><a href="#matrix_pencil_method-8"><span class="linenos"> 8</span></a><span class="k">def</span><span class="w"> </span><span class="nf">matrix_pencil_method</span><span class="p">(</span><span class="n">corrs</span><span class="p">,</span> <span class="n">k</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">p</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><span id="matrix_pencil_method-9"><a href="#matrix_pencil_method-9"><span class="linenos"> 9</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Matrix pencil method to extract k energy levels from data</span>
</span><span id="matrix_pencil_method-10"><a href="#matrix_pencil_method-10"><span class="linenos">10</span></a>
</span><span id="matrix_pencil_method-11"><a href="#matrix_pencil_method-11"><span class="linenos">11</span></a><span class="sd"> Implementation of the matrix pencil method based on</span>

File diff suppressed because it is too large Load diff

View file

@ -76,13 +76,13 @@
<label class="view-source-button" for="mod-roots-view-source"><span>View Source</span></label>
<div class="pdoc-code codehilite"><pre><span></span><span id="L-1"><a href="#L-1"><span class="linenos"> 1</span></a><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
</span><span id="L-2"><a href="#L-2"><span class="linenos"> 2</span></a><span class="kn">import</span> <span class="nn">scipy.optimize</span>
</span><span id="L-3"><a href="#L-3"><span class="linenos"> 3</span></a><span class="kn">from</span> <span class="nn">autograd</span> <span class="kn">import</span> <span class="n">jacobian</span>
</span><span id="L-4"><a href="#L-4"><span class="linenos"> 4</span></a><span class="kn">from</span> <span class="nn">.obs</span> <span class="kn">import</span> <span class="n">derived_observable</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="L-1"><a href="#L-1"><span class="linenos"> 1</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">np</span>
</span><span id="L-2"><a href="#L-2"><span class="linenos"> 2</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">scipy.optimize</span>
</span><span id="L-3"><a href="#L-3"><span class="linenos"> 3</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">autograd</span><span class="w"> </span><span class="kn">import</span> <span class="n">jacobian</span>
</span><span id="L-4"><a href="#L-4"><span class="linenos"> 4</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">.obs</span><span class="w"> </span><span class="kn">import</span> <span class="n">derived_observable</span>
</span><span id="L-5"><a href="#L-5"><span class="linenos"> 5</span></a>
</span><span id="L-6"><a href="#L-6"><span class="linenos"> 6</span></a>
</span><span id="L-7"><a href="#L-7"><span class="linenos"> 7</span></a><span class="k">def</span> <span class="nf">find_root</span><span class="p">(</span><span class="n">d</span><span class="p">,</span> <span class="n">func</span><span class="p">,</span> <span class="n">guess</span><span class="o">=</span><span class="mf">1.0</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="L-7"><a href="#L-7"><span class="linenos"> 7</span></a><span class="k">def</span><span class="w"> </span><span class="nf">find_root</span><span class="p">(</span><span class="n">d</span><span class="p">,</span> <span class="n">func</span><span class="p">,</span> <span class="n">guess</span><span class="o">=</span><span class="mf">1.0</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="L-8"><a href="#L-8"><span class="linenos"> 8</span></a><span class="w"> </span><span class="sa">r</span><span class="sd">&#39;&#39;&#39;Finds the root of the function func(x, d) where d is an `Obs`.</span>
</span><span id="L-9"><a href="#L-9"><span class="linenos"> 9</span></a>
</span><span id="L-10"><a href="#L-10"><span class="linenos">10</span></a><span class="sd"> Parameters</span>
@ -114,7 +114,7 @@
</span><span id="L-36"><a href="#L-36"><span class="linenos">36</span></a> <span class="k">try</span><span class="p">:</span>
</span><span id="L-37"><a href="#L-37"><span class="linenos">37</span></a> <span class="n">da</span> <span class="o">=</span> <span class="n">jacobian</span><span class="p">(</span><span class="k">lambda</span> <span class="n">u</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">func</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="n">u</span><span class="p">))(</span><span class="n">d_val</span><span class="p">,</span> <span class="n">root</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
</span><span id="L-38"><a href="#L-38"><span class="linenos">38</span></a> <span class="k">except</span> <span class="ne">TypeError</span><span class="p">:</span>
</span><span id="L-39"><a href="#L-39"><span class="linenos">39</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">&quot;It is required to use autograd.numpy instead of numpy within root functions, see the documentation for details.&quot;</span><span class="p">)</span> <span class="kn">from</span> <span class="kc">None</span>
</span><span id="L-39"><a href="#L-39"><span class="linenos">39</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">&quot;It is required to use autograd.numpy instead of numpy within root functions, see the documentation for details.&quot;</span><span class="p">)</span> <span class="kn">from</span><span class="w"> </span><span class="kc">None</span>
</span><span id="L-40"><a href="#L-40"><span class="linenos">40</span></a> <span class="n">deriv</span> <span class="o">=</span> <span class="o">-</span> <span class="n">da</span> <span class="o">/</span> <span class="n">dx</span>
</span><span id="L-41"><a href="#L-41"><span class="linenos">41</span></a> <span class="n">res</span> <span class="o">=</span> <span class="n">derived_observable</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">:</span> <span class="p">(</span><span class="n">x</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="n">np</span><span class="o">.</span><span class="n">finfo</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">float64</span><span class="p">)</span><span class="o">.</span><span class="n">eps</span><span class="p">)</span> <span class="o">/</span> <span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">d</span><span class="p">)</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">value</span> <span class="o">+</span> <span class="n">np</span><span class="o">.</span><span class="n">finfo</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">float64</span><span class="p">)</span><span class="o">.</span><span class="n">eps</span><span class="p">)</span> <span class="o">*</span> <span class="n">root</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span>
</span><span id="L-42"><a href="#L-42"><span class="linenos">42</span></a> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">d</span><span class="p">)</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">),</span> <span class="n">man_grad</span><span class="o">=</span><span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">deriv</span><span class="p">)</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">))</span>
@ -134,7 +134,7 @@
</div>
<a class="headerlink" href="#find_root"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="find_root-8"><a href="#find_root-8"><span class="linenos"> 8</span></a><span class="k">def</span> <span class="nf">find_root</span><span class="p">(</span><span class="n">d</span><span class="p">,</span> <span class="n">func</span><span class="p">,</span> <span class="n">guess</span><span class="o">=</span><span class="mf">1.0</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="find_root-8"><a href="#find_root-8"><span class="linenos"> 8</span></a><span class="k">def</span><span class="w"> </span><span class="nf">find_root</span><span class="p">(</span><span class="n">d</span><span class="p">,</span> <span class="n">func</span><span class="p">,</span> <span class="n">guess</span><span class="o">=</span><span class="mf">1.0</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="find_root-9"><a href="#find_root-9"><span class="linenos"> 9</span></a><span class="w"> </span><span class="sa">r</span><span class="sd">&#39;&#39;&#39;Finds the root of the function func(x, d) where d is an `Obs`.</span>
</span><span id="find_root-10"><a href="#find_root-10"><span class="linenos">10</span></a>
</span><span id="find_root-11"><a href="#find_root-11"><span class="linenos">11</span></a><span class="sd"> Parameters</span>
@ -166,7 +166,7 @@
</span><span id="find_root-37"><a href="#find_root-37"><span class="linenos">37</span></a> <span class="k">try</span><span class="p">:</span>
</span><span id="find_root-38"><a href="#find_root-38"><span class="linenos">38</span></a> <span class="n">da</span> <span class="o">=</span> <span class="n">jacobian</span><span class="p">(</span><span class="k">lambda</span> <span class="n">u</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">func</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="n">u</span><span class="p">))(</span><span class="n">d_val</span><span class="p">,</span> <span class="n">root</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
</span><span id="find_root-39"><a href="#find_root-39"><span class="linenos">39</span></a> <span class="k">except</span> <span class="ne">TypeError</span><span class="p">:</span>
</span><span id="find_root-40"><a href="#find_root-40"><span class="linenos">40</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">&quot;It is required to use autograd.numpy instead of numpy within root functions, see the documentation for details.&quot;</span><span class="p">)</span> <span class="kn">from</span> <span class="kc">None</span>
</span><span id="find_root-40"><a href="#find_root-40"><span class="linenos">40</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">&quot;It is required to use autograd.numpy instead of numpy within root functions, see the documentation for details.&quot;</span><span class="p">)</span> <span class="kn">from</span><span class="w"> </span><span class="kc">None</span>
</span><span id="find_root-41"><a href="#find_root-41"><span class="linenos">41</span></a> <span class="n">deriv</span> <span class="o">=</span> <span class="o">-</span> <span class="n">da</span> <span class="o">/</span> <span class="n">dx</span>
</span><span id="find_root-42"><a href="#find_root-42"><span class="linenos">42</span></a> <span class="n">res</span> <span class="o">=</span> <span class="n">derived_observable</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">:</span> <span class="p">(</span><span class="n">x</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="n">np</span><span class="o">.</span><span class="n">finfo</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">float64</span><span class="p">)</span><span class="o">.</span><span class="n">eps</span><span class="p">)</span> <span class="o">/</span> <span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">d</span><span class="p">)</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">value</span> <span class="o">+</span> <span class="n">np</span><span class="o">.</span><span class="n">finfo</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">float64</span><span class="p">)</span><span class="o">.</span><span class="n">eps</span><span class="p">)</span> <span class="o">*</span> <span class="n">root</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span>
</span><span id="find_root-43"><a href="#find_root-43"><span class="linenos">43</span></a> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">d</span><span class="p">)</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">),</span> <span class="n">man_grad</span><span class="o">=</span><span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">deriv</span><span class="p">)</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">))</span>
@ -186,8 +186,8 @@ Function to be minimized. Any numpy functions have to use the autograd.numpy wra
Example:</p>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="kn">import</span> <span class="nn">autograd.numpy</span> <span class="k">as</span> <span class="nn">anp</span>
<span class="k">def</span> <span class="nf">root_func</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">d</span><span class="p">):</span>
<pre><span></span><code><span class="kn">import</span><span class="w"> </span><span class="nn">autograd.numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">anp</span>
<span class="k">def</span><span class="w"> </span><span class="nf">root_func</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">d</span><span class="p">):</span>
<span class="k">return</span> <span class="n">anp</span><span class="o">.</span><span class="n">exp</span><span class="p">(</span><span class="o">-</span><span class="n">x</span> <span class="o">**</span> <span class="mi">2</span><span class="p">)</span> <span class="o">-</span> <span class="n">d</span>
</code></pre>
</div></li>

View file

@ -166,12 +166,12 @@
<label class="view-source-button" for="mod-special-view-source"><span>View Source</span></label>
<div class="pdoc-code codehilite"><pre><span></span><span id="L-1"><a href="#L-1"><span class="linenos"> 1</span></a><span class="kn">import</span> <span class="nn">scipy</span>
</span><span id="L-2"><a href="#L-2"><span class="linenos"> 2</span></a><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
</span><span id="L-3"><a href="#L-3"><span class="linenos"> 3</span></a><span class="kn">from</span> <span class="nn">autograd.extend</span> <span class="kn">import</span> <span class="n">primitive</span><span class="p">,</span> <span class="n">defvjp</span>
</span><span id="L-4"><a href="#L-4"><span class="linenos"> 4</span></a><span class="kn">from</span> <span class="nn">autograd.scipy.special</span> <span class="kn">import</span> <span class="n">j0</span><span class="p">,</span> <span class="n">y0</span><span class="p">,</span> <span class="n">j1</span><span class="p">,</span> <span class="n">y1</span><span class="p">,</span> <span class="n">jn</span><span class="p">,</span> <span class="n">yn</span><span class="p">,</span> <span class="n">i0</span><span class="p">,</span> <span class="n">i1</span><span class="p">,</span> <span class="n">iv</span><span class="p">,</span> <span class="n">ive</span><span class="p">,</span> <span class="n">beta</span><span class="p">,</span> <span class="n">betainc</span><span class="p">,</span> <span class="n">betaln</span>
</span><span id="L-5"><a href="#L-5"><span class="linenos"> 5</span></a><span class="kn">from</span> <span class="nn">autograd.scipy.special</span> <span class="kn">import</span> <span class="n">polygamma</span><span class="p">,</span> <span class="n">psi</span><span class="p">,</span> <span class="n">digamma</span><span class="p">,</span> <span class="n">gamma</span><span class="p">,</span> <span class="n">gammaln</span><span class="p">,</span> <span class="n">gammainc</span><span class="p">,</span> <span class="n">gammaincc</span><span class="p">,</span> <span class="n">gammasgn</span><span class="p">,</span> <span class="n">rgamma</span><span class="p">,</span> <span class="n">multigammaln</span>
</span><span id="L-6"><a href="#L-6"><span class="linenos"> 6</span></a><span class="kn">from</span> <span class="nn">autograd.scipy.special</span> <span class="kn">import</span> <span class="n">erf</span><span class="p">,</span> <span class="n">erfc</span><span class="p">,</span> <span class="n">erfinv</span><span class="p">,</span> <span class="n">erfcinv</span><span class="p">,</span> <span class="n">logit</span><span class="p">,</span> <span class="n">expit</span><span class="p">,</span> <span class="n">logsumexp</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="L-1"><a href="#L-1"><span class="linenos"> 1</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">scipy</span>
</span><span id="L-2"><a href="#L-2"><span class="linenos"> 2</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">np</span>
</span><span id="L-3"><a href="#L-3"><span class="linenos"> 3</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">autograd.extend</span><span class="w"> </span><span class="kn">import</span> <span class="n">primitive</span><span class="p">,</span> <span class="n">defvjp</span>
</span><span id="L-4"><a href="#L-4"><span class="linenos"> 4</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">autograd.scipy.special</span><span class="w"> </span><span class="kn">import</span> <span class="n">j0</span><span class="p">,</span> <span class="n">y0</span><span class="p">,</span> <span class="n">j1</span><span class="p">,</span> <span class="n">y1</span><span class="p">,</span> <span class="n">jn</span><span class="p">,</span> <span class="n">yn</span><span class="p">,</span> <span class="n">i0</span><span class="p">,</span> <span class="n">i1</span><span class="p">,</span> <span class="n">iv</span><span class="p">,</span> <span class="n">ive</span><span class="p">,</span> <span class="n">beta</span><span class="p">,</span> <span class="n">betainc</span><span class="p">,</span> <span class="n">betaln</span>
</span><span id="L-5"><a href="#L-5"><span class="linenos"> 5</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">autograd.scipy.special</span><span class="w"> </span><span class="kn">import</span> <span class="n">polygamma</span><span class="p">,</span> <span class="n">psi</span><span class="p">,</span> <span class="n">digamma</span><span class="p">,</span> <span class="n">gamma</span><span class="p">,</span> <span class="n">gammaln</span><span class="p">,</span> <span class="n">gammainc</span><span class="p">,</span> <span class="n">gammaincc</span><span class="p">,</span> <span class="n">gammasgn</span><span class="p">,</span> <span class="n">rgamma</span><span class="p">,</span> <span class="n">multigammaln</span>
</span><span id="L-6"><a href="#L-6"><span class="linenos"> 6</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">autograd.scipy.special</span><span class="w"> </span><span class="kn">import</span> <span class="n">erf</span><span class="p">,</span> <span class="n">erfc</span><span class="p">,</span> <span class="n">erfinv</span><span class="p">,</span> <span class="n">erfcinv</span><span class="p">,</span> <span class="n">logit</span><span class="p">,</span> <span class="n">expit</span><span class="p">,</span> <span class="n">logsumexp</span>
</span><span id="L-7"><a href="#L-7"><span class="linenos"> 7</span></a>
</span><span id="L-8"><a href="#L-8"><span class="linenos"> 8</span></a>
</span><span id="L-9"><a href="#L-9"><span class="linenos"> 9</span></a><span class="n">__all__</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;beta&quot;</span><span class="p">,</span> <span class="s2">&quot;betainc&quot;</span><span class="p">,</span> <span class="s2">&quot;betaln&quot;</span><span class="p">,</span>
@ -181,7 +181,7 @@
</span><span id="L-13"><a href="#L-13"><span class="linenos">13</span></a>
</span><span id="L-14"><a href="#L-14"><span class="linenos">14</span></a>
</span><span id="L-15"><a href="#L-15"><span class="linenos">15</span></a><span class="nd">@primitive</span>
</span><span id="L-16"><a href="#L-16"><span class="linenos">16</span></a><span class="k">def</span> <span class="nf">kn</span><span class="p">(</span><span class="n">n</span><span class="p">,</span> <span class="n">x</span><span class="p">):</span>
</span><span id="L-16"><a href="#L-16"><span class="linenos">16</span></a><span class="k">def</span><span class="w"> </span><span class="nf">kn</span><span class="p">(</span><span class="n">n</span><span class="p">,</span> <span class="n">x</span><span class="p">):</span>
</span><span id="L-17"><a href="#L-17"><span class="linenos">17</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Modified Bessel function of the second kind of integer order n&quot;&quot;&quot;</span>
</span><span id="L-18"><a href="#L-18"><span class="linenos">18</span></a> <span class="k">if</span> <span class="nb">int</span><span class="p">(</span><span class="n">n</span><span class="p">)</span> <span class="o">!=</span> <span class="n">n</span><span class="p">:</span>
</span><span id="L-19"><a href="#L-19"><span class="linenos">19</span></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;The order &#39;n&#39; needs to be an integer.&quot;</span><span class="p">)</span>
@ -206,7 +206,7 @@
</div>
<a class="headerlink" href="#beta"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="beta-36"><a href="#beta-36"><span class="linenos">36</span></a> <span class="nd">@wraps</span><span class="p">(</span><span class="n">f_raw</span><span class="p">)</span>
</span><span id="beta-37"><a href="#beta-37"><span class="linenos">37</span></a> <span class="k">def</span> <span class="nf">f_wrapped</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="beta-37"><a href="#beta-37"><span class="linenos">37</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">f_wrapped</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="beta-38"><a href="#beta-38"><span class="linenos">38</span></a> <span class="n">boxed_args</span><span class="p">,</span> <span class="n">trace</span><span class="p">,</span> <span class="n">node_constructor</span> <span class="o">=</span> <span class="n">find_top_boxed_args</span><span class="p">(</span><span class="n">args</span><span class="p">)</span>
</span><span id="beta-39"><a href="#beta-39"><span class="linenos">39</span></a> <span class="k">if</span> <span class="n">boxed_args</span><span class="p">:</span>
</span><span id="beta-40"><a href="#beta-40"><span class="linenos">40</span></a> <span class="n">argvals</span> <span class="o">=</span> <span class="n">subvals</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="p">[(</span><span class="n">argnum</span><span class="p">,</span> <span class="n">box</span><span class="o">.</span><span class="n">_value</span><span class="p">)</span> <span class="k">for</span> <span class="n">argnum</span><span class="p">,</span> <span class="n">box</span> <span class="ow">in</span> <span class="n">boxed_args</span><span class="p">])</span>
@ -262,7 +262,7 @@ value of the beta function </p>
<h6 id="examples">Examples</h6>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">scipy.special</span> <span class="k">as</span> <span class="nn">sc</span>
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span><span class="w"> </span><span class="nn">scipy.special</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">sc</span>
</code></pre>
</div>
@ -322,7 +322,7 @@ Eq. 5.12.1. <a href="https://dlmf.nist.gov/5.12">https://dlmf.nist.gov/5.12</a>&
</div>
<a class="headerlink" href="#betainc"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="betainc-36"><a href="#betainc-36"><span class="linenos">36</span></a> <span class="nd">@wraps</span><span class="p">(</span><span class="n">f_raw</span><span class="p">)</span>
</span><span id="betainc-37"><a href="#betainc-37"><span class="linenos">37</span></a> <span class="k">def</span> <span class="nf">f_wrapped</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="betainc-37"><a href="#betainc-37"><span class="linenos">37</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">f_wrapped</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="betainc-38"><a href="#betainc-38"><span class="linenos">38</span></a> <span class="n">boxed_args</span><span class="p">,</span> <span class="n">trace</span><span class="p">,</span> <span class="n">node_constructor</span> <span class="o">=</span> <span class="n">find_top_boxed_args</span><span class="p">(</span><span class="n">args</span><span class="p">)</span>
</span><span id="betainc-39"><a href="#betainc-39"><span class="linenos">39</span></a> <span class="k">if</span> <span class="n">boxed_args</span><span class="p">:</span>
</span><span id="betainc-40"><a href="#betainc-40"><span class="linenos">40</span></a> <span class="n">argvals</span> <span class="o">=</span> <span class="n">subvals</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="p">[(</span><span class="n">argnum</span><span class="p">,</span> <span class="n">box</span><span class="o">.</span><span class="n">_value</span><span class="p">)</span> <span class="k">for</span> <span class="n">argnum</span><span class="p">,</span> <span class="n">box</span> <span class="ow">in</span> <span class="n">boxed_args</span><span class="p">])</span>
@ -390,6 +390,9 @@ without the gamma terms. One can use the function <code><a href="#beta">beta</a
function by multiplying the result of <code>betainc(a, b, x)</code> by
<code>beta(a, b)</code>.</p>
<p>This function wraps the <code>ibeta</code> routine from the
Boost Math C++ library <sup class="footnote-ref" id="fnref-2"><a href="#fn-2">2</a></sup>.</p>
<h6 id="references">References</h6>
<h6 id="examples">Examples</h6>
@ -397,7 +400,7 @@ function by multiplying the result of <code>betainc(a, b, x)</code> by
<p>Let \( B(a, b) \) be the <code><a href="#beta">beta</a></code> function.</p>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">scipy.special</span> <span class="k">as</span> <span class="nn">sc</span>
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span><span class="w"> </span><span class="nn">scipy.special</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">sc</span>
</code></pre>
</div>
@ -443,6 +446,10 @@ where \( F \) is the hypergeometric function <code>hyp2f1</code>:</p>
<p>NIST Digital Library of Mathematical Functions
<a href="https://dlmf.nist.gov/8.17">https://dlmf.nist.gov/8.17</a>&#160;<a href="#fnref-1" class="footnoteBackLink" title="Jump back to footnote 1 in the text.">&#8617;</a></p>
</li>
<li id="fn-2">
<p>The Boost Developers. "Boost C++ Libraries". <a href="https://www.boost.org/">https://www.boost.org/</a>.&#160;<a href="#fnref-2" class="footnoteBackLink" title="Jump back to footnote 2 in the text.">&#8617;</a></p>
</li>
</ol>
</div>
</div>
@ -462,7 +469,7 @@ where \( F \) is the hypergeometric function <code>hyp2f1</code>:</p>
</div>
<a class="headerlink" href="#betaln"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="betaln-36"><a href="#betaln-36"><span class="linenos">36</span></a> <span class="nd">@wraps</span><span class="p">(</span><span class="n">f_raw</span><span class="p">)</span>
</span><span id="betaln-37"><a href="#betaln-37"><span class="linenos">37</span></a> <span class="k">def</span> <span class="nf">f_wrapped</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="betaln-37"><a href="#betaln-37"><span class="linenos">37</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">f_wrapped</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="betaln-38"><a href="#betaln-38"><span class="linenos">38</span></a> <span class="n">boxed_args</span><span class="p">,</span> <span class="n">trace</span><span class="p">,</span> <span class="n">node_constructor</span> <span class="o">=</span> <span class="n">find_top_boxed_args</span><span class="p">(</span><span class="n">args</span><span class="p">)</span>
</span><span id="betaln-39"><a href="#betaln-39"><span class="linenos">39</span></a> <span class="k">if</span> <span class="n">boxed_args</span><span class="p">:</span>
</span><span id="betaln-40"><a href="#betaln-40"><span class="linenos">40</span></a> <span class="n">argvals</span> <span class="o">=</span> <span class="n">subvals</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="p">[(</span><span class="n">argnum</span><span class="p">,</span> <span class="n">box</span><span class="o">.</span><span class="n">_value</span><span class="p">)</span> <span class="k">for</span> <span class="n">argnum</span><span class="p">,</span> <span class="n">box</span> <span class="ow">in</span> <span class="n">boxed_args</span><span class="p">])</span>
@ -510,8 +517,8 @@ Optional output array for function values</li>
<h6 id="examples">Examples</h6>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">scipy.special</span> <span class="kn">import</span> <span class="n">betaln</span><span class="p">,</span> <span class="n">beta</span>
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span><span class="w"> </span><span class="nn">numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">np</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span><span class="w"> </span><span class="nn">scipy.special</span><span class="w"> </span><span class="kn">import</span> <span class="n">betaln</span><span class="p">,</span> <span class="n">beta</span>
</code></pre>
</div>
@ -565,7 +572,7 @@ the logarithm of the actual value.</p>
</div>
<a class="headerlink" href="#polygamma"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="polygamma-36"><a href="#polygamma-36"><span class="linenos">36</span></a> <span class="nd">@wraps</span><span class="p">(</span><span class="n">f_raw</span><span class="p">)</span>
</span><span id="polygamma-37"><a href="#polygamma-37"><span class="linenos">37</span></a> <span class="k">def</span> <span class="nf">f_wrapped</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="polygamma-37"><a href="#polygamma-37"><span class="linenos">37</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">f_wrapped</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="polygamma-38"><a href="#polygamma-38"><span class="linenos">38</span></a> <span class="n">boxed_args</span><span class="p">,</span> <span class="n">trace</span><span class="p">,</span> <span class="n">node_constructor</span> <span class="o">=</span> <span class="n">find_top_boxed_args</span><span class="p">(</span><span class="n">args</span><span class="p">)</span>
</span><span id="polygamma-39"><a href="#polygamma-39"><span class="linenos">39</span></a> <span class="k">if</span> <span class="n">boxed_args</span><span class="p">:</span>
</span><span id="polygamma-40"><a href="#polygamma-40"><span class="linenos">40</span></a> <span class="n">argvals</span> <span class="o">=</span> <span class="n">subvals</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="p">[(</span><span class="n">argnum</span><span class="p">,</span> <span class="n">box</span><span class="o">.</span><span class="n">_value</span><span class="p">)</span> <span class="k">for</span> <span class="n">argnum</span><span class="p">,</span> <span class="n">box</span> <span class="ow">in</span> <span class="n">boxed_args</span><span class="p">])</span>
@ -614,7 +621,7 @@ Real valued input</li>
<h6 id="examples">Examples</h6>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">scipy</span> <span class="kn">import</span> <span class="n">special</span>
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span><span class="w"> </span><span class="nn">scipy</span><span class="w"> </span><span class="kn">import</span> <span class="n">special</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">x</span> <span class="o">=</span> <span class="p">[</span><span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mf">25.5</span><span class="p">]</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">special</span><span class="o">.</span><span class="n">polygamma</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">x</span><span class="p">)</span>
<span class="go">array([ 0.64493407, 0.39493407, 0.03999467])</span>
@ -639,7 +646,7 @@ Real valued input</li>
</div>
<a class="headerlink" href="#psi"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="psi-36"><a href="#psi-36"><span class="linenos">36</span></a> <span class="nd">@wraps</span><span class="p">(</span><span class="n">f_raw</span><span class="p">)</span>
</span><span id="psi-37"><a href="#psi-37"><span class="linenos">37</span></a> <span class="k">def</span> <span class="nf">f_wrapped</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="psi-37"><a href="#psi-37"><span class="linenos">37</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">f_wrapped</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="psi-38"><a href="#psi-38"><span class="linenos">38</span></a> <span class="n">boxed_args</span><span class="p">,</span> <span class="n">trace</span><span class="p">,</span> <span class="n">node_constructor</span> <span class="o">=</span> <span class="n">find_top_boxed_args</span><span class="p">(</span><span class="n">args</span><span class="p">)</span>
</span><span id="psi-39"><a href="#psi-39"><span class="linenos">39</span></a> <span class="k">if</span> <span class="n">boxed_args</span><span class="p">:</span>
</span><span id="psi-40"><a href="#psi-40"><span class="linenos">40</span></a> <span class="n">argvals</span> <span class="o">=</span> <span class="n">subvals</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="p">[(</span><span class="n">argnum</span><span class="p">,</span> <span class="n">box</span><span class="o">.</span><span class="n">_value</span><span class="p">)</span> <span class="k">for</span> <span class="n">argnum</span><span class="p">,</span> <span class="n">box</span> <span class="ow">in</span> <span class="n">boxed_args</span><span class="p">])</span>
@ -700,7 +707,7 @@ function should maintain full accuracy around the origin.</p>
<h6 id="examples">Examples</h6>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">scipy.special</span> <span class="kn">import</span> <span class="n">psi</span>
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span><span class="w"> </span><span class="nn">scipy.special</span><span class="w"> </span><span class="kn">import</span> <span class="n">psi</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">z</span> <span class="o">=</span> <span class="mi">3</span> <span class="o">+</span> <span class="mi">4</span><span class="n">j</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">psi</span><span class="p">(</span><span class="n">z</span><span class="p">)</span>
<span class="go">(1.55035981733341+1.0105022091860445j)</span>
@ -757,7 +764,7 @@ function should maintain full accuracy around the origin.</p>
</div>
<a class="headerlink" href="#digamma"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="digamma-36"><a href="#digamma-36"><span class="linenos">36</span></a> <span class="nd">@wraps</span><span class="p">(</span><span class="n">f_raw</span><span class="p">)</span>
</span><span id="digamma-37"><a href="#digamma-37"><span class="linenos">37</span></a> <span class="k">def</span> <span class="nf">f_wrapped</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="digamma-37"><a href="#digamma-37"><span class="linenos">37</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">f_wrapped</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="digamma-38"><a href="#digamma-38"><span class="linenos">38</span></a> <span class="n">boxed_args</span><span class="p">,</span> <span class="n">trace</span><span class="p">,</span> <span class="n">node_constructor</span> <span class="o">=</span> <span class="n">find_top_boxed_args</span><span class="p">(</span><span class="n">args</span><span class="p">)</span>
</span><span id="digamma-39"><a href="#digamma-39"><span class="linenos">39</span></a> <span class="k">if</span> <span class="n">boxed_args</span><span class="p">:</span>
</span><span id="digamma-40"><a href="#digamma-40"><span class="linenos">40</span></a> <span class="n">argvals</span> <span class="o">=</span> <span class="n">subvals</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="p">[(</span><span class="n">argnum</span><span class="p">,</span> <span class="n">box</span><span class="o">.</span><span class="n">_value</span><span class="p">)</span> <span class="k">for</span> <span class="n">argnum</span><span class="p">,</span> <span class="n">box</span> <span class="ow">in</span> <span class="n">boxed_args</span><span class="p">])</span>
@ -818,7 +825,7 @@ function should maintain full accuracy around the origin.</p>
<h6 id="examples">Examples</h6>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">scipy.special</span> <span class="kn">import</span> <span class="n">psi</span>
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span><span class="w"> </span><span class="nn">scipy.special</span><span class="w"> </span><span class="kn">import</span> <span class="n">psi</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">z</span> <span class="o">=</span> <span class="mi">3</span> <span class="o">+</span> <span class="mi">4</span><span class="n">j</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">psi</span><span class="p">(</span><span class="n">z</span><span class="p">)</span>
<span class="go">(1.55035981733341+1.0105022091860445j)</span>
@ -875,7 +882,7 @@ function should maintain full accuracy around the origin.</p>
</div>
<a class="headerlink" href="#gamma"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="gamma-36"><a href="#gamma-36"><span class="linenos">36</span></a> <span class="nd">@wraps</span><span class="p">(</span><span class="n">f_raw</span><span class="p">)</span>
</span><span id="gamma-37"><a href="#gamma-37"><span class="linenos">37</span></a> <span class="k">def</span> <span class="nf">f_wrapped</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="gamma-37"><a href="#gamma-37"><span class="linenos">37</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">f_wrapped</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="gamma-38"><a href="#gamma-38"><span class="linenos">38</span></a> <span class="n">boxed_args</span><span class="p">,</span> <span class="n">trace</span><span class="p">,</span> <span class="n">node_constructor</span> <span class="o">=</span> <span class="n">find_top_boxed_args</span><span class="p">(</span><span class="n">args</span><span class="p">)</span>
</span><span id="gamma-39"><a href="#gamma-39"><span class="linenos">39</span></a> <span class="k">if</span> <span class="n">boxed_args</span><span class="p">:</span>
</span><span id="gamma-40"><a href="#gamma-40"><span class="linenos">40</span></a> <span class="n">argvals</span> <span class="o">=</span> <span class="n">subvals</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="p">[(</span><span class="n">argnum</span><span class="p">,</span> <span class="n">box</span><span class="o">.</span><span class="n">_value</span><span class="p">)</span> <span class="k">for</span> <span class="n">argnum</span><span class="p">,</span> <span class="n">box</span> <span class="ow">in</span> <span class="n">boxed_args</span><span class="p">])</span>
@ -928,16 +935,41 @@ factorial since \( \Gamma(n + 1) = n! \) for natural numbers
which, combined with the fact that \( \Gamma(1) = 1 \), implies
the above identity for \( z = n \).</p>
<p>The gamma function has poles at non-negative integers and the sign
of infinity as z approaches each pole depends upon the direction in
which the pole is approached. For this reason, the consistent thing
is for gamma(z) to return NaN at negative integers, and to return
-inf when x = -0.0 and +inf when x = 0.0, using the signbit of zero
to signify the direction in which the origin is being approached. This
is for instance what is recommended for the gamma function in annex F
entry 9.5.4 of the Iso C 99 standard [isoc99]_.</p>
<p>Prior to SciPy version 1.15, <code>scipy.special.gamma(z)</code> returned <code>+inf</code>
at each pole. This was fixed in version 1.15, but with the following
consequence. Expressions where gamma appears in the denominator
such as</p>
<p><code>gamma(u) * gamma(v) / (gamma(w) * gamma(x))</code></p>
<p>no longer evaluate to 0 if the numerator is well defined but there is a
pole in the denominator. Instead such expressions evaluate to NaN. We
recommend instead using the function <code><a href="#rgamma">rgamma</a></code> for the reciprocal gamma
function in such cases. The above expression could for instance be written
as</p>
<p><code>gamma(u) * gamma(v) * (rgamma(w) * rgamma(x))</code></p>
<h6 id="references">References</h6>
<p>.. [dlmf] NIST Digital Library of Mathematical Functions
<a href="https://dlmf.nist.gov/5.2#E1">https://dlmf.nist.gov/5.2#E1</a></p>
<a href="https://dlmf.nist.gov/5.2#E1">https://dlmf.nist.gov/5.2#E1</a>
.. [isoc99] <a href="https://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf">https://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf</a></p>
<h6 id="examples">Examples</h6>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">scipy.special</span> <span class="kn">import</span> <span class="n">gamma</span><span class="p">,</span> <span class="n">factorial</span>
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span><span class="w"> </span><span class="nn">numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">np</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span><span class="w"> </span><span class="nn">scipy.special</span><span class="w"> </span><span class="kn">import</span> <span class="n">gamma</span><span class="p">,</span> <span class="n">factorial</span>
</code></pre>
</div>
@ -972,7 +1004,7 @@ the above identity for \( z = n \).</p>
</div>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">matplotlib.pyplot</span> <span class="k">as</span> <span class="nn">plt</span>
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span><span class="w"> </span><span class="nn">matplotlib.pyplot</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">plt</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">plt</span><span class="o">.</span><span class="n">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="s1">&#39;b&#39;</span><span class="p">,</span> <span class="n">alpha</span><span class="o">=</span><span class="mf">0.6</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s1">&#39;gamma(x)&#39;</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">k</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">7</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="n">factorial</span><span class="p">(</span><span class="n">k</span><span class="o">-</span><span class="mi">1</span><span class="p">),</span> <span class="s1">&#39;k*&#39;</span><span class="p">,</span> <span class="n">alpha</span><span class="o">=</span><span class="mf">0.6</span><span class="p">,</span>
@ -1002,7 +1034,7 @@ the above identity for \( z = n \).</p>
</div>
<a class="headerlink" href="#gammaln"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="gammaln-36"><a href="#gammaln-36"><span class="linenos">36</span></a> <span class="nd">@wraps</span><span class="p">(</span><span class="n">f_raw</span><span class="p">)</span>
</span><span id="gammaln-37"><a href="#gammaln-37"><span class="linenos">37</span></a> <span class="k">def</span> <span class="nf">f_wrapped</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="gammaln-37"><a href="#gammaln-37"><span class="linenos">37</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">f_wrapped</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="gammaln-38"><a href="#gammaln-38"><span class="linenos">38</span></a> <span class="n">boxed_args</span><span class="p">,</span> <span class="n">trace</span><span class="p">,</span> <span class="n">node_constructor</span> <span class="o">=</span> <span class="n">find_top_boxed_args</span><span class="p">(</span><span class="n">args</span><span class="p">)</span>
</span><span id="gammaln-39"><a href="#gammaln-39"><span class="linenos">39</span></a> <span class="k">if</span> <span class="n">boxed_args</span><span class="p">:</span>
</span><span id="gammaln-40"><a href="#gammaln-40"><span class="linenos">40</span></a> <span class="n">argvals</span> <span class="o">=</span> <span class="n">subvals</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="p">[(</span><span class="n">argnum</span><span class="p">,</span> <span class="n">box</span><span class="o">.</span><span class="n">_value</span><span class="p">)</span> <span class="k">for</span> <span class="n">argnum</span><span class="p">,</span> <span class="n">box</span> <span class="ow">in</span> <span class="n">boxed_args</span><span class="p">])</span>
@ -1071,8 +1103,8 @@ gammasgn(x) * gamma(x)</code>.</p>
<h6 id="examples">Examples</h6>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">scipy.special</span> <span class="k">as</span> <span class="nn">sc</span>
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span><span class="w"> </span><span class="nn">numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">np</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span><span class="w"> </span><span class="nn">scipy.special</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">sc</span>
</code></pre>
</div>
@ -1119,7 +1151,7 @@ gammasgn(x) * gamma(x)</code>.</p>
</div>
<a class="headerlink" href="#gammainc"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="gammainc-36"><a href="#gammainc-36"><span class="linenos">36</span></a> <span class="nd">@wraps</span><span class="p">(</span><span class="n">f_raw</span><span class="p">)</span>
</span><span id="gammainc-37"><a href="#gammainc-37"><span class="linenos">37</span></a> <span class="k">def</span> <span class="nf">f_wrapped</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="gammainc-37"><a href="#gammainc-37"><span class="linenos">37</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">f_wrapped</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="gammainc-38"><a href="#gammainc-38"><span class="linenos">38</span></a> <span class="n">boxed_args</span><span class="p">,</span> <span class="n">trace</span><span class="p">,</span> <span class="n">node_constructor</span> <span class="o">=</span> <span class="n">find_top_boxed_args</span><span class="p">(</span><span class="n">args</span><span class="p">)</span>
</span><span id="gammainc-39"><a href="#gammainc-39"><span class="linenos">39</span></a> <span class="k">if</span> <span class="n">boxed_args</span><span class="p">:</span>
</span><span id="gammainc-40"><a href="#gammainc-40"><span class="linenos">40</span></a> <span class="n">argvals</span> <span class="o">=</span> <span class="n">subvals</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="p">[(</span><span class="n">argnum</span><span class="p">,</span> <span class="n">box</span><span class="o">.</span><span class="n">_value</span><span class="p">)</span> <span class="k">for</span> <span class="n">argnum</span><span class="p">,</span> <span class="n">box</span> <span class="ow">in</span> <span class="n">boxed_args</span><span class="p">])</span>
@ -1188,7 +1220,7 @@ incomplete gamma function.</p>
<h6 id="examples">Examples</h6>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">scipy.special</span> <span class="k">as</span> <span class="nn">sc</span>
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span><span class="w"> </span><span class="nn">scipy.special</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">sc</span>
</code></pre>
</div>
@ -1228,7 +1260,7 @@ monotonically increases to 1.</p>
</div>
<a class="headerlink" href="#gammaincc"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="gammaincc-36"><a href="#gammaincc-36"><span class="linenos">36</span></a> <span class="nd">@wraps</span><span class="p">(</span><span class="n">f_raw</span><span class="p">)</span>
</span><span id="gammaincc-37"><a href="#gammaincc-37"><span class="linenos">37</span></a> <span class="k">def</span> <span class="nf">f_wrapped</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="gammaincc-37"><a href="#gammaincc-37"><span class="linenos">37</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">f_wrapped</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="gammaincc-38"><a href="#gammaincc-38"><span class="linenos">38</span></a> <span class="n">boxed_args</span><span class="p">,</span> <span class="n">trace</span><span class="p">,</span> <span class="n">node_constructor</span> <span class="o">=</span> <span class="n">find_top_boxed_args</span><span class="p">(</span><span class="n">args</span><span class="p">)</span>
</span><span id="gammaincc-39"><a href="#gammaincc-39"><span class="linenos">39</span></a> <span class="k">if</span> <span class="n">boxed_args</span><span class="p">:</span>
</span><span id="gammaincc-40"><a href="#gammaincc-40"><span class="linenos">40</span></a> <span class="n">argvals</span> <span class="o">=</span> <span class="n">subvals</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="p">[(</span><span class="n">argnum</span><span class="p">,</span> <span class="n">box</span><span class="o">.</span><span class="n">_value</span><span class="p">)</span> <span class="k">for</span> <span class="n">argnum</span><span class="p">,</span> <span class="n">box</span> <span class="ow">in</span> <span class="n">boxed_args</span><span class="p">])</span>
@ -1297,7 +1329,7 @@ incomplete gamma function.</p>
<h6 id="examples">Examples</h6>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">scipy.special</span> <span class="k">as</span> <span class="nn">sc</span>
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span><span class="w"> </span><span class="nn">scipy.special</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">sc</span>
</code></pre>
</div>
@ -1338,7 +1370,7 @@ starts at 1 and monotonically decreases to 0.</p>
</div>
<a class="headerlink" href="#gammasgn"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="gammasgn-36"><a href="#gammasgn-36"><span class="linenos">36</span></a> <span class="nd">@wraps</span><span class="p">(</span><span class="n">f_raw</span><span class="p">)</span>
</span><span id="gammasgn-37"><a href="#gammasgn-37"><span class="linenos">37</span></a> <span class="k">def</span> <span class="nf">f_wrapped</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="gammasgn-37"><a href="#gammasgn-37"><span class="linenos">37</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">f_wrapped</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="gammasgn-38"><a href="#gammasgn-38"><span class="linenos">38</span></a> <span class="n">boxed_args</span><span class="p">,</span> <span class="n">trace</span><span class="p">,</span> <span class="n">node_constructor</span> <span class="o">=</span> <span class="n">find_top_boxed_args</span><span class="p">(</span><span class="n">args</span><span class="p">)</span>
</span><span id="gammasgn-39"><a href="#gammasgn-39"><span class="linenos">39</span></a> <span class="k">if</span> <span class="n">boxed_args</span><span class="p">:</span>
</span><span id="gammasgn-40"><a href="#gammasgn-40"><span class="linenos">40</span></a> <span class="n">argvals</span> <span class="o">=</span> <span class="n">subvals</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="p">[(</span><span class="n">argnum</span><span class="p">,</span> <span class="n">box</span><span class="o">.</span><span class="n">_value</span><span class="p">)</span> <span class="k">for</span> <span class="n">argnum</span><span class="p">,</span> <span class="n">box</span> <span class="ow">in</span> <span class="n">boxed_args</span><span class="p">])</span>
@ -1406,8 +1438,8 @@ np.exp(gammaln(x))</code>.</p>
<h6 id="examples">Examples</h6>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">scipy.special</span> <span class="k">as</span> <span class="nn">sc</span>
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span><span class="w"> </span><span class="nn">numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">np</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span><span class="w"> </span><span class="nn">scipy.special</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">sc</span>
</code></pre>
</div>
@ -1454,7 +1486,7 @@ np.exp(gammaln(x))</code>.</p>
</div>
<a class="headerlink" href="#rgamma"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="rgamma-36"><a href="#rgamma-36"><span class="linenos">36</span></a> <span class="nd">@wraps</span><span class="p">(</span><span class="n">f_raw</span><span class="p">)</span>
</span><span id="rgamma-37"><a href="#rgamma-37"><span class="linenos">37</span></a> <span class="k">def</span> <span class="nf">f_wrapped</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="rgamma-37"><a href="#rgamma-37"><span class="linenos">37</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">f_wrapped</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="rgamma-38"><a href="#rgamma-38"><span class="linenos">38</span></a> <span class="n">boxed_args</span><span class="p">,</span> <span class="n">trace</span><span class="p">,</span> <span class="n">node_constructor</span> <span class="o">=</span> <span class="n">find_top_boxed_args</span><span class="p">(</span><span class="n">args</span><span class="p">)</span>
</span><span id="rgamma-39"><a href="#rgamma-39"><span class="linenos">39</span></a> <span class="k">if</span> <span class="n">boxed_args</span><span class="p">:</span>
</span><span id="rgamma-40"><a href="#rgamma-40"><span class="linenos">40</span></a> <span class="n">argvals</span> <span class="o">=</span> <span class="n">subvals</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="p">[(</span><span class="n">argnum</span><span class="p">,</span> <span class="n">box</span><span class="o">.</span><span class="n">_value</span><span class="p">)</span> <span class="k">for</span> <span class="n">argnum</span><span class="p">,</span> <span class="n">box</span> <span class="ow">in</span> <span class="n">boxed_args</span><span class="p">])</span>
@ -1513,7 +1545,7 @@ more details.</p>
<h6 id="examples">Examples</h6>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">scipy.special</span> <span class="k">as</span> <span class="nn">sc</span>
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span><span class="w"> </span><span class="nn">scipy.special</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">sc</span>
</code></pre>
</div>
@ -1559,7 +1591,7 @@ more details.</p>
</div>
<a class="headerlink" href="#multigammaln"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="multigammaln-36"><a href="#multigammaln-36"><span class="linenos">36</span></a> <span class="nd">@wraps</span><span class="p">(</span><span class="n">f_raw</span><span class="p">)</span>
</span><span id="multigammaln-37"><a href="#multigammaln-37"><span class="linenos">37</span></a> <span class="k">def</span> <span class="nf">f_wrapped</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="multigammaln-37"><a href="#multigammaln-37"><span class="linenos">37</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">f_wrapped</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="multigammaln-38"><a href="#multigammaln-38"><span class="linenos">38</span></a> <span class="n">boxed_args</span><span class="p">,</span> <span class="n">trace</span><span class="p">,</span> <span class="n">node_constructor</span> <span class="o">=</span> <span class="n">find_top_boxed_args</span><span class="p">(</span><span class="n">args</span><span class="p">)</span>
</span><span id="multigammaln-39"><a href="#multigammaln-39"><span class="linenos">39</span></a> <span class="k">if</span> <span class="n">boxed_args</span><span class="p">:</span>
</span><span id="multigammaln-40"><a href="#multigammaln-40"><span class="linenos">40</span></a> <span class="n">argvals</span> <span class="o">=</span> <span class="n">subvals</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="p">[(</span><span class="n">argnum</span><span class="p">,</span> <span class="n">box</span><span class="o">.</span><span class="n">_value</span><span class="p">)</span> <span class="k">for</span> <span class="n">argnum</span><span class="p">,</span> <span class="n">box</span> <span class="ow">in</span> <span class="n">boxed_args</span><span class="p">])</span>
@ -1618,8 +1650,8 @@ probability and mathematical statistics).</p>
<h6 id="examples">Examples</h6>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">scipy.special</span> <span class="kn">import</span> <span class="n">multigammaln</span><span class="p">,</span> <span class="n">gammaln</span>
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span><span class="w"> </span><span class="nn">numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">np</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span><span class="w"> </span><span class="nn">scipy.special</span><span class="w"> </span><span class="kn">import</span> <span class="n">multigammaln</span><span class="p">,</span> <span class="n">gammaln</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">a</span> <span class="o">=</span> <span class="mf">23.5</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span> <span class="o">=</span> <span class="mi">10</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">multigammaln</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">d</span><span class="p">)</span>
@ -1652,7 +1684,7 @@ shown above:</p>
</div>
<a class="headerlink" href="#kn"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="kn-36"><a href="#kn-36"><span class="linenos">36</span></a> <span class="nd">@wraps</span><span class="p">(</span><span class="n">f_raw</span><span class="p">)</span>
</span><span id="kn-37"><a href="#kn-37"><span class="linenos">37</span></a> <span class="k">def</span> <span class="nf">f_wrapped</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="kn-37"><a href="#kn-37"><span class="linenos">37</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">f_wrapped</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="kn-38"><a href="#kn-38"><span class="linenos">38</span></a> <span class="n">boxed_args</span><span class="p">,</span> <span class="n">trace</span><span class="p">,</span> <span class="n">node_constructor</span> <span class="o">=</span> <span class="n">find_top_boxed_args</span><span class="p">(</span><span class="n">args</span><span class="p">)</span>
</span><span id="kn-39"><a href="#kn-39"><span class="linenos">39</span></a> <span class="k">if</span> <span class="n">boxed_args</span><span class="p">:</span>
</span><span id="kn-40"><a href="#kn-40"><span class="linenos">40</span></a> <span class="n">argvals</span> <span class="o">=</span> <span class="n">subvals</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="p">[(</span><span class="n">argnum</span><span class="p">,</span> <span class="n">box</span><span class="o">.</span><span class="n">_value</span><span class="p">)</span> <span class="k">for</span> <span class="n">argnum</span><span class="p">,</span> <span class="n">box</span> <span class="ow">in</span> <span class="n">boxed_args</span><span class="p">])</span>
@ -1686,7 +1718,7 @@ shown above:</p>
</div>
<a class="headerlink" href="#j0"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="j0-36"><a href="#j0-36"><span class="linenos">36</span></a> <span class="nd">@wraps</span><span class="p">(</span><span class="n">f_raw</span><span class="p">)</span>
</span><span id="j0-37"><a href="#j0-37"><span class="linenos">37</span></a> <span class="k">def</span> <span class="nf">f_wrapped</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="j0-37"><a href="#j0-37"><span class="linenos">37</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">f_wrapped</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="j0-38"><a href="#j0-38"><span class="linenos">38</span></a> <span class="n">boxed_args</span><span class="p">,</span> <span class="n">trace</span><span class="p">,</span> <span class="n">node_constructor</span> <span class="o">=</span> <span class="n">find_top_boxed_args</span><span class="p">(</span><span class="n">args</span><span class="p">)</span>
</span><span id="j0-39"><a href="#j0-39"><span class="linenos">39</span></a> <span class="k">if</span> <span class="n">boxed_args</span><span class="p">:</span>
</span><span id="j0-40"><a href="#j0-40"><span class="linenos">40</span></a> <span class="n">argvals</span> <span class="o">=</span> <span class="n">subvals</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="p">[(</span><span class="n">argnum</span><span class="p">,</span> <span class="n">box</span><span class="o">.</span><span class="n">_value</span><span class="p">)</span> <span class="k">for</span> <span class="n">argnum</span><span class="p">,</span> <span class="n">box</span> <span class="ow">in</span> <span class="n">boxed_args</span><span class="p">])</span>
@ -1754,7 +1786,7 @@ It should not be confused with the spherical Bessel functions (see
<p>Calculate the function at one point:</p>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">scipy.special</span> <span class="kn">import</span> <span class="n">j0</span>
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span><span class="w"> </span><span class="nn">scipy.special</span><span class="w"> </span><span class="kn">import</span> <span class="n">j0</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">j0</span><span class="p">(</span><span class="mf">1.</span><span class="p">)</span>
<span class="go">0.7651976865579665</span>
</code></pre>
@ -1763,7 +1795,7 @@ It should not be confused with the spherical Bessel functions (see
<p>Calculate the function at several points:</p>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span><span class="w"> </span><span class="nn">numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">np</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">j0</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([</span><span class="o">-</span><span class="mf">2.</span><span class="p">,</span> <span class="mf">0.</span><span class="p">,</span> <span class="mf">4.</span><span class="p">]))</span>
<span class="go">array([ 0.22389078, 1. , -0.39714981])</span>
</code></pre>
@ -1772,7 +1804,7 @@ It should not be confused with the spherical Bessel functions (see
<p>Plot the function from -20 to 20.</p>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">matplotlib.pyplot</span> <span class="k">as</span> <span class="nn">plt</span>
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span><span class="w"> </span><span class="nn">matplotlib.pyplot</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">plt</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">fig</span><span class="p">,</span> <span class="n">ax</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">subplots</span><span class="p">()</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">x</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">linspace</span><span class="p">(</span><span class="o">-</span><span class="mf">20.</span><span class="p">,</span> <span class="mf">20.</span><span class="p">,</span> <span class="mi">1000</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">y</span> <span class="o">=</span> <span class="n">j0</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
@ -1807,7 +1839,7 @@ It should not be confused with the spherical Bessel functions (see
</div>
<a class="headerlink" href="#y0"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="y0-36"><a href="#y0-36"><span class="linenos">36</span></a> <span class="nd">@wraps</span><span class="p">(</span><span class="n">f_raw</span><span class="p">)</span>
</span><span id="y0-37"><a href="#y0-37"><span class="linenos">37</span></a> <span class="k">def</span> <span class="nf">f_wrapped</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="y0-37"><a href="#y0-37"><span class="linenos">37</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">f_wrapped</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="y0-38"><a href="#y0-38"><span class="linenos">38</span></a> <span class="n">boxed_args</span><span class="p">,</span> <span class="n">trace</span><span class="p">,</span> <span class="n">node_constructor</span> <span class="o">=</span> <span class="n">find_top_boxed_args</span><span class="p">(</span><span class="n">args</span><span class="p">)</span>
</span><span id="y0-39"><a href="#y0-39"><span class="linenos">39</span></a> <span class="k">if</span> <span class="n">boxed_args</span><span class="p">:</span>
</span><span id="y0-40"><a href="#y0-40"><span class="linenos">40</span></a> <span class="n">argvals</span> <span class="o">=</span> <span class="n">subvals</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="p">[(</span><span class="n">argnum</span><span class="p">,</span> <span class="n">box</span><span class="o">.</span><span class="n">_value</span><span class="p">)</span> <span class="k">for</span> <span class="n">argnum</span><span class="p">,</span> <span class="n">box</span> <span class="ow">in</span> <span class="n">boxed_args</span><span class="p">])</span>
@ -1872,7 +1904,7 @@ two rational functions of degree 6/6 and 7/7.</p>
<p>Calculate the function at one point:</p>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">scipy.special</span> <span class="kn">import</span> <span class="n">y0</span>
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span><span class="w"> </span><span class="nn">scipy.special</span><span class="w"> </span><span class="kn">import</span> <span class="n">y0</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">y0</span><span class="p">(</span><span class="mf">1.</span><span class="p">)</span>
<span class="go">0.08825696421567697</span>
</code></pre>
@ -1881,7 +1913,7 @@ two rational functions of degree 6/6 and 7/7.</p>
<p>Calculate at several points:</p>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span><span class="w"> </span><span class="nn">numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">np</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">y0</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([</span><span class="mf">0.5</span><span class="p">,</span> <span class="mf">2.</span><span class="p">,</span> <span class="mf">3.</span><span class="p">]))</span>
<span class="go">array([-0.44451873, 0.51037567, 0.37685001])</span>
</code></pre>
@ -1890,7 +1922,7 @@ two rational functions of degree 6/6 and 7/7.</p>
<p>Plot the function from 0 to 10.</p>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">matplotlib.pyplot</span> <span class="k">as</span> <span class="nn">plt</span>
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span><span class="w"> </span><span class="nn">matplotlib.pyplot</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">plt</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">fig</span><span class="p">,</span> <span class="n">ax</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">subplots</span><span class="p">()</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">x</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">linspace</span><span class="p">(</span><span class="mf">0.</span><span class="p">,</span> <span class="mf">10.</span><span class="p">,</span> <span class="mi">1000</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">y</span> <span class="o">=</span> <span class="n">y0</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
@ -1925,7 +1957,7 @@ two rational functions of degree 6/6 and 7/7.</p>
</div>
<a class="headerlink" href="#j1"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="j1-36"><a href="#j1-36"><span class="linenos">36</span></a> <span class="nd">@wraps</span><span class="p">(</span><span class="n">f_raw</span><span class="p">)</span>
</span><span id="j1-37"><a href="#j1-37"><span class="linenos">37</span></a> <span class="k">def</span> <span class="nf">f_wrapped</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="j1-37"><a href="#j1-37"><span class="linenos">37</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">f_wrapped</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="j1-38"><a href="#j1-38"><span class="linenos">38</span></a> <span class="n">boxed_args</span><span class="p">,</span> <span class="n">trace</span><span class="p">,</span> <span class="n">node_constructor</span> <span class="o">=</span> <span class="n">find_top_boxed_args</span><span class="p">(</span><span class="n">args</span><span class="p">)</span>
</span><span id="j1-39"><a href="#j1-39"><span class="linenos">39</span></a> <span class="k">if</span> <span class="n">boxed_args</span><span class="p">:</span>
</span><span id="j1-40"><a href="#j1-40"><span class="linenos">40</span></a> <span class="n">argvals</span> <span class="o">=</span> <span class="n">subvals</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="p">[(</span><span class="n">argnum</span><span class="p">,</span> <span class="n">box</span><span class="o">.</span><span class="n">_value</span><span class="p">)</span> <span class="k">for</span> <span class="n">argnum</span><span class="p">,</span> <span class="n">box</span> <span class="ow">in</span> <span class="n">boxed_args</span><span class="p">])</span>
@ -1986,7 +2018,7 @@ It should not be confused with the spherical Bessel functions (see
<p>Calculate the function at one point:</p>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">scipy.special</span> <span class="kn">import</span> <span class="n">j1</span>
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span><span class="w"> </span><span class="nn">scipy.special</span><span class="w"> </span><span class="kn">import</span> <span class="n">j1</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">j1</span><span class="p">(</span><span class="mf">1.</span><span class="p">)</span>
<span class="go">0.44005058574493355</span>
</code></pre>
@ -1995,7 +2027,7 @@ It should not be confused with the spherical Bessel functions (see
<p>Calculate the function at several points:</p>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span><span class="w"> </span><span class="nn">numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">np</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">j1</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([</span><span class="o">-</span><span class="mf">2.</span><span class="p">,</span> <span class="mf">0.</span><span class="p">,</span> <span class="mf">4.</span><span class="p">]))</span>
<span class="go">array([-0.57672481, 0. , -0.06604333])</span>
</code></pre>
@ -2004,7 +2036,7 @@ It should not be confused with the spherical Bessel functions (see
<p>Plot the function from -20 to 20.</p>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">matplotlib.pyplot</span> <span class="k">as</span> <span class="nn">plt</span>
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span><span class="w"> </span><span class="nn">matplotlib.pyplot</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">plt</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">fig</span><span class="p">,</span> <span class="n">ax</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">subplots</span><span class="p">()</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">x</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">linspace</span><span class="p">(</span><span class="o">-</span><span class="mf">20.</span><span class="p">,</span> <span class="mf">20.</span><span class="p">,</span> <span class="mi">1000</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">y</span> <span class="o">=</span> <span class="n">j1</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
@ -2039,7 +2071,7 @@ It should not be confused with the spherical Bessel functions (see
</div>
<a class="headerlink" href="#y1"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="y1-36"><a href="#y1-36"><span class="linenos">36</span></a> <span class="nd">@wraps</span><span class="p">(</span><span class="n">f_raw</span><span class="p">)</span>
</span><span id="y1-37"><a href="#y1-37"><span class="linenos">37</span></a> <span class="k">def</span> <span class="nf">f_wrapped</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="y1-37"><a href="#y1-37"><span class="linenos">37</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">f_wrapped</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="y1-38"><a href="#y1-38"><span class="linenos">38</span></a> <span class="n">boxed_args</span><span class="p">,</span> <span class="n">trace</span><span class="p">,</span> <span class="n">node_constructor</span> <span class="o">=</span> <span class="n">find_top_boxed_args</span><span class="p">(</span><span class="n">args</span><span class="p">)</span>
</span><span id="y1-39"><a href="#y1-39"><span class="linenos">39</span></a> <span class="k">if</span> <span class="n">boxed_args</span><span class="p">:</span>
</span><span id="y1-40"><a href="#y1-40"><span class="linenos">40</span></a> <span class="n">argvals</span> <span class="o">=</span> <span class="n">subvals</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="p">[(</span><span class="n">argnum</span><span class="p">,</span> <span class="n">box</span><span class="o">.</span><span class="n">_value</span><span class="p">)</span> <span class="k">for</span> <span class="n">argnum</span><span class="p">,</span> <span class="n">box</span> <span class="ow">in</span> <span class="n">boxed_args</span><span class="p">])</span>
@ -2100,7 +2132,7 @@ rational functions of degree 5/5.</p>
<p>Calculate the function at one point:</p>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">scipy.special</span> <span class="kn">import</span> <span class="n">y1</span>
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span><span class="w"> </span><span class="nn">scipy.special</span><span class="w"> </span><span class="kn">import</span> <span class="n">y1</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">y1</span><span class="p">(</span><span class="mf">1.</span><span class="p">)</span>
<span class="go">-0.7812128213002888</span>
</code></pre>
@ -2109,7 +2141,7 @@ rational functions of degree 5/5.</p>
<p>Calculate at several points:</p>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span><span class="w"> </span><span class="nn">numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">np</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">y1</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([</span><span class="mf">0.5</span><span class="p">,</span> <span class="mf">2.</span><span class="p">,</span> <span class="mf">3.</span><span class="p">]))</span>
<span class="go">array([-1.47147239, -0.10703243, 0.32467442])</span>
</code></pre>
@ -2118,7 +2150,7 @@ rational functions of degree 5/5.</p>
<p>Plot the function from 0 to 10.</p>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">matplotlib.pyplot</span> <span class="k">as</span> <span class="nn">plt</span>
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span><span class="w"> </span><span class="nn">matplotlib.pyplot</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">plt</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">fig</span><span class="p">,</span> <span class="n">ax</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">subplots</span><span class="p">()</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">x</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">linspace</span><span class="p">(</span><span class="mf">0.</span><span class="p">,</span> <span class="mf">10.</span><span class="p">,</span> <span class="mi">1000</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">y</span> <span class="o">=</span> <span class="n">y1</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
@ -2153,7 +2185,7 @@ rational functions of degree 5/5.</p>
</div>
<a class="headerlink" href="#jn"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="jn-36"><a href="#jn-36"><span class="linenos">36</span></a> <span class="nd">@wraps</span><span class="p">(</span><span class="n">f_raw</span><span class="p">)</span>
</span><span id="jn-37"><a href="#jn-37"><span class="linenos">37</span></a> <span class="k">def</span> <span class="nf">f_wrapped</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="jn-37"><a href="#jn-37"><span class="linenos">37</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">f_wrapped</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="jn-38"><a href="#jn-38"><span class="linenos">38</span></a> <span class="n">boxed_args</span><span class="p">,</span> <span class="n">trace</span><span class="p">,</span> <span class="n">node_constructor</span> <span class="o">=</span> <span class="n">find_top_boxed_args</span><span class="p">(</span><span class="n">args</span><span class="p">)</span>
</span><span id="jn-39"><a href="#jn-39"><span class="linenos">39</span></a> <span class="k">if</span> <span class="n">boxed_args</span><span class="p">:</span>
</span><span id="jn-40"><a href="#jn-40"><span class="linenos">40</span></a> <span class="n">argvals</span> <span class="o">=</span> <span class="n">subvals</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="p">[(</span><span class="n">argnum</span><span class="p">,</span> <span class="n">box</span><span class="o">.</span><span class="n">_value</span><span class="p">)</span> <span class="k">for</span> <span class="n">argnum</span><span class="p">,</span> <span class="n">box</span> <span class="ow">in</span> <span class="n">boxed_args</span><span class="p">])</span>
@ -2228,7 +2260,7 @@ term is explicitly omitted for <code>v</code> values such that <code>v = floor(v
<p>Evaluate the function of order 0 at one point.</p>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">scipy.special</span> <span class="kn">import</span> <span class="n">jv</span>
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span><span class="w"> </span><span class="nn">scipy.special</span><span class="w"> </span><span class="kn">import</span> <span class="n">jv</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">jv</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mf">1.</span><span class="p">)</span>
<span class="go">0.7651976865579666</span>
</code></pre>
@ -2255,7 +2287,7 @@ providing a list or NumPy array as argument for the <code>v</code> parameter:</p
array for <code>z</code>.</p>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span><span class="w"> </span><span class="nn">numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">np</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">points</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([</span><span class="o">-</span><span class="mf">2.</span><span class="p">,</span> <span class="mf">0.</span><span class="p">,</span> <span class="mf">3.</span><span class="p">])</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">jv</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">points</span><span class="p">)</span>
<span class="go">array([ 0.22389078, 1. , -0.26005195])</span>
@ -2283,7 +2315,7 @@ To calculate the orders 0 and 1 for an 1D array:</p>
<p>Plot the functions of order 0 to 3 from -10 to 10.</p>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">matplotlib.pyplot</span> <span class="k">as</span> <span class="nn">plt</span>
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span><span class="w"> </span><span class="nn">matplotlib.pyplot</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">plt</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">fig</span><span class="p">,</span> <span class="n">ax</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">subplots</span><span class="p">()</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">x</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">linspace</span><span class="p">(</span><span class="o">-</span><span class="mf">10.</span><span class="p">,</span> <span class="mf">10.</span><span class="p">,</span> <span class="mi">1000</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </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="mi">4</span><span class="p">):</span>
@ -2320,7 +2352,7 @@ of a Complex Argument and Nonnegative Order",
</div>
<a class="headerlink" href="#yn"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="yn-36"><a href="#yn-36"><span class="linenos">36</span></a> <span class="nd">@wraps</span><span class="p">(</span><span class="n">f_raw</span><span class="p">)</span>
</span><span id="yn-37"><a href="#yn-37"><span class="linenos">37</span></a> <span class="k">def</span> <span class="nf">f_wrapped</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="yn-37"><a href="#yn-37"><span class="linenos">37</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">f_wrapped</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="yn-38"><a href="#yn-38"><span class="linenos">38</span></a> <span class="n">boxed_args</span><span class="p">,</span> <span class="n">trace</span><span class="p">,</span> <span class="n">node_constructor</span> <span class="o">=</span> <span class="n">find_top_boxed_args</span><span class="p">(</span><span class="n">args</span><span class="p">)</span>
</span><span id="yn-39"><a href="#yn-39"><span class="linenos">39</span></a> <span class="k">if</span> <span class="n">boxed_args</span><span class="p">:</span>
</span><span id="yn-40"><a href="#yn-40"><span class="linenos">40</span></a> <span class="n">argvals</span> <span class="o">=</span> <span class="n">subvals</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="p">[(</span><span class="n">argnum</span><span class="p">,</span> <span class="n">box</span><span class="o">.</span><span class="n">_value</span><span class="p">)</span> <span class="k">for</span> <span class="n">argnum</span><span class="p">,</span> <span class="n">box</span> <span class="ow">in</span> <span class="n">boxed_args</span><span class="p">])</span>
@ -2381,7 +2413,7 @@ the routine for <code><a href="#y0">y0</a></code> or <code><a href="#y1">y1</a><
<p>Evaluate the function of order 0 at one point.</p>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">scipy.special</span> <span class="kn">import</span> <span class="n">yn</span>
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span><span class="w"> </span><span class="nn">scipy.special</span><span class="w"> </span><span class="kn">import</span> <span class="n">yn</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">yn</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mf">1.</span><span class="p">)</span>
<span class="go">0.08825696421567697</span>
</code></pre>
@ -2408,7 +2440,7 @@ providing a list or NumPy array as argument for the <code>v</code> parameter:</p
array for <code>z</code>.</p>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span><span class="w"> </span><span class="nn">numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">np</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">points</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([</span><span class="mf">0.5</span><span class="p">,</span> <span class="mf">3.</span><span class="p">,</span> <span class="mf">8.</span><span class="p">])</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">yn</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">points</span><span class="p">)</span>
<span class="go">array([-0.44451873, 0.37685001, 0.22352149])</span>
@ -2436,7 +2468,7 @@ To calculate the orders 0 and 1 for an 1D array:</p>
<p>Plot the functions of order 0 to 3 from 0 to 10.</p>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">matplotlib.pyplot</span> <span class="k">as</span> <span class="nn">plt</span>
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span><span class="w"> </span><span class="nn">matplotlib.pyplot</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">plt</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">fig</span><span class="p">,</span> <span class="n">ax</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">subplots</span><span class="p">()</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">x</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">linspace</span><span class="p">(</span><span class="mf">0.</span><span class="p">,</span> <span class="mf">10.</span><span class="p">,</span> <span class="mi">1000</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </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="mi">4</span><span class="p">):</span>
@ -2473,7 +2505,7 @@ To calculate the orders 0 and 1 for an 1D array:</p>
</div>
<a class="headerlink" href="#i0"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="i0-36"><a href="#i0-36"><span class="linenos">36</span></a> <span class="nd">@wraps</span><span class="p">(</span><span class="n">f_raw</span><span class="p">)</span>
</span><span id="i0-37"><a href="#i0-37"><span class="linenos">37</span></a> <span class="k">def</span> <span class="nf">f_wrapped</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="i0-37"><a href="#i0-37"><span class="linenos">37</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">f_wrapped</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="i0-38"><a href="#i0-38"><span class="linenos">38</span></a> <span class="n">boxed_args</span><span class="p">,</span> <span class="n">trace</span><span class="p">,</span> <span class="n">node_constructor</span> <span class="o">=</span> <span class="n">find_top_boxed_args</span><span class="p">(</span><span class="n">args</span><span class="p">)</span>
</span><span id="i0-39"><a href="#i0-39"><span class="linenos">39</span></a> <span class="k">if</span> <span class="n">boxed_args</span><span class="p">:</span>
</span><span id="i0-40"><a href="#i0-40"><span class="linenos">40</span></a> <span class="n">argvals</span> <span class="o">=</span> <span class="n">subvals</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="p">[(</span><span class="n">argnum</span><span class="p">,</span> <span class="n">box</span><span class="o">.</span><span class="n">_value</span><span class="p">)</span> <span class="k">for</span> <span class="n">argnum</span><span class="p">,</span> <span class="n">box</span> <span class="ow">in</span> <span class="n">boxed_args</span><span class="p">])</span>
@ -2536,7 +2568,7 @@ Chebyshev polynomial expansions are employed in each interval.</p>
<p>Calculate the function at one point:</p>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">scipy.special</span> <span class="kn">import</span> <span class="n">i0</span>
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span><span class="w"> </span><span class="nn">scipy.special</span><span class="w"> </span><span class="kn">import</span> <span class="n">i0</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">i0</span><span class="p">(</span><span class="mf">1.</span><span class="p">)</span>
<span class="go">1.2660658777520082</span>
</code></pre>
@ -2545,7 +2577,7 @@ Chebyshev polynomial expansions are employed in each interval.</p>
<p>Calculate at several points:</p>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span><span class="w"> </span><span class="nn">numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">np</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">i0</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([</span><span class="o">-</span><span class="mf">2.</span><span class="p">,</span> <span class="mf">0.</span><span class="p">,</span> <span class="mf">3.5</span><span class="p">]))</span>
<span class="go">array([2.2795853 , 1. , 7.37820343])</span>
</code></pre>
@ -2554,7 +2586,7 @@ Chebyshev polynomial expansions are employed in each interval.</p>
<p>Plot the function from -10 to 10.</p>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">matplotlib.pyplot</span> <span class="k">as</span> <span class="nn">plt</span>
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span><span class="w"> </span><span class="nn">matplotlib.pyplot</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">plt</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">fig</span><span class="p">,</span> <span class="n">ax</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">subplots</span><span class="p">()</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">x</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">linspace</span><span class="p">(</span><span class="o">-</span><span class="mf">10.</span><span class="p">,</span> <span class="mf">10.</span><span class="p">,</span> <span class="mi">1000</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">y</span> <span class="o">=</span> <span class="n">i0</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
@ -2589,7 +2621,7 @@ Chebyshev polynomial expansions are employed in each interval.</p>
</div>
<a class="headerlink" href="#i1"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="i1-36"><a href="#i1-36"><span class="linenos">36</span></a> <span class="nd">@wraps</span><span class="p">(</span><span class="n">f_raw</span><span class="p">)</span>
</span><span id="i1-37"><a href="#i1-37"><span class="linenos">37</span></a> <span class="k">def</span> <span class="nf">f_wrapped</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="i1-37"><a href="#i1-37"><span class="linenos">37</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">f_wrapped</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="i1-38"><a href="#i1-38"><span class="linenos">38</span></a> <span class="n">boxed_args</span><span class="p">,</span> <span class="n">trace</span><span class="p">,</span> <span class="n">node_constructor</span> <span class="o">=</span> <span class="n">find_top_boxed_args</span><span class="p">(</span><span class="n">args</span><span class="p">)</span>
</span><span id="i1-39"><a href="#i1-39"><span class="linenos">39</span></a> <span class="k">if</span> <span class="n">boxed_args</span><span class="p">:</span>
</span><span id="i1-40"><a href="#i1-40"><span class="linenos">40</span></a> <span class="n">argvals</span> <span class="o">=</span> <span class="n">subvals</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="p">[(</span><span class="n">argnum</span><span class="p">,</span> <span class="n">box</span><span class="o">.</span><span class="n">_value</span><span class="p">)</span> <span class="k">for</span> <span class="n">argnum</span><span class="p">,</span> <span class="n">box</span> <span class="ow">in</span> <span class="n">boxed_args</span><span class="p">])</span>
@ -2653,7 +2685,7 @@ Chebyshev polynomial expansions are employed in each interval.</p>
<p>Calculate the function at one point:</p>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">scipy.special</span> <span class="kn">import</span> <span class="n">i1</span>
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span><span class="w"> </span><span class="nn">scipy.special</span><span class="w"> </span><span class="kn">import</span> <span class="n">i1</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">i1</span><span class="p">(</span><span class="mf">1.</span><span class="p">)</span>
<span class="go">0.5651591039924851</span>
</code></pre>
@ -2662,7 +2694,7 @@ Chebyshev polynomial expansions are employed in each interval.</p>
<p>Calculate the function at several points:</p>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span><span class="w"> </span><span class="nn">numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">np</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">i1</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([</span><span class="o">-</span><span class="mf">2.</span><span class="p">,</span> <span class="mf">0.</span><span class="p">,</span> <span class="mf">6.</span><span class="p">]))</span>
<span class="go">array([-1.59063685, 0. , 61.34193678])</span>
</code></pre>
@ -2671,7 +2703,7 @@ Chebyshev polynomial expansions are employed in each interval.</p>
<p>Plot the function between -10 and 10.</p>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">matplotlib.pyplot</span> <span class="k">as</span> <span class="nn">plt</span>
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span><span class="w"> </span><span class="nn">matplotlib.pyplot</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">plt</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">fig</span><span class="p">,</span> <span class="n">ax</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">subplots</span><span class="p">()</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">x</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">linspace</span><span class="p">(</span><span class="o">-</span><span class="mf">10.</span><span class="p">,</span> <span class="mf">10.</span><span class="p">,</span> <span class="mi">1000</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">y</span> <span class="o">=</span> <span class="n">i1</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
@ -2706,7 +2738,7 @@ Chebyshev polynomial expansions are employed in each interval.</p>
</div>
<a class="headerlink" href="#iv"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="iv-36"><a href="#iv-36"><span class="linenos">36</span></a> <span class="nd">@wraps</span><span class="p">(</span><span class="n">f_raw</span><span class="p">)</span>
</span><span id="iv-37"><a href="#iv-37"><span class="linenos">37</span></a> <span class="k">def</span> <span class="nf">f_wrapped</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="iv-37"><a href="#iv-37"><span class="linenos">37</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">f_wrapped</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="iv-38"><a href="#iv-38"><span class="linenos">38</span></a> <span class="n">boxed_args</span><span class="p">,</span> <span class="n">trace</span><span class="p">,</span> <span class="n">node_constructor</span> <span class="o">=</span> <span class="n">find_top_boxed_args</span><span class="p">(</span><span class="n">args</span><span class="p">)</span>
</span><span id="iv-39"><a href="#iv-39"><span class="linenos">39</span></a> <span class="k">if</span> <span class="n">boxed_args</span><span class="p">:</span>
</span><span id="iv-40"><a href="#iv-40"><span class="linenos">40</span></a> <span class="n">argvals</span> <span class="o">=</span> <span class="n">subvals</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="p">[(</span><span class="n">argnum</span><span class="p">,</span> <span class="n">box</span><span class="o">.</span><span class="n">_value</span><span class="p">)</span> <span class="k">for</span> <span class="n">argnum</span><span class="p">,</span> <span class="n">box</span> <span class="ow">in</span> <span class="n">boxed_args</span><span class="p">])</span>
@ -2786,7 +2818,7 @@ second kind, evaluated using the AMOS routine <code>zbesk</code>.</p>
<p>Evaluate the function of order 0 at one point.</p>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">scipy.special</span> <span class="kn">import</span> <span class="n">iv</span>
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span><span class="w"> </span><span class="nn">scipy.special</span><span class="w"> </span><span class="kn">import</span> <span class="n">iv</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">iv</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mf">1.</span><span class="p">)</span>
<span class="go">1.2660658777520084</span>
</code></pre>
@ -2813,7 +2845,7 @@ providing a list or NumPy array as argument for the <code>v</code> parameter:</p
array for <code>z</code>.</p>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span><span class="w"> </span><span class="nn">numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">np</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">points</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([</span><span class="o">-</span><span class="mf">2.</span><span class="p">,</span> <span class="mf">0.</span><span class="p">,</span> <span class="mf">3.</span><span class="p">])</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">iv</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">points</span><span class="p">)</span>
<span class="go">array([2.2795853 , 1. , 4.88079259])</span>
@ -2841,7 +2873,7 @@ To calculate the orders 0 and 1 for an 1D array:</p>
<p>Plot the functions of order 0 to 3 from -5 to 5.</p>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">matplotlib.pyplot</span> <span class="k">as</span> <span class="nn">plt</span>
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span><span class="w"> </span><span class="nn">matplotlib.pyplot</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">plt</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">fig</span><span class="p">,</span> <span class="n">ax</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">subplots</span><span class="p">()</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">x</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">linspace</span><span class="p">(</span><span class="o">-</span><span class="mf">5.</span><span class="p">,</span> <span class="mf">5.</span><span class="p">,</span> <span class="mi">1000</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </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="mi">4</span><span class="p">):</span>
@ -2882,7 +2914,7 @@ of a Complex Argument and Nonnegative Order",
</div>
<a class="headerlink" href="#ive"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="ive-36"><a href="#ive-36"><span class="linenos">36</span></a> <span class="nd">@wraps</span><span class="p">(</span><span class="n">f_raw</span><span class="p">)</span>
</span><span id="ive-37"><a href="#ive-37"><span class="linenos">37</span></a> <span class="k">def</span> <span class="nf">f_wrapped</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="ive-37"><a href="#ive-37"><span class="linenos">37</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">f_wrapped</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="ive-38"><a href="#ive-38"><span class="linenos">38</span></a> <span class="n">boxed_args</span><span class="p">,</span> <span class="n">trace</span><span class="p">,</span> <span class="n">node_constructor</span> <span class="o">=</span> <span class="n">find_top_boxed_args</span><span class="p">(</span><span class="n">args</span><span class="p">)</span>
</span><span id="ive-39"><a href="#ive-39"><span class="linenos">39</span></a> <span class="k">if</span> <span class="n">boxed_args</span><span class="p">:</span>
</span><span id="ive-40"><a href="#ive-40"><span class="linenos">40</span></a> <span class="n">argvals</span> <span class="o">=</span> <span class="n">subvals</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="p">[(</span><span class="n">argnum</span><span class="p">,</span> <span class="n">box</span><span class="o">.</span><span class="n">_value</span><span class="p">)</span> <span class="k">for</span> <span class="n">argnum</span><span class="p">,</span> <span class="n">box</span> <span class="ow">in</span> <span class="n">boxed_args</span><span class="p">])</span>
@ -2969,9 +3001,9 @@ while <code><a href="#ive">ive</a></code> does not due to the exponential scalin
a finite number.</p>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">scipy.special</span> <span class="kn">import</span> <span class="n">iv</span><span class="p">,</span> <span class="n">ive</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">matplotlib.pyplot</span> <span class="k">as</span> <span class="nn">plt</span>
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span><span class="w"> </span><span class="nn">scipy.special</span><span class="w"> </span><span class="kn">import</span> <span class="n">iv</span><span class="p">,</span> <span class="n">ive</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span><span class="w"> </span><span class="nn">numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">np</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span><span class="w"> </span><span class="nn">matplotlib.pyplot</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">plt</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">iv</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="mf">1000.</span><span class="p">),</span> <span class="n">ive</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="mf">1000.</span><span class="p">)</span>
<span class="go">(inf, 0.01256056218254712)</span>
</code></pre>
@ -3049,7 +3081,7 @@ of a Complex Argument and Nonnegative Order",
</div>
<a class="headerlink" href="#erf"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="erf-36"><a href="#erf-36"><span class="linenos">36</span></a> <span class="nd">@wraps</span><span class="p">(</span><span class="n">f_raw</span><span class="p">)</span>
</span><span id="erf-37"><a href="#erf-37"><span class="linenos">37</span></a> <span class="k">def</span> <span class="nf">f_wrapped</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="erf-37"><a href="#erf-37"><span class="linenos">37</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">f_wrapped</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="erf-38"><a href="#erf-38"><span class="linenos">38</span></a> <span class="n">boxed_args</span><span class="p">,</span> <span class="n">trace</span><span class="p">,</span> <span class="n">node_constructor</span> <span class="o">=</span> <span class="n">find_top_boxed_args</span><span class="p">(</span><span class="n">args</span><span class="p">)</span>
</span><span id="erf-39"><a href="#erf-39"><span class="linenos">39</span></a> <span class="k">if</span> <span class="n">boxed_args</span><span class="p">:</span>
</span><span id="erf-40"><a href="#erf-40"><span class="linenos">40</span></a> <span class="n">argvals</span> <span class="o">=</span> <span class="n">subvals</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="p">[(</span><span class="n">argnum</span><span class="p">,</span> <span class="n">box</span><span class="o">.</span><span class="n">_value</span><span class="p">)</span> <span class="k">for</span> <span class="n">argnum</span><span class="p">,</span> <span class="n">box</span> <span class="ow">in</span> <span class="n">boxed_args</span><span class="p">])</span>
@ -3103,9 +3135,9 @@ The values of the error function at the given points <code>x</code>.</li>
<h6 id="examples">Examples</h6>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">scipy</span> <span class="kn">import</span> <span class="n">special</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">matplotlib.pyplot</span> <span class="k">as</span> <span class="nn">plt</span>
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span><span class="w"> </span><span class="nn">numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">np</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span><span class="w"> </span><span class="nn">scipy</span><span class="w"> </span><span class="kn">import</span> <span class="n">special</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span><span class="w"> </span><span class="nn">matplotlib.pyplot</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">plt</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">x</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">linspace</span><span class="p">(</span><span class="o">-</span><span class="mi">3</span><span class="p">,</span> <span class="mi">3</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">special</span><span class="o">.</span><span class="n">erf</span><span class="p">(</span><span class="n">x</span><span class="p">))</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s1">&#39;$x$&#39;</span><span class="p">)</span>
@ -3136,7 +3168,7 @@ The values of the error function at the given points <code>x</code>.</li>
</div>
<a class="headerlink" href="#erfc"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="erfc-36"><a href="#erfc-36"><span class="linenos">36</span></a> <span class="nd">@wraps</span><span class="p">(</span><span class="n">f_raw</span><span class="p">)</span>
</span><span id="erfc-37"><a href="#erfc-37"><span class="linenos">37</span></a> <span class="k">def</span> <span class="nf">f_wrapped</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="erfc-37"><a href="#erfc-37"><span class="linenos">37</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">f_wrapped</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="erfc-38"><a href="#erfc-38"><span class="linenos">38</span></a> <span class="n">boxed_args</span><span class="p">,</span> <span class="n">trace</span><span class="p">,</span> <span class="n">node_constructor</span> <span class="o">=</span> <span class="n">find_top_boxed_args</span><span class="p">(</span><span class="n">args</span><span class="p">)</span>
</span><span id="erfc-39"><a href="#erfc-39"><span class="linenos">39</span></a> <span class="k">if</span> <span class="n">boxed_args</span><span class="p">:</span>
</span><span id="erfc-40"><a href="#erfc-40"><span class="linenos">40</span></a> <span class="n">argvals</span> <span class="o">=</span> <span class="n">subvals</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="p">[(</span><span class="n">argnum</span><span class="p">,</span> <span class="n">box</span><span class="o">.</span><span class="n">_value</span><span class="p">)</span> <span class="k">for</span> <span class="n">argnum</span><span class="p">,</span> <span class="n">box</span> <span class="ow">in</span> <span class="n">boxed_args</span><span class="p">])</span>
@ -3182,9 +3214,9 @@ Optional output array for the function results</li>
<h6 id="examples">Examples</h6>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">scipy</span> <span class="kn">import</span> <span class="n">special</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">matplotlib.pyplot</span> <span class="k">as</span> <span class="nn">plt</span>
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span><span class="w"> </span><span class="nn">numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">np</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span><span class="w"> </span><span class="nn">scipy</span><span class="w"> </span><span class="kn">import</span> <span class="n">special</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span><span class="w"> </span><span class="nn">matplotlib.pyplot</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">plt</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">x</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">linspace</span><span class="p">(</span><span class="o">-</span><span class="mi">3</span><span class="p">,</span> <span class="mi">3</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">special</span><span class="o">.</span><span class="n">erfc</span><span class="p">(</span><span class="n">x</span><span class="p">))</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s1">&#39;$x$&#39;</span><span class="p">)</span>
@ -3215,7 +3247,7 @@ Optional output array for the function results</li>
</div>
<a class="headerlink" href="#erfinv"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="erfinv-36"><a href="#erfinv-36"><span class="linenos">36</span></a> <span class="nd">@wraps</span><span class="p">(</span><span class="n">f_raw</span><span class="p">)</span>
</span><span id="erfinv-37"><a href="#erfinv-37"><span class="linenos">37</span></a> <span class="k">def</span> <span class="nf">f_wrapped</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="erfinv-37"><a href="#erfinv-37"><span class="linenos">37</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">f_wrapped</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="erfinv-38"><a href="#erfinv-38"><span class="linenos">38</span></a> <span class="n">boxed_args</span><span class="p">,</span> <span class="n">trace</span><span class="p">,</span> <span class="n">node_constructor</span> <span class="o">=</span> <span class="n">find_top_boxed_args</span><span class="p">(</span><span class="n">args</span><span class="p">)</span>
</span><span id="erfinv-39"><a href="#erfinv-39"><span class="linenos">39</span></a> <span class="k">if</span> <span class="n">boxed_args</span><span class="p">:</span>
</span><span id="erfinv-40"><a href="#erfinv-40"><span class="linenos">40</span></a> <span class="n">argvals</span> <span class="o">=</span> <span class="n">subvals</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="p">[(</span><span class="n">argnum</span><span class="p">,</span> <span class="n">box</span><span class="o">.</span><span class="n">_value</span><span class="p">)</span> <span class="k">for</span> <span class="n">argnum</span><span class="p">,</span> <span class="n">box</span> <span class="ow">in</span> <span class="n">boxed_args</span><span class="p">])</span>
@ -3266,12 +3298,19 @@ The inverse of erf of y, element-wise</li>
<code><a href="#erfc">erfc</a></code>: Complementary error function, <code>1 - erf(x)</code><br />
<code><a href="#erfcinv">erfcinv</a></code>: Inverse of the complementary error function </p>
<h6 id="notes">Notes</h6>
<p>This function wraps the <code>erf_inv</code> routine from the
Boost Math C++ library <sup class="footnote-ref" id="fnref-1"><a href="#fn-1">1</a></sup>.</p>
<h6 id="references">References</h6>
<h6 id="examples">Examples</h6>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">matplotlib.pyplot</span> <span class="k">as</span> <span class="nn">plt</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">scipy.special</span> <span class="kn">import</span> <span class="n">erfinv</span><span class="p">,</span> <span class="n">erf</span>
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span><span class="w"> </span><span class="nn">numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">np</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span><span class="w"> </span><span class="nn">matplotlib.pyplot</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">plt</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span><span class="w"> </span><span class="nn">scipy.special</span><span class="w"> </span><span class="kn">import</span> <span class="n">erfinv</span><span class="p">,</span> <span class="n">erf</span>
</code></pre>
</div>
@ -3310,6 +3349,15 @@ The inverse of erf of y, element-wise</li>
<span class="gp">&gt;&gt;&gt; </span><span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
</code></pre>
</div>
<div class="footnotes">
<hr />
<ol>
<li id="fn-1">
<p>The Boost Developers. "Boost C++ Libraries". <a href="https://www.boost.org/">https://www.boost.org/</a>.&#160;<a href="#fnref-1" class="footnoteBackLink" title="Jump back to footnote 1 in the text.">&#8617;</a></p>
</li>
</ol>
</div>
</div>
@ -3327,7 +3375,7 @@ The inverse of erf of y, element-wise</li>
</div>
<a class="headerlink" href="#erfcinv"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="erfcinv-36"><a href="#erfcinv-36"><span class="linenos">36</span></a> <span class="nd">@wraps</span><span class="p">(</span><span class="n">f_raw</span><span class="p">)</span>
</span><span id="erfcinv-37"><a href="#erfcinv-37"><span class="linenos">37</span></a> <span class="k">def</span> <span class="nf">f_wrapped</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="erfcinv-37"><a href="#erfcinv-37"><span class="linenos">37</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">f_wrapped</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="erfcinv-38"><a href="#erfcinv-38"><span class="linenos">38</span></a> <span class="n">boxed_args</span><span class="p">,</span> <span class="n">trace</span><span class="p">,</span> <span class="n">node_constructor</span> <span class="o">=</span> <span class="n">find_top_boxed_args</span><span class="p">(</span><span class="n">args</span><span class="p">)</span>
</span><span id="erfcinv-39"><a href="#erfcinv-39"><span class="linenos">39</span></a> <span class="k">if</span> <span class="n">boxed_args</span><span class="p">:</span>
</span><span id="erfcinv-40"><a href="#erfcinv-40"><span class="linenos">40</span></a> <span class="n">argvals</span> <span class="o">=</span> <span class="n">subvals</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="p">[(</span><span class="n">argnum</span><span class="p">,</span> <span class="n">box</span><span class="o">.</span><span class="n">_value</span><span class="p">)</span> <span class="k">for</span> <span class="n">argnum</span><span class="p">,</span> <span class="n">box</span> <span class="ow">in</span> <span class="n">boxed_args</span><span class="p">])</span>
@ -3383,9 +3431,9 @@ The inverse of erfc of y, element-wise</li>
<h6 id="examples">Examples</h6>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">matplotlib.pyplot</span> <span class="k">as</span> <span class="nn">plt</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">scipy.special</span> <span class="kn">import</span> <span class="n">erfcinv</span>
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span><span class="w"> </span><span class="nn">numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">np</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span><span class="w"> </span><span class="nn">matplotlib.pyplot</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">plt</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span><span class="w"> </span><span class="nn">scipy.special</span><span class="w"> </span><span class="kn">import</span> <span class="n">erfcinv</span>
</code></pre>
</div>
@ -3433,7 +3481,7 @@ The inverse of erfc of y, element-wise</li>
</div>
<a class="headerlink" href="#logit"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="logit-36"><a href="#logit-36"><span class="linenos">36</span></a> <span class="nd">@wraps</span><span class="p">(</span><span class="n">f_raw</span><span class="p">)</span>
</span><span id="logit-37"><a href="#logit-37"><span class="linenos">37</span></a> <span class="k">def</span> <span class="nf">f_wrapped</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="logit-37"><a href="#logit-37"><span class="linenos">37</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">f_wrapped</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="logit-38"><a href="#logit-38"><span class="linenos">38</span></a> <span class="n">boxed_args</span><span class="p">,</span> <span class="n">trace</span><span class="p">,</span> <span class="n">node_constructor</span> <span class="o">=</span> <span class="n">find_top_boxed_args</span><span class="p">(</span><span class="n">args</span><span class="p">)</span>
</span><span id="logit-39"><a href="#logit-39"><span class="linenos">39</span></a> <span class="k">if</span> <span class="n">boxed_args</span><span class="p">:</span>
</span><span id="logit-40"><a href="#logit-40"><span class="linenos">40</span></a> <span class="n">argvals</span> <span class="o">=</span> <span class="n">subvals</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="p">[(</span><span class="n">argnum</span><span class="p">,</span> <span class="n">box</span><span class="o">.</span><span class="n">_value</span><span class="p">)</span> <span class="k">for</span> <span class="n">argnum</span><span class="p">,</span> <span class="n">box</span> <span class="ow">in</span> <span class="n">boxed_args</span><span class="p">])</span>
@ -3451,8 +3499,7 @@ The inverse of erfc of y, element-wise</li>
<div class="docstring"><p>logit(x, /, out=None, *, where=True, casting='same_kind', order='K', dtype=None, subok=True[, signature])</p>
<p>"""
logit(x, out=None)</p>
<p>logit(x, out=None)</p>
<p>Logit ufunc for ndarrays.</p>
@ -3491,8 +3538,8 @@ see <a href="https://docs.scipy.org/doc/numpy/reference/ufuncs.html">ufuncs </a>
<h6 id="examples">Examples</h6>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">scipy.special</span> <span class="kn">import</span> <span class="n">logit</span><span class="p">,</span> <span class="n">expit</span>
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span><span class="w"> </span><span class="nn">numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">np</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span><span class="w"> </span><span class="nn">scipy.special</span><span class="w"> </span><span class="kn">import</span> <span class="n">logit</span><span class="p">,</span> <span class="n">expit</span>
</code></pre>
</div>
@ -3513,7 +3560,7 @@ see <a href="https://docs.scipy.org/doc/numpy/reference/ufuncs.html">ufuncs </a>
<p>Plot logit(x) for x in [0, 1]:</p>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">matplotlib.pyplot</span> <span class="k">as</span> <span class="nn">plt</span>
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span><span class="w"> </span><span class="nn">matplotlib.pyplot</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">plt</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">x</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">linspace</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">501</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">y</span> <span class="o">=</span> <span class="n">logit</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">)</span>
@ -3541,7 +3588,7 @@ see <a href="https://docs.scipy.org/doc/numpy/reference/ufuncs.html">ufuncs </a>
</div>
<a class="headerlink" href="#expit"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="expit-36"><a href="#expit-36"><span class="linenos">36</span></a> <span class="nd">@wraps</span><span class="p">(</span><span class="n">f_raw</span><span class="p">)</span>
</span><span id="expit-37"><a href="#expit-37"><span class="linenos">37</span></a> <span class="k">def</span> <span class="nf">f_wrapped</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="expit-37"><a href="#expit-37"><span class="linenos">37</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">f_wrapped</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="expit-38"><a href="#expit-38"><span class="linenos">38</span></a> <span class="n">boxed_args</span><span class="p">,</span> <span class="n">trace</span><span class="p">,</span> <span class="n">node_constructor</span> <span class="o">=</span> <span class="n">find_top_boxed_args</span><span class="p">(</span><span class="n">args</span><span class="p">)</span>
</span><span id="expit-39"><a href="#expit-39"><span class="linenos">39</span></a> <span class="k">if</span> <span class="n">boxed_args</span><span class="p">:</span>
</span><span id="expit-40"><a href="#expit-40"><span class="linenos">40</span></a> <span class="n">argvals</span> <span class="o">=</span> <span class="n">subvals</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="p">[(</span><span class="n">argnum</span><span class="p">,</span> <span class="n">box</span><span class="o">.</span><span class="n">_value</span><span class="p">)</span> <span class="k">for</span> <span class="n">argnum</span><span class="p">,</span> <span class="n">box</span> <span class="ow">in</span> <span class="n">boxed_args</span><span class="p">])</span>
@ -3598,8 +3645,8 @@ see <a href="https://docs.scipy.org/doc/numpy/reference/ufuncs.html">ufuncs </a>
<h6 id="examples">Examples</h6>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">scipy.special</span> <span class="kn">import</span> <span class="n">expit</span><span class="p">,</span> <span class="n">logit</span>
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span><span class="w"> </span><span class="nn">numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">np</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span><span class="w"> </span><span class="nn">scipy.special</span><span class="w"> </span><span class="kn">import</span> <span class="n">expit</span><span class="p">,</span> <span class="n">logit</span>
</code></pre>
</div>
@ -3620,7 +3667,7 @@ see <a href="https://docs.scipy.org/doc/numpy/reference/ufuncs.html">ufuncs </a>
<p>Plot expit(x) for x in [-6, 6]:</p>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">matplotlib.pyplot</span> <span class="k">as</span> <span class="nn">plt</span>
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span><span class="w"> </span><span class="nn">matplotlib.pyplot</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">plt</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">x</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">linspace</span><span class="p">(</span><span class="o">-</span><span class="mi">6</span><span class="p">,</span> <span class="mi">6</span><span class="p">,</span> <span class="mi">121</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">y</span> <span class="o">=</span> <span class="n">expit</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">)</span>
@ -3648,7 +3695,7 @@ see <a href="https://docs.scipy.org/doc/numpy/reference/ufuncs.html">ufuncs </a>
</div>
<a class="headerlink" href="#logsumexp"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="logsumexp-36"><a href="#logsumexp-36"><span class="linenos">36</span></a> <span class="nd">@wraps</span><span class="p">(</span><span class="n">f_raw</span><span class="p">)</span>
</span><span id="logsumexp-37"><a href="#logsumexp-37"><span class="linenos">37</span></a> <span class="k">def</span> <span class="nf">f_wrapped</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="logsumexp-37"><a href="#logsumexp-37"><span class="linenos">37</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">f_wrapped</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="logsumexp-38"><a href="#logsumexp-38"><span class="linenos">38</span></a> <span class="n">boxed_args</span><span class="p">,</span> <span class="n">trace</span><span class="p">,</span> <span class="n">node_constructor</span> <span class="o">=</span> <span class="n">find_top_boxed_args</span><span class="p">(</span><span class="n">args</span><span class="p">)</span>
</span><span id="logsumexp-39"><a href="#logsumexp-39"><span class="linenos">39</span></a> <span class="k">if</span> <span class="n">boxed_args</span><span class="p">:</span>
</span><span id="logsumexp-40"><a href="#logsumexp-40"><span class="linenos">40</span></a> <span class="n">argvals</span> <span class="o">=</span> <span class="n">subvals</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="p">[(</span><span class="n">argnum</span><span class="p">,</span> <span class="n">box</span><span class="o">.</span><span class="n">_value</span><span class="p">)</span> <span class="k">for</span> <span class="n">argnum</span><span class="p">,</span> <span class="n">box</span> <span class="ow">in</span> <span class="n">boxed_args</span><span class="p">])</span>
@ -3722,11 +3769,15 @@ If <code>return_sign</code> is False, only one result is returned.</li>
only handles two arguments. <code>logaddexp.reduce</code> is similar to this
function, but may be less stable.</p>
<p>The logarithm is a multivalued function: for each \( x \) there is an
infinite number of \( z \) such that \( exp(z) = x \). The convention
is to return the \( z \) whose imaginary part lies in \( (-pi, pi] \).</p>
<h6 id="examples">Examples</h6>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">scipy.special</span> <span class="kn">import</span> <span class="n">logsumexp</span>
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span><span class="w"> </span><span class="nn">numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">np</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span><span class="w"> </span><span class="nn">scipy.special</span><span class="w"> </span><span class="kn">import</span> <span class="n">logsumexp</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">a</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">logsumexp</span><span class="p">(</span><span class="n">a</span><span class="p">)</span>
<span class="go">9.4586297444267107</span>

File diff suppressed because one or more lines are too long