\frac{x \cdot e^{\left(y \cdot \log z + \left(t - 1\right) \cdot \log a\right) - b}}{y}\frac{\frac{x}{\frac{\sqrt[3]{y} \cdot \sqrt[3]{y}}{\sqrt{e^{\mathsf{fma}\left(t - 1, \log a, \log z \cdot y - b\right)}}}}}{\frac{\sqrt[3]{\sqrt[3]{y}} \cdot \left(\sqrt[3]{\sqrt[3]{y}} \cdot \sqrt[3]{\sqrt[3]{y}}\right)}{\sqrt{{e}^{\left(\mathsf{fma}\left(t - 1, \log a, \log z \cdot y - b\right)\right)}}}}double f(double x, double y, double z, double t, double a, double b) {
double r18232754 = x;
double r18232755 = y;
double r18232756 = z;
double r18232757 = log(r18232756);
double r18232758 = r18232755 * r18232757;
double r18232759 = t;
double r18232760 = 1.0;
double r18232761 = r18232759 - r18232760;
double r18232762 = a;
double r18232763 = log(r18232762);
double r18232764 = r18232761 * r18232763;
double r18232765 = r18232758 + r18232764;
double r18232766 = b;
double r18232767 = r18232765 - r18232766;
double r18232768 = exp(r18232767);
double r18232769 = r18232754 * r18232768;
double r18232770 = r18232769 / r18232755;
return r18232770;
}
double f(double x, double y, double z, double t, double a, double b) {
double r18232771 = x;
double r18232772 = y;
double r18232773 = cbrt(r18232772);
double r18232774 = r18232773 * r18232773;
double r18232775 = t;
double r18232776 = 1.0;
double r18232777 = r18232775 - r18232776;
double r18232778 = a;
double r18232779 = log(r18232778);
double r18232780 = z;
double r18232781 = log(r18232780);
double r18232782 = r18232781 * r18232772;
double r18232783 = b;
double r18232784 = r18232782 - r18232783;
double r18232785 = fma(r18232777, r18232779, r18232784);
double r18232786 = exp(r18232785);
double r18232787 = sqrt(r18232786);
double r18232788 = r18232774 / r18232787;
double r18232789 = r18232771 / r18232788;
double r18232790 = cbrt(r18232773);
double r18232791 = r18232790 * r18232790;
double r18232792 = r18232790 * r18232791;
double r18232793 = exp(1.0);
double r18232794 = pow(r18232793, r18232785);
double r18232795 = sqrt(r18232794);
double r18232796 = r18232792 / r18232795;
double r18232797 = r18232789 / r18232796;
return r18232797;
}




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.9 |
|---|---|
| Target | 10.9 |
| Herbie | 1.0 |
Initial program 1.9
rmApplied associate-/l*2.0
Simplified2.0
rmApplied add-sqr-sqrt2.0
Applied add-cube-cbrt2.0
Applied times-frac2.0
Applied associate-/r*1.0
rmApplied *-un-lft-identity1.0
Applied exp-prod1.0
Simplified1.0
rmApplied add-cube-cbrt1.0
Final simplification1.0
herbie shell --seed 2019169 +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))