Average Error: 29.4 → 21.8
Time: 13.7s
Precision: 64
\[{\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)}\]
\[\begin{array}{l} \mathbf{if}\;\frac{1}{n} \le -9.817714860218690239555757049366309480065 \cdot 10^{-16} \lor \neg \left(\frac{1}{n} \le 0.01664836648483149911248446528588829096407\right):\\ \;\;\;\;{\left({\left(x + 1\right)}^{1}\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{1}{n}}{x}\\ \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 -9.817714860218690239555757049366309480065 \cdot 10^{-16} \lor \neg \left(\frac{1}{n} \le 0.01664836648483149911248446528588829096407\right):\\
\;\;\;\;{\left({\left(x + 1\right)}^{1}\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)}\\

\mathbf{else}:\\
\;\;\;\;\frac{\frac{1}{n}}{x}\\

\end{array}
double f(double x, double n) {
        double r83401 = x;
        double r83402 = 1.0;
        double r83403 = r83401 + r83402;
        double r83404 = n;
        double r83405 = r83402 / r83404;
        double r83406 = pow(r83403, r83405);
        double r83407 = pow(r83401, r83405);
        double r83408 = r83406 - r83407;
        return r83408;
}

double f(double x, double n) {
        double r83409 = 1.0;
        double r83410 = n;
        double r83411 = r83409 / r83410;
        double r83412 = -9.81771486021869e-16;
        bool r83413 = r83411 <= r83412;
        double r83414 = 0.0166483664848315;
        bool r83415 = r83411 <= r83414;
        double r83416 = !r83415;
        bool r83417 = r83413 || r83416;
        double r83418 = x;
        double r83419 = r83418 + r83409;
        double r83420 = pow(r83419, r83409);
        double r83421 = 1.0;
        double r83422 = r83421 / r83410;
        double r83423 = pow(r83420, r83422);
        double r83424 = pow(r83418, r83411);
        double r83425 = r83423 - r83424;
        double r83426 = r83411 / r83418;
        double r83427 = r83417 ? r83425 : r83426;
        return r83427;
}

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) < -9.81771486021869e-16 or 0.0166483664848315 < (/ 1.0 n)

    1. Initial program 8.8

      \[{\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)}\]
    2. Using strategy rm
    3. Applied div-inv8.8

      \[\leadsto {\left(x + 1\right)}^{\color{blue}{\left(1 \cdot \frac{1}{n}\right)}} - {x}^{\left(\frac{1}{n}\right)}\]
    4. Applied pow-unpow8.8

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

    if -9.81771486021869e-16 < (/ 1.0 n) < 0.0166483664848315

    1. Initial program 44.5

      \[{\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)}\]
    2. Using strategy rm
    3. Applied div-inv44.5

      \[\leadsto {\left(x + 1\right)}^{\color{blue}{\left(1 \cdot \frac{1}{n}\right)}} - {x}^{\left(\frac{1}{n}\right)}\]
    4. Applied pow-unpow44.5

      \[\leadsto \color{blue}{{\left({\left(x + 1\right)}^{1}\right)}^{\left(\frac{1}{n}\right)}} - {x}^{\left(\frac{1}{n}\right)}\]
    5. Taylor expanded around inf 37.7

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

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{1}{2}, \frac{{\left(\log \left({\left(\frac{1}{x}\right)}^{-1}\right)\right)}^{2}}{{n}^{2}}, \mathsf{fma}\left(1, \frac{1}{x \cdot n}, \mathsf{fma}\left(1, \frac{\log \left(\frac{1}{x}\right)}{n}, \frac{\log \left({\left(\frac{1}{x}\right)}^{-1}\right)}{n}\right)\right) - 0.5 \cdot \frac{{\left(\log \left(\frac{1}{x}\right)\right)}^{2}}{{n}^{2}}\right)}\]
    7. Taylor expanded around -inf 31.9

      \[\leadsto \color{blue}{\frac{1}{x \cdot n}}\]
    8. Simplified31.4

      \[\leadsto \color{blue}{\frac{\frac{1}{n}}{x}}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification21.8

    \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{1}{n} \le -9.817714860218690239555757049366309480065 \cdot 10^{-16} \lor \neg \left(\frac{1}{n} \le 0.01664836648483149911248446528588829096407\right):\\ \;\;\;\;{\left({\left(x + 1\right)}^{1}\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{1}{n}}{x}\\ \end{array}\]

Reproduce

herbie shell --seed 2019353 +o rules:numerics
(FPCore (x n)
  :name "2nthrt (problem 3.4.6)"
  :precision binary64
  (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))))