\frac{x}{x + y \cdot e^{2 \cdot \left(\frac{z \cdot \sqrt{t + a}}{t} - \left(b - c\right) \cdot \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right)\right)}}\frac{x}{x + y \cdot e^{2 \cdot \left(\frac{z}{\sqrt[3]{t} \cdot \sqrt[3]{t}} \cdot \frac{\sqrt{t + a}}{\sqrt[3]{t}} - \left(b - c\right) \cdot \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right)\right)}}double f(double x, double y, double z, double t, double a, double b, double c) {
double r429823 = x;
double r429824 = y;
double r429825 = 2.0;
double r429826 = z;
double r429827 = t;
double r429828 = a;
double r429829 = r429827 + r429828;
double r429830 = sqrt(r429829);
double r429831 = r429826 * r429830;
double r429832 = r429831 / r429827;
double r429833 = b;
double r429834 = c;
double r429835 = r429833 - r429834;
double r429836 = 5.0;
double r429837 = 6.0;
double r429838 = r429836 / r429837;
double r429839 = r429828 + r429838;
double r429840 = 3.0;
double r429841 = r429827 * r429840;
double r429842 = r429825 / r429841;
double r429843 = r429839 - r429842;
double r429844 = r429835 * r429843;
double r429845 = r429832 - r429844;
double r429846 = r429825 * r429845;
double r429847 = exp(r429846);
double r429848 = r429824 * r429847;
double r429849 = r429823 + r429848;
double r429850 = r429823 / r429849;
return r429850;
}
double f(double x, double y, double z, double t, double a, double b, double c) {
double r429851 = x;
double r429852 = y;
double r429853 = 2.0;
double r429854 = z;
double r429855 = t;
double r429856 = cbrt(r429855);
double r429857 = r429856 * r429856;
double r429858 = r429854 / r429857;
double r429859 = a;
double r429860 = r429855 + r429859;
double r429861 = sqrt(r429860);
double r429862 = r429861 / r429856;
double r429863 = r429858 * r429862;
double r429864 = b;
double r429865 = c;
double r429866 = r429864 - r429865;
double r429867 = 5.0;
double r429868 = 6.0;
double r429869 = r429867 / r429868;
double r429870 = r429859 + r429869;
double r429871 = 3.0;
double r429872 = r429855 * r429871;
double r429873 = r429853 / r429872;
double r429874 = r429870 - r429873;
double r429875 = r429866 * r429874;
double r429876 = r429863 - r429875;
double r429877 = r429853 * r429876;
double r429878 = exp(r429877);
double r429879 = r429852 * r429878;
double r429880 = r429851 + r429879;
double r429881 = r429851 / r429880;
return r429881;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a




Bits error versus b




Bits error versus c
Results
| Original | 3.9 |
|---|---|
| Target | 3.3 |
| Herbie | 2.5 |
Initial program 3.9
rmApplied add-cube-cbrt3.9
Applied times-frac2.5
Final simplification2.5
herbie shell --seed 2020018
(FPCore (x y z t a b c)
:name "Numeric.SpecFunctions:invIncompleteBetaWorker from math-functions-0.1.5.2, I"
:precision binary64
:herbie-target
(if (< t -2.118326644891581e-50) (/ x (+ x (* y (exp (* 2 (- (+ (* a c) (* 0.8333333333333334 c)) (* a b))))))) (if (< t 5.196588770651547e-123) (/ x (+ x (* y (exp (* 2 (/ (- (* (* z (sqrt (+ t a))) (* (* 3 t) (- a (/ 5 6)))) (* (- (* (+ (/ 5 6) a) (* 3 t)) 2) (* (- a (/ 5 6)) (* (- b c) t)))) (* (* (* t t) 3) (- a (/ 5 6))))))))) (/ x (+ x (* y (exp (* 2 (- (/ (* z (sqrt (+ t a))) t) (* (- b c) (- (+ a (/ 5 6)) (/ 2 (* t 3))))))))))))
(/ x (+ x (* y (exp (* 2 (- (/ (* z (sqrt (+ t a))) t) (* (- b c) (- (+ a (/ 5 6)) (/ 2 (* t 3)))))))))))