\frac{x \cdot y + z \cdot \left(t - a\right)}{y + z \cdot \left(b - y\right)}\frac{\sqrt[3]{x}}{\sqrt[3]{y + \left(b - y\right) \cdot z}} \cdot \left(\frac{\sqrt[3]{x} \cdot \sqrt[3]{x}}{\sqrt[3]{y + \left(b - y\right) \cdot z}} \cdot \frac{y}{\sqrt[3]{y + \left(b - y\right) \cdot z}}\right) - \left(z \cdot \frac{1}{y + \left(b - y\right) \cdot z}\right) \cdot \left(a - t\right)double f(double x, double y, double z, double t, double a, double b) {
double r406768 = x;
double r406769 = y;
double r406770 = r406768 * r406769;
double r406771 = z;
double r406772 = t;
double r406773 = a;
double r406774 = r406772 - r406773;
double r406775 = r406771 * r406774;
double r406776 = r406770 + r406775;
double r406777 = b;
double r406778 = r406777 - r406769;
double r406779 = r406771 * r406778;
double r406780 = r406769 + r406779;
double r406781 = r406776 / r406780;
return r406781;
}
double f(double x, double y, double z, double t, double a, double b) {
double r406782 = x;
double r406783 = cbrt(r406782);
double r406784 = y;
double r406785 = b;
double r406786 = r406785 - r406784;
double r406787 = z;
double r406788 = r406786 * r406787;
double r406789 = r406784 + r406788;
double r406790 = cbrt(r406789);
double r406791 = r406783 / r406790;
double r406792 = r406783 * r406783;
double r406793 = r406792 / r406790;
double r406794 = r406784 / r406790;
double r406795 = r406793 * r406794;
double r406796 = r406791 * r406795;
double r406797 = 1.0;
double r406798 = r406797 / r406789;
double r406799 = r406787 * r406798;
double r406800 = a;
double r406801 = t;
double r406802 = r406800 - r406801;
double r406803 = r406799 * r406802;
double r406804 = r406796 - r406803;
return r406804;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a




Bits error versus b
Results
| Original | 24.0 |
|---|---|
| Target | 18.5 |
| Herbie | 14.5 |
Initial program 24.0
Simplified24.0
rmApplied div-sub24.0
Simplified24.0
Simplified19.6
rmApplied *-un-lft-identity19.6
Applied times-frac18.4
Simplified18.4
Simplified18.4
rmApplied div-inv18.4
Simplified18.4
rmApplied add-cube-cbrt18.7
Applied add-cube-cbrt18.8
Applied times-frac18.8
Applied associate-*r*15.2
Simplified14.5
Final simplification14.5
herbie shell --seed 2019174
(FPCore (x y z t a b)
:name "Development.Shake.Progress:decay from shake-0.15.5"
:herbie-target
(- (/ (+ (* z t) (* y x)) (+ y (* z (- b y)))) (/ a (+ (- b y) (/ y z))))
(/ (+ (* x y) (* z (- t a))) (+ y (* z (- b y)))))