[Numpy-tickets] [NumPy] #362: UFUNC_CHECK_STATUS doesn't correctly clear the fp flags on AIX
NumPy
numpy-tickets at scipy.net
Sun Oct 22 17:17:36 CDT 2006
#362: UFUNC_CHECK_STATUS doesn't correctly clear the fp flags on AIX
------------------------+---------------------------------------------------
Reporter: bgranger | Owner: somebody
Type: defect | Status: new
Priority: normal | Milestone: 1.0 Release
Component: numpy.core | Version:
Severity: major | Keywords:
------------------------+---------------------------------------------------
On AIX, UFUNC_CHECK_STATUS (in ufuncobject.h) always return 8 indicating
that an INVALID floating point error has occured. This is happening
because the fp flags are not being cleared. The current code tries to
clear the flags with the call:
fp_clr_flag( FP_DIV_BY_ZERO | FP_OVERFLOW | FP_UNDERFLOW | FP_INVALID);
But this doesn't work as expected. Instead, after this call is made the
FP_INVALID flag is set to true so all further calls to UFUNC_CHECK_STATUS
return 8. The correct way to clear the fp flags on AIX is:
fp_swap_flag(0);
the AIX documentation:
http://publib.boulder.ibm.com/infocenter/pseries/v5r3/index.jsp?topic=/com.ibm.aix.basetechref/doc/basetrf1/fp_clr_flag.htm
Makes only a vague reference to this being necessary, but apparently it
is.
Could we fix this before 1.0? Thanks!!!!
--
Ticket URL: <http://projects.scipy.org/scipy/numpy/ticket/362>
NumPy <http://projects.scipy.org/scipy/numpy>
The fundamental package needed for scientific computing with Python.
More information about the Numpy-tickets
mailing list