xref: /plan9-contrib/sys/src/ape/lib/ap/math/floor.c (revision 219b2ee8daee37f4aad58d63f21287faa8e4ffdc)
1 #include <math.h>
2 /*
3  * floor and ceil-- greatest integer <= arg
4  * (resp least >=)
5  */
6 
7 double
8 floor(double d)
9 {
10 	double fract;
11 
12 	if(d < 0) {
13 		fract = modf(-d, &d);
14 		if(fract != 0.0)
15 			d += 1;
16 		d = -d;
17 	} else
18 		modf(d, &d);
19 	return d;
20 }
21 
22 double
23 ceil(double d)
24 {
25 	return -floor(-d);
26 }
27