/* $Header:floor.c 12.0$ */
/* $ACIS:floor.c 12.0$ */
/* $Source: /ibm/acis/usr/src/usr.lib/libm/RCS/floor.c,v $ */

#ifndef lint
static char *rcsid = "$Header:floor.c 12.0$";
#endif

/*	@(#)floor.c	4.1	12/25/82	*/

/*
 * floor and ceil-- greatest integer <= arg
 * (resp least >=)
 */

double	modf();

double
floor(d)
double d;
{
	double fract;

	if (d<0.0) {
		d = -d;
		fract = modf(d, &d);
		if (fract != 0.0)
			d += 1;
		d = -d;
	} else
		modf(d, &d);
	return(d);
}

double
ceil(d)
double d;
{
	return(-floor(-d));
}
