#[must_use]
pub fn simplify_add(lhs: f64, rhs: f64) -> Option<f64> {
if lhs == 0.0 {
Some(rhs)
} else if rhs == 0.0 {
Some(lhs)
} else {
Some(lhs + rhs)
}
}
#[must_use]
pub fn simplify_mul(lhs: f64, rhs: f64) -> Option<f64> {
if lhs == 0.0 || rhs == 0.0 {
Some(0.0)
} else if lhs.to_bits() == 1.0_f64.to_bits() {
Some(rhs)
} else if rhs.to_bits() == 1.0_f64.to_bits() {
Some(lhs)
} else {
Some(lhs * rhs)
}
}
pub fn simplify_div(lhs: f64, rhs: f64) -> Result<f64, String> {
if rhs == 0.0 {
Err("Division by zero in JIT primitive".to_owned())
} else {
Ok(lhs / rhs)
}
}