\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1
d1 \cdot \left(\left(\left(d4 + d2\right) - d1\right) + \left(-d3\right)\right)
double f(double d1, double d2, double d3, double d4) {
double r172340 = d1;
double r172341 = d2;
double r172342 = r172340 * r172341;
double r172343 = d3;
double r172344 = r172340 * r172343;
double r172345 = r172342 - r172344;
double r172346 = d4;
double r172347 = r172346 * r172340;
double r172348 = r172345 + r172347;
double r172349 = r172340 * r172340;
double r172350 = r172348 - r172349;
return r172350;
}
double f(double d1, double d2, double d3, double d4) {
double r172351 = d1;
double r172352 = d4;
double r172353 = d2;
double r172354 = r172352 + r172353;
double r172355 = r172354 - r172351;
double r172356 = d3;
double r172357 = -r172356;
double r172358 = r172355 + r172357;
double r172359 = r172351 * r172358;
return r172359;
}




Bits error versus d1




Bits error versus d2




Bits error versus d3




Bits error versus d4
Results
| Original | 0.0 |
|---|---|
| Target | 0.0 |
| Herbie | 0.0 |
Initial program 0.0
Simplified0.0
rmApplied sub-neg0.0
Applied associate-+r+0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2019323
(FPCore (d1 d2 d3 d4)
:name "FastMath dist4"
:precision binary64
:herbie-target
(* d1 (- (+ (- d2 d3) d4) d1))
(- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)))