\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1
\left(d1 \cdot \left(d2 - d3\right) + d4 \cdot d1\right) - d1 \cdot d1
double f(double d1, double d2, double d3, double d4) {
double r312936 = d1;
double r312937 = d2;
double r312938 = r312936 * r312937;
double r312939 = d3;
double r312940 = r312936 * r312939;
double r312941 = r312938 - r312940;
double r312942 = d4;
double r312943 = r312942 * r312936;
double r312944 = r312941 + r312943;
double r312945 = r312936 * r312936;
double r312946 = r312944 - r312945;
return r312946;
}
double f(double d1, double d2, double d3, double d4) {
double r312947 = d1;
double r312948 = d2;
double r312949 = d3;
double r312950 = r312948 - r312949;
double r312951 = r312947 * r312950;
double r312952 = d4;
double r312953 = r312952 * r312947;
double r312954 = r312951 + r312953;
double r312955 = r312947 * r312947;
double r312956 = r312954 - r312955;
return r312956;
}




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 2020024
(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)))