\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1
\left(d4 \cdot d1 + \left(d2 - d3\right) \cdot d1\right) - d1 \cdot d1
double f(double d1, double d2, double d3, double d4) {
double r10871024 = d1;
double r10871025 = d2;
double r10871026 = r10871024 * r10871025;
double r10871027 = d3;
double r10871028 = r10871024 * r10871027;
double r10871029 = r10871026 - r10871028;
double r10871030 = d4;
double r10871031 = r10871030 * r10871024;
double r10871032 = r10871029 + r10871031;
double r10871033 = r10871024 * r10871024;
double r10871034 = r10871032 - r10871033;
return r10871034;
}
double f(double d1, double d2, double d3, double d4) {
double r10871035 = d4;
double r10871036 = d1;
double r10871037 = r10871035 * r10871036;
double r10871038 = d2;
double r10871039 = d3;
double r10871040 = r10871038 - r10871039;
double r10871041 = r10871040 * r10871036;
double r10871042 = r10871037 + r10871041;
double r10871043 = r10871036 * r10871036;
double r10871044 = r10871042 - r10871043;
return r10871044;
}




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
rmApplied distribute-lft-out--0.0
Final simplification0.0
herbie shell --seed 2019168
(FPCore (d1 d2 d3 d4)
:name "FastMath dist4"
:herbie-target
(* d1 (- (+ (- d2 d3) d4) d1))
(- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)))