Average Error: 29.0 → 22.3
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 -3401.1388374131657 \lor \neg \left(\frac{1}{n} \le 6.023242552113587 \cdot 10^{-6}\right):\\ \;\;\;\;\mathsf{fma}\left(\sqrt[3]{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)}} \cdot \sqrt[3]{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)}}, \sqrt[3]{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)}}, -{\left(\sqrt[3]{x}\right)}^{\left(\frac{1}{n}\right)} \cdot {\left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right)}^{\left(\frac{1}{n}\right)}\right) + {\left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right)}^{\left(\frac{1}{n}\right)} \cdot \left(\left(-{\left(\sqrt[3]{x}\right)}^{\left(\frac{1}{n}\right)}\right) + {\left(\sqrt[3]{x}\right)}^{\left(\frac{1}{n}\right)}\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(1, \frac{1}{x \cdot n}, -\mathsf{fma}\left(0.5, \frac{1}{{x}^{2} \cdot n}, 1 \cdot \frac{\log \left(\frac{1}{x}\right)}{x \cdot {n}^{2}}\right)\right)\\ \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 -3401.1388374131657 \lor \neg \left(\frac{1}{n} \le 6.023242552113587 \cdot 10^{-6}\right):\\
\;\;\;\;\mathsf{fma}\left(\sqrt[3]{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)}} \cdot \sqrt[3]{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)}}, \sqrt[3]{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)}}, -{\left(\sqrt[3]{x}\right)}^{\left(\frac{1}{n}\right)} \cdot {\left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right)}^{\left(\frac{1}{n}\right)}\right) + {\left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right)}^{\left(\frac{1}{n}\right)} \cdot \left(\left(-{\left(\sqrt[3]{x}\right)}^{\left(\frac{1}{n}\right)}\right) + {\left(\sqrt[3]{x}\right)}^{\left(\frac{1}{n}\right)}\right)\\

\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(1, \frac{1}{x \cdot n}, -\mathsf{fma}\left(0.5, \frac{1}{{x}^{2} \cdot n}, 1 \cdot \frac{\log \left(\frac{1}{x}\right)}{x \cdot {n}^{2}}\right)\right)\\

\end{array}
double f(double x, double n) {
        double r74103 = x;
        double r74104 = 1.0;
        double r74105 = r74103 + r74104;
        double r74106 = n;
        double r74107 = r74104 / r74106;
        double r74108 = pow(r74105, r74107);
        double r74109 = pow(r74103, r74107);
        double r74110 = r74108 - r74109;
        return r74110;
}

double f(double x, double n) {
        double r74111 = 1.0;
        double r74112 = n;
        double r74113 = r74111 / r74112;
        double r74114 = -3401.1388374131657;
        bool r74115 = r74113 <= r74114;
        double r74116 = 6.023242552113587e-06;
        bool r74117 = r74113 <= r74116;
        double r74118 = !r74117;
        bool r74119 = r74115 || r74118;
        double r74120 = x;
        double r74121 = r74120 + r74111;
        double r74122 = pow(r74121, r74113);
        double r74123 = cbrt(r74122);
        double r74124 = r74123 * r74123;
        double r74125 = cbrt(r74120);
        double r74126 = pow(r74125, r74113);
        double r74127 = r74125 * r74125;
        double r74128 = pow(r74127, r74113);
        double r74129 = r74126 * r74128;
        double r74130 = -r74129;
        double r74131 = fma(r74124, r74123, r74130);
        double r74132 = -r74126;
        double r74133 = r74132 + r74126;
        double r74134 = r74128 * r74133;
        double r74135 = r74131 + r74134;
        double r74136 = 1.0;
        double r74137 = r74120 * r74112;
        double r74138 = r74136 / r74137;
        double r74139 = 0.5;
        double r74140 = 2.0;
        double r74141 = pow(r74120, r74140);
        double r74142 = r74141 * r74112;
        double r74143 = r74136 / r74142;
        double r74144 = r74136 / r74120;
        double r74145 = log(r74144);
        double r74146 = pow(r74112, r74140);
        double r74147 = r74120 * r74146;
        double r74148 = r74145 / r74147;
        double r74149 = r74111 * r74148;
        double r74150 = fma(r74139, r74143, r74149);
        double r74151 = -r74150;
        double r74152 = fma(r74111, r74138, r74151);
        double r74153 = r74119 ? r74135 : r74152;
        return r74153;
}

Error

Bits error versus x

Bits error versus n

Derivation

  1. Split input into 2 regimes
  2. if (/ 1.0 n) < -3401.1388374131657 or 6.023242552113587e-06 < (/ 1.0 n)

    1. Initial program 7.8

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

      \[\leadsto {\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - {\color{blue}{\left(\left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right) \cdot \sqrt[3]{x}\right)}}^{\left(\frac{1}{n}\right)}\]
    4. Applied unpow-prod-down7.8

      \[\leadsto {\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - \color{blue}{{\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)}}\]
    5. Applied add-cube-cbrt7.8

      \[\leadsto \color{blue}{\left(\sqrt[3]{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)}} \cdot \sqrt[3]{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)}}\right) \cdot \sqrt[3]{{\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)}\]
    6. Applied prod-diff7.8

      \[\leadsto \color{blue}{\mathsf{fma}\left(\sqrt[3]{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)}} \cdot \sqrt[3]{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)}}, \sqrt[3]{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)}}, -{\left(\sqrt[3]{x}\right)}^{\left(\frac{1}{n}\right)} \cdot {\left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right)}^{\left(\frac{1}{n}\right)}\right) + \mathsf{fma}\left(-{\left(\sqrt[3]{x}\right)}^{\left(\frac{1}{n}\right)}, {\left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right)}^{\left(\frac{1}{n}\right)}, {\left(\sqrt[3]{x}\right)}^{\left(\frac{1}{n}\right)} \cdot {\left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right)}^{\left(\frac{1}{n}\right)}\right)}\]
    7. Simplified7.8

      \[\leadsto \mathsf{fma}\left(\sqrt[3]{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)}} \cdot \sqrt[3]{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)}}, \sqrt[3]{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)}}, -{\left(\sqrt[3]{x}\right)}^{\left(\frac{1}{n}\right)} \cdot {\left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right)}^{\left(\frac{1}{n}\right)}\right) + \color{blue}{{\left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right)}^{\left(\frac{1}{n}\right)} \cdot \left(\left(-{\left(\sqrt[3]{x}\right)}^{\left(\frac{1}{n}\right)}\right) + {\left(\sqrt[3]{x}\right)}^{\left(\frac{1}{n}\right)}\right)}\]

    if -3401.1388374131657 < (/ 1.0 n) < 6.023242552113587e-06

    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 32.9

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

      \[\leadsto \color{blue}{\mathsf{fma}\left(1, \frac{1}{x \cdot n}, -\mathsf{fma}\left(0.5, \frac{1}{{x}^{2} \cdot n}, 1 \cdot \frac{\log \left(\frac{1}{x}\right)}{x \cdot {n}^{2}}\right)\right)}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification22.3

    \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{1}{n} \le -3401.1388374131657 \lor \neg \left(\frac{1}{n} \le 6.023242552113587 \cdot 10^{-6}\right):\\ \;\;\;\;\mathsf{fma}\left(\sqrt[3]{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)}} \cdot \sqrt[3]{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)}}, \sqrt[3]{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)}}, -{\left(\sqrt[3]{x}\right)}^{\left(\frac{1}{n}\right)} \cdot {\left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right)}^{\left(\frac{1}{n}\right)}\right) + {\left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right)}^{\left(\frac{1}{n}\right)} \cdot \left(\left(-{\left(\sqrt[3]{x}\right)}^{\left(\frac{1}{n}\right)}\right) + {\left(\sqrt[3]{x}\right)}^{\left(\frac{1}{n}\right)}\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(1, \frac{1}{x \cdot n}, -\mathsf{fma}\left(0.5, \frac{1}{{x}^{2} \cdot n}, 1 \cdot \frac{\log \left(\frac{1}{x}\right)}{x \cdot {n}^{2}}\right)\right)\\ \end{array}\]

Reproduce

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