46 lines
		
	
	
		
			837 B
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			837 B
		
	
	
	
		
			C
		
	
	
	
| 
 | |
| /* @(#)z_fabsf.c 1.0 98/08/13 */
 | |
| /******************************************************************
 | |
|  * Floating-Point Absolute Value
 | |
|  *
 | |
|  * Input:
 | |
|  *   x - floating-point number
 | |
|  *
 | |
|  * Output:
 | |
|  *   absolute value of x
 | |
|  *
 | |
|  * Description:
 | |
|  *   fabs computes the absolute value of a floating point number.
 | |
|  *
 | |
|  *****************************************************************/
 | |
| 
 | |
| #include "fdlibm.h"
 | |
| #include "zmath.h"
 | |
| 
 | |
| float
 | |
| _DEFUN (fabsf, (float),
 | |
|         float x)
 | |
| {
 | |
|   switch (numtestf (x))
 | |
|     {
 | |
|       case NAN:
 | |
|         errno = EDOM;
 | |
|         return (x);
 | |
|       case INF:
 | |
|         errno = ERANGE;
 | |
|         return (x);
 | |
|       case 0:
 | |
|         return (0.0);
 | |
|       default:
 | |
|         return (x < 0.0 ? -x : x);
 | |
|     }
 | |
| }
 | |
| 
 | |
| #ifdef _DOUBLE_IS_32BITS
 | |
| double fabs (double x)
 | |
| {
 | |
|   return (double) fabsf ((float) x);
 | |
| }
 | |
| 
 | |
| #endif /* defined(_DOUBLE_IS_32BITS) */
 |