\left(\left(\left(x + y\right) + z\right) - z \cdot \log t\right) + \left(a - 0.5\right) \cdot b
\left(\left(\left(\left(x + y\right) + z\right) - \log \left(\sqrt{t}\right) \cdot z\right) - \left(\left(2 \cdot \log \left(\sqrt[3]{\sqrt[3]{\sqrt{t}} \cdot \sqrt[3]{\sqrt{t}}}\right)\right) \cdot z + z \cdot \left(2 \cdot \log \left(\sqrt[3]{\sqrt[3]{\sqrt{t}}}\right) + \log \left(\sqrt[3]{\sqrt{t}}\right)\right)\right)\right) + \left(a - 0.5\right) \cdot bdouble f(double x, double y, double z, double t, double a, double b) {
double r280872 = x;
double r280873 = y;
double r280874 = r280872 + r280873;
double r280875 = z;
double r280876 = r280874 + r280875;
double r280877 = t;
double r280878 = log(r280877);
double r280879 = r280875 * r280878;
double r280880 = r280876 - r280879;
double r280881 = a;
double r280882 = 0.5;
double r280883 = r280881 - r280882;
double r280884 = b;
double r280885 = r280883 * r280884;
double r280886 = r280880 + r280885;
return r280886;
}
double f(double x, double y, double z, double t, double a, double b) {
double r280887 = x;
double r280888 = y;
double r280889 = r280887 + r280888;
double r280890 = z;
double r280891 = r280889 + r280890;
double r280892 = t;
double r280893 = sqrt(r280892);
double r280894 = log(r280893);
double r280895 = r280894 * r280890;
double r280896 = r280891 - r280895;
double r280897 = 2.0;
double r280898 = cbrt(r280893);
double r280899 = r280898 * r280898;
double r280900 = cbrt(r280899);
double r280901 = log(r280900);
double r280902 = r280897 * r280901;
double r280903 = r280902 * r280890;
double r280904 = cbrt(r280898);
double r280905 = log(r280904);
double r280906 = r280897 * r280905;
double r280907 = log(r280898);
double r280908 = r280906 + r280907;
double r280909 = r280890 * r280908;
double r280910 = r280903 + r280909;
double r280911 = r280896 - r280910;
double r280912 = a;
double r280913 = 0.5;
double r280914 = r280912 - r280913;
double r280915 = b;
double r280916 = r280914 * r280915;
double r280917 = r280911 + r280916;
return r280917;
}




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 | 0.1 |
|---|---|
| Target | 0.3 |
| Herbie | 0.1 |
Initial program 0.1
rmApplied add-sqr-sqrt0.1
Applied log-prod0.1
Applied distribute-lft-in0.1
Applied associate--r+0.1
Simplified0.1
rmApplied add-cube-cbrt0.1
Applied log-prod0.1
Applied distribute-lft-in0.1
Simplified0.1
rmApplied add-cube-cbrt0.1
Applied cbrt-prod0.1
Applied log-prod0.1
Applied distribute-lft-in0.1
Applied distribute-rgt-in0.1
Applied associate-+l+0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2019208
(FPCore (x y z t a b)
:name "Numeric.SpecFunctions:logBeta from math-functions-0.1.5.2, A"
:precision binary64
:herbie-target
(+ (+ (+ x y) (/ (* (- 1 (pow (log t) 2)) z) (+ 1 (log t)))) (* (- a 0.5) b))
(+ (- (+ (+ x y) z) (* z (log t))) (* (- a 0.5) b)))