Index: uspace/app/tester/float/float2.c
===================================================================
--- uspace/app/tester/float/float2.c	(revision 1d03e8624d55cc2446a937a2e7b82e7617866732)
+++ uspace/app/tester/float/float2.c	(revision bae1e1f6864fcff51386ca7dda92f703816ffeef)
@@ -39,4 +39,12 @@
 };
 
+static double results_ceil[OPERANDS] = {
+	4.0, -2.0, 100.0, 50.0, -1024.0, 0.0, 769.0, 1081.0, -600.0, 1.0
+};
+
+static double results_floor[OPERANDS] = {
+	3.0, -3.0, 100.0, 50.0, -1024.0, 0.0, 768.0, 1080.0, -600.0, 1.0
+};
+
 static double results_trunc[OPERANDS] = {
 	3.0, -2.0, 100.0, 50.0, -1024.0, 0.0, 768.0, 1080.0, -600.0, 1.0
@@ -59,4 +67,28 @@
 	bool fail = false;
 	
+	for (unsigned int i = 0; i < OPERANDS; i++) {
+		double res = floor(arguments[i]);
+		int64_t res_int = (int64_t) (res * PRECISION);
+		int64_t corr_int = (int64_t) (results_floor[i] * PRECISION);
+		
+		if (res_int != corr_int) {
+			TPRINTF("Double floor failed (%" PRId64 " != %" PRId64
+			    ", arg %u)\n", res_int, corr_int, i);
+			fail = true;
+		}
+	}
+
+	for (unsigned int i = 0; i < OPERANDS; i++) {
+		double res = ceil(arguments[i]);
+		int64_t res_int = (int64_t) (res * PRECISION);
+		int64_t corr_int = (int64_t) (results_ceil[i] * PRECISION);
+		
+		if (res_int != corr_int) {
+			TPRINTF("Double ceil failed (%" PRId64 " != %" PRId64
+			    ", arg %u)\n", res_int, corr_int, i);
+			fail = true;
+		}
+	}
+
 	for (unsigned int i = 0; i < OPERANDS; i++) {
 		double res = trunc(arguments[i]);
Index: uspace/lib/math/Makefile
===================================================================
--- uspace/lib/math/Makefile	(revision 1d03e8624d55cc2446a937a2e7b82e7617866732)
+++ uspace/lib/math/Makefile	(revision bae1e1f6864fcff51386ca7dda92f703816ffeef)
@@ -41,4 +41,6 @@
 
 GENERIC_SOURCES = \
+	generic/ceil.c \
+	generic/floor.c \
 	generic/trig.c \
 	generic/mod.c \
Index: uspace/lib/math/arch/abs32le/include/libarch/math.h
===================================================================
--- uspace/lib/math/arch/abs32le/include/libarch/math.h	(revision 1d03e8624d55cc2446a937a2e7b82e7617866732)
+++ uspace/lib/math/arch/abs32le/include/libarch/math.h	(revision bae1e1f6864fcff51386ca7dda92f703816ffeef)
@@ -36,4 +36,6 @@
 #define LIBMATH_abs32le_MATH_H_
 
+#include <ceil.h>
+#include <floor.h>
 #include <mathtypes.h>
 #include <mod.h>
@@ -57,4 +59,26 @@
 }
 
+static inline float64_t ceil(float64_t val)
+{
+	float64_u arg;
+	arg.val = val;
+	
+	float64_u ret;
+	ret.data = ceil_float64(arg.data);
+	
+	return ret.val;
+}
+
+static inline float64_t floor(float64_t val)
+{
+	float64_u arg;
+	arg.val = val;
+	
+	float64_u ret;
+	ret.data = floor_float64(arg.data);
+	
+	return ret.val;
+}
+
 static inline float64_t sin(float64_t val)
 {
Index: uspace/lib/math/arch/amd64/include/libarch/math.h
===================================================================
--- uspace/lib/math/arch/amd64/include/libarch/math.h	(revision 1d03e8624d55cc2446a937a2e7b82e7617866732)
+++ uspace/lib/math/arch/amd64/include/libarch/math.h	(revision bae1e1f6864fcff51386ca7dda92f703816ffeef)
@@ -36,4 +36,6 @@
 #define LIBMATH_amd64_MATH_H_
 
+#include <ceil.h>
+#include <floor.h>
 #include <mathtypes.h>
 #include <mod.h>
@@ -46,4 +48,27 @@
 extern float64_t sin(float64_t);
 extern float64_t cos(float64_t);
+
+static inline float64_t ceil(float64_t val)
+{
+	float64_u arg;
+	arg.val = val;
+	
+	float64_u ret;
+	ret.data = ceil_float64(arg.data);
+	
+	return ret.val;
+}
+
+static inline float64_t floor(float64_t val)
+{
+	float64_u arg;
+	arg.val = val;
+	
+	float64_u ret;
+	ret.data = floor_float64(arg.data);
+	
+	return ret.val;
+}
+
 extern float64_t trunc(float64_t);
 
Index: uspace/lib/math/arch/arm32/include/libarch/math.h
===================================================================
--- uspace/lib/math/arch/arm32/include/libarch/math.h	(revision 1d03e8624d55cc2446a937a2e7b82e7617866732)
+++ uspace/lib/math/arch/arm32/include/libarch/math.h	(revision bae1e1f6864fcff51386ca7dda92f703816ffeef)
@@ -36,4 +36,6 @@
 #define LIBMATH_arm32_MATH_H_
 
+#include <ceil.h>
+#include <floor.h>
 #include <mathtypes.h>
 #include <mod.h>
@@ -57,4 +59,26 @@
 }
 
+static inline float64_t ceil(float64_t val)
+{
+	float64_u arg;
+	arg.val = val;
+	
+	float64_u ret;
+	ret.data = ceil_float64(arg.data);
+	
+	return ret.val;
+}
+
+static inline float64_t floor(float64_t val)
+{
+	float64_u arg;
+	arg.val = val;
+	
+	float64_u ret;
+	ret.data = floor_float64(arg.data);
+	
+	return ret.val;
+}
+
 static inline float64_t sin(float64_t val)
 {
Index: uspace/lib/math/arch/ia32/include/libarch/math.h
===================================================================
--- uspace/lib/math/arch/ia32/include/libarch/math.h	(revision 1d03e8624d55cc2446a937a2e7b82e7617866732)
+++ uspace/lib/math/arch/ia32/include/libarch/math.h	(revision bae1e1f6864fcff51386ca7dda92f703816ffeef)
@@ -36,4 +36,6 @@
 #define LIBMATH_ia32_MATH_H_
 
+#include <ceil.h>
+#include <floor.h>
 #include <mathtypes.h>
 #include <mod.h>
@@ -46,4 +48,27 @@
 extern float64_t sin(float64_t);
 extern float64_t cos(float64_t);
+
+static inline float64_t ceil(float64_t val)
+{
+	float64_u arg;
+	arg.val = val;
+	
+	float64_u ret;
+	ret.data = ceil_float64(arg.data);
+	
+	return ret.val;
+}
+
+static inline float64_t floor(float64_t val)
+{
+	float64_u arg;
+	arg.val = val;
+	
+	float64_u ret;
+	ret.data = floor_float64(arg.data);
+	
+	return ret.val;
+}
+
 extern float64_t trunc(float64_t);
 
Index: uspace/lib/math/arch/ia64/include/libarch/math.h
===================================================================
--- uspace/lib/math/arch/ia64/include/libarch/math.h	(revision 1d03e8624d55cc2446a937a2e7b82e7617866732)
+++ uspace/lib/math/arch/ia64/include/libarch/math.h	(revision bae1e1f6864fcff51386ca7dda92f703816ffeef)
@@ -36,4 +36,6 @@
 #define LIBMATH_ia64_MATH_H_
 
+#include <ceil.h>
+#include <floor.h>
 #include <mathtypes.h>
 #include <mod.h>
@@ -57,4 +59,26 @@
 }
 
+static inline float64_t ceil(float64_t val)
+{
+	float64_u arg;
+	arg.val = val;
+	
+	float64_u ret;
+	ret.data = ceil_float64(arg.data);
+	
+	return ret.val;
+}
+
+static inline float64_t floor(float64_t val)
+{
+	float64_u arg;
+	arg.val = val;
+	
+	float64_u ret;
+	ret.data = floor_float64(arg.data);
+	
+	return ret.val;
+}
+
 static inline float64_t sin(float64_t val)
 {
Index: uspace/lib/math/arch/mips32/include/libarch/math.h
===================================================================
--- uspace/lib/math/arch/mips32/include/libarch/math.h	(revision 1d03e8624d55cc2446a937a2e7b82e7617866732)
+++ uspace/lib/math/arch/mips32/include/libarch/math.h	(revision bae1e1f6864fcff51386ca7dda92f703816ffeef)
@@ -36,4 +36,6 @@
 #define LIBMATH_mips32_MATH_H_
 
+#include <ceil.h>
+#include <floor.h>
 #include <mathtypes.h>
 #include <mod.h>
@@ -57,4 +59,26 @@
 }
 
+static inline float64_t ceil(float64_t val)
+{
+	float64_u arg;
+	arg.val = val;
+	
+	float64_u ret;
+	ret.data = ceil_float64(arg.data);
+	
+	return ret.val;
+}
+
+static inline float64_t floor(float64_t val)
+{
+	float64_u arg;
+	arg.val = val;
+	
+	float64_u ret;
+	ret.data = floor_float64(arg.data);
+	
+	return ret.val;
+}
+
 static inline float64_t sin(float64_t val)
 {
Index: uspace/lib/math/arch/mips32eb/include/libarch/math.h
===================================================================
--- uspace/lib/math/arch/mips32eb/include/libarch/math.h	(revision 1d03e8624d55cc2446a937a2e7b82e7617866732)
+++ uspace/lib/math/arch/mips32eb/include/libarch/math.h	(revision bae1e1f6864fcff51386ca7dda92f703816ffeef)
@@ -36,4 +36,6 @@
 #define LIBMATH_mips32eb_MATH_H_
 
+#include <ceil.h>
+#include <floor.h>
 #include <mathtypes.h>
 #include <mod.h>
@@ -57,4 +59,26 @@
 }
 
+static inline float64_t ceil(float64_t val)
+{
+	float64_u arg;
+	arg.val = val;
+	
+	float64_u ret;
+	ret.data = ceil_float64(arg.data);
+	
+	return ret.val;
+}
+
+static inline float64_t floor(float64_t val)
+{
+	float64_u arg;
+	arg.val = val;
+	
+	float64_u ret;
+	ret.data = floor_float64(arg.data);
+	
+	return ret.val;
+}
+
 static inline float64_t sin(float64_t val)
 {
Index: uspace/lib/math/arch/ppc32/include/libarch/math.h
===================================================================
--- uspace/lib/math/arch/ppc32/include/libarch/math.h	(revision 1d03e8624d55cc2446a937a2e7b82e7617866732)
+++ uspace/lib/math/arch/ppc32/include/libarch/math.h	(revision bae1e1f6864fcff51386ca7dda92f703816ffeef)
@@ -36,4 +36,6 @@
 #define LIBMATH_ppc32_MATH_H_
 
+#include <ceil.h>
+#include <floor.h>
 #include <mathtypes.h>
 #include <mod.h>
@@ -57,4 +59,26 @@
 }
 
+static inline float64_t ceil(float64_t val)
+{
+	float64_u arg;
+	arg.val = val;
+	
+	float64_u ret;
+	ret.data = ceil_float64(arg.data);
+	
+	return ret.val;
+}
+
+static inline float64_t floor(float64_t val)
+{
+	float64_u arg;
+	arg.val = val;
+	
+	float64_u ret;
+	ret.data = floor_float64(arg.data);
+	
+	return ret.val;
+}
+
 static inline float64_t sin(float64_t val)
 {
Index: uspace/lib/math/arch/sparc32/include/libarch/math.h
===================================================================
--- uspace/lib/math/arch/sparc32/include/libarch/math.h	(revision 1d03e8624d55cc2446a937a2e7b82e7617866732)
+++ uspace/lib/math/arch/sparc32/include/libarch/math.h	(revision bae1e1f6864fcff51386ca7dda92f703816ffeef)
@@ -36,4 +36,6 @@
 #define LIBMATH_sparc32_MATH_H_
 
+#include <ceil.h>
+#include <floor.h>
 #include <mathtypes.h>
 #include <mod.h>
@@ -57,4 +59,26 @@
 }
 
+static inline float64_t ceil(float64_t val)
+{
+	float64_u arg;
+	arg.val = val;
+	
+	float64_u ret;
+	ret.data = ceil_float64(arg.data);
+	
+	return ret.val;
+}
+
+static inline float64_t floor(float64_t val)
+{
+	float64_u arg;
+	arg.val = val;
+	
+	float64_u ret;
+	ret.data = floor_float64(arg.data);
+	
+	return ret.val;
+}
+
 static inline float64_t sin(float64_t val)
 {
Index: uspace/lib/math/arch/sparc64/include/libarch/math.h
===================================================================
--- uspace/lib/math/arch/sparc64/include/libarch/math.h	(revision 1d03e8624d55cc2446a937a2e7b82e7617866732)
+++ uspace/lib/math/arch/sparc64/include/libarch/math.h	(revision bae1e1f6864fcff51386ca7dda92f703816ffeef)
@@ -36,4 +36,6 @@
 #define LIBMATH_sparc64_MATH_H_
 
+#include <ceil.h>
+#include <floor.h>
 #include <mathtypes.h>
 #include <mod.h>
@@ -57,4 +59,26 @@
 }
 
+static inline float64_t ceil(float64_t val)
+{
+	float64_u arg;
+	arg.val = val;
+	
+	float64_u ret;
+	ret.data = ceil_float64(arg.data);
+	
+	return ret.val;
+}
+
+static inline float64_t floor(float64_t val)
+{
+	float64_u arg;
+	arg.val = val;
+	
+	float64_u ret;
+	ret.data = floor_float64(arg.data);
+	
+	return ret.val;
+}
+
 static inline float64_t sin(float64_t val)
 {
Index: uspace/lib/math/generic/ceil.c
===================================================================
--- uspace/lib/math/generic/ceil.c	(revision bae1e1f6864fcff51386ca7dda92f703816ffeef)
+++ uspace/lib/math/generic/ceil.c	(revision bae1e1f6864fcff51386ca7dda92f703816ffeef)
@@ -0,0 +1,64 @@
+/*
+ * Copyright (c) 2015 Jiri Svoboda
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - The name of the author may not be used to endorse or promote products
+ *   derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/** @addtogroup libmath
+ * @{
+ */
+/** @file
+ */
+
+#include <ceil.h>
+#include <mathtypes.h>
+#include <trunc.h>
+
+/** Ceiling (round towards positive infinity)
+ *
+ * @param val Floating point number.
+ *
+ * @return Number rounded towards positive infinity.
+ */
+float64 ceil_float64(float64 val)
+{
+	float64_u t;
+	float64_u v;
+	float64_u r;
+
+	v.data = val;
+	t.data = trunc_float64(val);
+
+	if (val.parts.sign == 1 || v.val == t.val) {
+		r = t;
+	} else {
+		r.val = t.val + 1.0;
+	}
+
+	return r.data;
+}
+
+/** @}
+ */
Index: uspace/lib/math/generic/floor.c
===================================================================
--- uspace/lib/math/generic/floor.c	(revision bae1e1f6864fcff51386ca7dda92f703816ffeef)
+++ uspace/lib/math/generic/floor.c	(revision bae1e1f6864fcff51386ca7dda92f703816ffeef)
@@ -0,0 +1,65 @@
+/*
+ * Copyright (c) 2015 Jiri Svoboda
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - The name of the author may not be used to endorse or promote products
+ *   derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/** @addtogroup libmath
+ * @{
+ */
+/** @file
+ */
+
+#include <floor.h>
+#include <mathtypes.h>
+#include <trunc.h>
+
+/** Ceiling (round towards negative infinity)
+ *
+ * @param val Floating point number.
+ *
+ * @return Number rounded towards negative infinity.
+ */
+
+float64 floor_float64(float64 val)
+{
+	float64_u t;
+	float64_u v;
+	float64_u r;
+
+	v.data = val;
+	t.data = trunc_float64(val);
+
+	if (val.parts.sign == 0 || v.val == t.val) {
+		r = t;
+	} else {
+		r.val = t.val - 1.0;
+	}
+
+	return r.data;
+}
+
+/** @}
+ */
Index: uspace/lib/math/include/ceil.h
===================================================================
--- uspace/lib/math/include/ceil.h	(revision bae1e1f6864fcff51386ca7dda92f703816ffeef)
+++ uspace/lib/math/include/ceil.h	(revision bae1e1f6864fcff51386ca7dda92f703816ffeef)
@@ -0,0 +1,45 @@
+/*
+ * Copyright (c) 2015 Jiri Svoboda
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - The name of the author may not be used to endorse or promote products
+ *   derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/** @addtogroup libmath
+ * @{
+ */
+/** @file
+ */
+
+#ifndef LIBMATH_CEIL_H_
+#define LIBMATH_CEIL_H_
+
+#include <mathtypes.h>
+
+extern float64 ceil_float64(float64);
+
+#endif
+
+/** @}
+ */
Index: uspace/lib/math/include/floor.h
===================================================================
--- uspace/lib/math/include/floor.h	(revision bae1e1f6864fcff51386ca7dda92f703816ffeef)
+++ uspace/lib/math/include/floor.h	(revision bae1e1f6864fcff51386ca7dda92f703816ffeef)
@@ -0,0 +1,45 @@
+/*
+ * Copyright (c) 2015 Jiri Svoboda
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - The name of the author may not be used to endorse or promote products
+ *   derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/** @addtogroup libmath
+ * @{
+ */
+/** @file
+ */
+
+#ifndef LIBMATH_FLOOR_H_
+#define LIBMATH_FLOOR_H_
+
+#include <mathtypes.h>
+
+extern float64 floor_float64(float64);
+
+#endif
+
+/** @}
+ */
