{\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)}\begin{array}{l}
\mathbf{if}\;\frac{1}{n} \le -1.059000321787014 \cdot 10^{-6}:\\
\;\;\;\;\log \left(e^{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)}}\right)\\
\mathbf{elif}\;\frac{1}{n} \le 5.0494628055209996 \cdot 10^{-25}:\\
\;\;\;\;\left(\sqrt{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)}} + {x}^{\left(\frac{\frac{1}{n}}{2}\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}:\\
\;\;\;\;\left(\sqrt{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)}} + {x}^{\left(\frac{\frac{1}{n}}{2}\right)}\right) \cdot e^{\log \left(\sqrt{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)}} - {x}^{\left(\frac{\frac{1}{n}}{2}\right)}\right)}\\
\end{array}double f(double x, double n) {
double r60924 = x;
double r60925 = 1.0;
double r60926 = r60924 + r60925;
double r60927 = n;
double r60928 = r60925 / r60927;
double r60929 = pow(r60926, r60928);
double r60930 = pow(r60924, r60928);
double r60931 = r60929 - r60930;
return r60931;
}
double f(double x, double n) {
double r60932 = 1.0;
double r60933 = n;
double r60934 = r60932 / r60933;
double r60935 = -1.059000321787014e-06;
bool r60936 = r60934 <= r60935;
double r60937 = x;
double r60938 = r60937 + r60932;
double r60939 = pow(r60938, r60934);
double r60940 = pow(r60937, r60934);
double r60941 = r60939 - r60940;
double r60942 = exp(r60941);
double r60943 = log(r60942);
double r60944 = 5.049462805521e-25;
bool r60945 = r60934 <= r60944;
double r60946 = sqrt(r60939);
double r60947 = 2.0;
double r60948 = r60934 / r60947;
double r60949 = pow(r60937, r60948);
double r60950 = r60946 + r60949;
double r60951 = 0.25;
double r60952 = -r60951;
double r60953 = 1.0;
double r60954 = pow(r60937, r60947);
double r60955 = r60954 * r60933;
double r60956 = r60953 / r60955;
double r60957 = r60953 / r60937;
double r60958 = log(r60957);
double r60959 = pow(r60933, r60947);
double r60960 = r60937 * r60959;
double r60961 = r60958 / r60960;
double r60962 = r60956 + r60961;
double r60963 = 0.5;
double r60964 = r60963 / r60933;
double r60965 = r60964 / r60937;
double r60966 = fma(r60952, r60962, r60965);
double r60967 = r60950 * r60966;
double r60968 = r60946 - r60949;
double r60969 = log(r60968);
double r60970 = exp(r60969);
double r60971 = r60950 * r60970;
double r60972 = r60945 ? r60967 : r60971;
double r60973 = r60936 ? r60943 : r60972;
return r60973;
}



Bits error versus x



Bits error versus n
if (/ 1.0 n) < -1.059000321787014e-06Initial program 0.5
rmApplied add-log-exp0.9
Applied add-log-exp0.8
Applied diff-log0.8
Simplified0.8
if -1.059000321787014e-06 < (/ 1.0 n) < 5.049462805521e-25Initial program 45.3
rmApplied sqr-pow45.3
Applied add-sqr-sqrt45.3
Applied difference-of-squares45.3
Taylor expanded around inf 33.0
Simplified32.4
if 5.049462805521e-25 < (/ 1.0 n) Initial program 27.7
rmApplied sqr-pow27.8
Applied add-sqr-sqrt27.8
Applied difference-of-squares27.8
rmApplied add-exp-log27.8
Final simplification22.9
herbie shell --seed 2020033 +o rules:numerics
(FPCore (x n)
:name "2nthrt (problem 3.4.6)"
:precision binary64
(- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))))