\left(x \cdot \log y + z \cdot \log \left(1 - y\right)\right) - t
\left(\left(x \cdot \left(\log \left(\sqrt[3]{\sqrt[3]{y} \cdot \sqrt[3]{y}}\right) \cdot 2\right) + x \cdot \left(\log \left({\left(\frac{1}{y}\right)}^{\frac{-1}{9}}\right) \cdot 2 + \log \left(\sqrt[3]{y}\right)\right)\right) + \left(z \cdot \left(\log 1 - 1 \cdot y\right) - \frac{1}{2} \cdot \frac{z \cdot {y}^{2}}{{1}^{2}}\right)\right) - tdouble f(double x, double y, double z, double t) {
double r261981 = x;
double r261982 = y;
double r261983 = log(r261982);
double r261984 = r261981 * r261983;
double r261985 = z;
double r261986 = 1.0;
double r261987 = r261986 - r261982;
double r261988 = log(r261987);
double r261989 = r261985 * r261988;
double r261990 = r261984 + r261989;
double r261991 = t;
double r261992 = r261990 - r261991;
return r261992;
}
double f(double x, double y, double z, double t) {
double r261993 = x;
double r261994 = y;
double r261995 = cbrt(r261994);
double r261996 = r261995 * r261995;
double r261997 = cbrt(r261996);
double r261998 = log(r261997);
double r261999 = 2.0;
double r262000 = r261998 * r261999;
double r262001 = r261993 * r262000;
double r262002 = 1.0;
double r262003 = r262002 / r261994;
double r262004 = -0.1111111111111111;
double r262005 = pow(r262003, r262004);
double r262006 = log(r262005);
double r262007 = r262006 * r261999;
double r262008 = log(r261995);
double r262009 = r262007 + r262008;
double r262010 = r261993 * r262009;
double r262011 = r262001 + r262010;
double r262012 = z;
double r262013 = 1.0;
double r262014 = log(r262013);
double r262015 = r262013 * r261994;
double r262016 = r262014 - r262015;
double r262017 = r262012 * r262016;
double r262018 = 0.5;
double r262019 = pow(r261994, r261999);
double r262020 = r262012 * r262019;
double r262021 = pow(r262013, r261999);
double r262022 = r262020 / r262021;
double r262023 = r262018 * r262022;
double r262024 = r262017 - r262023;
double r262025 = r262011 + r262024;
double r262026 = t;
double r262027 = r262025 - r262026;
return r262027;
}




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
Simplified0.3
rmApplied add-cube-cbrt0.3
Applied log-prod0.4
Applied distribute-lft-in0.4
Simplified0.4
Simplified0.4
rmApplied add-cube-cbrt0.4
Applied cbrt-prod0.4
Applied log-prod0.4
Applied distribute-rgt-in0.4
Applied distribute-lft-in0.4
Applied associate-+l+0.4
Simplified0.4
Taylor expanded around inf 0.4
Final simplification0.4
herbie shell --seed 2019304
(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.333333333333333315 (* 1 (* 1 1))) (* y (* y y))))) (- t (* x (log y))))
(- (+ (* x (log y)) (* z (log (- 1 y)))) t))