--- /dev/null
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* frac.c :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: agilliar <marvin@42.fr> +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2025/12/18 13:20:12 by agilliar #+# #+# */
+/* Updated: 2025/12/18 13:27:56 by agilliar ### ########.fr */
+/* */
+/* ************************************************************************** */
+
+#include "pushswap.h"
+
+t_frac frac_new(size_t num, size_t den)
+{
+ t_frac res;
+
+ res.num = num;
+ res.den = den;
+ return (res);
+}
+
+t_frac frac_mul(t_frac lhs, t_frac rhs)
+{
+ return (frac_new(lhs.num * rhs.num, lhs.den * rhs.den));
+}
+
+bool frac_lte(t_frac lhs, t_frac rhs)
+{
+ return (lhs.num * rhs.den <= rhs.num * lhs.den);
+}
/* By: clefrere <clefrere@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2025/12/02 11:02:44 by agilliar #+# #+# */
-/* Updated: 2025/12/16 20:18:54 by agilliar ### ########.fr */
+/* Updated: 2025/12/18 13:27:05 by agilliar ### ########.fr */
/* */
/* ************************************************************************** */
const char *ptr;
} t_slice;
+typedef struct s_frac
+{
+ size_t num;
+ size_t den;
+} t_frac;
+
void cheatexit(int errcode);
void *cheatalloc(size_t len);
void algorithm_complex(const t_stacks *stacks, t_closure cb);
void algorithm_leafsort(const t_stacks *stacks, t_closure cb);
+t_frac frac_new(size_t num, size_t den);
+t_frac frac_mul(t_frac lhs, t_frac lhs);
+bool frac_lte(t_frac lhs, t_frac lhs);
+
#endif