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}\;\left(\log z - t\right) \cdot y + \left(\log \left(1 - z\right) - b\right) \cdot a \le 1.829259833094711928277412323062822707698 \cdot 10^{-6}:\\
\;\;\;\;\left(\sqrt[3]{e^{\sqrt[3]{\left(\log z - t\right) \cdot y + \left(\log \left(1 - z\right) - b\right) \cdot a} \cdot \left(\sqrt[3]{\left(\log z - t\right) \cdot y + \left(\log \left(1 - z\right) - b\right) \cdot a} \cdot \sqrt[3]{\left(\log z - t\right) \cdot y + \left(\log \left(1 - z\right) - b\right) \cdot a}\right)}} \cdot \left(\sqrt[3]{e^{\left(\log z - t\right) \cdot y + \left(\log \left(1 - z\right) - b\right) \cdot a}} \cdot \sqrt[3]{e^{\left(\log z - t\right) \cdot y + \left(\log \left(1 - z\right) - b\right) \cdot a}}\right)\right) \cdot x\\
\mathbf{else}:\\
\;\;\;\;e^{\left(1 \cdot a\right) \cdot \left(-z\right) - \left(\left(\left(z \cdot z\right) \cdot 0.5\right) \cdot a + b \cdot a\right)} \cdot x\\
\end{array}double f(double x, double y, double z, double t, double a, double b) {
double r6762837 = x;
double r6762838 = y;
double r6762839 = z;
double r6762840 = log(r6762839);
double r6762841 = t;
double r6762842 = r6762840 - r6762841;
double r6762843 = r6762838 * r6762842;
double r6762844 = a;
double r6762845 = 1.0;
double r6762846 = r6762845 - r6762839;
double r6762847 = log(r6762846);
double r6762848 = b;
double r6762849 = r6762847 - r6762848;
double r6762850 = r6762844 * r6762849;
double r6762851 = r6762843 + r6762850;
double r6762852 = exp(r6762851);
double r6762853 = r6762837 * r6762852;
return r6762853;
}
double f(double x, double y, double z, double t, double a, double b) {
double r6762854 = z;
double r6762855 = log(r6762854);
double r6762856 = t;
double r6762857 = r6762855 - r6762856;
double r6762858 = y;
double r6762859 = r6762857 * r6762858;
double r6762860 = 1.0;
double r6762861 = r6762860 - r6762854;
double r6762862 = log(r6762861);
double r6762863 = b;
double r6762864 = r6762862 - r6762863;
double r6762865 = a;
double r6762866 = r6762864 * r6762865;
double r6762867 = r6762859 + r6762866;
double r6762868 = 1.829259833094712e-06;
bool r6762869 = r6762867 <= r6762868;
double r6762870 = cbrt(r6762867);
double r6762871 = r6762870 * r6762870;
double r6762872 = r6762870 * r6762871;
double r6762873 = exp(r6762872);
double r6762874 = cbrt(r6762873);
double r6762875 = exp(r6762867);
double r6762876 = cbrt(r6762875);
double r6762877 = r6762876 * r6762876;
double r6762878 = r6762874 * r6762877;
double r6762879 = x;
double r6762880 = r6762878 * r6762879;
double r6762881 = r6762860 * r6762865;
double r6762882 = -r6762854;
double r6762883 = r6762881 * r6762882;
double r6762884 = r6762854 * r6762854;
double r6762885 = 0.5;
double r6762886 = r6762884 * r6762885;
double r6762887 = r6762886 * r6762865;
double r6762888 = r6762863 * r6762865;
double r6762889 = r6762887 + r6762888;
double r6762890 = r6762883 - r6762889;
double r6762891 = exp(r6762890);
double r6762892 = r6762891 * r6762879;
double r6762893 = r6762869 ? r6762880 : r6762892;
return r6762893;
}



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))) < 1.829259833094712e-06Initial program 0.7
rmApplied add-cube-cbrt0.8
rmApplied add-cube-cbrt0.8
if 1.829259833094712e-06 < (+ (* y (- (log z) t)) (* a (- (log (- 1.0 z)) b))) Initial program 43.0
Taylor expanded around 0 17.2
Simplified17.2
Taylor expanded around inf 19.6
Simplified19.6
Final simplification1.3
herbie shell --seed 2019172
(FPCore (x y z t a b)
:name "Numeric.SpecFunctions:incompleteBetaApprox from math-functions-0.1.5.2, B"
(* x (exp (+ (* y (- (log z) t)) (* a (- (log (- 1.0 z)) b))))))