Documentation updated

This commit is contained in:
fjosw 2023-01-16 14:58:20 +00:00
parent 00d2a025f9
commit b42baa7582
15 changed files with 9322 additions and 8452 deletions

View file

@ -110,63 +110,74 @@
</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>
</span><span id="L-29"><a href="#L-29"><span class="linenos">29</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-30"><a href="#L-30"><span class="linenos">30</span></a> <span class="n">test_set</span> <span class="o">=</span> <span class="nb">set</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-31"><a href="#L-31"><span class="linenos">31</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="p">(</span><span class="n">test_set</span> <span class="o">&lt;=</span> <span class="nb">set</span><span class="p">((</span><span class="mi">1</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="ow">or</span> <span class="n">test_set</span> <span class="o">&lt;=</span> <span class="nb">set</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">2</span><span class="p">))):</span>
</span><span id="L-32"><a href="#L-32"><span class="linenos">32</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">&quot;Unexpected input&quot;</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-33"><a href="#L-33"><span class="linenos">33</span></a>
</span><span id="L-34"><a href="#L-34"><span class="linenos">34</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-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">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-38"><a href="#L-38"><span class="linenos">38</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Rank-4 epsilon tensor</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"> Extension of https://codegolf.stackexchange.com/a/160375</span>
</span><span id="L-41"><a href="#L-41"><span class="linenos">41</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-42"><a href="#L-42"><span class="linenos">42</span></a> <span class="n">test_set</span> <span class="o">=</span> <span class="nb">set</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="k">if</span> <span class="ow">not</span> <span class="p">(</span><span class="n">test_set</span> <span class="o">&lt;=</span> <span class="nb">set</span><span class="p">((</span><span class="mi">1</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="mi">4</span><span class="p">))</span> <span class="ow">or</span> <span class="n">test_set</span> <span class="o">&lt;=</span> <span class="nb">set</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">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">))):</span>
</span><span id="L-44"><a href="#L-44"><span class="linenos">44</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">&quot;Unexpected input&quot;</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-45"><a href="#L-45"><span class="linenos">45</span></a>
</span><span id="L-46"><a href="#L-46"><span class="linenos">46</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-29"><a href="#L-29"><span class="linenos">29</span></a>
</span><span id="L-30"><a href="#L-30"><span class="linenos">30</span></a><span class="sd"> Returns</span>
</span><span id="L-31"><a href="#L-31"><span class="linenos">31</span></a><span class="sd"> -------</span>
</span><span id="L-32"><a href="#L-32"><span class="linenos">32</span></a><span class="sd"> elem : int</span>
</span><span id="L-33"><a href="#L-33"><span class="linenos">33</span></a><span class="sd"> Element (i,j,k) of the epsilon tensor of rank 3</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 class="n">test_set</span> <span class="o">=</span> <span class="nb">set</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-36"><a href="#L-36"><span class="linenos">36</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="p">(</span><span class="n">test_set</span> <span class="o">&lt;=</span> <span class="nb">set</span><span class="p">((</span><span class="mi">1</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="ow">or</span> <span class="n">test_set</span> <span class="o">&lt;=</span> <span class="nb">set</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">2</span><span class="p">))):</span>
</span><span id="L-37"><a href="#L-37"><span class="linenos">37</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">&quot;Unexpected input&quot;</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-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">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-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>
</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><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="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-50"><a href="#L-50"><span class="linenos">50</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-51"><a href="#L-51"><span class="linenos">51</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-52"><a href="#L-52"><span class="linenos">52</span></a> <span class="n">g</span> <span class="o">=</span> <span class="n">identity</span>
</span><span id="L-53"><a href="#L-53"><span class="linenos">53</span></a> <span class="k">elif</span> <span class="n">gamma_tag</span> <span class="o">==</span> <span class="s1">&#39;Gamma5&#39;</span><span class="p">:</span>
</span><span id="L-54"><a href="#L-54"><span class="linenos">54</span></a> <span class="n">g</span> <span class="o">=</span> <span class="n">gamma5</span>
</span><span id="L-55"><a href="#L-55"><span class="linenos">55</span></a> <span class="k">elif</span> <span class="n">gamma_tag</span> <span class="o">==</span> <span class="s1">&#39;GammaX&#39;</span><span class="p">:</span>
</span><span id="L-56"><a href="#L-56"><span class="linenos">56</span></a> <span class="n">g</span> <span class="o">=</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
</span><span id="L-57"><a href="#L-57"><span class="linenos">57</span></a> <span class="k">elif</span> <span class="n">gamma_tag</span> <span class="o">==</span> <span class="s1">&#39;GammaY&#39;</span><span class="p">:</span>
</span><span id="L-58"><a href="#L-58"><span class="linenos">58</span></a> <span class="n">g</span> <span class="o">=</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span>
</span><span id="L-59"><a href="#L-59"><span class="linenos">59</span></a> <span class="k">elif</span> <span class="n">gamma_tag</span> <span class="o">==</span> <span class="s1">&#39;GammaZ&#39;</span><span class="p">:</span>
</span><span id="L-60"><a href="#L-60"><span class="linenos">60</span></a> <span class="n">g</span> <span class="o">=</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span>
</span><span id="L-61"><a href="#L-61"><span class="linenos">61</span></a> <span class="k">elif</span> <span class="n">gamma_tag</span> <span class="o">==</span> <span class="s1">&#39;GammaT&#39;</span><span class="p">:</span>
</span><span id="L-62"><a href="#L-62"><span class="linenos">62</span></a> <span class="n">g</span> <span class="o">=</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span>
</span><span id="L-63"><a href="#L-63"><span class="linenos">63</span></a> <span class="k">elif</span> <span class="n">gamma_tag</span> <span class="o">==</span> <span class="s1">&#39;GammaXGamma5&#39;</span><span class="p">:</span>
</span><span id="L-64"><a href="#L-64"><span class="linenos">64</span></a> <span class="n">g</span> <span class="o">=</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">@</span> <span class="n">gamma5</span>
</span><span id="L-65"><a href="#L-65"><span class="linenos">65</span></a> <span class="k">elif</span> <span class="n">gamma_tag</span> <span class="o">==</span> <span class="s1">&#39;GammaYGamma5&#39;</span><span class="p">:</span>
</span><span id="L-66"><a href="#L-66"><span class="linenos">66</span></a> <span class="n">g</span> <span class="o">=</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">@</span> <span class="n">gamma5</span>
</span><span id="L-67"><a href="#L-67"><span class="linenos">67</span></a> <span class="k">elif</span> <span class="n">gamma_tag</span> <span class="o">==</span> <span class="s1">&#39;GammaZGamma5&#39;</span><span class="p">:</span>
</span><span id="L-68"><a href="#L-68"><span class="linenos">68</span></a> <span class="n">g</span> <span class="o">=</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">@</span> <span class="n">gamma5</span>
</span><span id="L-69"><a href="#L-69"><span class="linenos">69</span></a> <span class="k">elif</span> <span class="n">gamma_tag</span> <span class="o">==</span> <span class="s1">&#39;GammaTGamma5&#39;</span><span class="p">:</span>
</span><span id="L-70"><a href="#L-70"><span class="linenos">70</span></a> <span class="n">g</span> <span class="o">=</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="o">@</span> <span class="n">gamma5</span>
</span><span id="L-71"><a href="#L-71"><span class="linenos">71</span></a> <span class="k">elif</span> <span class="n">gamma_tag</span> <span class="o">==</span> <span class="s1">&#39;SigmaXT&#39;</span><span class="p">:</span>
</span><span id="L-72"><a href="#L-72"><span class="linenos">72</span></a> <span class="n">g</span> <span class="o">=</span> <span class="mf">0.5</span> <span class="o">*</span> <span class="p">(</span><span class="n">gamma</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">@</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="o">-</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="o">@</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
</span><span id="L-73"><a href="#L-73"><span class="linenos">73</span></a> <span class="k">elif</span> <span class="n">gamma_tag</span> <span class="o">==</span> <span class="s1">&#39;SigmaXY&#39;</span><span class="p">:</span>
</span><span id="L-74"><a href="#L-74"><span class="linenos">74</span></a> <span class="n">g</span> <span class="o">=</span> <span class="mf">0.5</span> <span class="o">*</span> <span class="p">(</span><span class="n">gamma</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">@</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">-</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">@</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
</span><span id="L-75"><a href="#L-75"><span class="linenos">75</span></a> <span class="k">elif</span> <span class="n">gamma_tag</span> <span class="o">==</span> <span class="s1">&#39;SigmaXZ&#39;</span><span class="p">:</span>
</span><span id="L-76"><a href="#L-76"><span class="linenos">76</span></a> <span class="n">g</span> <span class="o">=</span> <span class="mf">0.5</span> <span class="o">*</span> <span class="p">(</span><span class="n">gamma</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">@</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">-</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">@</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
</span><span id="L-77"><a href="#L-77"><span class="linenos">77</span></a> <span class="k">elif</span> <span class="n">gamma_tag</span> <span class="o">==</span> <span class="s1">&#39;SigmaYT&#39;</span><span class="p">:</span>
</span><span id="L-78"><a href="#L-78"><span class="linenos">78</span></a> <span class="n">g</span> <span class="o">=</span> <span class="mf">0.5</span> <span class="o">*</span> <span class="p">(</span><span class="n">gamma</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">@</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="o">-</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="o">@</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
</span><span id="L-79"><a href="#L-79"><span class="linenos">79</span></a> <span class="k">elif</span> <span class="n">gamma_tag</span> <span class="o">==</span> <span class="s1">&#39;SigmaYZ&#39;</span><span class="p">:</span>
</span><span id="L-80"><a href="#L-80"><span class="linenos">80</span></a> <span class="n">g</span> <span class="o">=</span> <span class="mf">0.5</span> <span class="o">*</span> <span class="p">(</span><span class="n">gamma</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">@</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">-</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">@</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
</span><span id="L-81"><a href="#L-81"><span class="linenos">81</span></a> <span class="k">elif</span> <span class="n">gamma_tag</span> <span class="o">==</span> <span class="s1">&#39;SigmaZT&#39;</span><span class="p">:</span>
</span><span id="L-82"><a href="#L-82"><span class="linenos">82</span></a> <span class="n">g</span> <span class="o">=</span> <span class="mf">0.5</span> <span class="o">*</span> <span class="p">(</span><span class="n">gamma</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">@</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="o">-</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="o">@</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">2</span><span class="p">])</span>
</span><span id="L-83"><a href="#L-83"><span class="linenos">83</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-84"><a href="#L-84"><span class="linenos">84</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;Unkown gamma structure&#39;</span><span class="p">,</span> <span class="n">gamma_tag</span><span class="p">)</span>
</span><span id="L-85"><a href="#L-85"><span class="linenos">85</span></a> <span class="k">return</span> <span class="n">g</span>
</span><span id="L-48"><a href="#L-48"><span class="linenos">48</span></a><span class="sd"> Returns</span>
</span><span id="L-49"><a href="#L-49"><span class="linenos">49</span></a><span class="sd"> -------</span>
</span><span id="L-50"><a href="#L-50"><span class="linenos">50</span></a><span class="sd"> elem : int</span>
</span><span id="L-51"><a href="#L-51"><span class="linenos">51</span></a><span class="sd"> Element (i,j,k,o) of the epsilon tensor of rank 4</span>
</span><span id="L-52"><a href="#L-52"><span class="linenos">52</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-53"><a href="#L-53"><span class="linenos">53</span></a> <span class="n">test_set</span> <span class="o">=</span> <span class="nb">set</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-54"><a href="#L-54"><span class="linenos">54</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="p">(</span><span class="n">test_set</span> <span class="o">&lt;=</span> <span class="nb">set</span><span class="p">((</span><span class="mi">1</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="mi">4</span><span class="p">))</span> <span class="ow">or</span> <span class="n">test_set</span> <span class="o">&lt;=</span> <span class="nb">set</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">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">))):</span>
</span><span id="L-55"><a href="#L-55"><span class="linenos">55</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">&quot;Unexpected input&quot;</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-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">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-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>
</span><span id="L-64"><a href="#L-64"><span class="linenos">64</span></a> <span class="k">elif</span> <span class="n">gamma_tag</span> <span class="o">==</span> <span class="s1">&#39;Gamma5&#39;</span><span class="p">:</span>
</span><span id="L-65"><a href="#L-65"><span class="linenos">65</span></a> <span class="n">g</span> <span class="o">=</span> <span class="n">gamma5</span>
</span><span id="L-66"><a href="#L-66"><span class="linenos">66</span></a> <span class="k">elif</span> <span class="n">gamma_tag</span> <span class="o">==</span> <span class="s1">&#39;GammaX&#39;</span><span class="p">:</span>
</span><span id="L-67"><a href="#L-67"><span class="linenos">67</span></a> <span class="n">g</span> <span class="o">=</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
</span><span id="L-68"><a href="#L-68"><span class="linenos">68</span></a> <span class="k">elif</span> <span class="n">gamma_tag</span> <span class="o">==</span> <span class="s1">&#39;GammaY&#39;</span><span class="p">:</span>
</span><span id="L-69"><a href="#L-69"><span class="linenos">69</span></a> <span class="n">g</span> <span class="o">=</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span>
</span><span id="L-70"><a href="#L-70"><span class="linenos">70</span></a> <span class="k">elif</span> <span class="n">gamma_tag</span> <span class="o">==</span> <span class="s1">&#39;GammaZ&#39;</span><span class="p">:</span>
</span><span id="L-71"><a href="#L-71"><span class="linenos">71</span></a> <span class="n">g</span> <span class="o">=</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span>
</span><span id="L-72"><a href="#L-72"><span class="linenos">72</span></a> <span class="k">elif</span> <span class="n">gamma_tag</span> <span class="o">==</span> <span class="s1">&#39;GammaT&#39;</span><span class="p">:</span>
</span><span id="L-73"><a href="#L-73"><span class="linenos">73</span></a> <span class="n">g</span> <span class="o">=</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span>
</span><span id="L-74"><a href="#L-74"><span class="linenos">74</span></a> <span class="k">elif</span> <span class="n">gamma_tag</span> <span class="o">==</span> <span class="s1">&#39;GammaXGamma5&#39;</span><span class="p">:</span>
</span><span id="L-75"><a href="#L-75"><span class="linenos">75</span></a> <span class="n">g</span> <span class="o">=</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">@</span> <span class="n">gamma5</span>
</span><span id="L-76"><a href="#L-76"><span class="linenos">76</span></a> <span class="k">elif</span> <span class="n">gamma_tag</span> <span class="o">==</span> <span class="s1">&#39;GammaYGamma5&#39;</span><span class="p">:</span>
</span><span id="L-77"><a href="#L-77"><span class="linenos">77</span></a> <span class="n">g</span> <span class="o">=</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">@</span> <span class="n">gamma5</span>
</span><span id="L-78"><a href="#L-78"><span class="linenos">78</span></a> <span class="k">elif</span> <span class="n">gamma_tag</span> <span class="o">==</span> <span class="s1">&#39;GammaZGamma5&#39;</span><span class="p">:</span>
</span><span id="L-79"><a href="#L-79"><span class="linenos">79</span></a> <span class="n">g</span> <span class="o">=</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">@</span> <span class="n">gamma5</span>
</span><span id="L-80"><a href="#L-80"><span class="linenos">80</span></a> <span class="k">elif</span> <span class="n">gamma_tag</span> <span class="o">==</span> <span class="s1">&#39;GammaTGamma5&#39;</span><span class="p">:</span>
</span><span id="L-81"><a href="#L-81"><span class="linenos">81</span></a> <span class="n">g</span> <span class="o">=</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="o">@</span> <span class="n">gamma5</span>
</span><span id="L-82"><a href="#L-82"><span class="linenos">82</span></a> <span class="k">elif</span> <span class="n">gamma_tag</span> <span class="o">==</span> <span class="s1">&#39;SigmaXT&#39;</span><span class="p">:</span>
</span><span id="L-83"><a href="#L-83"><span class="linenos">83</span></a> <span class="n">g</span> <span class="o">=</span> <span class="mf">0.5</span> <span class="o">*</span> <span class="p">(</span><span class="n">gamma</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">@</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="o">-</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="o">@</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
</span><span id="L-84"><a href="#L-84"><span class="linenos">84</span></a> <span class="k">elif</span> <span class="n">gamma_tag</span> <span class="o">==</span> <span class="s1">&#39;SigmaXY&#39;</span><span class="p">:</span>
</span><span id="L-85"><a href="#L-85"><span class="linenos">85</span></a> <span class="n">g</span> <span class="o">=</span> <span class="mf">0.5</span> <span class="o">*</span> <span class="p">(</span><span class="n">gamma</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">@</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">-</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">@</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
</span><span id="L-86"><a href="#L-86"><span class="linenos">86</span></a> <span class="k">elif</span> <span class="n">gamma_tag</span> <span class="o">==</span> <span class="s1">&#39;SigmaXZ&#39;</span><span class="p">:</span>
</span><span id="L-87"><a href="#L-87"><span class="linenos">87</span></a> <span class="n">g</span> <span class="o">=</span> <span class="mf">0.5</span> <span class="o">*</span> <span class="p">(</span><span class="n">gamma</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">@</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">-</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">@</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
</span><span id="L-88"><a href="#L-88"><span class="linenos">88</span></a> <span class="k">elif</span> <span class="n">gamma_tag</span> <span class="o">==</span> <span class="s1">&#39;SigmaYT&#39;</span><span class="p">:</span>
</span><span id="L-89"><a href="#L-89"><span class="linenos">89</span></a> <span class="n">g</span> <span class="o">=</span> <span class="mf">0.5</span> <span class="o">*</span> <span class="p">(</span><span class="n">gamma</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">@</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="o">-</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="o">@</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
</span><span id="L-90"><a href="#L-90"><span class="linenos">90</span></a> <span class="k">elif</span> <span class="n">gamma_tag</span> <span class="o">==</span> <span class="s1">&#39;SigmaYZ&#39;</span><span class="p">:</span>
</span><span id="L-91"><a href="#L-91"><span class="linenos">91</span></a> <span class="n">g</span> <span class="o">=</span> <span class="mf">0.5</span> <span class="o">*</span> <span class="p">(</span><span class="n">gamma</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">@</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">-</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">@</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
</span><span id="L-92"><a href="#L-92"><span class="linenos">92</span></a> <span class="k">elif</span> <span class="n">gamma_tag</span> <span class="o">==</span> <span class="s1">&#39;SigmaZT&#39;</span><span class="p">:</span>
</span><span id="L-93"><a href="#L-93"><span class="linenos">93</span></a> <span class="n">g</span> <span class="o">=</span> <span class="mf">0.5</span> <span class="o">*</span> <span class="p">(</span><span class="n">gamma</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">@</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="o">-</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="o">@</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">2</span><span class="p">])</span>
</span><span id="L-94"><a href="#L-94"><span class="linenos">94</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-95"><a href="#L-95"><span class="linenos">95</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;Unkown gamma structure&#39;</span><span class="p">,</span> <span class="n">gamma_tag</span><span class="p">)</span>
</span><span id="L-96"><a href="#L-96"><span class="linenos">96</span></a> <span class="k">return</span> <span class="n">g</span>
</span></pre></div>
@ -186,18 +197,30 @@
</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>
</span><span id="epsilon_tensor-30"><a href="#epsilon_tensor-30"><span class="linenos">30</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="epsilon_tensor-31"><a href="#epsilon_tensor-31"><span class="linenos">31</span></a> <span class="n">test_set</span> <span class="o">=</span> <span class="nb">set</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-32"><a href="#epsilon_tensor-32"><span class="linenos">32</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="p">(</span><span class="n">test_set</span> <span class="o">&lt;=</span> <span class="nb">set</span><span class="p">((</span><span class="mi">1</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="ow">or</span> <span class="n">test_set</span> <span class="o">&lt;=</span> <span class="nb">set</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">2</span><span class="p">))):</span>
</span><span id="epsilon_tensor-33"><a href="#epsilon_tensor-33"><span class="linenos">33</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">&quot;Unexpected input&quot;</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-34"><a href="#epsilon_tensor-34"><span class="linenos">34</span></a>
</span><span id="epsilon_tensor-35"><a href="#epsilon_tensor-35"><span class="linenos">35</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="epsilon_tensor-30"><a href="#epsilon_tensor-30"><span class="linenos">30</span></a>
</span><span id="epsilon_tensor-31"><a href="#epsilon_tensor-31"><span class="linenos">31</span></a><span class="sd"> Returns</span>
</span><span id="epsilon_tensor-32"><a href="#epsilon_tensor-32"><span class="linenos">32</span></a><span class="sd"> -------</span>
</span><span id="epsilon_tensor-33"><a href="#epsilon_tensor-33"><span class="linenos">33</span></a><span class="sd"> elem : int</span>
</span><span id="epsilon_tensor-34"><a href="#epsilon_tensor-34"><span class="linenos">34</span></a><span class="sd"> Element (i,j,k) of the epsilon tensor of rank 3</span>
</span><span id="epsilon_tensor-35"><a href="#epsilon_tensor-35"><span class="linenos">35</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="epsilon_tensor-36"><a href="#epsilon_tensor-36"><span class="linenos">36</span></a> <span class="n">test_set</span> <span class="o">=</span> <span class="nb">set</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-37"><a href="#epsilon_tensor-37"><span class="linenos">37</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="p">(</span><span class="n">test_set</span> <span class="o">&lt;=</span> <span class="nb">set</span><span class="p">((</span><span class="mi">1</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="ow">or</span> <span class="n">test_set</span> <span class="o">&lt;=</span> <span class="nb">set</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">2</span><span class="p">))):</span>
</span><span id="epsilon_tensor-38"><a href="#epsilon_tensor-38"><span class="linenos">38</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">&quot;Unexpected input&quot;</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-39"><a href="#epsilon_tensor-39"><span class="linenos">39</span></a>
</span><span id="epsilon_tensor-40"><a href="#epsilon_tensor-40"><span class="linenos">40</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></pre></div>
<div class="docstring"><p>Rank-3 epsilon tensor</p>
<p>Based on <a href="https://codegolf.stackexchange.com/a/160375">https://codegolf.stackexchange.com/a/160375</a></p>
<h6 id="returns">Returns</h6>
<ul>
<li><strong>elem</strong> (int):
Element (i,j,k) of the epsilon tensor of rank 3</li>
</ul>
</div>
@ -213,22 +236,35 @@
</div>
<a class="headerlink" href="#epsilon_tensor_rank4"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="epsilon_tensor_rank4-38"><a href="#epsilon_tensor_rank4-38"><span class="linenos">38</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="epsilon_tensor_rank4-39"><a href="#epsilon_tensor_rank4-39"><span class="linenos">39</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Rank-4 epsilon tensor</span>
</span><span id="epsilon_tensor_rank4-40"><a href="#epsilon_tensor_rank4-40"><span class="linenos">40</span></a>
</span><span id="epsilon_tensor_rank4-41"><a href="#epsilon_tensor_rank4-41"><span class="linenos">41</span></a><span class="sd"> Extension of https://codegolf.stackexchange.com/a/160375</span>
</span><span id="epsilon_tensor_rank4-42"><a href="#epsilon_tensor_rank4-42"><span class="linenos">42</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="epsilon_tensor_rank4-43"><a href="#epsilon_tensor_rank4-43"><span class="linenos">43</span></a> <span class="n">test_set</span> <span class="o">=</span> <span class="nb">set</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="k">if</span> <span class="ow">not</span> <span class="p">(</span><span class="n">test_set</span> <span class="o">&lt;=</span> <span class="nb">set</span><span class="p">((</span><span class="mi">1</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="mi">4</span><span class="p">))</span> <span class="ow">or</span> <span class="n">test_set</span> <span class="o">&lt;=</span> <span class="nb">set</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">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">))):</span>
</span><span id="epsilon_tensor_rank4-45"><a href="#epsilon_tensor_rank4-45"><span class="linenos">45</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">&quot;Unexpected input&quot;</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-46"><a href="#epsilon_tensor_rank4-46"><span class="linenos">46</span></a>
</span><span id="epsilon_tensor_rank4-47"><a href="#epsilon_tensor_rank4-47"><span class="linenos">47</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>
<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>
</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>
</span><span id="epsilon_tensor_rank4-47"><a href="#epsilon_tensor_rank4-47"><span class="linenos">47</span></a>
</span><span id="epsilon_tensor_rank4-48"><a href="#epsilon_tensor_rank4-48"><span class="linenos">48</span></a>
</span><span id="epsilon_tensor_rank4-49"><a href="#epsilon_tensor_rank4-49"><span class="linenos">49</span></a><span class="sd"> Returns</span>
</span><span id="epsilon_tensor_rank4-50"><a href="#epsilon_tensor_rank4-50"><span class="linenos">50</span></a><span class="sd"> -------</span>
</span><span id="epsilon_tensor_rank4-51"><a href="#epsilon_tensor_rank4-51"><span class="linenos">51</span></a><span class="sd"> elem : int</span>
</span><span id="epsilon_tensor_rank4-52"><a href="#epsilon_tensor_rank4-52"><span class="linenos">52</span></a><span class="sd"> Element (i,j,k,o) of the epsilon tensor of rank 4</span>
</span><span id="epsilon_tensor_rank4-53"><a href="#epsilon_tensor_rank4-53"><span class="linenos">53</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="epsilon_tensor_rank4-54"><a href="#epsilon_tensor_rank4-54"><span class="linenos">54</span></a> <span class="n">test_set</span> <span class="o">=</span> <span class="nb">set</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-55"><a href="#epsilon_tensor_rank4-55"><span class="linenos">55</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="p">(</span><span class="n">test_set</span> <span class="o">&lt;=</span> <span class="nb">set</span><span class="p">((</span><span class="mi">1</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="mi">4</span><span class="p">))</span> <span class="ow">or</span> <span class="n">test_set</span> <span class="o">&lt;=</span> <span class="nb">set</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">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">))):</span>
</span><span id="epsilon_tensor_rank4-56"><a href="#epsilon_tensor_rank4-56"><span class="linenos">56</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">&quot;Unexpected input&quot;</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-57"><a href="#epsilon_tensor_rank4-57"><span class="linenos">57</span></a>
</span><span id="epsilon_tensor_rank4-58"><a href="#epsilon_tensor_rank4-58"><span class="linenos">58</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></pre></div>
<div class="docstring"><p>Rank-4 epsilon tensor</p>
<p>Extension of <a href="https://codegolf.stackexchange.com/a/160375">https://codegolf.stackexchange.com/a/160375</a></p>
<h6 id="returns">Returns</h6>
<ul>
<li><strong>elem</strong> (int):
Element (i,j,k,o) of the epsilon tensor of rank 4</li>
</ul>
</div>
@ -244,43 +280,43 @@
</div>
<a class="headerlink" href="#Grid_gamma"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Grid_gamma-50"><a href="#Grid_gamma-50"><span class="linenos">50</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="Grid_gamma-51"><a href="#Grid_gamma-51"><span class="linenos">51</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-52"><a href="#Grid_gamma-52"><span class="linenos">52</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-53"><a href="#Grid_gamma-53"><span class="linenos">53</span></a> <span class="n">g</span> <span class="o">=</span> <span class="n">identity</span>
</span><span id="Grid_gamma-54"><a href="#Grid_gamma-54"><span class="linenos">54</span></a> <span class="k">elif</span> <span class="n">gamma_tag</span> <span class="o">==</span> <span class="s1">&#39;Gamma5&#39;</span><span class="p">:</span>
</span><span id="Grid_gamma-55"><a href="#Grid_gamma-55"><span class="linenos">55</span></a> <span class="n">g</span> <span class="o">=</span> <span class="n">gamma5</span>
</span><span id="Grid_gamma-56"><a href="#Grid_gamma-56"><span class="linenos">56</span></a> <span class="k">elif</span> <span class="n">gamma_tag</span> <span class="o">==</span> <span class="s1">&#39;GammaX&#39;</span><span class="p">:</span>
</span><span id="Grid_gamma-57"><a href="#Grid_gamma-57"><span class="linenos">57</span></a> <span class="n">g</span> <span class="o">=</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
</span><span id="Grid_gamma-58"><a href="#Grid_gamma-58"><span class="linenos">58</span></a> <span class="k">elif</span> <span class="n">gamma_tag</span> <span class="o">==</span> <span class="s1">&#39;GammaY&#39;</span><span class="p">:</span>
</span><span id="Grid_gamma-59"><a href="#Grid_gamma-59"><span class="linenos">59</span></a> <span class="n">g</span> <span class="o">=</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span>
</span><span id="Grid_gamma-60"><a href="#Grid_gamma-60"><span class="linenos">60</span></a> <span class="k">elif</span> <span class="n">gamma_tag</span> <span class="o">==</span> <span class="s1">&#39;GammaZ&#39;</span><span class="p">:</span>
</span><span id="Grid_gamma-61"><a href="#Grid_gamma-61"><span class="linenos">61</span></a> <span class="n">g</span> <span class="o">=</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span>
</span><span id="Grid_gamma-62"><a href="#Grid_gamma-62"><span class="linenos">62</span></a> <span class="k">elif</span> <span class="n">gamma_tag</span> <span class="o">==</span> <span class="s1">&#39;GammaT&#39;</span><span class="p">:</span>
</span><span id="Grid_gamma-63"><a href="#Grid_gamma-63"><span class="linenos">63</span></a> <span class="n">g</span> <span class="o">=</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span>
</span><span id="Grid_gamma-64"><a href="#Grid_gamma-64"><span class="linenos">64</span></a> <span class="k">elif</span> <span class="n">gamma_tag</span> <span class="o">==</span> <span class="s1">&#39;GammaXGamma5&#39;</span><span class="p">:</span>
</span><span id="Grid_gamma-65"><a href="#Grid_gamma-65"><span class="linenos">65</span></a> <span class="n">g</span> <span class="o">=</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">@</span> <span class="n">gamma5</span>
</span><span id="Grid_gamma-66"><a href="#Grid_gamma-66"><span class="linenos">66</span></a> <span class="k">elif</span> <span class="n">gamma_tag</span> <span class="o">==</span> <span class="s1">&#39;GammaYGamma5&#39;</span><span class="p">:</span>
</span><span id="Grid_gamma-67"><a href="#Grid_gamma-67"><span class="linenos">67</span></a> <span class="n">g</span> <span class="o">=</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">@</span> <span class="n">gamma5</span>
</span><span id="Grid_gamma-68"><a href="#Grid_gamma-68"><span class="linenos">68</span></a> <span class="k">elif</span> <span class="n">gamma_tag</span> <span class="o">==</span> <span class="s1">&#39;GammaZGamma5&#39;</span><span class="p">:</span>
</span><span id="Grid_gamma-69"><a href="#Grid_gamma-69"><span class="linenos">69</span></a> <span class="n">g</span> <span class="o">=</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">@</span> <span class="n">gamma5</span>
</span><span id="Grid_gamma-70"><a href="#Grid_gamma-70"><span class="linenos">70</span></a> <span class="k">elif</span> <span class="n">gamma_tag</span> <span class="o">==</span> <span class="s1">&#39;GammaTGamma5&#39;</span><span class="p">:</span>
</span><span id="Grid_gamma-71"><a href="#Grid_gamma-71"><span class="linenos">71</span></a> <span class="n">g</span> <span class="o">=</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="o">@</span> <span class="n">gamma5</span>
</span><span id="Grid_gamma-72"><a href="#Grid_gamma-72"><span class="linenos">72</span></a> <span class="k">elif</span> <span class="n">gamma_tag</span> <span class="o">==</span> <span class="s1">&#39;SigmaXT&#39;</span><span class="p">:</span>
</span><span id="Grid_gamma-73"><a href="#Grid_gamma-73"><span class="linenos">73</span></a> <span class="n">g</span> <span class="o">=</span> <span class="mf">0.5</span> <span class="o">*</span> <span class="p">(</span><span class="n">gamma</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">@</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="o">-</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="o">@</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
</span><span id="Grid_gamma-74"><a href="#Grid_gamma-74"><span class="linenos">74</span></a> <span class="k">elif</span> <span class="n">gamma_tag</span> <span class="o">==</span> <span class="s1">&#39;SigmaXY&#39;</span><span class="p">:</span>
</span><span id="Grid_gamma-75"><a href="#Grid_gamma-75"><span class="linenos">75</span></a> <span class="n">g</span> <span class="o">=</span> <span class="mf">0.5</span> <span class="o">*</span> <span class="p">(</span><span class="n">gamma</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">@</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">-</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">@</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
</span><span id="Grid_gamma-76"><a href="#Grid_gamma-76"><span class="linenos">76</span></a> <span class="k">elif</span> <span class="n">gamma_tag</span> <span class="o">==</span> <span class="s1">&#39;SigmaXZ&#39;</span><span class="p">:</span>
</span><span id="Grid_gamma-77"><a href="#Grid_gamma-77"><span class="linenos">77</span></a> <span class="n">g</span> <span class="o">=</span> <span class="mf">0.5</span> <span class="o">*</span> <span class="p">(</span><span class="n">gamma</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">@</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">-</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">@</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
</span><span id="Grid_gamma-78"><a href="#Grid_gamma-78"><span class="linenos">78</span></a> <span class="k">elif</span> <span class="n">gamma_tag</span> <span class="o">==</span> <span class="s1">&#39;SigmaYT&#39;</span><span class="p">:</span>
</span><span id="Grid_gamma-79"><a href="#Grid_gamma-79"><span class="linenos">79</span></a> <span class="n">g</span> <span class="o">=</span> <span class="mf">0.5</span> <span class="o">*</span> <span class="p">(</span><span class="n">gamma</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">@</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="o">-</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="o">@</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
</span><span id="Grid_gamma-80"><a href="#Grid_gamma-80"><span class="linenos">80</span></a> <span class="k">elif</span> <span class="n">gamma_tag</span> <span class="o">==</span> <span class="s1">&#39;SigmaYZ&#39;</span><span class="p">:</span>
</span><span id="Grid_gamma-81"><a href="#Grid_gamma-81"><span class="linenos">81</span></a> <span class="n">g</span> <span class="o">=</span> <span class="mf">0.5</span> <span class="o">*</span> <span class="p">(</span><span class="n">gamma</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">@</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">-</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">@</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
</span><span id="Grid_gamma-82"><a href="#Grid_gamma-82"><span class="linenos">82</span></a> <span class="k">elif</span> <span class="n">gamma_tag</span> <span class="o">==</span> <span class="s1">&#39;SigmaZT&#39;</span><span class="p">:</span>
</span><span id="Grid_gamma-83"><a href="#Grid_gamma-83"><span class="linenos">83</span></a> <span class="n">g</span> <span class="o">=</span> <span class="mf">0.5</span> <span class="o">*</span> <span class="p">(</span><span class="n">gamma</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">@</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="o">-</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="o">@</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">2</span><span class="p">])</span>
</span><span id="Grid_gamma-84"><a href="#Grid_gamma-84"><span class="linenos">84</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="Grid_gamma-85"><a href="#Grid_gamma-85"><span class="linenos">85</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;Unkown gamma structure&#39;</span><span class="p">,</span> <span class="n">gamma_tag</span><span class="p">)</span>
</span><span id="Grid_gamma-86"><a href="#Grid_gamma-86"><span class="linenos">86</span></a> <span class="k">return</span> <span class="n">g</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="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>
</span><span id="Grid_gamma-65"><a href="#Grid_gamma-65"><span class="linenos">65</span></a> <span class="k">elif</span> <span class="n">gamma_tag</span> <span class="o">==</span> <span class="s1">&#39;Gamma5&#39;</span><span class="p">:</span>
</span><span id="Grid_gamma-66"><a href="#Grid_gamma-66"><span class="linenos">66</span></a> <span class="n">g</span> <span class="o">=</span> <span class="n">gamma5</span>
</span><span id="Grid_gamma-67"><a href="#Grid_gamma-67"><span class="linenos">67</span></a> <span class="k">elif</span> <span class="n">gamma_tag</span> <span class="o">==</span> <span class="s1">&#39;GammaX&#39;</span><span class="p">:</span>
</span><span id="Grid_gamma-68"><a href="#Grid_gamma-68"><span class="linenos">68</span></a> <span class="n">g</span> <span class="o">=</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
</span><span id="Grid_gamma-69"><a href="#Grid_gamma-69"><span class="linenos">69</span></a> <span class="k">elif</span> <span class="n">gamma_tag</span> <span class="o">==</span> <span class="s1">&#39;GammaY&#39;</span><span class="p">:</span>
</span><span id="Grid_gamma-70"><a href="#Grid_gamma-70"><span class="linenos">70</span></a> <span class="n">g</span> <span class="o">=</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span>
</span><span id="Grid_gamma-71"><a href="#Grid_gamma-71"><span class="linenos">71</span></a> <span class="k">elif</span> <span class="n">gamma_tag</span> <span class="o">==</span> <span class="s1">&#39;GammaZ&#39;</span><span class="p">:</span>
</span><span id="Grid_gamma-72"><a href="#Grid_gamma-72"><span class="linenos">72</span></a> <span class="n">g</span> <span class="o">=</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span>
</span><span id="Grid_gamma-73"><a href="#Grid_gamma-73"><span class="linenos">73</span></a> <span class="k">elif</span> <span class="n">gamma_tag</span> <span class="o">==</span> <span class="s1">&#39;GammaT&#39;</span><span class="p">:</span>
</span><span id="Grid_gamma-74"><a href="#Grid_gamma-74"><span class="linenos">74</span></a> <span class="n">g</span> <span class="o">=</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span>
</span><span id="Grid_gamma-75"><a href="#Grid_gamma-75"><span class="linenos">75</span></a> <span class="k">elif</span> <span class="n">gamma_tag</span> <span class="o">==</span> <span class="s1">&#39;GammaXGamma5&#39;</span><span class="p">:</span>
</span><span id="Grid_gamma-76"><a href="#Grid_gamma-76"><span class="linenos">76</span></a> <span class="n">g</span> <span class="o">=</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">@</span> <span class="n">gamma5</span>
</span><span id="Grid_gamma-77"><a href="#Grid_gamma-77"><span class="linenos">77</span></a> <span class="k">elif</span> <span class="n">gamma_tag</span> <span class="o">==</span> <span class="s1">&#39;GammaYGamma5&#39;</span><span class="p">:</span>
</span><span id="Grid_gamma-78"><a href="#Grid_gamma-78"><span class="linenos">78</span></a> <span class="n">g</span> <span class="o">=</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">@</span> <span class="n">gamma5</span>
</span><span id="Grid_gamma-79"><a href="#Grid_gamma-79"><span class="linenos">79</span></a> <span class="k">elif</span> <span class="n">gamma_tag</span> <span class="o">==</span> <span class="s1">&#39;GammaZGamma5&#39;</span><span class="p">:</span>
</span><span id="Grid_gamma-80"><a href="#Grid_gamma-80"><span class="linenos">80</span></a> <span class="n">g</span> <span class="o">=</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">@</span> <span class="n">gamma5</span>
</span><span id="Grid_gamma-81"><a href="#Grid_gamma-81"><span class="linenos">81</span></a> <span class="k">elif</span> <span class="n">gamma_tag</span> <span class="o">==</span> <span class="s1">&#39;GammaTGamma5&#39;</span><span class="p">:</span>
</span><span id="Grid_gamma-82"><a href="#Grid_gamma-82"><span class="linenos">82</span></a> <span class="n">g</span> <span class="o">=</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="o">@</span> <span class="n">gamma5</span>
</span><span id="Grid_gamma-83"><a href="#Grid_gamma-83"><span class="linenos">83</span></a> <span class="k">elif</span> <span class="n">gamma_tag</span> <span class="o">==</span> <span class="s1">&#39;SigmaXT&#39;</span><span class="p">:</span>
</span><span id="Grid_gamma-84"><a href="#Grid_gamma-84"><span class="linenos">84</span></a> <span class="n">g</span> <span class="o">=</span> <span class="mf">0.5</span> <span class="o">*</span> <span class="p">(</span><span class="n">gamma</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">@</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="o">-</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="o">@</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
</span><span id="Grid_gamma-85"><a href="#Grid_gamma-85"><span class="linenos">85</span></a> <span class="k">elif</span> <span class="n">gamma_tag</span> <span class="o">==</span> <span class="s1">&#39;SigmaXY&#39;</span><span class="p">:</span>
</span><span id="Grid_gamma-86"><a href="#Grid_gamma-86"><span class="linenos">86</span></a> <span class="n">g</span> <span class="o">=</span> <span class="mf">0.5</span> <span class="o">*</span> <span class="p">(</span><span class="n">gamma</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">@</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">-</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">@</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
</span><span id="Grid_gamma-87"><a href="#Grid_gamma-87"><span class="linenos">87</span></a> <span class="k">elif</span> <span class="n">gamma_tag</span> <span class="o">==</span> <span class="s1">&#39;SigmaXZ&#39;</span><span class="p">:</span>
</span><span id="Grid_gamma-88"><a href="#Grid_gamma-88"><span class="linenos">88</span></a> <span class="n">g</span> <span class="o">=</span> <span class="mf">0.5</span> <span class="o">*</span> <span class="p">(</span><span class="n">gamma</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">@</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">-</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">@</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
</span><span id="Grid_gamma-89"><a href="#Grid_gamma-89"><span class="linenos">89</span></a> <span class="k">elif</span> <span class="n">gamma_tag</span> <span class="o">==</span> <span class="s1">&#39;SigmaYT&#39;</span><span class="p">:</span>
</span><span id="Grid_gamma-90"><a href="#Grid_gamma-90"><span class="linenos">90</span></a> <span class="n">g</span> <span class="o">=</span> <span class="mf">0.5</span> <span class="o">*</span> <span class="p">(</span><span class="n">gamma</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">@</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="o">-</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="o">@</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
</span><span id="Grid_gamma-91"><a href="#Grid_gamma-91"><span class="linenos">91</span></a> <span class="k">elif</span> <span class="n">gamma_tag</span> <span class="o">==</span> <span class="s1">&#39;SigmaYZ&#39;</span><span class="p">:</span>
</span><span id="Grid_gamma-92"><a href="#Grid_gamma-92"><span class="linenos">92</span></a> <span class="n">g</span> <span class="o">=</span> <span class="mf">0.5</span> <span class="o">*</span> <span class="p">(</span><span class="n">gamma</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">@</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">-</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">@</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
</span><span id="Grid_gamma-93"><a href="#Grid_gamma-93"><span class="linenos">93</span></a> <span class="k">elif</span> <span class="n">gamma_tag</span> <span class="o">==</span> <span class="s1">&#39;SigmaZT&#39;</span><span class="p">:</span>
</span><span id="Grid_gamma-94"><a href="#Grid_gamma-94"><span class="linenos">94</span></a> <span class="n">g</span> <span class="o">=</span> <span class="mf">0.5</span> <span class="o">*</span> <span class="p">(</span><span class="n">gamma</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">@</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="o">-</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="o">@</span> <span class="n">gamma</span><span class="p">[</span><span class="mi">2</span><span class="p">])</span>
</span><span id="Grid_gamma-95"><a href="#Grid_gamma-95"><span class="linenos">95</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="Grid_gamma-96"><a href="#Grid_gamma-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;Unkown gamma structure&#39;</span><span class="p">,</span> <span class="n">gamma_tag</span><span class="p">)</span>
</span><span id="Grid_gamma-97"><a href="#Grid_gamma-97"><span class="linenos">97</span></a> <span class="k">return</span> <span class="n">g</span>
</span></pre></div>

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -85,7 +85,7 @@
</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="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-10"><a href="#L-10"><span class="linenos"> 10</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Read pbp format from given folder structure. Returns a list of length nrw</span>
</span><span id="L-10"><a href="#L-10"><span class="linenos"> 10</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Read pbp format from given folder structure.</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 class="sd"> Parameters</span>
</span><span id="L-13"><a href="#L-13"><span class="linenos"> 13</span></a><span class="sd"> ----------</span>
@ -93,111 +93,116 @@
</span><span id="L-15"><a href="#L-15"><span class="linenos"> 15</span></a><span class="sd"> list which contains the first config to be read for each replicum</span>
</span><span id="L-16"><a href="#L-16"><span class="linenos"> 16</span></a><span class="sd"> r_stop : list</span>
</span><span id="L-17"><a href="#L-17"><span class="linenos"> 17</span></a><span class="sd"> list which contains the last config to be read for each replicum</span>
</span><span id="L-18"><a href="#L-18"><span class="linenos"> 18</span></a><span class="sd"> &quot;&quot;&quot;</span>
</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="n">ls</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-21"><a href="#L-21"><span class="linenos"> 21</span></a> <span class="k">for</span> <span class="p">(</span><span class="n">dirpath</span><span class="p">,</span> <span class="n">dirnames</span><span class="p">,</span> <span class="n">filenames</span><span class="p">)</span> <span class="ow">in</span> <span class="n">os</span><span class="o">.</span><span class="n">walk</span><span class="p">(</span><span class="n">path</span><span class="p">):</span>
</span><span id="L-22"><a href="#L-22"><span class="linenos"> 22</span></a> <span class="n">ls</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">filenames</span><span class="p">)</span>
</span><span id="L-23"><a href="#L-23"><span class="linenos"> 23</span></a> <span class="k">break</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 class="sd"> Returns</span>
</span><span id="L-20"><a href="#L-20"><span class="linenos"> 20</span></a><span class="sd"> -------</span>
</span><span id="L-21"><a href="#L-21"><span class="linenos"> 21</span></a><span class="sd"> result : list[Obs]</span>
</span><span id="L-22"><a href="#L-22"><span class="linenos"> 22</span></a><span class="sd"> list of observables read</span>
</span><span id="L-23"><a href="#L-23"><span class="linenos"> 23</span></a><span class="sd"> &quot;&quot;&quot;</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 class="k">if</span> <span class="ow">not</span> <span class="n">ls</span><span class="p">:</span>
</span><span id="L-26"><a href="#L-26"><span class="linenos"> 26</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;Error, directory not found&#39;</span><span class="p">)</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="c1"># Exclude files with different names</span>
</span><span id="L-29"><a href="#L-29"><span class="linenos"> 29</span></a> <span class="k">for</span> <span class="n">exc</span> <span class="ow">in</span> <span class="n">ls</span><span class="p">:</span>
</span><span id="L-30"><a href="#L-30"><span class="linenos"> 30</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">fnmatch</span><span class="o">.</span><span class="n">fnmatch</span><span class="p">(</span><span class="n">exc</span><span class="p">,</span> <span class="n">prefix</span> <span class="o">+</span> <span class="s1">&#39;*.dat&#39;</span><span class="p">):</span>
</span><span id="L-31"><a href="#L-31"><span class="linenos"> 31</span></a> <span class="n">ls</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="nb">set</span><span class="p">(</span><span class="n">ls</span><span class="p">)</span> <span class="o">-</span> <span class="nb">set</span><span class="p">([</span><span class="n">exc</span><span class="p">]))</span>
</span><span id="L-32"><a href="#L-32"><span class="linenos"> 32</span></a> <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">1</span><span class="p">:</span>
</span><span id="L-33"><a href="#L-33"><span class="linenos"> 33</span></a> <span class="n">ls</span><span class="o">.</span><span class="n">sort</span><span class="p">(</span><span class="n">key</span><span class="o">=</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="nb">int</span><span class="p">(</span><span class="n">re</span><span class="o">.</span><span class="n">findall</span><span class="p">(</span><span class="sa">r</span><span class="s1">&#39;\d+&#39;</span><span class="p">,</span> <span class="n">x</span><span class="p">[</span><span class="nb">len</span><span class="p">(</span><span class="n">prefix</span><span class="p">):])[</span><span class="mi">0</span><span class="p">]))</span>
</span><span id="L-34"><a href="#L-34"><span class="linenos"> 34</span></a> <span class="n">replica</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">ls</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 class="k">if</span> <span class="s1">&#39;r_start&#39;</span> <span class="ow">in</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="n">r_start</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;r_start&#39;</span><span class="p">)</span>
</span><span id="L-38"><a href="#L-38"><span class="linenos"> 38</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">r_start</span><span class="p">)</span> <span class="o">!=</span> <span class="n">replica</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="s1">&#39;r_start does not match number of replicas&#39;</span><span class="p">)</span>
</span><span id="L-40"><a href="#L-40"><span class="linenos"> 40</span></a> <span class="c1"># Adjust Configuration numbering to python index</span>
</span><span id="L-41"><a href="#L-41"><span class="linenos"> 41</span></a> <span class="n">r_start</span> <span class="o">=</span> <span class="p">[</span><span class="n">o</span> <span class="o">-</span> <span class="mi">1</span> <span class="k">if</span> <span class="n">o</span> <span class="k">else</span> <span class="kc">None</span> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">r_start</span><span class="p">]</span>
</span><span id="L-42"><a href="#L-42"><span class="linenos"> 42</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-43"><a href="#L-43"><span class="linenos"> 43</span></a> <span class="n">r_start</span> <span class="o">=</span> <span class="p">[</span><span class="kc">None</span><span class="p">]</span> <span class="o">*</span> <span class="n">replica</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">if</span> <span class="s1">&#39;r_stop&#39;</span> <span class="ow">in</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="n">r_stop</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;r_stop&#39;</span><span class="p">)</span>
</span><span id="L-47"><a href="#L-47"><span class="linenos"> 47</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">r_stop</span><span class="p">)</span> <span class="o">!=</span> <span class="n">replica</span><span class="p">:</span>
</span><span id="L-48"><a href="#L-48"><span class="linenos"> 48</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;r_stop does not match number of replicas&#39;</span><span class="p">)</span>
</span><span id="L-49"><a href="#L-49"><span class="linenos"> 49</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-50"><a href="#L-50"><span class="linenos"> 50</span></a> <span class="n">r_stop</span> <span class="o">=</span> <span class="p">[</span><span class="kc">None</span><span class="p">]</span> <span class="o">*</span> <span class="n">replica</span>
</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="nb">print</span><span class="p">(</span><span class="sa">r</span><span class="s1">&#39;Read &lt;bar</span><span class="si">{psi}</span><span class="s1">\psi&gt; from&#39;</span><span class="p">,</span> <span class="n">prefix</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">],</span> <span class="s1">&#39;,&#39;</span><span class="p">,</span> <span class="n">replica</span><span class="p">,</span> <span class="s1">&#39;replica&#39;</span><span class="p">,</span> <span class="n">end</span><span class="o">=</span><span class="s1">&#39;&#39;</span><span class="p">)</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 class="n">print_err</span> <span class="o">=</span> <span class="mi">0</span>
</span><span id="L-55"><a href="#L-55"><span class="linenos"> 55</span></a> <span class="k">if</span> <span class="s1">&#39;print_err&#39;</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
</span><span id="L-56"><a href="#L-56"><span class="linenos"> 56</span></a> <span class="n">print_err</span> <span class="o">=</span> <span class="mi">1</span>
</span><span id="L-57"><a href="#L-57"><span class="linenos"> 57</span></a> <span class="nb">print</span><span class="p">()</span>
</span><span id="L-25"><a href="#L-25"><span class="linenos"> 25</span></a> <span class="n">ls</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-26"><a href="#L-26"><span class="linenos"> 26</span></a> <span class="k">for</span> <span class="p">(</span><span class="n">dirpath</span><span class="p">,</span> <span class="n">dirnames</span><span class="p">,</span> <span class="n">filenames</span><span class="p">)</span> <span class="ow">in</span> <span class="n">os</span><span class="o">.</span><span class="n">walk</span><span class="p">(</span><span class="n">path</span><span class="p">):</span>
</span><span id="L-27"><a href="#L-27"><span class="linenos"> 27</span></a> <span class="n">ls</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">filenames</span><span class="p">)</span>
</span><span id="L-28"><a href="#L-28"><span class="linenos"> 28</span></a> <span class="k">break</span>
</span><span id="L-29"><a href="#L-29"><span class="linenos"> 29</span></a>
</span><span id="L-30"><a href="#L-30"><span class="linenos"> 30</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">ls</span><span class="p">:</span>
</span><span id="L-31"><a href="#L-31"><span class="linenos"> 31</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;Error, directory not found&#39;</span><span class="p">)</span>
</span><span id="L-32"><a href="#L-32"><span class="linenos"> 32</span></a>
</span><span id="L-33"><a href="#L-33"><span class="linenos"> 33</span></a> <span class="c1"># Exclude files with different names</span>
</span><span id="L-34"><a href="#L-34"><span class="linenos"> 34</span></a> <span class="k">for</span> <span class="n">exc</span> <span class="ow">in</span> <span class="n">ls</span><span class="p">:</span>
</span><span id="L-35"><a href="#L-35"><span class="linenos"> 35</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">fnmatch</span><span class="o">.</span><span class="n">fnmatch</span><span class="p">(</span><span class="n">exc</span><span class="p">,</span> <span class="n">prefix</span> <span class="o">+</span> <span class="s1">&#39;*.dat&#39;</span><span class="p">):</span>
</span><span id="L-36"><a href="#L-36"><span class="linenos"> 36</span></a> <span class="n">ls</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="nb">set</span><span class="p">(</span><span class="n">ls</span><span class="p">)</span> <span class="o">-</span> <span class="nb">set</span><span class="p">([</span><span class="n">exc</span><span class="p">]))</span>
</span><span id="L-37"><a href="#L-37"><span class="linenos"> 37</span></a> <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">1</span><span class="p">:</span>
</span><span id="L-38"><a href="#L-38"><span class="linenos"> 38</span></a> <span class="n">ls</span><span class="o">.</span><span class="n">sort</span><span class="p">(</span><span class="n">key</span><span class="o">=</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="nb">int</span><span class="p">(</span><span class="n">re</span><span class="o">.</span><span class="n">findall</span><span class="p">(</span><span class="sa">r</span><span class="s1">&#39;\d+&#39;</span><span class="p">,</span> <span class="n">x</span><span class="p">[</span><span class="nb">len</span><span class="p">(</span><span class="n">prefix</span><span class="p">):])[</span><span class="mi">0</span><span class="p">]))</span>
</span><span id="L-39"><a href="#L-39"><span class="linenos"> 39</span></a> <span class="n">replica</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">ls</span><span class="p">)</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 class="k">if</span> <span class="s1">&#39;r_start&#39;</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
</span><span id="L-42"><a href="#L-42"><span class="linenos"> 42</span></a> <span class="n">r_start</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;r_start&#39;</span><span class="p">)</span>
</span><span id="L-43"><a href="#L-43"><span class="linenos"> 43</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">r_start</span><span class="p">)</span> <span class="o">!=</span> <span class="n">replica</span><span class="p">:</span>
</span><span id="L-44"><a href="#L-44"><span class="linenos"> 44</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;r_start does not match number of replicas&#39;</span><span class="p">)</span>
</span><span id="L-45"><a href="#L-45"><span class="linenos"> 45</span></a> <span class="c1"># Adjust Configuration numbering to python index</span>
</span><span id="L-46"><a href="#L-46"><span class="linenos"> 46</span></a> <span class="n">r_start</span> <span class="o">=</span> <span class="p">[</span><span class="n">o</span> <span class="o">-</span> <span class="mi">1</span> <span class="k">if</span> <span class="n">o</span> <span class="k">else</span> <span class="kc">None</span> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">r_start</span><span class="p">]</span>
</span><span id="L-47"><a href="#L-47"><span class="linenos"> 47</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-48"><a href="#L-48"><span class="linenos"> 48</span></a> <span class="n">r_start</span> <span class="o">=</span> <span class="p">[</span><span class="kc">None</span><span class="p">]</span> <span class="o">*</span> <span class="n">replica</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="k">if</span> <span class="s1">&#39;r_stop&#39;</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
</span><span id="L-51"><a href="#L-51"><span class="linenos"> 51</span></a> <span class="n">r_stop</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;r_stop&#39;</span><span class="p">)</span>
</span><span id="L-52"><a href="#L-52"><span class="linenos"> 52</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">r_stop</span><span class="p">)</span> <span class="o">!=</span> <span class="n">replica</span><span class="p">:</span>
</span><span id="L-53"><a href="#L-53"><span class="linenos"> 53</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;r_stop does not match number of replicas&#39;</span><span class="p">)</span>
</span><span id="L-54"><a href="#L-54"><span class="linenos"> 54</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-55"><a href="#L-55"><span class="linenos"> 55</span></a> <span class="n">r_stop</span> <span class="o">=</span> <span class="p">[</span><span class="kc">None</span><span class="p">]</span> <span class="o">*</span> <span class="n">replica</span>
</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="nb">print</span><span class="p">(</span><span class="sa">r</span><span class="s1">&#39;Read &lt;bar</span><span class="si">{psi}</span><span class="s1">\psi&gt; from&#39;</span><span class="p">,</span> <span class="n">prefix</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">],</span> <span class="s1">&#39;,&#39;</span><span class="p">,</span> <span class="n">replica</span><span class="p">,</span> <span class="s1">&#39;replica&#39;</span><span class="p">,</span> <span class="n">end</span><span class="o">=</span><span class="s1">&#39;&#39;</span><span class="p">)</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="n">deltas</span> <span class="o">=</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 class="k">for</span> <span class="n">rep</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">replica</span><span class="p">):</span>
</span><span id="L-62"><a href="#L-62"><span class="linenos"> 62</span></a> <span class="n">tmp_array</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-63"><a href="#L-63"><span class="linenos"> 63</span></a> <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">path</span> <span class="o">+</span> <span class="s1">&#39;/&#39;</span> <span class="o">+</span> <span class="n">ls</span><span class="p">[</span><span class="n">rep</span><span class="p">],</span> <span class="s1">&#39;rb&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="n">fp</span><span class="p">:</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="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 class="c1"># number of reweighting factors</span>
</span><span id="L-66"><a href="#L-66"><span class="linenos"> 66</span></a> <span class="k">if</span> <span class="n">rep</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
</span><span id="L-67"><a href="#L-67"><span class="linenos"> 67</span></a> <span class="n">nrw</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-68"><a href="#L-68"><span class="linenos"> 68</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-69"><a href="#L-69"><span class="linenos"> 69</span></a> <span class="n">deltas</span><span class="o">.</span><span class="n">append</span><span class="p">([])</span>
</span><span id="L-70"><a href="#L-70"><span class="linenos"> 70</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-71"><a href="#L-71"><span class="linenos"> 71</span></a> <span class="k">if</span> <span class="n">nrw</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-72"><a href="#L-72"><span class="linenos"> 72</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;Error: different number of factors for replicum&#39;</span><span class="p">,</span> <span class="n">rep</span><span class="p">)</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">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-75"><a href="#L-75"><span class="linenos"> 75</span></a> <span class="n">tmp_array</span><span class="o">.</span><span class="n">append</span><span class="p">([])</span>
</span><span id="L-76"><a href="#L-76"><span class="linenos"> 76</span></a>
</span><span id="L-77"><a href="#L-77"><span class="linenos"> 77</span></a> <span class="c1"># This block is necessary for openQCD1.6 ms1 files</span>
</span><span id="L-78"><a href="#L-78"><span class="linenos"> 78</span></a> <span class="n">nfct</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-79"><a href="#L-79"><span class="linenos"> 79</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">nrw</span><span class="p">):</span>
</span><span id="L-80"><a href="#L-80"><span class="linenos"> 80</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-81"><a href="#L-81"><span class="linenos"> 81</span></a> <span class="n">nfct</span><span class="o">.</span><span class="n">append</span><span class="p">(</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-82"><a href="#L-82"><span class="linenos"> 82</span></a> <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;nfct: &#39;</span><span class="p">,</span> <span class="n">nfct</span><span class="p">)</span> <span class="c1"># Hasenbusch factor, 1 for rat reweighting</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="n">nsrc</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-85"><a href="#L-85"><span class="linenos"> 85</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">nrw</span><span class="p">):</span>
</span><span id="L-86"><a href="#L-86"><span class="linenos"> 86</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-87"><a href="#L-87"><span class="linenos"> 87</span></a> <span class="n">nsrc</span><span class="o">.</span><span class="n">append</span><span class="p">(</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-59"><a href="#L-59"><span class="linenos"> 59</span></a> <span class="n">print_err</span> <span class="o">=</span> <span class="mi">0</span>
</span><span id="L-60"><a href="#L-60"><span class="linenos"> 60</span></a> <span class="k">if</span> <span class="s1">&#39;print_err&#39;</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
</span><span id="L-61"><a href="#L-61"><span class="linenos"> 61</span></a> <span class="n">print_err</span> <span class="o">=</span> <span class="mi">1</span>
</span><span id="L-62"><a href="#L-62"><span class="linenos"> 62</span></a> <span class="nb">print</span><span class="p">()</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="n">deltas</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-65"><a href="#L-65"><span class="linenos"> 65</span></a>
</span><span id="L-66"><a href="#L-66"><span class="linenos"> 66</span></a> <span class="k">for</span> <span class="n">rep</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">replica</span><span class="p">):</span>
</span><span id="L-67"><a href="#L-67"><span class="linenos"> 67</span></a> <span class="n">tmp_array</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-68"><a href="#L-68"><span class="linenos"> 68</span></a> <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">path</span> <span class="o">+</span> <span class="s1">&#39;/&#39;</span> <span class="o">+</span> <span class="n">ls</span><span class="p">[</span><span class="n">rep</span><span class="p">],</span> <span class="s1">&#39;rb&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="n">fp</span><span class="p">:</span>
</span><span id="L-69"><a href="#L-69"><span class="linenos"> 69</span></a>
</span><span id="L-70"><a href="#L-70"><span class="linenos"> 70</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 class="c1"># number of reweighting factors</span>
</span><span id="L-71"><a href="#L-71"><span class="linenos"> 71</span></a> <span class="k">if</span> <span class="n">rep</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
</span><span id="L-72"><a href="#L-72"><span class="linenos"> 72</span></a> <span class="n">nrw</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-73"><a href="#L-73"><span class="linenos"> 73</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-74"><a href="#L-74"><span class="linenos"> 74</span></a> <span class="n">deltas</span><span class="o">.</span><span class="n">append</span><span class="p">([])</span>
</span><span id="L-75"><a href="#L-75"><span class="linenos"> 75</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-76"><a href="#L-76"><span class="linenos"> 76</span></a> <span class="k">if</span> <span class="n">nrw</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-77"><a href="#L-77"><span class="linenos"> 77</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;Error: different number of factors for replicum&#39;</span><span class="p">,</span> <span class="n">rep</span><span class="p">)</span>
</span><span id="L-78"><a href="#L-78"><span class="linenos"> 78</span></a>
</span><span id="L-79"><a href="#L-79"><span class="linenos"> 79</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-80"><a href="#L-80"><span class="linenos"> 80</span></a> <span class="n">tmp_array</span><span class="o">.</span><span class="n">append</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="c1"># This block is necessary for openQCD1.6 ms1 files</span>
</span><span id="L-83"><a href="#L-83"><span class="linenos"> 83</span></a> <span class="n">nfct</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-84"><a href="#L-84"><span class="linenos"> 84</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">nrw</span><span class="p">):</span>
</span><span id="L-85"><a href="#L-85"><span class="linenos"> 85</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-86"><a href="#L-86"><span class="linenos"> 86</span></a> <span class="n">nfct</span><span class="o">.</span><span class="n">append</span><span class="p">(</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-87"><a href="#L-87"><span class="linenos"> 87</span></a> <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;nfct: &#39;</span><span class="p">,</span> <span class="n">nfct</span><span class="p">)</span> <span class="c1"># Hasenbusch factor, 1 for rat reweighting</span>
</span><span id="L-88"><a href="#L-88"><span class="linenos"> 88</span></a>
</span><span id="L-89"><a href="#L-89"><span class="linenos"> 89</span></a> <span class="c1"># body</span>
</span><span id="L-90"><a href="#L-90"><span class="linenos"> 90</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span>
</span><span id="L-89"><a href="#L-89"><span class="linenos"> 89</span></a> <span class="n">nsrc</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-90"><a href="#L-90"><span class="linenos"> 90</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">nrw</span><span class="p">):</span>
</span><span id="L-91"><a href="#L-91"><span class="linenos"> 91</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-92"><a href="#L-92"><span class="linenos"> 92</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">t</span><span class="p">)</span> <span class="o">&lt;</span> <span class="mi">4</span><span class="p">:</span>
</span><span id="L-93"><a href="#L-93"><span class="linenos"> 93</span></a> <span class="k">break</span>
</span><span id="L-94"><a href="#L-94"><span class="linenos"> 94</span></a> <span class="k">if</span> <span class="n">print_err</span><span class="p">:</span>
</span><span id="L-95"><a href="#L-95"><span class="linenos"> 95</span></a> <span class="n">config_no</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><span id="L-96"><a href="#L-96"><span class="linenos"> 96</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">nrw</span><span class="p">):</span>
</span><span id="L-97"><a href="#L-97"><span class="linenos"> 97</span></a> <span class="n">tmp_nfct</span> <span class="o">=</span> <span class="mf">1.0</span>
</span><span id="L-98"><a href="#L-98"><span class="linenos"> 98</span></a> <span class="k">for</span> <span class="n">j</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">nfct</span><span class="p">[</span><span class="n">i</span><span class="p">]):</span>
</span><span id="L-99"><a href="#L-99"><span class="linenos"> 99</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">8</span> <span class="o">*</span> <span class="n">nsrc</span><span class="p">[</span><span class="n">i</span><span class="p">])</span>
</span><span id="L-100"><a href="#L-100"><span class="linenos">100</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">8</span> <span class="o">*</span> <span class="n">nsrc</span><span class="p">[</span><span class="n">i</span><span class="p">])</span>
</span><span id="L-101"><a href="#L-101"><span class="linenos">101</span></a> <span class="n">tmp_rw</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;d&#39;</span> <span class="o">*</span> <span class="n">nsrc</span><span class="p">[</span><span class="n">i</span><span class="p">],</span> <span class="n">t</span><span class="p">)</span>
</span><span id="L-102"><a href="#L-102"><span class="linenos">102</span></a> <span class="n">tmp_nfct</span> <span class="o">*=</span> <span class="n">np</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">asarray</span><span class="p">(</span><span class="n">tmp_rw</span><span class="p">))</span>
</span><span id="L-103"><a href="#L-103"><span class="linenos">103</span></a> <span class="k">if</span> <span class="n">print_err</span><span class="p">:</span>
</span><span id="L-104"><a href="#L-104"><span class="linenos">104</span></a> <span class="nb">print</span><span class="p">(</span><span class="n">config_no</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">np</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">asarray</span><span class="p">(</span><span class="n">tmp_rw</span><span class="p">)),</span> <span class="n">np</span><span class="o">.</span><span class="n">std</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">asarray</span><span class="p">(</span><span class="n">tmp_rw</span><span class="p">)))</span>
</span><span id="L-105"><a href="#L-105"><span class="linenos">105</span></a> <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;Sources:&#39;</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">asarray</span><span class="p">(</span><span class="n">tmp_rw</span><span class="p">))</span>
</span><span id="L-106"><a href="#L-106"><span class="linenos">106</span></a> <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;Partial factor:&#39;</span><span class="p">,</span> <span class="n">tmp_nfct</span><span class="p">)</span>
</span><span id="L-107"><a href="#L-107"><span class="linenos">107</span></a> <span class="n">tmp_array</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">tmp_nfct</span><span class="p">)</span>
</span><span id="L-108"><a href="#L-108"><span class="linenos">108</span></a>
</span><span id="L-109"><a href="#L-109"><span class="linenos">109</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-110"><a href="#L-110"><span class="linenos">110</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</span><span class="p">[</span><span class="n">rep</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-111"><a href="#L-111"><span class="linenos">111</span></a>
</span><span id="L-112"><a href="#L-112"><span class="linenos">112</span></a> <span class="n">rep_names</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-113"><a href="#L-113"><span class="linenos">113</span></a> <span class="k">for</span> <span class="n">entry</span> <span class="ow">in</span> <span class="n">ls</span><span class="p">:</span>
</span><span id="L-114"><a href="#L-114"><span class="linenos">114</span></a> <span class="n">truncated_entry</span> <span class="o">=</span> <span class="n">entry</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="mi">0</span><span class="p">]</span>
</span><span id="L-115"><a href="#L-115"><span class="linenos">115</span></a> <span class="n">idx</span> <span class="o">=</span> <span class="n">truncated_entry</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="s1">&#39;r&#39;</span><span class="p">)</span>
</span><span id="L-116"><a href="#L-116"><span class="linenos">116</span></a> <span class="n">rep_names</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">truncated_entry</span><span class="p">[:</span><span class="n">idx</span><span class="p">]</span> <span class="o">+</span> <span class="s1">&#39;|&#39;</span> <span class="o">+</span> <span class="n">truncated_entry</span><span class="p">[</span><span class="n">idx</span><span class="p">:])</span>
</span><span id="L-117"><a href="#L-117"><span class="linenos">117</span></a> <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;,&#39;</span><span class="p">,</span> <span class="n">nrw</span><span class="p">,</span> <span class="sa">r</span><span class="s1">&#39;&lt;bar</span><span class="si">{psi}</span><span class="s1">\psi&gt; with&#39;</span><span class="p">,</span> <span class="n">nsrc</span><span class="p">,</span> <span class="s1">&#39;sources&#39;</span><span class="p">)</span>
</span><span id="L-118"><a href="#L-118"><span class="linenos">118</span></a> <span class="n">result</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-119"><a href="#L-119"><span class="linenos">119</span></a> <span class="k">for</span> <span class="n">t</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-120"><a href="#L-120"><span class="linenos">120</span></a> <span class="n">result</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Obs</span><span class="p">(</span><span class="n">deltas</span><span class="p">[</span><span class="n">t</span><span class="p">],</span> <span class="n">rep_names</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 class="k">return</span> <span class="n">result</span>
</span><span id="L-92"><a href="#L-92"><span class="linenos"> 92</span></a> <span class="n">nsrc</span><span class="o">.</span><span class="n">append</span><span class="p">(</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-93"><a href="#L-93"><span class="linenos"> 93</span></a>
</span><span id="L-94"><a href="#L-94"><span class="linenos"> 94</span></a> <span class="c1"># body</span>
</span><span id="L-95"><a href="#L-95"><span class="linenos"> 95</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span>
</span><span id="L-96"><a href="#L-96"><span class="linenos"> 96</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-97"><a href="#L-97"><span class="linenos"> 97</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">t</span><span class="p">)</span> <span class="o">&lt;</span> <span class="mi">4</span><span class="p">:</span>
</span><span id="L-98"><a href="#L-98"><span class="linenos"> 98</span></a> <span class="k">break</span>
</span><span id="L-99"><a href="#L-99"><span class="linenos"> 99</span></a> <span class="k">if</span> <span class="n">print_err</span><span class="p">:</span>
</span><span id="L-100"><a href="#L-100"><span class="linenos">100</span></a> <span class="n">config_no</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><span id="L-101"><a href="#L-101"><span class="linenos">101</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">nrw</span><span class="p">):</span>
</span><span id="L-102"><a href="#L-102"><span class="linenos">102</span></a> <span class="n">tmp_nfct</span> <span class="o">=</span> <span class="mf">1.0</span>
</span><span id="L-103"><a href="#L-103"><span class="linenos">103</span></a> <span class="k">for</span> <span class="n">j</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">nfct</span><span class="p">[</span><span class="n">i</span><span class="p">]):</span>
</span><span id="L-104"><a href="#L-104"><span class="linenos">104</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">8</span> <span class="o">*</span> <span class="n">nsrc</span><span class="p">[</span><span class="n">i</span><span class="p">])</span>
</span><span id="L-105"><a href="#L-105"><span class="linenos">105</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">8</span> <span class="o">*</span> <span class="n">nsrc</span><span class="p">[</span><span class="n">i</span><span class="p">])</span>
</span><span id="L-106"><a href="#L-106"><span class="linenos">106</span></a> <span class="n">tmp_rw</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;d&#39;</span> <span class="o">*</span> <span class="n">nsrc</span><span class="p">[</span><span class="n">i</span><span class="p">],</span> <span class="n">t</span><span class="p">)</span>
</span><span id="L-107"><a href="#L-107"><span class="linenos">107</span></a> <span class="n">tmp_nfct</span> <span class="o">*=</span> <span class="n">np</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">asarray</span><span class="p">(</span><span class="n">tmp_rw</span><span class="p">))</span>
</span><span id="L-108"><a href="#L-108"><span class="linenos">108</span></a> <span class="k">if</span> <span class="n">print_err</span><span class="p">:</span>
</span><span id="L-109"><a href="#L-109"><span class="linenos">109</span></a> <span class="nb">print</span><span class="p">(</span><span class="n">config_no</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">np</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">asarray</span><span class="p">(</span><span class="n">tmp_rw</span><span class="p">)),</span> <span class="n">np</span><span class="o">.</span><span class="n">std</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">asarray</span><span class="p">(</span><span class="n">tmp_rw</span><span class="p">)))</span>
</span><span id="L-110"><a href="#L-110"><span class="linenos">110</span></a> <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;Sources:&#39;</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">asarray</span><span class="p">(</span><span class="n">tmp_rw</span><span class="p">))</span>
</span><span id="L-111"><a href="#L-111"><span class="linenos">111</span></a> <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;Partial factor:&#39;</span><span class="p">,</span> <span class="n">tmp_nfct</span><span class="p">)</span>
</span><span id="L-112"><a href="#L-112"><span class="linenos">112</span></a> <span class="n">tmp_array</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">tmp_nfct</span><span class="p">)</span>
</span><span id="L-113"><a href="#L-113"><span class="linenos">113</span></a>
</span><span id="L-114"><a href="#L-114"><span class="linenos">114</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-115"><a href="#L-115"><span class="linenos">115</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</span><span class="p">[</span><span class="n">rep</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-116"><a href="#L-116"><span class="linenos">116</span></a>
</span><span id="L-117"><a href="#L-117"><span class="linenos">117</span></a> <span class="n">rep_names</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-118"><a href="#L-118"><span class="linenos">118</span></a> <span class="k">for</span> <span class="n">entry</span> <span class="ow">in</span> <span class="n">ls</span><span class="p">:</span>
</span><span id="L-119"><a href="#L-119"><span class="linenos">119</span></a> <span class="n">truncated_entry</span> <span class="o">=</span> <span class="n">entry</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="mi">0</span><span class="p">]</span>
</span><span id="L-120"><a href="#L-120"><span class="linenos">120</span></a> <span class="n">idx</span> <span class="o">=</span> <span class="n">truncated_entry</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="s1">&#39;r&#39;</span><span class="p">)</span>
</span><span id="L-121"><a href="#L-121"><span class="linenos">121</span></a> <span class="n">rep_names</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">truncated_entry</span><span class="p">[:</span><span class="n">idx</span><span class="p">]</span> <span class="o">+</span> <span class="s1">&#39;|&#39;</span> <span class="o">+</span> <span class="n">truncated_entry</span><span class="p">[</span><span class="n">idx</span><span class="p">:])</span>
</span><span id="L-122"><a href="#L-122"><span class="linenos">122</span></a> <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;,&#39;</span><span class="p">,</span> <span class="n">nrw</span><span class="p">,</span> <span class="sa">r</span><span class="s1">&#39;&lt;bar</span><span class="si">{psi}</span><span class="s1">\psi&gt; with&#39;</span><span class="p">,</span> <span class="n">nsrc</span><span class="p">,</span> <span class="s1">&#39;sources&#39;</span><span class="p">)</span>
</span><span id="L-123"><a href="#L-123"><span class="linenos">123</span></a> <span class="n">result</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-124"><a href="#L-124"><span class="linenos">124</span></a> <span class="k">for</span> <span class="n">t</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-125"><a href="#L-125"><span class="linenos">125</span></a> <span class="n">result</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Obs</span><span class="p">(</span><span class="n">deltas</span><span class="p">[</span><span class="n">t</span><span class="p">],</span> <span class="n">rep_names</span><span class="p">))</span>
</span><span id="L-126"><a href="#L-126"><span class="linenos">126</span></a>
</span><span id="L-127"><a href="#L-127"><span class="linenos">127</span></a> <span class="k">return</span> <span class="n">result</span>
</span></pre></div>
@ -214,7 +219,7 @@
</div>
<a class="headerlink" href="#read_pbp"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="read_pbp-10"><a href="#read_pbp-10"><span class="linenos"> 10</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="read_pbp-11"><a href="#read_pbp-11"><span class="linenos"> 11</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Read pbp format from given folder structure. Returns a list of length nrw</span>
</span><span id="read_pbp-11"><a href="#read_pbp-11"><span class="linenos"> 11</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-12"><a href="#read_pbp-12"><span class="linenos"> 12</span></a>
</span><span id="read_pbp-13"><a href="#read_pbp-13"><span class="linenos"> 13</span></a><span class="sd"> Parameters</span>
</span><span id="read_pbp-14"><a href="#read_pbp-14"><span class="linenos"> 14</span></a><span class="sd"> ----------</span>
@ -222,115 +227,120 @@
</span><span id="read_pbp-16"><a href="#read_pbp-16"><span class="linenos"> 16</span></a><span class="sd"> list which contains the first config to be read for each replicum</span>
</span><span id="read_pbp-17"><a href="#read_pbp-17"><span class="linenos"> 17</span></a><span class="sd"> r_stop : list</span>
</span><span id="read_pbp-18"><a href="#read_pbp-18"><span class="linenos"> 18</span></a><span class="sd"> list which contains the last config to be read for each replicum</span>
</span><span id="read_pbp-19"><a href="#read_pbp-19"><span class="linenos"> 19</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="read_pbp-20"><a href="#read_pbp-20"><span class="linenos"> 20</span></a>
</span><span id="read_pbp-21"><a href="#read_pbp-21"><span class="linenos"> 21</span></a> <span class="n">ls</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="read_pbp-22"><a href="#read_pbp-22"><span class="linenos"> 22</span></a> <span class="k">for</span> <span class="p">(</span><span class="n">dirpath</span><span class="p">,</span> <span class="n">dirnames</span><span class="p">,</span> <span class="n">filenames</span><span class="p">)</span> <span class="ow">in</span> <span class="n">os</span><span class="o">.</span><span class="n">walk</span><span class="p">(</span><span class="n">path</span><span class="p">):</span>
</span><span id="read_pbp-23"><a href="#read_pbp-23"><span class="linenos"> 23</span></a> <span class="n">ls</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">filenames</span><span class="p">)</span>
</span><span id="read_pbp-24"><a href="#read_pbp-24"><span class="linenos"> 24</span></a> <span class="k">break</span>
</span><span id="read_pbp-19"><a href="#read_pbp-19"><span class="linenos"> 19</span></a>
</span><span id="read_pbp-20"><a href="#read_pbp-20"><span class="linenos"> 20</span></a><span class="sd"> Returns</span>
</span><span id="read_pbp-21"><a href="#read_pbp-21"><span class="linenos"> 21</span></a><span class="sd"> -------</span>
</span><span id="read_pbp-22"><a href="#read_pbp-22"><span class="linenos"> 22</span></a><span class="sd"> result : list[Obs]</span>
</span><span id="read_pbp-23"><a href="#read_pbp-23"><span class="linenos"> 23</span></a><span class="sd"> list of observables read</span>
</span><span id="read_pbp-24"><a href="#read_pbp-24"><span class="linenos"> 24</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="read_pbp-25"><a href="#read_pbp-25"><span class="linenos"> 25</span></a>
</span><span id="read_pbp-26"><a href="#read_pbp-26"><span class="linenos"> 26</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">ls</span><span class="p">:</span>
</span><span id="read_pbp-27"><a href="#read_pbp-27"><span class="linenos"> 27</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;Error, directory not found&#39;</span><span class="p">)</span>
</span><span id="read_pbp-28"><a href="#read_pbp-28"><span class="linenos"> 28</span></a>
</span><span id="read_pbp-29"><a href="#read_pbp-29"><span class="linenos"> 29</span></a> <span class="c1"># Exclude files with different names</span>
</span><span id="read_pbp-30"><a href="#read_pbp-30"><span class="linenos"> 30</span></a> <span class="k">for</span> <span class="n">exc</span> <span class="ow">in</span> <span class="n">ls</span><span class="p">:</span>
</span><span id="read_pbp-31"><a href="#read_pbp-31"><span class="linenos"> 31</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">fnmatch</span><span class="o">.</span><span class="n">fnmatch</span><span class="p">(</span><span class="n">exc</span><span class="p">,</span> <span class="n">prefix</span> <span class="o">+</span> <span class="s1">&#39;*.dat&#39;</span><span class="p">):</span>
</span><span id="read_pbp-32"><a href="#read_pbp-32"><span class="linenos"> 32</span></a> <span class="n">ls</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="nb">set</span><span class="p">(</span><span class="n">ls</span><span class="p">)</span> <span class="o">-</span> <span class="nb">set</span><span class="p">([</span><span class="n">exc</span><span class="p">]))</span>
</span><span id="read_pbp-33"><a href="#read_pbp-33"><span class="linenos"> 33</span></a> <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">1</span><span class="p">:</span>
</span><span id="read_pbp-34"><a href="#read_pbp-34"><span class="linenos"> 34</span></a> <span class="n">ls</span><span class="o">.</span><span class="n">sort</span><span class="p">(</span><span class="n">key</span><span class="o">=</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="nb">int</span><span class="p">(</span><span class="n">re</span><span class="o">.</span><span class="n">findall</span><span class="p">(</span><span class="sa">r</span><span class="s1">&#39;\d+&#39;</span><span class="p">,</span> <span class="n">x</span><span class="p">[</span><span class="nb">len</span><span class="p">(</span><span class="n">prefix</span><span class="p">):])[</span><span class="mi">0</span><span class="p">]))</span>
</span><span id="read_pbp-35"><a href="#read_pbp-35"><span class="linenos"> 35</span></a> <span class="n">replica</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">ls</span><span class="p">)</span>
</span><span id="read_pbp-36"><a href="#read_pbp-36"><span class="linenos"> 36</span></a>
</span><span id="read_pbp-37"><a href="#read_pbp-37"><span class="linenos"> 37</span></a> <span class="k">if</span> <span class="s1">&#39;r_start&#39;</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
</span><span id="read_pbp-38"><a href="#read_pbp-38"><span class="linenos"> 38</span></a> <span class="n">r_start</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;r_start&#39;</span><span class="p">)</span>
</span><span id="read_pbp-39"><a href="#read_pbp-39"><span class="linenos"> 39</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">r_start</span><span class="p">)</span> <span class="o">!=</span> <span class="n">replica</span><span class="p">:</span>
</span><span id="read_pbp-40"><a href="#read_pbp-40"><span class="linenos"> 40</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;r_start does not match number of replicas&#39;</span><span class="p">)</span>
</span><span id="read_pbp-41"><a href="#read_pbp-41"><span class="linenos"> 41</span></a> <span class="c1"># Adjust Configuration numbering to python index</span>
</span><span id="read_pbp-42"><a href="#read_pbp-42"><span class="linenos"> 42</span></a> <span class="n">r_start</span> <span class="o">=</span> <span class="p">[</span><span class="n">o</span> <span class="o">-</span> <span class="mi">1</span> <span class="k">if</span> <span class="n">o</span> <span class="k">else</span> <span class="kc">None</span> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">r_start</span><span class="p">]</span>
</span><span id="read_pbp-43"><a href="#read_pbp-43"><span class="linenos"> 43</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="read_pbp-44"><a href="#read_pbp-44"><span class="linenos"> 44</span></a> <span class="n">r_start</span> <span class="o">=</span> <span class="p">[</span><span class="kc">None</span><span class="p">]</span> <span class="o">*</span> <span class="n">replica</span>
</span><span id="read_pbp-45"><a href="#read_pbp-45"><span class="linenos"> 45</span></a>
</span><span id="read_pbp-46"><a href="#read_pbp-46"><span class="linenos"> 46</span></a> <span class="k">if</span> <span class="s1">&#39;r_stop&#39;</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
</span><span id="read_pbp-47"><a href="#read_pbp-47"><span class="linenos"> 47</span></a> <span class="n">r_stop</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;r_stop&#39;</span><span class="p">)</span>
</span><span id="read_pbp-48"><a href="#read_pbp-48"><span class="linenos"> 48</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">r_stop</span><span class="p">)</span> <span class="o">!=</span> <span class="n">replica</span><span class="p">:</span>
</span><span id="read_pbp-49"><a href="#read_pbp-49"><span class="linenos"> 49</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;r_stop does not match number of replicas&#39;</span><span class="p">)</span>
</span><span id="read_pbp-50"><a href="#read_pbp-50"><span class="linenos"> 50</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="read_pbp-51"><a href="#read_pbp-51"><span class="linenos"> 51</span></a> <span class="n">r_stop</span> <span class="o">=</span> <span class="p">[</span><span class="kc">None</span><span class="p">]</span> <span class="o">*</span> <span class="n">replica</span>
</span><span id="read_pbp-52"><a href="#read_pbp-52"><span class="linenos"> 52</span></a>
</span><span id="read_pbp-53"><a href="#read_pbp-53"><span class="linenos"> 53</span></a> <span class="nb">print</span><span class="p">(</span><span class="sa">r</span><span class="s1">&#39;Read &lt;bar</span><span class="si">{psi}</span><span class="s1">\psi&gt; from&#39;</span><span class="p">,</span> <span class="n">prefix</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">],</span> <span class="s1">&#39;,&#39;</span><span class="p">,</span> <span class="n">replica</span><span class="p">,</span> <span class="s1">&#39;replica&#39;</span><span class="p">,</span> <span class="n">end</span><span class="o">=</span><span class="s1">&#39;&#39;</span><span class="p">)</span>
</span><span id="read_pbp-54"><a href="#read_pbp-54"><span class="linenos"> 54</span></a>
</span><span id="read_pbp-55"><a href="#read_pbp-55"><span class="linenos"> 55</span></a> <span class="n">print_err</span> <span class="o">=</span> <span class="mi">0</span>
</span><span id="read_pbp-56"><a href="#read_pbp-56"><span class="linenos"> 56</span></a> <span class="k">if</span> <span class="s1">&#39;print_err&#39;</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
</span><span id="read_pbp-57"><a href="#read_pbp-57"><span class="linenos"> 57</span></a> <span class="n">print_err</span> <span class="o">=</span> <span class="mi">1</span>
</span><span id="read_pbp-58"><a href="#read_pbp-58"><span class="linenos"> 58</span></a> <span class="nb">print</span><span class="p">()</span>
</span><span id="read_pbp-26"><a href="#read_pbp-26"><span class="linenos"> 26</span></a> <span class="n">ls</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="read_pbp-27"><a href="#read_pbp-27"><span class="linenos"> 27</span></a> <span class="k">for</span> <span class="p">(</span><span class="n">dirpath</span><span class="p">,</span> <span class="n">dirnames</span><span class="p">,</span> <span class="n">filenames</span><span class="p">)</span> <span class="ow">in</span> <span class="n">os</span><span class="o">.</span><span class="n">walk</span><span class="p">(</span><span class="n">path</span><span class="p">):</span>
</span><span id="read_pbp-28"><a href="#read_pbp-28"><span class="linenos"> 28</span></a> <span class="n">ls</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">filenames</span><span class="p">)</span>
</span><span id="read_pbp-29"><a href="#read_pbp-29"><span class="linenos"> 29</span></a> <span class="k">break</span>
</span><span id="read_pbp-30"><a href="#read_pbp-30"><span class="linenos"> 30</span></a>
</span><span id="read_pbp-31"><a href="#read_pbp-31"><span class="linenos"> 31</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">ls</span><span class="p">:</span>
</span><span id="read_pbp-32"><a href="#read_pbp-32"><span class="linenos"> 32</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;Error, directory not found&#39;</span><span class="p">)</span>
</span><span id="read_pbp-33"><a href="#read_pbp-33"><span class="linenos"> 33</span></a>
</span><span id="read_pbp-34"><a href="#read_pbp-34"><span class="linenos"> 34</span></a> <span class="c1"># Exclude files with different names</span>
</span><span id="read_pbp-35"><a href="#read_pbp-35"><span class="linenos"> 35</span></a> <span class="k">for</span> <span class="n">exc</span> <span class="ow">in</span> <span class="n">ls</span><span class="p">:</span>
</span><span id="read_pbp-36"><a href="#read_pbp-36"><span class="linenos"> 36</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">fnmatch</span><span class="o">.</span><span class="n">fnmatch</span><span class="p">(</span><span class="n">exc</span><span class="p">,</span> <span class="n">prefix</span> <span class="o">+</span> <span class="s1">&#39;*.dat&#39;</span><span class="p">):</span>
</span><span id="read_pbp-37"><a href="#read_pbp-37"><span class="linenos"> 37</span></a> <span class="n">ls</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="nb">set</span><span class="p">(</span><span class="n">ls</span><span class="p">)</span> <span class="o">-</span> <span class="nb">set</span><span class="p">([</span><span class="n">exc</span><span class="p">]))</span>
</span><span id="read_pbp-38"><a href="#read_pbp-38"><span class="linenos"> 38</span></a> <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">1</span><span class="p">:</span>
</span><span id="read_pbp-39"><a href="#read_pbp-39"><span class="linenos"> 39</span></a> <span class="n">ls</span><span class="o">.</span><span class="n">sort</span><span class="p">(</span><span class="n">key</span><span class="o">=</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="nb">int</span><span class="p">(</span><span class="n">re</span><span class="o">.</span><span class="n">findall</span><span class="p">(</span><span class="sa">r</span><span class="s1">&#39;\d+&#39;</span><span class="p">,</span> <span class="n">x</span><span class="p">[</span><span class="nb">len</span><span class="p">(</span><span class="n">prefix</span><span class="p">):])[</span><span class="mi">0</span><span class="p">]))</span>
</span><span id="read_pbp-40"><a href="#read_pbp-40"><span class="linenos"> 40</span></a> <span class="n">replica</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">ls</span><span class="p">)</span>
</span><span id="read_pbp-41"><a href="#read_pbp-41"><span class="linenos"> 41</span></a>
</span><span id="read_pbp-42"><a href="#read_pbp-42"><span class="linenos"> 42</span></a> <span class="k">if</span> <span class="s1">&#39;r_start&#39;</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
</span><span id="read_pbp-43"><a href="#read_pbp-43"><span class="linenos"> 43</span></a> <span class="n">r_start</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;r_start&#39;</span><span class="p">)</span>
</span><span id="read_pbp-44"><a href="#read_pbp-44"><span class="linenos"> 44</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">r_start</span><span class="p">)</span> <span class="o">!=</span> <span class="n">replica</span><span class="p">:</span>
</span><span id="read_pbp-45"><a href="#read_pbp-45"><span class="linenos"> 45</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;r_start does not match number of replicas&#39;</span><span class="p">)</span>
</span><span id="read_pbp-46"><a href="#read_pbp-46"><span class="linenos"> 46</span></a> <span class="c1"># Adjust Configuration numbering to python index</span>
</span><span id="read_pbp-47"><a href="#read_pbp-47"><span class="linenos"> 47</span></a> <span class="n">r_start</span> <span class="o">=</span> <span class="p">[</span><span class="n">o</span> <span class="o">-</span> <span class="mi">1</span> <span class="k">if</span> <span class="n">o</span> <span class="k">else</span> <span class="kc">None</span> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">r_start</span><span class="p">]</span>
</span><span id="read_pbp-48"><a href="#read_pbp-48"><span class="linenos"> 48</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="read_pbp-49"><a href="#read_pbp-49"><span class="linenos"> 49</span></a> <span class="n">r_start</span> <span class="o">=</span> <span class="p">[</span><span class="kc">None</span><span class="p">]</span> <span class="o">*</span> <span class="n">replica</span>
</span><span id="read_pbp-50"><a href="#read_pbp-50"><span class="linenos"> 50</span></a>
</span><span id="read_pbp-51"><a href="#read_pbp-51"><span class="linenos"> 51</span></a> <span class="k">if</span> <span class="s1">&#39;r_stop&#39;</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
</span><span id="read_pbp-52"><a href="#read_pbp-52"><span class="linenos"> 52</span></a> <span class="n">r_stop</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;r_stop&#39;</span><span class="p">)</span>
</span><span id="read_pbp-53"><a href="#read_pbp-53"><span class="linenos"> 53</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">r_stop</span><span class="p">)</span> <span class="o">!=</span> <span class="n">replica</span><span class="p">:</span>
</span><span id="read_pbp-54"><a href="#read_pbp-54"><span class="linenos"> 54</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;r_stop does not match number of replicas&#39;</span><span class="p">)</span>
</span><span id="read_pbp-55"><a href="#read_pbp-55"><span class="linenos"> 55</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="read_pbp-56"><a href="#read_pbp-56"><span class="linenos"> 56</span></a> <span class="n">r_stop</span> <span class="o">=</span> <span class="p">[</span><span class="kc">None</span><span class="p">]</span> <span class="o">*</span> <span class="n">replica</span>
</span><span id="read_pbp-57"><a href="#read_pbp-57"><span class="linenos"> 57</span></a>
</span><span id="read_pbp-58"><a href="#read_pbp-58"><span class="linenos"> 58</span></a> <span class="nb">print</span><span class="p">(</span><span class="sa">r</span><span class="s1">&#39;Read &lt;bar</span><span class="si">{psi}</span><span class="s1">\psi&gt; from&#39;</span><span class="p">,</span> <span class="n">prefix</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">],</span> <span class="s1">&#39;,&#39;</span><span class="p">,</span> <span class="n">replica</span><span class="p">,</span> <span class="s1">&#39;replica&#39;</span><span class="p">,</span> <span class="n">end</span><span class="o">=</span><span class="s1">&#39;&#39;</span><span class="p">)</span>
</span><span id="read_pbp-59"><a href="#read_pbp-59"><span class="linenos"> 59</span></a>
</span><span id="read_pbp-60"><a href="#read_pbp-60"><span class="linenos"> 60</span></a> <span class="n">deltas</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="read_pbp-61"><a href="#read_pbp-61"><span class="linenos"> 61</span></a>
</span><span id="read_pbp-62"><a href="#read_pbp-62"><span class="linenos"> 62</span></a> <span class="k">for</span> <span class="n">rep</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">replica</span><span class="p">):</span>
</span><span id="read_pbp-63"><a href="#read_pbp-63"><span class="linenos"> 63</span></a> <span class="n">tmp_array</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="read_pbp-64"><a href="#read_pbp-64"><span class="linenos"> 64</span></a> <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">path</span> <span class="o">+</span> <span class="s1">&#39;/&#39;</span> <span class="o">+</span> <span class="n">ls</span><span class="p">[</span><span class="n">rep</span><span class="p">],</span> <span class="s1">&#39;rb&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="n">fp</span><span class="p">:</span>
</span><span id="read_pbp-65"><a href="#read_pbp-65"><span class="linenos"> 65</span></a>
</span><span id="read_pbp-66"><a href="#read_pbp-66"><span class="linenos"> 66</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 class="c1"># number of reweighting factors</span>
</span><span id="read_pbp-67"><a href="#read_pbp-67"><span class="linenos"> 67</span></a> <span class="k">if</span> <span class="n">rep</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
</span><span id="read_pbp-68"><a href="#read_pbp-68"><span class="linenos"> 68</span></a> <span class="n">nrw</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="read_pbp-69"><a href="#read_pbp-69"><span class="linenos"> 69</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_pbp-70"><a href="#read_pbp-70"><span class="linenos"> 70</span></a> <span class="n">deltas</span><span class="o">.</span><span class="n">append</span><span class="p">([])</span>
</span><span id="read_pbp-71"><a href="#read_pbp-71"><span class="linenos"> 71</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="read_pbp-72"><a href="#read_pbp-72"><span class="linenos"> 72</span></a> <span class="k">if</span> <span class="n">nrw</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="read_pbp-73"><a href="#read_pbp-73"><span class="linenos"> 73</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;Error: different number of factors for replicum&#39;</span><span class="p">,</span> <span class="n">rep</span><span class="p">)</span>
</span><span id="read_pbp-74"><a href="#read_pbp-74"><span class="linenos"> 74</span></a>
</span><span id="read_pbp-75"><a href="#read_pbp-75"><span class="linenos"> 75</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_pbp-76"><a href="#read_pbp-76"><span class="linenos"> 76</span></a> <span class="n">tmp_array</span><span class="o">.</span><span class="n">append</span><span class="p">([])</span>
</span><span id="read_pbp-77"><a href="#read_pbp-77"><span class="linenos"> 77</span></a>
</span><span id="read_pbp-78"><a href="#read_pbp-78"><span class="linenos"> 78</span></a> <span class="c1"># This block is necessary for openQCD1.6 ms1 files</span>
</span><span id="read_pbp-79"><a href="#read_pbp-79"><span class="linenos"> 79</span></a> <span class="n">nfct</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="read_pbp-80"><a href="#read_pbp-80"><span class="linenos"> 80</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">nrw</span><span class="p">):</span>
</span><span id="read_pbp-81"><a href="#read_pbp-81"><span class="linenos"> 81</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="read_pbp-82"><a href="#read_pbp-82"><span class="linenos"> 82</span></a> <span class="n">nfct</span><span class="o">.</span><span class="n">append</span><span class="p">(</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="read_pbp-83"><a href="#read_pbp-83"><span class="linenos"> 83</span></a> <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;nfct: &#39;</span><span class="p">,</span> <span class="n">nfct</span><span class="p">)</span> <span class="c1"># Hasenbusch factor, 1 for rat reweighting</span>
</span><span id="read_pbp-84"><a href="#read_pbp-84"><span class="linenos"> 84</span></a>
</span><span id="read_pbp-85"><a href="#read_pbp-85"><span class="linenos"> 85</span></a> <span class="n">nsrc</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="read_pbp-86"><a href="#read_pbp-86"><span class="linenos"> 86</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">nrw</span><span class="p">):</span>
</span><span id="read_pbp-87"><a href="#read_pbp-87"><span class="linenos"> 87</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="read_pbp-88"><a href="#read_pbp-88"><span class="linenos"> 88</span></a> <span class="n">nsrc</span><span class="o">.</span><span class="n">append</span><span class="p">(</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="read_pbp-60"><a href="#read_pbp-60"><span class="linenos"> 60</span></a> <span class="n">print_err</span> <span class="o">=</span> <span class="mi">0</span>
</span><span id="read_pbp-61"><a href="#read_pbp-61"><span class="linenos"> 61</span></a> <span class="k">if</span> <span class="s1">&#39;print_err&#39;</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
</span><span id="read_pbp-62"><a href="#read_pbp-62"><span class="linenos"> 62</span></a> <span class="n">print_err</span> <span class="o">=</span> <span class="mi">1</span>
</span><span id="read_pbp-63"><a href="#read_pbp-63"><span class="linenos"> 63</span></a> <span class="nb">print</span><span class="p">()</span>
</span><span id="read_pbp-64"><a href="#read_pbp-64"><span class="linenos"> 64</span></a>
</span><span id="read_pbp-65"><a href="#read_pbp-65"><span class="linenos"> 65</span></a> <span class="n">deltas</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="read_pbp-66"><a href="#read_pbp-66"><span class="linenos"> 66</span></a>
</span><span id="read_pbp-67"><a href="#read_pbp-67"><span class="linenos"> 67</span></a> <span class="k">for</span> <span class="n">rep</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">replica</span><span class="p">):</span>
</span><span id="read_pbp-68"><a href="#read_pbp-68"><span class="linenos"> 68</span></a> <span class="n">tmp_array</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="read_pbp-69"><a href="#read_pbp-69"><span class="linenos"> 69</span></a> <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">path</span> <span class="o">+</span> <span class="s1">&#39;/&#39;</span> <span class="o">+</span> <span class="n">ls</span><span class="p">[</span><span class="n">rep</span><span class="p">],</span> <span class="s1">&#39;rb&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="n">fp</span><span class="p">:</span>
</span><span id="read_pbp-70"><a href="#read_pbp-70"><span class="linenos"> 70</span></a>
</span><span id="read_pbp-71"><a href="#read_pbp-71"><span class="linenos"> 71</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 class="c1"># number of reweighting factors</span>
</span><span id="read_pbp-72"><a href="#read_pbp-72"><span class="linenos"> 72</span></a> <span class="k">if</span> <span class="n">rep</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
</span><span id="read_pbp-73"><a href="#read_pbp-73"><span class="linenos"> 73</span></a> <span class="n">nrw</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="read_pbp-74"><a href="#read_pbp-74"><span class="linenos"> 74</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_pbp-75"><a href="#read_pbp-75"><span class="linenos"> 75</span></a> <span class="n">deltas</span><span class="o">.</span><span class="n">append</span><span class="p">([])</span>
</span><span id="read_pbp-76"><a href="#read_pbp-76"><span class="linenos"> 76</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="read_pbp-77"><a href="#read_pbp-77"><span class="linenos"> 77</span></a> <span class="k">if</span> <span class="n">nrw</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="read_pbp-78"><a href="#read_pbp-78"><span class="linenos"> 78</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;Error: different number of factors for replicum&#39;</span><span class="p">,</span> <span class="n">rep</span><span class="p">)</span>
</span><span id="read_pbp-79"><a href="#read_pbp-79"><span class="linenos"> 79</span></a>
</span><span id="read_pbp-80"><a href="#read_pbp-80"><span class="linenos"> 80</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_pbp-81"><a href="#read_pbp-81"><span class="linenos"> 81</span></a> <span class="n">tmp_array</span><span class="o">.</span><span class="n">append</span><span class="p">([])</span>
</span><span id="read_pbp-82"><a href="#read_pbp-82"><span class="linenos"> 82</span></a>
</span><span id="read_pbp-83"><a href="#read_pbp-83"><span class="linenos"> 83</span></a> <span class="c1"># This block is necessary for openQCD1.6 ms1 files</span>
</span><span id="read_pbp-84"><a href="#read_pbp-84"><span class="linenos"> 84</span></a> <span class="n">nfct</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="read_pbp-85"><a href="#read_pbp-85"><span class="linenos"> 85</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">nrw</span><span class="p">):</span>
</span><span id="read_pbp-86"><a href="#read_pbp-86"><span class="linenos"> 86</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="read_pbp-87"><a href="#read_pbp-87"><span class="linenos"> 87</span></a> <span class="n">nfct</span><span class="o">.</span><span class="n">append</span><span class="p">(</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="read_pbp-88"><a href="#read_pbp-88"><span class="linenos"> 88</span></a> <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;nfct: &#39;</span><span class="p">,</span> <span class="n">nfct</span><span class="p">)</span> <span class="c1"># Hasenbusch factor, 1 for rat reweighting</span>
</span><span id="read_pbp-89"><a href="#read_pbp-89"><span class="linenos"> 89</span></a>
</span><span id="read_pbp-90"><a href="#read_pbp-90"><span class="linenos"> 90</span></a> <span class="c1"># body</span>
</span><span id="read_pbp-91"><a href="#read_pbp-91"><span class="linenos"> 91</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span>
</span><span id="read_pbp-90"><a href="#read_pbp-90"><span class="linenos"> 90</span></a> <span class="n">nsrc</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="read_pbp-91"><a href="#read_pbp-91"><span class="linenos"> 91</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">nrw</span><span class="p">):</span>
</span><span id="read_pbp-92"><a href="#read_pbp-92"><span class="linenos"> 92</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="read_pbp-93"><a href="#read_pbp-93"><span class="linenos"> 93</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">t</span><span class="p">)</span> <span class="o">&lt;</span> <span class="mi">4</span><span class="p">:</span>
</span><span id="read_pbp-94"><a href="#read_pbp-94"><span class="linenos"> 94</span></a> <span class="k">break</span>
</span><span id="read_pbp-95"><a href="#read_pbp-95"><span class="linenos"> 95</span></a> <span class="k">if</span> <span class="n">print_err</span><span class="p">:</span>
</span><span id="read_pbp-96"><a href="#read_pbp-96"><span class="linenos"> 96</span></a> <span class="n">config_no</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><span id="read_pbp-97"><a href="#read_pbp-97"><span class="linenos"> 97</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">nrw</span><span class="p">):</span>
</span><span id="read_pbp-98"><a href="#read_pbp-98"><span class="linenos"> 98</span></a> <span class="n">tmp_nfct</span> <span class="o">=</span> <span class="mf">1.0</span>
</span><span id="read_pbp-99"><a href="#read_pbp-99"><span class="linenos"> 99</span></a> <span class="k">for</span> <span class="n">j</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">nfct</span><span class="p">[</span><span class="n">i</span><span class="p">]):</span>
</span><span id="read_pbp-100"><a href="#read_pbp-100"><span class="linenos">100</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">8</span> <span class="o">*</span> <span class="n">nsrc</span><span class="p">[</span><span class="n">i</span><span class="p">])</span>
</span><span id="read_pbp-101"><a href="#read_pbp-101"><span class="linenos">101</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">8</span> <span class="o">*</span> <span class="n">nsrc</span><span class="p">[</span><span class="n">i</span><span class="p">])</span>
</span><span id="read_pbp-102"><a href="#read_pbp-102"><span class="linenos">102</span></a> <span class="n">tmp_rw</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;d&#39;</span> <span class="o">*</span> <span class="n">nsrc</span><span class="p">[</span><span class="n">i</span><span class="p">],</span> <span class="n">t</span><span class="p">)</span>
</span><span id="read_pbp-103"><a href="#read_pbp-103"><span class="linenos">103</span></a> <span class="n">tmp_nfct</span> <span class="o">*=</span> <span class="n">np</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">asarray</span><span class="p">(</span><span class="n">tmp_rw</span><span class="p">))</span>
</span><span id="read_pbp-104"><a href="#read_pbp-104"><span class="linenos">104</span></a> <span class="k">if</span> <span class="n">print_err</span><span class="p">:</span>
</span><span id="read_pbp-105"><a href="#read_pbp-105"><span class="linenos">105</span></a> <span class="nb">print</span><span class="p">(</span><span class="n">config_no</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">np</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">asarray</span><span class="p">(</span><span class="n">tmp_rw</span><span class="p">)),</span> <span class="n">np</span><span class="o">.</span><span class="n">std</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">asarray</span><span class="p">(</span><span class="n">tmp_rw</span><span class="p">)))</span>
</span><span id="read_pbp-106"><a href="#read_pbp-106"><span class="linenos">106</span></a> <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;Sources:&#39;</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">asarray</span><span class="p">(</span><span class="n">tmp_rw</span><span class="p">))</span>
</span><span id="read_pbp-107"><a href="#read_pbp-107"><span class="linenos">107</span></a> <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;Partial factor:&#39;</span><span class="p">,</span> <span class="n">tmp_nfct</span><span class="p">)</span>
</span><span id="read_pbp-108"><a href="#read_pbp-108"><span class="linenos">108</span></a> <span class="n">tmp_array</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">tmp_nfct</span><span class="p">)</span>
</span><span id="read_pbp-109"><a href="#read_pbp-109"><span class="linenos">109</span></a>
</span><span id="read_pbp-110"><a href="#read_pbp-110"><span class="linenos">110</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_pbp-111"><a href="#read_pbp-111"><span class="linenos">111</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</span><span class="p">[</span><span class="n">rep</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_pbp-112"><a href="#read_pbp-112"><span class="linenos">112</span></a>
</span><span id="read_pbp-113"><a href="#read_pbp-113"><span class="linenos">113</span></a> <span class="n">rep_names</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="read_pbp-114"><a href="#read_pbp-114"><span class="linenos">114</span></a> <span class="k">for</span> <span class="n">entry</span> <span class="ow">in</span> <span class="n">ls</span><span class="p">:</span>
</span><span id="read_pbp-115"><a href="#read_pbp-115"><span class="linenos">115</span></a> <span class="n">truncated_entry</span> <span class="o">=</span> <span class="n">entry</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="mi">0</span><span class="p">]</span>
</span><span id="read_pbp-116"><a href="#read_pbp-116"><span class="linenos">116</span></a> <span class="n">idx</span> <span class="o">=</span> <span class="n">truncated_entry</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="s1">&#39;r&#39;</span><span class="p">)</span>
</span><span id="read_pbp-117"><a href="#read_pbp-117"><span class="linenos">117</span></a> <span class="n">rep_names</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">truncated_entry</span><span class="p">[:</span><span class="n">idx</span><span class="p">]</span> <span class="o">+</span> <span class="s1">&#39;|&#39;</span> <span class="o">+</span> <span class="n">truncated_entry</span><span class="p">[</span><span class="n">idx</span><span class="p">:])</span>
</span><span id="read_pbp-118"><a href="#read_pbp-118"><span class="linenos">118</span></a> <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;,&#39;</span><span class="p">,</span> <span class="n">nrw</span><span class="p">,</span> <span class="sa">r</span><span class="s1">&#39;&lt;bar</span><span class="si">{psi}</span><span class="s1">\psi&gt; with&#39;</span><span class="p">,</span> <span class="n">nsrc</span><span class="p">,</span> <span class="s1">&#39;sources&#39;</span><span class="p">)</span>
</span><span id="read_pbp-119"><a href="#read_pbp-119"><span class="linenos">119</span></a> <span class="n">result</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="read_pbp-120"><a href="#read_pbp-120"><span class="linenos">120</span></a> <span class="k">for</span> <span class="n">t</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_pbp-121"><a href="#read_pbp-121"><span class="linenos">121</span></a> <span class="n">result</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Obs</span><span class="p">(</span><span class="n">deltas</span><span class="p">[</span><span class="n">t</span><span class="p">],</span> <span class="n">rep_names</span><span class="p">))</span>
</span><span id="read_pbp-122"><a href="#read_pbp-122"><span class="linenos">122</span></a>
</span><span id="read_pbp-123"><a href="#read_pbp-123"><span class="linenos">123</span></a> <span class="k">return</span> <span class="n">result</span>
</span><span id="read_pbp-93"><a href="#read_pbp-93"><span class="linenos"> 93</span></a> <span class="n">nsrc</span><span class="o">.</span><span class="n">append</span><span class="p">(</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="read_pbp-94"><a href="#read_pbp-94"><span class="linenos"> 94</span></a>
</span><span id="read_pbp-95"><a href="#read_pbp-95"><span class="linenos"> 95</span></a> <span class="c1"># body</span>
</span><span id="read_pbp-96"><a href="#read_pbp-96"><span class="linenos"> 96</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span>
</span><span id="read_pbp-97"><a href="#read_pbp-97"><span class="linenos"> 97</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="read_pbp-98"><a href="#read_pbp-98"><span class="linenos"> 98</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">t</span><span class="p">)</span> <span class="o">&lt;</span> <span class="mi">4</span><span class="p">:</span>
</span><span id="read_pbp-99"><a href="#read_pbp-99"><span class="linenos"> 99</span></a> <span class="k">break</span>
</span><span id="read_pbp-100"><a href="#read_pbp-100"><span class="linenos">100</span></a> <span class="k">if</span> <span class="n">print_err</span><span class="p">:</span>
</span><span id="read_pbp-101"><a href="#read_pbp-101"><span class="linenos">101</span></a> <span class="n">config_no</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><span id="read_pbp-102"><a href="#read_pbp-102"><span class="linenos">102</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">nrw</span><span class="p">):</span>
</span><span id="read_pbp-103"><a href="#read_pbp-103"><span class="linenos">103</span></a> <span class="n">tmp_nfct</span> <span class="o">=</span> <span class="mf">1.0</span>
</span><span id="read_pbp-104"><a href="#read_pbp-104"><span class="linenos">104</span></a> <span class="k">for</span> <span class="n">j</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">nfct</span><span class="p">[</span><span class="n">i</span><span class="p">]):</span>
</span><span id="read_pbp-105"><a href="#read_pbp-105"><span class="linenos">105</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">8</span> <span class="o">*</span> <span class="n">nsrc</span><span class="p">[</span><span class="n">i</span><span class="p">])</span>
</span><span id="read_pbp-106"><a href="#read_pbp-106"><span class="linenos">106</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">8</span> <span class="o">*</span> <span class="n">nsrc</span><span class="p">[</span><span class="n">i</span><span class="p">])</span>
</span><span id="read_pbp-107"><a href="#read_pbp-107"><span class="linenos">107</span></a> <span class="n">tmp_rw</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;d&#39;</span> <span class="o">*</span> <span class="n">nsrc</span><span class="p">[</span><span class="n">i</span><span class="p">],</span> <span class="n">t</span><span class="p">)</span>
</span><span id="read_pbp-108"><a href="#read_pbp-108"><span class="linenos">108</span></a> <span class="n">tmp_nfct</span> <span class="o">*=</span> <span class="n">np</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">asarray</span><span class="p">(</span><span class="n">tmp_rw</span><span class="p">))</span>
</span><span id="read_pbp-109"><a href="#read_pbp-109"><span class="linenos">109</span></a> <span class="k">if</span> <span class="n">print_err</span><span class="p">:</span>
</span><span id="read_pbp-110"><a href="#read_pbp-110"><span class="linenos">110</span></a> <span class="nb">print</span><span class="p">(</span><span class="n">config_no</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">np</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">asarray</span><span class="p">(</span><span class="n">tmp_rw</span><span class="p">)),</span> <span class="n">np</span><span class="o">.</span><span class="n">std</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">asarray</span><span class="p">(</span><span class="n">tmp_rw</span><span class="p">)))</span>
</span><span id="read_pbp-111"><a href="#read_pbp-111"><span class="linenos">111</span></a> <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;Sources:&#39;</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">asarray</span><span class="p">(</span><span class="n">tmp_rw</span><span class="p">))</span>
</span><span id="read_pbp-112"><a href="#read_pbp-112"><span class="linenos">112</span></a> <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;Partial factor:&#39;</span><span class="p">,</span> <span class="n">tmp_nfct</span><span class="p">)</span>
</span><span id="read_pbp-113"><a href="#read_pbp-113"><span class="linenos">113</span></a> <span class="n">tmp_array</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">tmp_nfct</span><span class="p">)</span>
</span><span id="read_pbp-114"><a href="#read_pbp-114"><span class="linenos">114</span></a>
</span><span id="read_pbp-115"><a href="#read_pbp-115"><span class="linenos">115</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_pbp-116"><a href="#read_pbp-116"><span class="linenos">116</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</span><span class="p">[</span><span class="n">rep</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_pbp-117"><a href="#read_pbp-117"><span class="linenos">117</span></a>
</span><span id="read_pbp-118"><a href="#read_pbp-118"><span class="linenos">118</span></a> <span class="n">rep_names</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="read_pbp-119"><a href="#read_pbp-119"><span class="linenos">119</span></a> <span class="k">for</span> <span class="n">entry</span> <span class="ow">in</span> <span class="n">ls</span><span class="p">:</span>
</span><span id="read_pbp-120"><a href="#read_pbp-120"><span class="linenos">120</span></a> <span class="n">truncated_entry</span> <span class="o">=</span> <span class="n">entry</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="mi">0</span><span class="p">]</span>
</span><span id="read_pbp-121"><a href="#read_pbp-121"><span class="linenos">121</span></a> <span class="n">idx</span> <span class="o">=</span> <span class="n">truncated_entry</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="s1">&#39;r&#39;</span><span class="p">)</span>
</span><span id="read_pbp-122"><a href="#read_pbp-122"><span class="linenos">122</span></a> <span class="n">rep_names</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">truncated_entry</span><span class="p">[:</span><span class="n">idx</span><span class="p">]</span> <span class="o">+</span> <span class="s1">&#39;|&#39;</span> <span class="o">+</span> <span class="n">truncated_entry</span><span class="p">[</span><span class="n">idx</span><span class="p">:])</span>
</span><span id="read_pbp-123"><a href="#read_pbp-123"><span class="linenos">123</span></a> <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;,&#39;</span><span class="p">,</span> <span class="n">nrw</span><span class="p">,</span> <span class="sa">r</span><span class="s1">&#39;&lt;bar</span><span class="si">{psi}</span><span class="s1">\psi&gt; with&#39;</span><span class="p">,</span> <span class="n">nsrc</span><span class="p">,</span> <span class="s1">&#39;sources&#39;</span><span class="p">)</span>
</span><span id="read_pbp-124"><a href="#read_pbp-124"><span class="linenos">124</span></a> <span class="n">result</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="read_pbp-125"><a href="#read_pbp-125"><span class="linenos">125</span></a> <span class="k">for</span> <span class="n">t</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_pbp-126"><a href="#read_pbp-126"><span class="linenos">126</span></a> <span class="n">result</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Obs</span><span class="p">(</span><span class="n">deltas</span><span class="p">[</span><span class="n">t</span><span class="p">],</span> <span class="n">rep_names</span><span class="p">))</span>
</span><span id="read_pbp-127"><a href="#read_pbp-127"><span class="linenos">127</span></a>
</span><span id="read_pbp-128"><a href="#read_pbp-128"><span class="linenos">128</span></a> <span class="k">return</span> <span class="n">result</span>
</span></pre></div>
<div class="docstring"><p>Read pbp format from given folder structure. Returns a list of length nrw</p>
<div class="docstring"><p>Read pbp format from given folder structure.</p>
<h6 id="parameters">Parameters</h6>
@ -340,6 +350,13 @@ list which contains the first config to be read for each replicum</li>
<li><strong>r_stop</strong> (list):
list which contains the last config to be read for each replicum</li>
</ul>
<h6 id="returns">Returns</h6>
<ul>
<li><strong>result</strong> (list[Obs]):
list of observables read</li>
</ul>
</div>

File diff suppressed because it is too large Load diff

View file

@ -109,133 +109,151 @@
</span><span id="L-22"><a href="#L-22"><span class="linenos"> 22</span></a><span class="sd"> How to behave if table already exists. Options &#39;fail&#39;, &#39;replace&#39;, &#39;append&#39;.</span>
</span><span id="L-23"><a href="#L-23"><span class="linenos"> 23</span></a><span class="sd"> gz : bool</span>
</span><span id="L-24"><a href="#L-24"><span class="linenos"> 24</span></a><span class="sd"> If True the json strings are gzipped.</span>
</span><span id="L-25"><a href="#L-25"><span class="linenos"> 25</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-26"><a href="#L-26"><span class="linenos"> 26</span></a> <span class="n">se_df</span> <span class="o">=</span> <span class="n">_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="n">gz</span><span class="p">)</span>
</span><span id="L-27"><a href="#L-27"><span class="linenos"> 27</span></a> <span class="n">con</span> <span class="o">=</span> <span class="n">sqlite3</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="n">db</span><span class="p">)</span>
</span><span id="L-28"><a href="#L-28"><span class="linenos"> 28</span></a> <span class="n">se_df</span><span class="o">.</span><span class="n">to_sql</span><span class="p">(</span><span class="n">table_name</span><span class="p">,</span> <span class="n">con</span><span class="p">,</span> <span class="n">if_exists</span><span class="o">=</span><span class="n">if_exists</span><span class="p">,</span> <span class="n">index</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-29"><a href="#L-29"><span class="linenos"> 29</span></a> <span class="n">con</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
</span><span id="L-30"><a href="#L-30"><span class="linenos"> 30</span></a>
</span><span id="L-31"><a href="#L-31"><span class="linenos"> 31</span></a>
</span><span id="L-32"><a href="#L-32"><span class="linenos"> 32</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-33"><a href="#L-33"><span class="linenos"> 33</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-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="sd"> Returns</span>
</span><span id="L-27"><a href="#L-27"><span class="linenos"> 27</span></a><span class="sd"> -------</span>
</span><span id="L-28"><a href="#L-28"><span class="linenos"> 28</span></a><span class="sd"> None</span>
</span><span id="L-29"><a href="#L-29"><span class="linenos"> 29</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-30"><a href="#L-30"><span class="linenos"> 30</span></a> <span class="n">se_df</span> <span class="o">=</span> <span class="n">_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="n">gz</span><span class="p">)</span>
</span><span id="L-31"><a href="#L-31"><span class="linenos"> 31</span></a> <span class="n">con</span> <span class="o">=</span> <span class="n">sqlite3</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="n">db</span><span class="p">)</span>
</span><span id="L-32"><a href="#L-32"><span class="linenos"> 32</span></a> <span class="n">se_df</span><span class="o">.</span><span class="n">to_sql</span><span class="p">(</span><span class="n">table_name</span><span class="p">,</span> <span class="n">con</span><span class="p">,</span> <span class="n">if_exists</span><span class="o">=</span><span class="n">if_exists</span><span class="p">,</span> <span class="n">index</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-33"><a href="#L-33"><span class="linenos"> 33</span></a> <span class="n">con</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
</span><span id="L-34"><a href="#L-34"><span class="linenos"> 34</span></a>
</span><span id="L-35"><a href="#L-35"><span class="linenos"> 35</span></a><span class="sd"> Parameters</span>
</span><span id="L-36"><a href="#L-36"><span class="linenos"> 36</span></a><span class="sd"> ----------</span>
</span><span id="L-37"><a href="#L-37"><span class="linenos"> 37</span></a><span class="sd"> sql : str</span>
</span><span id="L-38"><a href="#L-38"><span class="linenos"> 38</span></a><span class="sd"> SQL query to be executed.</span>
</span><span id="L-39"><a href="#L-39"><span class="linenos"> 39</span></a><span class="sd"> db : str</span>
</span><span id="L-40"><a href="#L-40"><span class="linenos"> 40</span></a><span class="sd"> Path to the sqlite database.</span>
</span><span id="L-41"><a href="#L-41"><span class="linenos"> 41</span></a><span class="sd"> auto_gamma : bool</span>
</span><span id="L-42"><a href="#L-42"><span class="linenos"> 42</span></a><span class="sd"> If True applies the gamma_method to all imported Obs objects with the default parameters for</span>
</span><span id="L-43"><a href="#L-43"><span class="linenos"> 43</span></a><span class="sd"> the error analysis. Default False.</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="n">con</span> <span class="o">=</span> <span class="n">sqlite3</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="n">db</span><span class="p">)</span>
</span><span id="L-46"><a href="#L-46"><span class="linenos"> 46</span></a> <span class="n">extract_df</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">read_sql</span><span class="p">(</span><span class="n">sql</span><span class="p">,</span> <span class="n">con</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
</span><span id="L-47"><a href="#L-47"><span class="linenos"> 47</span></a> <span class="n">con</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
</span><span id="L-48"><a href="#L-48"><span class="linenos"> 48</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-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><span id="L-51"><a href="#L-51"><span class="linenos"> 51</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-52"><a href="#L-52"><span class="linenos"> 52</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-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 class="sd"> Before making use of pandas to_csv functionality Obs objects are serialized via the standardized</span>
</span><span id="L-55"><a href="#L-55"><span class="linenos"> 55</span></a><span class="sd"> json format of pyerrors.</span>
</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="sd"> Parameters</span>
</span><span id="L-58"><a href="#L-58"><span class="linenos"> 58</span></a><span class="sd"> ----------</span>
</span><span id="L-59"><a href="#L-59"><span class="linenos"> 59</span></a><span class="sd"> df : pandas.DataFrame</span>
</span><span id="L-60"><a href="#L-60"><span class="linenos"> 60</span></a><span class="sd"> Dataframe to be dumped to a file.</span>
</span><span id="L-61"><a href="#L-61"><span class="linenos"> 61</span></a><span class="sd"> fname : str</span>
</span><span id="L-62"><a href="#L-62"><span class="linenos"> 62</span></a><span class="sd"> Filename of the output file.</span>
</span><span id="L-63"><a href="#L-63"><span class="linenos"> 63</span></a><span class="sd"> gz : bool</span>
</span><span id="L-64"><a href="#L-64"><span class="linenos"> 64</span></a><span class="sd"> If True, the output is a gzipped csv file. If False, the output is a csv file.</span>
</span><span id="L-65"><a href="#L-65"><span class="linenos"> 65</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-66"><a href="#L-66"><span class="linenos"> 66</span></a> <span class="n">out</span> <span class="o">=</span> <span class="n">_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-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">if</span> <span class="ow">not</span> <span class="n">fname</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;.csv&#39;</span><span class="p">):</span>
</span><span id="L-69"><a href="#L-69"><span class="linenos"> 69</span></a> <span class="n">fname</span> <span class="o">+=</span> <span class="s1">&#39;.csv&#39;</span>
</span><span id="L-70"><a href="#L-70"><span class="linenos"> 70</span></a>
</span><span id="L-71"><a href="#L-71"><span class="linenos"> 71</span></a> <span class="k">if</span> <span class="n">gz</span> <span class="ow">is</span> <span class="kc">True</span><span class="p">:</span>
</span><span id="L-72"><a href="#L-72"><span class="linenos"> 72</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">fname</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;.gz&#39;</span><span class="p">):</span>
</span><span id="L-73"><a href="#L-73"><span class="linenos"> 73</span></a> <span class="n">fname</span> <span class="o">+=</span> <span class="s1">&#39;.gz&#39;</span>
</span><span id="L-74"><a href="#L-74"><span class="linenos"> 74</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 class="n">compression</span><span class="o">=</span><span class="s1">&#39;gzip&#39;</span><span class="p">)</span>
</span><span id="L-75"><a href="#L-75"><span class="linenos"> 75</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-76"><a href="#L-76"><span class="linenos"> 76</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-77"><a href="#L-77"><span class="linenos"> 77</span></a>
</span><span id="L-78"><a href="#L-78"><span class="linenos"> 78</span></a>
</span><span id="L-79"><a href="#L-79"><span class="linenos"> 79</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-80"><a href="#L-80"><span class="linenos"> 80</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-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="sd"> Parameters</span>
</span><span id="L-83"><a href="#L-83"><span class="linenos"> 83</span></a><span class="sd"> ----------</span>
</span><span id="L-84"><a href="#L-84"><span class="linenos"> 84</span></a><span class="sd"> fname : str</span>
</span><span id="L-85"><a href="#L-85"><span class="linenos"> 85</span></a><span class="sd"> Filename of the input file.</span>
</span><span id="L-86"><a href="#L-86"><span class="linenos"> 86</span></a><span class="sd"> auto_gamma : bool</span>
</span><span id="L-87"><a href="#L-87"><span class="linenos"> 87</span></a><span class="sd"> If True applies the gamma_method to all imported Obs objects with the default parameters for</span>
</span><span id="L-88"><a href="#L-88"><span class="linenos"> 88</span></a><span class="sd"> the error analysis. Default False.</span>
</span><span id="L-89"><a href="#L-89"><span class="linenos"> 89</span></a><span class="sd"> gz : bool</span>
</span><span id="L-90"><a href="#L-90"><span class="linenos"> 90</span></a><span class="sd"> If True, assumes that data is gzipped. If False, assumes JSON file.</span>
</span><span id="L-91"><a href="#L-91"><span class="linenos"> 91</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-92"><a href="#L-92"><span class="linenos"> 92</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">fname</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;.csv&#39;</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">fname</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;.gz&#39;</span><span class="p">):</span>
</span><span id="L-93"><a href="#L-93"><span class="linenos"> 93</span></a> <span class="n">fname</span> <span class="o">+=</span> <span class="s1">&#39;.csv&#39;</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="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="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-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="sd"> Parameters</span>
</span><span id="L-40"><a href="#L-40"><span class="linenos"> 40</span></a><span class="sd"> ----------</span>
</span><span id="L-41"><a href="#L-41"><span class="linenos"> 41</span></a><span class="sd"> sql : str</span>
</span><span id="L-42"><a href="#L-42"><span class="linenos"> 42</span></a><span class="sd"> SQL query to be executed.</span>
</span><span id="L-43"><a href="#L-43"><span class="linenos"> 43</span></a><span class="sd"> db : str</span>
</span><span id="L-44"><a href="#L-44"><span class="linenos"> 44</span></a><span class="sd"> Path to the sqlite database.</span>
</span><span id="L-45"><a href="#L-45"><span class="linenos"> 45</span></a><span class="sd"> auto_gamma : bool</span>
</span><span id="L-46"><a href="#L-46"><span class="linenos"> 46</span></a><span class="sd"> If True applies the gamma_method to all imported Obs objects with the default parameters for</span>
</span><span id="L-47"><a href="#L-47"><span class="linenos"> 47</span></a><span class="sd"> the error analysis. Default False.</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="sd"> Returns</span>
</span><span id="L-50"><a href="#L-50"><span class="linenos"> 50</span></a><span class="sd"> -------</span>
</span><span id="L-51"><a href="#L-51"><span class="linenos"> 51</span></a><span class="sd"> data : pandas.DataFrame</span>
</span><span id="L-52"><a href="#L-52"><span class="linenos"> 52</span></a><span class="sd"> Dataframe with the content of the sqlite database.</span>
</span><span id="L-53"><a href="#L-53"><span class="linenos"> 53</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-54"><a href="#L-54"><span class="linenos"> 54</span></a> <span class="n">con</span> <span class="o">=</span> <span class="n">sqlite3</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="n">db</span><span class="p">)</span>
</span><span id="L-55"><a href="#L-55"><span class="linenos"> 55</span></a> <span class="n">extract_df</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">read_sql</span><span class="p">(</span><span class="n">sql</span><span class="p">,</span> <span class="n">con</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
</span><span id="L-56"><a href="#L-56"><span class="linenos"> 56</span></a> <span class="n">con</span><span class="o">.</span><span class="n">close</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">_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-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">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="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-62"><a href="#L-62"><span class="linenos"> 62</span></a>
</span><span id="L-63"><a href="#L-63"><span class="linenos"> 63</span></a><span class="sd"> Before making use of pandas to_csv functionality Obs objects are serialized via the standardized</span>
</span><span id="L-64"><a href="#L-64"><span class="linenos"> 64</span></a><span class="sd"> json format of pyerrors.</span>
</span><span id="L-65"><a href="#L-65"><span class="linenos"> 65</span></a>
</span><span id="L-66"><a href="#L-66"><span class="linenos"> 66</span></a><span class="sd"> Parameters</span>
</span><span id="L-67"><a href="#L-67"><span class="linenos"> 67</span></a><span class="sd"> ----------</span>
</span><span id="L-68"><a href="#L-68"><span class="linenos"> 68</span></a><span class="sd"> df : pandas.DataFrame</span>
</span><span id="L-69"><a href="#L-69"><span class="linenos"> 69</span></a><span class="sd"> Dataframe to be dumped to a file.</span>
</span><span id="L-70"><a href="#L-70"><span class="linenos"> 70</span></a><span class="sd"> fname : str</span>
</span><span id="L-71"><a href="#L-71"><span class="linenos"> 71</span></a><span class="sd"> Filename of the output file.</span>
</span><span id="L-72"><a href="#L-72"><span class="linenos"> 72</span></a><span class="sd"> gz : bool</span>
</span><span id="L-73"><a href="#L-73"><span class="linenos"> 73</span></a><span class="sd"> If True, the output is a gzipped csv file. If False, the output is a csv file.</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="sd"> Returns</span>
</span><span id="L-76"><a href="#L-76"><span class="linenos"> 76</span></a><span class="sd"> -------</span>
</span><span id="L-77"><a href="#L-77"><span class="linenos"> 77</span></a><span class="sd"> None</span>
</span><span id="L-78"><a href="#L-78"><span class="linenos"> 78</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-79"><a href="#L-79"><span class="linenos"> 79</span></a> <span class="n">out</span> <span class="o">=</span> <span class="n">_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-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">if</span> <span class="ow">not</span> <span class="n">fname</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;.csv&#39;</span><span class="p">):</span>
</span><span id="L-82"><a href="#L-82"><span class="linenos"> 82</span></a> <span class="n">fname</span> <span class="o">+=</span> <span class="s1">&#39;.csv&#39;</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="k">if</span> <span class="n">gz</span> <span class="ow">is</span> <span class="kc">True</span><span class="p">:</span>
</span><span id="L-85"><a href="#L-85"><span class="linenos"> 85</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">fname</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;.gz&#39;</span><span class="p">):</span>
</span><span id="L-86"><a href="#L-86"><span class="linenos"> 86</span></a> <span class="n">fname</span> <span class="o">+=</span> <span class="s1">&#39;.gz&#39;</span>
</span><span id="L-87"><a href="#L-87"><span class="linenos"> 87</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 class="n">compression</span><span class="o">=</span><span class="s1">&#39;gzip&#39;</span><span class="p">)</span>
</span><span id="L-88"><a href="#L-88"><span class="linenos"> 88</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-89"><a href="#L-89"><span class="linenos"> 89</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-90"><a href="#L-90"><span class="linenos"> 90</span></a>
</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">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-93"><a href="#L-93"><span class="linenos"> 93</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-94"><a href="#L-94"><span class="linenos"> 94</span></a>
</span><span id="L-95"><a href="#L-95"><span class="linenos"> 95</span></a> <span class="k">if</span> <span class="n">gz</span> <span class="ow">is</span> <span class="kc">True</span><span class="p">:</span>
</span><span id="L-96"><a href="#L-96"><span class="linenos"> 96</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">fname</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;.gz&#39;</span><span class="p">):</span>
</span><span id="L-97"><a href="#L-97"><span class="linenos"> 97</span></a> <span class="n">fname</span> <span class="o">+=</span> <span class="s1">&#39;.gz&#39;</span>
</span><span id="L-98"><a href="#L-98"><span class="linenos"> 98</span></a> <span class="k">with</span> <span class="n">gzip</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="n">fname</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
</span><span id="L-99"><a href="#L-99"><span class="linenos"> 99</span></a> <span class="n">re_import</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">read_csv</span><span class="p">(</span><span class="n">f</span><span class="p">)</span>
</span><span id="L-100"><a href="#L-100"><span class="linenos">100</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-101"><a href="#L-101"><span class="linenos">101</span></a> <span class="k">if</span> <span class="n">fname</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;.gz&#39;</span><span class="p">):</span>
</span><span id="L-102"><a href="#L-102"><span class="linenos">102</span></a> <span class="n">warnings</span><span class="o">.</span><span class="n">warn</span><span class="p">(</span><span class="s2">&quot;Trying to read from </span><span class="si">%s</span><span class="s2"> without unzipping!&quot;</span> <span class="o">%</span> <span class="n">fname</span><span class="p">,</span> <span class="ne">UserWarning</span><span class="p">)</span>
</span><span id="L-103"><a href="#L-103"><span class="linenos">103</span></a> <span class="n">re_import</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">read_csv</span><span class="p">(</span><span class="n">fname</span><span class="p">)</span>
</span><span id="L-95"><a href="#L-95"><span class="linenos"> 95</span></a><span class="sd"> Parameters</span>
</span><span id="L-96"><a href="#L-96"><span class="linenos"> 96</span></a><span class="sd"> ----------</span>
</span><span id="L-97"><a href="#L-97"><span class="linenos"> 97</span></a><span class="sd"> fname : str</span>
</span><span id="L-98"><a href="#L-98"><span class="linenos"> 98</span></a><span class="sd"> Filename of the input file.</span>
</span><span id="L-99"><a href="#L-99"><span class="linenos"> 99</span></a><span class="sd"> auto_gamma : bool</span>
</span><span id="L-100"><a href="#L-100"><span class="linenos">100</span></a><span class="sd"> If True applies the gamma_method to all imported Obs objects with the default parameters for</span>
</span><span id="L-101"><a href="#L-101"><span class="linenos">101</span></a><span class="sd"> the error analysis. Default False.</span>
</span><span id="L-102"><a href="#L-102"><span class="linenos">102</span></a><span class="sd"> gz : bool</span>
</span><span id="L-103"><a href="#L-103"><span class="linenos">103</span></a><span class="sd"> If True, assumes that data is gzipped. If False, assumes JSON file.</span>
</span><span id="L-104"><a href="#L-104"><span class="linenos">104</span></a>
</span><span id="L-105"><a href="#L-105"><span class="linenos">105</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-106"><a href="#L-106"><span class="linenos">106</span></a>
</span><span id="L-107"><a href="#L-107"><span class="linenos">107</span></a>
</span><span id="L-108"><a href="#L-108"><span class="linenos">108</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-109"><a href="#L-109"><span class="linenos">109</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-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="sd"> Parameters</span>
</span><span id="L-112"><a href="#L-112"><span class="linenos">112</span></a><span class="sd"> ----------</span>
</span><span id="L-113"><a href="#L-113"><span class="linenos">113</span></a><span class="sd"> df : pandas.DataFrame</span>
</span><span id="L-114"><a href="#L-114"><span class="linenos">114</span></a><span class="sd"> DataFrame to be serilized.</span>
</span><span id="L-115"><a href="#L-115"><span class="linenos">115</span></a><span class="sd"> gz: bool</span>
</span><span id="L-116"><a href="#L-116"><span class="linenos">116</span></a><span class="sd"> gzip the json string representation. Default False.</span>
</span><span id="L-117"><a href="#L-117"><span class="linenos">117</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-118"><a href="#L-118"><span class="linenos">118</span></a> <span class="n">out</span> <span class="o">=</span> <span class="n">df</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
</span><span id="L-119"><a href="#L-119"><span class="linenos">119</span></a> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">out</span><span class="p">:</span>
</span><span id="L-120"><a href="#L-120"><span class="linenos">120</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">out</span><span class="p">[</span><span class="n">column</span><span class="p">][</span><span class="mi">0</span><span class="p">],</span> <span class="p">(</span><span class="n">Obs</span><span class="p">,</span> <span class="n">Corr</span><span class="p">)):</span>
</span><span id="L-121"><a href="#L-121"><span class="linenos">121</span></a> <span class="n">out</span><span class="p">[</span><span class="n">column</span><span class="p">]</span> <span class="o">=</span> <span class="n">out</span><span class="p">[</span><span class="n">column</span><span class="p">]</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">create_json_string</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">indent</span><span class="o">=</span><span class="mi">0</span><span class="p">))</span>
</span><span id="L-122"><a href="#L-122"><span class="linenos">122</span></a> <span class="k">if</span> <span class="n">gz</span> <span class="ow">is</span> <span class="kc">True</span><span class="p">:</span>
</span><span id="L-123"><a href="#L-123"><span class="linenos">123</span></a> <span class="n">out</span><span class="p">[</span><span class="n">column</span><span class="p">]</span> <span class="o">=</span> <span class="n">out</span><span class="p">[</span><span class="n">column</span><span class="p">]</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">gzip</span><span class="o">.</span><span class="n">compress</span><span class="p">(</span><span class="n">x</span><span class="o">.</span><span class="n">encode</span><span class="p">(</span><span class="s1">&#39;utf-8&#39;</span><span class="p">)))</span>
</span><span id="L-124"><a href="#L-124"><span class="linenos">124</span></a> <span class="k">return</span> <span class="n">out</span>
</span><span id="L-105"><a href="#L-105"><span class="linenos">105</span></a><span class="sd"> Returns</span>
</span><span id="L-106"><a href="#L-106"><span class="linenos">106</span></a><span class="sd"> -------</span>
</span><span id="L-107"><a href="#L-107"><span class="linenos">107</span></a><span class="sd"> data : pandas.DataFrame</span>
</span><span id="L-108"><a href="#L-108"><span class="linenos">108</span></a><span class="sd"> Dataframe with the content of the sqlite database.</span>
</span><span id="L-109"><a href="#L-109"><span class="linenos">109</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-110"><a href="#L-110"><span class="linenos">110</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">fname</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;.csv&#39;</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">fname</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;.gz&#39;</span><span class="p">):</span>
</span><span id="L-111"><a href="#L-111"><span class="linenos">111</span></a> <span class="n">fname</span> <span class="o">+=</span> <span class="s1">&#39;.csv&#39;</span>
</span><span id="L-112"><a href="#L-112"><span class="linenos">112</span></a>
</span><span id="L-113"><a href="#L-113"><span class="linenos">113</span></a> <span class="k">if</span> <span class="n">gz</span> <span class="ow">is</span> <span class="kc">True</span><span class="p">:</span>
</span><span id="L-114"><a href="#L-114"><span class="linenos">114</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">fname</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;.gz&#39;</span><span class="p">):</span>
</span><span id="L-115"><a href="#L-115"><span class="linenos">115</span></a> <span class="n">fname</span> <span class="o">+=</span> <span class="s1">&#39;.gz&#39;</span>
</span><span id="L-116"><a href="#L-116"><span class="linenos">116</span></a> <span class="k">with</span> <span class="n">gzip</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="n">fname</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
</span><span id="L-117"><a href="#L-117"><span class="linenos">117</span></a> <span class="n">re_import</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">read_csv</span><span class="p">(</span><span class="n">f</span><span class="p">)</span>
</span><span id="L-118"><a href="#L-118"><span class="linenos">118</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-119"><a href="#L-119"><span class="linenos">119</span></a> <span class="k">if</span> <span class="n">fname</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;.gz&#39;</span><span class="p">):</span>
</span><span id="L-120"><a href="#L-120"><span class="linenos">120</span></a> <span class="n">warnings</span><span class="o">.</span><span class="n">warn</span><span class="p">(</span><span class="s2">&quot;Trying to read from </span><span class="si">%s</span><span class="s2"> without unzipping!&quot;</span> <span class="o">%</span> <span class="n">fname</span><span class="p">,</span> <span class="ne">UserWarning</span><span class="p">)</span>
</span><span id="L-121"><a href="#L-121"><span class="linenos">121</span></a> <span class="n">re_import</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">read_csv</span><span class="p">(</span><span class="n">fname</span><span class="p">)</span>
</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">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-124"><a href="#L-124"><span class="linenos">124</span></a>
</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><span id="L-127"><a href="#L-127"><span class="linenos">127</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-128"><a href="#L-128"><span class="linenos">128</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-129"><a href="#L-129"><span class="linenos">129</span></a>
</span><span id="L-130"><a href="#L-130"><span class="linenos">130</span></a><span class="sd"> Parameters</span>
</span><span id="L-131"><a href="#L-131"><span class="linenos">131</span></a><span class="sd"> ----------</span>
</span><span id="L-132"><a href="#L-132"><span class="linenos">132</span></a><span class="sd"> df : pandas.DataFrame</span>
</span><span id="L-133"><a href="#L-133"><span class="linenos">133</span></a><span class="sd"> DataFrame to be deserilized.</span>
</span><span id="L-134"><a href="#L-134"><span class="linenos">134</span></a><span class="sd"> auto_gamma : bool</span>
</span><span id="L-135"><a href="#L-135"><span class="linenos">135</span></a><span class="sd"> If True applies the gamma_method to all imported Obs objects with the default parameters for</span>
</span><span id="L-136"><a href="#L-136"><span class="linenos">136</span></a><span class="sd"> the error analysis. Default False.</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"> Notes:</span>
</span><span id="L-139"><a href="#L-139"><span class="linenos">139</span></a><span class="sd"> ------</span>
</span><span id="L-140"><a href="#L-140"><span class="linenos">140</span></a><span class="sd"> In case any column of the DataFrame is gzipped it is gunzipped in the process.</span>
</span><span id="L-141"><a href="#L-141"><span class="linenos">141</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-142"><a href="#L-142"><span class="linenos">142</span></a> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">df</span><span class="o">.</span><span class="n">select_dtypes</span><span class="p">(</span><span class="n">include</span><span class="o">=</span><span class="s2">&quot;object&quot;</span><span class="p">):</span>
</span><span id="L-143"><a href="#L-143"><span class="linenos">143</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">df</span><span class="p">[</span><span class="n">column</span><span class="p">][</span><span class="mi">0</span><span class="p">],</span> <span class="nb">bytes</span><span class="p">):</span>
</span><span id="L-144"><a href="#L-144"><span class="linenos">144</span></a> <span class="k">if</span> <span class="n">df</span><span class="p">[</span><span class="n">column</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="sa">b</span><span class="s2">&quot;</span><span class="se">\x1f\x8b\x08\x00</span><span class="s2">&quot;</span><span class="p">):</span>
</span><span id="L-145"><a href="#L-145"><span class="linenos">145</span></a> <span class="n">df</span><span class="p">[</span><span class="n">column</span><span class="p">]</span> <span class="o">=</span> <span class="n">df</span><span class="p">[</span><span class="n">column</span><span class="p">]</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">gzip</span><span class="o">.</span><span class="n">decompress</span><span class="p">(</span><span class="n">x</span><span class="p">)</span><span class="o">.</span><span class="n">decode</span><span class="p">(</span><span class="s1">&#39;utf-8&#39;</span><span class="p">))</span>
</span><span id="L-146"><a href="#L-146"><span class="linenos">146</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">df</span><span class="p">[</span><span class="n">column</span><span class="p">][</span><span class="mi">0</span><span class="p">],</span> <span class="nb">str</span><span class="p">):</span>
</span><span id="L-147"><a href="#L-147"><span class="linenos">147</span></a> <span class="k">if</span> <span class="s1">&#39;&quot;program&quot;:&#39;</span> <span class="ow">in</span> <span class="n">df</span><span class="p">[</span><span class="n">column</span><span class="p">][</span><span class="mi">0</span><span class="p">][:</span><span class="mi">20</span><span class="p">]:</span>
</span><span id="L-148"><a href="#L-148"><span class="linenos">148</span></a> <span class="n">df</span><span class="p">[</span><span class="n">column</span><span class="p">]</span> <span class="o">=</span> <span class="n">df</span><span class="p">[</span><span class="n">column</span><span class="p">]</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">import_json_string</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">verbose</span><span class="o">=</span><span class="kc">False</span><span class="p">))</span>
</span><span id="L-149"><a href="#L-149"><span class="linenos">149</span></a> <span class="k">if</span> <span class="n">auto_gamma</span> <span class="ow">is</span> <span class="kc">True</span><span class="p">:</span>
</span><span id="L-150"><a href="#L-150"><span class="linenos">150</span></a> <span class="n">df</span><span class="p">[</span><span class="n">column</span><span class="p">]</span><span class="o">.</span><span class="n">apply</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">gamma_method</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">df</span>
</span><span id="L-126"><a href="#L-126"><span class="linenos">126</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-127"><a href="#L-127"><span class="linenos">127</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-128"><a href="#L-128"><span class="linenos">128</span></a>
</span><span id="L-129"><a href="#L-129"><span class="linenos">129</span></a><span class="sd"> Parameters</span>
</span><span id="L-130"><a href="#L-130"><span class="linenos">130</span></a><span class="sd"> ----------</span>
</span><span id="L-131"><a href="#L-131"><span class="linenos">131</span></a><span class="sd"> df : pandas.DataFrame</span>
</span><span id="L-132"><a href="#L-132"><span class="linenos">132</span></a><span class="sd"> DataFrame to be serilized.</span>
</span><span id="L-133"><a href="#L-133"><span class="linenos">133</span></a><span class="sd"> gz: bool</span>
</span><span id="L-134"><a href="#L-134"><span class="linenos">134</span></a><span class="sd"> gzip the json string representation. Default False.</span>
</span><span id="L-135"><a href="#L-135"><span class="linenos">135</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-136"><a href="#L-136"><span class="linenos">136</span></a> <span class="n">out</span> <span class="o">=</span> <span class="n">df</span><span class="o">.</span><span class="n">copy</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">column</span> <span class="ow">in</span> <span class="n">out</span><span class="p">:</span>
</span><span id="L-138"><a href="#L-138"><span class="linenos">138</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">out</span><span class="p">[</span><span class="n">column</span><span class="p">][</span><span class="mi">0</span><span class="p">],</span> <span class="p">(</span><span class="n">Obs</span><span class="p">,</span> <span class="n">Corr</span><span class="p">)):</span>
</span><span id="L-139"><a href="#L-139"><span class="linenos">139</span></a> <span class="n">out</span><span class="p">[</span><span class="n">column</span><span class="p">]</span> <span class="o">=</span> <span class="n">out</span><span class="p">[</span><span class="n">column</span><span class="p">]</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">create_json_string</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">indent</span><span class="o">=</span><span class="mi">0</span><span class="p">))</span>
</span><span id="L-140"><a href="#L-140"><span class="linenos">140</span></a> <span class="k">if</span> <span class="n">gz</span> <span class="ow">is</span> <span class="kc">True</span><span class="p">:</span>
</span><span id="L-141"><a href="#L-141"><span class="linenos">141</span></a> <span class="n">out</span><span class="p">[</span><span class="n">column</span><span class="p">]</span> <span class="o">=</span> <span class="n">out</span><span class="p">[</span><span class="n">column</span><span class="p">]</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">gzip</span><span class="o">.</span><span class="n">compress</span><span class="p">(</span><span class="n">x</span><span class="o">.</span><span class="n">encode</span><span class="p">(</span><span class="s1">&#39;utf-8&#39;</span><span class="p">)))</span>
</span><span id="L-142"><a href="#L-142"><span class="linenos">142</span></a> <span class="k">return</span> <span class="n">out</span>
</span><span id="L-143"><a href="#L-143"><span class="linenos">143</span></a>
</span><span id="L-144"><a href="#L-144"><span class="linenos">144</span></a>
</span><span id="L-145"><a href="#L-145"><span class="linenos">145</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-146"><a href="#L-146"><span class="linenos">146</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-147"><a href="#L-147"><span class="linenos">147</span></a>
</span><span id="L-148"><a href="#L-148"><span class="linenos">148</span></a><span class="sd"> Parameters</span>
</span><span id="L-149"><a href="#L-149"><span class="linenos">149</span></a><span class="sd"> ----------</span>
</span><span id="L-150"><a href="#L-150"><span class="linenos">150</span></a><span class="sd"> df : pandas.DataFrame</span>
</span><span id="L-151"><a href="#L-151"><span class="linenos">151</span></a><span class="sd"> DataFrame to be deserilized.</span>
</span><span id="L-152"><a href="#L-152"><span class="linenos">152</span></a><span class="sd"> auto_gamma : bool</span>
</span><span id="L-153"><a href="#L-153"><span class="linenos">153</span></a><span class="sd"> If True applies the gamma_method to all imported Obs objects with the default parameters for</span>
</span><span id="L-154"><a href="#L-154"><span class="linenos">154</span></a><span class="sd"> the error analysis. Default False.</span>
</span><span id="L-155"><a href="#L-155"><span class="linenos">155</span></a>
</span><span id="L-156"><a href="#L-156"><span class="linenos">156</span></a><span class="sd"> Notes:</span>
</span><span id="L-157"><a href="#L-157"><span class="linenos">157</span></a><span class="sd"> ------</span>
</span><span id="L-158"><a href="#L-158"><span class="linenos">158</span></a><span class="sd"> In case any column of the DataFrame is gzipped it is gunzipped in the process.</span>
</span><span id="L-159"><a href="#L-159"><span class="linenos">159</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-160"><a href="#L-160"><span class="linenos">160</span></a> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">df</span><span class="o">.</span><span class="n">select_dtypes</span><span class="p">(</span><span class="n">include</span><span class="o">=</span><span class="s2">&quot;object&quot;</span><span class="p">):</span>
</span><span id="L-161"><a href="#L-161"><span class="linenos">161</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">df</span><span class="p">[</span><span class="n">column</span><span class="p">][</span><span class="mi">0</span><span class="p">],</span> <span class="nb">bytes</span><span class="p">):</span>
</span><span id="L-162"><a href="#L-162"><span class="linenos">162</span></a> <span class="k">if</span> <span class="n">df</span><span class="p">[</span><span class="n">column</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="sa">b</span><span class="s2">&quot;</span><span class="se">\x1f\x8b\x08\x00</span><span class="s2">&quot;</span><span class="p">):</span>
</span><span id="L-163"><a href="#L-163"><span class="linenos">163</span></a> <span class="n">df</span><span class="p">[</span><span class="n">column</span><span class="p">]</span> <span class="o">=</span> <span class="n">df</span><span class="p">[</span><span class="n">column</span><span class="p">]</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">gzip</span><span class="o">.</span><span class="n">decompress</span><span class="p">(</span><span class="n">x</span><span class="p">)</span><span class="o">.</span><span class="n">decode</span><span class="p">(</span><span class="s1">&#39;utf-8&#39;</span><span class="p">))</span>
</span><span id="L-164"><a href="#L-164"><span class="linenos">164</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">df</span><span class="p">[</span><span class="n">column</span><span class="p">][</span><span class="mi">0</span><span class="p">],</span> <span class="nb">str</span><span class="p">):</span>
</span><span id="L-165"><a href="#L-165"><span class="linenos">165</span></a> <span class="k">if</span> <span class="s1">&#39;&quot;program&quot;:&#39;</span> <span class="ow">in</span> <span class="n">df</span><span class="p">[</span><span class="n">column</span><span class="p">][</span><span class="mi">0</span><span class="p">][:</span><span class="mi">20</span><span class="p">]:</span>
</span><span id="L-166"><a href="#L-166"><span class="linenos">166</span></a> <span class="n">df</span><span class="p">[</span><span class="n">column</span><span class="p">]</span> <span class="o">=</span> <span class="n">df</span><span class="p">[</span><span class="n">column</span><span class="p">]</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">import_json_string</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">verbose</span><span class="o">=</span><span class="kc">False</span><span class="p">))</span>
</span><span id="L-167"><a href="#L-167"><span class="linenos">167</span></a> <span class="k">if</span> <span class="n">auto_gamma</span> <span class="ow">is</span> <span class="kc">True</span><span class="p">:</span>
</span><span id="L-168"><a href="#L-168"><span class="linenos">168</span></a> <span class="n">df</span><span class="p">[</span><span class="n">column</span><span class="p">]</span><span class="o">.</span><span class="n">apply</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">gamma_method</span><span class="p">())</span>
</span><span id="L-169"><a href="#L-169"><span class="linenos">169</span></a> <span class="k">return</span> <span class="n">df</span>
</span></pre></div>
@ -266,11 +284,15 @@
</span><span id="to_sql-23"><a href="#to_sql-23"><span class="linenos">23</span></a><span class="sd"> How to behave if table already exists. Options &#39;fail&#39;, &#39;replace&#39;, &#39;append&#39;.</span>
</span><span id="to_sql-24"><a href="#to_sql-24"><span class="linenos">24</span></a><span class="sd"> gz : bool</span>
</span><span id="to_sql-25"><a href="#to_sql-25"><span class="linenos">25</span></a><span class="sd"> If True the json strings are gzipped.</span>
</span><span id="to_sql-26"><a href="#to_sql-26"><span class="linenos">26</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="to_sql-27"><a href="#to_sql-27"><span class="linenos">27</span></a> <span class="n">se_df</span> <span class="o">=</span> <span class="n">_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="n">gz</span><span class="p">)</span>
</span><span id="to_sql-28"><a href="#to_sql-28"><span class="linenos">28</span></a> <span class="n">con</span> <span class="o">=</span> <span class="n">sqlite3</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="n">db</span><span class="p">)</span>
</span><span id="to_sql-29"><a href="#to_sql-29"><span class="linenos">29</span></a> <span class="n">se_df</span><span class="o">.</span><span class="n">to_sql</span><span class="p">(</span><span class="n">table_name</span><span class="p">,</span> <span class="n">con</span><span class="p">,</span> <span class="n">if_exists</span><span class="o">=</span><span class="n">if_exists</span><span class="p">,</span> <span class="n">index</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="to_sql-30"><a href="#to_sql-30"><span class="linenos">30</span></a> <span class="n">con</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
</span><span id="to_sql-26"><a href="#to_sql-26"><span class="linenos">26</span></a>
</span><span id="to_sql-27"><a href="#to_sql-27"><span class="linenos">27</span></a><span class="sd"> Returns</span>
</span><span id="to_sql-28"><a href="#to_sql-28"><span class="linenos">28</span></a><span class="sd"> -------</span>
</span><span id="to_sql-29"><a href="#to_sql-29"><span class="linenos">29</span></a><span class="sd"> None</span>
</span><span id="to_sql-30"><a href="#to_sql-30"><span class="linenos">30</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="to_sql-31"><a href="#to_sql-31"><span class="linenos">31</span></a> <span class="n">se_df</span> <span class="o">=</span> <span class="n">_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="n">gz</span><span class="p">)</span>
</span><span id="to_sql-32"><a href="#to_sql-32"><span class="linenos">32</span></a> <span class="n">con</span> <span class="o">=</span> <span class="n">sqlite3</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="n">db</span><span class="p">)</span>
</span><span id="to_sql-33"><a href="#to_sql-33"><span class="linenos">33</span></a> <span class="n">se_df</span><span class="o">.</span><span class="n">to_sql</span><span class="p">(</span><span class="n">table_name</span><span class="p">,</span> <span class="n">con</span><span class="p">,</span> <span class="n">if_exists</span><span class="o">=</span><span class="n">if_exists</span><span class="p">,</span> <span class="n">index</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="to_sql-34"><a href="#to_sql-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></pre></div>
@ -290,6 +312,12 @@ How to behave if table already exists. Options 'fail', 'replace', 'append'.</li>
<li><strong>gz</strong> (bool):
If True the json strings are gzipped.</li>
</ul>
<h6 id="returns">Returns</h6>
<ul>
<li><strong>None</strong></li>
</ul>
</div>
@ -305,23 +333,28 @@ 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-33"><a href="#read_sql-33"><span class="linenos">33</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="read_sql-34"><a href="#read_sql-34"><span class="linenos">34</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-35"><a href="#read_sql-35"><span class="linenos">35</span></a>
</span><span id="read_sql-36"><a href="#read_sql-36"><span class="linenos">36</span></a><span class="sd"> Parameters</span>
</span><span id="read_sql-37"><a href="#read_sql-37"><span class="linenos">37</span></a><span class="sd"> ----------</span>
</span><span id="read_sql-38"><a href="#read_sql-38"><span class="linenos">38</span></a><span class="sd"> sql : str</span>
</span><span id="read_sql-39"><a href="#read_sql-39"><span class="linenos">39</span></a><span class="sd"> SQL query to be executed.</span>
</span><span id="read_sql-40"><a href="#read_sql-40"><span class="linenos">40</span></a><span class="sd"> db : str</span>
</span><span id="read_sql-41"><a href="#read_sql-41"><span class="linenos">41</span></a><span class="sd"> Path to the sqlite database.</span>
</span><span id="read_sql-42"><a href="#read_sql-42"><span class="linenos">42</span></a><span class="sd"> auto_gamma : bool</span>
</span><span id="read_sql-43"><a href="#read_sql-43"><span class="linenos">43</span></a><span class="sd"> If True applies the gamma_method to all imported Obs objects with the default parameters for</span>
</span><span id="read_sql-44"><a href="#read_sql-44"><span class="linenos">44</span></a><span class="sd"> the error analysis. Default False.</span>
</span><span id="read_sql-45"><a href="#read_sql-45"><span class="linenos">45</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="read_sql-46"><a href="#read_sql-46"><span class="linenos">46</span></a> <span class="n">con</span> <span class="o">=</span> <span class="n">sqlite3</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="n">db</span><span class="p">)</span>
</span><span id="read_sql-47"><a href="#read_sql-47"><span class="linenos">47</span></a> <span class="n">extract_df</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">read_sql</span><span class="p">(</span><span class="n">sql</span><span class="p">,</span> <span class="n">con</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
</span><span id="read_sql-48"><a href="#read_sql-48"><span class="linenos">48</span></a> <span class="n">con</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
</span><span id="read_sql-49"><a href="#read_sql-49"><span class="linenos">49</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>
<div class="pdoc-code codehilite"><pre><span></span><span id="read_sql-37"><a href="#read_sql-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="read_sql-38"><a href="#read_sql-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="read_sql-39"><a href="#read_sql-39"><span class="linenos">39</span></a>
</span><span id="read_sql-40"><a href="#read_sql-40"><span class="linenos">40</span></a><span class="sd"> Parameters</span>
</span><span id="read_sql-41"><a href="#read_sql-41"><span class="linenos">41</span></a><span class="sd"> ----------</span>
</span><span id="read_sql-42"><a href="#read_sql-42"><span class="linenos">42</span></a><span class="sd"> sql : str</span>
</span><span id="read_sql-43"><a href="#read_sql-43"><span class="linenos">43</span></a><span class="sd"> SQL query to be executed.</span>
</span><span id="read_sql-44"><a href="#read_sql-44"><span class="linenos">44</span></a><span class="sd"> db : str</span>
</span><span id="read_sql-45"><a href="#read_sql-45"><span class="linenos">45</span></a><span class="sd"> Path to the sqlite database.</span>
</span><span id="read_sql-46"><a href="#read_sql-46"><span class="linenos">46</span></a><span class="sd"> auto_gamma : bool</span>
</span><span id="read_sql-47"><a href="#read_sql-47"><span class="linenos">47</span></a><span class="sd"> If True applies the gamma_method to all imported Obs objects with the default parameters for</span>
</span><span id="read_sql-48"><a href="#read_sql-48"><span class="linenos">48</span></a><span class="sd"> the error analysis. Default False.</span>
</span><span id="read_sql-49"><a href="#read_sql-49"><span class="linenos">49</span></a>
</span><span id="read_sql-50"><a href="#read_sql-50"><span class="linenos">50</span></a><span class="sd"> Returns</span>
</span><span id="read_sql-51"><a href="#read_sql-51"><span class="linenos">51</span></a><span class="sd"> -------</span>
</span><span id="read_sql-52"><a href="#read_sql-52"><span class="linenos">52</span></a><span class="sd"> data : pandas.DataFrame</span>
</span><span id="read_sql-53"><a href="#read_sql-53"><span class="linenos">53</span></a><span class="sd"> Dataframe with the content of the sqlite database.</span>
</span><span id="read_sql-54"><a href="#read_sql-54"><span class="linenos">54</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="read_sql-55"><a href="#read_sql-55"><span class="linenos">55</span></a> <span class="n">con</span> <span class="o">=</span> <span class="n">sqlite3</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="n">db</span><span class="p">)</span>
</span><span id="read_sql-56"><a href="#read_sql-56"><span class="linenos">56</span></a> <span class="n">extract_df</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">read_sql</span><span class="p">(</span><span class="n">sql</span><span class="p">,</span> <span class="n">con</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
</span><span id="read_sql-57"><a href="#read_sql-57"><span class="linenos">57</span></a> <span class="n">con</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
</span><span id="read_sql-58"><a href="#read_sql-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></pre></div>
@ -338,6 +371,13 @@ Path to the sqlite database.</li>
If True applies the gamma_method to all imported Obs objects with the default parameters for
the error analysis. Default False.</li>
</ul>
<h6 id="returns">Returns</h6>
<ul>
<li><strong>data</strong> (pandas.DataFrame):
Dataframe with the content of the sqlite database.</li>
</ul>
</div>
@ -353,32 +393,36 @@ the error analysis. Default False.</li>
</div>
<a class="headerlink" href="#dump_df"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="dump_df-52"><a href="#dump_df-52"><span class="linenos">52</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="dump_df-53"><a href="#dump_df-53"><span class="linenos">53</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-54"><a href="#dump_df-54"><span class="linenos">54</span></a>
</span><span id="dump_df-55"><a href="#dump_df-55"><span class="linenos">55</span></a><span class="sd"> Before making use of pandas to_csv functionality Obs objects are serialized via the standardized</span>
</span><span id="dump_df-56"><a href="#dump_df-56"><span class="linenos">56</span></a><span class="sd"> json format of pyerrors.</span>
</span><span id="dump_df-57"><a href="#dump_df-57"><span class="linenos">57</span></a>
</span><span id="dump_df-58"><a href="#dump_df-58"><span class="linenos">58</span></a><span class="sd"> Parameters</span>
</span><span id="dump_df-59"><a href="#dump_df-59"><span class="linenos">59</span></a><span class="sd"> ----------</span>
</span><span id="dump_df-60"><a href="#dump_df-60"><span class="linenos">60</span></a><span class="sd"> df : pandas.DataFrame</span>
</span><span id="dump_df-61"><a href="#dump_df-61"><span class="linenos">61</span></a><span class="sd"> Dataframe to be dumped to a file.</span>
</span><span id="dump_df-62"><a href="#dump_df-62"><span class="linenos">62</span></a><span class="sd"> fname : str</span>
</span><span id="dump_df-63"><a href="#dump_df-63"><span class="linenos">63</span></a><span class="sd"> Filename of the output file.</span>
</span><span id="dump_df-64"><a href="#dump_df-64"><span class="linenos">64</span></a><span class="sd"> gz : bool</span>
</span><span id="dump_df-65"><a href="#dump_df-65"><span class="linenos">65</span></a><span class="sd"> If True, the output is a gzipped csv file. If False, the output is a csv file.</span>
</span><span id="dump_df-66"><a href="#dump_df-66"><span class="linenos">66</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="dump_df-67"><a href="#dump_df-67"><span class="linenos">67</span></a> <span class="n">out</span> <span class="o">=</span> <span class="n">_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="dump_df-68"><a href="#dump_df-68"><span class="linenos">68</span></a>
</span><span id="dump_df-69"><a href="#dump_df-69"><span class="linenos">69</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">fname</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;.csv&#39;</span><span class="p">):</span>
</span><span id="dump_df-70"><a href="#dump_df-70"><span class="linenos">70</span></a> <span class="n">fname</span> <span class="o">+=</span> <span class="s1">&#39;.csv&#39;</span>
</span><span id="dump_df-71"><a href="#dump_df-71"><span class="linenos">71</span></a>
</span><span id="dump_df-72"><a href="#dump_df-72"><span class="linenos">72</span></a> <span class="k">if</span> <span class="n">gz</span> <span class="ow">is</span> <span class="kc">True</span><span class="p">:</span>
</span><span id="dump_df-73"><a href="#dump_df-73"><span class="linenos">73</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">fname</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;.gz&#39;</span><span class="p">):</span>
</span><span id="dump_df-74"><a href="#dump_df-74"><span class="linenos">74</span></a> <span class="n">fname</span> <span class="o">+=</span> <span class="s1">&#39;.gz&#39;</span>
</span><span id="dump_df-75"><a href="#dump_df-75"><span class="linenos">75</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 class="n">compression</span><span class="o">=</span><span class="s1">&#39;gzip&#39;</span><span class="p">)</span>
</span><span id="dump_df-76"><a href="#dump_df-76"><span class="linenos">76</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="dump_df-77"><a href="#dump_df-77"><span class="linenos">77</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>
<div class="pdoc-code codehilite"><pre><span></span><span id="dump_df-61"><a href="#dump_df-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="dump_df-62"><a href="#dump_df-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="dump_df-63"><a href="#dump_df-63"><span class="linenos">63</span></a>
</span><span id="dump_df-64"><a href="#dump_df-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>
</span><span id="dump_df-65"><a href="#dump_df-65"><span class="linenos">65</span></a><span class="sd"> json format of pyerrors.</span>
</span><span id="dump_df-66"><a href="#dump_df-66"><span class="linenos">66</span></a>
</span><span id="dump_df-67"><a href="#dump_df-67"><span class="linenos">67</span></a><span class="sd"> Parameters</span>
</span><span id="dump_df-68"><a href="#dump_df-68"><span class="linenos">68</span></a><span class="sd"> ----------</span>
</span><span id="dump_df-69"><a href="#dump_df-69"><span class="linenos">69</span></a><span class="sd"> df : pandas.DataFrame</span>
</span><span id="dump_df-70"><a href="#dump_df-70"><span class="linenos">70</span></a><span class="sd"> Dataframe to be dumped to a file.</span>
</span><span id="dump_df-71"><a href="#dump_df-71"><span class="linenos">71</span></a><span class="sd"> fname : str</span>
</span><span id="dump_df-72"><a href="#dump_df-72"><span class="linenos">72</span></a><span class="sd"> Filename of the output file.</span>
</span><span id="dump_df-73"><a href="#dump_df-73"><span class="linenos">73</span></a><span class="sd"> gz : bool</span>
</span><span id="dump_df-74"><a href="#dump_df-74"><span class="linenos">74</span></a><span class="sd"> If True, the output is a gzipped csv file. If False, the output is a csv file.</span>
</span><span id="dump_df-75"><a href="#dump_df-75"><span class="linenos">75</span></a>
</span><span id="dump_df-76"><a href="#dump_df-76"><span class="linenos">76</span></a><span class="sd"> Returns</span>
</span><span id="dump_df-77"><a href="#dump_df-77"><span class="linenos">77</span></a><span class="sd"> -------</span>
</span><span id="dump_df-78"><a href="#dump_df-78"><span class="linenos">78</span></a><span class="sd"> None</span>
</span><span id="dump_df-79"><a href="#dump_df-79"><span class="linenos">79</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="dump_df-80"><a href="#dump_df-80"><span class="linenos">80</span></a> <span class="n">out</span> <span class="o">=</span> <span class="n">_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="dump_df-81"><a href="#dump_df-81"><span class="linenos">81</span></a>
</span><span id="dump_df-82"><a href="#dump_df-82"><span class="linenos">82</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">fname</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;.csv&#39;</span><span class="p">):</span>
</span><span id="dump_df-83"><a href="#dump_df-83"><span class="linenos">83</span></a> <span class="n">fname</span> <span class="o">+=</span> <span class="s1">&#39;.csv&#39;</span>
</span><span id="dump_df-84"><a href="#dump_df-84"><span class="linenos">84</span></a>
</span><span id="dump_df-85"><a href="#dump_df-85"><span class="linenos">85</span></a> <span class="k">if</span> <span class="n">gz</span> <span class="ow">is</span> <span class="kc">True</span><span class="p">:</span>
</span><span id="dump_df-86"><a href="#dump_df-86"><span class="linenos">86</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">fname</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;.gz&#39;</span><span class="p">):</span>
</span><span id="dump_df-87"><a href="#dump_df-87"><span class="linenos">87</span></a> <span class="n">fname</span> <span class="o">+=</span> <span class="s1">&#39;.gz&#39;</span>
</span><span id="dump_df-88"><a href="#dump_df-88"><span class="linenos">88</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 class="n">compression</span><span class="o">=</span><span class="s1">&#39;gzip&#39;</span><span class="p">)</span>
</span><span id="dump_df-89"><a href="#dump_df-89"><span class="linenos">89</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="dump_df-90"><a href="#dump_df-90"><span class="linenos">90</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></pre></div>
@ -397,6 +441,12 @@ Filename of the output file.</li>
<li><strong>gz</strong> (bool):
If True, the output is a gzipped csv file. If False, the output is a csv file.</li>
</ul>
<h6 id="returns">Returns</h6>
<ul>
<li><strong>None</strong></li>
</ul>
</div>
@ -412,33 +462,38 @@ 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-80"><a href="#load_df-80"><span class="linenos"> 80</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="load_df-81"><a href="#load_df-81"><span class="linenos"> 81</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-82"><a href="#load_df-82"><span class="linenos"> 82</span></a>
</span><span id="load_df-83"><a href="#load_df-83"><span class="linenos"> 83</span></a><span class="sd"> Parameters</span>
</span><span id="load_df-84"><a href="#load_df-84"><span class="linenos"> 84</span></a><span class="sd"> ----------</span>
</span><span id="load_df-85"><a href="#load_df-85"><span class="linenos"> 85</span></a><span class="sd"> fname : str</span>
</span><span id="load_df-86"><a href="#load_df-86"><span class="linenos"> 86</span></a><span class="sd"> Filename of the input file.</span>
</span><span id="load_df-87"><a href="#load_df-87"><span class="linenos"> 87</span></a><span class="sd"> auto_gamma : bool</span>
</span><span id="load_df-88"><a href="#load_df-88"><span class="linenos"> 88</span></a><span class="sd"> If True applies the gamma_method to all imported Obs objects with the default parameters for</span>
</span><span id="load_df-89"><a href="#load_df-89"><span class="linenos"> 89</span></a><span class="sd"> the error analysis. Default False.</span>
</span><span id="load_df-90"><a href="#load_df-90"><span class="linenos"> 90</span></a><span class="sd"> gz : bool</span>
</span><span id="load_df-91"><a href="#load_df-91"><span class="linenos"> 91</span></a><span class="sd"> If True, assumes that data is gzipped. If False, assumes JSON file.</span>
</span><span id="load_df-92"><a href="#load_df-92"><span class="linenos"> 92</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="load_df-93"><a href="#load_df-93"><span class="linenos"> 93</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">fname</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;.csv&#39;</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">fname</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;.gz&#39;</span><span class="p">):</span>
</span><span id="load_df-94"><a href="#load_df-94"><span class="linenos"> 94</span></a> <span class="n">fname</span> <span class="o">+=</span> <span class="s1">&#39;.csv&#39;</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="load_df-93"><a href="#load_df-93"><span class="linenos"> 93</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="load_df-94"><a href="#load_df-94"><span class="linenos"> 94</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-95"><a href="#load_df-95"><span class="linenos"> 95</span></a>
</span><span id="load_df-96"><a href="#load_df-96"><span class="linenos"> 96</span></a> <span class="k">if</span> <span class="n">gz</span> <span class="ow">is</span> <span class="kc">True</span><span class="p">:</span>
</span><span id="load_df-97"><a href="#load_df-97"><span class="linenos"> 97</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">fname</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;.gz&#39;</span><span class="p">):</span>
</span><span id="load_df-98"><a href="#load_df-98"><span class="linenos"> 98</span></a> <span class="n">fname</span> <span class="o">+=</span> <span class="s1">&#39;.gz&#39;</span>
</span><span id="load_df-99"><a href="#load_df-99"><span class="linenos"> 99</span></a> <span class="k">with</span> <span class="n">gzip</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="n">fname</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
</span><span id="load_df-100"><a href="#load_df-100"><span class="linenos">100</span></a> <span class="n">re_import</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">read_csv</span><span class="p">(</span><span class="n">f</span><span class="p">)</span>
</span><span id="load_df-101"><a href="#load_df-101"><span class="linenos">101</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="load_df-102"><a href="#load_df-102"><span class="linenos">102</span></a> <span class="k">if</span> <span class="n">fname</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;.gz&#39;</span><span class="p">):</span>
</span><span id="load_df-103"><a href="#load_df-103"><span class="linenos">103</span></a> <span class="n">warnings</span><span class="o">.</span><span class="n">warn</span><span class="p">(</span><span class="s2">&quot;Trying to read from </span><span class="si">%s</span><span class="s2"> without unzipping!&quot;</span> <span class="o">%</span> <span class="n">fname</span><span class="p">,</span> <span class="ne">UserWarning</span><span class="p">)</span>
</span><span id="load_df-104"><a href="#load_df-104"><span class="linenos">104</span></a> <span class="n">re_import</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">read_csv</span><span class="p">(</span><span class="n">fname</span><span class="p">)</span>
</span><span id="load_df-96"><a href="#load_df-96"><span class="linenos"> 96</span></a><span class="sd"> Parameters</span>
</span><span id="load_df-97"><a href="#load_df-97"><span class="linenos"> 97</span></a><span class="sd"> ----------</span>
</span><span id="load_df-98"><a href="#load_df-98"><span class="linenos"> 98</span></a><span class="sd"> fname : str</span>
</span><span id="load_df-99"><a href="#load_df-99"><span class="linenos"> 99</span></a><span class="sd"> Filename of the input file.</span>
</span><span id="load_df-100"><a href="#load_df-100"><span class="linenos">100</span></a><span class="sd"> auto_gamma : bool</span>
</span><span id="load_df-101"><a href="#load_df-101"><span class="linenos">101</span></a><span class="sd"> If True applies the gamma_method to all imported Obs objects with the default parameters for</span>
</span><span id="load_df-102"><a href="#load_df-102"><span class="linenos">102</span></a><span class="sd"> the error analysis. Default False.</span>
</span><span id="load_df-103"><a href="#load_df-103"><span class="linenos">103</span></a><span class="sd"> gz : bool</span>
</span><span id="load_df-104"><a href="#load_df-104"><span class="linenos">104</span></a><span class="sd"> If True, assumes that data is gzipped. If False, assumes JSON file.</span>
</span><span id="load_df-105"><a href="#load_df-105"><span class="linenos">105</span></a>
</span><span id="load_df-106"><a href="#load_df-106"><span class="linenos">106</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="load_df-106"><a href="#load_df-106"><span class="linenos">106</span></a><span class="sd"> Returns</span>
</span><span id="load_df-107"><a href="#load_df-107"><span class="linenos">107</span></a><span class="sd"> -------</span>
</span><span id="load_df-108"><a href="#load_df-108"><span class="linenos">108</span></a><span class="sd"> data : pandas.DataFrame</span>
</span><span id="load_df-109"><a href="#load_df-109"><span class="linenos">109</span></a><span class="sd"> Dataframe with the content of the sqlite database.</span>
</span><span id="load_df-110"><a href="#load_df-110"><span class="linenos">110</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="load_df-111"><a href="#load_df-111"><span class="linenos">111</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">fname</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;.csv&#39;</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">fname</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;.gz&#39;</span><span class="p">):</span>
</span><span id="load_df-112"><a href="#load_df-112"><span class="linenos">112</span></a> <span class="n">fname</span> <span class="o">+=</span> <span class="s1">&#39;.csv&#39;</span>
</span><span id="load_df-113"><a href="#load_df-113"><span class="linenos">113</span></a>
</span><span id="load_df-114"><a href="#load_df-114"><span class="linenos">114</span></a> <span class="k">if</span> <span class="n">gz</span> <span class="ow">is</span> <span class="kc">True</span><span class="p">:</span>
</span><span id="load_df-115"><a href="#load_df-115"><span class="linenos">115</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">fname</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;.gz&#39;</span><span class="p">):</span>
</span><span id="load_df-116"><a href="#load_df-116"><span class="linenos">116</span></a> <span class="n">fname</span> <span class="o">+=</span> <span class="s1">&#39;.gz&#39;</span>
</span><span id="load_df-117"><a href="#load_df-117"><span class="linenos">117</span></a> <span class="k">with</span> <span class="n">gzip</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="n">fname</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
</span><span id="load_df-118"><a href="#load_df-118"><span class="linenos">118</span></a> <span class="n">re_import</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">read_csv</span><span class="p">(</span><span class="n">f</span><span class="p">)</span>
</span><span id="load_df-119"><a href="#load_df-119"><span class="linenos">119</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="load_df-120"><a href="#load_df-120"><span class="linenos">120</span></a> <span class="k">if</span> <span class="n">fname</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;.gz&#39;</span><span class="p">):</span>
</span><span id="load_df-121"><a href="#load_df-121"><span class="linenos">121</span></a> <span class="n">warnings</span><span class="o">.</span><span class="n">warn</span><span class="p">(</span><span class="s2">&quot;Trying to read from </span><span class="si">%s</span><span class="s2"> without unzipping!&quot;</span> <span class="o">%</span> <span class="n">fname</span><span class="p">,</span> <span class="ne">UserWarning</span><span class="p">)</span>
</span><span id="load_df-122"><a href="#load_df-122"><span class="linenos">122</span></a> <span class="n">re_import</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">read_csv</span><span class="p">(</span><span class="n">fname</span><span class="p">)</span>
</span><span id="load_df-123"><a href="#load_df-123"><span class="linenos">123</span></a>
</span><span id="load_df-124"><a href="#load_df-124"><span class="linenos">124</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></pre></div>
@ -455,6 +510,13 @@ the error analysis. Default False.</li>
<li><strong>gz</strong> (bool):
If True, assumes that data is gzipped. If False, assumes JSON file.</li>
</ul>
<h6 id="returns">Returns</h6>
<ul>
<li><strong>data</strong> (pandas.DataFrame):
Dataframe with the content of the sqlite database.</li>
</ul>
</div>

File diff suppressed because it is too large Load diff

View file

@ -90,18 +90,24 @@
</span><span id="L-10"><a href="#L-10"><span class="linenos">10</span></a><span class="sd"> idl of the current replicum</span>
</span><span id="L-11"><a href="#L-11"><span class="linenos">11</span></a><span class="sd"> che : list</span>
</span><span id="L-12"><a href="#L-12"><span class="linenos">12</span></a><span class="sd"> list of configurations to be checked against</span>
</span><span id="L-13"><a href="#L-13"><span class="linenos">13</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-14"><a href="#L-14"><span class="linenos">14</span></a> <span class="n">missing</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-15"><a href="#L-15"><span class="linenos">15</span></a> <span class="k">for</span> <span class="n">c</span> <span class="ow">in</span> <span class="n">che</span><span class="p">:</span>
</span><span id="L-16"><a href="#L-16"><span class="linenos">16</span></a> <span class="k">if</span> <span class="n">c</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">idl</span><span class="p">:</span>
</span><span id="L-17"><a href="#L-17"><span class="linenos">17</span></a> <span class="n">missing</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">c</span><span class="p">)</span>
</span><span id="L-18"><a href="#L-18"><span class="linenos">18</span></a> <span class="c1"># print missing configurations such that it can directly be parsed to slurm terminal</span>
</span><span id="L-19"><a href="#L-19"><span class="linenos">19</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">missing</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">):</span>
</span><span id="L-20"><a href="#L-20"><span class="linenos">20</span></a> <span class="nb">print</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">missing</span><span class="p">),</span> <span class="s2">&quot;configs missing&quot;</span><span class="p">)</span>
</span><span id="L-21"><a href="#L-21"><span class="linenos">21</span></a> <span class="n">miss_str</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">missing</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="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">missing</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 class="n">miss_str</span> <span class="o">+=</span> <span class="s2">&quot;,&quot;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">i</span><span class="p">)</span>
</span><span id="L-24"><a href="#L-24"><span class="linenos">24</span></a> <span class="nb">print</span><span class="p">(</span><span class="n">miss_str</span><span class="p">)</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"> Returns</span>
</span><span id="L-15"><a href="#L-15"><span class="linenos">15</span></a><span class="sd"> -------</span>
</span><span id="L-16"><a href="#L-16"><span class="linenos">16</span></a><span class="sd"> miss_str : str</span>
</span><span id="L-17"><a href="#L-17"><span class="linenos">17</span></a><span class="sd"> string with integers of which idls are missing</span>
</span><span id="L-18"><a href="#L-18"><span class="linenos">18</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-19"><a href="#L-19"><span class="linenos">19</span></a> <span class="n">missing</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-20"><a href="#L-20"><span class="linenos">20</span></a> <span class="k">for</span> <span class="n">c</span> <span class="ow">in</span> <span class="n">che</span><span class="p">:</span>
</span><span id="L-21"><a href="#L-21"><span class="linenos">21</span></a> <span class="k">if</span> <span class="n">c</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">idl</span><span class="p">:</span>
</span><span id="L-22"><a href="#L-22"><span class="linenos">22</span></a> <span class="n">missing</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">c</span><span class="p">)</span>
</span><span id="L-23"><a href="#L-23"><span class="linenos">23</span></a> <span class="c1"># print missing configurations such that it can directly be parsed to slurm terminal</span>
</span><span id="L-24"><a href="#L-24"><span class="linenos">24</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">missing</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">):</span>
</span><span id="L-25"><a href="#L-25"><span class="linenos">25</span></a> <span class="nb">print</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">missing</span><span class="p">),</span> <span class="s2">&quot;configs missing&quot;</span><span class="p">)</span>
</span><span id="L-26"><a href="#L-26"><span class="linenos">26</span></a> <span class="n">miss_str</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">missing</span><span class="p">[</span><span class="mi">0</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">i</span> <span class="ow">in</span> <span class="n">missing</span><span class="p">[</span><span class="mi">1</span><span class="p">:]:</span>
</span><span id="L-28"><a href="#L-28"><span class="linenos">28</span></a> <span class="n">miss_str</span> <span class="o">+=</span> <span class="s2">&quot;,&quot;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">i</span><span class="p">)</span>
</span><span id="L-29"><a href="#L-29"><span class="linenos">29</span></a> <span class="nb">print</span><span class="p">(</span><span class="n">miss_str</span><span class="p">)</span>
</span><span id="L-30"><a href="#L-30"><span class="linenos">30</span></a> <span class="k">return</span> <span class="n">miss_str</span>
</span></pre></div>
@ -126,18 +132,24 @@
</span><span id="check_idl-11"><a href="#check_idl-11"><span class="linenos">11</span></a><span class="sd"> idl of the current replicum</span>
</span><span id="check_idl-12"><a href="#check_idl-12"><span class="linenos">12</span></a><span class="sd"> che : list</span>
</span><span id="check_idl-13"><a href="#check_idl-13"><span class="linenos">13</span></a><span class="sd"> list of configurations to be checked against</span>
</span><span id="check_idl-14"><a href="#check_idl-14"><span class="linenos">14</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="check_idl-15"><a href="#check_idl-15"><span class="linenos">15</span></a> <span class="n">missing</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="check_idl-16"><a href="#check_idl-16"><span class="linenos">16</span></a> <span class="k">for</span> <span class="n">c</span> <span class="ow">in</span> <span class="n">che</span><span class="p">:</span>
</span><span id="check_idl-17"><a href="#check_idl-17"><span class="linenos">17</span></a> <span class="k">if</span> <span class="n">c</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">idl</span><span class="p">:</span>
</span><span id="check_idl-18"><a href="#check_idl-18"><span class="linenos">18</span></a> <span class="n">missing</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">c</span><span class="p">)</span>
</span><span id="check_idl-19"><a href="#check_idl-19"><span class="linenos">19</span></a> <span class="c1"># print missing configurations such that it can directly be parsed to slurm terminal</span>
</span><span id="check_idl-20"><a href="#check_idl-20"><span class="linenos">20</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">missing</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">):</span>
</span><span id="check_idl-21"><a href="#check_idl-21"><span class="linenos">21</span></a> <span class="nb">print</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">missing</span><span class="p">),</span> <span class="s2">&quot;configs missing&quot;</span><span class="p">)</span>
</span><span id="check_idl-22"><a href="#check_idl-22"><span class="linenos">22</span></a> <span class="n">miss_str</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">missing</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
</span><span id="check_idl-23"><a href="#check_idl-23"><span class="linenos">23</span></a> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">missing</span><span class="p">[</span><span class="mi">1</span><span class="p">:]:</span>
</span><span id="check_idl-24"><a href="#check_idl-24"><span class="linenos">24</span></a> <span class="n">miss_str</span> <span class="o">+=</span> <span class="s2">&quot;,&quot;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">i</span><span class="p">)</span>
</span><span id="check_idl-25"><a href="#check_idl-25"><span class="linenos">25</span></a> <span class="nb">print</span><span class="p">(</span><span class="n">miss_str</span><span class="p">)</span>
</span><span id="check_idl-14"><a href="#check_idl-14"><span class="linenos">14</span></a>
</span><span id="check_idl-15"><a href="#check_idl-15"><span class="linenos">15</span></a><span class="sd"> Returns</span>
</span><span id="check_idl-16"><a href="#check_idl-16"><span class="linenos">16</span></a><span class="sd"> -------</span>
</span><span id="check_idl-17"><a href="#check_idl-17"><span class="linenos">17</span></a><span class="sd"> miss_str : str</span>
</span><span id="check_idl-18"><a href="#check_idl-18"><span class="linenos">18</span></a><span class="sd"> string with integers of which idls are missing</span>
</span><span id="check_idl-19"><a href="#check_idl-19"><span class="linenos">19</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="check_idl-20"><a href="#check_idl-20"><span class="linenos">20</span></a> <span class="n">missing</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="check_idl-21"><a href="#check_idl-21"><span class="linenos">21</span></a> <span class="k">for</span> <span class="n">c</span> <span class="ow">in</span> <span class="n">che</span><span class="p">:</span>
</span><span id="check_idl-22"><a href="#check_idl-22"><span class="linenos">22</span></a> <span class="k">if</span> <span class="n">c</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">idl</span><span class="p">:</span>
</span><span id="check_idl-23"><a href="#check_idl-23"><span class="linenos">23</span></a> <span class="n">missing</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">c</span><span class="p">)</span>
</span><span id="check_idl-24"><a href="#check_idl-24"><span class="linenos">24</span></a> <span class="c1"># print missing configurations such that it can directly be parsed to slurm terminal</span>
</span><span id="check_idl-25"><a href="#check_idl-25"><span class="linenos">25</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">missing</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">):</span>
</span><span id="check_idl-26"><a href="#check_idl-26"><span class="linenos">26</span></a> <span class="nb">print</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">missing</span><span class="p">),</span> <span class="s2">&quot;configs missing&quot;</span><span class="p">)</span>
</span><span id="check_idl-27"><a href="#check_idl-27"><span class="linenos">27</span></a> <span class="n">miss_str</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">missing</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
</span><span id="check_idl-28"><a href="#check_idl-28"><span class="linenos">28</span></a> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">missing</span><span class="p">[</span><span class="mi">1</span><span class="p">:]:</span>
</span><span id="check_idl-29"><a href="#check_idl-29"><span class="linenos">29</span></a> <span class="n">miss_str</span> <span class="o">+=</span> <span class="s2">&quot;,&quot;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">i</span><span class="p">)</span>
</span><span id="check_idl-30"><a href="#check_idl-30"><span class="linenos">30</span></a> <span class="nb">print</span><span class="p">(</span><span class="n">miss_str</span><span class="p">)</span>
</span><span id="check_idl-31"><a href="#check_idl-31"><span class="linenos">31</span></a> <span class="k">return</span> <span class="n">miss_str</span>
</span></pre></div>
@ -151,6 +163,13 @@ idl of the current replicum</li>
<li><strong>che</strong> (list):
list of configurations to be checked against</li>
</ul>
<h6 id="returns">Returns</h6>
<ul>
<li><strong>miss_str</strong> (str):
string with integers of which idls are missing</li>
</ul>
</div>

View file

@ -101,105 +101,124 @@
</span><span id="L-14"><a href="#L-14"><span class="linenos"> 14</span></a><span class="sd"> name of the file</span>
</span><span id="L-15"><a href="#L-15"><span class="linenos"> 15</span></a><span class="sd"> path : str</span>
</span><span id="L-16"><a href="#L-16"><span class="linenos"> 16</span></a><span class="sd"> specifies a custom path for the file (default &#39;.&#39;)</span>
</span><span id="L-17"><a href="#L-17"><span class="linenos"> 17</span></a><span class="sd"> &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="s1">&#39;path&#39;</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
</span><span id="L-19"><a href="#L-19"><span class="linenos"> 19</span></a> <span class="n">file_name</span> <span class="o">=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;path&#39;</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;/&#39;</span> <span class="o">+</span> <span class="n">name</span> <span class="o">+</span> <span class="s1">&#39;.p&#39;</span>
</span><span id="L-20"><a href="#L-20"><span class="linenos"> 20</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-21"><a href="#L-21"><span class="linenos"> 21</span></a> <span class="n">file_name</span> <span class="o">=</span> <span class="n">name</span> <span class="o">+</span> <span class="s1">&#39;.p&#39;</span>
</span><span id="L-22"><a href="#L-22"><span class="linenos"> 22</span></a> <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">file_name</span><span class="p">,</span> <span class="s1">&#39;wb&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="n">fb</span><span class="p">:</span>
</span><span id="L-23"><a href="#L-23"><span class="linenos"> 23</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-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">load_object</span><span class="p">(</span><span class="n">path</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;Load object from pickle file.</span>
</span><span id="L-17"><a href="#L-17"><span class="linenos"> 17</span></a>
</span><span id="L-18"><a href="#L-18"><span class="linenos"> 18</span></a><span class="sd"> Returns</span>
</span><span id="L-19"><a href="#L-19"><span class="linenos"> 19</span></a><span class="sd"> -------</span>
</span><span id="L-20"><a href="#L-20"><span class="linenos"> 20</span></a><span class="sd"> None</span>
</span><span id="L-21"><a href="#L-21"><span class="linenos"> 21</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-22"><a href="#L-22"><span class="linenos"> 22</span></a> <span class="k">if</span> <span class="s1">&#39;path&#39;</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
</span><span id="L-23"><a href="#L-23"><span class="linenos"> 23</span></a> <span class="n">file_name</span> <span class="o">=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;path&#39;</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;/&#39;</span> <span class="o">+</span> <span class="n">name</span> <span class="o">+</span> <span class="s1">&#39;.p&#39;</span>
</span><span id="L-24"><a href="#L-24"><span class="linenos"> 24</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-25"><a href="#L-25"><span class="linenos"> 25</span></a> <span class="n">file_name</span> <span class="o">=</span> <span class="n">name</span> <span class="o">+</span> <span class="s1">&#39;.p&#39;</span>
</span><span id="L-26"><a href="#L-26"><span class="linenos"> 26</span></a> <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">file_name</span><span class="p">,</span> <span class="s1">&#39;wb&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="n">fb</span><span class="p">:</span>
</span><span id="L-27"><a href="#L-27"><span class="linenos"> 27</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-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>
</span><span id="L-30"><a href="#L-30"><span class="linenos"> 30</span></a><span class="sd"> ----------</span>
</span><span id="L-31"><a href="#L-31"><span class="linenos"> 31</span></a><span class="sd"> path : str</span>
</span><span id="L-32"><a href="#L-32"><span class="linenos"> 32</span></a><span class="sd"> path to the file</span>
</span><span id="L-33"><a href="#L-33"><span class="linenos"> 33</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-34"><a href="#L-34"><span class="linenos"> 34</span></a> <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="s1">&#39;rb&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="n">file</span><span class="p">:</span>
</span><span id="L-35"><a href="#L-35"><span class="linenos"> 35</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-36"><a href="#L-36"><span class="linenos"> 36</span></a>
</span><span id="L-29"><a href="#L-29"><span class="linenos"> 29</span></a>
</span><span id="L-30"><a href="#L-30"><span class="linenos"> 30</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-31"><a href="#L-31"><span class="linenos"> 31</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Load object from pickle file.</span>
</span><span id="L-32"><a href="#L-32"><span class="linenos"> 32</span></a>
</span><span id="L-33"><a href="#L-33"><span class="linenos"> 33</span></a><span class="sd"> Parameters</span>
</span><span id="L-34"><a href="#L-34"><span class="linenos"> 34</span></a><span class="sd"> ----------</span>
</span><span id="L-35"><a href="#L-35"><span class="linenos"> 35</span></a><span class="sd"> path : str</span>
</span><span id="L-36"><a href="#L-36"><span class="linenos"> 36</span></a><span class="sd"> path to the file</span>
</span><span id="L-37"><a href="#L-37"><span class="linenos"> 37</span></a>
</span><span id="L-38"><a href="#L-38"><span class="linenos"> 38</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-39"><a href="#L-39"><span class="linenos"> 39</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-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="sd"> Parameters</span>
</span><span id="L-42"><a href="#L-42"><span class="linenos"> 42</span></a><span class="sd"> ----------</span>
</span><span id="L-43"><a href="#L-43"><span class="linenos"> 43</span></a><span class="sd"> value : float</span>
</span><span id="L-44"><a href="#L-44"><span class="linenos"> 44</span></a><span class="sd"> central value of the Obs to be generated.</span>
</span><span id="L-45"><a href="#L-45"><span class="linenos"> 45</span></a><span class="sd"> dvalue : float</span>
</span><span id="L-46"><a href="#L-46"><span class="linenos"> 46</span></a><span class="sd"> error of the Obs to be generated.</span>
</span><span id="L-47"><a href="#L-47"><span class="linenos"> 47</span></a><span class="sd"> name : str</span>
</span><span id="L-48"><a href="#L-48"><span class="linenos"> 48</span></a><span class="sd"> name of the ensemble for which the Obs is to be generated.</span>
</span><span id="L-49"><a href="#L-49"><span class="linenos"> 49</span></a><span class="sd"> samples: int</span>
</span><span id="L-50"><a href="#L-50"><span class="linenos"> 50</span></a><span class="sd"> number of samples for the Obs (default 1000).</span>
</span><span id="L-51"><a href="#L-51"><span class="linenos"> 51</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-52"><a href="#L-52"><span class="linenos"> 52</span></a> <span class="k">if</span> <span class="n">dvalue</span> <span class="o">&lt;=</span> <span class="mf">0.0</span><span class="p">:</span>
</span><span id="L-53"><a href="#L-53"><span class="linenos"> 53</span></a> <span class="k">return</span> <span class="n">Obs</span><span class="p">([</span><span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="n">samples</span><span class="p">)</span> <span class="o">+</span> <span class="n">value</span><span class="p">],</span> <span class="p">[</span><span class="n">name</span><span class="p">])</span>
</span><span id="L-54"><a href="#L-54"><span class="linenos"> 54</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-55"><a href="#L-55"><span class="linenos"> 55</span></a> <span class="k">for</span> <span class="n">_</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">100</span><span class="p">):</span>
</span><span id="L-56"><a href="#L-56"><span class="linenos"> 56</span></a> <span class="n">deltas</span> <span class="o">=</span> <span class="p">[</span><span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">normal</span><span class="p">(</span><span class="mf">0.0</span><span class="p">,</span> <span class="n">dvalue</span> <span class="o">*</span> <span class="n">np</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="n">samples</span><span class="p">),</span> <span class="n">samples</span><span class="p">)]</span>
</span><span id="L-57"><a href="#L-57"><span class="linenos"> 57</span></a> <span class="n">deltas</span> <span class="o">-=</span> <span class="n">np</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">deltas</span><span class="p">)</span>
</span><span id="L-58"><a href="#L-58"><span class="linenos"> 58</span></a> <span class="n">deltas</span> <span class="o">*=</span> <span class="n">dvalue</span> <span class="o">/</span> <span class="n">np</span><span class="o">.</span><span class="n">sqrt</span><span class="p">((</span><span class="n">np</span><span class="o">.</span><span class="n">var</span><span class="p">(</span><span class="n">deltas</span><span class="p">)</span> <span class="o">/</span> <span class="n">samples</span><span class="p">))</span> <span class="o">/</span> <span class="n">np</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="mi">1</span> <span class="o">+</span> <span class="mi">3</span> <span class="o">/</span> <span class="n">samples</span><span class="p">)</span>
</span><span id="L-59"><a href="#L-59"><span class="linenos"> 59</span></a> <span class="n">deltas</span> <span class="o">+=</span> <span class="n">value</span>
</span><span id="L-60"><a href="#L-60"><span class="linenos"> 60</span></a> <span class="n">res</span> <span class="o">=</span> <span class="n">Obs</span><span class="p">(</span><span class="n">deltas</span><span class="p">,</span> <span class="p">[</span><span class="n">name</span><span class="p">])</span>
</span><span id="L-61"><a href="#L-61"><span class="linenos"> 61</span></a> <span class="n">res</span><span class="o">.</span><span class="n">gamma_method</span><span class="p">(</span><span class="n">S</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span> <span class="n">tau_exp</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span>
</span><span id="L-62"><a href="#L-62"><span class="linenos"> 62</span></a> <span class="k">if</span> <span class="nb">abs</span><span class="p">(</span><span class="n">res</span><span class="o">.</span><span class="n">dvalue</span> <span class="o">-</span> <span class="n">dvalue</span><span class="p">)</span> <span class="o">&lt;</span> <span class="mf">1e-10</span> <span class="o">*</span> <span class="n">dvalue</span><span class="p">:</span>
</span><span id="L-63"><a href="#L-63"><span class="linenos"> 63</span></a> <span class="k">break</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="n">res</span><span class="o">.</span><span class="n">_value</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
</span><span id="L-66"><a href="#L-66"><span class="linenos"> 66</span></a>
</span><span id="L-67"><a href="#L-67"><span class="linenos"> 67</span></a> <span class="k">return</span> <span class="n">res</span>
</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><span id="L-70"><a href="#L-70"><span class="linenos"> 70</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-71"><a href="#L-71"><span class="linenos"> 71</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-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="sd"> Parameters</span>
</span><span id="L-74"><a href="#L-74"><span class="linenos"> 74</span></a><span class="sd"> ----------</span>
</span><span id="L-75"><a href="#L-75"><span class="linenos"> 75</span></a><span class="sd"> means : list</span>
</span><span id="L-76"><a href="#L-76"><span class="linenos"> 76</span></a><span class="sd"> list containing the mean value of each observable.</span>
</span><span id="L-77"><a href="#L-77"><span class="linenos"> 77</span></a><span class="sd"> cov : numpy.ndarray</span>
</span><span id="L-78"><a href="#L-78"><span class="linenos"> 78</span></a><span class="sd"> covariance matrix for the data to be generated.</span>
</span><span id="L-79"><a href="#L-79"><span class="linenos"> 79</span></a><span class="sd"> name : str</span>
</span><span id="L-80"><a href="#L-80"><span class="linenos"> 80</span></a><span class="sd"> ensemble name for the data to be geneated.</span>
</span><span id="L-81"><a href="#L-81"><span class="linenos"> 81</span></a><span class="sd"> tau : float or list</span>
</span><span id="L-82"><a href="#L-82"><span class="linenos"> 82</span></a><span class="sd"> can either be a real number or a list with an entry for</span>
</span><span id="L-83"><a href="#L-83"><span class="linenos"> 83</span></a><span class="sd"> every dataset.</span>
</span><span id="L-84"><a href="#L-84"><span class="linenos"> 84</span></a><span class="sd"> samples : int</span>
</span><span id="L-85"><a href="#L-85"><span class="linenos"> 85</span></a><span class="sd"> number of samples to be generated for each observable.</span>
</span><span id="L-86"><a href="#L-86"><span class="linenos"> 86</span></a><span class="sd"> &quot;&quot;&quot;</span>
</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">assert</span> <span class="nb">len</span><span class="p">(</span><span class="n">means</span><span class="p">)</span> <span class="o">==</span> <span class="n">cov</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-89"><a href="#L-89"><span class="linenos"> 89</span></a> <span class="n">tau</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">tau</span><span class="p">)</span>
</span><span id="L-90"><a href="#L-90"><span class="linenos"> 90</span></a> <span class="k">if</span> <span class="n">np</span><span class="o">.</span><span class="n">min</span><span class="p">(</span><span class="n">tau</span><span class="p">)</span> <span class="o">&lt;</span> <span class="mf">0.5</span><span class="p">:</span>
</span><span id="L-91"><a href="#L-91"><span class="linenos"> 91</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;All integrated autocorrelations have to be &gt;= 0.5.&#39;</span><span class="p">)</span>
</span><span id="L-92"><a href="#L-92"><span class="linenos"> 92</span></a>
</span><span id="L-93"><a href="#L-93"><span class="linenos"> 93</span></a> <span class="n">a</span> <span class="o">=</span> <span class="p">(</span><span class="mi">2</span> <span class="o">*</span> <span class="n">tau</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> <span class="o">/</span> <span class="p">(</span><span class="mi">2</span> <span class="o">*</span> <span class="n">tau</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span>
</span><span id="L-94"><a href="#L-94"><span class="linenos"> 94</span></a> <span class="n">rand</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">multivariate_normal</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">zeros_like</span><span class="p">(</span><span class="n">means</span><span class="p">),</span> <span class="n">cov</span> <span class="o">*</span> <span class="n">samples</span><span class="p">,</span> <span class="n">samples</span><span class="p">)</span>
</span><span id="L-95"><a href="#L-95"><span class="linenos"> 95</span></a>
</span><span id="L-96"><a href="#L-96"><span class="linenos"> 96</span></a> <span class="c1"># Normalize samples such that sample variance matches input</span>
</span><span id="L-97"><a href="#L-97"><span class="linenos"> 97</span></a> <span class="n">norm</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">np</span><span class="o">.</span><span class="n">var</span><span class="p">(</span><span class="n">o</span><span class="p">,</span> <span class="n">ddof</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span> <span class="o">/</span> <span class="n">samples</span> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">rand</span><span class="o">.</span><span class="n">T</span><span class="p">])</span>
</span><span id="L-98"><a href="#L-98"><span class="linenos"> 98</span></a> <span class="n">rand</span> <span class="o">=</span> <span class="n">rand</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="n">np</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">diag</span><span class="p">(</span><span class="n">cov</span><span class="p">)))</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">sqrt</span><span class="p">(</span><span class="n">norm</span><span class="p">))</span>
</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="n">data</span> <span class="o">=</span> <span class="p">[</span><span class="n">rand</span><span class="p">[</span><span class="mi">0</span><span class="p">]]</span>
</span><span id="L-101"><a href="#L-101"><span class="linenos">101</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="mi">1</span><span class="p">,</span> <span class="n">samples</span><span class="p">):</span>
</span><span id="L-102"><a href="#L-102"><span class="linenos">102</span></a> <span class="n">data</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">sqrt</span><span class="p">(</span><span class="mi">1</span> <span class="o">-</span> <span class="n">a</span> <span class="o">**</span> <span class="mi">2</span><span class="p">)</span> <span class="o">*</span> <span class="n">rand</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">+</span> <span class="n">a</span> <span class="o">*</span> <span class="n">data</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span>
</span><span id="L-103"><a href="#L-103"><span class="linenos">103</span></a> <span class="n">corr_data</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">data</span><span class="p">)</span> <span class="o">-</span> <span class="n">np</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">data</span><span class="p">,</span> <span class="n">axis</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span> <span class="o">+</span> <span class="n">means</span>
</span><span id="L-104"><a href="#L-104"><span class="linenos">104</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-105"><a href="#L-105"><span class="linenos">105</span></a>
</span><span id="L-38"><a href="#L-38"><span class="linenos"> 38</span></a><span class="sd"> Returns</span>
</span><span id="L-39"><a href="#L-39"><span class="linenos"> 39</span></a><span class="sd"> -------</span>
</span><span id="L-40"><a href="#L-40"><span class="linenos"> 40</span></a><span class="sd"> object : Obs</span>
</span><span id="L-41"><a href="#L-41"><span class="linenos"> 41</span></a><span class="sd"> Loaded Object</span>
</span><span id="L-42"><a href="#L-42"><span class="linenos"> 42</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-43"><a href="#L-43"><span class="linenos"> 43</span></a> <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="s1">&#39;rb&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="n">file</span><span class="p">:</span>
</span><span id="L-44"><a href="#L-44"><span class="linenos"> 44</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-45"><a href="#L-45"><span class="linenos"> 45</span></a>
</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">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-48"><a href="#L-48"><span class="linenos"> 48</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-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>
</span><span id="L-51"><a href="#L-51"><span class="linenos"> 51</span></a><span class="sd"> ----------</span>
</span><span id="L-52"><a href="#L-52"><span class="linenos"> 52</span></a><span class="sd"> value : float</span>
</span><span id="L-53"><a href="#L-53"><span class="linenos"> 53</span></a><span class="sd"> central value of the Obs to be generated.</span>
</span><span id="L-54"><a href="#L-54"><span class="linenos"> 54</span></a><span class="sd"> dvalue : float</span>
</span><span id="L-55"><a href="#L-55"><span class="linenos"> 55</span></a><span class="sd"> error of the Obs to be generated.</span>
</span><span id="L-56"><a href="#L-56"><span class="linenos"> 56</span></a><span class="sd"> name : str</span>
</span><span id="L-57"><a href="#L-57"><span class="linenos"> 57</span></a><span class="sd"> name of the ensemble for which the Obs is to be generated.</span>
</span><span id="L-58"><a href="#L-58"><span class="linenos"> 58</span></a><span class="sd"> samples: int</span>
</span><span id="L-59"><a href="#L-59"><span class="linenos"> 59</span></a><span class="sd"> number of samples for the Obs (default 1000).</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 class="sd"> Returns</span>
</span><span id="L-62"><a href="#L-62"><span class="linenos"> 62</span></a><span class="sd"> -------</span>
</span><span id="L-63"><a href="#L-63"><span class="linenos"> 63</span></a><span class="sd"> res : Obs</span>
</span><span id="L-64"><a href="#L-64"><span class="linenos"> 64</span></a><span class="sd"> Generated Observable</span>
</span><span id="L-65"><a href="#L-65"><span class="linenos"> 65</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-66"><a href="#L-66"><span class="linenos"> 66</span></a> <span class="k">if</span> <span class="n">dvalue</span> <span class="o">&lt;=</span> <span class="mf">0.0</span><span class="p">:</span>
</span><span id="L-67"><a href="#L-67"><span class="linenos"> 67</span></a> <span class="k">return</span> <span class="n">Obs</span><span class="p">([</span><span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="n">samples</span><span class="p">)</span> <span class="o">+</span> <span class="n">value</span><span class="p">],</span> <span class="p">[</span><span class="n">name</span><span class="p">])</span>
</span><span id="L-68"><a href="#L-68"><span class="linenos"> 68</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-69"><a href="#L-69"><span class="linenos"> 69</span></a> <span class="k">for</span> <span class="n">_</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">100</span><span class="p">):</span>
</span><span id="L-70"><a href="#L-70"><span class="linenos"> 70</span></a> <span class="n">deltas</span> <span class="o">=</span> <span class="p">[</span><span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">normal</span><span class="p">(</span><span class="mf">0.0</span><span class="p">,</span> <span class="n">dvalue</span> <span class="o">*</span> <span class="n">np</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="n">samples</span><span class="p">),</span> <span class="n">samples</span><span class="p">)]</span>
</span><span id="L-71"><a href="#L-71"><span class="linenos"> 71</span></a> <span class="n">deltas</span> <span class="o">-=</span> <span class="n">np</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">deltas</span><span class="p">)</span>
</span><span id="L-72"><a href="#L-72"><span class="linenos"> 72</span></a> <span class="n">deltas</span> <span class="o">*=</span> <span class="n">dvalue</span> <span class="o">/</span> <span class="n">np</span><span class="o">.</span><span class="n">sqrt</span><span class="p">((</span><span class="n">np</span><span class="o">.</span><span class="n">var</span><span class="p">(</span><span class="n">deltas</span><span class="p">)</span> <span class="o">/</span> <span class="n">samples</span><span class="p">))</span> <span class="o">/</span> <span class="n">np</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="mi">1</span> <span class="o">+</span> <span class="mi">3</span> <span class="o">/</span> <span class="n">samples</span><span class="p">)</span>
</span><span id="L-73"><a href="#L-73"><span class="linenos"> 73</span></a> <span class="n">deltas</span> <span class="o">+=</span> <span class="n">value</span>
</span><span id="L-74"><a href="#L-74"><span class="linenos"> 74</span></a> <span class="n">res</span> <span class="o">=</span> <span class="n">Obs</span><span class="p">(</span><span class="n">deltas</span><span class="p">,</span> <span class="p">[</span><span class="n">name</span><span class="p">])</span>
</span><span id="L-75"><a href="#L-75"><span class="linenos"> 75</span></a> <span class="n">res</span><span class="o">.</span><span class="n">gamma_method</span><span class="p">(</span><span class="n">S</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span> <span class="n">tau_exp</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span>
</span><span id="L-76"><a href="#L-76"><span class="linenos"> 76</span></a> <span class="k">if</span> <span class="nb">abs</span><span class="p">(</span><span class="n">res</span><span class="o">.</span><span class="n">dvalue</span> <span class="o">-</span> <span class="n">dvalue</span><span class="p">)</span> <span class="o">&lt;</span> <span class="mf">1e-10</span> <span class="o">*</span> <span class="n">dvalue</span><span class="p">:</span>
</span><span id="L-77"><a href="#L-77"><span class="linenos"> 77</span></a> <span class="k">break</span>
</span><span id="L-78"><a href="#L-78"><span class="linenos"> 78</span></a>
</span><span id="L-79"><a href="#L-79"><span class="linenos"> 79</span></a> <span class="n">res</span><span class="o">.</span><span class="n">_value</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
</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">return</span> <span class="n">res</span>
</span><span id="L-82"><a href="#L-82"><span class="linenos"> 82</span></a>
</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="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-85"><a href="#L-85"><span class="linenos"> 85</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-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 class="sd"> Parameters</span>
</span><span id="L-88"><a href="#L-88"><span class="linenos"> 88</span></a><span class="sd"> ----------</span>
</span><span id="L-89"><a href="#L-89"><span class="linenos"> 89</span></a><span class="sd"> means : list</span>
</span><span id="L-90"><a href="#L-90"><span class="linenos"> 90</span></a><span class="sd"> list containing the mean value of each observable.</span>
</span><span id="L-91"><a href="#L-91"><span class="linenos"> 91</span></a><span class="sd"> cov : numpy.ndarray</span>
</span><span id="L-92"><a href="#L-92"><span class="linenos"> 92</span></a><span class="sd"> covariance matrix for the data to be generated.</span>
</span><span id="L-93"><a href="#L-93"><span class="linenos"> 93</span></a><span class="sd"> name : str</span>
</span><span id="L-94"><a href="#L-94"><span class="linenos"> 94</span></a><span class="sd"> ensemble name for the data to be geneated.</span>
</span><span id="L-95"><a href="#L-95"><span class="linenos"> 95</span></a><span class="sd"> tau : float or list</span>
</span><span id="L-96"><a href="#L-96"><span class="linenos"> 96</span></a><span class="sd"> can either be a real number or a list with an entry for</span>
</span><span id="L-97"><a href="#L-97"><span class="linenos"> 97</span></a><span class="sd"> every dataset.</span>
</span><span id="L-98"><a href="#L-98"><span class="linenos"> 98</span></a><span class="sd"> samples : int</span>
</span><span id="L-99"><a href="#L-99"><span class="linenos"> 99</span></a><span class="sd"> number of samples to be generated for each observable.</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"> Returns</span>
</span><span id="L-102"><a href="#L-102"><span class="linenos">102</span></a><span class="sd"> -------</span>
</span><span id="L-103"><a href="#L-103"><span class="linenos">103</span></a><span class="sd"> corr_obs : list[Obs]</span>
</span><span id="L-104"><a href="#L-104"><span class="linenos">104</span></a><span class="sd"> Generated observable list</span>
</span><span id="L-105"><a href="#L-105"><span class="linenos">105</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-106"><a href="#L-106"><span class="linenos">106</span></a>
</span><span id="L-107"><a href="#L-107"><span class="linenos">107</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-108"><a href="#L-108"><span class="linenos">108</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-109"><a href="#L-109"><span class="linenos">109</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-110"><a href="#L-110"><span class="linenos">110</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>
</span><span id="L-111"><a href="#L-111"><span class="linenos">111</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">&quot;Wrong data type in list.&quot;</span><span class="p">)</span>
</span><span id="L-112"><a href="#L-112"><span class="linenos">112</span></a> <span class="k">for</span> <span class="n">attr</span> <span class="ow">in</span> <span class="p">[</span><span class="s2">&quot;reweighted&quot;</span><span class="p">,</span> <span class="s2">&quot;e_content&quot;</span><span class="p">,</span> <span class="s2">&quot;idl&quot;</span><span class="p">]:</span>
</span><span id="L-113"><a href="#L-113"><span class="linenos">113</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">ol</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">attr</span><span class="p">):</span>
</span><span id="L-114"><a href="#L-114"><span class="linenos">114</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">getattr</span><span class="p">(</span><span class="n">ol</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">attr</span><span class="p">)</span> <span class="o">==</span> <span class="nb">getattr</span><span class="p">(</span><span class="n">o</span><span class="p">,</span> <span class="n">attr</span><span class="p">):</span>
</span><span id="L-115"><a href="#L-115"><span class="linenos">115</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;All Obs in list have to have the same state &#39;</span><span class="si">{</span><span class="n">attr</span><span class="si">}</span><span class="s2">&#39;.&quot;</span><span class="p">)</span>
</span><span id="L-107"><a href="#L-107"><span class="linenos">107</span></a> <span class="k">assert</span> <span class="nb">len</span><span class="p">(</span><span class="n">means</span><span class="p">)</span> <span class="o">==</span> <span class="n">cov</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-108"><a href="#L-108"><span class="linenos">108</span></a> <span class="n">tau</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">tau</span><span class="p">)</span>
</span><span id="L-109"><a href="#L-109"><span class="linenos">109</span></a> <span class="k">if</span> <span class="n">np</span><span class="o">.</span><span class="n">min</span><span class="p">(</span><span class="n">tau</span><span class="p">)</span> <span class="o">&lt;</span> <span class="mf">0.5</span><span class="p">:</span>
</span><span id="L-110"><a href="#L-110"><span class="linenos">110</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;All integrated autocorrelations have to be &gt;= 0.5.&#39;</span><span class="p">)</span>
</span><span id="L-111"><a href="#L-111"><span class="linenos">111</span></a>
</span><span id="L-112"><a href="#L-112"><span class="linenos">112</span></a> <span class="n">a</span> <span class="o">=</span> <span class="p">(</span><span class="mi">2</span> <span class="o">*</span> <span class="n">tau</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> <span class="o">/</span> <span class="p">(</span><span class="mi">2</span> <span class="o">*</span> <span class="n">tau</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span>
</span><span id="L-113"><a href="#L-113"><span class="linenos">113</span></a> <span class="n">rand</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">multivariate_normal</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">zeros_like</span><span class="p">(</span><span class="n">means</span><span class="p">),</span> <span class="n">cov</span> <span class="o">*</span> <span class="n">samples</span><span class="p">,</span> <span class="n">samples</span><span class="p">)</span>
</span><span id="L-114"><a href="#L-114"><span class="linenos">114</span></a>
</span><span id="L-115"><a href="#L-115"><span class="linenos">115</span></a> <span class="c1"># Normalize samples such that sample variance matches input</span>
</span><span id="L-116"><a href="#L-116"><span class="linenos">116</span></a> <span class="n">norm</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">np</span><span class="o">.</span><span class="n">var</span><span class="p">(</span><span class="n">o</span><span class="p">,</span> <span class="n">ddof</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span> <span class="o">/</span> <span class="n">samples</span> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">rand</span><span class="o">.</span><span class="n">T</span><span class="p">])</span>
</span><span id="L-117"><a href="#L-117"><span class="linenos">117</span></a> <span class="n">rand</span> <span class="o">=</span> <span class="n">rand</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="n">np</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">diag</span><span class="p">(</span><span class="n">cov</span><span class="p">)))</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">sqrt</span><span class="p">(</span><span class="n">norm</span><span class="p">))</span>
</span><span id="L-118"><a href="#L-118"><span class="linenos">118</span></a>
</span><span id="L-119"><a href="#L-119"><span class="linenos">119</span></a> <span class="n">data</span> <span class="o">=</span> <span class="p">[</span><span class="n">rand</span><span class="p">[</span><span class="mi">0</span><span class="p">]]</span>
</span><span id="L-120"><a href="#L-120"><span class="linenos">120</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="mi">1</span><span class="p">,</span> <span class="n">samples</span><span class="p">):</span>
</span><span id="L-121"><a href="#L-121"><span class="linenos">121</span></a> <span class="n">data</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">sqrt</span><span class="p">(</span><span class="mi">1</span> <span class="o">-</span> <span class="n">a</span> <span class="o">**</span> <span class="mi">2</span><span class="p">)</span> <span class="o">*</span> <span class="n">rand</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">+</span> <span class="n">a</span> <span class="o">*</span> <span class="n">data</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span>
</span><span id="L-122"><a href="#L-122"><span class="linenos">122</span></a> <span class="n">corr_data</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">data</span><span class="p">)</span> <span class="o">-</span> <span class="n">np</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">data</span><span class="p">,</span> <span class="n">axis</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span> <span class="o">+</span> <span class="n">means</span>
</span><span id="L-123"><a href="#L-123"><span class="linenos">123</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-124"><a href="#L-124"><span class="linenos">124</span></a>
</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="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-127"><a href="#L-127"><span class="linenos">127</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-128"><a href="#L-128"><span class="linenos">128</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-129"><a href="#L-129"><span class="linenos">129</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>
</span><span id="L-130"><a href="#L-130"><span class="linenos">130</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">&quot;Wrong data type in list.&quot;</span><span class="p">)</span>
</span><span id="L-131"><a href="#L-131"><span class="linenos">131</span></a> <span class="k">for</span> <span class="n">attr</span> <span class="ow">in</span> <span class="p">[</span><span class="s2">&quot;reweighted&quot;</span><span class="p">,</span> <span class="s2">&quot;e_content&quot;</span><span class="p">,</span> <span class="s2">&quot;idl&quot;</span><span class="p">]:</span>
</span><span id="L-132"><a href="#L-132"><span class="linenos">132</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">ol</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">attr</span><span class="p">):</span>
</span><span id="L-133"><a href="#L-133"><span class="linenos">133</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">getattr</span><span class="p">(</span><span class="n">ol</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">attr</span><span class="p">)</span> <span class="o">==</span> <span class="nb">getattr</span><span class="p">(</span><span class="n">o</span><span class="p">,</span> <span class="n">attr</span><span class="p">):</span>
</span><span id="L-134"><a href="#L-134"><span class="linenos">134</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;All Obs in list have to have the same state &#39;</span><span class="si">{</span><span class="n">attr</span><span class="si">}</span><span class="s2">&#39;.&quot;</span><span class="p">)</span>
</span></pre></div>
@ -226,13 +245,17 @@
</span><span id="dump_object-15"><a href="#dump_object-15"><span class="linenos">15</span></a><span class="sd"> name of the file</span>
</span><span id="dump_object-16"><a href="#dump_object-16"><span class="linenos">16</span></a><span class="sd"> path : str</span>
</span><span id="dump_object-17"><a href="#dump_object-17"><span class="linenos">17</span></a><span class="sd"> specifies a custom path for the file (default &#39;.&#39;)</span>
</span><span id="dump_object-18"><a href="#dump_object-18"><span class="linenos">18</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="dump_object-19"><a href="#dump_object-19"><span class="linenos">19</span></a> <span class="k">if</span> <span class="s1">&#39;path&#39;</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
</span><span id="dump_object-20"><a href="#dump_object-20"><span class="linenos">20</span></a> <span class="n">file_name</span> <span class="o">=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;path&#39;</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;/&#39;</span> <span class="o">+</span> <span class="n">name</span> <span class="o">+</span> <span class="s1">&#39;.p&#39;</span>
</span><span id="dump_object-21"><a href="#dump_object-21"><span class="linenos">21</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="dump_object-22"><a href="#dump_object-22"><span class="linenos">22</span></a> <span class="n">file_name</span> <span class="o">=</span> <span class="n">name</span> <span class="o">+</span> <span class="s1">&#39;.p&#39;</span>
</span><span id="dump_object-23"><a href="#dump_object-23"><span class="linenos">23</span></a> <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">file_name</span><span class="p">,</span> <span class="s1">&#39;wb&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="n">fb</span><span class="p">:</span>
</span><span id="dump_object-24"><a href="#dump_object-24"><span class="linenos">24</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="dump_object-18"><a href="#dump_object-18"><span class="linenos">18</span></a>
</span><span id="dump_object-19"><a href="#dump_object-19"><span class="linenos">19</span></a><span class="sd"> Returns</span>
</span><span id="dump_object-20"><a href="#dump_object-20"><span class="linenos">20</span></a><span class="sd"> -------</span>
</span><span id="dump_object-21"><a href="#dump_object-21"><span class="linenos">21</span></a><span class="sd"> None</span>
</span><span id="dump_object-22"><a href="#dump_object-22"><span class="linenos">22</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="dump_object-23"><a href="#dump_object-23"><span class="linenos">23</span></a> <span class="k">if</span> <span class="s1">&#39;path&#39;</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
</span><span id="dump_object-24"><a href="#dump_object-24"><span class="linenos">24</span></a> <span class="n">file_name</span> <span class="o">=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;path&#39;</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;/&#39;</span> <span class="o">+</span> <span class="n">name</span> <span class="o">+</span> <span class="s1">&#39;.p&#39;</span>
</span><span id="dump_object-25"><a href="#dump_object-25"><span class="linenos">25</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="dump_object-26"><a href="#dump_object-26"><span class="linenos">26</span></a> <span class="n">file_name</span> <span class="o">=</span> <span class="n">name</span> <span class="o">+</span> <span class="s1">&#39;.p&#39;</span>
</span><span id="dump_object-27"><a href="#dump_object-27"><span class="linenos">27</span></a> <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">file_name</span><span class="p">,</span> <span class="s1">&#39;wb&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="n">fb</span><span class="p">:</span>
</span><span id="dump_object-28"><a href="#dump_object-28"><span class="linenos">28</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></pre></div>
@ -248,6 +271,12 @@ name of the file</li>
<li><strong>path</strong> (str):
specifies a custom path for the file (default '.')</li>
</ul>
<h6 id="returns">Returns</h6>
<ul>
<li><strong>None</strong></li>
</ul>
</div>
@ -263,16 +292,21 @@ 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-27"><a href="#load_object-27"><span class="linenos">27</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="load_object-28"><a href="#load_object-28"><span class="linenos">28</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Load object from pickle file.</span>
</span><span id="load_object-29"><a href="#load_object-29"><span class="linenos">29</span></a>
</span><span id="load_object-30"><a href="#load_object-30"><span class="linenos">30</span></a><span class="sd"> Parameters</span>
</span><span id="load_object-31"><a href="#load_object-31"><span class="linenos">31</span></a><span class="sd"> ----------</span>
</span><span id="load_object-32"><a href="#load_object-32"><span class="linenos">32</span></a><span class="sd"> path : str</span>
</span><span id="load_object-33"><a href="#load_object-33"><span class="linenos">33</span></a><span class="sd"> path to the file</span>
</span><span id="load_object-34"><a href="#load_object-34"><span class="linenos">34</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="load_object-35"><a href="#load_object-35"><span class="linenos">35</span></a> <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="s1">&#39;rb&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="n">file</span><span class="p">:</span>
</span><span id="load_object-36"><a href="#load_object-36"><span class="linenos">36</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>
<div class="pdoc-code codehilite"><pre><span></span><span id="load_object-31"><a href="#load_object-31"><span class="linenos">31</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="load_object-32"><a href="#load_object-32"><span class="linenos">32</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Load object from pickle file.</span>
</span><span id="load_object-33"><a href="#load_object-33"><span class="linenos">33</span></a>
</span><span id="load_object-34"><a href="#load_object-34"><span class="linenos">34</span></a><span class="sd"> Parameters</span>
</span><span id="load_object-35"><a href="#load_object-35"><span class="linenos">35</span></a><span class="sd"> ----------</span>
</span><span id="load_object-36"><a href="#load_object-36"><span class="linenos">36</span></a><span class="sd"> path : str</span>
</span><span id="load_object-37"><a href="#load_object-37"><span class="linenos">37</span></a><span class="sd"> path to the file</span>
</span><span id="load_object-38"><a href="#load_object-38"><span class="linenos">38</span></a>
</span><span id="load_object-39"><a href="#load_object-39"><span class="linenos">39</span></a><span class="sd"> Returns</span>
</span><span id="load_object-40"><a href="#load_object-40"><span class="linenos">40</span></a><span class="sd"> -------</span>
</span><span id="load_object-41"><a href="#load_object-41"><span class="linenos">41</span></a><span class="sd"> object : Obs</span>
</span><span id="load_object-42"><a href="#load_object-42"><span class="linenos">42</span></a><span class="sd"> Loaded Object</span>
</span><span id="load_object-43"><a href="#load_object-43"><span class="linenos">43</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="load_object-44"><a href="#load_object-44"><span class="linenos">44</span></a> <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="s1">&#39;rb&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="n">file</span><span class="p">:</span>
</span><span id="load_object-45"><a href="#load_object-45"><span class="linenos">45</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></pre></div>
@ -284,6 +318,13 @@ specifies a custom path for the file (default '.')</li>
<li><strong>path</strong> (str):
path to the file</li>
</ul>
<h6 id="returns">Returns</h6>
<ul>
<li><strong>object</strong> (Obs):
Loaded Object</li>
</ul>
</div>
@ -299,36 +340,41 @@ path to the file</li>
</div>
<a class="headerlink" href="#pseudo_Obs"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="pseudo_Obs-39"><a href="#pseudo_Obs-39"><span class="linenos">39</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="pseudo_Obs-40"><a href="#pseudo_Obs-40"><span class="linenos">40</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-41"><a href="#pseudo_Obs-41"><span class="linenos">41</span></a>
</span><span id="pseudo_Obs-42"><a href="#pseudo_Obs-42"><span class="linenos">42</span></a><span class="sd"> Parameters</span>
</span><span id="pseudo_Obs-43"><a href="#pseudo_Obs-43"><span class="linenos">43</span></a><span class="sd"> ----------</span>
</span><span id="pseudo_Obs-44"><a href="#pseudo_Obs-44"><span class="linenos">44</span></a><span class="sd"> value : float</span>
</span><span id="pseudo_Obs-45"><a href="#pseudo_Obs-45"><span class="linenos">45</span></a><span class="sd"> central value of the Obs to be generated.</span>
</span><span id="pseudo_Obs-46"><a href="#pseudo_Obs-46"><span class="linenos">46</span></a><span class="sd"> dvalue : float</span>
</span><span id="pseudo_Obs-47"><a href="#pseudo_Obs-47"><span class="linenos">47</span></a><span class="sd"> error of the Obs to be generated.</span>
</span><span id="pseudo_Obs-48"><a href="#pseudo_Obs-48"><span class="linenos">48</span></a><span class="sd"> name : str</span>
</span><span id="pseudo_Obs-49"><a href="#pseudo_Obs-49"><span class="linenos">49</span></a><span class="sd"> name of the ensemble for which the Obs is to be generated.</span>
</span><span id="pseudo_Obs-50"><a href="#pseudo_Obs-50"><span class="linenos">50</span></a><span class="sd"> samples: int</span>
</span><span id="pseudo_Obs-51"><a href="#pseudo_Obs-51"><span class="linenos">51</span></a><span class="sd"> number of samples for the Obs (default 1000).</span>
</span><span id="pseudo_Obs-52"><a href="#pseudo_Obs-52"><span class="linenos">52</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="pseudo_Obs-53"><a href="#pseudo_Obs-53"><span class="linenos">53</span></a> <span class="k">if</span> <span class="n">dvalue</span> <span class="o">&lt;=</span> <span class="mf">0.0</span><span class="p">:</span>
</span><span id="pseudo_Obs-54"><a href="#pseudo_Obs-54"><span class="linenos">54</span></a> <span class="k">return</span> <span class="n">Obs</span><span class="p">([</span><span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="n">samples</span><span class="p">)</span> <span class="o">+</span> <span class="n">value</span><span class="p">],</span> <span class="p">[</span><span class="n">name</span><span class="p">])</span>
</span><span id="pseudo_Obs-55"><a href="#pseudo_Obs-55"><span class="linenos">55</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="pseudo_Obs-56"><a href="#pseudo_Obs-56"><span class="linenos">56</span></a> <span class="k">for</span> <span class="n">_</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">100</span><span class="p">):</span>
</span><span id="pseudo_Obs-57"><a href="#pseudo_Obs-57"><span class="linenos">57</span></a> <span class="n">deltas</span> <span class="o">=</span> <span class="p">[</span><span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">normal</span><span class="p">(</span><span class="mf">0.0</span><span class="p">,</span> <span class="n">dvalue</span> <span class="o">*</span> <span class="n">np</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="n">samples</span><span class="p">),</span> <span class="n">samples</span><span class="p">)]</span>
</span><span id="pseudo_Obs-58"><a href="#pseudo_Obs-58"><span class="linenos">58</span></a> <span class="n">deltas</span> <span class="o">-=</span> <span class="n">np</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">deltas</span><span class="p">)</span>
</span><span id="pseudo_Obs-59"><a href="#pseudo_Obs-59"><span class="linenos">59</span></a> <span class="n">deltas</span> <span class="o">*=</span> <span class="n">dvalue</span> <span class="o">/</span> <span class="n">np</span><span class="o">.</span><span class="n">sqrt</span><span class="p">((</span><span class="n">np</span><span class="o">.</span><span class="n">var</span><span class="p">(</span><span class="n">deltas</span><span class="p">)</span> <span class="o">/</span> <span class="n">samples</span><span class="p">))</span> <span class="o">/</span> <span class="n">np</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="mi">1</span> <span class="o">+</span> <span class="mi">3</span> <span class="o">/</span> <span class="n">samples</span><span class="p">)</span>
</span><span id="pseudo_Obs-60"><a href="#pseudo_Obs-60"><span class="linenos">60</span></a> <span class="n">deltas</span> <span class="o">+=</span> <span class="n">value</span>
</span><span id="pseudo_Obs-61"><a href="#pseudo_Obs-61"><span class="linenos">61</span></a> <span class="n">res</span> <span class="o">=</span> <span class="n">Obs</span><span class="p">(</span><span class="n">deltas</span><span class="p">,</span> <span class="p">[</span><span class="n">name</span><span class="p">])</span>
</span><span id="pseudo_Obs-62"><a href="#pseudo_Obs-62"><span class="linenos">62</span></a> <span class="n">res</span><span class="o">.</span><span class="n">gamma_method</span><span class="p">(</span><span class="n">S</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span> <span class="n">tau_exp</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span>
</span><span id="pseudo_Obs-63"><a href="#pseudo_Obs-63"><span class="linenos">63</span></a> <span class="k">if</span> <span class="nb">abs</span><span class="p">(</span><span class="n">res</span><span class="o">.</span><span class="n">dvalue</span> <span class="o">-</span> <span class="n">dvalue</span><span class="p">)</span> <span class="o">&lt;</span> <span class="mf">1e-10</span> <span class="o">*</span> <span class="n">dvalue</span><span class="p">:</span>
</span><span id="pseudo_Obs-64"><a href="#pseudo_Obs-64"><span class="linenos">64</span></a> <span class="k">break</span>
</span><span id="pseudo_Obs-65"><a href="#pseudo_Obs-65"><span class="linenos">65</span></a>
</span><span id="pseudo_Obs-66"><a href="#pseudo_Obs-66"><span class="linenos">66</span></a> <span class="n">res</span><span class="o">.</span><span class="n">_value</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
</span><span id="pseudo_Obs-67"><a href="#pseudo_Obs-67"><span class="linenos">67</span></a>
</span><span id="pseudo_Obs-68"><a href="#pseudo_Obs-68"><span class="linenos">68</span></a> <span class="k">return</span> <span class="n">res</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="pseudo_Obs-48"><a href="#pseudo_Obs-48"><span class="linenos">48</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="pseudo_Obs-49"><a href="#pseudo_Obs-49"><span class="linenos">49</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-50"><a href="#pseudo_Obs-50"><span class="linenos">50</span></a>
</span><span id="pseudo_Obs-51"><a href="#pseudo_Obs-51"><span class="linenos">51</span></a><span class="sd"> Parameters</span>
</span><span id="pseudo_Obs-52"><a href="#pseudo_Obs-52"><span class="linenos">52</span></a><span class="sd"> ----------</span>
</span><span id="pseudo_Obs-53"><a href="#pseudo_Obs-53"><span class="linenos">53</span></a><span class="sd"> value : float</span>
</span><span id="pseudo_Obs-54"><a href="#pseudo_Obs-54"><span class="linenos">54</span></a><span class="sd"> central value of the Obs to be generated.</span>
</span><span id="pseudo_Obs-55"><a href="#pseudo_Obs-55"><span class="linenos">55</span></a><span class="sd"> dvalue : float</span>
</span><span id="pseudo_Obs-56"><a href="#pseudo_Obs-56"><span class="linenos">56</span></a><span class="sd"> error of the Obs to be generated.</span>
</span><span id="pseudo_Obs-57"><a href="#pseudo_Obs-57"><span class="linenos">57</span></a><span class="sd"> name : str</span>
</span><span id="pseudo_Obs-58"><a href="#pseudo_Obs-58"><span class="linenos">58</span></a><span class="sd"> name of the ensemble for which the Obs is to be generated.</span>
</span><span id="pseudo_Obs-59"><a href="#pseudo_Obs-59"><span class="linenos">59</span></a><span class="sd"> samples: int</span>
</span><span id="pseudo_Obs-60"><a href="#pseudo_Obs-60"><span class="linenos">60</span></a><span class="sd"> number of samples for the Obs (default 1000).</span>
</span><span id="pseudo_Obs-61"><a href="#pseudo_Obs-61"><span class="linenos">61</span></a>
</span><span id="pseudo_Obs-62"><a href="#pseudo_Obs-62"><span class="linenos">62</span></a><span class="sd"> Returns</span>
</span><span id="pseudo_Obs-63"><a href="#pseudo_Obs-63"><span class="linenos">63</span></a><span class="sd"> -------</span>
</span><span id="pseudo_Obs-64"><a href="#pseudo_Obs-64"><span class="linenos">64</span></a><span class="sd"> res : Obs</span>
</span><span id="pseudo_Obs-65"><a href="#pseudo_Obs-65"><span class="linenos">65</span></a><span class="sd"> Generated Observable</span>
</span><span id="pseudo_Obs-66"><a href="#pseudo_Obs-66"><span class="linenos">66</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="pseudo_Obs-67"><a href="#pseudo_Obs-67"><span class="linenos">67</span></a> <span class="k">if</span> <span class="n">dvalue</span> <span class="o">&lt;=</span> <span class="mf">0.0</span><span class="p">:</span>
</span><span id="pseudo_Obs-68"><a href="#pseudo_Obs-68"><span class="linenos">68</span></a> <span class="k">return</span> <span class="n">Obs</span><span class="p">([</span><span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="n">samples</span><span class="p">)</span> <span class="o">+</span> <span class="n">value</span><span class="p">],</span> <span class="p">[</span><span class="n">name</span><span class="p">])</span>
</span><span id="pseudo_Obs-69"><a href="#pseudo_Obs-69"><span class="linenos">69</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="pseudo_Obs-70"><a href="#pseudo_Obs-70"><span class="linenos">70</span></a> <span class="k">for</span> <span class="n">_</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">100</span><span class="p">):</span>
</span><span id="pseudo_Obs-71"><a href="#pseudo_Obs-71"><span class="linenos">71</span></a> <span class="n">deltas</span> <span class="o">=</span> <span class="p">[</span><span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">normal</span><span class="p">(</span><span class="mf">0.0</span><span class="p">,</span> <span class="n">dvalue</span> <span class="o">*</span> <span class="n">np</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="n">samples</span><span class="p">),</span> <span class="n">samples</span><span class="p">)]</span>
</span><span id="pseudo_Obs-72"><a href="#pseudo_Obs-72"><span class="linenos">72</span></a> <span class="n">deltas</span> <span class="o">-=</span> <span class="n">np</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">deltas</span><span class="p">)</span>
</span><span id="pseudo_Obs-73"><a href="#pseudo_Obs-73"><span class="linenos">73</span></a> <span class="n">deltas</span> <span class="o">*=</span> <span class="n">dvalue</span> <span class="o">/</span> <span class="n">np</span><span class="o">.</span><span class="n">sqrt</span><span class="p">((</span><span class="n">np</span><span class="o">.</span><span class="n">var</span><span class="p">(</span><span class="n">deltas</span><span class="p">)</span> <span class="o">/</span> <span class="n">samples</span><span class="p">))</span> <span class="o">/</span> <span class="n">np</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="mi">1</span> <span class="o">+</span> <span class="mi">3</span> <span class="o">/</span> <span class="n">samples</span><span class="p">)</span>
</span><span id="pseudo_Obs-74"><a href="#pseudo_Obs-74"><span class="linenos">74</span></a> <span class="n">deltas</span> <span class="o">+=</span> <span class="n">value</span>
</span><span id="pseudo_Obs-75"><a href="#pseudo_Obs-75"><span class="linenos">75</span></a> <span class="n">res</span> <span class="o">=</span> <span class="n">Obs</span><span class="p">(</span><span class="n">deltas</span><span class="p">,</span> <span class="p">[</span><span class="n">name</span><span class="p">])</span>
</span><span id="pseudo_Obs-76"><a href="#pseudo_Obs-76"><span class="linenos">76</span></a> <span class="n">res</span><span class="o">.</span><span class="n">gamma_method</span><span class="p">(</span><span class="n">S</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span> <span class="n">tau_exp</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span>
</span><span id="pseudo_Obs-77"><a href="#pseudo_Obs-77"><span class="linenos">77</span></a> <span class="k">if</span> <span class="nb">abs</span><span class="p">(</span><span class="n">res</span><span class="o">.</span><span class="n">dvalue</span> <span class="o">-</span> <span class="n">dvalue</span><span class="p">)</span> <span class="o">&lt;</span> <span class="mf">1e-10</span> <span class="o">*</span> <span class="n">dvalue</span><span class="p">:</span>
</span><span id="pseudo_Obs-78"><a href="#pseudo_Obs-78"><span class="linenos">78</span></a> <span class="k">break</span>
</span><span id="pseudo_Obs-79"><a href="#pseudo_Obs-79"><span class="linenos">79</span></a>
</span><span id="pseudo_Obs-80"><a href="#pseudo_Obs-80"><span class="linenos">80</span></a> <span class="n">res</span><span class="o">.</span><span class="n">_value</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
</span><span id="pseudo_Obs-81"><a href="#pseudo_Obs-81"><span class="linenos">81</span></a>
</span><span id="pseudo_Obs-82"><a href="#pseudo_Obs-82"><span class="linenos">82</span></a> <span class="k">return</span> <span class="n">res</span>
</span></pre></div>
@ -346,6 +392,13 @@ name of the ensemble for which the Obs is to be generated.</li>
<li><strong>samples</strong> (int):
number of samples for the Obs (default 1000).</li>
</ul>
<h6 id="returns">Returns</h6>
<ul>
<li><strong>res</strong> (Obs):
Generated Observable</li>
</ul>
</div>
@ -361,41 +414,46 @@ number of samples for the Obs (default 1000).</li>
</div>
<a class="headerlink" href="#gen_correlated_data"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="gen_correlated_data-71"><a href="#gen_correlated_data-71"><span class="linenos"> 71</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="gen_correlated_data-72"><a href="#gen_correlated_data-72"><span class="linenos"> 72</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-73"><a href="#gen_correlated_data-73"><span class="linenos"> 73</span></a>
</span><span id="gen_correlated_data-74"><a href="#gen_correlated_data-74"><span class="linenos"> 74</span></a><span class="sd"> Parameters</span>
</span><span id="gen_correlated_data-75"><a href="#gen_correlated_data-75"><span class="linenos"> 75</span></a><span class="sd"> ----------</span>
</span><span id="gen_correlated_data-76"><a href="#gen_correlated_data-76"><span class="linenos"> 76</span></a><span class="sd"> means : list</span>
</span><span id="gen_correlated_data-77"><a href="#gen_correlated_data-77"><span class="linenos"> 77</span></a><span class="sd"> list containing the mean value of each observable.</span>
</span><span id="gen_correlated_data-78"><a href="#gen_correlated_data-78"><span class="linenos"> 78</span></a><span class="sd"> cov : numpy.ndarray</span>
</span><span id="gen_correlated_data-79"><a href="#gen_correlated_data-79"><span class="linenos"> 79</span></a><span class="sd"> covariance matrix for the data to be generated.</span>
</span><span id="gen_correlated_data-80"><a href="#gen_correlated_data-80"><span class="linenos"> 80</span></a><span class="sd"> name : str</span>
</span><span id="gen_correlated_data-81"><a href="#gen_correlated_data-81"><span class="linenos"> 81</span></a><span class="sd"> ensemble name for the data to be geneated.</span>
</span><span id="gen_correlated_data-82"><a href="#gen_correlated_data-82"><span class="linenos"> 82</span></a><span class="sd"> tau : float or list</span>
</span><span id="gen_correlated_data-83"><a href="#gen_correlated_data-83"><span class="linenos"> 83</span></a><span class="sd"> can either be a real number or a list with an entry for</span>
</span><span id="gen_correlated_data-84"><a href="#gen_correlated_data-84"><span class="linenos"> 84</span></a><span class="sd"> every dataset.</span>
</span><span id="gen_correlated_data-85"><a href="#gen_correlated_data-85"><span class="linenos"> 85</span></a><span class="sd"> samples : int</span>
</span><span id="gen_correlated_data-86"><a href="#gen_correlated_data-86"><span class="linenos"> 86</span></a><span class="sd"> number of samples to be generated for each observable.</span>
</span><span id="gen_correlated_data-87"><a href="#gen_correlated_data-87"><span class="linenos"> 87</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="gen_correlated_data-88"><a href="#gen_correlated_data-88"><span class="linenos"> 88</span></a>
</span><span id="gen_correlated_data-89"><a href="#gen_correlated_data-89"><span class="linenos"> 89</span></a> <span class="k">assert</span> <span class="nb">len</span><span class="p">(</span><span class="n">means</span><span class="p">)</span> <span class="o">==</span> <span class="n">cov</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="gen_correlated_data-90"><a href="#gen_correlated_data-90"><span class="linenos"> 90</span></a> <span class="n">tau</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">tau</span><span class="p">)</span>
</span><span id="gen_correlated_data-91"><a href="#gen_correlated_data-91"><span class="linenos"> 91</span></a> <span class="k">if</span> <span class="n">np</span><span class="o">.</span><span class="n">min</span><span class="p">(</span><span class="n">tau</span><span class="p">)</span> <span class="o">&lt;</span> <span class="mf">0.5</span><span class="p">:</span>
</span><span id="gen_correlated_data-92"><a href="#gen_correlated_data-92"><span class="linenos"> 92</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;All integrated autocorrelations have to be &gt;= 0.5.&#39;</span><span class="p">)</span>
</span><span id="gen_correlated_data-93"><a href="#gen_correlated_data-93"><span class="linenos"> 93</span></a>
</span><span id="gen_correlated_data-94"><a href="#gen_correlated_data-94"><span class="linenos"> 94</span></a> <span class="n">a</span> <span class="o">=</span> <span class="p">(</span><span class="mi">2</span> <span class="o">*</span> <span class="n">tau</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> <span class="o">/</span> <span class="p">(</span><span class="mi">2</span> <span class="o">*</span> <span class="n">tau</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span>
</span><span id="gen_correlated_data-95"><a href="#gen_correlated_data-95"><span class="linenos"> 95</span></a> <span class="n">rand</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">multivariate_normal</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">zeros_like</span><span class="p">(</span><span class="n">means</span><span class="p">),</span> <span class="n">cov</span> <span class="o">*</span> <span class="n">samples</span><span class="p">,</span> <span class="n">samples</span><span class="p">)</span>
</span><span id="gen_correlated_data-96"><a href="#gen_correlated_data-96"><span class="linenos"> 96</span></a>
</span><span id="gen_correlated_data-97"><a href="#gen_correlated_data-97"><span class="linenos"> 97</span></a> <span class="c1"># Normalize samples such that sample variance matches input</span>
</span><span id="gen_correlated_data-98"><a href="#gen_correlated_data-98"><span class="linenos"> 98</span></a> <span class="n">norm</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">np</span><span class="o">.</span><span class="n">var</span><span class="p">(</span><span class="n">o</span><span class="p">,</span> <span class="n">ddof</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span> <span class="o">/</span> <span class="n">samples</span> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">rand</span><span class="o">.</span><span class="n">T</span><span class="p">])</span>
</span><span id="gen_correlated_data-99"><a href="#gen_correlated_data-99"><span class="linenos"> 99</span></a> <span class="n">rand</span> <span class="o">=</span> <span class="n">rand</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="n">np</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">diag</span><span class="p">(</span><span class="n">cov</span><span class="p">)))</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">sqrt</span><span class="p">(</span><span class="n">norm</span><span class="p">))</span>
</span><span id="gen_correlated_data-100"><a href="#gen_correlated_data-100"><span class="linenos">100</span></a>
</span><span id="gen_correlated_data-101"><a href="#gen_correlated_data-101"><span class="linenos">101</span></a> <span class="n">data</span> <span class="o">=</span> <span class="p">[</span><span class="n">rand</span><span class="p">[</span><span class="mi">0</span><span class="p">]]</span>
</span><span id="gen_correlated_data-102"><a href="#gen_correlated_data-102"><span class="linenos">102</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="mi">1</span><span class="p">,</span> <span class="n">samples</span><span class="p">):</span>
</span><span id="gen_correlated_data-103"><a href="#gen_correlated_data-103"><span class="linenos">103</span></a> <span class="n">data</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">sqrt</span><span class="p">(</span><span class="mi">1</span> <span class="o">-</span> <span class="n">a</span> <span class="o">**</span> <span class="mi">2</span><span class="p">)</span> <span class="o">*</span> <span class="n">rand</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">+</span> <span class="n">a</span> <span class="o">*</span> <span class="n">data</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span>
</span><span id="gen_correlated_data-104"><a href="#gen_correlated_data-104"><span class="linenos">104</span></a> <span class="n">corr_data</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">data</span><span class="p">)</span> <span class="o">-</span> <span class="n">np</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">data</span><span class="p">,</span> <span class="n">axis</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span> <span class="o">+</span> <span class="n">means</span>
</span><span id="gen_correlated_data-105"><a href="#gen_correlated_data-105"><span class="linenos">105</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>
<div class="pdoc-code codehilite"><pre><span></span><span id="gen_correlated_data-85"><a href="#gen_correlated_data-85"><span class="linenos"> 85</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="gen_correlated_data-86"><a href="#gen_correlated_data-86"><span class="linenos"> 86</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-87"><a href="#gen_correlated_data-87"><span class="linenos"> 87</span></a>
</span><span id="gen_correlated_data-88"><a href="#gen_correlated_data-88"><span class="linenos"> 88</span></a><span class="sd"> Parameters</span>
</span><span id="gen_correlated_data-89"><a href="#gen_correlated_data-89"><span class="linenos"> 89</span></a><span class="sd"> ----------</span>
</span><span id="gen_correlated_data-90"><a href="#gen_correlated_data-90"><span class="linenos"> 90</span></a><span class="sd"> means : list</span>
</span><span id="gen_correlated_data-91"><a href="#gen_correlated_data-91"><span class="linenos"> 91</span></a><span class="sd"> list containing the mean value of each observable.</span>
</span><span id="gen_correlated_data-92"><a href="#gen_correlated_data-92"><span class="linenos"> 92</span></a><span class="sd"> cov : numpy.ndarray</span>
</span><span id="gen_correlated_data-93"><a href="#gen_correlated_data-93"><span class="linenos"> 93</span></a><span class="sd"> covariance matrix for the data to be generated.</span>
</span><span id="gen_correlated_data-94"><a href="#gen_correlated_data-94"><span class="linenos"> 94</span></a><span class="sd"> name : str</span>
</span><span id="gen_correlated_data-95"><a href="#gen_correlated_data-95"><span class="linenos"> 95</span></a><span class="sd"> ensemble name for the data to be geneated.</span>
</span><span id="gen_correlated_data-96"><a href="#gen_correlated_data-96"><span class="linenos"> 96</span></a><span class="sd"> tau : float or list</span>
</span><span id="gen_correlated_data-97"><a href="#gen_correlated_data-97"><span class="linenos"> 97</span></a><span class="sd"> can either be a real number or a list with an entry for</span>
</span><span id="gen_correlated_data-98"><a href="#gen_correlated_data-98"><span class="linenos"> 98</span></a><span class="sd"> every dataset.</span>
</span><span id="gen_correlated_data-99"><a href="#gen_correlated_data-99"><span class="linenos"> 99</span></a><span class="sd"> samples : int</span>
</span><span id="gen_correlated_data-100"><a href="#gen_correlated_data-100"><span class="linenos">100</span></a><span class="sd"> number of samples to be generated for each observable.</span>
</span><span id="gen_correlated_data-101"><a href="#gen_correlated_data-101"><span class="linenos">101</span></a>
</span><span id="gen_correlated_data-102"><a href="#gen_correlated_data-102"><span class="linenos">102</span></a><span class="sd"> Returns</span>
</span><span id="gen_correlated_data-103"><a href="#gen_correlated_data-103"><span class="linenos">103</span></a><span class="sd"> -------</span>
</span><span id="gen_correlated_data-104"><a href="#gen_correlated_data-104"><span class="linenos">104</span></a><span class="sd"> corr_obs : list[Obs]</span>
</span><span id="gen_correlated_data-105"><a href="#gen_correlated_data-105"><span class="linenos">105</span></a><span class="sd"> Generated observable list</span>
</span><span id="gen_correlated_data-106"><a href="#gen_correlated_data-106"><span class="linenos">106</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="gen_correlated_data-107"><a href="#gen_correlated_data-107"><span class="linenos">107</span></a>
</span><span id="gen_correlated_data-108"><a href="#gen_correlated_data-108"><span class="linenos">108</span></a> <span class="k">assert</span> <span class="nb">len</span><span class="p">(</span><span class="n">means</span><span class="p">)</span> <span class="o">==</span> <span class="n">cov</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="gen_correlated_data-109"><a href="#gen_correlated_data-109"><span class="linenos">109</span></a> <span class="n">tau</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">tau</span><span class="p">)</span>
</span><span id="gen_correlated_data-110"><a href="#gen_correlated_data-110"><span class="linenos">110</span></a> <span class="k">if</span> <span class="n">np</span><span class="o">.</span><span class="n">min</span><span class="p">(</span><span class="n">tau</span><span class="p">)</span> <span class="o">&lt;</span> <span class="mf">0.5</span><span class="p">:</span>
</span><span id="gen_correlated_data-111"><a href="#gen_correlated_data-111"><span class="linenos">111</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;All integrated autocorrelations have to be &gt;= 0.5.&#39;</span><span class="p">)</span>
</span><span id="gen_correlated_data-112"><a href="#gen_correlated_data-112"><span class="linenos">112</span></a>
</span><span id="gen_correlated_data-113"><a href="#gen_correlated_data-113"><span class="linenos">113</span></a> <span class="n">a</span> <span class="o">=</span> <span class="p">(</span><span class="mi">2</span> <span class="o">*</span> <span class="n">tau</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> <span class="o">/</span> <span class="p">(</span><span class="mi">2</span> <span class="o">*</span> <span class="n">tau</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span>
</span><span id="gen_correlated_data-114"><a href="#gen_correlated_data-114"><span class="linenos">114</span></a> <span class="n">rand</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">multivariate_normal</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">zeros_like</span><span class="p">(</span><span class="n">means</span><span class="p">),</span> <span class="n">cov</span> <span class="o">*</span> <span class="n">samples</span><span class="p">,</span> <span class="n">samples</span><span class="p">)</span>
</span><span id="gen_correlated_data-115"><a href="#gen_correlated_data-115"><span class="linenos">115</span></a>
</span><span id="gen_correlated_data-116"><a href="#gen_correlated_data-116"><span class="linenos">116</span></a> <span class="c1"># Normalize samples such that sample variance matches input</span>
</span><span id="gen_correlated_data-117"><a href="#gen_correlated_data-117"><span class="linenos">117</span></a> <span class="n">norm</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">np</span><span class="o">.</span><span class="n">var</span><span class="p">(</span><span class="n">o</span><span class="p">,</span> <span class="n">ddof</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span> <span class="o">/</span> <span class="n">samples</span> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">rand</span><span class="o">.</span><span class="n">T</span><span class="p">])</span>
</span><span id="gen_correlated_data-118"><a href="#gen_correlated_data-118"><span class="linenos">118</span></a> <span class="n">rand</span> <span class="o">=</span> <span class="n">rand</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="n">np</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">diag</span><span class="p">(</span><span class="n">cov</span><span class="p">)))</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">sqrt</span><span class="p">(</span><span class="n">norm</span><span class="p">))</span>
</span><span id="gen_correlated_data-119"><a href="#gen_correlated_data-119"><span class="linenos">119</span></a>
</span><span id="gen_correlated_data-120"><a href="#gen_correlated_data-120"><span class="linenos">120</span></a> <span class="n">data</span> <span class="o">=</span> <span class="p">[</span><span class="n">rand</span><span class="p">[</span><span class="mi">0</span><span class="p">]]</span>
</span><span id="gen_correlated_data-121"><a href="#gen_correlated_data-121"><span class="linenos">121</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="mi">1</span><span class="p">,</span> <span class="n">samples</span><span class="p">):</span>
</span><span id="gen_correlated_data-122"><a href="#gen_correlated_data-122"><span class="linenos">122</span></a> <span class="n">data</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">sqrt</span><span class="p">(</span><span class="mi">1</span> <span class="o">-</span> <span class="n">a</span> <span class="o">**</span> <span class="mi">2</span><span class="p">)</span> <span class="o">*</span> <span class="n">rand</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">+</span> <span class="n">a</span> <span class="o">*</span> <span class="n">data</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span>
</span><span id="gen_correlated_data-123"><a href="#gen_correlated_data-123"><span class="linenos">123</span></a> <span class="n">corr_data</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">data</span><span class="p">)</span> <span class="o">-</span> <span class="n">np</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">data</span><span class="p">,</span> <span class="n">axis</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span> <span class="o">+</span> <span class="n">means</span>
</span><span id="gen_correlated_data-124"><a href="#gen_correlated_data-124"><span class="linenos">124</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></pre></div>
@ -416,6 +474,13 @@ every dataset.</li>
<li><strong>samples</strong> (int):
number of samples to be generated for each observable.</li>
</ul>
<h6 id="returns">Returns</h6>
<ul>
<li><strong>corr_obs</strong> (list[Obs]):
Generated observable list</li>
</ul>
</div>

View file

@ -99,41 +99,46 @@
</span><span id="L-21"><a href="#L-21"><span class="linenos">21</span></a><span class="sd"> matrix pencil parameter which filters noise. The optimal value is expected between</span>
</span><span id="L-22"><a href="#L-22"><span class="linenos">22</span></a><span class="sd"> len(data)/3 and 2*len(data)/3. The computation is more expensive the closer p is</span>
</span><span id="L-23"><a href="#L-23"><span class="linenos">23</span></a><span class="sd"> to len(data)/2 but could possibly suppress more noise (default len(data)//2).</span>
</span><span id="L-24"><a href="#L-24"><span class="linenos">24</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-25"><a href="#L-25"><span class="linenos">25</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">corrs</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-26"><a href="#L-26"><span class="linenos">26</span></a> <span class="n">data</span> <span class="o">=</span> <span class="p">[</span><span class="n">corrs</span><span class="p">]</span>
</span><span id="L-27"><a href="#L-27"><span class="linenos">27</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-28"><a href="#L-28"><span class="linenos">28</span></a> <span class="n">data</span> <span class="o">=</span> <span class="n">corrs</span>
</span><span id="L-29"><a href="#L-29"><span class="linenos">29</span></a>
</span><span id="L-30"><a href="#L-30"><span class="linenos">30</span></a> <span class="n">lengths</span> <span class="o">=</span> <span class="p">[</span><span class="nb">len</span><span class="p">(</span><span class="n">d</span><span class="p">)</span> <span class="k">for</span> <span class="n">d</span> <span class="ow">in</span> <span class="n">data</span><span class="p">]</span>
</span><span id="L-31"><a href="#L-31"><span class="linenos">31</span></a> <span class="k">if</span> <span class="n">lengths</span><span class="o">.</span><span class="n">count</span><span class="p">(</span><span class="n">lengths</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> <span class="o">!=</span> <span class="nb">len</span><span class="p">(</span><span class="n">lengths</span><span class="p">):</span>
</span><span id="L-32"><a href="#L-32"><span class="linenos">32</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;All datasets have to have the same length.&#39;</span><span class="p">)</span>
</span><span id="L-33"><a href="#L-33"><span class="linenos">33</span></a>
</span><span id="L-34"><a href="#L-34"><span class="linenos">34</span></a> <span class="n">data_sets</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">data</span><span class="p">)</span>
</span><span id="L-35"><a href="#L-35"><span class="linenos">35</span></a> <span class="n">n_data</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">data</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
</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">if</span> <span class="n">p</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
</span><span id="L-38"><a href="#L-38"><span class="linenos">38</span></a> <span class="n">p</span> <span class="o">=</span> <span class="nb">max</span><span class="p">(</span><span class="n">n_data</span> <span class="o">//</span> <span class="mi">2</span><span class="p">,</span> <span class="n">k</span><span class="p">)</span>
</span><span id="L-39"><a href="#L-39"><span class="linenos">39</span></a> <span class="k">if</span> <span class="n">n_data</span> <span class="o">&lt;=</span> <span class="n">p</span><span class="p">:</span>
</span><span id="L-40"><a href="#L-40"><span class="linenos">40</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;The pencil p has to be smaller than the number of data samples.&#39;</span><span class="p">)</span>
</span><span id="L-41"><a href="#L-41"><span class="linenos">41</span></a> <span class="k">if</span> <span class="n">p</span> <span class="o">&lt;</span> <span class="n">k</span> <span class="ow">or</span> <span class="n">n_data</span> <span class="o">-</span> <span class="n">p</span> <span class="o">&lt;</span> <span class="n">k</span><span class="p">:</span>
</span><span id="L-42"><a href="#L-42"><span class="linenos">42</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;Cannot extract&#39;</span><span class="p">,</span> <span class="n">k</span><span class="p">,</span> <span class="s1">&#39;energy levels with p=&#39;</span><span class="p">,</span> <span class="n">p</span><span class="p">,</span> <span class="s1">&#39;and N-p=&#39;</span><span class="p">,</span> <span class="n">n_data</span> <span class="o">-</span> <span class="n">p</span><span class="p">)</span>
</span><span id="L-43"><a href="#L-43"><span class="linenos">43</span></a>
</span><span id="L-44"><a href="#L-44"><span class="linenos">44</span></a> <span class="c1"># Construct the hankel matrices</span>
</span><span id="L-45"><a href="#L-45"><span class="linenos">45</span></a> <span class="n">matrix</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-46"><a href="#L-46"><span class="linenos">46</span></a> <span class="k">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">data_sets</span><span class="p">):</span>
</span><span id="L-47"><a href="#L-47"><span class="linenos">47</span></a> <span class="n">matrix</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">scipy</span><span class="o">.</span><span class="n">linalg</span><span class="o">.</span><span class="n">hankel</span><span class="p">(</span><span class="n">data</span><span class="p">[</span><span class="n">n</span><span class="p">][:</span><span class="n">n_data</span> <span class="o">-</span> <span class="n">p</span><span class="p">],</span> <span class="n">data</span><span class="p">[</span><span class="n">n</span><span class="p">][</span><span class="n">n_data</span> <span class="o">-</span> <span class="n">p</span> <span class="o">-</span> <span class="mi">1</span><span class="p">:]))</span>
</span><span id="L-48"><a href="#L-48"><span class="linenos">48</span></a> <span class="n">matrix</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">matrix</span><span class="p">)</span>
</span><span id="L-49"><a href="#L-49"><span class="linenos">49</span></a> <span class="c1"># Construct y1 and y2</span>
</span><span id="L-50"><a href="#L-50"><span class="linenos">50</span></a> <span class="n">y1</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">concatenate</span><span class="p">(</span><span class="n">matrix</span><span class="p">[:,</span> <span class="p">:,</span> <span class="p">:</span><span class="n">p</span><span class="p">])</span>
</span><span id="L-51"><a href="#L-51"><span class="linenos">51</span></a> <span class="n">y2</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">concatenate</span><span class="p">(</span><span class="n">matrix</span><span class="p">[:,</span> <span class="p">:,</span> <span class="mi">1</span><span class="p">:])</span>
</span><span id="L-52"><a href="#L-52"><span class="linenos">52</span></a> <span class="c1"># Apply SVD to y2</span>
</span><span id="L-53"><a href="#L-53"><span class="linenos">53</span></a> <span class="n">u</span><span class="p">,</span> <span class="n">s</span><span class="p">,</span> <span class="n">vh</span> <span class="o">=</span> <span class="n">svd</span><span class="p">(</span><span class="n">y2</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
</span><span id="L-54"><a href="#L-54"><span class="linenos">54</span></a> <span class="c1"># Construct z from y1 and SVD of y2, setting all singular values beyond the kth to zero</span>
</span><span id="L-55"><a href="#L-55"><span class="linenos">55</span></a> <span class="n">z</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="mf">1.</span> <span class="o">/</span> <span class="n">s</span><span class="p">[:</span><span class="n">k</span><span class="p">])</span> <span class="o">@</span> <span class="n">u</span><span class="p">[:,</span> <span class="p">:</span><span class="n">k</span><span class="p">]</span><span class="o">.</span><span class="n">T</span> <span class="o">@</span> <span class="n">y1</span> <span class="o">@</span> <span class="n">vh</span><span class="o">.</span><span class="n">T</span><span class="p">[:,</span> <span class="p">:</span><span class="n">k</span><span class="p">]</span>
</span><span id="L-56"><a href="#L-56"><span class="linenos">56</span></a> <span class="c1"># Return the sorted logarithms of the real eigenvalues as Obs</span>
</span><span id="L-57"><a href="#L-57"><span class="linenos">57</span></a> <span class="n">energy_levels</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">np</span><span class="o">.</span><span class="n">abs</span><span class="p">(</span><span class="n">eig</span><span class="p">(</span><span class="n">z</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="k">return</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">energy_levels</span><span class="p">,</span> <span class="n">key</span><span class="o">=</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="nb">abs</span><span class="p">(</span><span class="n">x</span><span class="o">.</span><span class="n">value</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 class="sd"> Returns</span>
</span><span id="L-26"><a href="#L-26"><span class="linenos">26</span></a><span class="sd"> -------</span>
</span><span id="L-27"><a href="#L-27"><span class="linenos">27</span></a><span class="sd"> energy_levels : list[Obs]</span>
</span><span id="L-28"><a href="#L-28"><span class="linenos">28</span></a><span class="sd"> Extracted energy levels</span>
</span><span id="L-29"><a href="#L-29"><span class="linenos">29</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-30"><a href="#L-30"><span class="linenos">30</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">corrs</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-31"><a href="#L-31"><span class="linenos">31</span></a> <span class="n">data</span> <span class="o">=</span> <span class="p">[</span><span class="n">corrs</span><span class="p">]</span>
</span><span id="L-32"><a href="#L-32"><span class="linenos">32</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-33"><a href="#L-33"><span class="linenos">33</span></a> <span class="n">data</span> <span class="o">=</span> <span class="n">corrs</span>
</span><span id="L-34"><a href="#L-34"><span class="linenos">34</span></a>
</span><span id="L-35"><a href="#L-35"><span class="linenos">35</span></a> <span class="n">lengths</span> <span class="o">=</span> <span class="p">[</span><span class="nb">len</span><span class="p">(</span><span class="n">d</span><span class="p">)</span> <span class="k">for</span> <span class="n">d</span> <span class="ow">in</span> <span class="n">data</span><span class="p">]</span>
</span><span id="L-36"><a href="#L-36"><span class="linenos">36</span></a> <span class="k">if</span> <span class="n">lengths</span><span class="o">.</span><span class="n">count</span><span class="p">(</span><span class="n">lengths</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> <span class="o">!=</span> <span class="nb">len</span><span class="p">(</span><span class="n">lengths</span><span class="p">):</span>
</span><span id="L-37"><a href="#L-37"><span class="linenos">37</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;All datasets have to have the same length.&#39;</span><span class="p">)</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="n">data_sets</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">data</span><span class="p">)</span>
</span><span id="L-40"><a href="#L-40"><span class="linenos">40</span></a> <span class="n">n_data</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">data</span><span class="p">[</span><span class="mi">0</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">if</span> <span class="n">p</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
</span><span id="L-43"><a href="#L-43"><span class="linenos">43</span></a> <span class="n">p</span> <span class="o">=</span> <span class="nb">max</span><span class="p">(</span><span class="n">n_data</span> <span class="o">//</span> <span class="mi">2</span><span class="p">,</span> <span class="n">k</span><span class="p">)</span>
</span><span id="L-44"><a href="#L-44"><span class="linenos">44</span></a> <span class="k">if</span> <span class="n">n_data</span> <span class="o">&lt;=</span> <span class="n">p</span><span class="p">:</span>
</span><span id="L-45"><a href="#L-45"><span class="linenos">45</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;The pencil p has to be smaller than the number of data samples.&#39;</span><span class="p">)</span>
</span><span id="L-46"><a href="#L-46"><span class="linenos">46</span></a> <span class="k">if</span> <span class="n">p</span> <span class="o">&lt;</span> <span class="n">k</span> <span class="ow">or</span> <span class="n">n_data</span> <span class="o">-</span> <span class="n">p</span> <span class="o">&lt;</span> <span class="n">k</span><span class="p">:</span>
</span><span id="L-47"><a href="#L-47"><span class="linenos">47</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;Cannot extract&#39;</span><span class="p">,</span> <span class="n">k</span><span class="p">,</span> <span class="s1">&#39;energy levels with p=&#39;</span><span class="p">,</span> <span class="n">p</span><span class="p">,</span> <span class="s1">&#39;and N-p=&#39;</span><span class="p">,</span> <span class="n">n_data</span> <span class="o">-</span> <span class="n">p</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="c1"># Construct the hankel matrices</span>
</span><span id="L-50"><a href="#L-50"><span class="linenos">50</span></a> <span class="n">matrix</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-51"><a href="#L-51"><span class="linenos">51</span></a> <span class="k">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">data_sets</span><span class="p">):</span>
</span><span id="L-52"><a href="#L-52"><span class="linenos">52</span></a> <span class="n">matrix</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">scipy</span><span class="o">.</span><span class="n">linalg</span><span class="o">.</span><span class="n">hankel</span><span class="p">(</span><span class="n">data</span><span class="p">[</span><span class="n">n</span><span class="p">][:</span><span class="n">n_data</span> <span class="o">-</span> <span class="n">p</span><span class="p">],</span> <span class="n">data</span><span class="p">[</span><span class="n">n</span><span class="p">][</span><span class="n">n_data</span> <span class="o">-</span> <span class="n">p</span> <span class="o">-</span> <span class="mi">1</span><span class="p">:]))</span>
</span><span id="L-53"><a href="#L-53"><span class="linenos">53</span></a> <span class="n">matrix</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">matrix</span><span class="p">)</span>
</span><span id="L-54"><a href="#L-54"><span class="linenos">54</span></a> <span class="c1"># Construct y1 and y2</span>
</span><span id="L-55"><a href="#L-55"><span class="linenos">55</span></a> <span class="n">y1</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">concatenate</span><span class="p">(</span><span class="n">matrix</span><span class="p">[:,</span> <span class="p">:,</span> <span class="p">:</span><span class="n">p</span><span class="p">])</span>
</span><span id="L-56"><a href="#L-56"><span class="linenos">56</span></a> <span class="n">y2</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">concatenate</span><span class="p">(</span><span class="n">matrix</span><span class="p">[:,</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="c1"># Apply SVD to y2</span>
</span><span id="L-58"><a href="#L-58"><span class="linenos">58</span></a> <span class="n">u</span><span class="p">,</span> <span class="n">s</span><span class="p">,</span> <span class="n">vh</span> <span class="o">=</span> <span class="n">svd</span><span class="p">(</span><span class="n">y2</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
</span><span id="L-59"><a href="#L-59"><span class="linenos">59</span></a> <span class="c1"># Construct z from y1 and SVD of y2, setting all singular values beyond the kth to zero</span>
</span><span id="L-60"><a href="#L-60"><span class="linenos">60</span></a> <span class="n">z</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="mf">1.</span> <span class="o">/</span> <span class="n">s</span><span class="p">[:</span><span class="n">k</span><span class="p">])</span> <span class="o">@</span> <span class="n">u</span><span class="p">[:,</span> <span class="p">:</span><span class="n">k</span><span class="p">]</span><span class="o">.</span><span class="n">T</span> <span class="o">@</span> <span class="n">y1</span> <span class="o">@</span> <span class="n">vh</span><span class="o">.</span><span class="n">T</span><span class="p">[:,</span> <span class="p">:</span><span class="n">k</span><span class="p">]</span>
</span><span id="L-61"><a href="#L-61"><span class="linenos">61</span></a> <span class="c1"># Return the sorted logarithms of the real eigenvalues as Obs</span>
</span><span id="L-62"><a href="#L-62"><span class="linenos">62</span></a> <span class="n">energy_levels</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">np</span><span class="o">.</span><span class="n">abs</span><span class="p">(</span><span class="n">eig</span><span class="p">(</span><span class="n">z</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)))</span>
</span><span id="L-63"><a href="#L-63"><span class="linenos">63</span></a> <span class="k">return</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">energy_levels</span><span class="p">,</span> <span class="n">key</span><span class="o">=</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="nb">abs</span><span class="p">(</span><span class="n">x</span><span class="o">.</span><span class="n">value</span><span class="p">))</span>
</span></pre></div>
@ -166,41 +171,46 @@
</span><span id="matrix_pencil_method-22"><a href="#matrix_pencil_method-22"><span class="linenos">22</span></a><span class="sd"> matrix pencil parameter which filters noise. The optimal value is expected between</span>
</span><span id="matrix_pencil_method-23"><a href="#matrix_pencil_method-23"><span class="linenos">23</span></a><span class="sd"> len(data)/3 and 2*len(data)/3. The computation is more expensive the closer p is</span>
</span><span id="matrix_pencil_method-24"><a href="#matrix_pencil_method-24"><span class="linenos">24</span></a><span class="sd"> to len(data)/2 but could possibly suppress more noise (default len(data)//2).</span>
</span><span id="matrix_pencil_method-25"><a href="#matrix_pencil_method-25"><span class="linenos">25</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="matrix_pencil_method-26"><a href="#matrix_pencil_method-26"><span class="linenos">26</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">corrs</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="matrix_pencil_method-27"><a href="#matrix_pencil_method-27"><span class="linenos">27</span></a> <span class="n">data</span> <span class="o">=</span> <span class="p">[</span><span class="n">corrs</span><span class="p">]</span>
</span><span id="matrix_pencil_method-28"><a href="#matrix_pencil_method-28"><span class="linenos">28</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="matrix_pencil_method-29"><a href="#matrix_pencil_method-29"><span class="linenos">29</span></a> <span class="n">data</span> <span class="o">=</span> <span class="n">corrs</span>
</span><span id="matrix_pencil_method-30"><a href="#matrix_pencil_method-30"><span class="linenos">30</span></a>
</span><span id="matrix_pencil_method-31"><a href="#matrix_pencil_method-31"><span class="linenos">31</span></a> <span class="n">lengths</span> <span class="o">=</span> <span class="p">[</span><span class="nb">len</span><span class="p">(</span><span class="n">d</span><span class="p">)</span> <span class="k">for</span> <span class="n">d</span> <span class="ow">in</span> <span class="n">data</span><span class="p">]</span>
</span><span id="matrix_pencil_method-32"><a href="#matrix_pencil_method-32"><span class="linenos">32</span></a> <span class="k">if</span> <span class="n">lengths</span><span class="o">.</span><span class="n">count</span><span class="p">(</span><span class="n">lengths</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> <span class="o">!=</span> <span class="nb">len</span><span class="p">(</span><span class="n">lengths</span><span class="p">):</span>
</span><span id="matrix_pencil_method-33"><a href="#matrix_pencil_method-33"><span class="linenos">33</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;All datasets have to have the same length.&#39;</span><span class="p">)</span>
</span><span id="matrix_pencil_method-34"><a href="#matrix_pencil_method-34"><span class="linenos">34</span></a>
</span><span id="matrix_pencil_method-35"><a href="#matrix_pencil_method-35"><span class="linenos">35</span></a> <span class="n">data_sets</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">data</span><span class="p">)</span>
</span><span id="matrix_pencil_method-36"><a href="#matrix_pencil_method-36"><span class="linenos">36</span></a> <span class="n">n_data</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">data</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
</span><span id="matrix_pencil_method-37"><a href="#matrix_pencil_method-37"><span class="linenos">37</span></a>
</span><span id="matrix_pencil_method-38"><a href="#matrix_pencil_method-38"><span class="linenos">38</span></a> <span class="k">if</span> <span class="n">p</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
</span><span id="matrix_pencil_method-39"><a href="#matrix_pencil_method-39"><span class="linenos">39</span></a> <span class="n">p</span> <span class="o">=</span> <span class="nb">max</span><span class="p">(</span><span class="n">n_data</span> <span class="o">//</span> <span class="mi">2</span><span class="p">,</span> <span class="n">k</span><span class="p">)</span>
</span><span id="matrix_pencil_method-40"><a href="#matrix_pencil_method-40"><span class="linenos">40</span></a> <span class="k">if</span> <span class="n">n_data</span> <span class="o">&lt;=</span> <span class="n">p</span><span class="p">:</span>
</span><span id="matrix_pencil_method-41"><a href="#matrix_pencil_method-41"><span class="linenos">41</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;The pencil p has to be smaller than the number of data samples.&#39;</span><span class="p">)</span>
</span><span id="matrix_pencil_method-42"><a href="#matrix_pencil_method-42"><span class="linenos">42</span></a> <span class="k">if</span> <span class="n">p</span> <span class="o">&lt;</span> <span class="n">k</span> <span class="ow">or</span> <span class="n">n_data</span> <span class="o">-</span> <span class="n">p</span> <span class="o">&lt;</span> <span class="n">k</span><span class="p">:</span>
</span><span id="matrix_pencil_method-43"><a href="#matrix_pencil_method-43"><span class="linenos">43</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;Cannot extract&#39;</span><span class="p">,</span> <span class="n">k</span><span class="p">,</span> <span class="s1">&#39;energy levels with p=&#39;</span><span class="p">,</span> <span class="n">p</span><span class="p">,</span> <span class="s1">&#39;and N-p=&#39;</span><span class="p">,</span> <span class="n">n_data</span> <span class="o">-</span> <span class="n">p</span><span class="p">)</span>
</span><span id="matrix_pencil_method-44"><a href="#matrix_pencil_method-44"><span class="linenos">44</span></a>
</span><span id="matrix_pencil_method-45"><a href="#matrix_pencil_method-45"><span class="linenos">45</span></a> <span class="c1"># Construct the hankel matrices</span>
</span><span id="matrix_pencil_method-46"><a href="#matrix_pencil_method-46"><span class="linenos">46</span></a> <span class="n">matrix</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="matrix_pencil_method-47"><a href="#matrix_pencil_method-47"><span class="linenos">47</span></a> <span class="k">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">data_sets</span><span class="p">):</span>
</span><span id="matrix_pencil_method-48"><a href="#matrix_pencil_method-48"><span class="linenos">48</span></a> <span class="n">matrix</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">scipy</span><span class="o">.</span><span class="n">linalg</span><span class="o">.</span><span class="n">hankel</span><span class="p">(</span><span class="n">data</span><span class="p">[</span><span class="n">n</span><span class="p">][:</span><span class="n">n_data</span> <span class="o">-</span> <span class="n">p</span><span class="p">],</span> <span class="n">data</span><span class="p">[</span><span class="n">n</span><span class="p">][</span><span class="n">n_data</span> <span class="o">-</span> <span class="n">p</span> <span class="o">-</span> <span class="mi">1</span><span class="p">:]))</span>
</span><span id="matrix_pencil_method-49"><a href="#matrix_pencil_method-49"><span class="linenos">49</span></a> <span class="n">matrix</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">matrix</span><span class="p">)</span>
</span><span id="matrix_pencil_method-50"><a href="#matrix_pencil_method-50"><span class="linenos">50</span></a> <span class="c1"># Construct y1 and y2</span>
</span><span id="matrix_pencil_method-51"><a href="#matrix_pencil_method-51"><span class="linenos">51</span></a> <span class="n">y1</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">concatenate</span><span class="p">(</span><span class="n">matrix</span><span class="p">[:,</span> <span class="p">:,</span> <span class="p">:</span><span class="n">p</span><span class="p">])</span>
</span><span id="matrix_pencil_method-52"><a href="#matrix_pencil_method-52"><span class="linenos">52</span></a> <span class="n">y2</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">concatenate</span><span class="p">(</span><span class="n">matrix</span><span class="p">[:,</span> <span class="p">:,</span> <span class="mi">1</span><span class="p">:])</span>
</span><span id="matrix_pencil_method-53"><a href="#matrix_pencil_method-53"><span class="linenos">53</span></a> <span class="c1"># Apply SVD to y2</span>
</span><span id="matrix_pencil_method-54"><a href="#matrix_pencil_method-54"><span class="linenos">54</span></a> <span class="n">u</span><span class="p">,</span> <span class="n">s</span><span class="p">,</span> <span class="n">vh</span> <span class="o">=</span> <span class="n">svd</span><span class="p">(</span><span class="n">y2</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
</span><span id="matrix_pencil_method-55"><a href="#matrix_pencil_method-55"><span class="linenos">55</span></a> <span class="c1"># Construct z from y1 and SVD of y2, setting all singular values beyond the kth to zero</span>
</span><span id="matrix_pencil_method-56"><a href="#matrix_pencil_method-56"><span class="linenos">56</span></a> <span class="n">z</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="mf">1.</span> <span class="o">/</span> <span class="n">s</span><span class="p">[:</span><span class="n">k</span><span class="p">])</span> <span class="o">@</span> <span class="n">u</span><span class="p">[:,</span> <span class="p">:</span><span class="n">k</span><span class="p">]</span><span class="o">.</span><span class="n">T</span> <span class="o">@</span> <span class="n">y1</span> <span class="o">@</span> <span class="n">vh</span><span class="o">.</span><span class="n">T</span><span class="p">[:,</span> <span class="p">:</span><span class="n">k</span><span class="p">]</span>
</span><span id="matrix_pencil_method-57"><a href="#matrix_pencil_method-57"><span class="linenos">57</span></a> <span class="c1"># Return the sorted logarithms of the real eigenvalues as Obs</span>
</span><span id="matrix_pencil_method-58"><a href="#matrix_pencil_method-58"><span class="linenos">58</span></a> <span class="n">energy_levels</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">np</span><span class="o">.</span><span class="n">abs</span><span class="p">(</span><span class="n">eig</span><span class="p">(</span><span class="n">z</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)))</span>
</span><span id="matrix_pencil_method-59"><a href="#matrix_pencil_method-59"><span class="linenos">59</span></a> <span class="k">return</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">energy_levels</span><span class="p">,</span> <span class="n">key</span><span class="o">=</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="nb">abs</span><span class="p">(</span><span class="n">x</span><span class="o">.</span><span class="n">value</span><span class="p">))</span>
</span><span id="matrix_pencil_method-25"><a href="#matrix_pencil_method-25"><span class="linenos">25</span></a>
</span><span id="matrix_pencil_method-26"><a href="#matrix_pencil_method-26"><span class="linenos">26</span></a><span class="sd"> Returns</span>
</span><span id="matrix_pencil_method-27"><a href="#matrix_pencil_method-27"><span class="linenos">27</span></a><span class="sd"> -------</span>
</span><span id="matrix_pencil_method-28"><a href="#matrix_pencil_method-28"><span class="linenos">28</span></a><span class="sd"> energy_levels : list[Obs]</span>
</span><span id="matrix_pencil_method-29"><a href="#matrix_pencil_method-29"><span class="linenos">29</span></a><span class="sd"> Extracted energy levels</span>
</span><span id="matrix_pencil_method-30"><a href="#matrix_pencil_method-30"><span class="linenos">30</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="matrix_pencil_method-31"><a href="#matrix_pencil_method-31"><span class="linenos">31</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">corrs</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="matrix_pencil_method-32"><a href="#matrix_pencil_method-32"><span class="linenos">32</span></a> <span class="n">data</span> <span class="o">=</span> <span class="p">[</span><span class="n">corrs</span><span class="p">]</span>
</span><span id="matrix_pencil_method-33"><a href="#matrix_pencil_method-33"><span class="linenos">33</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="matrix_pencil_method-34"><a href="#matrix_pencil_method-34"><span class="linenos">34</span></a> <span class="n">data</span> <span class="o">=</span> <span class="n">corrs</span>
</span><span id="matrix_pencil_method-35"><a href="#matrix_pencil_method-35"><span class="linenos">35</span></a>
</span><span id="matrix_pencil_method-36"><a href="#matrix_pencil_method-36"><span class="linenos">36</span></a> <span class="n">lengths</span> <span class="o">=</span> <span class="p">[</span><span class="nb">len</span><span class="p">(</span><span class="n">d</span><span class="p">)</span> <span class="k">for</span> <span class="n">d</span> <span class="ow">in</span> <span class="n">data</span><span class="p">]</span>
</span><span id="matrix_pencil_method-37"><a href="#matrix_pencil_method-37"><span class="linenos">37</span></a> <span class="k">if</span> <span class="n">lengths</span><span class="o">.</span><span class="n">count</span><span class="p">(</span><span class="n">lengths</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> <span class="o">!=</span> <span class="nb">len</span><span class="p">(</span><span class="n">lengths</span><span class="p">):</span>
</span><span id="matrix_pencil_method-38"><a href="#matrix_pencil_method-38"><span class="linenos">38</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;All datasets have to have the same length.&#39;</span><span class="p">)</span>
</span><span id="matrix_pencil_method-39"><a href="#matrix_pencil_method-39"><span class="linenos">39</span></a>
</span><span id="matrix_pencil_method-40"><a href="#matrix_pencil_method-40"><span class="linenos">40</span></a> <span class="n">data_sets</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">data</span><span class="p">)</span>
</span><span id="matrix_pencil_method-41"><a href="#matrix_pencil_method-41"><span class="linenos">41</span></a> <span class="n">n_data</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">data</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
</span><span id="matrix_pencil_method-42"><a href="#matrix_pencil_method-42"><span class="linenos">42</span></a>
</span><span id="matrix_pencil_method-43"><a href="#matrix_pencil_method-43"><span class="linenos">43</span></a> <span class="k">if</span> <span class="n">p</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
</span><span id="matrix_pencil_method-44"><a href="#matrix_pencil_method-44"><span class="linenos">44</span></a> <span class="n">p</span> <span class="o">=</span> <span class="nb">max</span><span class="p">(</span><span class="n">n_data</span> <span class="o">//</span> <span class="mi">2</span><span class="p">,</span> <span class="n">k</span><span class="p">)</span>
</span><span id="matrix_pencil_method-45"><a href="#matrix_pencil_method-45"><span class="linenos">45</span></a> <span class="k">if</span> <span class="n">n_data</span> <span class="o">&lt;=</span> <span class="n">p</span><span class="p">:</span>
</span><span id="matrix_pencil_method-46"><a href="#matrix_pencil_method-46"><span class="linenos">46</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;The pencil p has to be smaller than the number of data samples.&#39;</span><span class="p">)</span>
</span><span id="matrix_pencil_method-47"><a href="#matrix_pencil_method-47"><span class="linenos">47</span></a> <span class="k">if</span> <span class="n">p</span> <span class="o">&lt;</span> <span class="n">k</span> <span class="ow">or</span> <span class="n">n_data</span> <span class="o">-</span> <span class="n">p</span> <span class="o">&lt;</span> <span class="n">k</span><span class="p">:</span>
</span><span id="matrix_pencil_method-48"><a href="#matrix_pencil_method-48"><span class="linenos">48</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;Cannot extract&#39;</span><span class="p">,</span> <span class="n">k</span><span class="p">,</span> <span class="s1">&#39;energy levels with p=&#39;</span><span class="p">,</span> <span class="n">p</span><span class="p">,</span> <span class="s1">&#39;and N-p=&#39;</span><span class="p">,</span> <span class="n">n_data</span> <span class="o">-</span> <span class="n">p</span><span class="p">)</span>
</span><span id="matrix_pencil_method-49"><a href="#matrix_pencil_method-49"><span class="linenos">49</span></a>
</span><span id="matrix_pencil_method-50"><a href="#matrix_pencil_method-50"><span class="linenos">50</span></a> <span class="c1"># Construct the hankel matrices</span>
</span><span id="matrix_pencil_method-51"><a href="#matrix_pencil_method-51"><span class="linenos">51</span></a> <span class="n">matrix</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="matrix_pencil_method-52"><a href="#matrix_pencil_method-52"><span class="linenos">52</span></a> <span class="k">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">data_sets</span><span class="p">):</span>
</span><span id="matrix_pencil_method-53"><a href="#matrix_pencil_method-53"><span class="linenos">53</span></a> <span class="n">matrix</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">scipy</span><span class="o">.</span><span class="n">linalg</span><span class="o">.</span><span class="n">hankel</span><span class="p">(</span><span class="n">data</span><span class="p">[</span><span class="n">n</span><span class="p">][:</span><span class="n">n_data</span> <span class="o">-</span> <span class="n">p</span><span class="p">],</span> <span class="n">data</span><span class="p">[</span><span class="n">n</span><span class="p">][</span><span class="n">n_data</span> <span class="o">-</span> <span class="n">p</span> <span class="o">-</span> <span class="mi">1</span><span class="p">:]))</span>
</span><span id="matrix_pencil_method-54"><a href="#matrix_pencil_method-54"><span class="linenos">54</span></a> <span class="n">matrix</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">matrix</span><span class="p">)</span>
</span><span id="matrix_pencil_method-55"><a href="#matrix_pencil_method-55"><span class="linenos">55</span></a> <span class="c1"># Construct y1 and y2</span>
</span><span id="matrix_pencil_method-56"><a href="#matrix_pencil_method-56"><span class="linenos">56</span></a> <span class="n">y1</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">concatenate</span><span class="p">(</span><span class="n">matrix</span><span class="p">[:,</span> <span class="p">:,</span> <span class="p">:</span><span class="n">p</span><span class="p">])</span>
</span><span id="matrix_pencil_method-57"><a href="#matrix_pencil_method-57"><span class="linenos">57</span></a> <span class="n">y2</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">concatenate</span><span class="p">(</span><span class="n">matrix</span><span class="p">[:,</span> <span class="p">:,</span> <span class="mi">1</span><span class="p">:])</span>
</span><span id="matrix_pencil_method-58"><a href="#matrix_pencil_method-58"><span class="linenos">58</span></a> <span class="c1"># Apply SVD to y2</span>
</span><span id="matrix_pencil_method-59"><a href="#matrix_pencil_method-59"><span class="linenos">59</span></a> <span class="n">u</span><span class="p">,</span> <span class="n">s</span><span class="p">,</span> <span class="n">vh</span> <span class="o">=</span> <span class="n">svd</span><span class="p">(</span><span class="n">y2</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
</span><span id="matrix_pencil_method-60"><a href="#matrix_pencil_method-60"><span class="linenos">60</span></a> <span class="c1"># Construct z from y1 and SVD of y2, setting all singular values beyond the kth to zero</span>
</span><span id="matrix_pencil_method-61"><a href="#matrix_pencil_method-61"><span class="linenos">61</span></a> <span class="n">z</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="mf">1.</span> <span class="o">/</span> <span class="n">s</span><span class="p">[:</span><span class="n">k</span><span class="p">])</span> <span class="o">@</span> <span class="n">u</span><span class="p">[:,</span> <span class="p">:</span><span class="n">k</span><span class="p">]</span><span class="o">.</span><span class="n">T</span> <span class="o">@</span> <span class="n">y1</span> <span class="o">@</span> <span class="n">vh</span><span class="o">.</span><span class="n">T</span><span class="p">[:,</span> <span class="p">:</span><span class="n">k</span><span class="p">]</span>
</span><span id="matrix_pencil_method-62"><a href="#matrix_pencil_method-62"><span class="linenos">62</span></a> <span class="c1"># Return the sorted logarithms of the real eigenvalues as Obs</span>
</span><span id="matrix_pencil_method-63"><a href="#matrix_pencil_method-63"><span class="linenos">63</span></a> <span class="n">energy_levels</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">np</span><span class="o">.</span><span class="n">abs</span><span class="p">(</span><span class="n">eig</span><span class="p">(</span><span class="n">z</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)))</span>
</span><span id="matrix_pencil_method-64"><a href="#matrix_pencil_method-64"><span class="linenos">64</span></a> <span class="k">return</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">energy_levels</span><span class="p">,</span> <span class="n">key</span><span class="o">=</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="nb">abs</span><span class="p">(</span><span class="n">x</span><span class="o">.</span><span class="n">value</span><span class="p">))</span>
</span></pre></div>
@ -222,6 +232,13 @@ matrix pencil parameter which filters noise. The optimal value is expected betwe
len(data)/3 and 2*len(data)/3. The computation is more expensive the closer p is
to len(data)/2 but could possibly suppress more noise (default len(data)//2).</li>
</ul>
<h6 id="returns">Returns</h6>
<ul>
<li><strong>energy_levels</strong> (list[Obs]):
Extracted energy levels</li>
</ul>
</div>

View file

@ -102,7 +102,7 @@
</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="sd"> Returns</span>
</span><span id="L-26"><a href="#L-26"><span class="linenos">26</span></a><span class="sd"> -------</span>
</span><span id="L-27"><a href="#L-27"><span class="linenos">27</span></a><span class="sd"> Obs</span>
</span><span id="L-27"><a href="#L-27"><span class="linenos">27</span></a><span class="sd"> res : Obs</span>
</span><span id="L-28"><a href="#L-28"><span class="linenos">28</span></a><span class="sd"> `Obs` valued root of the function.</span>
</span><span id="L-29"><a href="#L-29"><span class="linenos">29</span></a><span class="sd"> &#39;&#39;&#39;</span>
</span><span id="L-30"><a href="#L-30"><span class="linenos">30</span></a> <span class="n">d_val</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">vectorize</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">value</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>
@ -154,7 +154,7 @@
</span><span id="find_root-25"><a href="#find_root-25"><span class="linenos">25</span></a>
</span><span id="find_root-26"><a href="#find_root-26"><span class="linenos">26</span></a><span class="sd"> Returns</span>
</span><span id="find_root-27"><a href="#find_root-27"><span class="linenos">27</span></a><span class="sd"> -------</span>
</span><span id="find_root-28"><a href="#find_root-28"><span class="linenos">28</span></a><span class="sd"> Obs</span>
</span><span id="find_root-28"><a href="#find_root-28"><span class="linenos">28</span></a><span class="sd"> res : Obs</span>
</span><span id="find_root-29"><a href="#find_root-29"><span class="linenos">29</span></a><span class="sd"> `Obs` valued root of the function.</span>
</span><span id="find_root-30"><a href="#find_root-30"><span class="linenos">30</span></a><span class="sd"> &#39;&#39;&#39;</span>
</span><span id="find_root-31"><a href="#find_root-31"><span class="linenos">31</span></a> <span class="n">d_val</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">vectorize</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">value</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>
@ -198,7 +198,8 @@ Initial guess for the minimization.</p></li>
<h6 id="returns">Returns</h6>
<ul>
<li><strong>Obs</strong>: <code>Obs</code> valued root of the function.</li>
<li><strong>res</strong> (Obs):
<code>Obs</code> valued root of the function.</li>
</ul>
</div>

File diff suppressed because one or more lines are too long