\left(d1 \cdot d2 + \left(d3 + 5\right) \cdot d1\right) + d1 \cdot 32
\mathsf{fma}\left(37, d1, \mathsf{fma}\left(d1, d3, d1 \cdot d2\right)\right)double f(double d1, double d2, double d3) {
double r299474 = d1;
double r299475 = d2;
double r299476 = r299474 * r299475;
double r299477 = d3;
double r299478 = 5.0;
double r299479 = r299477 + r299478;
double r299480 = r299479 * r299474;
double r299481 = r299476 + r299480;
double r299482 = 32.0;
double r299483 = r299474 * r299482;
double r299484 = r299481 + r299483;
return r299484;
}
double f(double d1, double d2, double d3) {
double r299485 = 37.0;
double r299486 = d1;
double r299487 = d3;
double r299488 = d2;
double r299489 = r299486 * r299488;
double r299490 = fma(r299486, r299487, r299489);
double r299491 = fma(r299485, r299486, r299490);
return r299491;
}




Bits error versus d1




Bits error versus d2




Bits error versus d3
| Original | 0.0 |
|---|---|
| Target | 0.0 |
| Herbie | 0.0 |
Initial program 0.0
Simplified0.0
Taylor expanded around 0 0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2020001 +o rules:numerics
(FPCore (d1 d2 d3)
:name "FastMath dist3"
:precision binary64
:herbie-target
(* d1 (+ (+ 37 d3) d2))
(+ (+ (* d1 d2) (* (+ d3 5) d1)) (* d1 32)))