diff -r 000000000000 -r bde4ae8d615e os/ossrv/genericopenlibs/cstdlib/LMATH/S_FABS.C --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/os/ossrv/genericopenlibs/cstdlib/LMATH/S_FABS.C Fri Jun 15 03:10:57 2012 +0200 @@ -0,0 +1,76 @@ +/* S_FABS.C + * + * Portions Copyright (c) 1993-2005 Nokia Corporation and/or its subsidiary(-ies). + * All rights reserved. + */ + + +/* @(#)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 + <>, <>---absolute value (magnitude) +INDEX + fabs +INDEX + fabsf + +ANSI_SYNOPSIS + #include + double fabs(double <[x]>); + float fabsf(float <[x]>); + +TRAD_SYNOPSIS + #include + double fabs(<[x]>) + double <[x]>; + + float fabsf(<[x]>) + float <[x]>; + +DESCRIPTION +<> and <> 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 +<> is ANSI. +<> is an extension. + +*/ + +/* + * fabs(x) returns the absolute value of x. + */ + +#include "FDLIBM.H" + +/** +Return absolute value of floating-point. +Returns the absoulte value of parameter x. /x/ +@return Absoulte value of x. +@param x Floating point value. +*/ +EXPORT_C double fabs(double x) __SOFTFP +{ + __uint32_t high; + GET_HIGH_WORD(high,x); + SET_HIGH_WORD(x,high&0x7fffffff); + return x; +}