\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1
d1 \cdot d4 + d1 \cdot \left(\left(d2 - d3\right) - d1\right)
double f(double d1, double d2, double d3, double d4) {
double r222097 = d1;
double r222098 = d2;
double r222099 = r222097 * r222098;
double r222100 = d3;
double r222101 = r222097 * r222100;
double r222102 = r222099 - r222101;
double r222103 = d4;
double r222104 = r222103 * r222097;
double r222105 = r222102 + r222104;
double r222106 = r222097 * r222097;
double r222107 = r222105 - r222106;
return r222107;
}
double f(double d1, double d2, double d3, double d4) {
double r222108 = d1;
double r222109 = d4;
double r222110 = r222108 * r222109;
double r222111 = d2;
double r222112 = d3;
double r222113 = r222111 - r222112;
double r222114 = r222113 - r222108;
double r222115 = r222108 * r222114;
double r222116 = r222110 + r222115;
return r222116;
}




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
rmApplied associate--l+0.0
Applied distribute-lft-in0.0
Final simplification0.0
herbie shell --seed 2020046
(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)))