\left(a + b\right) \cdot \left(a + b\right)
a \cdot \left(b \cdot 2 + a\right) + {b}^{2}double f(double a, double b) {
double r78306 = a;
double r78307 = b;
double r78308 = r78306 + r78307;
double r78309 = r78308 * r78308;
return r78309;
}
double f(double a, double b) {
double r78310 = a;
double r78311 = b;
double r78312 = 2.0;
double r78313 = r78311 * r78312;
double r78314 = r78313 + r78310;
double r78315 = r78310 * r78314;
double r78316 = pow(r78311, r78312);
double r78317 = r78315 + r78316;
return r78317;
}




Bits error versus a




Bits error versus b
Results
| Original | 0.0 |
|---|---|
| Target | 0.0 |
| Herbie | 0.0 |
Initial program 0.0
rmApplied flip-+0.0
Applied associate-*r/0.1
Simplified0.1
Taylor expanded around 0 0.0
rmApplied associate-+r+0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2020056
(FPCore (a b)
:name "Expression 4, p15"
:precision binary64
:pre (and (<= 5 a 10) (<= 0.0 b 0.001))
:herbie-target
(+ (+ (+ (* b a) (* b b)) (* b a)) (* a a))
(* (+ a b) (+ a b)))