{\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(\sqrt[3]{\mathsf{fma}\left(\sqrt{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)}}, \sqrt{{\left(x + 1\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)} \cdot \sqrt[3]{\mathsf{fma}\left(\sqrt{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)}}, \sqrt{{\left(x + 1\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) \cdot \sqrt[3]{\mathsf{fma}\left(\sqrt{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)}}, \sqrt{{\left(x + 1\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)} + \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({\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)}\right) \cdot \left(\sqrt[3]{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)}} \cdot \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)\right)\right)}\\
\mathbf{elif}\;\frac{1}{n} \le 2.220885236034127 \cdot 10^{-08}:\\
\;\;\;\;\left(\frac{1}{x \cdot n} + \frac{\log x}{\left(n \cdot n\right) \cdot x}\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 r3622841 = x;
double r3622842 = 1.0;
double r3622843 = r3622841 + r3622842;
double r3622844 = n;
double r3622845 = r3622842 / r3622844;
double r3622846 = pow(r3622843, r3622845);
double r3622847 = pow(r3622841, r3622845);
double r3622848 = r3622846 - r3622847;
return r3622848;
}
double f(double x, double n) {
double r3622849 = 1.0;
double r3622850 = n;
double r3622851 = r3622849 / r3622850;
double r3622852 = -3.147233419817972e-08;
bool r3622853 = r3622851 <= r3622852;
double r3622854 = x;
double r3622855 = r3622854 + r3622849;
double r3622856 = pow(r3622855, r3622851);
double r3622857 = sqrt(r3622856);
double r3622858 = cbrt(r3622854);
double r3622859 = pow(r3622858, r3622851);
double r3622860 = -r3622859;
double r3622861 = r3622858 * r3622858;
double r3622862 = pow(r3622861, r3622851);
double r3622863 = r3622860 * r3622862;
double r3622864 = fma(r3622857, r3622857, r3622863);
double r3622865 = cbrt(r3622864);
double r3622866 = r3622865 * r3622865;
double r3622867 = r3622866 * r3622865;
double r3622868 = r3622859 * r3622862;
double r3622869 = fma(r3622860, r3622862, r3622868);
double r3622870 = r3622867 + r3622869;
double r3622871 = pow(r3622854, r3622851);
double r3622872 = r3622856 - r3622871;
double r3622873 = cbrt(r3622872);
double r3622874 = r3622873 * r3622873;
double r3622875 = r3622873 * r3622874;
double r3622876 = r3622872 * r3622875;
double r3622877 = r3622870 * r3622876;
double r3622878 = cbrt(r3622877);
double r3622879 = 2.220885236034127e-08;
bool r3622880 = r3622851 <= r3622879;
double r3622881 = r3622854 * r3622850;
double r3622882 = r3622849 / r3622881;
double r3622883 = log(r3622854);
double r3622884 = r3622850 * r3622850;
double r3622885 = r3622884 * r3622854;
double r3622886 = r3622883 / r3622885;
double r3622887 = r3622882 + r3622886;
double r3622888 = 0.5;
double r3622889 = r3622888 / r3622850;
double r3622890 = r3622854 * r3622854;
double r3622891 = r3622889 / r3622890;
double r3622892 = r3622887 - r3622891;
double r3622893 = log1p(r3622854);
double r3622894 = r3622893 / r3622850;
double r3622895 = exp(r3622894);
double r3622896 = r3622895 - r3622871;
double r3622897 = r3622880 ? r3622892 : r3622896;
double r3622898 = r3622853 ? r3622878 : r3622897;
return r3622898;
}



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
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))))