{\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)}\begin{array}{l}
\mathbf{if}\;n \le -5.516643619668029 \cdot 10^{+38}:\\
\;\;\;\;\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} \cdot \sqrt[3]{x}\right)}^{\left(\frac{1}{n}\right)} \cdot {\left(\sqrt[3]{x}\right)}^{\left(\frac{1}{n}\right)}\right) + \left(\left(\frac{\log x}{n \cdot n} \cdot \frac{\frac{1}{3}}{x} - \frac{\frac{1}{2}}{n \cdot \left(x \cdot x\right)}\right) + \left(\frac{\frac{1}{x}}{n} + \frac{\frac{\log x \cdot \frac{2}{3}}{x}}{n \cdot n}\right)\right)\\
\mathbf{elif}\;n \le -1.9461952197688902 \cdot 10^{-306}:\\
\;\;\;\;\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} \cdot \sqrt[3]{x}\right)}^{\left(\frac{1}{n}\right)} \cdot {\left(\sqrt[3]{x}\right)}^{\left(\frac{1}{n}\right)}\right) + \log \left(e^{\mathsf{fma}\left({\left(\sqrt[3]{1 + x} \cdot \sqrt[3]{1 + x}\right)}^{\left(\frac{1}{n}\right)}, {\left(\sqrt[3]{1 + x}\right)}^{\left(\frac{1}{n}\right)}, \left(-{\left(\sqrt[3]{x}\right)}^{\left(\frac{1}{n}\right)}\right) \cdot {\left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right)}^{\left(\frac{1}{n}\right)}\right)}\right)\\
\mathbf{elif}\;n \le 590284494.5165114:\\
\;\;\;\;e^{\mathsf{log1p}\left(x\right) \cdot \frac{1}{n}} - {x}^{\left(\frac{1}{n}\right)}\\
\mathbf{else}:\\
\;\;\;\;\left(\frac{1}{x \cdot n} - \frac{\frac{\frac{1}{2}}{n}}{x \cdot x}\right) - \frac{-\log x}{\left(x \cdot n\right) \cdot n}\\
\end{array}double f(double x, double n) {
double r950817 = x;
double r950818 = 1.0;
double r950819 = r950817 + r950818;
double r950820 = n;
double r950821 = r950818 / r950820;
double r950822 = pow(r950819, r950821);
double r950823 = pow(r950817, r950821);
double r950824 = r950822 - r950823;
return r950824;
}
double f(double x, double n) {
double r950825 = n;
double r950826 = -5.516643619668029e+38;
bool r950827 = r950825 <= r950826;
double r950828 = x;
double r950829 = cbrt(r950828);
double r950830 = 1.0;
double r950831 = r950830 / r950825;
double r950832 = pow(r950829, r950831);
double r950833 = -r950832;
double r950834 = r950829 * r950829;
double r950835 = pow(r950834, r950831);
double r950836 = r950835 * r950832;
double r950837 = fma(r950833, r950835, r950836);
double r950838 = log(r950828);
double r950839 = r950825 * r950825;
double r950840 = r950838 / r950839;
double r950841 = 0.3333333333333333;
double r950842 = r950841 / r950828;
double r950843 = r950840 * r950842;
double r950844 = 0.5;
double r950845 = r950828 * r950828;
double r950846 = r950825 * r950845;
double r950847 = r950844 / r950846;
double r950848 = r950843 - r950847;
double r950849 = r950830 / r950828;
double r950850 = r950849 / r950825;
double r950851 = 0.6666666666666666;
double r950852 = r950838 * r950851;
double r950853 = r950852 / r950828;
double r950854 = r950853 / r950839;
double r950855 = r950850 + r950854;
double r950856 = r950848 + r950855;
double r950857 = r950837 + r950856;
double r950858 = -1.9461952197688902e-306;
bool r950859 = r950825 <= r950858;
double r950860 = r950830 + r950828;
double r950861 = cbrt(r950860);
double r950862 = r950861 * r950861;
double r950863 = pow(r950862, r950831);
double r950864 = pow(r950861, r950831);
double r950865 = r950833 * r950835;
double r950866 = fma(r950863, r950864, r950865);
double r950867 = exp(r950866);
double r950868 = log(r950867);
double r950869 = r950837 + r950868;
double r950870 = 590284494.5165114;
bool r950871 = r950825 <= r950870;
double r950872 = log1p(r950828);
double r950873 = r950872 * r950831;
double r950874 = exp(r950873);
double r950875 = pow(r950828, r950831);
double r950876 = r950874 - r950875;
double r950877 = r950828 * r950825;
double r950878 = r950830 / r950877;
double r950879 = r950844 / r950825;
double r950880 = r950879 / r950845;
double r950881 = r950878 - r950880;
double r950882 = -r950838;
double r950883 = r950877 * r950825;
double r950884 = r950882 / r950883;
double r950885 = r950881 - r950884;
double r950886 = r950871 ? r950876 : r950885;
double r950887 = r950859 ? r950869 : r950886;
double r950888 = r950827 ? r950857 : r950887;
return r950888;
}



Bits error versus x



Bits error versus n
if n < -5.516643619668029e+38Initial program 43.8
rmApplied add-cube-cbrt43.8
Applied unpow-prod-down43.8
Applied add-cube-cbrt43.8
Applied unpow-prod-down43.8
Applied prod-diff43.8
Taylor expanded around inf 32.9
Simplified32.4
if -5.516643619668029e+38 < n < -1.9461952197688902e-306Initial program 6.0
rmApplied add-cube-cbrt6.0
Applied unpow-prod-down6.0
Applied add-cube-cbrt6.0
Applied unpow-prod-down6.0
Applied prod-diff6.0
rmApplied add-log-exp6.1
if -1.9461952197688902e-306 < n < 590284494.5165114Initial program 25.1
rmApplied add-exp-log25.1
Simplified2.9
if 590284494.5165114 < n Initial program 45.1
Taylor expanded around inf 32.7
Simplified32.7
Final simplification19.9
herbie shell --seed 2019155 +o rules:numerics
(FPCore (x n)
:name "2nthrt (problem 3.4.6)"
(- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))))