{\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)}\begin{array}{l}
\mathbf{if}\;\frac{1}{n} \le -9.817714860218690239555757049366309480065 \cdot 10^{-16} \lor \neg \left(\frac{1}{n} \le 0.01664836648483149911248446528588829096407\right):\\
\;\;\;\;{\left({\left(x + 1\right)}^{1}\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{1}{n}}{x}\\
\end{array}double f(double x, double n) {
double r83401 = x;
double r83402 = 1.0;
double r83403 = r83401 + r83402;
double r83404 = n;
double r83405 = r83402 / r83404;
double r83406 = pow(r83403, r83405);
double r83407 = pow(r83401, r83405);
double r83408 = r83406 - r83407;
return r83408;
}
double f(double x, double n) {
double r83409 = 1.0;
double r83410 = n;
double r83411 = r83409 / r83410;
double r83412 = -9.81771486021869e-16;
bool r83413 = r83411 <= r83412;
double r83414 = 0.0166483664848315;
bool r83415 = r83411 <= r83414;
double r83416 = !r83415;
bool r83417 = r83413 || r83416;
double r83418 = x;
double r83419 = r83418 + r83409;
double r83420 = pow(r83419, r83409);
double r83421 = 1.0;
double r83422 = r83421 / r83410;
double r83423 = pow(r83420, r83422);
double r83424 = pow(r83418, r83411);
double r83425 = r83423 - r83424;
double r83426 = r83411 / r83418;
double r83427 = r83417 ? r83425 : r83426;
return r83427;
}



Bits error versus x



Bits error versus n
Results
if (/ 1.0 n) < -9.81771486021869e-16 or 0.0166483664848315 < (/ 1.0 n) Initial program 8.8
rmApplied div-inv8.8
Applied pow-unpow8.8
if -9.81771486021869e-16 < (/ 1.0 n) < 0.0166483664848315Initial program 44.5
rmApplied div-inv44.5
Applied pow-unpow44.5
Taylor expanded around inf 37.7
Simplified37.7
Taylor expanded around -inf 31.9
Simplified31.4
Final simplification21.8
herbie shell --seed 2019353 +o rules:numerics
(FPCore (x n)
:name "2nthrt (problem 3.4.6)"
:precision binary64
(- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))))