\left(x \cdot \log y + z \cdot \log \left(1 - y\right)\right) - t
\left(x \cdot \log \left(\sqrt[3]{y} \cdot \sqrt[3]{y}\right) + \left(\log \left({\left(\frac{1}{{y}^{\frac{2}{3}}}\right)}^{\frac{-1}{3}} \cdot {\left(\frac{1}{\sqrt[3]{y}}\right)}^{\frac{-1}{3}}\right) \cdot x + \left(z \cdot \log 1 - \left(1 \cdot \left(z \cdot y\right) + \frac{1}{2} \cdot \frac{z \cdot {y}^{2}}{{1}^{2}}\right)\right)\right)\right) - tdouble f(double x, double y, double z, double t) {
double r479784 = x;
double r479785 = y;
double r479786 = log(r479785);
double r479787 = r479784 * r479786;
double r479788 = z;
double r479789 = 1.0;
double r479790 = r479789 - r479785;
double r479791 = log(r479790);
double r479792 = r479788 * r479791;
double r479793 = r479787 + r479792;
double r479794 = t;
double r479795 = r479793 - r479794;
return r479795;
}
double f(double x, double y, double z, double t) {
double r479796 = x;
double r479797 = y;
double r479798 = cbrt(r479797);
double r479799 = r479798 * r479798;
double r479800 = log(r479799);
double r479801 = r479796 * r479800;
double r479802 = 1.0;
double r479803 = 0.6666666666666666;
double r479804 = pow(r479797, r479803);
double r479805 = r479802 / r479804;
double r479806 = -0.3333333333333333;
double r479807 = pow(r479805, r479806);
double r479808 = r479802 / r479798;
double r479809 = pow(r479808, r479806);
double r479810 = r479807 * r479809;
double r479811 = log(r479810);
double r479812 = r479811 * r479796;
double r479813 = z;
double r479814 = 1.0;
double r479815 = log(r479814);
double r479816 = r479813 * r479815;
double r479817 = r479813 * r479797;
double r479818 = r479814 * r479817;
double r479819 = 0.5;
double r479820 = 2.0;
double r479821 = pow(r479797, r479820);
double r479822 = r479813 * r479821;
double r479823 = pow(r479814, r479820);
double r479824 = r479822 / r479823;
double r479825 = r479819 * r479824;
double r479826 = r479818 + r479825;
double r479827 = r479816 - r479826;
double r479828 = r479812 + r479827;
double r479829 = r479801 + r479828;
double r479830 = t;
double r479831 = r479829 - r479830;
return r479831;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 9.6 |
|---|---|
| Target | 0.3 |
| Herbie | 0.4 |
Initial program 9.6
Taylor expanded around 0 0.3
rmApplied add-cube-cbrt0.3
Applied log-prod0.4
Applied distribute-lft-in0.4
Applied associate-+l+0.4
Simplified0.4
Taylor expanded around inf 0.4
rmApplied add-cube-cbrt0.4
Applied add-cube-cbrt0.4
Applied times-frac0.4
Applied unpow-prod-down0.4
Simplified0.4
Simplified0.4
Final simplification0.4
herbie shell --seed 2020036
(FPCore (x y z t)
:name "Numeric.SpecFunctions:invIncompleteBetaWorker from math-functions-0.1.5.2, B"
:precision binary64
:herbie-target
(- (* (- z) (+ (+ (* 0.5 (* y y)) y) (* (/ 0.3333333333333333 (* 1 (* 1 1))) (* y (* y y))))) (- t (* x (log y))))
(- (+ (* x (log y)) (* z (log (- 1 y)))) t))