From 6dc18e6b550bcd3936129b7039f9eb4635169d7c Mon Sep 17 00:00:00 2001 From: = <=> Date: Thu, 18 Dec 2025 13:28:02 +0100 Subject: [PATCH] Fractions --- frac.c | 32 ++++++++++++++++++++++++++++++++ pushswap.h | 12 +++++++++++- 2 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 frac.c diff --git a/frac.c b/frac.c new file mode 100644 index 0000000..449a18d --- /dev/null +++ b/frac.c @@ -0,0 +1,32 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* frac.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: agilliar +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* 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); +} diff --git a/pushswap.h b/pushswap.h index e758019..b1c8520 100644 --- a/pushswap.h +++ b/pushswap.h @@ -6,7 +6,7 @@ /* By: clefrere +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* 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 */ /* */ /* ************************************************************************** */ @@ -94,6 +94,12 @@ typedef struct s_slice 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); @@ -170,4 +176,8 @@ void algorithm_simple(const t_stacks *stacks, t_closure cb); 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 -- 2.51.0