\frac{x \cdot e^{\left(y \cdot \log z + \left(t - 1\right) \cdot \log a\right) - b}}{y}\left(x \cdot \left(\frac{\sqrt[3]{e^{\mathsf{fma}\left(t - 1, \log a, y \cdot \log z - b\right)}}}{\sqrt[3]{y}} \cdot \frac{\sqrt[3]{e^{\mathsf{fma}\left(t - 1, \log a, y \cdot \log z - b\right)}}}{\sqrt[3]{y}}\right)\right) \cdot \frac{\sqrt[3]{e^{\mathsf{fma}\left(t - 1, \log a, y \cdot \log z - b\right)}}}{\sqrt[3]{y}}double f(double x, double y, double z, double t, double a, double b) {
double r19706843 = x;
double r19706844 = y;
double r19706845 = z;
double r19706846 = log(r19706845);
double r19706847 = r19706844 * r19706846;
double r19706848 = t;
double r19706849 = 1.0;
double r19706850 = r19706848 - r19706849;
double r19706851 = a;
double r19706852 = log(r19706851);
double r19706853 = r19706850 * r19706852;
double r19706854 = r19706847 + r19706853;
double r19706855 = b;
double r19706856 = r19706854 - r19706855;
double r19706857 = exp(r19706856);
double r19706858 = r19706843 * r19706857;
double r19706859 = r19706858 / r19706844;
return r19706859;
}
double f(double x, double y, double z, double t, double a, double b) {
double r19706860 = x;
double r19706861 = t;
double r19706862 = 1.0;
double r19706863 = r19706861 - r19706862;
double r19706864 = a;
double r19706865 = log(r19706864);
double r19706866 = y;
double r19706867 = z;
double r19706868 = log(r19706867);
double r19706869 = r19706866 * r19706868;
double r19706870 = b;
double r19706871 = r19706869 - r19706870;
double r19706872 = fma(r19706863, r19706865, r19706871);
double r19706873 = exp(r19706872);
double r19706874 = cbrt(r19706873);
double r19706875 = cbrt(r19706866);
double r19706876 = r19706874 / r19706875;
double r19706877 = r19706876 * r19706876;
double r19706878 = r19706860 * r19706877;
double r19706879 = r19706878 * r19706876;
return r19706879;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a




Bits error versus b
| Original | 1.8 |
|---|---|
| Target | 11.1 |
| Herbie | 1.1 |
Initial program 1.8
rmApplied *-un-lft-identity1.8
Applied times-frac2.2
Simplified2.2
Simplified2.2
rmApplied add-cube-cbrt2.2
Applied add-cube-cbrt2.2
Applied times-frac2.2
Applied associate-*r*1.1
Simplified1.1
rmApplied *-un-lft-identity1.1
Applied cbrt-prod1.1
Simplified1.1
Final simplification1.1
herbie shell --seed 2019170 +o rules:numerics
(FPCore (x y z t a b)
:name "Numeric.SpecFunctions:incompleteBetaWorker from math-functions-0.1.5.2, A"
:herbie-target
(if (< t -0.8845848504127471) (/ (* x (/ (pow a (- t 1.0)) y)) (- (+ b 1.0) (* y (log z)))) (if (< t 852031.2288374073) (/ (* (/ x y) (pow a (- t 1.0))) (exp (- b (* (log z) y)))) (/ (* x (/ (pow a (- t 1.0)) y)) (- (+ b 1.0) (* y (log z))))))
(/ (* x (exp (- (+ (* y (log z)) (* (- t 1.0) (log a))) b))) y))