{\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)}\begin{array}{l}
\mathbf{if}\;n \le -155965176.56480727:\\
\;\;\;\;\left(\sqrt{\mathsf{expm1}\left(\left(\mathsf{log1p}\left(\left({x}^{\left(\frac{1}{n}\right)}\right)\right)\right)\right)} + \sqrt{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)}}\right) \cdot \left(\frac{\frac{1}{2}}{x \cdot n} - \mathsf{fma}\left(\left(-\frac{\frac{\log x}{x}}{n \cdot n}\right), \frac{1}{4}, \left(\frac{\frac{1}{4}}{\left(x \cdot n\right) \cdot x}\right)\right)\right)\\
\mathbf{elif}\;n \le -2.5874953812279278 \cdot 10^{-300}:\\
\;\;\;\;\left(\sqrt{\mathsf{expm1}\left(\left(\mathsf{log1p}\left(\left({x}^{\left(\frac{1}{n}\right)}\right)\right)\right)\right)} + \sqrt{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)}}\right) \cdot \left(\sqrt[3]{\sqrt[3]{\sqrt{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)}} - \sqrt{\mathsf{expm1}\left(\left(\mathsf{log1p}\left(\left({x}^{\left(\frac{1}{n}\right)}\right)\right)\right)\right)}} \cdot \left(\sqrt[3]{\sqrt{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)}} - \sqrt{\mathsf{expm1}\left(\left(\mathsf{log1p}\left(\left({x}^{\left(\frac{1}{n}\right)}\right)\right)\right)\right)}} \cdot \sqrt[3]{\sqrt{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)}} - \sqrt{\mathsf{expm1}\left(\left(\mathsf{log1p}\left(\left({x}^{\left(\frac{1}{n}\right)}\right)\right)\right)\right)}}\right)} \cdot \left(\sqrt[3]{\sqrt{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)}} - \sqrt{\mathsf{expm1}\left(\left(\mathsf{log1p}\left(\left({x}^{\left(\frac{1}{n}\right)}\right)\right)\right)\right)}} \cdot \sqrt[3]{\sqrt{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)}} - \sqrt{\mathsf{expm1}\left(\left(\mathsf{log1p}\left(\left({x}^{\left(\frac{1}{n}\right)}\right)\right)\right)\right)}}\right)\right)\\
\mathbf{elif}\;n \le 722234431.8548901:\\
\;\;\;\;e^{\mathsf{log1p}\left(x\right) \cdot \frac{1}{n}} - {x}^{\left(\frac{1}{n}\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{1}{n}}{x} - \left(\frac{\frac{\frac{\frac{1}{2}}{x}}{x}}{n} - \frac{\log x}{\left(n \cdot n\right) \cdot x}\right)\\
\end{array}double f(double x, double n) {
double r1964558 = x;
double r1964559 = 1.0;
double r1964560 = r1964558 + r1964559;
double r1964561 = n;
double r1964562 = r1964559 / r1964561;
double r1964563 = pow(r1964560, r1964562);
double r1964564 = pow(r1964558, r1964562);
double r1964565 = r1964563 - r1964564;
return r1964565;
}
double f(double x, double n) {
double r1964566 = n;
double r1964567 = -155965176.56480727;
bool r1964568 = r1964566 <= r1964567;
double r1964569 = x;
double r1964570 = 1.0;
double r1964571 = r1964570 / r1964566;
double r1964572 = pow(r1964569, r1964571);
double r1964573 = log1p(r1964572);
double r1964574 = expm1(r1964573);
double r1964575 = sqrt(r1964574);
double r1964576 = r1964569 + r1964570;
double r1964577 = pow(r1964576, r1964571);
double r1964578 = sqrt(r1964577);
double r1964579 = r1964575 + r1964578;
double r1964580 = 0.5;
double r1964581 = r1964569 * r1964566;
double r1964582 = r1964580 / r1964581;
double r1964583 = log(r1964569);
double r1964584 = r1964583 / r1964569;
double r1964585 = r1964566 * r1964566;
double r1964586 = r1964584 / r1964585;
double r1964587 = -r1964586;
double r1964588 = 0.25;
double r1964589 = r1964581 * r1964569;
double r1964590 = r1964588 / r1964589;
double r1964591 = fma(r1964587, r1964588, r1964590);
double r1964592 = r1964582 - r1964591;
double r1964593 = r1964579 * r1964592;
double r1964594 = -2.5874953812279278e-300;
bool r1964595 = r1964566 <= r1964594;
double r1964596 = r1964578 - r1964575;
double r1964597 = cbrt(r1964596);
double r1964598 = r1964597 * r1964597;
double r1964599 = r1964597 * r1964598;
double r1964600 = cbrt(r1964599);
double r1964601 = r1964600 * r1964598;
double r1964602 = r1964579 * r1964601;
double r1964603 = 722234431.8548901;
bool r1964604 = r1964566 <= r1964603;
double r1964605 = log1p(r1964569);
double r1964606 = r1964605 * r1964571;
double r1964607 = exp(r1964606);
double r1964608 = r1964607 - r1964572;
double r1964609 = r1964571 / r1964569;
double r1964610 = r1964580 / r1964569;
double r1964611 = r1964610 / r1964569;
double r1964612 = r1964611 / r1964566;
double r1964613 = r1964585 * r1964569;
double r1964614 = r1964583 / r1964613;
double r1964615 = r1964612 - r1964614;
double r1964616 = r1964609 - r1964615;
double r1964617 = r1964604 ? r1964608 : r1964616;
double r1964618 = r1964595 ? r1964602 : r1964617;
double r1964619 = r1964568 ? r1964593 : r1964618;
return r1964619;
}



Bits error versus x



Bits error versus n
if n < -155965176.56480727Initial program 44.5
rmApplied expm1-log1p-u44.5
rmApplied add-sqr-sqrt44.6
Applied add-sqr-sqrt44.6
Applied difference-of-squares44.6
Taylor expanded around inf 32.8
Simplified32.7
if -155965176.56480727 < n < -2.5874953812279278e-300Initial program 0.9
rmApplied expm1-log1p-u0.9
rmApplied add-sqr-sqrt0.9
Applied add-sqr-sqrt0.9
Applied difference-of-squares0.9
rmApplied add-cube-cbrt0.9
rmApplied add-cube-cbrt0.9
if -2.5874953812279278e-300 < n < 722234431.8548901Initial program 21.9
rmApplied add-exp-log21.9
Simplified2.6
if 722234431.8548901 < n Initial program 45.1
rmApplied expm1-log1p-u45.1
Taylor expanded around inf 32.6
Simplified32.1
Final simplification19.4
herbie shell --seed 2019130 +o rules:numerics
(FPCore (x n)
:name "2nthrt (problem 3.4.6)"
(- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))))