{\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.147233419817972 \cdot 10^{-08}:\\
\;\;\;\;\sqrt[3]{\left(\left(\mathsf{fma}\left(\sqrt{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)}}, \sqrt{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)}}, -{\left(\sqrt[3]{x}\right)}^{\left(\frac{1}{n}\right)} \cdot {\left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right)}^{\left(\frac{1}{n}\right)}\right) + \mathsf{fma}\left(-{\left(\sqrt[3]{x}\right)}^{\left(\frac{1}{n}\right)}, {\left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right)}^{\left(\frac{1}{n}\right)}, {\left(\sqrt[3]{x}\right)}^{\left(\frac{1}{n}\right)} \cdot {\left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right)}^{\left(\frac{1}{n}\right)}\right)\right) \cdot \left({\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)}\right)\right) \cdot \left(\left(\sqrt[3]{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)}} \cdot \sqrt[3]{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)}}\right) \cdot \sqrt[3]{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)}}\right)}\\
\mathbf{elif}\;\frac{1}{n} \le 2.220885236034127 \cdot 10^{-08}:\\
\;\;\;\;\left(\frac{1}{x \cdot n} + \frac{\log x}{x \cdot \left(n \cdot n\right)}\right) - \frac{\frac{\frac{1}{2}}{n}}{x \cdot x}\\
\mathbf{else}:\\
\;\;\;\;e^{\frac{\mathsf{log1p}\left(x\right)}{n}} - {x}^{\left(\frac{1}{n}\right)}\\
\end{array}double f(double x, double n) {
double r3620705 = x;
double r3620706 = 1.0;
double r3620707 = r3620705 + r3620706;
double r3620708 = n;
double r3620709 = r3620706 / r3620708;
double r3620710 = pow(r3620707, r3620709);
double r3620711 = pow(r3620705, r3620709);
double r3620712 = r3620710 - r3620711;
return r3620712;
}
double f(double x, double n) {
double r3620713 = 1.0;
double r3620714 = n;
double r3620715 = r3620713 / r3620714;
double r3620716 = -3.147233419817972e-08;
bool r3620717 = r3620715 <= r3620716;
double r3620718 = x;
double r3620719 = r3620718 + r3620713;
double r3620720 = pow(r3620719, r3620715);
double r3620721 = sqrt(r3620720);
double r3620722 = cbrt(r3620718);
double r3620723 = pow(r3620722, r3620715);
double r3620724 = r3620722 * r3620722;
double r3620725 = pow(r3620724, r3620715);
double r3620726 = r3620723 * r3620725;
double r3620727 = -r3620726;
double r3620728 = fma(r3620721, r3620721, r3620727);
double r3620729 = -r3620723;
double r3620730 = fma(r3620729, r3620725, r3620726);
double r3620731 = r3620728 + r3620730;
double r3620732 = pow(r3620718, r3620715);
double r3620733 = r3620720 - r3620732;
double r3620734 = r3620731 * r3620733;
double r3620735 = cbrt(r3620733);
double r3620736 = r3620735 * r3620735;
double r3620737 = r3620736 * r3620735;
double r3620738 = r3620734 * r3620737;
double r3620739 = cbrt(r3620738);
double r3620740 = 2.220885236034127e-08;
bool r3620741 = r3620715 <= r3620740;
double r3620742 = r3620718 * r3620714;
double r3620743 = r3620713 / r3620742;
double r3620744 = log(r3620718);
double r3620745 = r3620714 * r3620714;
double r3620746 = r3620718 * r3620745;
double r3620747 = r3620744 / r3620746;
double r3620748 = r3620743 + r3620747;
double r3620749 = 0.5;
double r3620750 = r3620749 / r3620714;
double r3620751 = r3620718 * r3620718;
double r3620752 = r3620750 / r3620751;
double r3620753 = r3620748 - r3620752;
double r3620754 = log1p(r3620718);
double r3620755 = r3620754 / r3620714;
double r3620756 = exp(r3620755);
double r3620757 = r3620756 - r3620732;
double r3620758 = r3620741 ? r3620753 : r3620757;
double r3620759 = r3620717 ? r3620739 : r3620758;
return r3620759;
}



Bits error versus x



Bits error versus n
if (/ 1 n) < -3.147233419817972e-08Initial program 0.8
rmApplied add-cbrt-cube0.9
rmApplied add-cube-cbrt0.9
Applied unpow-prod-down0.9
Applied add-sqr-sqrt0.9
Applied prod-diff0.9
rmApplied add-cube-cbrt0.9
if -3.147233419817972e-08 < (/ 1 n) < 2.220885236034127e-08Initial program 45.2
Taylor expanded around inf 32.6
Simplified32.5
if 2.220885236034127e-08 < (/ 1 n) Initial program 25.7
rmApplied add-exp-log25.7
Applied pow-exp25.7
Simplified1.9
Final simplification19.0
herbie shell --seed 2019162 +o rules:numerics
(FPCore (x n)
:name "2nthrt (problem 3.4.6)"
(- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))))