Average Error: 32.7 → 23.5
Time: 22.9s
Precision: binary64
\[{\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)}\]
\[\begin{array}{l} \mathbf{if}\;\frac{1}{n} \le -18.09077906127504 \lor \neg \left(\frac{1}{n} \le 0.001178309117642572\right):\\ \;\;\;\;{\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{1}{x}}{\sqrt[3]{n} \cdot \sqrt[3]{n}} \cdot \frac{1}{\sqrt[3]{n}}\\ \end{array}\]
{\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)}
\begin{array}{l}
\mathbf{if}\;\frac{1}{n} \le -18.09077906127504 \lor \neg \left(\frac{1}{n} \le 0.001178309117642572\right):\\
\;\;\;\;{\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)}\\

\mathbf{else}:\\
\;\;\;\;\frac{\frac{1}{x}}{\sqrt[3]{n} \cdot \sqrt[3]{n}} \cdot \frac{1}{\sqrt[3]{n}}\\

\end{array}
double code(double x, double n) {
	return ((double) (((double) pow(((double) (x + 1.0)), (1.0 / n))) - ((double) pow(x, (1.0 / n)))));
}
double code(double x, double n) {
	double VAR;
	if ((((1.0 / n) <= -18.090779061275043) || !((1.0 / n) <= 0.0011783091176425717))) {
		VAR = ((double) (((double) pow(((double) (x + 1.0)), (1.0 / n))) - ((double) pow(x, (1.0 / n)))));
	} else {
		VAR = ((double) (((1.0 / x) / ((double) (((double) cbrt(n)) * ((double) cbrt(n))))) * (1.0 / ((double) cbrt(n)))));
	}
	return VAR;
}

Error

Bits error versus x

Bits error versus n

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Split input into 2 regimes
  2. if (/ 1.0 n) < -18.09077906127504 or 0.001178309117642572 < (/ 1.0 n)

    1. Initial program 1.8

      \[{\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)}\]

    if -18.09077906127504 < (/ 1.0 n) < 0.001178309117642572

    1. Initial program 44.4

      \[{\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)}\]
    2. Taylor expanded around -inf 64.0

      \[\leadsto \color{blue}{\left(1 \cdot \frac{1}{x \cdot n} + \left(0.5 \cdot \frac{{\left(\log \left(-1\right)\right)}^{2}}{{n}^{2}} + \left(1 \cdot \frac{\log -1 \cdot \log \left(\frac{-1}{x}\right)}{{n}^{2}} + 1 \cdot \frac{\log \left(-1\right)}{n}\right)\right)\right) - \left(1 \cdot \frac{\log -1}{n} + \left(0.5 \cdot \frac{{\left(\log -1\right)}^{2}}{{n}^{2}} + 1 \cdot \frac{\log \left(-1\right) \cdot \log \left(\frac{-1}{x}\right)}{{n}^{2}}\right)\right)}\]
    3. Simplified32.2

      \[\leadsto \color{blue}{\frac{1}{x \cdot n}}\]
    4. Using strategy rm
    5. Applied *-un-lft-identity32.2

      \[\leadsto \frac{\color{blue}{1 \cdot 1}}{x \cdot n}\]
    6. Applied times-frac31.6

      \[\leadsto \color{blue}{\frac{1}{x} \cdot \frac{1}{n}}\]
    7. Using strategy rm
    8. Applied add-cube-cbrt31.8

      \[\leadsto \frac{1}{x} \cdot \frac{1}{\color{blue}{\left(\sqrt[3]{n} \cdot \sqrt[3]{n}\right) \cdot \sqrt[3]{n}}}\]
    9. Applied *-un-lft-identity31.8

      \[\leadsto \frac{1}{x} \cdot \frac{\color{blue}{1 \cdot 1}}{\left(\sqrt[3]{n} \cdot \sqrt[3]{n}\right) \cdot \sqrt[3]{n}}\]
    10. Applied times-frac31.8

      \[\leadsto \frac{1}{x} \cdot \color{blue}{\left(\frac{1}{\sqrt[3]{n} \cdot \sqrt[3]{n}} \cdot \frac{1}{\sqrt[3]{n}}\right)}\]
    11. Applied associate-*r*31.8

      \[\leadsto \color{blue}{\left(\frac{1}{x} \cdot \frac{1}{\sqrt[3]{n} \cdot \sqrt[3]{n}}\right) \cdot \frac{1}{\sqrt[3]{n}}}\]
    12. Simplified31.8

      \[\leadsto \color{blue}{\frac{\frac{1}{x}}{\sqrt[3]{n} \cdot \sqrt[3]{n}}} \cdot \frac{1}{\sqrt[3]{n}}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification23.5

    \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{1}{n} \le -18.09077906127504 \lor \neg \left(\frac{1}{n} \le 0.001178309117642572\right):\\ \;\;\;\;{\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{1}{x}}{\sqrt[3]{n} \cdot \sqrt[3]{n}} \cdot \frac{1}{\sqrt[3]{n}}\\ \end{array}\]

Reproduce

herbie shell --seed 2020182 
(FPCore (x n)
  :name "2nthrt (problem 3.4.6)"
  :precision binary64
  (- (pow (+ x 1.0) (/ 1.0 n)) (pow x (/ 1.0 n))))