\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 r139984 = d1;
double r139985 = d2;
double r139986 = r139984 * r139985;
double r139987 = d3;
double r139988 = r139984 * r139987;
double r139989 = r139986 - r139988;
double r139990 = d4;
double r139991 = r139990 * r139984;
double r139992 = r139989 + r139991;
double r139993 = r139984 * r139984;
double r139994 = r139992 - r139993;
return r139994;
}
double f(double d1, double d2, double d3, double d4) {
double r139995 = d1;
double r139996 = d2;
double r139997 = r139995 * r139996;
double r139998 = d3;
double r139999 = r139995 * r139998;
double r140000 = r139997 - r139999;
double r140001 = d4;
double r140002 = r140001 * r139995;
double r140003 = r140000 + r140002;
double r140004 = r139995 * r139995;
double r140005 = r140003 - r140004;
return r140005;
}




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 2019304 +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)))