a \cdot a - b \cdot b
\left(a + b\right) \cdot \left(a - b\right)
double f(double a, double b) {
double r104270 = a;
double r104271 = r104270 * r104270;
double r104272 = b;
double r104273 = r104272 * r104272;
double r104274 = r104271 - r104273;
return r104274;
}
double f(double a, double b) {
double r104275 = a;
double r104276 = b;
double r104277 = r104275 + r104276;
double r104278 = r104275 - r104276;
double r104279 = r104277 * r104278;
return r104279;
}




Bits error versus a




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