\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 r311011 = d1;
double r311012 = d2;
double r311013 = r311011 * r311012;
double r311014 = d3;
double r311015 = 5.0;
double r311016 = r311014 + r311015;
double r311017 = r311016 * r311011;
double r311018 = r311013 + r311017;
double r311019 = 32.0;
double r311020 = r311011 * r311019;
double r311021 = r311018 + r311020;
return r311021;
}
double f(double d1, double d2, double d3) {
double r311022 = 37.0;
double r311023 = d1;
double r311024 = d3;
double r311025 = d2;
double r311026 = r311023 * r311025;
double r311027 = fma(r311023, r311024, r311026);
double r311028 = fma(r311022, r311023, r311027);
return r311028;
}




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 2020064 +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)))