{\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.743722513168342 \cdot 10^{-08}:\\
\;\;\;\;{\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)}\\
\mathbf{elif}\;\frac{1}{n} \le 4.1441434979757814 \cdot 10^{-11}:\\
\;\;\;\;\frac{\log x}{x \cdot \left(n \cdot n\right)} + \mathsf{fma}\left(\frac{-1}{2}, \frac{\frac{\frac{1}{x}}{x}}{n}, \frac{\frac{1}{x}}{n}\right)\\
\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 r2608201 = x;
double r2608202 = 1.0;
double r2608203 = r2608201 + r2608202;
double r2608204 = n;
double r2608205 = r2608202 / r2608204;
double r2608206 = pow(r2608203, r2608205);
double r2608207 = pow(r2608201, r2608205);
double r2608208 = r2608206 - r2608207;
return r2608208;
}
double f(double x, double n) {
double r2608209 = 1.0;
double r2608210 = n;
double r2608211 = r2608209 / r2608210;
double r2608212 = -3.743722513168342e-08;
bool r2608213 = r2608211 <= r2608212;
double r2608214 = x;
double r2608215 = r2608214 + r2608209;
double r2608216 = pow(r2608215, r2608211);
double r2608217 = cbrt(r2608214);
double r2608218 = r2608217 * r2608217;
double r2608219 = pow(r2608218, r2608211);
double r2608220 = pow(r2608217, r2608211);
double r2608221 = r2608219 * r2608220;
double r2608222 = r2608216 - r2608221;
double r2608223 = 4.1441434979757814e-11;
bool r2608224 = r2608211 <= r2608223;
double r2608225 = log(r2608214);
double r2608226 = r2608210 * r2608210;
double r2608227 = r2608214 * r2608226;
double r2608228 = r2608225 / r2608227;
double r2608229 = -0.5;
double r2608230 = r2608209 / r2608214;
double r2608231 = r2608230 / r2608214;
double r2608232 = r2608231 / r2608210;
double r2608233 = r2608230 / r2608210;
double r2608234 = fma(r2608229, r2608232, r2608233);
double r2608235 = r2608228 + r2608234;
double r2608236 = log1p(r2608214);
double r2608237 = r2608236 / r2608210;
double r2608238 = exp(r2608237);
double r2608239 = pow(r2608214, r2608211);
double r2608240 = r2608238 - r2608239;
double r2608241 = r2608224 ? r2608235 : r2608240;
double r2608242 = r2608213 ? r2608222 : r2608241;
return r2608242;
}



Bits error versus x



Bits error versus n
if (/ 1 n) < -3.743722513168342e-08Initial program 0.8
rmApplied sqr-pow0.8
rmApplied insert-posit160.9
Simplified0.9
rmApplied add-cube-cbrt0.9
Applied unpow-prod-down0.9
Applied add-sqr-sqrt0.9
Applied prod-diff0.9
Simplified0.9
Taylor expanded around 0 0.9
if -3.743722513168342e-08 < (/ 1 n) < 4.1441434979757814e-11Initial program 44.8
rmApplied sqr-pow44.8
rmApplied insert-posit1644.9
Simplified44.9
Taylor expanded around inf 32.4
Simplified31.8
if 4.1441434979757814e-11 < (/ 1 n) Initial program 25.4
rmApplied add-exp-log25.4
Applied pow-exp25.4
Simplified2.5
Final simplification18.8
herbie shell --seed 2019168 +o rules:numerics
(FPCore (x n)
:name "2nthrt (problem 3.4.6)"
(- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))))