{\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.6345588493135571 \cdot 10^{-23}:\\
\;\;\;\;\log \left(e^{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - \sqrt{{x}^{\left(\frac{1}{n}\right)}} \cdot \sqrt{{x}^{\left(\frac{1}{n}\right)}}}\right)\\
\mathbf{elif}\;\frac{1}{n} \le 5.53064647223408922 \cdot 10^{-24}:\\
\;\;\;\;\frac{\frac{1}{n}}{x} - \left(\frac{\frac{0.5}{n}}{{x}^{2}} - \frac{\log x \cdot 1}{x \cdot {n}^{2}}\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{{\left(x + 1\right)}^{\left(2 \cdot \frac{1}{n}\right)} + \left(-{x}^{\left(2 \cdot \frac{1}{n}\right)}\right)}{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)} + {x}^{\left(\frac{1}{n}\right)}}\\
\end{array}double f(double x, double n) {
double r66518 = x;
double r66519 = 1.0;
double r66520 = r66518 + r66519;
double r66521 = n;
double r66522 = r66519 / r66521;
double r66523 = pow(r66520, r66522);
double r66524 = pow(r66518, r66522);
double r66525 = r66523 - r66524;
return r66525;
}
double f(double x, double n) {
double r66526 = 1.0;
double r66527 = n;
double r66528 = r66526 / r66527;
double r66529 = -1.634558849313557e-23;
bool r66530 = r66528 <= r66529;
double r66531 = x;
double r66532 = r66531 + r66526;
double r66533 = pow(r66532, r66528);
double r66534 = pow(r66531, r66528);
double r66535 = sqrt(r66534);
double r66536 = r66535 * r66535;
double r66537 = r66533 - r66536;
double r66538 = exp(r66537);
double r66539 = log(r66538);
double r66540 = 5.530646472234089e-24;
bool r66541 = r66528 <= r66540;
double r66542 = r66528 / r66531;
double r66543 = 0.5;
double r66544 = r66543 / r66527;
double r66545 = 2.0;
double r66546 = pow(r66531, r66545);
double r66547 = r66544 / r66546;
double r66548 = log(r66531);
double r66549 = r66548 * r66526;
double r66550 = pow(r66527, r66545);
double r66551 = r66531 * r66550;
double r66552 = r66549 / r66551;
double r66553 = r66547 - r66552;
double r66554 = r66542 - r66553;
double r66555 = r66545 * r66528;
double r66556 = pow(r66532, r66555);
double r66557 = pow(r66531, r66555);
double r66558 = -r66557;
double r66559 = r66556 + r66558;
double r66560 = r66533 + r66534;
double r66561 = r66559 / r66560;
double r66562 = r66541 ? r66554 : r66561;
double r66563 = r66530 ? r66539 : r66562;
return r66563;
}



Bits error versus x



Bits error versus n
Results
if (/ 1.0 n) < -1.634558849313557e-23Initial program 5.5
rmApplied add-sqr-sqrt5.6
rmApplied add-log-exp6.0
Applied add-log-exp5.9
Applied diff-log5.9
Simplified5.9
if -1.634558849313557e-23 < (/ 1.0 n) < 5.530646472234089e-24Initial program 44.6
Taylor expanded around inf 32.6
Simplified32.0
if 5.530646472234089e-24 < (/ 1.0 n) Initial program 13.3
rmApplied flip--13.3
Simplified13.2
Final simplification24.6
herbie shell --seed 2020065
(FPCore (x n)
:name "2nthrt (problem 3.4.6)"
:precision binary64
(- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))))