{\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)}\begin{array}{l}
\mathbf{if}\;\frac{1}{n} \le -3.099481539779537 \cdot 10^{-08}:\\
\;\;\;\;{\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)}\\
\mathbf{elif}\;\frac{1}{n} \le 3.9819985237072126 \cdot 10^{-21}:\\
\;\;\;\;\left(\frac{\frac{1}{n}}{x} - \frac{-\log x}{\left(x \cdot n\right) \cdot n}\right) - \frac{\frac{\frac{1}{2}}{x \cdot n}}{x}\\
\mathbf{else}:\\
\;\;\;\;{\left(\sqrt{x + 1}\right)}^{\left(\frac{1}{n}\right)} \cdot {\left({\left(\sqrt{x + 1}\right)}^{\left(\sqrt{\frac{1}{n}}\right)}\right)}^{\left(\sqrt{\frac{1}{n}}\right)} - {x}^{\left(\frac{1}{n}\right)}\\
\end{array}double f(double x, double n) {
double r10026355 = x;
double r10026356 = 1.0;
double r10026357 = r10026355 + r10026356;
double r10026358 = n;
double r10026359 = r10026356 / r10026358;
double r10026360 = pow(r10026357, r10026359);
double r10026361 = pow(r10026355, r10026359);
double r10026362 = r10026360 - r10026361;
return r10026362;
}
double f(double x, double n) {
double r10026363 = 1.0;
double r10026364 = n;
double r10026365 = r10026363 / r10026364;
double r10026366 = -3.099481539779537e-08;
bool r10026367 = r10026365 <= r10026366;
double r10026368 = x;
double r10026369 = r10026368 + r10026363;
double r10026370 = pow(r10026369, r10026365);
double r10026371 = pow(r10026368, r10026365);
double r10026372 = r10026370 - r10026371;
double r10026373 = 3.9819985237072126e-21;
bool r10026374 = r10026365 <= r10026373;
double r10026375 = r10026365 / r10026368;
double r10026376 = log(r10026368);
double r10026377 = -r10026376;
double r10026378 = r10026368 * r10026364;
double r10026379 = r10026378 * r10026364;
double r10026380 = r10026377 / r10026379;
double r10026381 = r10026375 - r10026380;
double r10026382 = 0.5;
double r10026383 = r10026382 / r10026378;
double r10026384 = r10026383 / r10026368;
double r10026385 = r10026381 - r10026384;
double r10026386 = sqrt(r10026369);
double r10026387 = pow(r10026386, r10026365);
double r10026388 = sqrt(r10026365);
double r10026389 = pow(r10026386, r10026388);
double r10026390 = pow(r10026389, r10026388);
double r10026391 = r10026387 * r10026390;
double r10026392 = r10026391 - r10026371;
double r10026393 = r10026374 ? r10026385 : r10026392;
double r10026394 = r10026367 ? r10026372 : r10026393;
return r10026394;
}



Bits error versus x



Bits error versus n
Results
if (/ 1 n) < -3.099481539779537e-08Initial program 0.7
rmApplied *-un-lft-identity0.7
Applied pow-unpow0.7
Simplified0.7
if -3.099481539779537e-08 < (/ 1 n) < 3.9819985237072126e-21Initial program 44.7
Taylor expanded around inf 31.8
Simplified31.8
rmApplied associate-/r*31.2
if 3.9819985237072126e-21 < (/ 1 n) Initial program 27.0
rmApplied *-un-lft-identity27.0
Applied pow-unpow27.0
Simplified27.0
rmApplied add-sqr-sqrt27.0
Applied unpow-prod-down27.1
rmApplied add-sqr-sqrt27.1
Applied pow-unpow27.1
Final simplification21.5
herbie shell --seed 2019125
(FPCore (x n)
:name "2nthrt (problem 3.4.6)"
(- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))))