genericopenlibs/cstdlib/LMATH/S_FABS.C
changeset 31 ce057bb09d0b
parent 0 e4d67989cc36
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/genericopenlibs/cstdlib/LMATH/S_FABS.C	Fri Jun 04 16:20:51 2010 +0100
@@ -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
+       <<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"
+
+/**
+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;
+}