a \cdot a - b \cdot b
\left(a - b\right) \cdot \left(a + b\right)
double f(double a, double b) {
double r62521 = a;
double r62522 = r62521 * r62521;
double r62523 = b;
double r62524 = r62523 * r62523;
double r62525 = r62522 - r62524;
return r62525;
}
double f(double a, double b) {
double r62526 = a;
double r62527 = b;
double r62528 = r62526 - r62527;
double r62529 = r62526 + r62527;
double r62530 = r62528 * r62529;
return r62530;
}




Bits error versus a




Bits error versus b
Results
| Original | 0.0 |
|---|---|
| Target | 0.0 |
| Herbie | 0.0 |
Initial program 0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2020042
(FPCore (a b)
:name "Difference of squares"
:precision binary64
:herbie-target
(* (+ a b) (- a b))
(- (* a a) (* b b)))