x \cdot e^{y \cdot \left(\log z - t\right) + a \cdot \left(\log \left(1 - z\right) - b\right)}\begin{array}{l}
\mathbf{if}\;y \cdot \left(\log z - t\right) + a \cdot \left(\log \left(1 - z\right) - b\right) \le 1.27014180708108552443277861065951128694 \cdot 10^{-4}:\\
\;\;\;\;x \cdot \left({\left(\sqrt{e}\right)}^{\left(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 {\left(\sqrt{e}\right)}^{\left(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)}\right)\\
\mathbf{else}:\\
\;\;\;\;x \cdot {e}^{\left(-\left(a \cdot b + \left(1 \cdot \left(a \cdot z\right) + 0.5 \cdot \left(a \cdot {z}^{2}\right)\right)\right)\right)}\\
\end{array}double f(double x, double y, double z, double t, double a, double b) {
double r96769 = x;
double r96770 = y;
double r96771 = z;
double r96772 = log(r96771);
double r96773 = t;
double r96774 = r96772 - r96773;
double r96775 = r96770 * r96774;
double r96776 = a;
double r96777 = 1.0;
double r96778 = r96777 - r96771;
double r96779 = log(r96778);
double r96780 = b;
double r96781 = r96779 - r96780;
double r96782 = r96776 * r96781;
double r96783 = r96775 + r96782;
double r96784 = exp(r96783);
double r96785 = r96769 * r96784;
return r96785;
}
double f(double x, double y, double z, double t, double a, double b) {
double r96786 = y;
double r96787 = z;
double r96788 = log(r96787);
double r96789 = t;
double r96790 = r96788 - r96789;
double r96791 = r96786 * r96790;
double r96792 = a;
double r96793 = 1.0;
double r96794 = r96793 - r96787;
double r96795 = log(r96794);
double r96796 = b;
double r96797 = r96795 - r96796;
double r96798 = r96792 * r96797;
double r96799 = r96791 + r96798;
double r96800 = 0.00012701418070810855;
bool r96801 = r96799 <= r96800;
double r96802 = x;
double r96803 = exp(1.0);
double r96804 = sqrt(r96803);
double r96805 = log(r96793);
double r96806 = 0.5;
double r96807 = 2.0;
double r96808 = pow(r96787, r96807);
double r96809 = pow(r96793, r96807);
double r96810 = r96808 / r96809;
double r96811 = r96806 * r96810;
double r96812 = r96793 * r96787;
double r96813 = r96811 + r96812;
double r96814 = r96805 - r96813;
double r96815 = r96814 - r96796;
double r96816 = r96792 * r96815;
double r96817 = r96791 + r96816;
double r96818 = pow(r96804, r96817);
double r96819 = r96818 * r96818;
double r96820 = r96802 * r96819;
double r96821 = r96792 * r96796;
double r96822 = r96792 * r96787;
double r96823 = r96793 * r96822;
double r96824 = 0.5;
double r96825 = r96792 * r96808;
double r96826 = r96824 * r96825;
double r96827 = r96823 + r96826;
double r96828 = r96821 + r96827;
double r96829 = -r96828;
double r96830 = pow(r96803, r96829);
double r96831 = r96802 * r96830;
double r96832 = r96801 ? r96820 : r96831;
return r96832;
}



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
if (+ (* y (- (log z) t)) (* a (- (log (- 1.0 z)) b))) < 0.00012701418070810855Initial program 0.7
Taylor expanded around 0 0.0
rmApplied *-un-lft-identity0.0
Applied exp-prod0.0
Simplified0.0
rmApplied add-sqr-sqrt0.0
Applied unpow-prod-down0.0
if 0.00012701418070810855 < (+ (* y (- (log z) t)) (* a (- (log (- 1.0 z)) b))) Initial program 53.1
Taylor expanded around 0 20.2
rmApplied *-un-lft-identity20.2
Applied exp-prod20.2
Simplified20.2
Taylor expanded around inf 14.2
Final simplification0.4
herbie shell --seed 2019322
(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))))))