\frac{x0}{1 - x1} - x0\frac{\left(x0 \cdot \frac{1}{1 - x1}\right) \cdot \frac{x0}{1 - x1} - x0 \cdot x0}{\left(\sqrt[3]{x0 + \frac{x0}{1 - x1}} \cdot \sqrt[3]{x0 + \frac{x0}{1 - x1}}\right) \cdot \sqrt[3]{x0 + \frac{x0}{1 - x1}}}double f(double x0, double x1) {
double r6970942 = x0;
double r6970943 = 1.0;
double r6970944 = x1;
double r6970945 = r6970943 - r6970944;
double r6970946 = r6970942 / r6970945;
double r6970947 = r6970946 - r6970942;
return r6970947;
}
double f(double x0, double x1) {
double r6970948 = x0;
double r6970949 = 1.0;
double r6970950 = 1.0;
double r6970951 = x1;
double r6970952 = r6970950 - r6970951;
double r6970953 = r6970949 / r6970952;
double r6970954 = r6970948 * r6970953;
double r6970955 = r6970948 / r6970952;
double r6970956 = r6970954 * r6970955;
double r6970957 = r6970948 * r6970948;
double r6970958 = r6970956 - r6970957;
double r6970959 = r6970948 + r6970955;
double r6970960 = cbrt(r6970959);
double r6970961 = r6970960 * r6970960;
double r6970962 = r6970961 * r6970960;
double r6970963 = r6970958 / r6970962;
return r6970963;
}




Bits error versus x0




Bits error versus x1
Results
| Original | 7.8 |
|---|---|
| Target | 0.2 |
| Herbie | 5.6 |
Initial program 7.8
rmApplied flip--7.2
rmApplied div-inv5.6
rmApplied add-cube-cbrt5.6
Final simplification5.6
herbie shell --seed 2019179
(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.0 x1))
(- (/ x0 (- 1.0 x1)) x0))