mirror of
https://github.com/fjosw/pyerrors.git
synced 2025-03-16 15:20:24 +01:00
Documentation updated
This commit is contained in:
parent
0b8486d901
commit
65be38e911
2 changed files with 76 additions and 83 deletions
|
@ -146,7 +146,7 @@
|
|||
<span class="n">n_obs</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">raveled_data</span><span class="p">)</span>
|
||||
<span class="n">new_names</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">(</span><span class="nb">set</span><span class="p">([</span><span class="n">y</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="p">[</span><span class="n">o</span><span class="o">.</span><span class="n">names</span> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">raveled_data</span><span class="p">]</span> <span class="k">for</span> <span class="n">y</span> <span class="ow">in</span> <span class="n">x</span><span class="p">]))</span>
|
||||
|
||||
<span class="n">is_merged</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="nb">list</span><span class="p">(</span><span class="nb">filter</span><span class="p">(</span><span class="k">lambda</span> <span class="n">o</span><span class="p">:</span> <span class="n">o</span><span class="o">.</span><span class="n">is_merged</span> <span class="ow">is</span> <span class="kc">True</span><span class="p">,</span> <span class="n">raveled_data</span><span class="p">)))</span> <span class="o">></span> <span class="mi">0</span>
|
||||
<span class="n">is_merged</span> <span class="o">=</span> <span class="p">{</span><span class="n">name</span><span class="p">:</span> <span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="nb">list</span><span class="p">(</span><span class="nb">filter</span><span class="p">(</span><span class="k">lambda</span> <span class="n">o</span><span class="p">:</span> <span class="n">o</span><span class="o">.</span><span class="n">is_merged</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="kc">False</span><span class="p">)</span> <span class="ow">is</span> <span class="kc">True</span><span class="p">,</span> <span class="n">raveled_data</span><span class="p">)))</span> <span class="o">></span> <span class="mi">0</span><span class="p">)</span> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">new_names</span><span class="p">}</span>
|
||||
<span class="n">reweighted</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="nb">list</span><span class="p">(</span><span class="nb">filter</span><span class="p">(</span><span class="k">lambda</span> <span class="n">o</span><span class="p">:</span> <span class="n">o</span><span class="o">.</span><span class="n">reweighted</span> <span class="ow">is</span> <span class="kc">True</span><span class="p">,</span> <span class="n">raveled_data</span><span class="p">)))</span> <span class="o">></span> <span class="mi">0</span>
|
||||
<span class="n">new_idl_d</span> <span class="o">=</span> <span class="p">{}</span>
|
||||
<span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">new_names</span><span class="p">:</span>
|
||||
|
@ -156,8 +156,8 @@
|
|||
<span class="k">if</span> <span class="n">tmp</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="n">idl</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">tmp</span><span class="p">)</span>
|
||||
<span class="n">new_idl_d</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="n">_merge_idx</span><span class="p">(</span><span class="n">idl</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="n">is_merged</span><span class="p">:</span>
|
||||
<span class="n">is_merged</span> <span class="o">=</span> <span class="p">(</span><span class="mi">1</span> <span class="o">!=</span> <span class="nb">len</span><span class="p">(</span><span class="nb">set</span><span class="p">([</span><span class="nb">len</span><span class="p">(</span><span class="n">idx</span><span class="p">)</span> <span class="k">for</span> <span class="n">idx</span> <span class="ow">in</span> <span class="p">[</span><span class="o">*</span><span class="n">idl</span><span class="p">,</span> <span class="n">new_idl_d</span><span class="p">[</span><span class="n">name</span><span class="p">]]])))</span>
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="n">is_merged</span><span class="p">[</span><span class="n">name</span><span class="p">]:</span>
|
||||
<span class="n">is_merged</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="mi">1</span> <span class="o">!=</span> <span class="nb">len</span><span class="p">(</span><span class="nb">set</span><span class="p">([</span><span class="nb">len</span><span class="p">(</span><span class="n">idx</span><span class="p">)</span> <span class="k">for</span> <span class="n">idx</span> <span class="ow">in</span> <span class="p">[</span><span class="o">*</span><span class="n">idl</span><span class="p">,</span> <span class="n">new_idl_d</span><span class="p">[</span><span class="n">name</span><span class="p">]]])))</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">data</span><span class="o">.</span><span class="n">ndim</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
|
||||
<span class="n">values</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">o</span><span class="o">.</span><span class="n">value</span> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">data</span><span class="p">])</span>
|
||||
|
@ -204,17 +204,19 @@
|
|||
<span class="n">new_samples</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
<span class="n">new_means</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
<span class="n">new_idl</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
<span class="k">if</span> <span class="n">is_merged</span><span class="p">:</span>
|
||||
<span class="n">filtered_names</span><span class="p">,</span> <span class="n">filtered_deltas</span><span class="p">,</span> <span class="n">filtered_idl_d</span> <span class="o">=</span> <span class="n">_filter_zeroes</span><span class="p">(</span><span class="n">new_names</span><span class="p">,</span> <span class="n">new_deltas</span><span class="p">,</span> <span class="n">new_idl_d</span><span class="p">)</span>
|
||||
<span class="n">filtered_deltas</span> <span class="o">=</span> <span class="p">{}</span>
|
||||
<span class="n">filtered_idl_d</span> <span class="o">=</span> <span class="p">{}</span>
|
||||
<span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">new_names</span><span class="p">:</span>
|
||||
<span class="k">if</span> <span class="n">is_merged</span><span class="p">[</span><span class="n">name</span><span class="p">]:</span>
|
||||
<span class="n">filtered_deltas</span><span class="p">[</span><span class="n">name</span><span class="p">],</span> <span class="n">filtered_idl_d</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="n">_filter_zeroes</span><span class="p">(</span><span class="n">new_deltas</span><span class="p">[</span><span class="n">name</span><span class="p">],</span> <span class="n">new_idl_d</span><span class="p">[</span><span class="n">name</span><span class="p">])</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="n">filtered_names</span> <span class="o">=</span> <span class="n">new_names</span>
|
||||
<span class="n">filtered_deltas</span> <span class="o">=</span> <span class="n">new_deltas</span>
|
||||
<span class="n">filtered_idl_d</span> <span class="o">=</span> <span class="n">new_idl_d</span>
|
||||
<span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">filtered_names</span><span class="p">:</span>
|
||||
<span class="n">filtered_deltas</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="n">new_deltas</span><span class="p">[</span><span class="n">name</span><span class="p">]</span>
|
||||
<span class="n">filtered_idl_d</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="n">new_idl_d</span><span class="p">[</span><span class="n">name</span><span class="p">]</span>
|
||||
<span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">new_names</span><span class="p">:</span>
|
||||
<span class="n">new_samples</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">filtered_deltas</span><span class="p">[</span><span class="n">name</span><span class="p">])</span>
|
||||
<span class="n">new_means</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">new_r_values</span><span class="p">[</span><span class="n">name</span><span class="p">][</span><span class="n">i_val</span><span class="p">])</span>
|
||||
<span class="n">new_idl</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">filtered_idl_d</span><span class="p">[</span><span class="n">name</span><span class="p">])</span>
|
||||
<span class="n">final_result</span><span class="p">[</span><span class="n">i_val</span><span class="p">]</span> <span class="o">=</span> <span class="n">Obs</span><span class="p">(</span><span class="n">new_samples</span><span class="p">,</span> <span class="n">filtered_names</span><span class="p">,</span> <span class="n">means</span><span class="o">=</span><span class="n">new_means</span><span class="p">,</span> <span class="n">idl</span><span class="o">=</span><span class="n">new_idl</span><span class="p">)</span>
|
||||
<span class="n">final_result</span><span class="p">[</span><span class="n">i_val</span><span class="p">]</span> <span class="o">=</span> <span class="n">Obs</span><span class="p">(</span><span class="n">new_samples</span><span class="p">,</span> <span class="n">new_names</span><span class="p">,</span> <span class="n">means</span><span class="o">=</span><span class="n">new_means</span><span class="p">,</span> <span class="n">idl</span><span class="o">=</span><span class="n">new_idl</span><span class="p">)</span>
|
||||
<span class="n">final_result</span><span class="p">[</span><span class="n">i_val</span><span class="p">]</span><span class="o">.</span><span class="n">_value</span> <span class="o">=</span> <span class="n">new_val</span>
|
||||
<span class="n">final_result</span><span class="p">[</span><span class="n">i_val</span><span class="p">]</span><span class="o">.</span><span class="n">is_merged</span> <span class="o">=</span> <span class="n">is_merged</span>
|
||||
<span class="n">final_result</span><span class="p">[</span><span class="n">i_val</span><span class="p">]</span><span class="o">.</span><span class="n">reweighted</span> <span class="o">=</span> <span class="n">reweighted</span>
|
||||
|
@ -757,7 +759,7 @@
|
|||
<span class="n">n_obs</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">raveled_data</span><span class="p">)</span>
|
||||
<span class="n">new_names</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">(</span><span class="nb">set</span><span class="p">([</span><span class="n">y</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="p">[</span><span class="n">o</span><span class="o">.</span><span class="n">names</span> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">raveled_data</span><span class="p">]</span> <span class="k">for</span> <span class="n">y</span> <span class="ow">in</span> <span class="n">x</span><span class="p">]))</span>
|
||||
|
||||
<span class="n">is_merged</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="nb">list</span><span class="p">(</span><span class="nb">filter</span><span class="p">(</span><span class="k">lambda</span> <span class="n">o</span><span class="p">:</span> <span class="n">o</span><span class="o">.</span><span class="n">is_merged</span> <span class="ow">is</span> <span class="kc">True</span><span class="p">,</span> <span class="n">raveled_data</span><span class="p">)))</span> <span class="o">></span> <span class="mi">0</span>
|
||||
<span class="n">is_merged</span> <span class="o">=</span> <span class="p">{</span><span class="n">name</span><span class="p">:</span> <span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="nb">list</span><span class="p">(</span><span class="nb">filter</span><span class="p">(</span><span class="k">lambda</span> <span class="n">o</span><span class="p">:</span> <span class="n">o</span><span class="o">.</span><span class="n">is_merged</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="kc">False</span><span class="p">)</span> <span class="ow">is</span> <span class="kc">True</span><span class="p">,</span> <span class="n">raveled_data</span><span class="p">)))</span> <span class="o">></span> <span class="mi">0</span><span class="p">)</span> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">new_names</span><span class="p">}</span>
|
||||
<span class="n">reweighted</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="nb">list</span><span class="p">(</span><span class="nb">filter</span><span class="p">(</span><span class="k">lambda</span> <span class="n">o</span><span class="p">:</span> <span class="n">o</span><span class="o">.</span><span class="n">reweighted</span> <span class="ow">is</span> <span class="kc">True</span><span class="p">,</span> <span class="n">raveled_data</span><span class="p">)))</span> <span class="o">></span> <span class="mi">0</span>
|
||||
<span class="n">new_idl_d</span> <span class="o">=</span> <span class="p">{}</span>
|
||||
<span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">new_names</span><span class="p">:</span>
|
||||
|
@ -767,8 +769,8 @@
|
|||
<span class="k">if</span> <span class="n">tmp</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="n">idl</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">tmp</span><span class="p">)</span>
|
||||
<span class="n">new_idl_d</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="n">_merge_idx</span><span class="p">(</span><span class="n">idl</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="n">is_merged</span><span class="p">:</span>
|
||||
<span class="n">is_merged</span> <span class="o">=</span> <span class="p">(</span><span class="mi">1</span> <span class="o">!=</span> <span class="nb">len</span><span class="p">(</span><span class="nb">set</span><span class="p">([</span><span class="nb">len</span><span class="p">(</span><span class="n">idx</span><span class="p">)</span> <span class="k">for</span> <span class="n">idx</span> <span class="ow">in</span> <span class="p">[</span><span class="o">*</span><span class="n">idl</span><span class="p">,</span> <span class="n">new_idl_d</span><span class="p">[</span><span class="n">name</span><span class="p">]]])))</span>
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="n">is_merged</span><span class="p">[</span><span class="n">name</span><span class="p">]:</span>
|
||||
<span class="n">is_merged</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="mi">1</span> <span class="o">!=</span> <span class="nb">len</span><span class="p">(</span><span class="nb">set</span><span class="p">([</span><span class="nb">len</span><span class="p">(</span><span class="n">idx</span><span class="p">)</span> <span class="k">for</span> <span class="n">idx</span> <span class="ow">in</span> <span class="p">[</span><span class="o">*</span><span class="n">idl</span><span class="p">,</span> <span class="n">new_idl_d</span><span class="p">[</span><span class="n">name</span><span class="p">]]])))</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">data</span><span class="o">.</span><span class="n">ndim</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
|
||||
<span class="n">values</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">o</span><span class="o">.</span><span class="n">value</span> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">data</span><span class="p">])</span>
|
||||
|
@ -815,17 +817,19 @@
|
|||
<span class="n">new_samples</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
<span class="n">new_means</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
<span class="n">new_idl</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
<span class="k">if</span> <span class="n">is_merged</span><span class="p">:</span>
|
||||
<span class="n">filtered_names</span><span class="p">,</span> <span class="n">filtered_deltas</span><span class="p">,</span> <span class="n">filtered_idl_d</span> <span class="o">=</span> <span class="n">_filter_zeroes</span><span class="p">(</span><span class="n">new_names</span><span class="p">,</span> <span class="n">new_deltas</span><span class="p">,</span> <span class="n">new_idl_d</span><span class="p">)</span>
|
||||
<span class="n">filtered_deltas</span> <span class="o">=</span> <span class="p">{}</span>
|
||||
<span class="n">filtered_idl_d</span> <span class="o">=</span> <span class="p">{}</span>
|
||||
<span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">new_names</span><span class="p">:</span>
|
||||
<span class="k">if</span> <span class="n">is_merged</span><span class="p">[</span><span class="n">name</span><span class="p">]:</span>
|
||||
<span class="n">filtered_deltas</span><span class="p">[</span><span class="n">name</span><span class="p">],</span> <span class="n">filtered_idl_d</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="n">_filter_zeroes</span><span class="p">(</span><span class="n">new_deltas</span><span class="p">[</span><span class="n">name</span><span class="p">],</span> <span class="n">new_idl_d</span><span class="p">[</span><span class="n">name</span><span class="p">])</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="n">filtered_names</span> <span class="o">=</span> <span class="n">new_names</span>
|
||||
<span class="n">filtered_deltas</span> <span class="o">=</span> <span class="n">new_deltas</span>
|
||||
<span class="n">filtered_idl_d</span> <span class="o">=</span> <span class="n">new_idl_d</span>
|
||||
<span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">filtered_names</span><span class="p">:</span>
|
||||
<span class="n">filtered_deltas</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="n">new_deltas</span><span class="p">[</span><span class="n">name</span><span class="p">]</span>
|
||||
<span class="n">filtered_idl_d</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="n">new_idl_d</span><span class="p">[</span><span class="n">name</span><span class="p">]</span>
|
||||
<span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">new_names</span><span class="p">:</span>
|
||||
<span class="n">new_samples</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">filtered_deltas</span><span class="p">[</span><span class="n">name</span><span class="p">])</span>
|
||||
<span class="n">new_means</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">new_r_values</span><span class="p">[</span><span class="n">name</span><span class="p">][</span><span class="n">i_val</span><span class="p">])</span>
|
||||
<span class="n">new_idl</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">filtered_idl_d</span><span class="p">[</span><span class="n">name</span><span class="p">])</span>
|
||||
<span class="n">final_result</span><span class="p">[</span><span class="n">i_val</span><span class="p">]</span> <span class="o">=</span> <span class="n">Obs</span><span class="p">(</span><span class="n">new_samples</span><span class="p">,</span> <span class="n">filtered_names</span><span class="p">,</span> <span class="n">means</span><span class="o">=</span><span class="n">new_means</span><span class="p">,</span> <span class="n">idl</span><span class="o">=</span><span class="n">new_idl</span><span class="p">)</span>
|
||||
<span class="n">final_result</span><span class="p">[</span><span class="n">i_val</span><span class="p">]</span> <span class="o">=</span> <span class="n">Obs</span><span class="p">(</span><span class="n">new_samples</span><span class="p">,</span> <span class="n">new_names</span><span class="p">,</span> <span class="n">means</span><span class="o">=</span><span class="n">new_means</span><span class="p">,</span> <span class="n">idl</span><span class="o">=</span><span class="n">new_idl</span><span class="p">)</span>
|
||||
<span class="n">final_result</span><span class="p">[</span><span class="n">i_val</span><span class="p">]</span><span class="o">.</span><span class="n">_value</span> <span class="o">=</span> <span class="n">new_val</span>
|
||||
<span class="n">final_result</span><span class="p">[</span><span class="n">i_val</span><span class="p">]</span><span class="o">.</span><span class="n">is_merged</span> <span class="o">=</span> <span class="n">is_merged</span>
|
||||
<span class="n">final_result</span><span class="p">[</span><span class="n">i_val</span><span class="p">]</span><span class="o">.</span><span class="n">reweighted</span> <span class="o">=</span> <span class="n">reweighted</span>
|
||||
|
|
|
@ -438,7 +438,7 @@
|
|||
<span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">'Incompatible samples and idx for </span><span class="si">%s</span><span class="s1">: </span><span class="si">%d</span><span class="s1"> vs. </span><span class="si">%d</span><span class="s1">'</span> <span class="o">%</span> <span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">sample</span><span class="p">),</span> <span class="bp">self</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="n">name</span><span class="p">]))</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">r_values</span><span class="p">[</span><span class="n">name</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">sample</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">deltas</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="n">sample</span> <span class="o">-</span> <span class="bp">self</span><span class="o">.</span><span class="n">r_values</span><span class="p">[</span><span class="n">name</span><span class="p">]</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">is_merged</span> <span class="o">=</span> <span class="kc">False</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">is_merged</span> <span class="o">=</span> <span class="p">{}</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">N</span> <span class="o">=</span> <span class="nb">sum</span><span class="p">(</span><span class="nb">list</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">shape</span><span class="o">.</span><span class="n">values</span><span class="p">()))</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_value</span> <span class="o">=</span> <span class="mi">0</span>
|
||||
|
@ -1267,44 +1267,33 @@
|
|||
<span class="k">return</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([</span><span class="n">ret</span><span class="p">[</span><span class="n">new_idx</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">-</span> <span class="n">new_idx</span><span class="p">[</span><span class="mi">0</span><span class="p">]]</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">new_idx</span><span class="p">))])</span>
|
||||
|
||||
|
||||
<span class="k">def</span> <span class="nf">_filter_zeroes</span><span class="p">(</span><span class="n">names</span><span class="p">,</span> <span class="n">deltas</span><span class="p">,</span> <span class="n">idl</span><span class="p">,</span> <span class="n">eps</span><span class="o">=</span><span class="n">Obs</span><span class="o">.</span><span class="n">filter_eps</span><span class="p">):</span>
|
||||
<span class="k">def</span> <span class="nf">_filter_zeroes</span><span class="p">(</span><span class="n">deltas</span><span class="p">,</span> <span class="n">idx</span><span class="p">,</span> <span class="n">eps</span><span class="o">=</span><span class="n">Obs</span><span class="o">.</span><span class="n">filter_eps</span><span class="p">):</span>
|
||||
<span class="sd">"""Filter out all configurations with vanishing fluctuation such that they do not</span>
|
||||
<span class="sd"> contribute to the error estimate anymore. Returns the new names, deltas and</span>
|
||||
<span class="sd"> idl according to the filtering.</span>
|
||||
<span class="sd"> contribute to the error estimate anymore. Returns the new deltas and</span>
|
||||
<span class="sd"> idx according to the filtering.</span>
|
||||
<span class="sd"> A fluctuation is considered to be vanishing, if it is smaller than eps times</span>
|
||||
<span class="sd"> the mean of the absolute values of all deltas in one list.</span>
|
||||
|
||||
<span class="sd"> Parameters</span>
|
||||
<span class="sd"> ----------</span>
|
||||
<span class="sd"> names : list</span>
|
||||
<span class="sd"> List of names</span>
|
||||
<span class="sd"> deltas : dict</span>
|
||||
<span class="sd"> Dict lists of fluctuations</span>
|
||||
<span class="sd"> idx : dict</span>
|
||||
<span class="sd"> Dict of lists or ranges of configs on which the deltas are defined.</span>
|
||||
<span class="sd"> Has to be a subset of new_idx.</span>
|
||||
<span class="sd"> deltas : list</span>
|
||||
<span class="sd"> List of fluctuations</span>
|
||||
<span class="sd"> idx : list</span>
|
||||
<span class="sd"> List or ranges of configs on which the deltas are defined.</span>
|
||||
<span class="sd"> eps : float</span>
|
||||
<span class="sd"> Prefactor that enters the filter criterion.</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="n">new_names</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
<span class="n">new_deltas</span> <span class="o">=</span> <span class="p">{}</span>
|
||||
<span class="n">new_idl</span> <span class="o">=</span> <span class="p">{}</span>
|
||||
<span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">names</span><span class="p">:</span>
|
||||
<span class="n">nd</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
<span class="n">ni</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
<span class="n">maxd</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">fabs</span><span class="p">(</span><span class="n">deltas</span><span class="p">[</span><span class="n">name</span><span class="p">]))</span>
|
||||
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">deltas</span><span class="p">[</span><span class="n">name</span><span class="p">])):</span>
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="n">np</span><span class="o">.</span><span class="n">isclose</span><span class="p">(</span><span class="mf">0.0</span><span class="p">,</span> <span class="n">deltas</span><span class="p">[</span><span class="n">name</span><span class="p">][</span><span class="n">i</span><span class="p">],</span> <span class="n">atol</span><span class="o">=</span><span class="n">eps</span> <span class="o">*</span> <span class="n">maxd</span><span class="p">):</span>
|
||||
<span class="n">nd</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">deltas</span><span class="p">[</span><span class="n">name</span><span class="p">][</span><span class="n">i</span><span class="p">])</span>
|
||||
<span class="n">ni</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">idl</span><span class="p">[</span><span class="n">name</span><span class="p">][</span><span class="n">i</span><span class="p">])</span>
|
||||
<span class="k">if</span> <span class="n">nd</span><span class="p">:</span>
|
||||
<span class="n">new_names</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">name</span><span class="p">)</span>
|
||||
<span class="n">new_deltas</span><span class="p">[</span><span class="n">name</span><span class="p">]</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">nd</span><span class="p">)</span>
|
||||
<span class="n">new_idl</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="n">ni</span>
|
||||
<span class="k">if</span> <span class="n">new_names</span><span class="p">:</span>
|
||||
<span class="k">return</span> <span class="p">(</span><span class="n">new_names</span><span class="p">,</span> <span class="n">new_deltas</span><span class="p">,</span> <span class="n">new_idl</span><span class="p">)</span>
|
||||
<span class="n">new_deltas</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
<span class="n">new_idx</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
<span class="n">maxd</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">fabs</span><span class="p">(</span><span class="n">deltas</span><span class="p">))</span>
|
||||
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">deltas</span><span class="p">)):</span>
|
||||
<span class="k">if</span> <span class="nb">abs</span><span class="p">(</span><span class="n">deltas</span><span class="p">[</span><span class="n">i</span><span class="p">])</span> <span class="o">></span> <span class="n">eps</span> <span class="o">*</span> <span class="n">maxd</span><span class="p">:</span>
|
||||
<span class="n">new_deltas</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">deltas</span><span class="p">[</span><span class="n">i</span><span class="p">])</span>
|
||||
<span class="n">new_idx</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">idx</span><span class="p">[</span><span class="n">i</span><span class="p">])</span>
|
||||
<span class="k">if</span> <span class="n">new_idx</span><span class="p">:</span>
|
||||
<span class="k">return</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">new_deltas</span><span class="p">),</span> <span class="n">new_idx</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="k">return</span> <span class="p">(</span><span class="n">names</span><span class="p">,</span> <span class="n">deltas</span><span class="p">,</span> <span class="n">idl</span><span class="p">)</span>
|
||||
<span class="k">return</span> <span class="n">deltas</span><span class="p">,</span> <span class="n">idx</span>
|
||||
|
||||
|
||||
<span class="k">def</span> <span class="nf">derived_observable</span><span class="p">(</span><span class="n">func</span><span class="p">,</span> <span class="n">data</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
||||
|
@ -1354,7 +1343,7 @@
|
|||
<span class="n">n_obs</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">raveled_data</span><span class="p">)</span>
|
||||
<span class="n">new_names</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">(</span><span class="nb">set</span><span class="p">([</span><span class="n">y</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="p">[</span><span class="n">o</span><span class="o">.</span><span class="n">names</span> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">raveled_data</span><span class="p">]</span> <span class="k">for</span> <span class="n">y</span> <span class="ow">in</span> <span class="n">x</span><span class="p">]))</span>
|
||||
|
||||
<span class="n">is_merged</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="nb">list</span><span class="p">(</span><span class="nb">filter</span><span class="p">(</span><span class="k">lambda</span> <span class="n">o</span><span class="p">:</span> <span class="n">o</span><span class="o">.</span><span class="n">is_merged</span> <span class="ow">is</span> <span class="kc">True</span><span class="p">,</span> <span class="n">raveled_data</span><span class="p">)))</span> <span class="o">></span> <span class="mi">0</span>
|
||||
<span class="n">is_merged</span> <span class="o">=</span> <span class="p">{</span><span class="n">name</span><span class="p">:</span> <span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="nb">list</span><span class="p">(</span><span class="nb">filter</span><span class="p">(</span><span class="k">lambda</span> <span class="n">o</span><span class="p">:</span> <span class="n">o</span><span class="o">.</span><span class="n">is_merged</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="kc">False</span><span class="p">)</span> <span class="ow">is</span> <span class="kc">True</span><span class="p">,</span> <span class="n">raveled_data</span><span class="p">)))</span> <span class="o">></span> <span class="mi">0</span><span class="p">)</span> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">new_names</span><span class="p">}</span>
|
||||
<span class="n">reweighted</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="nb">list</span><span class="p">(</span><span class="nb">filter</span><span class="p">(</span><span class="k">lambda</span> <span class="n">o</span><span class="p">:</span> <span class="n">o</span><span class="o">.</span><span class="n">reweighted</span> <span class="ow">is</span> <span class="kc">True</span><span class="p">,</span> <span class="n">raveled_data</span><span class="p">)))</span> <span class="o">></span> <span class="mi">0</span>
|
||||
<span class="n">new_idl_d</span> <span class="o">=</span> <span class="p">{}</span>
|
||||
<span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">new_names</span><span class="p">:</span>
|
||||
|
@ -1364,8 +1353,8 @@
|
|||
<span class="k">if</span> <span class="n">tmp</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="n">idl</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">tmp</span><span class="p">)</span>
|
||||
<span class="n">new_idl_d</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="n">_merge_idx</span><span class="p">(</span><span class="n">idl</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="n">is_merged</span><span class="p">:</span>
|
||||
<span class="n">is_merged</span> <span class="o">=</span> <span class="p">(</span><span class="mi">1</span> <span class="o">!=</span> <span class="nb">len</span><span class="p">(</span><span class="nb">set</span><span class="p">([</span><span class="nb">len</span><span class="p">(</span><span class="n">idx</span><span class="p">)</span> <span class="k">for</span> <span class="n">idx</span> <span class="ow">in</span> <span class="p">[</span><span class="o">*</span><span class="n">idl</span><span class="p">,</span> <span class="n">new_idl_d</span><span class="p">[</span><span class="n">name</span><span class="p">]]])))</span>
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="n">is_merged</span><span class="p">[</span><span class="n">name</span><span class="p">]:</span>
|
||||
<span class="n">is_merged</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="mi">1</span> <span class="o">!=</span> <span class="nb">len</span><span class="p">(</span><span class="nb">set</span><span class="p">([</span><span class="nb">len</span><span class="p">(</span><span class="n">idx</span><span class="p">)</span> <span class="k">for</span> <span class="n">idx</span> <span class="ow">in</span> <span class="p">[</span><span class="o">*</span><span class="n">idl</span><span class="p">,</span> <span class="n">new_idl_d</span><span class="p">[</span><span class="n">name</span><span class="p">]]])))</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">data</span><span class="o">.</span><span class="n">ndim</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
|
||||
<span class="n">values</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">o</span><span class="o">.</span><span class="n">value</span> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">data</span><span class="p">])</span>
|
||||
|
@ -1430,17 +1419,17 @@
|
|||
<span class="n">new_samples</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
<span class="n">new_means</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
<span class="n">new_idl</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
<span class="k">if</span> <span class="n">is_merged</span><span class="p">:</span>
|
||||
<span class="n">filtered_names</span><span class="p">,</span> <span class="n">filtered_deltas</span><span class="p">,</span> <span class="n">filtered_idl_d</span> <span class="o">=</span> <span class="n">_filter_zeroes</span><span class="p">(</span><span class="n">new_names</span><span class="p">,</span> <span class="n">new_deltas</span><span class="p">,</span> <span class="n">new_idl_d</span><span class="p">)</span>
|
||||
<span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">new_names</span><span class="p">:</span>
|
||||
<span class="k">if</span> <span class="n">is_merged</span><span class="p">[</span><span class="n">name</span><span class="p">]:</span>
|
||||
<span class="n">filtered_deltas</span><span class="p">,</span> <span class="n">filtered_idl_d</span> <span class="o">=</span> <span class="n">_filter_zeroes</span><span class="p">(</span><span class="n">new_deltas</span><span class="p">[</span><span class="n">name</span><span class="p">],</span> <span class="n">new_idl_d</span><span class="p">[</span><span class="n">name</span><span class="p">])</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="n">filtered_names</span> <span class="o">=</span> <span class="n">new_names</span>
|
||||
<span class="n">filtered_deltas</span> <span class="o">=</span> <span class="n">new_deltas</span>
|
||||
<span class="n">filtered_idl_d</span> <span class="o">=</span> <span class="n">new_idl_d</span>
|
||||
<span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">filtered_names</span><span class="p">:</span>
|
||||
<span class="n">new_samples</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">filtered_deltas</span><span class="p">[</span><span class="n">name</span><span class="p">])</span>
|
||||
<span class="n">filtered_deltas</span> <span class="o">=</span> <span class="n">new_deltas</span><span class="p">[</span><span class="n">name</span><span class="p">]</span>
|
||||
<span class="n">filtered_idl_d</span> <span class="o">=</span> <span class="n">new_idl_d</span><span class="p">[</span><span class="n">name</span><span class="p">]</span>
|
||||
|
||||
<span class="n">new_samples</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">filtered_deltas</span><span class="p">)</span>
|
||||
<span class="n">new_idl</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">filtered_idl_d</span><span class="p">)</span>
|
||||
<span class="n">new_means</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">new_r_values</span><span class="p">[</span><span class="n">name</span><span class="p">][</span><span class="n">i_val</span><span class="p">])</span>
|
||||
<span class="n">new_idl</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">filtered_idl_d</span><span class="p">[</span><span class="n">name</span><span class="p">])</span>
|
||||
<span class="n">final_result</span><span class="p">[</span><span class="n">i_val</span><span class="p">]</span> <span class="o">=</span> <span class="n">Obs</span><span class="p">(</span><span class="n">new_samples</span><span class="p">,</span> <span class="n">filtered_names</span><span class="p">,</span> <span class="n">means</span><span class="o">=</span><span class="n">new_means</span><span class="p">,</span> <span class="n">idl</span><span class="o">=</span><span class="n">new_idl</span><span class="p">)</span>
|
||||
<span class="n">final_result</span><span class="p">[</span><span class="n">i_val</span><span class="p">]</span> <span class="o">=</span> <span class="n">Obs</span><span class="p">(</span><span class="n">new_samples</span><span class="p">,</span> <span class="n">new_names</span><span class="p">,</span> <span class="n">means</span><span class="o">=</span><span class="n">new_means</span><span class="p">,</span> <span class="n">idl</span><span class="o">=</span><span class="n">new_idl</span><span class="p">)</span>
|
||||
<span class="n">final_result</span><span class="p">[</span><span class="n">i_val</span><span class="p">]</span><span class="o">.</span><span class="n">_value</span> <span class="o">=</span> <span class="n">new_val</span>
|
||||
<span class="n">final_result</span><span class="p">[</span><span class="n">i_val</span><span class="p">]</span><span class="o">.</span><span class="n">is_merged</span> <span class="o">=</span> <span class="n">is_merged</span>
|
||||
<span class="n">final_result</span><span class="p">[</span><span class="n">i_val</span><span class="p">]</span><span class="o">.</span><span class="n">reweighted</span> <span class="o">=</span> <span class="n">reweighted</span>
|
||||
|
@ -1562,7 +1551,7 @@
|
|||
<span class="n">new_idl</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">obs_a</span><span class="o">.</span><span class="n">idl</span><span class="p">[</span><span class="n">name</span><span class="p">])</span>
|
||||
|
||||
<span class="n">o</span> <span class="o">=</span> <span class="n">Obs</span><span class="p">(</span><span class="n">new_samples</span><span class="p">,</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">obs_a</span><span class="o">.</span><span class="n">names</span><span class="p">),</span> <span class="n">idl</span><span class="o">=</span><span class="n">new_idl</span><span class="p">)</span>
|
||||
<span class="n">o</span><span class="o">.</span><span class="n">is_merged</span> <span class="o">=</span> <span class="n">obs_a</span><span class="o">.</span><span class="n">is_merged</span> <span class="ow">or</span> <span class="n">obs_b</span><span class="o">.</span><span class="n">is_merged</span>
|
||||
<span class="n">o</span><span class="o">.</span><span class="n">is_merged</span> <span class="o">=</span> <span class="p">{</span><span class="n">name</span><span class="p">:</span> <span class="p">(</span><span class="n">obs_a</span><span class="o">.</span><span class="n">is_merged</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="kc">False</span><span class="p">)</span> <span class="ow">or</span> <span class="n">obs_b</span><span class="o">.</span><span class="n">is_merged</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="kc">False</span><span class="p">))</span> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">o</span><span class="o">.</span><span class="n">names</span><span class="p">}</span>
|
||||
<span class="n">o</span><span class="o">.</span><span class="n">reweighted</span> <span class="o">=</span> <span class="n">obs_a</span><span class="o">.</span><span class="n">reweighted</span> <span class="ow">or</span> <span class="n">obs_b</span><span class="o">.</span><span class="n">reweighted</span>
|
||||
<span class="k">return</span> <span class="n">o</span>
|
||||
|
||||
|
@ -1923,7 +1912,7 @@
|
|||
|
||||
<span class="n">names</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">new_dict</span><span class="o">.</span><span class="n">keys</span><span class="p">())</span>
|
||||
<span class="n">o</span> <span class="o">=</span> <span class="n">Obs</span><span class="p">([</span><span class="n">new_dict</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">names</span><span class="p">],</span> <span class="n">names</span><span class="p">,</span> <span class="n">idl</span><span class="o">=</span><span class="p">[</span><span class="n">idl_dict</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">names</span><span class="p">])</span>
|
||||
<span class="n">o</span><span class="o">.</span><span class="n">is_merged</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">any</span><span class="p">([</span><span class="n">oi</span><span class="o">.</span><span class="n">is_merged</span> <span class="k">for</span> <span class="n">oi</span> <span class="ow">in</span> <span class="n">list_of_obs</span><span class="p">])</span>
|
||||
<span class="n">o</span><span class="o">.</span><span class="n">is_merged</span> <span class="o">=</span> <span class="p">{</span><span class="n">name</span><span class="p">:</span> <span class="n">np</span><span class="o">.</span><span class="n">any</span><span class="p">([</span><span class="n">oi</span><span class="o">.</span><span class="n">is_merged</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="kc">False</span><span class="p">)</span> <span class="k">for</span> <span class="n">oi</span> <span class="ow">in</span> <span class="n">list_of_obs</span><span class="p">])</span> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">o</span><span class="o">.</span><span class="n">names</span><span class="p">}</span>
|
||||
<span class="n">o</span><span class="o">.</span><span class="n">reweighted</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">max</span><span class="p">([</span><span class="n">oi</span><span class="o">.</span><span class="n">reweighted</span> <span class="k">for</span> <span class="n">oi</span> <span class="ow">in</span> <span class="n">list_of_obs</span><span class="p">])</span>
|
||||
<span class="k">return</span> <span class="n">o</span>
|
||||
</pre></div>
|
||||
|
@ -2052,7 +2041,7 @@
|
|||
<span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">'Incompatible samples and idx for </span><span class="si">%s</span><span class="s1">: </span><span class="si">%d</span><span class="s1"> vs. </span><span class="si">%d</span><span class="s1">'</span> <span class="o">%</span> <span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">sample</span><span class="p">),</span> <span class="bp">self</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="n">name</span><span class="p">]))</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">r_values</span><span class="p">[</span><span class="n">name</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">sample</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">deltas</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="n">sample</span> <span class="o">-</span> <span class="bp">self</span><span class="o">.</span><span class="n">r_values</span><span class="p">[</span><span class="n">name</span><span class="p">]</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">is_merged</span> <span class="o">=</span> <span class="kc">False</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">is_merged</span> <span class="o">=</span> <span class="p">{}</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">N</span> <span class="o">=</span> <span class="nb">sum</span><span class="p">(</span><span class="nb">list</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">shape</span><span class="o">.</span><span class="n">values</span><span class="p">()))</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_value</span> <span class="o">=</span> <span class="mi">0</span>
|
||||
|
@ -2807,7 +2796,7 @@ this overwrites the standard value for that ensemble.</li>
|
|||
<span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">'Incompatible samples and idx for </span><span class="si">%s</span><span class="s1">: </span><span class="si">%d</span><span class="s1"> vs. </span><span class="si">%d</span><span class="s1">'</span> <span class="o">%</span> <span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">sample</span><span class="p">),</span> <span class="bp">self</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="n">name</span><span class="p">]))</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">r_values</span><span class="p">[</span><span class="n">name</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">sample</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">deltas</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="n">sample</span> <span class="o">-</span> <span class="bp">self</span><span class="o">.</span><span class="n">r_values</span><span class="p">[</span><span class="n">name</span><span class="p">]</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">is_merged</span> <span class="o">=</span> <span class="kc">False</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">is_merged</span> <span class="o">=</span> <span class="p">{}</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">N</span> <span class="o">=</span> <span class="nb">sum</span><span class="p">(</span><span class="nb">list</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">shape</span><span class="o">.</span><span class="n">values</span><span class="p">()))</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_value</span> <span class="o">=</span> <span class="mi">0</span>
|
||||
|
@ -4428,7 +4417,7 @@ should agree with samples from a full jackknife analysis up to O(1/N).</li>
|
|||
<span class="n">n_obs</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">raveled_data</span><span class="p">)</span>
|
||||
<span class="n">new_names</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">(</span><span class="nb">set</span><span class="p">([</span><span class="n">y</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="p">[</span><span class="n">o</span><span class="o">.</span><span class="n">names</span> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">raveled_data</span><span class="p">]</span> <span class="k">for</span> <span class="n">y</span> <span class="ow">in</span> <span class="n">x</span><span class="p">]))</span>
|
||||
|
||||
<span class="n">is_merged</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="nb">list</span><span class="p">(</span><span class="nb">filter</span><span class="p">(</span><span class="k">lambda</span> <span class="n">o</span><span class="p">:</span> <span class="n">o</span><span class="o">.</span><span class="n">is_merged</span> <span class="ow">is</span> <span class="kc">True</span><span class="p">,</span> <span class="n">raveled_data</span><span class="p">)))</span> <span class="o">></span> <span class="mi">0</span>
|
||||
<span class="n">is_merged</span> <span class="o">=</span> <span class="p">{</span><span class="n">name</span><span class="p">:</span> <span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="nb">list</span><span class="p">(</span><span class="nb">filter</span><span class="p">(</span><span class="k">lambda</span> <span class="n">o</span><span class="p">:</span> <span class="n">o</span><span class="o">.</span><span class="n">is_merged</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="kc">False</span><span class="p">)</span> <span class="ow">is</span> <span class="kc">True</span><span class="p">,</span> <span class="n">raveled_data</span><span class="p">)))</span> <span class="o">></span> <span class="mi">0</span><span class="p">)</span> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">new_names</span><span class="p">}</span>
|
||||
<span class="n">reweighted</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="nb">list</span><span class="p">(</span><span class="nb">filter</span><span class="p">(</span><span class="k">lambda</span> <span class="n">o</span><span class="p">:</span> <span class="n">o</span><span class="o">.</span><span class="n">reweighted</span> <span class="ow">is</span> <span class="kc">True</span><span class="p">,</span> <span class="n">raveled_data</span><span class="p">)))</span> <span class="o">></span> <span class="mi">0</span>
|
||||
<span class="n">new_idl_d</span> <span class="o">=</span> <span class="p">{}</span>
|
||||
<span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">new_names</span><span class="p">:</span>
|
||||
|
@ -4438,8 +4427,8 @@ should agree with samples from a full jackknife analysis up to O(1/N).</li>
|
|||
<span class="k">if</span> <span class="n">tmp</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="n">idl</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">tmp</span><span class="p">)</span>
|
||||
<span class="n">new_idl_d</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="n">_merge_idx</span><span class="p">(</span><span class="n">idl</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="n">is_merged</span><span class="p">:</span>
|
||||
<span class="n">is_merged</span> <span class="o">=</span> <span class="p">(</span><span class="mi">1</span> <span class="o">!=</span> <span class="nb">len</span><span class="p">(</span><span class="nb">set</span><span class="p">([</span><span class="nb">len</span><span class="p">(</span><span class="n">idx</span><span class="p">)</span> <span class="k">for</span> <span class="n">idx</span> <span class="ow">in</span> <span class="p">[</span><span class="o">*</span><span class="n">idl</span><span class="p">,</span> <span class="n">new_idl_d</span><span class="p">[</span><span class="n">name</span><span class="p">]]])))</span>
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="n">is_merged</span><span class="p">[</span><span class="n">name</span><span class="p">]:</span>
|
||||
<span class="n">is_merged</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="mi">1</span> <span class="o">!=</span> <span class="nb">len</span><span class="p">(</span><span class="nb">set</span><span class="p">([</span><span class="nb">len</span><span class="p">(</span><span class="n">idx</span><span class="p">)</span> <span class="k">for</span> <span class="n">idx</span> <span class="ow">in</span> <span class="p">[</span><span class="o">*</span><span class="n">idl</span><span class="p">,</span> <span class="n">new_idl_d</span><span class="p">[</span><span class="n">name</span><span class="p">]]])))</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">data</span><span class="o">.</span><span class="n">ndim</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
|
||||
<span class="n">values</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">o</span><span class="o">.</span><span class="n">value</span> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">data</span><span class="p">])</span>
|
||||
|
@ -4504,17 +4493,17 @@ should agree with samples from a full jackknife analysis up to O(1/N).</li>
|
|||
<span class="n">new_samples</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
<span class="n">new_means</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
<span class="n">new_idl</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
<span class="k">if</span> <span class="n">is_merged</span><span class="p">:</span>
|
||||
<span class="n">filtered_names</span><span class="p">,</span> <span class="n">filtered_deltas</span><span class="p">,</span> <span class="n">filtered_idl_d</span> <span class="o">=</span> <span class="n">_filter_zeroes</span><span class="p">(</span><span class="n">new_names</span><span class="p">,</span> <span class="n">new_deltas</span><span class="p">,</span> <span class="n">new_idl_d</span><span class="p">)</span>
|
||||
<span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">new_names</span><span class="p">:</span>
|
||||
<span class="k">if</span> <span class="n">is_merged</span><span class="p">[</span><span class="n">name</span><span class="p">]:</span>
|
||||
<span class="n">filtered_deltas</span><span class="p">,</span> <span class="n">filtered_idl_d</span> <span class="o">=</span> <span class="n">_filter_zeroes</span><span class="p">(</span><span class="n">new_deltas</span><span class="p">[</span><span class="n">name</span><span class="p">],</span> <span class="n">new_idl_d</span><span class="p">[</span><span class="n">name</span><span class="p">])</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="n">filtered_names</span> <span class="o">=</span> <span class="n">new_names</span>
|
||||
<span class="n">filtered_deltas</span> <span class="o">=</span> <span class="n">new_deltas</span>
|
||||
<span class="n">filtered_idl_d</span> <span class="o">=</span> <span class="n">new_idl_d</span>
|
||||
<span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">filtered_names</span><span class="p">:</span>
|
||||
<span class="n">new_samples</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">filtered_deltas</span><span class="p">[</span><span class="n">name</span><span class="p">])</span>
|
||||
<span class="n">filtered_deltas</span> <span class="o">=</span> <span class="n">new_deltas</span><span class="p">[</span><span class="n">name</span><span class="p">]</span>
|
||||
<span class="n">filtered_idl_d</span> <span class="o">=</span> <span class="n">new_idl_d</span><span class="p">[</span><span class="n">name</span><span class="p">]</span>
|
||||
|
||||
<span class="n">new_samples</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">filtered_deltas</span><span class="p">)</span>
|
||||
<span class="n">new_idl</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">filtered_idl_d</span><span class="p">)</span>
|
||||
<span class="n">new_means</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">new_r_values</span><span class="p">[</span><span class="n">name</span><span class="p">][</span><span class="n">i_val</span><span class="p">])</span>
|
||||
<span class="n">new_idl</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">filtered_idl_d</span><span class="p">[</span><span class="n">name</span><span class="p">])</span>
|
||||
<span class="n">final_result</span><span class="p">[</span><span class="n">i_val</span><span class="p">]</span> <span class="o">=</span> <span class="n">Obs</span><span class="p">(</span><span class="n">new_samples</span><span class="p">,</span> <span class="n">filtered_names</span><span class="p">,</span> <span class="n">means</span><span class="o">=</span><span class="n">new_means</span><span class="p">,</span> <span class="n">idl</span><span class="o">=</span><span class="n">new_idl</span><span class="p">)</span>
|
||||
<span class="n">final_result</span><span class="p">[</span><span class="n">i_val</span><span class="p">]</span> <span class="o">=</span> <span class="n">Obs</span><span class="p">(</span><span class="n">new_samples</span><span class="p">,</span> <span class="n">new_names</span><span class="p">,</span> <span class="n">means</span><span class="o">=</span><span class="n">new_means</span><span class="p">,</span> <span class="n">idl</span><span class="o">=</span><span class="n">new_idl</span><span class="p">)</span>
|
||||
<span class="n">final_result</span><span class="p">[</span><span class="n">i_val</span><span class="p">]</span><span class="o">.</span><span class="n">_value</span> <span class="o">=</span> <span class="n">new_val</span>
|
||||
<span class="n">final_result</span><span class="p">[</span><span class="n">i_val</span><span class="p">]</span><span class="o">.</span><span class="n">is_merged</span> <span class="o">=</span> <span class="n">is_merged</span>
|
||||
<span class="n">final_result</span><span class="p">[</span><span class="n">i_val</span><span class="p">]</span><span class="o">.</span><span class="n">reweighted</span> <span class="o">=</span> <span class="n">reweighted</span>
|
||||
|
@ -4676,7 +4665,7 @@ on the configurations in obs[i].idl.</li>
|
|||
<span class="n">new_idl</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">obs_a</span><span class="o">.</span><span class="n">idl</span><span class="p">[</span><span class="n">name</span><span class="p">])</span>
|
||||
|
||||
<span class="n">o</span> <span class="o">=</span> <span class="n">Obs</span><span class="p">(</span><span class="n">new_samples</span><span class="p">,</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">obs_a</span><span class="o">.</span><span class="n">names</span><span class="p">),</span> <span class="n">idl</span><span class="o">=</span><span class="n">new_idl</span><span class="p">)</span>
|
||||
<span class="n">o</span><span class="o">.</span><span class="n">is_merged</span> <span class="o">=</span> <span class="n">obs_a</span><span class="o">.</span><span class="n">is_merged</span> <span class="ow">or</span> <span class="n">obs_b</span><span class="o">.</span><span class="n">is_merged</span>
|
||||
<span class="n">o</span><span class="o">.</span><span class="n">is_merged</span> <span class="o">=</span> <span class="p">{</span><span class="n">name</span><span class="p">:</span> <span class="p">(</span><span class="n">obs_a</span><span class="o">.</span><span class="n">is_merged</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="kc">False</span><span class="p">)</span> <span class="ow">or</span> <span class="n">obs_b</span><span class="o">.</span><span class="n">is_merged</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="kc">False</span><span class="p">))</span> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">o</span><span class="o">.</span><span class="n">names</span><span class="p">}</span>
|
||||
<span class="n">o</span><span class="o">.</span><span class="n">reweighted</span> <span class="o">=</span> <span class="n">obs_a</span><span class="o">.</span><span class="n">reweighted</span> <span class="ow">or</span> <span class="n">obs_b</span><span class="o">.</span><span class="n">reweighted</span>
|
||||
<span class="k">return</span> <span class="n">o</span>
|
||||
</pre></div>
|
||||
|
@ -5272,7 +5261,7 @@ name of the ensemble the samples are defined on.</li>
|
|||
|
||||
<span class="n">names</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">new_dict</span><span class="o">.</span><span class="n">keys</span><span class="p">())</span>
|
||||
<span class="n">o</span> <span class="o">=</span> <span class="n">Obs</span><span class="p">([</span><span class="n">new_dict</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">names</span><span class="p">],</span> <span class="n">names</span><span class="p">,</span> <span class="n">idl</span><span class="o">=</span><span class="p">[</span><span class="n">idl_dict</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">names</span><span class="p">])</span>
|
||||
<span class="n">o</span><span class="o">.</span><span class="n">is_merged</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">any</span><span class="p">([</span><span class="n">oi</span><span class="o">.</span><span class="n">is_merged</span> <span class="k">for</span> <span class="n">oi</span> <span class="ow">in</span> <span class="n">list_of_obs</span><span class="p">])</span>
|
||||
<span class="n">o</span><span class="o">.</span><span class="n">is_merged</span> <span class="o">=</span> <span class="p">{</span><span class="n">name</span><span class="p">:</span> <span class="n">np</span><span class="o">.</span><span class="n">any</span><span class="p">([</span><span class="n">oi</span><span class="o">.</span><span class="n">is_merged</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="kc">False</span><span class="p">)</span> <span class="k">for</span> <span class="n">oi</span> <span class="ow">in</span> <span class="n">list_of_obs</span><span class="p">])</span> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">o</span><span class="o">.</span><span class="n">names</span><span class="p">}</span>
|
||||
<span class="n">o</span><span class="o">.</span><span class="n">reweighted</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">max</span><span class="p">([</span><span class="n">oi</span><span class="o">.</span><span class="n">reweighted</span> <span class="k">for</span> <span class="n">oi</span> <span class="ow">in</span> <span class="n">list_of_obs</span><span class="p">])</span>
|
||||
<span class="k">return</span> <span class="n">o</span>
|
||||
</pre></div>
|
||||
|
|
Loading…
Add table
Reference in a new issue