Skip to content

Commit

Permalink
add div operations to div
Browse files Browse the repository at this point in the history
TODO
add div operations to +,* and -
test
  • Loading branch information
vanilla-extracts committed May 15, 2024
1 parent 89b8e0b commit c5b038b
Showing 1 changed file with 10 additions and 21 deletions.
31 changes: 10 additions & 21 deletions src/functions/divide.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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(),
),
Expand Down

0 comments on commit c5b038b

Please sign in to comment.