\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 r412005 = d1;
double r412006 = d2;
double r412007 = r412005 * r412006;
double r412008 = d3;
double r412009 = r412005 * r412008;
double r412010 = r412007 - r412009;
double r412011 = d4;
double r412012 = r412011 * r412005;
double r412013 = r412010 + r412012;
double r412014 = r412005 * r412005;
double r412015 = r412013 - r412014;
return r412015;
}
double f(double d1, double d2, double d3, double d4) {
double r412016 = d1;
double r412017 = d2;
double r412018 = r412016 * r412017;
double r412019 = d3;
double r412020 = r412016 * r412019;
double r412021 = r412018 - r412020;
double r412022 = d4;
double r412023 = r412022 * r412016;
double r412024 = r412021 + r412023;
double r412025 = r412016 * r412016;
double r412026 = r412024 - r412025;
return r412026;
}




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