{\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.895039802440850170454212278486686446129 \cdot 10^{-17}:\\
\;\;\;\;\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^{{\left(x + 1\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)\\
\mathbf{elif}\;\frac{1}{n} \le 1.260859621565214258622089794815744532231 \cdot 10^{-44}:\\
\;\;\;\;\frac{-0.5}{\left(x \cdot n\right) \cdot x} + \left(\frac{1 \cdot \log x}{n \cdot \left(x \cdot n\right)} + \frac{1}{x \cdot n}\right)\\
\mathbf{else}:\\
\;\;\;\;\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) + \sqrt[3]{\left(\log \left(\frac{e^{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)}}}{e^{{\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) \cdot \left({\left(x + 1\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)\right) \cdot \left({\left(x + 1\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)}\\
\end{array}double f(double x, double n) {
double r4239845 = x;
double r4239846 = 1.0;
double r4239847 = r4239845 + r4239846;
double r4239848 = n;
double r4239849 = r4239846 / r4239848;
double r4239850 = pow(r4239847, r4239849);
double r4239851 = pow(r4239845, r4239849);
double r4239852 = r4239850 - r4239851;
return r4239852;
}
double f(double x, double n) {
double r4239853 = 1.0;
double r4239854 = n;
double r4239855 = r4239853 / r4239854;
double r4239856 = -4.89503980244085e-17;
bool r4239857 = r4239855 <= r4239856;
double r4239858 = x;
double r4239859 = cbrt(r4239858);
double r4239860 = pow(r4239859, r4239855);
double r4239861 = -r4239860;
double r4239862 = r4239859 * r4239859;
double r4239863 = pow(r4239862, r4239855);
double r4239864 = r4239863 * r4239860;
double r4239865 = fma(r4239861, r4239863, r4239864);
double r4239866 = r4239858 + r4239853;
double r4239867 = pow(r4239866, r4239855);
double r4239868 = r4239867 - r4239864;
double r4239869 = exp(r4239868);
double r4239870 = log(r4239869);
double r4239871 = r4239865 + r4239870;
double r4239872 = 1.2608596215652143e-44;
bool r4239873 = r4239855 <= r4239872;
double r4239874 = 0.5;
double r4239875 = -r4239874;
double r4239876 = r4239858 * r4239854;
double r4239877 = r4239876 * r4239858;
double r4239878 = r4239875 / r4239877;
double r4239879 = log(r4239858);
double r4239880 = r4239853 * r4239879;
double r4239881 = r4239854 * r4239876;
double r4239882 = r4239880 / r4239881;
double r4239883 = r4239853 / r4239876;
double r4239884 = r4239882 + r4239883;
double r4239885 = r4239878 + r4239884;
double r4239886 = exp(r4239867);
double r4239887 = exp(r4239864);
double r4239888 = r4239886 / r4239887;
double r4239889 = log(r4239888);
double r4239890 = r4239889 * r4239868;
double r4239891 = r4239890 * r4239868;
double r4239892 = cbrt(r4239891);
double r4239893 = r4239865 + r4239892;
double r4239894 = r4239873 ? r4239885 : r4239893;
double r4239895 = r4239857 ? r4239871 : r4239894;
return r4239895;
}



Bits error versus x



Bits error versus n
if (/ 1.0 n) < -4.89503980244085e-17Initial program 2.2
rmApplied add-cube-cbrt2.2
Applied unpow-prod-down2.2
Applied add-cube-cbrt2.3
Applied prod-diff2.3
rmApplied add-log-exp2.5
Simplified2.5
if -4.89503980244085e-17 < (/ 1.0 n) < 1.2608596215652143e-44Initial program 44.5
Taylor expanded around inf 32.2
Simplified32.1
if 1.2608596215652143e-44 < (/ 1.0 n) Initial program 30.5
rmApplied add-cube-cbrt30.5
Applied unpow-prod-down30.6
Applied add-cube-cbrt30.7
Applied prod-diff30.7
rmApplied add-cbrt-cube30.7
Simplified30.7
rmApplied add-log-exp30.7
Applied add-log-exp30.7
Applied diff-log30.7
Final simplification23.1
herbie shell --seed 2019172 +o rules:numerics
(FPCore (x n)
:name "2nthrt (problem 3.4.6)"
(- (pow (+ x 1.0) (/ 1.0 n)) (pow x (/ 1.0 n))))