URL
https://opencores.org/ocsvn/or1k_old/or1k_old/trunk
Subversion Repositories or1k_old
[/] [or1k_old/] [trunk/] [newlib-1.10.0/] [newlib/] [libm/] [math/] [s_fabs.c] - Rev 1782
Compare with Previous | Blame | View Log
/* @(#)s_fabs.c 5.1 93/09/24 */ /* * ==================================================== * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. * * Developed at SunPro, a Sun Microsystems, Inc. business. * Permission to use, copy, modify, and distribute this * software is freely granted, provided that this notice * is preserved. * ==================================================== */ /* FUNCTION <<fabs>>, <<fabsf>>---absolute value (magnitude) INDEX fabs INDEX fabsf ANSI_SYNOPSIS #include <math.h> double fabs(double <[x]>); float fabsf(float <[x]>); TRAD_SYNOPSIS #include <math.h> double fabs(<[x]>) double <[x]>; float fabsf(<[x]>) float <[x]>; DESCRIPTION <<fabs>> and <<fabsf>> calculate @tex $|x|$, @end tex the absolute value (magnitude) of the argument <[x]>, by direct manipulation of the bit representation of <[x]>. RETURNS The calculated value is returned. No errors are detected. PORTABILITY <<fabs>> is ANSI. <<fabsf>> is an extension. */ /* * fabs(x) returns the absolute value of x. */ #include "fdlibm.h" #ifndef _DOUBLE_IS_32BITS #ifdef __STDC__ double fabs(double x) #else double fabs(x) double x; #endif { __uint32_t high; GET_HIGH_WORD(high,x); SET_HIGH_WORD(x,high&0x7fffffff); return x; } #endif /* _DOUBLE_IS_32BITS */