\left(x \cdot \log y + z \cdot \log \left(1 - y\right)\right) - t
\left(z \cdot \left(\left(\left(\frac{y}{1} \cdot \frac{y}{1}\right) \cdot \frac{-1}{2} + \log 1\right) - 1 \cdot y\right) + \left(x \cdot \log \left(\sqrt[3]{\sqrt[3]{y}}\right) + \left(\left(x + x\right) \cdot \log \left(\sqrt[3]{y}\right) + \log \left(\sqrt[3]{\sqrt[3]{y}} \cdot \sqrt[3]{\sqrt[3]{y}}\right) \cdot x\right)\right)\right) - tdouble f(double x, double y, double z, double t) {
double r21543686 = x;
double r21543687 = y;
double r21543688 = log(r21543687);
double r21543689 = r21543686 * r21543688;
double r21543690 = z;
double r21543691 = 1.0;
double r21543692 = r21543691 - r21543687;
double r21543693 = log(r21543692);
double r21543694 = r21543690 * r21543693;
double r21543695 = r21543689 + r21543694;
double r21543696 = t;
double r21543697 = r21543695 - r21543696;
return r21543697;
}
double f(double x, double y, double z, double t) {
double r21543698 = z;
double r21543699 = y;
double r21543700 = 1.0;
double r21543701 = r21543699 / r21543700;
double r21543702 = r21543701 * r21543701;
double r21543703 = -0.5;
double r21543704 = r21543702 * r21543703;
double r21543705 = log(r21543700);
double r21543706 = r21543704 + r21543705;
double r21543707 = r21543700 * r21543699;
double r21543708 = r21543706 - r21543707;
double r21543709 = r21543698 * r21543708;
double r21543710 = x;
double r21543711 = cbrt(r21543699);
double r21543712 = cbrt(r21543711);
double r21543713 = log(r21543712);
double r21543714 = r21543710 * r21543713;
double r21543715 = r21543710 + r21543710;
double r21543716 = log(r21543711);
double r21543717 = r21543715 * r21543716;
double r21543718 = r21543712 * r21543712;
double r21543719 = log(r21543718);
double r21543720 = r21543719 * r21543710;
double r21543721 = r21543717 + r21543720;
double r21543722 = r21543714 + r21543721;
double r21543723 = r21543709 + r21543722;
double r21543724 = t;
double r21543725 = r21543723 - r21543724;
return r21543725;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 9.5 |
|---|---|
| Target | 0.3 |
| Herbie | 0.4 |
Initial program 9.5
Taylor expanded around 0 0.4
Simplified0.4
rmApplied add-cube-cbrt0.4
Applied log-prod0.4
Applied distribute-lft-in0.4
Simplified0.4
rmApplied add-cube-cbrt0.4
Applied log-prod0.4
Applied distribute-rgt-in0.4
Applied associate-+r+0.4
Final simplification0.4
herbie shell --seed 2019169
(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))