{\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.4291090181189753 \cdot 10^{-7}:\\
\;\;\;\;\left({\left(x + 1\right)}^{\left(\frac{\frac{1}{n}}{2}\right)} + \mathsf{expm1}\left(\mathsf{log1p}\left({x}^{\left(\frac{\frac{1}{n}}{2}\right)}\right)\right)\right) \cdot \left({\left(x + 1\right)}^{\left(\frac{\frac{1}{n}}{2}\right)} - {\left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right)}^{\left(\frac{\frac{1}{n}}{2}\right)} \cdot {\left(\sqrt[3]{x}\right)}^{\left(\frac{\frac{1}{n}}{2}\right)}\right)\\
\mathbf{elif}\;\frac{1}{n} \le 4.97263161662073162 \cdot 10^{-22}:\\
\;\;\;\;\frac{1}{x \cdot n} - \mathsf{fma}\left(1, \frac{-\log x}{x \cdot {n}^{2}}, \frac{0.5}{{x}^{2} \cdot n}\right)\\
\mathbf{else}:\\
\;\;\;\;\left({\left(x + 1\right)}^{\left(\frac{\frac{1}{n}}{2}\right)} + \mathsf{expm1}\left(\mathsf{log1p}\left({x}^{\left(\frac{\frac{1}{n}}{2}\right)}\right)\right)\right) \cdot \left({\left(x + 1\right)}^{\left(\frac{\frac{1}{n}}{2}\right)} - {\left({x}^{\left(\frac{\frac{1}{\sqrt[3]{n} \cdot \sqrt[3]{n}}}{\sqrt{2}}\right)}\right)}^{\left(\frac{\frac{1}{\sqrt[3]{n}}}{\sqrt{2}}\right)}\right)\\
\end{array}double f(double x, double n) {
double r75471 = x;
double r75472 = 1.0;
double r75473 = r75471 + r75472;
double r75474 = n;
double r75475 = r75472 / r75474;
double r75476 = pow(r75473, r75475);
double r75477 = pow(r75471, r75475);
double r75478 = r75476 - r75477;
return r75478;
}
double f(double x, double n) {
double r75479 = 1.0;
double r75480 = n;
double r75481 = r75479 / r75480;
double r75482 = -1.4291090181189753e-07;
bool r75483 = r75481 <= r75482;
double r75484 = x;
double r75485 = r75484 + r75479;
double r75486 = 2.0;
double r75487 = r75481 / r75486;
double r75488 = pow(r75485, r75487);
double r75489 = pow(r75484, r75487);
double r75490 = log1p(r75489);
double r75491 = expm1(r75490);
double r75492 = r75488 + r75491;
double r75493 = cbrt(r75484);
double r75494 = r75493 * r75493;
double r75495 = pow(r75494, r75487);
double r75496 = pow(r75493, r75487);
double r75497 = r75495 * r75496;
double r75498 = r75488 - r75497;
double r75499 = r75492 * r75498;
double r75500 = 4.972631616620732e-22;
bool r75501 = r75481 <= r75500;
double r75502 = r75484 * r75480;
double r75503 = r75479 / r75502;
double r75504 = log(r75484);
double r75505 = -r75504;
double r75506 = pow(r75480, r75486);
double r75507 = r75484 * r75506;
double r75508 = r75505 / r75507;
double r75509 = 0.5;
double r75510 = pow(r75484, r75486);
double r75511 = r75510 * r75480;
double r75512 = r75509 / r75511;
double r75513 = fma(r75479, r75508, r75512);
double r75514 = r75503 - r75513;
double r75515 = 1.0;
double r75516 = cbrt(r75480);
double r75517 = r75516 * r75516;
double r75518 = r75515 / r75517;
double r75519 = sqrt(r75486);
double r75520 = r75518 / r75519;
double r75521 = pow(r75484, r75520);
double r75522 = r75479 / r75516;
double r75523 = r75522 / r75519;
double r75524 = pow(r75521, r75523);
double r75525 = r75488 - r75524;
double r75526 = r75492 * r75525;
double r75527 = r75501 ? r75514 : r75526;
double r75528 = r75483 ? r75499 : r75527;
return r75528;
}



Bits error versus x



Bits error versus n
if (/ 1.0 n) < -1.4291090181189753e-07Initial program 0.8
rmApplied sqr-pow0.8
Applied sqr-pow0.8
Applied difference-of-squares0.8
rmApplied expm1-log1p-u0.8
rmApplied add-cube-cbrt0.8
Applied unpow-prod-down0.8
if -1.4291090181189753e-07 < (/ 1.0 n) < 4.972631616620732e-22Initial program 44.7
Taylor expanded around inf 32.9
Simplified32.9
if 4.972631616620732e-22 < (/ 1.0 n) Initial program 26.8
rmApplied sqr-pow26.9
Applied sqr-pow26.8
Applied difference-of-squares26.8
rmApplied expm1-log1p-u26.8
rmApplied add-sqr-sqrt26.8
Applied add-cube-cbrt26.9
Applied *-un-lft-identity26.9
Applied times-frac26.9
Applied times-frac26.9
Applied pow-unpow26.9
Final simplification22.9
herbie shell --seed 2019198 +o rules:numerics
(FPCore (x n)
:name "2nthrt (problem 3.4.6)"
(- (pow (+ x 1.0) (/ 1.0 n)) (pow x (/ 1.0 n))))