\frac{x0}{1 - x1} - x0\frac{\left(\frac{1}{1 - x1} \cdot x0\right) \cdot \frac{x0}{1 - x1} - x0 \cdot x0}{\sqrt[3]{x0 + \frac{x0}{1 - x1}} \cdot \left(\sqrt[3]{x0 + \frac{x0}{1 - x1}} \cdot \sqrt[3]{x0 + \frac{x0}{1 - x1}}\right)}double f(double x0, double x1) {
double r3291124 = x0;
double r3291125 = 1.0;
double r3291126 = x1;
double r3291127 = r3291125 - r3291126;
double r3291128 = r3291124 / r3291127;
double r3291129 = r3291128 - r3291124;
return r3291129;
}
double f(double x0, double x1) {
double r3291130 = 1.0;
double r3291131 = x1;
double r3291132 = r3291130 - r3291131;
double r3291133 = r3291130 / r3291132;
double r3291134 = x0;
double r3291135 = r3291133 * r3291134;
double r3291136 = r3291134 / r3291132;
double r3291137 = r3291135 * r3291136;
double r3291138 = r3291134 * r3291134;
double r3291139 = r3291137 - r3291138;
double r3291140 = r3291134 + r3291136;
double r3291141 = cbrt(r3291140);
double r3291142 = r3291141 * r3291141;
double r3291143 = r3291141 * r3291142;
double r3291144 = r3291139 / r3291143;
return r3291144;
}




Bits error versus x0




Bits error versus x1
Results
| Original | 7.9 |
|---|---|
| Target | 0.3 |
| Herbie | 5.7 |
Initial program 7.9
rmApplied flip--7.3
rmApplied div-inv5.6
rmApplied add-cube-cbrt5.7
Final simplification5.7
herbie shell --seed 2019151
(FPCore (x0 x1)
:name "(- (/ x0 (- 1 x1)) x0)"
:pre (or (and (== x0 1.855) (== x1 0.000209)) (and (== x0 2.985) (== x1 0.0186)))
:herbie-target
(/ (* x0 x1) (- 1 x1))
(- (/ x0 (- 1 x1)) x0))