{\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)}\begin{array}{l}
\mathbf{if}\;n \le -100941949052182.515625:\\
\;\;\;\;\frac{\frac{1}{x}}{n} - \mathsf{fma}\left(\frac{\frac{-\log x}{n \cdot n}}{x}, 1, \frac{\frac{0.5}{n}}{{x}^{2}}\right)\\
\mathbf{elif}\;n \le 251407.4974749986722599714994430541992188:\\
\;\;\;\;\left(\sqrt{{\left(1 + x\right)}^{\left(\frac{1}{n}\right)}} - {x}^{\left(\frac{1}{n \cdot 2}\right)}\right) \cdot \left({x}^{\left(\frac{1}{n \cdot 2}\right)} + \sqrt{{\left(1 + x\right)}^{\left(\frac{1}{n}\right)}}\right)\\
\mathbf{else}:\\
\;\;\;\;\left({x}^{\left(\frac{1}{n \cdot 2}\right)} + \sqrt{{\left(1 + x\right)}^{\left(\frac{1}{n}\right)}}\right) \cdot \left(\frac{\frac{0.5}{n}}{x} - \mathsf{fma}\left(\frac{0.25}{{n}^{2}}, \frac{-\log x}{x}, \log \left(e^{\frac{0.25}{\left(x \cdot x\right) \cdot n}}\right)\right)\right)\\
\end{array}double f(double x, double n) {
double r72591 = x;
double r72592 = 1.0;
double r72593 = r72591 + r72592;
double r72594 = n;
double r72595 = r72592 / r72594;
double r72596 = pow(r72593, r72595);
double r72597 = pow(r72591, r72595);
double r72598 = r72596 - r72597;
return r72598;
}
double f(double x, double n) {
double r72599 = n;
double r72600 = -100941949052182.52;
bool r72601 = r72599 <= r72600;
double r72602 = 1.0;
double r72603 = x;
double r72604 = r72602 / r72603;
double r72605 = r72604 / r72599;
double r72606 = log(r72603);
double r72607 = -r72606;
double r72608 = r72599 * r72599;
double r72609 = r72607 / r72608;
double r72610 = r72609 / r72603;
double r72611 = 0.5;
double r72612 = r72611 / r72599;
double r72613 = 2.0;
double r72614 = pow(r72603, r72613);
double r72615 = r72612 / r72614;
double r72616 = fma(r72610, r72602, r72615);
double r72617 = r72605 - r72616;
double r72618 = 251407.49747499867;
bool r72619 = r72599 <= r72618;
double r72620 = r72602 + r72603;
double r72621 = r72602 / r72599;
double r72622 = pow(r72620, r72621);
double r72623 = sqrt(r72622);
double r72624 = r72599 * r72613;
double r72625 = r72602 / r72624;
double r72626 = pow(r72603, r72625);
double r72627 = r72623 - r72626;
double r72628 = r72626 + r72623;
double r72629 = r72627 * r72628;
double r72630 = r72612 / r72603;
double r72631 = 0.25;
double r72632 = pow(r72599, r72613);
double r72633 = r72631 / r72632;
double r72634 = r72607 / r72603;
double r72635 = r72603 * r72603;
double r72636 = r72635 * r72599;
double r72637 = r72631 / r72636;
double r72638 = exp(r72637);
double r72639 = log(r72638);
double r72640 = fma(r72633, r72634, r72639);
double r72641 = r72630 - r72640;
double r72642 = r72628 * r72641;
double r72643 = r72619 ? r72629 : r72642;
double r72644 = r72601 ? r72617 : r72643;
return r72644;
}



Bits error versus x



Bits error versus n
if n < -100941949052182.52Initial program 44.2
Taylor expanded around inf 31.7
Simplified31.1
if -100941949052182.52 < n < 251407.49747499867Initial program 9.0
rmApplied sqr-pow9.1
Applied add-sqr-sqrt9.1
Applied difference-of-squares9.1
Simplified9.1
Simplified9.1
if 251407.49747499867 < n Initial program 43.9
rmApplied sqr-pow44.0
Applied add-sqr-sqrt44.0
Applied difference-of-squares44.0
Simplified44.0
Simplified44.0
Taylor expanded around inf 33.0
Simplified32.3
rmApplied add-log-exp32.3
Simplified32.3
Final simplification22.2
herbie shell --seed 2019174 +o rules:numerics
(FPCore (x n)
:name "2nthrt (problem 3.4.6)"
(- (pow (+ x 1.0) (/ 1.0 n)) (pow x (/ 1.0 n))))