aboutsummaryrefslogtreecommitdiffstats
path: root/test/gourdinl/c/floor.c
diff options
context:
space:
mode:
Diffstat (limited to 'test/gourdinl/c/floor.c')
-rw-r--r--test/gourdinl/c/floor.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/test/gourdinl/c/floor.c b/test/gourdinl/c/floor.c
new file mode 100644
index 00000000..33a57af3
--- /dev/null
+++ b/test/gourdinl/c/floor.c
@@ -0,0 +1,29 @@
+int main(int n)
+{
+ int x = 1, i;
+
+ /* for positive values */
+ if (n > 0)
+ {
+ for (; x <= n >> 1;)
+ {
+ x = x << 1;
+ }
+ n = x;
+ }
+ /* for negative values */
+ else
+ {
+ n = ~n;
+ n = n + 1;
+ for (; x <= n >> 1;)
+ {
+ x = x << 1;
+ }
+ x = x << 1;
+ x = ~x;
+ x = x + 1;
+ n = x;
+ }
+ return n;
+}