\left(x \cdot \log y + z \cdot \log \left(1 - y\right)\right) - t
\left(\left(x \cdot \log \left(\sqrt[3]{y} \cdot \sqrt[3]{y}\right) + x \cdot \log \left(e^{\log y \cdot \frac{1}{3}}\right)\right) + z \cdot \left(\left(\log 1 - 1 \cdot y\right) - \frac{\frac{1}{2}}{\frac{1}{y} \cdot \frac{1}{y}}\right)\right) - tdouble f(double x, double y, double z, double t) {
double r84239706 = x;
double r84239707 = y;
double r84239708 = log(r84239707);
double r84239709 = r84239706 * r84239708;
double r84239710 = z;
double r84239711 = 1.0;
double r84239712 = r84239711 - r84239707;
double r84239713 = log(r84239712);
double r84239714 = r84239710 * r84239713;
double r84239715 = r84239709 + r84239714;
double r84239716 = t;
double r84239717 = r84239715 - r84239716;
return r84239717;
}
double f(double x, double y, double z, double t) {
double r84239718 = x;
double r84239719 = y;
double r84239720 = cbrt(r84239719);
double r84239721 = r84239720 * r84239720;
double r84239722 = log(r84239721);
double r84239723 = r84239718 * r84239722;
double r84239724 = log(r84239719);
double r84239725 = 0.3333333333333333;
double r84239726 = r84239724 * r84239725;
double r84239727 = exp(r84239726);
double r84239728 = log(r84239727);
double r84239729 = r84239718 * r84239728;
double r84239730 = r84239723 + r84239729;
double r84239731 = z;
double r84239732 = 1.0;
double r84239733 = log(r84239732);
double r84239734 = r84239732 * r84239719;
double r84239735 = r84239733 - r84239734;
double r84239736 = 0.5;
double r84239737 = r84239732 / r84239719;
double r84239738 = r84239737 * r84239737;
double r84239739 = r84239736 / r84239738;
double r84239740 = r84239735 - r84239739;
double r84239741 = r84239731 * r84239740;
double r84239742 = r84239730 + r84239741;
double r84239743 = t;
double r84239744 = r84239742 - r84239743;
return r84239744;
}




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.4 |
Initial program 9.4
Taylor expanded around 0 0.4
Simplified0.4
rmApplied add-cube-cbrt0.4
Applied log-prod0.4
Applied distribute-lft-in0.4
Taylor expanded around inf 0.4
rmApplied add-exp-log0.4
Applied rec-exp0.4
Applied pow-exp0.4
Simplified0.4
Final simplification0.4
herbie shell --seed 2019173
(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))