From c5b038b29642278c57513f9ee2aea7472dce0de9 Mon Sep 17 00:00:00 2001 From: Charlotte Thomas Date: Wed, 15 May 2024 21:22:39 +0200 Subject: [PATCH] add div operations to div TODO add div operations to +,* and - test --- src/functions/divide.rs | 31 ++++++++++--------------------- 1 file changed, 10 insertions(+), 21 deletions(-) diff --git a/src/functions/divide.rs b/src/functions/divide.rs index 4344144..cfe1ecb 100644 --- a/src/functions/divide.rs +++ b/src/functions/divide.rs @@ -743,39 +743,28 @@ pub fn divide( ); first } + (Parameters::Div(s1, s2), Parameters::Plus(s3, s4)) => { - let first = mult( - divide(*s1.clone(), add(*s3.clone(), *s4.clone(), ram), ram), - divide(Parameters::Int(1), *s2.clone(), ram), - ram, - ); - let second = mult( - divide(Parameters::Int(1), *s1.clone(), ram), - divide(*s2.clone(), add(*s3.clone(), *s4.clone(), ram), ram), + let first = divide( + mult(*s1.clone(), add(*s3.clone(), *s4.clone(), ram), ram), + *s2.clone(), ram, ); - - let (ss1, ss2) = (size(&first), size(&second)); - - if ss1 > ss2 { - second - } else { - first - } + first } (Parameters::Plus(s3, s4), Parameters::Div(s1, s2)) => { - let first = add( - divide(*s3.clone(), mult(*s1.clone(), *s2.clone(), ram), ram), - divide(*s4.clone(), mult(*s1.clone(), *s2.clone(), ram), ram), + let first = divide( + mult(*s2.clone(), add(*s3.clone(), *s4.clone(), ram), ram), + *s1.clone(), ram, ); first } - (Parameters::Null, Parameters::Div(s1, s2)) => mult(*s1.clone(), *s2.clone(), ram), + (Parameters::Null, Parameters::Div(s1, s2)) => divide(*s1.clone(), *s2.clone(), ram), - (Parameters::Div(s1, s2), Parameters::Null) => mult(*s1.clone(), *s2.clone(), ram), + (Parameters::Div(s1, s2), Parameters::Null) => divide(*s1.clone(), *s2.clone(), ram), _ => Parameters::Identifier( "@Those two values are incompatible with the / operator".to_string(), ),