4063
This commit is contained in:
parent
03dcb7c940
commit
f603d9f2d3
|
@ -193,14 +193,14 @@ feenableexcept(FE_OVERFLOW | FE_UNDERFLOW);
|
|||
#ifdef __APPLE__
|
||||
// Public domain polyfill for feenableexcept on OS X
|
||||
// http://www-personal.umich.edu/~williams/archive/computation/fe-handling-example.c
|
||||
int feenableexcept (unsigned int excepts) {
|
||||
int feenableexcept(unsigned int excepts) {
|
||||
static fenv_t fenv;
|
||||
unsigned int new_excepts = excepts & FE_ALL_EXCEPT;
|
||||
unsigned int old_excepts;
|
||||
if (fegetenv(&fenv)) return -1;
|
||||
old_excepts = fenv.__control & FE_ALL_EXCEPT;
|
||||
fenv.__control &= ~new_excepts;
|
||||
fenv.__mxcsr &= ~(new_excepts << 7);
|
||||
fenv.__mxcsr &= ~(new_excepts << 7);
|
||||
return fesetenv(&fenv) ? -1 : old_excepts;
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -256,14 +256,14 @@ if ('onhashchange' in window) {
|
|||
<span id="L193" class="LineNr">193 </span><span class="PreProc">#ifdef __APPLE__</span>
|
||||
<span id="L194" class="LineNr">194 </span><span class="Comment">// Public domain polyfill for feenableexcept on OS X</span>
|
||||
<span id="L195" class="LineNr">195 </span><span class="Comment">// <a href="http://www-personal.umich.edu/~williams/archive/computation/fe-handling-example.c">http://www-personal.umich.edu/~williams/archive/computation/fe-handling-example.c</a></span>
|
||||
<span id="L196" class="LineNr">196 </span><span class="Normal">int</span> <a href='001help.cc.html#L196'>feenableexcept</a> <span class="Delimiter">(</span><span class="Normal">unsigned</span> <span class="Normal">int</span> excepts<span class="Delimiter">)</span> <span class="Delimiter">{</span>
|
||||
<span id="L196" class="LineNr">196 </span><span class="Normal">int</span> <a href='001help.cc.html#L196'>feenableexcept</a><span class="Delimiter">(</span><span class="Normal">unsigned</span> <span class="Normal">int</span> excepts<span class="Delimiter">)</span> <span class="Delimiter">{</span>
|
||||
<span id="L197" class="LineNr">197 </span> <span class="Normal">static</span> fenv_t fenv<span class="Delimiter">;</span>
|
||||
<span id="L198" class="LineNr">198 </span> <span class="Normal">unsigned</span> <span class="Normal">int</span> new_excepts = excepts & FE_ALL_EXCEPT<span class="Delimiter">;</span>
|
||||
<span id="L199" class="LineNr">199 </span> <span class="Normal">unsigned</span> <span class="Normal">int</span> old_excepts<span class="Delimiter">;</span>
|
||||
<span id="L200" class="LineNr">200 </span> <span class="Normal">if</span> <span class="Delimiter">(</span>fegetenv<span class="Delimiter">(</span>&fenv<span class="Delimiter">))</span> <span class="Identifier">return</span> -<span class="Constant">1</span><span class="Delimiter">;</span>
|
||||
<span id="L201" class="LineNr">201 </span> old_excepts = fenv<span class="Delimiter">.</span>__control & FE_ALL_EXCEPT<span class="Delimiter">;</span>
|
||||
<span id="L202" class="LineNr">202 </span> fenv<span class="Delimiter">.</span>__control &= ~new_excepts<span class="Delimiter">;</span>
|
||||
<span id="L203" class="LineNr">203 </span> fenv<span class="Delimiter">.</span>__mxcsr &= ~<span class="Delimiter">(</span>new_excepts << <span class="Constant">7</span><span class="Delimiter">);</span>
|
||||
<span id="L203" class="LineNr">203 </span> fenv<span class="Delimiter">.</span>__mxcsr &= ~<span class="Delimiter">(</span>new_excepts << <span class="Constant">7</span><span class="Delimiter">);</span>
|
||||
<span id="L204" class="LineNr">204 </span> <span class="Identifier">return</span> fesetenv<span class="Delimiter">(</span>&fenv<span class="Delimiter">)</span> ? -<span class="Constant">1</span> : old_excepts<span class="Delimiter">;</span>
|
||||
<span id="L205" class="LineNr">205 </span><span class="Delimiter">}</span>
|
||||
<span id="L206" class="LineNr">206 </span><span class="PreProc">#endif</span>
|
||||
|
|
|
@ -206,14 +206,14 @@ if ('onhashchange' in window) {
|
|||
<span id="L143" class="LineNr">143 </span><span class="PreProc">#ifdef __APPLE__</span>
|
||||
<span id="L144" class="LineNr">144 </span><span class="Comment">// Public domain polyfill for feenableexcept on OS X</span>
|
||||
<span id="L145" class="LineNr">145 </span><span class="Comment">// <a href="http://www-personal.umich.edu/~williams/archive/computation/fe-handling-example.c">http://www-personal.umich.edu/~williams/archive/computation/fe-handling-example.c</a></span>
|
||||
<span id="L146" class="LineNr">146 </span><span class="Normal">int</span> <a href='001help.cc.html#L146'>feenableexcept</a> <span class="Delimiter">(</span><span class="Normal">unsigned</span> <span class="Normal">int</span> excepts<span class="Delimiter">)</span> <span class="Delimiter">{</span>
|
||||
<span id="L146" class="LineNr">146 </span><span class="Normal">int</span> <a href='001help.cc.html#L146'>feenableexcept</a><span class="Delimiter">(</span><span class="Normal">unsigned</span> <span class="Normal">int</span> excepts<span class="Delimiter">)</span> <span class="Delimiter">{</span>
|
||||
<span id="L147" class="LineNr">147 </span> <span class="Normal">static</span> fenv_t fenv<span class="Delimiter">;</span>
|
||||
<span id="L148" class="LineNr">148 </span> <span class="Normal">unsigned</span> <span class="Normal">int</span> new_excepts = excepts & FE_ALL_EXCEPT<span class="Delimiter">;</span>
|
||||
<span id="L149" class="LineNr">149 </span> <span class="Normal">unsigned</span> <span class="Normal">int</span> old_excepts<span class="Delimiter">;</span>
|
||||
<span id="L150" class="LineNr">150 </span> <span class="Normal">if</span> <span class="Delimiter">(</span>fegetenv<span class="Delimiter">(</span>&fenv<span class="Delimiter">))</span> <span class="Identifier">return</span> -<span class="Constant">1</span><span class="Delimiter">;</span>
|
||||
<span id="L151" class="LineNr">151 </span> old_excepts = fenv<span class="Delimiter">.</span>__control & FE_ALL_EXCEPT<span class="Delimiter">;</span>
|
||||
<span id="L152" class="LineNr">152 </span> fenv<span class="Delimiter">.</span>__control &= ~new_excepts<span class="Delimiter">;</span>
|
||||
<span id="L153" class="LineNr">153 </span> fenv<span class="Delimiter">.</span>__mxcsr &= ~<span class="Delimiter">(</span>new_excepts << <span class="Constant">7</span><span class="Delimiter">);</span>
|
||||
<span id="L153" class="LineNr">153 </span> fenv<span class="Delimiter">.</span>__mxcsr &= ~<span class="Delimiter">(</span>new_excepts << <span class="Constant">7</span><span class="Delimiter">);</span>
|
||||
<span id="L154" class="LineNr">154 </span> <span class="Identifier">return</span> fesetenv<span class="Delimiter">(</span>&fenv<span class="Delimiter">)</span> ? -<span class="Constant">1</span> : old_excepts<span class="Delimiter">;</span>
|
||||
<span id="L155" class="LineNr">155 </span><span class="Delimiter">}</span>
|
||||
<span id="L156" class="LineNr">156 </span><span class="PreProc">#endif</span>
|
||||
|
|
|
@ -143,14 +143,14 @@ feenableexcept(FE_OVERFLOW | FE_UNDERFLOW);
|
|||
#ifdef __APPLE__
|
||||
// Public domain polyfill for feenableexcept on OS X
|
||||
// http://www-personal.umich.edu/~williams/archive/computation/fe-handling-example.c
|
||||
int feenableexcept (unsigned int excepts) {
|
||||
int feenableexcept(unsigned int excepts) {
|
||||
static fenv_t fenv;
|
||||
unsigned int new_excepts = excepts & FE_ALL_EXCEPT;
|
||||
unsigned int old_excepts;
|
||||
if (fegetenv(&fenv)) return -1;
|
||||
old_excepts = fenv.__control & FE_ALL_EXCEPT;
|
||||
fenv.__control &= ~new_excepts;
|
||||
fenv.__mxcsr &= ~(new_excepts << 7);
|
||||
fenv.__mxcsr &= ~(new_excepts << 7);
|
||||
return fesetenv(&fenv) ? -1 : old_excepts;
|
||||
}
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue
Block a user