From 2958364b07874d1112bf803f3a22adc215d3d571 Mon Sep 17 00:00:00 2001 From: Mariano Uvalle Date: Mon, 21 Sep 2026 17:54:21 -0700 Subject: [PATCH] chore: Arith placeholder. --- include/arith.h | 6 ++++++ src/arith.c | 30 ++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 include/arith.h create mode 100644 src/arith.c diff --git a/include/arith.h b/include/arith.h new file mode 100644 index 0000000..ab310ed --- /dev/null +++ b/include/arith.h @@ -0,0 +1,6 @@ +extern int Arith_max(int x, int y); +extern int Arith_min(int x, int y); +extern int Arith_div(int x, int y); +extern int Arith_mod(int x, int y); +extern int Arith_ceiling(int x, int y); +extern int Arith_floor (int x, int y); diff --git a/src/arith.c b/src/arith.c new file mode 100644 index 0000000..e29927e --- /dev/null +++ b/src/arith.c @@ -0,0 +1,30 @@ +#include "arith.h" + +int Arith_max(int x, int y) { + return x > y ? x : y; +} + +int Arith_min(int x, int y) { + return x > y ? y : x; +} + +int Arith_div(int x, int y) { + if (/* division truncates toward 0 */ -13/5 == -2 + && /* x and y have different signs */ (x < 0) != (y < 0) + && x%y != 0) + return x/y - 1; + else + return x/y; +} + +int Arith_mod(int x, int y) { + return x - y*Arith_div(x, y); +} + +int Arith_floor(int x, int y) { + return Arith_div(x, y); +} + +int Arith_ceiling(int x, int y) { + return Arith_div(x, y) + (x%y != 0); +}