{\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.4934594501765746 \cdot 10^{-7}:\\
\;\;\;\;\log \left(e^{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)}}\right)\\
\mathbf{elif}\;\frac{1}{n} \le 1.780710866682253 \cdot 10^{-5}:\\
\;\;\;\;\frac{\frac{1}{n}}{x} - \left(\frac{\frac{0.5}{n}}{{x}^{2}} - \frac{1 \cdot \log x}{x \cdot {n}^{2}}\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{{\left(x + 1\right)}^{\left(2 \cdot \frac{1}{n}\right)} - {x}^{\left(2 \cdot \frac{1}{n}\right)}}{{x}^{\left(\frac{1}{n}\right)} + {\left(x + 1\right)}^{\left(\frac{1}{n}\right)}}\\
\end{array}double f(double x, double n) {
double r58095 = x;
double r58096 = 1.0;
double r58097 = r58095 + r58096;
double r58098 = n;
double r58099 = r58096 / r58098;
double r58100 = pow(r58097, r58099);
double r58101 = pow(r58095, r58099);
double r58102 = r58100 - r58101;
return r58102;
}
double f(double x, double n) {
double r58103 = 1.0;
double r58104 = n;
double r58105 = r58103 / r58104;
double r58106 = -2.4934594501765746e-07;
bool r58107 = r58105 <= r58106;
double r58108 = x;
double r58109 = r58108 + r58103;
double r58110 = pow(r58109, r58105);
double r58111 = pow(r58108, r58105);
double r58112 = r58110 - r58111;
double r58113 = exp(r58112);
double r58114 = log(r58113);
double r58115 = 1.780710866682253e-05;
bool r58116 = r58105 <= r58115;
double r58117 = r58105 / r58108;
double r58118 = 0.5;
double r58119 = r58118 / r58104;
double r58120 = 2.0;
double r58121 = pow(r58108, r58120);
double r58122 = r58119 / r58121;
double r58123 = log(r58108);
double r58124 = r58103 * r58123;
double r58125 = pow(r58104, r58120);
double r58126 = r58108 * r58125;
double r58127 = r58124 / r58126;
double r58128 = r58122 - r58127;
double r58129 = r58117 - r58128;
double r58130 = r58120 * r58105;
double r58131 = pow(r58109, r58130);
double r58132 = pow(r58108, r58130);
double r58133 = r58131 - r58132;
double r58134 = r58111 + r58110;
double r58135 = r58133 / r58134;
double r58136 = r58116 ? r58129 : r58135;
double r58137 = r58107 ? r58114 : r58136;
return r58137;
}



Bits error versus x



Bits error versus n
Results
if (/ 1.0 n) < -2.4934594501765746e-07Initial program 1.6
rmApplied add-log-exp1.9
Applied add-log-exp1.8
Applied diff-log1.8
Simplified1.8
if -2.4934594501765746e-07 < (/ 1.0 n) < 1.780710866682253e-05Initial program 44.8
rmApplied add-log-exp44.8
Taylor expanded around inf 32.0
Simplified31.4
if 1.780710866682253e-05 < (/ 1.0 n) Initial program 5.1
rmApplied add-log-exp5.2
rmApplied flip--5.2
Simplified5.1
Simplified5.1
Final simplification23.5
herbie shell --seed 2020064
(FPCore (x n)
:name "2nthrt (problem 3.4.6)"
:precision binary64
(- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))))