\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1
\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1
double f(double d1, double d2, double d3, double d4) {
double r417660 = d1;
double r417661 = d2;
double r417662 = r417660 * r417661;
double r417663 = d3;
double r417664 = r417660 * r417663;
double r417665 = r417662 - r417664;
double r417666 = d4;
double r417667 = r417666 * r417660;
double r417668 = r417665 + r417667;
double r417669 = r417660 * r417660;
double r417670 = r417668 - r417669;
return r417670;
}
double f(double d1, double d2, double d3, double d4) {
double r417671 = d1;
double r417672 = d2;
double r417673 = r417671 * r417672;
double r417674 = d3;
double r417675 = r417671 * r417674;
double r417676 = r417673 - r417675;
double r417677 = d4;
double r417678 = r417677 * r417671;
double r417679 = r417676 + r417678;
double r417680 = r417671 * r417671;
double r417681 = r417679 - r417680;
return r417681;
}




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
Final simplification0.0
herbie shell --seed 2020001
(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)))