\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1
\left(d1 \cdot d1 - d1 \cdot d1\right) + d1 \cdot \left(\left(d4 - d3\right) + \left(d2 - d1\right)\right)
double f(double d1, double d2, double d3, double d4) {
double r48774184 = d1;
double r48774185 = d2;
double r48774186 = r48774184 * r48774185;
double r48774187 = d3;
double r48774188 = r48774184 * r48774187;
double r48774189 = r48774186 - r48774188;
double r48774190 = d4;
double r48774191 = r48774190 * r48774184;
double r48774192 = r48774189 + r48774191;
double r48774193 = r48774184 * r48774184;
double r48774194 = r48774192 - r48774193;
return r48774194;
}
double f(double d1, double d2, double d3, double d4) {
double r48774195 = d1;
double r48774196 = r48774195 * r48774195;
double r48774197 = r48774196 - r48774196;
double r48774198 = d4;
double r48774199 = d3;
double r48774200 = r48774198 - r48774199;
double r48774201 = d2;
double r48774202 = r48774201 - r48774195;
double r48774203 = r48774200 + r48774202;
double r48774204 = r48774195 * r48774203;
double r48774205 = r48774197 + r48774204;
return r48774205;
}




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 add-sqr-sqrt31.0
Applied prod-diff31.0
Simplified0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2019107 +o rules:numerics
(FPCore (d1 d2 d3 d4)
:name "FastMath dist4"
:herbie-target
(* d1 (- (+ (- d2 d3) d4) d1))
(- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)))