\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 r521514 = x;
double r521515 = y;
double r521516 = log(r521515);
double r521517 = r521514 * r521516;
double r521518 = z;
double r521519 = 1.0;
double r521520 = r521519 - r521515;
double r521521 = log(r521520);
double r521522 = r521518 * r521521;
double r521523 = r521517 + r521522;
double r521524 = t;
double r521525 = r521523 - r521524;
return r521525;
}
double f(double x, double y, double z, double t) {
double r521526 = x;
double r521527 = y;
double r521528 = cbrt(r521527);
double r521529 = r521528 * r521528;
double r521530 = log(r521529);
double r521531 = r521526 * r521530;
double r521532 = 1.0;
double r521533 = 0.6666666666666666;
double r521534 = pow(r521527, r521533);
double r521535 = r521532 / r521534;
double r521536 = -0.3333333333333333;
double r521537 = pow(r521535, r521536);
double r521538 = r521532 / r521528;
double r521539 = pow(r521538, r521536);
double r521540 = r521537 * r521539;
double r521541 = log(r521540);
double r521542 = r521541 * r521526;
double r521543 = z;
double r521544 = 1.0;
double r521545 = log(r521544);
double r521546 = r521543 * r521545;
double r521547 = r521543 * r521527;
double r521548 = r521544 * r521547;
double r521549 = 0.5;
double r521550 = 2.0;
double r521551 = pow(r521527, r521550);
double r521552 = r521543 * r521551;
double r521553 = pow(r521544, r521550);
double r521554 = r521552 / r521553;
double r521555 = r521549 * r521554;
double r521556 = r521548 + r521555;
double r521557 = r521546 - r521556;
double r521558 = r521542 + r521557;
double r521559 = r521531 + r521558;
double r521560 = t;
double r521561 = r521559 - r521560;
return r521561;
}




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))