\left(x \cdot \log y + z \cdot \log \left(1 - y\right)\right) - t
\left(\log \left(\sqrt[3]{y} \cdot \sqrt[3]{y}\right) \cdot x + \left(x \cdot \log \left({\left({\left(\frac{1}{y}\right)}^{\left(\sqrt[3]{\frac{-1}{3}} \cdot \sqrt[3]{\frac{-1}{3}}\right)}\right)}^{\left(\sqrt[3]{\frac{-1}{3}}\right)}\right) + z \cdot \left(\log 1 - \left(1 \cdot y + \frac{1}{2} \cdot \frac{{y}^{2}}{{1}^{2}}\right)\right)\right)\right) - tdouble f(double x, double y, double z, double t) {
double r278737 = x;
double r278738 = y;
double r278739 = log(r278738);
double r278740 = r278737 * r278739;
double r278741 = z;
double r278742 = 1.0;
double r278743 = r278742 - r278738;
double r278744 = log(r278743);
double r278745 = r278741 * r278744;
double r278746 = r278740 + r278745;
double r278747 = t;
double r278748 = r278746 - r278747;
return r278748;
}
double f(double x, double y, double z, double t) {
double r278749 = y;
double r278750 = cbrt(r278749);
double r278751 = r278750 * r278750;
double r278752 = log(r278751);
double r278753 = x;
double r278754 = r278752 * r278753;
double r278755 = 1.0;
double r278756 = r278755 / r278749;
double r278757 = -0.3333333333333333;
double r278758 = cbrt(r278757);
double r278759 = r278758 * r278758;
double r278760 = pow(r278756, r278759);
double r278761 = pow(r278760, r278758);
double r278762 = log(r278761);
double r278763 = r278753 * r278762;
double r278764 = z;
double r278765 = 1.0;
double r278766 = log(r278765);
double r278767 = r278765 * r278749;
double r278768 = 0.5;
double r278769 = 2.0;
double r278770 = pow(r278749, r278769);
double r278771 = pow(r278765, r278769);
double r278772 = r278770 / r278771;
double r278773 = r278768 * r278772;
double r278774 = r278767 + r278773;
double r278775 = r278766 - r278774;
double r278776 = r278764 * r278775;
double r278777 = r278763 + r278776;
double r278778 = r278754 + r278777;
double r278779 = t;
double r278780 = r278778 - r278779;
return r278780;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 9.4 |
|---|---|
| Target | 0.3 |
| Herbie | 0.5 |
Initial program 9.4
Taylor expanded around 0 0.4
rmApplied add-cube-cbrt0.4
Applied log-prod0.4
Applied distribute-rgt-in0.4
Applied associate-+l+0.4
Simplified0.4
Taylor expanded around inf 0.4
rmApplied add-cube-cbrt0.5
Applied pow-unpow0.5
Final simplification0.5
herbie shell --seed 2019198
(FPCore (x y z t)
:name "Numeric.SpecFunctions:invIncompleteBetaWorker from math-functions-0.1.5.2, B"
:herbie-target
(- (* (- z) (+ (+ (* 0.5 (* y y)) y) (* (/ 0.3333333333333333 (* 1.0 (* 1.0 1.0))) (* y (* y y))))) (- t (* x (log y))))
(- (+ (* x (log y)) (* z (log (- 1.0 y)))) t))