{\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)}\begin{array}{l}
\mathbf{if}\;\frac{1}{n} \le -7.7456503819782359 \cdot 10^{-30}:\\
\;\;\;\;\left(\sqrt[3]{\left({\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - {\left(\sqrt{x}\right)}^{\left(2 \cdot \frac{1}{n}\right)}\right) + \mathsf{fma}\left({\left(\sqrt{x}\right)}^{\left(\frac{1}{n}\right)}, -{\left(\sqrt{x}\right)}^{\left(\frac{1}{n}\right)}, {\left(\sqrt{x}\right)}^{\left(2 \cdot \frac{1}{n}\right)}\right)} \cdot \sqrt[3]{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)}}\right) \cdot \sqrt[3]{\left({\left(\sqrt{x + 1}\right)}^{\left(\frac{1}{n}\right)} + {x}^{\left(\frac{\frac{1}{n}}{2}\right)}\right) \cdot \left({\left(\sqrt{x + 1}\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{\frac{1}{n}}{2}\right)}\right)}\\
\mathbf{elif}\;\frac{1}{n} \le 3.6323271639935607 \cdot 10^{-11}:\\
\;\;\;\;\mathsf{fma}\left(1, \frac{1}{x \cdot n}, -\mathsf{fma}\left(0.5, \frac{1}{{x}^{2} \cdot n}, 1 \cdot \frac{\log \left(\frac{1}{x}\right)}{x \cdot {n}^{2}}\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\sqrt[3]{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)}} \cdot \sqrt[3]{\mathsf{fma}\left({\left(\sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1}\right)}^{\left(\frac{1}{n}\right)}, {\left(\sqrt[3]{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) + {\left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right)}^{\left(\frac{1}{n}\right)} \cdot \left(\left(-{\left(\sqrt[3]{x}\right)}^{\left(\frac{1}{n}\right)}\right) + {\left(\sqrt[3]{x}\right)}^{\left(\frac{1}{n}\right)}\right)}\right) \cdot \sqrt[3]{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)}}\\
\end{array}double f(double x, double n) {
double r100959 = x;
double r100960 = 1.0;
double r100961 = r100959 + r100960;
double r100962 = n;
double r100963 = r100960 / r100962;
double r100964 = pow(r100961, r100963);
double r100965 = pow(r100959, r100963);
double r100966 = r100964 - r100965;
return r100966;
}
double f(double x, double n) {
double r100967 = 1.0;
double r100968 = n;
double r100969 = r100967 / r100968;
double r100970 = -7.745650381978236e-30;
bool r100971 = r100969 <= r100970;
double r100972 = x;
double r100973 = r100972 + r100967;
double r100974 = pow(r100973, r100969);
double r100975 = sqrt(r100972);
double r100976 = 2.0;
double r100977 = r100976 * r100969;
double r100978 = pow(r100975, r100977);
double r100979 = r100974 - r100978;
double r100980 = pow(r100975, r100969);
double r100981 = -r100980;
double r100982 = fma(r100980, r100981, r100978);
double r100983 = r100979 + r100982;
double r100984 = cbrt(r100983);
double r100985 = pow(r100972, r100969);
double r100986 = r100974 - r100985;
double r100987 = cbrt(r100986);
double r100988 = r100984 * r100987;
double r100989 = sqrt(r100973);
double r100990 = pow(r100989, r100969);
double r100991 = r100969 / r100976;
double r100992 = pow(r100972, r100991);
double r100993 = r100990 + r100992;
double r100994 = r100990 - r100992;
double r100995 = r100993 * r100994;
double r100996 = cbrt(r100995);
double r100997 = r100988 * r100996;
double r100998 = 3.6323271639935607e-11;
bool r100999 = r100969 <= r100998;
double r101000 = 1.0;
double r101001 = r100972 * r100968;
double r101002 = r101000 / r101001;
double r101003 = 0.5;
double r101004 = pow(r100972, r100976);
double r101005 = r101004 * r100968;
double r101006 = r101000 / r101005;
double r101007 = r101000 / r100972;
double r101008 = log(r101007);
double r101009 = pow(r100968, r100976);
double r101010 = r100972 * r101009;
double r101011 = r101008 / r101010;
double r101012 = r100967 * r101011;
double r101013 = fma(r101003, r101006, r101012);
double r101014 = -r101013;
double r101015 = fma(r100967, r101002, r101014);
double r101016 = cbrt(r100973);
double r101017 = r101016 * r101016;
double r101018 = pow(r101017, r100969);
double r101019 = pow(r101016, r100969);
double r101020 = cbrt(r100972);
double r101021 = pow(r101020, r100969);
double r101022 = r101020 * r101020;
double r101023 = pow(r101022, r100969);
double r101024 = r101021 * r101023;
double r101025 = -r101024;
double r101026 = fma(r101018, r101019, r101025);
double r101027 = -r101021;
double r101028 = r101027 + r101021;
double r101029 = r101023 * r101028;
double r101030 = r101026 + r101029;
double r101031 = cbrt(r101030);
double r101032 = r100987 * r101031;
double r101033 = r101032 * r100987;
double r101034 = r100999 ? r101015 : r101033;
double r101035 = r100971 ? r100997 : r101034;
return r101035;
}



Bits error versus x



Bits error versus n
if (/ 1.0 n) < -7.745650381978236e-30Initial program 7.6
rmApplied add-cube-cbrt7.6
rmApplied add-sqr-sqrt7.6
Applied unpow-prod-down7.6
Applied *-un-lft-identity7.6
Applied unpow-prod-down7.6
Applied prod-diff7.6
Simplified7.6
Simplified7.6
rmApplied sqr-pow7.6
Applied add-sqr-sqrt7.6
Applied unpow-prod-down7.6
Applied difference-of-squares7.6
if -7.745650381978236e-30 < (/ 1.0 n) < 3.6323271639935607e-11Initial program 44.9
Taylor expanded around inf 32.4
Simplified32.4
if 3.6323271639935607e-11 < (/ 1.0 n) Initial program 7.4
rmApplied add-cube-cbrt7.4
rmApplied add-cube-cbrt7.4
Applied unpow-prod-down7.4
Applied add-cube-cbrt7.4
Applied unpow-prod-down7.4
Applied prod-diff7.4
Simplified7.4
Final simplification24.4
herbie shell --seed 2020062 +o rules:numerics
(FPCore (x n)
:name "2nthrt (problem 3.4.6)"
:precision binary64
(- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))))