\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 r158093 = d1;
double r158094 = d2;
double r158095 = r158093 * r158094;
double r158096 = d3;
double r158097 = r158093 * r158096;
double r158098 = r158095 - r158097;
double r158099 = d4;
double r158100 = r158099 * r158093;
double r158101 = r158098 + r158100;
double r158102 = r158093 * r158093;
double r158103 = r158101 - r158102;
return r158103;
}
double f(double d1, double d2, double d3, double d4) {
double r158104 = d1;
double r158105 = d2;
double r158106 = r158104 * r158105;
double r158107 = d3;
double r158108 = r158104 * r158107;
double r158109 = r158106 - r158108;
double r158110 = d4;
double r158111 = r158110 * r158104;
double r158112 = r158109 + r158111;
double r158113 = r158104 * r158104;
double r158114 = r158112 - r158113;
return r158114;
}




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 2019306 +o rules:numerics
(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)))