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