\frac{x0}{1 - x1} - x0\frac{\left(\frac{x0}{1 \cdot 1 - x1 \cdot x1} \cdot \frac{x0}{1 - x1}\right) \cdot \left(1 + x1\right)}{\frac{x0}{1 - x1} + x0} - \frac{x0 \cdot x0}{\frac{x0}{1 - x1} + x0}double f(double x0, double x1) {
double r130225 = x0;
double r130226 = 1.0;
double r130227 = x1;
double r130228 = r130226 - r130227;
double r130229 = r130225 / r130228;
double r130230 = r130229 - r130225;
return r130230;
}
double f(double x0, double x1) {
double r130231 = x0;
double r130232 = 1.0;
double r130233 = r130232 * r130232;
double r130234 = x1;
double r130235 = r130234 * r130234;
double r130236 = r130233 - r130235;
double r130237 = r130231 / r130236;
double r130238 = r130232 - r130234;
double r130239 = r130231 / r130238;
double r130240 = r130237 * r130239;
double r130241 = r130232 + r130234;
double r130242 = r130240 * r130241;
double r130243 = r130239 + r130231;
double r130244 = r130242 / r130243;
double r130245 = r130231 * r130231;
double r130246 = r130245 / r130243;
double r130247 = r130244 - r130246;
return r130247;
}




Bits error versus x0




Bits error versus x1
Results
| Original | 7.8 |
|---|---|
| Target | 0.2 |
| Herbie | 5.9 |
Initial program 7.8
rmApplied flip--7.3
rmApplied flip--5.6
Applied associate-/r/6.1
rmApplied add-log-exp6.1
Applied add-log-exp6.1
Applied diff-log5.8
Simplified5.8
rmApplied distribute-rgt-in6.3
Applied distribute-rgt-in5.1
Applied associate--l+5.1
Final simplification5.9
herbie shell --seed 2019291
(FPCore (x0 x1)
:name "(- (/ x0 (- 1 x1)) x0)"
:precision binary64
:pre (or (and (== x0 1.855) (== x1 2.09000000000000012e-4)) (and (== x0 2.98499999999999988) (== x1 0.018599999999999998)))
:herbie-target
(/ (* x0 x1) (- 1 x1))
(- (/ x0 (- 1 x1)) x0))