source: sasview/_modules/sas/perspectives/pr/pr_thread.html @ a462c6a

gh-pages
Last change on this file since a462c6a was a462c6a, checked in by ajj, 9 years ago

Rebuild to fix index and modules docs

  • Property mode set to 100644
File size: 21.6 KB
Line 
1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
4
5<html xmlns="http://www.w3.org/1999/xhtml">
6  <head>
7    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
8   
9    <title>sas.perspectives.pr.pr_thread &mdash; SasView 3.0.0 documentation</title>
10   
11    <link rel="stylesheet" href="../../../../_static/default.css" type="text/css" />
12    <link rel="stylesheet" href="../../../../_static/pygments.css" type="text/css" />
13   
14    <script type="text/javascript">
15      var DOCUMENTATION_OPTIONS = {
16        URL_ROOT:    '../../../../',
17        VERSION:     '3.0.0',
18        COLLAPSE_INDEX: false,
19        FILE_SUFFIX: '.html',
20        HAS_SOURCE:  true
21      };
22    </script>
23    <script type="text/javascript" src="../../../../_static/jquery.js"></script>
24    <script type="text/javascript" src="../../../../_static/underscore.js"></script>
25    <script type="text/javascript" src="../../../../_static/doctools.js"></script>
26    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
27    <link rel="top" title="SasView 3.0.0 documentation" href="../../../../index.html" />
28    <link rel="up" title="Module code" href="../../../index.html" /> 
29  </head>
30  <body>
31    <div class="related">
32      <h3>Navigation</h3>
33      <ul>
34        <li class="right" style="margin-right: 10px">
35          <a href="../../../../genindex.html" title="General Index"
36             accesskey="I">index</a></li>
37        <li class="right" >
38          <a href="../../../../py-modindex.html" title="Python Module Index"
39             >modules</a> |</li>
40        <li><a href="../../../../index.html">SasView 3.0.0 documentation</a> &raquo;</li>
41          <li><a href="../../../index.html" accesskey="U">Module code</a> &raquo;</li> 
42      </ul>
43    </div> 
44
45    <div class="document">
46      <div class="documentwrapper">
47        <div class="bodywrapper">
48          <div class="body">
49           
50  <h1>Source code for sas.perspectives.pr.pr_thread</h1><div class="highlight"><pre>
51<span class="c">################################################################################</span>
52<span class="c">#This software was developed by the University of Tennessee as part of the</span>
53<span class="c">#Distributed Data Analysis of Neutron Scattering Experiments (DANSE)</span>
54<span class="c">#project funded by the US National Science Foundation. </span>
55<span class="c">#</span>
56<span class="c">#See the license text in license.txt</span>
57<span class="c">#</span>
58<span class="c">#copyright 2009, University of Tennessee</span>
59<span class="c">################################################################################</span>
60
61<span class="kn">import</span> <span class="nn">sys</span>
62<span class="kn">import</span> <span class="nn">time</span>
63<span class="kn">from</span> <span class="nn">sas.data_util.calcthread</span> <span class="kn">import</span> <span class="n">CalcThread</span>
64
65<span class="k">class</span> <span class="nc">CalcPr</span><span class="p">(</span><span class="n">CalcThread</span><span class="p">):</span>
66<div class="viewcode-block" id="CalcPr"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.pr.html#sas.perspectives.pr.pr_thread.CalcPr">[docs]</a>    <span class="sd">&quot;&quot;&quot;</span>
67<span class="sd">    Compute P(r)</span>
68<span class="sd">    &quot;&quot;&quot;</span>
69   
70    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">pr</span><span class="p">,</span> <span class="n">nfunc</span><span class="o">=</span><span class="mi">5</span><span class="p">,</span> <span class="n">error_func</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span>
71                 <span class="n">completefn</span> <span class="o">=</span> <span class="bp">None</span><span class="p">,</span>
72                 <span class="n">updatefn</span>   <span class="o">=</span> <span class="bp">None</span><span class="p">,</span>
73                 <span class="n">yieldtime</span>  <span class="o">=</span> <span class="mf">0.01</span><span class="p">,</span>
74                 <span class="n">worktime</span>   <span class="o">=</span> <span class="mf">0.01</span>
75                 <span class="p">):</span>
76        <span class="sd">&quot;&quot;&quot;</span>
77<span class="sd">        &quot;&quot;&quot;</span>
78        <span class="n">CalcThread</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">completefn</span><span class="p">,</span>
79                 <span class="n">updatefn</span><span class="p">,</span>
80                 <span class="n">yieldtime</span><span class="p">,</span>
81                 <span class="n">worktime</span><span class="p">)</span>
82        <span class="bp">self</span><span class="o">.</span><span class="n">pr</span> <span class="o">=</span> <span class="n">pr</span>
83        <span class="bp">self</span><span class="o">.</span><span class="n">nfunc</span> <span class="o">=</span> <span class="n">nfunc</span>
84        <span class="bp">self</span><span class="o">.</span><span class="n">error_func</span> <span class="o">=</span> <span class="n">error_func</span>
85        <span class="bp">self</span><span class="o">.</span><span class="n">starttime</span> <span class="o">=</span> <span class="mi">0</span>
86       
87    <span class="k">def</span> <span class="nf">compute</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
88<div class="viewcode-block" id="CalcPr.compute"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.pr.html#sas.perspectives.pr.pr_thread.CalcPr.compute">[docs]</a>        <span class="sd">&quot;&quot;&quot;</span>
89<span class="sd">        Perform P(r) inversion</span>
90<span class="sd">        &quot;&quot;&quot;</span>
91        <span class="k">try</span><span class="p">:</span>
92            <span class="bp">self</span><span class="o">.</span><span class="n">starttime</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span>
93            <span class="n">out</span><span class="p">,</span> <span class="n">cov</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">pr</span><span class="o">.</span><span class="n">invert</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">nfunc</span><span class="p">)</span>
94            <span class="c">#out, cov = self.pr.lstsq(self.nfunc)</span>
95            <span class="c">#out, cov = self.pr.invert_optimize(self.nfunc)</span>
96            <span class="n">elapsed</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span><span class="o">-</span><span class="bp">self</span><span class="o">.</span><span class="n">starttime</span>
97            <span class="bp">self</span><span class="o">.</span><span class="n">complete</span><span class="p">(</span><span class="n">out</span><span class="o">=</span><span class="n">out</span><span class="p">,</span> <span class="n">cov</span><span class="o">=</span><span class="n">cov</span><span class="p">,</span> <span class="n">pr</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">pr</span><span class="p">,</span> <span class="n">elapsed</span><span class="o">=</span><span class="n">elapsed</span><span class="p">)</span>
98        <span class="k">except</span> <span class="ne">KeyboardInterrupt</span><span class="p">:</span>
99            <span class="c"># Thread was interrupted, just proceed</span>
100            <span class="k">pass</span>
101        <span class="k">except</span><span class="p">:</span>
102            <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">error_func</span><span class="o">==</span><span class="bp">None</span><span class="p">:</span>
103                <span class="bp">self</span><span class="o">.</span><span class="n">error_func</span><span class="p">(</span><span class="s">&quot;CalcPr.compute: </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">sys</span><span class="o">.</span><span class="n">exc_value</span><span class="p">)</span>
104
105<span class="k">class</span> <span class="nc">EstimatePr</span><span class="p">(</span><span class="n">CalcThread</span><span class="p">):</span></div></div>
106<div class="viewcode-block" id="EstimatePr"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.pr.html#sas.perspectives.pr.pr_thread.EstimatePr">[docs]</a>    <span class="sd">&quot;&quot;&quot;</span>
107<span class="sd">    Estimate P(r)</span>
108<span class="sd">    &quot;&quot;&quot;</span>
109   
110    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">pr</span><span class="p">,</span> <span class="n">nfunc</span><span class="o">=</span><span class="mi">5</span><span class="p">,</span> <span class="n">error_func</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span>
111                 <span class="n">completefn</span> <span class="o">=</span> <span class="bp">None</span><span class="p">,</span>
112                 <span class="n">updatefn</span>   <span class="o">=</span> <span class="bp">None</span><span class="p">,</span>
113                 <span class="n">yieldtime</span>  <span class="o">=</span> <span class="mf">0.01</span><span class="p">,</span>
114                 <span class="n">worktime</span>   <span class="o">=</span> <span class="mf">0.01</span>
115                 <span class="p">):</span>
116        <span class="n">CalcThread</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">completefn</span><span class="p">,</span>
117                 <span class="n">updatefn</span><span class="p">,</span>
118                 <span class="n">yieldtime</span><span class="p">,</span>
119                 <span class="n">worktime</span><span class="p">)</span>
120        <span class="bp">self</span><span class="o">.</span><span class="n">pr</span> <span class="o">=</span> <span class="n">pr</span>
121        <span class="bp">self</span><span class="o">.</span><span class="n">nfunc</span> <span class="o">=</span> <span class="n">nfunc</span>
122        <span class="bp">self</span><span class="o">.</span><span class="n">error_func</span> <span class="o">=</span> <span class="n">error_func</span>
123        <span class="bp">self</span><span class="o">.</span><span class="n">starttime</span> <span class="o">=</span> <span class="mi">0</span>
124       
125    <span class="k">def</span> <span class="nf">compute</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
126<div class="viewcode-block" id="EstimatePr.compute"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.pr.html#sas.perspectives.pr.pr_thread.EstimatePr.compute">[docs]</a>        <span class="sd">&quot;&quot;&quot;</span>
127<span class="sd">        Calculates the estimate</span>
128<span class="sd">        &quot;&quot;&quot;</span>
129        <span class="k">try</span><span class="p">:</span>           
130            <span class="n">alpha</span><span class="p">,</span> <span class="n">message</span><span class="p">,</span> <span class="n">elapsed</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">pr</span><span class="o">.</span><span class="n">estimate_alpha</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">nfunc</span><span class="p">)</span>
131            <span class="bp">self</span><span class="o">.</span><span class="n">isquit</span><span class="p">()</span>
132            <span class="bp">self</span><span class="o">.</span><span class="n">complete</span><span class="p">(</span><span class="n">alpha</span><span class="o">=</span><span class="n">alpha</span><span class="p">,</span> <span class="n">message</span><span class="o">=</span><span class="n">message</span><span class="p">,</span> <span class="n">elapsed</span><span class="o">=</span><span class="n">elapsed</span><span class="p">)</span>
133        <span class="k">except</span> <span class="ne">KeyboardInterrupt</span><span class="p">:</span>
134            <span class="c"># Thread was interrupted, just proceed</span>
135            <span class="k">pass</span>
136        <span class="k">except</span><span class="p">:</span>
137            <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">error_func</span><span class="o">==</span><span class="bp">None</span><span class="p">:</span>
138                <span class="bp">self</span><span class="o">.</span><span class="n">error_func</span><span class="p">(</span><span class="s">&quot;EstimatePr.compute: </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">sys</span><span class="o">.</span><span class="n">exc_value</span><span class="p">)</span>
139
140<span class="k">class</span> <span class="nc">EstimateNT</span><span class="p">(</span><span class="n">CalcThread</span><span class="p">):</span></div></div>
141<div class="viewcode-block" id="EstimateNT"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.pr.html#sas.perspectives.pr.pr_thread.EstimateNT">[docs]</a>    <span class="sd">&quot;&quot;&quot;</span>
142<span class="sd">    &quot;&quot;&quot;</span>
143    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">pr</span><span class="p">,</span> <span class="n">nfunc</span><span class="o">=</span><span class="mi">5</span><span class="p">,</span> <span class="n">error_func</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span>
144                 <span class="n">completefn</span> <span class="o">=</span> <span class="bp">None</span><span class="p">,</span>
145                 <span class="n">updatefn</span>   <span class="o">=</span> <span class="bp">None</span><span class="p">,</span>
146                 <span class="n">yieldtime</span>  <span class="o">=</span> <span class="mf">0.01</span><span class="p">,</span>
147                 <span class="n">worktime</span>   <span class="o">=</span> <span class="mf">0.01</span>
148                 <span class="p">):</span>
149        <span class="n">CalcThread</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">completefn</span><span class="p">,</span>
150                 <span class="n">updatefn</span><span class="p">,</span>
151                 <span class="n">yieldtime</span><span class="p">,</span>
152                 <span class="n">worktime</span><span class="p">)</span>
153        <span class="bp">self</span><span class="o">.</span><span class="n">pr</span> <span class="o">=</span> <span class="n">pr</span>
154        <span class="bp">self</span><span class="o">.</span><span class="n">nfunc</span> <span class="o">=</span> <span class="n">nfunc</span>
155        <span class="bp">self</span><span class="o">.</span><span class="n">error_func</span> <span class="o">=</span> <span class="n">error_func</span>
156        <span class="bp">self</span><span class="o">.</span><span class="n">starttime</span> <span class="o">=</span> <span class="mi">0</span>
157        <span class="bp">self</span><span class="o">.</span><span class="n">_time_for_sleep</span> <span class="o">=</span> <span class="mi">0</span>
158        <span class="bp">self</span><span class="o">.</span><span class="n">_sleep_delay</span> <span class="o">=</span> <span class="mf">1.0</span>
159
160
161    <span class="k">def</span> <span class="nf">isquit</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
162<div class="viewcode-block" id="EstimateNT.isquit"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.pr.html#sas.perspectives.pr.pr_thread.EstimateNT.isquit">[docs]</a>        <span class="sd">&quot;&quot;&quot;</span>
163<span class="sd">        &quot;&quot;&quot;</span>
164        <span class="n">CalcThread</span><span class="o">.</span><span class="n">isquit</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
165        <span class="k">if</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span><span class="o">&gt;</span><span class="bp">self</span><span class="o">.</span><span class="n">_time_for_sleep</span><span class="o">+</span><span class="bp">self</span><span class="o">.</span><span class="n">_sleep_delay</span><span class="p">:</span>
166            <span class="n">time</span><span class="o">.</span><span class="n">sleep</span><span class="p">(</span><span class="o">.</span><span class="mi">2</span><span class="p">)</span>
167            <span class="bp">self</span><span class="o">.</span><span class="n">_time_for_sleep</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span>
168
169    <span class="k">def</span> <span class="nf">compute</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span></div>
170<div class="viewcode-block" id="EstimateNT.compute"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.pr.html#sas.perspectives.pr.pr_thread.EstimateNT.compute">[docs]</a>        <span class="sd">&quot;&quot;&quot;</span>
171<span class="sd">        Calculates the estimate</span>
172<span class="sd">        &quot;&quot;&quot;</span>
173        <span class="k">try</span><span class="p">:</span>           
174            <span class="n">t_0</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span>
175            <span class="bp">self</span><span class="o">.</span><span class="n">_time_for_sleep</span> <span class="o">=</span> <span class="n">t_0</span>
176            <span class="n">nterms</span><span class="p">,</span> <span class="n">alpha</span><span class="p">,</span> <span class="n">message</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">pr</span><span class="o">.</span><span class="n">estimate_numterms</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">isquit</span><span class="p">)</span>
177            <span class="n">t_1</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span><span class="o">-</span><span class="n">t_0</span>
178            <span class="bp">self</span><span class="o">.</span><span class="n">isquit</span><span class="p">()</span>
179            <span class="bp">self</span><span class="o">.</span><span class="n">complete</span><span class="p">(</span><span class="n">nterms</span><span class="o">=</span><span class="n">nterms</span><span class="p">,</span> <span class="n">alpha</span><span class="o">=</span><span class="n">alpha</span><span class="p">,</span> <span class="n">message</span><span class="o">=</span><span class="n">message</span><span class="p">,</span> <span class="n">elapsed</span><span class="o">=</span><span class="n">t_1</span><span class="p">)</span>
180        <span class="k">except</span> <span class="ne">KeyboardInterrupt</span><span class="p">:</span>
181            <span class="c"># Thread was interrupted, just proceed</span>
182            <span class="k">pass</span>
183        <span class="k">except</span><span class="p">:</span>
184            <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">error_func</span><span class="o">==</span><span class="bp">None</span><span class="p">:</span>
185                <span class="bp">self</span><span class="o">.</span><span class="n">error_func</span><span class="p">(</span><span class="s">&quot;EstimatePr2.compute: </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">sys</span><span class="o">.</span><span class="n">exc_value</span><span class="p">)</span>
186</pre></div></div></div>
187
188          </div>
189        </div>
190      </div>
191      <div class="sphinxsidebar">
192        <div class="sphinxsidebarwrapper">
193<div id="searchbox" style="display: none">
194  <h3>Quick search</h3>
195    <form class="search" action="../../../../search.html" method="get">
196      <input type="text" name="q" />
197      <input type="submit" value="Go" />
198      <input type="hidden" name="check_keywords" value="yes" />
199      <input type="hidden" name="area" value="default" />
200    </form>
201    <p class="searchtip" style="font-size: 90%">
202    Enter search terms or a module, class or function name.
203    </p>
204</div>
205<script type="text/javascript">$('#searchbox').show(0);</script>
206        </div>
207      </div>
208      <div class="clearer"></div>
209    </div>
210    <div class="related">
211      <h3>Navigation</h3>
212      <ul>
213        <li class="right" style="margin-right: 10px">
214          <a href="../../../../genindex.html" title="General Index"
215             >index</a></li>
216        <li class="right" >
217          <a href="../../../../py-modindex.html" title="Python Module Index"
218             >modules</a> |</li>
219        <li><a href="../../../../index.html">SasView 3.0.0 documentation</a> &raquo;</li>
220          <li><a href="../../../index.html" >Module code</a> &raquo;</li> 
221      </ul>
222    </div>
223    <div class="footer">
224        &copy; Copyright 2013, The SasView Project.
225      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.3.
226    </div>
227  </body>
228</html>
Note: See TracBrowser for help on using the repository browser.