{\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)}\begin{array}{l}
\mathbf{if}\;\frac{1}{n} \le -2.62963224260069623 \cdot 10^{-7}:\\
\;\;\;\;\left({\left(x + 1\right)}^{\left(\frac{\frac{1}{n}}{2}\right)} + \sqrt{{x}^{\left(\frac{1}{n}\right)}}\right) \cdot \left({\left(x + 1\right)}^{\left(\frac{\frac{1}{n}}{2}\right)} - \sqrt{{x}^{\left(\frac{1}{n}\right)}}\right)\\
\mathbf{elif}\;\frac{1}{n} \le 8.0651678035819246 \cdot 10^{-8}:\\
\;\;\;\;\left({\left(x + 1\right)}^{\left(\frac{\frac{1}{n}}{2}\right)} + \sqrt{{x}^{\left(\frac{1}{n}\right)}}\right) \cdot \mathsf{fma}\left(-0.25, \frac{1}{{x}^{2} \cdot n} + \frac{\log \left(\frac{1}{x}\right)}{x \cdot {n}^{2}}, \frac{\frac{0.5}{n}}{x}\right)\\
\mathbf{else}:\\
\;\;\;\;\log \left(e^{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)}}\right)\\
\end{array}double f(double x, double n) {
double r93754 = x;
double r93755 = 1.0;
double r93756 = r93754 + r93755;
double r93757 = n;
double r93758 = r93755 / r93757;
double r93759 = pow(r93756, r93758);
double r93760 = pow(r93754, r93758);
double r93761 = r93759 - r93760;
return r93761;
}
double f(double x, double n) {
double r93762 = 1.0;
double r93763 = n;
double r93764 = r93762 / r93763;
double r93765 = -2.629632242600696e-07;
bool r93766 = r93764 <= r93765;
double r93767 = x;
double r93768 = r93767 + r93762;
double r93769 = 2.0;
double r93770 = r93764 / r93769;
double r93771 = pow(r93768, r93770);
double r93772 = pow(r93767, r93764);
double r93773 = sqrt(r93772);
double r93774 = r93771 + r93773;
double r93775 = r93771 - r93773;
double r93776 = r93774 * r93775;
double r93777 = 8.065167803581925e-08;
bool r93778 = r93764 <= r93777;
double r93779 = 0.25;
double r93780 = -r93779;
double r93781 = 1.0;
double r93782 = pow(r93767, r93769);
double r93783 = r93782 * r93763;
double r93784 = r93781 / r93783;
double r93785 = r93781 / r93767;
double r93786 = log(r93785);
double r93787 = pow(r93763, r93769);
double r93788 = r93767 * r93787;
double r93789 = r93786 / r93788;
double r93790 = r93784 + r93789;
double r93791 = 0.5;
double r93792 = r93791 / r93763;
double r93793 = r93792 / r93767;
double r93794 = fma(r93780, r93790, r93793);
double r93795 = r93774 * r93794;
double r93796 = pow(r93768, r93764);
double r93797 = r93796 - r93772;
double r93798 = exp(r93797);
double r93799 = log(r93798);
double r93800 = r93778 ? r93795 : r93799;
double r93801 = r93766 ? r93776 : r93800;
return r93801;
}



Bits error versus x



Bits error versus n
if (/ 1.0 n) < -2.629632242600696e-07Initial program 0.8
rmApplied add-sqr-sqrt0.8
Applied sqr-pow0.8
Applied difference-of-squares0.8
if -2.629632242600696e-07 < (/ 1.0 n) < 8.065167803581925e-08Initial program 44.4
rmApplied add-sqr-sqrt44.4
Applied sqr-pow44.4
Applied difference-of-squares44.4
Taylor expanded around inf 32.5
Simplified32.0
if 8.065167803581925e-08 < (/ 1.0 n) Initial program 25.2
rmApplied add-log-exp25.2
Applied add-log-exp25.2
Applied diff-log25.2
Simplified25.2
Final simplification22.3
herbie shell --seed 2020020 +o rules:numerics
(FPCore (x n)
:name "2nthrt (problem 3.4.6)"
:precision binary64
(- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))))