\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1
d1 \cdot \left(\left(d4 + \left(d2 - d3\right)\right) - d1\right)
double f(double d1, double d2, double d3, double d4) {
double r601194 = d1;
double r601195 = d2;
double r601196 = r601194 * r601195;
double r601197 = d3;
double r601198 = r601194 * r601197;
double r601199 = r601196 - r601198;
double r601200 = d4;
double r601201 = r601200 * r601194;
double r601202 = r601199 + r601201;
double r601203 = r601194 * r601194;
double r601204 = r601202 - r601203;
return r601204;
}
double f(double d1, double d2, double d3, double d4) {
double r601205 = d1;
double r601206 = d4;
double r601207 = d2;
double r601208 = d3;
double r601209 = r601207 - r601208;
double r601210 = r601206 + r601209;
double r601211 = r601210 - r601205;
double r601212 = r601205 * r601211;
return r601212;
}




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