\frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1}\begin{array}{l}
\mathbf{if}\;\frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1} \le 0.083446765035005532:\\
\;\;\;\;\frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1}\\
\mathbf{else}:\\
\;\;\;\;\left(\left(\mathsf{fma}\left(0.77777777777777779, {0.1111111111111111}^{\frac{1}{3}} \cdot \left(\sqrt{0.5} \cdot \beta\right), \mathsf{fma}\left(1, {0.1111111111111111}^{\frac{1}{3}} \cdot \sqrt{0.5}, 0.75 \cdot \left(\left(\alpha \cdot \sqrt{0.5}\right) \cdot {0.1111111111111111}^{\frac{1}{3}}\right)\right)\right) - 0.125 \cdot \left({0.1111111111111111}^{\frac{1}{3}} \cdot \frac{\beta}{\sqrt{0.5}}\right)\right) - 2 \cdot \left(\left(\alpha \cdot \sqrt{0.5}\right) \cdot {\left( 1.52415790275872584 \cdot 10^{-4} \right)}^{\frac{1}{3}}\right)\right) \cdot \frac{\frac{\frac{1}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\sqrt{\left(\alpha + \beta\right) + 2 \cdot 1}}}{\sqrt[3]{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1}}\\
\end{array}double f(double alpha, double beta) {
double r110845 = alpha;
double r110846 = beta;
double r110847 = r110845 + r110846;
double r110848 = r110846 * r110845;
double r110849 = r110847 + r110848;
double r110850 = 1.0;
double r110851 = r110849 + r110850;
double r110852 = 2.0;
double r110853 = r110852 * r110850;
double r110854 = r110847 + r110853;
double r110855 = r110851 / r110854;
double r110856 = r110855 / r110854;
double r110857 = r110854 + r110850;
double r110858 = r110856 / r110857;
return r110858;
}
double f(double alpha, double beta) {
double r110859 = alpha;
double r110860 = beta;
double r110861 = r110859 + r110860;
double r110862 = r110860 * r110859;
double r110863 = r110861 + r110862;
double r110864 = 1.0;
double r110865 = r110863 + r110864;
double r110866 = 2.0;
double r110867 = r110866 * r110864;
double r110868 = r110861 + r110867;
double r110869 = r110865 / r110868;
double r110870 = r110869 / r110868;
double r110871 = r110868 + r110864;
double r110872 = r110870 / r110871;
double r110873 = 0.08344676503500553;
bool r110874 = r110872 <= r110873;
double r110875 = 0.7777777777777778;
double r110876 = 0.1111111111111111;
double r110877 = 0.3333333333333333;
double r110878 = pow(r110876, r110877);
double r110879 = 0.5;
double r110880 = sqrt(r110879);
double r110881 = r110880 * r110860;
double r110882 = r110878 * r110881;
double r110883 = r110878 * r110880;
double r110884 = 0.75;
double r110885 = r110859 * r110880;
double r110886 = r110885 * r110878;
double r110887 = r110884 * r110886;
double r110888 = fma(r110864, r110883, r110887);
double r110889 = fma(r110875, r110882, r110888);
double r110890 = 0.125;
double r110891 = r110860 / r110880;
double r110892 = r110878 * r110891;
double r110893 = r110890 * r110892;
double r110894 = r110889 - r110893;
double r110895 = 0.00015241579027587258;
double r110896 = pow(r110895, r110877);
double r110897 = r110885 * r110896;
double r110898 = r110866 * r110897;
double r110899 = r110894 - r110898;
double r110900 = 1.0;
double r110901 = r110900 / r110868;
double r110902 = sqrt(r110868);
double r110903 = r110901 / r110902;
double r110904 = cbrt(r110871);
double r110905 = r110903 / r110904;
double r110906 = r110899 * r110905;
double r110907 = r110874 ? r110872 : r110906;
return r110907;
}



Bits error versus alpha



Bits error versus beta
if (/ (/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2.0 1.0))) (+ (+ alpha beta) (* 2.0 1.0))) (+ (+ (+ alpha beta) (* 2.0 1.0)) 1.0)) < 0.08344676503500553Initial program 0.1
if 0.08344676503500553 < (/ (/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2.0 1.0))) (+ (+ alpha beta) (* 2.0 1.0))) (+ (+ (+ alpha beta) (* 2.0 1.0)) 1.0)) Initial program 60.9
rmApplied add-cube-cbrt61.0
Applied add-sqr-sqrt60.9
Applied div-inv61.0
Applied times-frac60.9
Applied times-frac60.9
Taylor expanded around 0 22.7
Simplified22.7
Final simplification1.6
herbie shell --seed 2020083 +o rules:numerics
(FPCore (alpha beta)
:name "Octave 3.8, jcobi/3"
:precision binary64
:pre (and (> alpha -1) (> beta -1))
(/ (/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1))) (+ (+ (+ alpha beta) (* 2 1)) 1)))