diff options
| author | Eric Andersen <andersen@codepoet.org> | 2001-11-22 14:04:29 +0000 | 
|---|---|---|
| committer | Eric Andersen <andersen@codepoet.org> | 2001-11-22 14:04:29 +0000 | 
| commit | 7ce331c01ce6eb7b3f5c715a38a24359da9c6ee2 (patch) | |
| tree | 3a7e8476e868ae15f4da1b7ce26b2db6f434468c /libm/double/round.c | |
| parent | c117dd5fb183afb1a4790a6f6110d88704be6bf8 (diff) | |
| download | uClibc-alpine-7ce331c01ce6eb7b3f5c715a38a24359da9c6ee2.tar.bz2 uClibc-alpine-7ce331c01ce6eb7b3f5c715a38a24359da9c6ee2.tar.xz | |
Totally rework the math library, this time based on the MacOs X
math library (which is itself based on the math lib from FreeBSD).
 -Erik
Diffstat (limited to 'libm/double/round.c')
| -rw-r--r-- | libm/double/round.c | 79 | 
1 files changed, 0 insertions, 79 deletions
| diff --git a/libm/double/round.c b/libm/double/round.c deleted file mode 100644 index d20697123..000000000 --- a/libm/double/round.c +++ /dev/null @@ -1,79 +0,0 @@ -/* - * June 19, 2001       Manuel Novoa III - * - * Replaced cephes round (which was actually round to nearest or even) - * with a (really lame actually) version that always rounds away from 0 - * in conformance with ANSI/ISO. - * - * This doesn't check for inf or nan (hence the lame part) but the - * cephes function it replaces didn't either.  I plan to deal with - * those issues when I rework things w.r.t. common code. - * - * Also, for now rename the original cephes round routine to rint since - * it behaves the same for the default rounding mode (round to nearest). - * This will have to be changed off course when floating point env - * control functions are added. - */ - -#include <math.h> - -double round(x) -double x; -{ -	double ax, fax; - -	ax = fabs(x); -	fax = floor(ax); -	if (ax - fax >= 0.5) { -		fax += 1.0; -	} -	if (x < 0) { -		x = -fax; -	} else { -		x = fax; -	} -	return x; -} - -/***********************************************************************/ -/* - * Returns the nearest integer to x as a double precision - * floating point result.  If x ends in 0.5 exactly, the - * nearest even integer is chosen. - */ -/* -Originally round from -Cephes Math Library Release 2.1:  January, 1989 -Copyright 1984, 1987, 1989 by Stephen L. Moshier -Direct inquiries to 30 Frost Street, Cambridge, MA 02140 -*/ - -double rint(x) -double x; -{ -double y, r; - -/* Largest integer <= x */ -y = floor(x); - -/* Fractional part */ -r = x - y; - -/* Round up to nearest. */ -if( r > 0.5 ) -	goto rndup; - -/* Round to even */ -if( r == 0.5 ) -	{ -	r = y - 2.0 * floor( 0.5 * y ); -	if( r == 1.0 ) -		{ -rndup: -		y += 1.0; -		} -	} - -/* Else round down. */ -return(y); -} | 
