diff --git a/include/conv.c b/include/conv.c
index ff2cfb20cabecaa9a7550d99e8e2d90d6aa8dbb4..8886d6db11411f35ad61c50d7075668fca161efd 100644
--- a/include/conv.c
+++ b/include/conv.c
@@ -1,3 +1,10 @@
+#include <math.h>
 int real_to_int (double in1) { return (int)in1; }
+int _Floor (double in1) { return (int)floor(in1); }
+double _floor (double in1) { return  floor(in1); }
+int _Ceiling (double in1) { return (int)ceil(in1); }
+double _ceil (double in1) { return  ceil(in1); }
+int _Round (double in1) { return (int)round(in1); }
+double _round (double in1) { return round(in1); }
 
 double int_to_real (int in1) { return (double)in1; }
diff --git a/include/conv.lusi b/include/conv.lusi
index 20e15aea31513af52acae1c0ffbc56da421a17da..6fec9a0ffcae08885147708414ec4d70fae39f5a 100644
--- a/include/conv.lusi
+++ b/include/conv.lusi
@@ -1,2 +1,9 @@
 function real_to_int (in1: real) returns (out: int) prototype C;
+function _Floor (in1: real) returns (out: int) prototype C;
+function _floor (in1: real) returns (out: real) prototype C;
+function _Ceiling (in1: real) returns (out: int) prototype C;
+function _ceil (in1: real) returns (out: real) prototype C;
+function _Round (in1: real) returns (out: int) prototype C;
+function _round (in1: real) returns (out: real) prototype C;
+
 function int_to_real (in1: int) returns (out: real) prototype C;