{\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)}\begin{array}{l}
\mathbf{if}\;\frac{1}{n} \le -4.062563002021386395830214673147437801342 \cdot 10^{-15}:\\
\;\;\;\;\sqrt[3]{\mathsf{fma}\left(1, {\left(1 + x\right)}^{\left(\frac{1}{n}\right)}, -{x}^{\left(\frac{\frac{1}{n}}{2}\right)} \cdot {x}^{\left(\frac{\frac{1}{n}}{2}\right)}\right)} \cdot \left(\sqrt[3]{\mathsf{fma}\left(1, {\left(1 + x\right)}^{\left(\frac{1}{n}\right)}, -{x}^{\left(\frac{\frac{1}{n}}{2}\right)} \cdot {x}^{\left(\frac{\frac{1}{n}}{2}\right)}\right)} \cdot \sqrt[3]{\mathsf{fma}\left(1, {\left(1 + x\right)}^{\left(\frac{1}{n}\right)}, -{x}^{\left(\frac{\frac{1}{n}}{2}\right)} \cdot {x}^{\left(\frac{\frac{1}{n}}{2}\right)}\right)}\right) + \mathsf{fma}\left(-{x}^{\left(\frac{\frac{1}{n}}{2}\right)}, {x}^{\left(\frac{\frac{1}{n}}{2}\right)}, {x}^{\left(\frac{\frac{1}{n}}{2}\right)} \cdot {x}^{\left(\frac{\frac{1}{n}}{2}\right)}\right)\\
\mathbf{elif}\;\frac{1}{n} \le 2.907831219059099599129334134830144599578 \cdot 10^{-26}:\\
\;\;\;\;\frac{\frac{1}{x}}{n} - \mathsf{fma}\left(-\frac{\frac{\log x}{n \cdot n}}{x}, 1, \frac{\frac{0.5}{n}}{x \cdot x}\right)\\
\mathbf{else}:\\
\;\;\;\;\log \left(e^{\mathsf{fma}\left(1, {\left(1 + x\right)}^{\left(\frac{1}{n}\right)}, -{x}^{\left(\frac{\frac{1}{n}}{2}\right)} \cdot {x}^{\left(\frac{\frac{1}{n}}{2}\right)}\right)}\right) + \log \left(e^{\mathsf{fma}\left(-{x}^{\left(\frac{\frac{1}{n}}{2}\right)}, {x}^{\left(\frac{\frac{1}{n}}{2}\right)}, {x}^{\left(\frac{\frac{1}{n}}{2}\right)} \cdot {x}^{\left(\frac{\frac{1}{n}}{2}\right)}\right)}\right)\\
\end{array}double f(double x, double n) {
double r2898791 = x;
double r2898792 = 1.0;
double r2898793 = r2898791 + r2898792;
double r2898794 = n;
double r2898795 = r2898792 / r2898794;
double r2898796 = pow(r2898793, r2898795);
double r2898797 = pow(r2898791, r2898795);
double r2898798 = r2898796 - r2898797;
return r2898798;
}
double f(double x, double n) {
double r2898799 = 1.0;
double r2898800 = n;
double r2898801 = r2898799 / r2898800;
double r2898802 = -4.0625630020213864e-15;
bool r2898803 = r2898801 <= r2898802;
double r2898804 = 1.0;
double r2898805 = x;
double r2898806 = r2898799 + r2898805;
double r2898807 = pow(r2898806, r2898801);
double r2898808 = 2.0;
double r2898809 = r2898801 / r2898808;
double r2898810 = pow(r2898805, r2898809);
double r2898811 = r2898810 * r2898810;
double r2898812 = -r2898811;
double r2898813 = fma(r2898804, r2898807, r2898812);
double r2898814 = cbrt(r2898813);
double r2898815 = r2898814 * r2898814;
double r2898816 = r2898814 * r2898815;
double r2898817 = -r2898810;
double r2898818 = fma(r2898817, r2898810, r2898811);
double r2898819 = r2898816 + r2898818;
double r2898820 = 2.9078312190590996e-26;
bool r2898821 = r2898801 <= r2898820;
double r2898822 = r2898799 / r2898805;
double r2898823 = r2898822 / r2898800;
double r2898824 = log(r2898805);
double r2898825 = r2898800 * r2898800;
double r2898826 = r2898824 / r2898825;
double r2898827 = r2898826 / r2898805;
double r2898828 = -r2898827;
double r2898829 = 0.5;
double r2898830 = r2898829 / r2898800;
double r2898831 = r2898805 * r2898805;
double r2898832 = r2898830 / r2898831;
double r2898833 = fma(r2898828, r2898799, r2898832);
double r2898834 = r2898823 - r2898833;
double r2898835 = exp(r2898813);
double r2898836 = log(r2898835);
double r2898837 = exp(r2898818);
double r2898838 = log(r2898837);
double r2898839 = r2898836 + r2898838;
double r2898840 = r2898821 ? r2898834 : r2898839;
double r2898841 = r2898803 ? r2898819 : r2898840;
return r2898841;
}



Bits error versus x



Bits error versus n
if (/ 1.0 n) < -4.0625630020213864e-15Initial program 1.3
rmApplied sqr-pow1.3
Applied *-un-lft-identity1.3
Applied prod-diff1.3
rmApplied add-cube-cbrt1.4
if -4.0625630020213864e-15 < (/ 1.0 n) < 2.9078312190590996e-26Initial program 44.7
Taylor expanded around inf 32.2
Simplified31.7
if 2.9078312190590996e-26 < (/ 1.0 n) Initial program 28.1
rmApplied sqr-pow28.3
Applied *-un-lft-identity28.3
Applied prod-diff28.4
rmApplied add-log-exp28.3
rmApplied add-log-exp28.4
Final simplification22.1
herbie shell --seed 2019179 +o rules:numerics
(FPCore (x n)
:name "2nthrt (problem 3.4.6)"
(- (pow (+ x 1.0) (/ 1.0 n)) (pow x (/ 1.0 n))))