[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