\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 r6219949 = x0;
double r6219950 = 1.0;
double r6219951 = x1;
double r6219952 = r6219950 - r6219951;
double r6219953 = r6219949 / r6219952;
double r6219954 = r6219953 - r6219949;
return r6219954;
}
double f(double x0, double x1) {
double r6219955 = 1.0;
double r6219956 = x1;
double r6219957 = r6219955 - r6219956;
double r6219958 = r6219955 / r6219957;
double r6219959 = x0;
double r6219960 = r6219958 * r6219959;
double r6219961 = r6219959 / r6219957;
double r6219962 = r6219960 * r6219961;
double r6219963 = r6219959 * r6219959;
double r6219964 = r6219962 - r6219963;
double r6219965 = r6219959 + r6219961;
double r6219966 = cbrt(r6219965);
double r6219967 = r6219966 * r6219966;
double r6219968 = r6219966 * r6219967;
double r6219969 = r6219964 / r6219968;
return r6219969;
}




Bits error versus x0




Bits error versus x1
Results
| Original | 7.8 |
|---|---|
| Target | 0.3 |
| Herbie | 5.7 |
Initial program 7.8
rmApplied flip--7.2
rmApplied div-inv5.6
rmApplied add-cube-cbrt5.7
Final simplification5.7
herbie shell --seed 2019134
(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))