{\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)}\begin{array}{l}
\mathbf{if}\;\frac{1}{n} \le -5.601735034452610478039364001745514798358 \cdot 10^{-7}:\\
\;\;\;\;\left({\left(x + 1\right)}^{\left(\frac{\frac{1}{n}}{2}\right)} + {x}^{\left(\frac{\frac{1}{n}}{2}\right)}\right) \cdot \left({\left(x + 1\right)}^{\left(\frac{\frac{1}{n}}{2}\right)} - {x}^{\left(\frac{\frac{1}{n}}{2}\right)}\right)\\
\mathbf{elif}\;\frac{1}{n} \le 0.009850921393702683631632410765632812399417:\\
\;\;\;\;\left({\left(x + 1\right)}^{\left(\frac{\frac{1}{n}}{2}\right)} + {x}^{\left(\frac{\frac{1}{n}}{2}\right)}\right) \cdot \mathsf{fma}\left(-0.25, \frac{1}{\mathsf{log1p}\left(\mathsf{expm1}\left({x}^{2} \cdot n\right)\right)} + \frac{\log \left(\frac{1}{x}\right)}{\mathsf{expm1}\left(\mathsf{log1p}\left(x \cdot {n}^{2}\right)\right)}, \frac{\frac{0.5}{n}}{x}\right)\\
\mathbf{else}:\\
\;\;\;\;\left({\left({\left(x + 1\right)}^{\left(\frac{\sqrt{\frac{1}{n}}}{\sqrt{2}}\right)}\right)}^{\left(\frac{\sqrt{\frac{1}{n}}}{\sqrt{2}}\right)} + {x}^{\left(\frac{\frac{1}{n}}{2}\right)}\right) \cdot \left({\left(x + 1\right)}^{\left(\frac{\frac{1}{n}}{2}\right)} - {x}^{\left(\frac{\frac{1}{n}}{2}\right)}\right)\\
\end{array}double f(double x, double n) {
double r76666 = x;
double r76667 = 1.0;
double r76668 = r76666 + r76667;
double r76669 = n;
double r76670 = r76667 / r76669;
double r76671 = pow(r76668, r76670);
double r76672 = pow(r76666, r76670);
double r76673 = r76671 - r76672;
return r76673;
}
double f(double x, double n) {
double r76674 = 1.0;
double r76675 = n;
double r76676 = r76674 / r76675;
double r76677 = -5.60173503445261e-07;
bool r76678 = r76676 <= r76677;
double r76679 = x;
double r76680 = r76679 + r76674;
double r76681 = 2.0;
double r76682 = r76676 / r76681;
double r76683 = pow(r76680, r76682);
double r76684 = pow(r76679, r76682);
double r76685 = r76683 + r76684;
double r76686 = r76683 - r76684;
double r76687 = r76685 * r76686;
double r76688 = 0.009850921393702684;
bool r76689 = r76676 <= r76688;
double r76690 = 0.25;
double r76691 = -r76690;
double r76692 = 1.0;
double r76693 = pow(r76679, r76681);
double r76694 = r76693 * r76675;
double r76695 = expm1(r76694);
double r76696 = log1p(r76695);
double r76697 = r76692 / r76696;
double r76698 = r76692 / r76679;
double r76699 = log(r76698);
double r76700 = pow(r76675, r76681);
double r76701 = r76679 * r76700;
double r76702 = log1p(r76701);
double r76703 = expm1(r76702);
double r76704 = r76699 / r76703;
double r76705 = r76697 + r76704;
double r76706 = 0.5;
double r76707 = r76706 / r76675;
double r76708 = r76707 / r76679;
double r76709 = fma(r76691, r76705, r76708);
double r76710 = r76685 * r76709;
double r76711 = sqrt(r76676);
double r76712 = sqrt(r76681);
double r76713 = r76711 / r76712;
double r76714 = pow(r76680, r76713);
double r76715 = pow(r76714, r76713);
double r76716 = r76715 + r76684;
double r76717 = r76716 * r76686;
double r76718 = r76689 ? r76710 : r76717;
double r76719 = r76678 ? r76687 : r76718;
return r76719;
}



Bits error versus x



Bits error versus n
if (/ 1.0 n) < -5.60173503445261e-07Initial program 0.8
rmApplied sqr-pow0.9
Applied sqr-pow0.8
Applied difference-of-squares0.8
if -5.60173503445261e-07 < (/ 1.0 n) < 0.009850921393702684Initial program 44.3
rmApplied sqr-pow44.3
Applied sqr-pow44.3
Applied difference-of-squares44.3
Taylor expanded around inf 32.1
Simplified31.6
rmApplied log1p-expm1-u31.5
rmApplied expm1-log1p-u31.5
if 0.009850921393702684 < (/ 1.0 n) Initial program 23.5
rmApplied sqr-pow23.5
Applied sqr-pow23.5
Applied difference-of-squares23.5
rmApplied add-sqr-sqrt23.5
Applied add-sqr-sqrt23.5
Applied times-frac23.5
Applied pow-unpow23.5
Final simplification21.5
herbie shell --seed 2019344 +o rules:numerics
(FPCore (x n)
:name "2nthrt (problem 3.4.6)"
:precision binary64
(- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))))