{\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)}\begin{array}{l}
\mathbf{if}\;\frac{1}{n} \le -2.201151584268497640689698496471230740497 \cdot 10^{-12}:\\
\;\;\;\;\mathsf{fma}\left(-{\left(\sqrt[3]{{x}^{\left(\sqrt[3]{\frac{1}{n}} \cdot \sqrt[3]{\frac{1}{n}}\right)}}\right)}^{\left(\sqrt[3]{\frac{1}{n}}\right)}, {\left(\sqrt[3]{{x}^{\left(\sqrt[3]{\frac{1}{n}} \cdot \sqrt[3]{\frac{1}{n}}\right)}} \cdot \sqrt[3]{{x}^{\left(\sqrt[3]{\frac{1}{n}} \cdot \sqrt[3]{\frac{1}{n}}\right)}}\right)}^{\left(\sqrt[3]{\frac{1}{n}}\right)}, {\left(\sqrt[3]{{x}^{\left(\sqrt[3]{\frac{1}{n}} \cdot \sqrt[3]{\frac{1}{n}}\right)}}\right)}^{\left(\sqrt[3]{\frac{1}{n}}\right)} \cdot {\left(\sqrt[3]{{x}^{\left(\sqrt[3]{\frac{1}{n}} \cdot \sqrt[3]{\frac{1}{n}}\right)}} \cdot \sqrt[3]{{x}^{\left(\sqrt[3]{\frac{1}{n}} \cdot \sqrt[3]{\frac{1}{n}}\right)}}\right)}^{\left(\sqrt[3]{\frac{1}{n}}\right)}\right) + \left({\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - {\left(\sqrt[3]{{x}^{\left(\sqrt[3]{\frac{1}{n}} \cdot \sqrt[3]{\frac{1}{n}}\right)}}\right)}^{\left(\sqrt[3]{\frac{1}{n}}\right)} \cdot {\left(\sqrt[3]{{x}^{\left(\sqrt[3]{\frac{1}{n}} \cdot \sqrt[3]{\frac{1}{n}}\right)}} \cdot \sqrt[3]{{x}^{\left(\sqrt[3]{\frac{1}{n}} \cdot \sqrt[3]{\frac{1}{n}}\right)}}\right)}^{\left(\sqrt[3]{\frac{1}{n}}\right)}\right)\\
\mathbf{elif}\;\frac{1}{n} \le 2.828861285269525417292226755937066285203 \cdot 10^{-16}:\\
\;\;\;\;\left(\frac{\frac{1}{x}}{n} - \frac{\frac{0.5}{n}}{x \cdot x}\right) - \frac{-1}{x} \cdot \frac{\log x}{n \cdot n}\\
\mathbf{else}:\\
\;\;\;\;\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) \cdot \sqrt[3]{e^{\log \left(\sqrt{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)}} - \sqrt{{x}^{\left(\frac{1}{n}\right)}}\right)} \cdot \left(\sqrt{{x}^{\left(\frac{1}{n}\right)}} + \sqrt{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)}}\right)}\\
\end{array}double f(double x, double n) {
double r3002184 = x;
double r3002185 = 1.0;
double r3002186 = r3002184 + r3002185;
double r3002187 = n;
double r3002188 = r3002185 / r3002187;
double r3002189 = pow(r3002186, r3002188);
double r3002190 = pow(r3002184, r3002188);
double r3002191 = r3002189 - r3002190;
return r3002191;
}
double f(double x, double n) {
double r3002192 = 1.0;
double r3002193 = n;
double r3002194 = r3002192 / r3002193;
double r3002195 = -2.2011515842684976e-12;
bool r3002196 = r3002194 <= r3002195;
double r3002197 = x;
double r3002198 = cbrt(r3002194);
double r3002199 = r3002198 * r3002198;
double r3002200 = pow(r3002197, r3002199);
double r3002201 = cbrt(r3002200);
double r3002202 = pow(r3002201, r3002198);
double r3002203 = -r3002202;
double r3002204 = r3002201 * r3002201;
double r3002205 = pow(r3002204, r3002198);
double r3002206 = r3002202 * r3002205;
double r3002207 = fma(r3002203, r3002205, r3002206);
double r3002208 = r3002197 + r3002192;
double r3002209 = pow(r3002208, r3002194);
double r3002210 = r3002209 - r3002206;
double r3002211 = r3002207 + r3002210;
double r3002212 = 2.8288612852695254e-16;
bool r3002213 = r3002194 <= r3002212;
double r3002214 = r3002192 / r3002197;
double r3002215 = r3002214 / r3002193;
double r3002216 = 0.5;
double r3002217 = r3002216 / r3002193;
double r3002218 = r3002197 * r3002197;
double r3002219 = r3002217 / r3002218;
double r3002220 = r3002215 - r3002219;
double r3002221 = -r3002192;
double r3002222 = r3002221 / r3002197;
double r3002223 = log(r3002197);
double r3002224 = r3002193 * r3002193;
double r3002225 = r3002223 / r3002224;
double r3002226 = r3002222 * r3002225;
double r3002227 = r3002220 - r3002226;
double r3002228 = pow(r3002197, r3002194);
double r3002229 = r3002209 - r3002228;
double r3002230 = cbrt(r3002229);
double r3002231 = r3002230 * r3002230;
double r3002232 = sqrt(r3002209);
double r3002233 = sqrt(r3002228);
double r3002234 = r3002232 - r3002233;
double r3002235 = log(r3002234);
double r3002236 = exp(r3002235);
double r3002237 = r3002233 + r3002232;
double r3002238 = r3002236 * r3002237;
double r3002239 = cbrt(r3002238);
double r3002240 = r3002231 * r3002239;
double r3002241 = r3002213 ? r3002227 : r3002240;
double r3002242 = r3002196 ? r3002211 : r3002241;
return r3002242;
}



Bits error versus x



Bits error versus n
if (/ 1.0 n) < -2.2011515842684976e-12Initial program 1.5
rmApplied add-cube-cbrt1.5
Applied pow-unpow1.5
rmApplied add-cube-cbrt1.5
Applied unpow-prod-down1.5
Applied *-un-lft-identity1.5
Applied unpow-prod-down1.5
Applied prod-diff1.5
Simplified1.5
if -2.2011515842684976e-12 < (/ 1.0 n) < 2.8288612852695254e-16Initial program 45.2
Taylor expanded around inf 32.1
Simplified31.5
if 2.8288612852695254e-16 < (/ 1.0 n) Initial program 27.0
rmApplied add-cube-cbrt27.0
rmApplied add-sqr-sqrt27.0
Applied add-sqr-sqrt27.0
Applied difference-of-squares27.0
rmApplied add-exp-log27.0
Final simplification21.9
herbie shell --seed 2019170 +o rules:numerics
(FPCore (x n)
:name "2nthrt (problem 3.4.6)"
(- (pow (+ x 1.0) (/ 1.0 n)) (pow x (/ 1.0 n))))