x \cdot e^{y \cdot \left(\log z - t\right) + a \cdot \left(\log \left(1 - z\right) - b\right)}x \cdot \left(\left(\sqrt[3]{e^{y \cdot \log \left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right) + \left(\left(\log \left(\sqrt[3]{z}\right) - t\right) \cdot y + a \cdot \left(\left(\log 1 - \left(\frac{1}{2} \cdot \frac{{z}^{2}}{{1}^{2}} + 1 \cdot z\right)\right) - b\right)\right)}} \cdot \sqrt[3]{e^{y \cdot \left(\log z - t\right) + a \cdot \left(\left(\log 1 - \left(\frac{1}{2} \cdot \frac{{z}^{2}}{{1}^{2}} + 1 \cdot z\right)\right) - b\right)}}\right) \cdot \sqrt[3]{e^{y \cdot \left(\log z - t\right) + a \cdot \left(\left(\log 1 - \left(\frac{1}{2} \cdot \frac{{z}^{2}}{{1}^{2}} + 1 \cdot z\right)\right) - b\right)}}\right)double f(double x, double y, double z, double t, double a, double b) {
double r90714 = x;
double r90715 = y;
double r90716 = z;
double r90717 = log(r90716);
double r90718 = t;
double r90719 = r90717 - r90718;
double r90720 = r90715 * r90719;
double r90721 = a;
double r90722 = 1.0;
double r90723 = r90722 - r90716;
double r90724 = log(r90723);
double r90725 = b;
double r90726 = r90724 - r90725;
double r90727 = r90721 * r90726;
double r90728 = r90720 + r90727;
double r90729 = exp(r90728);
double r90730 = r90714 * r90729;
return r90730;
}
double f(double x, double y, double z, double t, double a, double b) {
double r90731 = x;
double r90732 = y;
double r90733 = z;
double r90734 = cbrt(r90733);
double r90735 = r90734 * r90734;
double r90736 = log(r90735);
double r90737 = r90732 * r90736;
double r90738 = log(r90734);
double r90739 = t;
double r90740 = r90738 - r90739;
double r90741 = r90740 * r90732;
double r90742 = a;
double r90743 = 1.0;
double r90744 = log(r90743);
double r90745 = 0.5;
double r90746 = 2.0;
double r90747 = pow(r90733, r90746);
double r90748 = pow(r90743, r90746);
double r90749 = r90747 / r90748;
double r90750 = r90745 * r90749;
double r90751 = r90743 * r90733;
double r90752 = r90750 + r90751;
double r90753 = r90744 - r90752;
double r90754 = b;
double r90755 = r90753 - r90754;
double r90756 = r90742 * r90755;
double r90757 = r90741 + r90756;
double r90758 = r90737 + r90757;
double r90759 = exp(r90758);
double r90760 = cbrt(r90759);
double r90761 = log(r90733);
double r90762 = r90761 - r90739;
double r90763 = r90732 * r90762;
double r90764 = r90763 + r90756;
double r90765 = exp(r90764);
double r90766 = cbrt(r90765);
double r90767 = r90760 * r90766;
double r90768 = r90767 * r90766;
double r90769 = r90731 * r90768;
return r90769;
}



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
Initial program 2.1
Taylor expanded around 0 0.4
rmApplied add-cube-cbrt0.5
rmApplied add-cube-cbrt0.5
Applied log-prod0.5
Applied associate--l+0.5
Applied distribute-lft-in0.5
Applied associate-+l+0.5
Simplified0.5
Final simplification0.5
herbie shell --seed 2019308
(FPCore (x y z t a b)
:name "Numeric.SpecFunctions:incompleteBetaApprox from math-functions-0.1.5.2, B"
:precision binary64
(* x (exp (+ (* y (- (log z) t)) (* a (- (log (- 1 z)) b))))))