\frac{x \cdot e^{\left(y \cdot \log z + \left(t - 1\right) \cdot \log a\right) - b}}{y}\left(\sqrt[3]{\left(\sqrt[3]{\frac{x \cdot \frac{{\left(\frac{1}{a}\right)}^{1}}{e^{y \cdot \log \left(\frac{1}{z}\right) + \left(\log \left(\frac{1}{a}\right) \cdot t + b\right)}}}{y}} \cdot \sqrt[3]{\frac{x \cdot \frac{{\left(\frac{1}{a}\right)}^{1}}{e^{y \cdot \log \left(\frac{1}{z}\right) + \left(\log \left(\frac{1}{a}\right) \cdot t + b\right)}}}{y}}\right) \cdot \sqrt[3]{\frac{x \cdot \frac{{\left(\frac{1}{a}\right)}^{1}}{e^{y \cdot \log \left(\frac{1}{z}\right) + \left(\log \left(\frac{1}{a}\right) \cdot t + b\right)}}}{y}}} \cdot \sqrt[3]{\frac{x \cdot \frac{{\left(\frac{1}{a}\right)}^{1}}{e^{y \cdot \log \left(\frac{1}{z}\right) + \left(\log \left(\frac{1}{a}\right) \cdot t + b\right)}}}{y}}\right) \cdot \sqrt[3]{\frac{x \cdot \frac{{\left(\frac{1}{a}\right)}^{1}}{e^{y \cdot \log \left(\frac{1}{z}\right) + \left(\log \left(\frac{1}{a}\right) \cdot t + b\right)}}}{y}}double f(double x, double y, double z, double t, double a, double b) {
double r451765 = x;
double r451766 = y;
double r451767 = z;
double r451768 = log(r451767);
double r451769 = r451766 * r451768;
double r451770 = t;
double r451771 = 1.0;
double r451772 = r451770 - r451771;
double r451773 = a;
double r451774 = log(r451773);
double r451775 = r451772 * r451774;
double r451776 = r451769 + r451775;
double r451777 = b;
double r451778 = r451776 - r451777;
double r451779 = exp(r451778);
double r451780 = r451765 * r451779;
double r451781 = r451780 / r451766;
return r451781;
}
double f(double x, double y, double z, double t, double a, double b) {
double r451782 = x;
double r451783 = 1.0;
double r451784 = a;
double r451785 = r451783 / r451784;
double r451786 = 1.0;
double r451787 = pow(r451785, r451786);
double r451788 = y;
double r451789 = z;
double r451790 = r451783 / r451789;
double r451791 = log(r451790);
double r451792 = r451788 * r451791;
double r451793 = log(r451785);
double r451794 = t;
double r451795 = r451793 * r451794;
double r451796 = b;
double r451797 = r451795 + r451796;
double r451798 = r451792 + r451797;
double r451799 = exp(r451798);
double r451800 = r451787 / r451799;
double r451801 = r451782 * r451800;
double r451802 = r451801 / r451788;
double r451803 = cbrt(r451802);
double r451804 = r451803 * r451803;
double r451805 = r451804 * r451803;
double r451806 = cbrt(r451805);
double r451807 = r451806 * r451803;
double r451808 = r451807 * r451803;
return r451808;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a




Bits error versus b
Results
| Original | 1.8 |
|---|---|
| Target | 11.4 |
| Herbie | 1.3 |
Initial program 1.8
Taylor expanded around inf 1.9
Simplified1.2
rmApplied add-cube-cbrt1.3
rmApplied add-cube-cbrt1.3
Final simplification1.3
herbie shell --seed 2020018
(FPCore (x y z t a b)
:name "Numeric.SpecFunctions:incompleteBetaWorker from math-functions-0.1.5.2, A"
:precision binary64
:herbie-target
(if (< t -0.8845848504127471) (/ (* x (/ (pow a (- t 1)) y)) (- (+ b 1) (* y (log z)))) (if (< t 852031.2288374073) (/ (* (/ x y) (pow a (- t 1))) (exp (- b (* (log z) y)))) (/ (* x (/ (pow a (- t 1)) y)) (- (+ b 1) (* y (log z))))))
(/ (* x (exp (- (+ (* y (log z)) (* (- t 1) (log a))) b))) y))