Changeset 1513 for trunk/sphinxdocs/build/html/_modules/GSASIIpy3.html
- Timestamp:
- Oct 2, 2014 4:06:45 PM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sphinxdocs/build/html/_modules/GSASIIpy3.html
r1298 r1513 1 2 3 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 4 2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> … … 62 60 <span class="kn">import</span> <span class="nn">numpy</span> <span class="kn">as</span> <span class="nn">np</span> 63 61 <span class="kn">import</span> <span class="nn">GSASIIpath</span> 64 <span class="n">GSASIIpath</span><span class="o">.</span><span class="n">SetVersionNumber</span><span class="p">(</span><span class="s">"$Revision: 1 255$"</span><span class="p">)</span>65 <span class="c"># de </span>62 <span class="n">GSASIIpath</span><span class="o">.</span><span class="n">SetVersionNumber</span><span class="p">(</span><span class="s">"$Revision: 1447 $"</span><span class="p">)</span> 63 <span class="c"># declare symbol (pi) and functions allowed in expressions</span> 66 64 <span class="n">sind</span> <span class="o">=</span> <span class="n">sin</span> <span class="o">=</span> <span class="n">s</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">np</span><span class="o">.</span><span class="n">sin</span><span class="p">(</span><span class="n">x</span><span class="o">*</span><span class="n">np</span><span class="o">.</span><span class="n">pi</span><span class="o">/</span><span class="mf">180.</span><span class="p">)</span> 67 65 <span class="n">cosd</span> <span class="o">=</span> <span class="n">cos</span> <span class="o">=</span> <span class="n">c</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">np</span><span class="o">.</span><span class="n">cos</span><span class="p">(</span><span class="n">x</span><span class="o">*</span><span class="n">np</span><span class="o">.</span><span class="n">pi</span><span class="o">/</span><span class="mf">180.</span><span class="p">)</span> … … 105 103 <span class="n">digits</span> <span class="o">=</span> <span class="p">[</span><span class="mi">10</span><span class="p">,</span><span class="mi">2</span><span class="p">]</span> 106 104 <span class="k">else</span><span class="p">:</span> 107 <span class="n">digits</span> <span class="o">=</span> <span class="n ">maxdigits</span>105 <span class="n">digits</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">maxdigits</span><span class="p">)</span> 108 106 <span class="n">fmt</span> <span class="o">=</span> <span class="s">'{:'</span><span class="o">+</span><span class="nb">str</span><span class="p">(</span><span class="n">digits</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span><span class="o">+</span><span class="s">'}'</span> 109 107 <span class="n">s</span> <span class="o">=</span> <span class="n">fmt</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">FormatValue</span><span class="p">(</span><span class="n">val</span><span class="p">,</span><span class="n">digits</span><span class="p">))</span> … … 115 113 </div> 116 114 <div class="viewcode-block" id="FormatValue"><a class="viewcode-back" href="../GSASIIGUIr.html#GSASIIpy3.FormatValue">[docs]</a><span class="k">def</span> <span class="nf">FormatValue</span><span class="p">(</span><span class="n">val</span><span class="p">,</span><span class="n">maxdigits</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span> 117 <span class="sd">'''Format a float to fit in ``maxdigits[0]`` spaces with maxdigits[1] after decimal.</span> 115 <span class="sd">'''Format a float to fit in at most ``maxdigits[0]`` spaces with maxdigits[1] after decimal.</span> 116 <span class="sd"> Note that this code has been hacked from FormatSigFigs and may have unused sections. </span> 118 117 119 118 <span class="sd"> :param float val: number to be formatted.</span> … … 127 126 <span class="n">digits</span> <span class="o">=</span> <span class="p">[</span><span class="mi">10</span><span class="p">,</span><span class="mi">2</span><span class="p">]</span> 128 127 <span class="k">else</span><span class="p">:</span> 129 <span class="n">digits</span> <span class="o">=</span> <span class="n">maxdigits</span> 130 <span class="c"># does the standard str() conversion fit?</span> 131 <span class="n">string</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">val</span><span class="p">)</span> 132 <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">string</span><span class="p">)</span> <span class="o"><=</span> <span class="n">digits</span><span class="p">[</span><span class="mi">0</span><span class="p">]:</span> <span class="k">return</span> <span class="n">string</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> 133 <span class="c"># negative numbers, leave room for a sign</span> 134 <span class="k">if</span> <span class="n">val</span> <span class="o"><</span> <span class="mi">0</span><span class="p">:</span> <span class="n">digits</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">-=</span> <span class="mi">1</span> 128 <span class="n">digits</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">maxdigits</span><span class="p">)</span> 129 <span class="n">fmt</span><span class="o">=</span><span class="s">"{:."</span><span class="o">+</span><span class="nb">str</span><span class="p">(</span><span class="n">digits</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span><span class="o">+</span><span class="s">"f}"</span> 130 <span class="n">string</span> <span class="o">=</span> <span class="n">fmt</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="nb">float</span><span class="p">(</span><span class="n">val</span><span class="p">))</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="c"># will standard .f formatting work?</span> 131 <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">string</span><span class="p">)</span> <span class="o"><=</span> <span class="n">digits</span><span class="p">[</span><span class="mi">0</span><span class="p">]:</span> 132 <span class="k">if</span> <span class="s">':'</span> <span class="ow">in</span> <span class="n">string</span><span class="p">:</span> <span class="c"># deal with weird bug where a colon pops up in a number when formatting (EPD 7.3.2!)</span> 133 <span class="n">string</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">val</span><span class="p">)</span> 134 <span class="k">if</span> <span class="n">digits</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">></span> <span class="mi">0</span><span class="p">:</span> <span class="c"># strip off extra zeros on right side</span> 135 <span class="n">string</span> <span class="o">=</span> <span class="n">string</span><span class="o">.</span><span class="n">rstrip</span><span class="p">(</span><span class="s">'0'</span><span class="p">)</span> 136 <span class="k">if</span> <span class="n">string</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">==</span> <span class="s">'.'</span><span class="p">:</span> <span class="n">string</span> <span class="o">+=</span> <span class="s">"0"</span> 137 <span class="k">return</span> <span class="n">string</span> 138 <span class="k">if</span> <span class="n">val</span> <span class="o"><</span> <span class="mi">0</span><span class="p">:</span> <span class="n">digits</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="c"># negative numbers, reserve space for the sign</span> 135 139 <span class="n">decimals</span> <span class="o">=</span> <span class="n">digits</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">-</span> <span class="n">digits</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> 136 <span class="k">if</span> <span class="nb">abs</span><span class="p">(</span><span class="n">val</span><span class="p">)</span> <span class="o"><</span> <span class="mf">1e-99</span> <span class="ow">or</span> <span class="nb">abs</span><span class="p">(</span><span class="n">val</span><span class="p">)</span> <span class="o">></span> <span class="mf">1e99</span><span class="p">:</span> 137 <span class="n">decimals</span> <span class="o">=</span> <span class="nb">min</span><span class="p">(</span><span class="n">digits</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">-</span><span class="mi">6</span><span class="p">,</span><span class="n">digits</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span> 138 <span class="n">fmt</span> <span class="o">=</span> <span class="s">"{"</span> <span class="o">+</span> <span class="p">(</span><span class="s">":{:d}.{:d}g"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">digits</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span><span class="n">decimals</span><span class="p">))</span><span class="o">+</span><span class="s">"}"</span> <span class="c"># create format string</span> 139 <span class="k">elif</span> <span class="nb">abs</span><span class="p">(</span><span class="n">val</span><span class="p">)</span> <span class="o"><</span> <span class="mf">1e-9</span> <span class="ow">or</span> <span class="nb">abs</span><span class="p">(</span><span class="n">val</span><span class="p">)</span> <span class="o">></span> <span class="mf">1e9</span><span class="p">:</span> 140 <span class="k">if</span> <span class="nb">abs</span><span class="p">(</span><span class="n">val</span><span class="p">)</span> <span class="o">></span> <span class="mf">1e99</span><span class="p">:</span> <span class="c"># for very large numbers, use scientific notation and use all digits</span> 141 <span class="n">fmt</span> <span class="o">=</span> <span class="s">"{"</span> <span class="o">+</span> <span class="p">(</span><span class="s">":{:d}.{:d}g"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">digits</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span><span class="n">digits</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">-</span><span class="mi">6</span><span class="p">))</span><span class="o">+</span><span class="s">"}"</span> 142 <span class="k">elif</span> <span class="nb">abs</span><span class="p">(</span><span class="n">val</span><span class="p">)</span> <span class="o">></span> <span class="mf">1e9</span><span class="p">:</span> 143 <span class="n">fmt</span> <span class="o">=</span> <span class="s">"{"</span> <span class="o">+</span> <span class="p">(</span><span class="s">":{:d}.{:d}g"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">digits</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span><span class="n">digits</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">-</span><span class="mi">5</span><span class="p">))</span><span class="o">+</span><span class="s">"}"</span> 144 <span class="k">elif</span> <span class="nb">abs</span><span class="p">(</span><span class="n">val</span><span class="p">)</span> <span class="o"><</span> <span class="mi">10</span><span class="o">**</span><span class="p">(</span><span class="mi">4</span><span class="o">-</span><span class="n">decimals</span><span class="p">):</span> <span class="c"># make sure at least 4 decimals show</span> 145 <span class="c"># this clause is probably no longer needed since the number probably shows as 0.0</span> 140 146 <span class="n">decimals</span> <span class="o">=</span> <span class="nb">min</span><span class="p">(</span><span class="n">digits</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">-</span><span class="mi">5</span><span class="p">,</span><span class="n">digits</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span> 141 147 <span class="n">fmt</span> <span class="o">=</span> <span class="s">"{"</span> <span class="o">+</span> <span class="p">(</span><span class="s">":{:d}.{:d}g"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">digits</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span><span class="n">decimals</span><span class="p">))</span><span class="o">+</span><span class="s">"}"</span> 142 <span class="k">elif</span> <span class="nb">abs</span><span class="p">(</span><span class="n">val</span><span class="p">)</span> <span class="o"><</span> <span class="mi">10</span><span class="o">**</span><span class="p">(</span><span class="mi">4</span><span class="o">-</span><span class="n">decimals</span><span class="p">):</span> <span class="c"># make sure at least 4 decimals show</span> 143 <span class="n">decimals</span> <span class="o">=</span> <span class="nb">min</span><span class="p">(</span><span class="n">digits</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">-</span><span class="mi">5</span><span class="p">,</span><span class="n">digits</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span> 144 <span class="n">fmt</span> <span class="o">=</span> <span class="s">"{"</span> <span class="o">+</span> <span class="p">(</span><span class="s">":{:d}.{:d}g"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">digits</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span><span class="n">decimals</span><span class="p">))</span><span class="o">+</span><span class="s">"}"</span> 145 <span class="k">elif</span> <span class="nb">abs</span><span class="p">(</span><span class="n">val</span><span class="p">)</span> <span class="o">>=</span> <span class="mi">10</span><span class="o">**</span><span class="n">decimals</span><span class="p">:</span> <span class="c"># deal with large numbers in smaller spaces</span> 146 <span class="n">decimals</span> <span class="o">=</span> <span class="nb">min</span><span class="p">(</span><span class="n">digits</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">-</span><span class="mi">5</span><span class="p">,</span><span class="n">digits</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span> 148 <span class="k">elif</span> <span class="nb">abs</span><span class="p">(</span><span class="n">val</span><span class="p">)</span> <span class="o">>=</span> <span class="mi">10</span><span class="o">**</span><span class="p">(</span><span class="n">decimals</span><span class="o">-</span><span class="mi">1</span><span class="p">):</span> <span class="c"># deal with large numbers in smaller spaces</span> 149 <span class="n">decimals</span> <span class="o">=</span> <span class="nb">max</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="n">digits</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">-</span><span class="mi">5</span><span class="p">)</span> 147 150 <span class="n">fmt</span> <span class="o">=</span> <span class="s">"{"</span> <span class="o">+</span> <span class="p">(</span><span class="s">":{:d}.{:d}g"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">digits</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span><span class="n">decimals</span><span class="p">))</span><span class="o">+</span><span class="s">"}"</span> 148 151 <span class="k">elif</span> <span class="nb">abs</span><span class="p">(</span><span class="n">val</span><span class="p">)</span> <span class="o"><</span> <span class="mi">1</span><span class="p">:</span> <span class="c"># use f format for small numbers</span> 152 <span class="c"># this clause is probably no longer needed since the number probably shows as 0.0</span> 149 153 <span class="n">decimals</span> <span class="o">=</span> <span class="nb">min</span><span class="p">(</span><span class="n">digits</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">-</span><span class="mi">3</span><span class="p">,</span><span class="n">digits</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span> 150 154 <span class="n">fmt</span> <span class="o">=</span> <span class="s">"{"</span> <span class="o">+</span> <span class="p">(</span><span class="s">":{:d}.{:d}f"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">digits</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span><span class="n">decimals</span><span class="p">))</span><span class="o">+</span><span class="s">"}"</span> 151 155 <span class="k">else</span><span class="p">:</span> <span class="c"># in range where g formatting should do what I want</span> 156 <span class="c"># used? </span> 152 157 <span class="n">decimals</span> <span class="o">=</span> <span class="n">digits</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">-</span> <span class="mi">1</span> 153 158 <span class="n">fmt</span> <span class="o">=</span> <span class="s">"{"</span> <span class="o">+</span> <span class="p">(</span><span class="s">":{:d}.{:d}g"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">digits</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span><span class="n">decimals</span><span class="p">))</span><span class="o">+</span><span class="s">"}"</span> … … 258 263 <div class="footer"> 259 264 © Copyright 2013, Von Dreele and Toby for Argonne National Laboratory. 260 Created using <a href="http://sphinx .pocoo.org/">Sphinx</a> 1.1.2.265 Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2. 261 266 </div> 262 267 </body>
Note: See TracChangeset
for help on using the changeset viewer.