Average Error: 29.5 → 8.9
Time: 15.4s
Precision: 64
\[\sqrt[3]{x + 1} - \sqrt[3]{x}\]
\[\begin{array}{l} \mathbf{if}\;x \le -4127.440397266407671850174665451049804688:\\ \;\;\;\;\mathsf{fma}\left(0.3333333333333333148296162562473909929395, \sqrt[3]{\frac{1}{{x}^{2}}}, 0.06172839506172839163511412152729462832212 \cdot \sqrt[3]{\frac{1}{{x}^{8}}}\right) - 0.1111111111111111049432054187491303309798 \cdot \sqrt[3]{\frac{1}{{x}^{5}}}\\ \mathbf{elif}\;x \le 0.02838616193843989873868416395907843252644:\\ \;\;\;\;\frac{\sqrt[3]{{x}^{3} + {1}^{3}}}{\sqrt[3]{\mathsf{fma}\left(x, x, 1 \cdot \left(1 - x\right)\right)}} - \sqrt[3]{x}\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{\sqrt[3]{1 + x} \cdot \left(\sqrt[3]{1 + x} + \sqrt[3]{x}\right) + {x}^{\frac{2}{3}}}\\ \end{array}\]
\sqrt[3]{x + 1} - \sqrt[3]{x}
\begin{array}{l}
\mathbf{if}\;x \le -4127.440397266407671850174665451049804688:\\
\;\;\;\;\mathsf{fma}\left(0.3333333333333333148296162562473909929395, \sqrt[3]{\frac{1}{{x}^{2}}}, 0.06172839506172839163511412152729462832212 \cdot \sqrt[3]{\frac{1}{{x}^{8}}}\right) - 0.1111111111111111049432054187491303309798 \cdot \sqrt[3]{\frac{1}{{x}^{5}}}\\

\mathbf{elif}\;x \le 0.02838616193843989873868416395907843252644:\\
\;\;\;\;\frac{\sqrt[3]{{x}^{3} + {1}^{3}}}{\sqrt[3]{\mathsf{fma}\left(x, x, 1 \cdot \left(1 - x\right)\right)}} - \sqrt[3]{x}\\

\mathbf{else}:\\
\;\;\;\;\frac{1}{\sqrt[3]{1 + x} \cdot \left(\sqrt[3]{1 + x} + \sqrt[3]{x}\right) + {x}^{\frac{2}{3}}}\\

\end{array}
double f(double x) {
        double r62409 = x;
        double r62410 = 1.0;
        double r62411 = r62409 + r62410;
        double r62412 = cbrt(r62411);
        double r62413 = cbrt(r62409);
        double r62414 = r62412 - r62413;
        return r62414;
}

double f(double x) {
        double r62415 = x;
        double r62416 = -4127.440397266408;
        bool r62417 = r62415 <= r62416;
        double r62418 = 0.3333333333333333;
        double r62419 = 1.0;
        double r62420 = 2.0;
        double r62421 = pow(r62415, r62420);
        double r62422 = r62419 / r62421;
        double r62423 = cbrt(r62422);
        double r62424 = 0.06172839506172839;
        double r62425 = 8.0;
        double r62426 = pow(r62415, r62425);
        double r62427 = r62419 / r62426;
        double r62428 = cbrt(r62427);
        double r62429 = r62424 * r62428;
        double r62430 = fma(r62418, r62423, r62429);
        double r62431 = 0.1111111111111111;
        double r62432 = 5.0;
        double r62433 = pow(r62415, r62432);
        double r62434 = r62419 / r62433;
        double r62435 = cbrt(r62434);
        double r62436 = r62431 * r62435;
        double r62437 = r62430 - r62436;
        double r62438 = 0.0283861619384399;
        bool r62439 = r62415 <= r62438;
        double r62440 = 3.0;
        double r62441 = pow(r62415, r62440);
        double r62442 = 1.0;
        double r62443 = pow(r62442, r62440);
        double r62444 = r62441 + r62443;
        double r62445 = cbrt(r62444);
        double r62446 = r62442 - r62415;
        double r62447 = r62442 * r62446;
        double r62448 = fma(r62415, r62415, r62447);
        double r62449 = cbrt(r62448);
        double r62450 = r62445 / r62449;
        double r62451 = cbrt(r62415);
        double r62452 = r62450 - r62451;
        double r62453 = r62442 + r62415;
        double r62454 = cbrt(r62453);
        double r62455 = r62454 + r62451;
        double r62456 = r62454 * r62455;
        double r62457 = 0.6666666666666666;
        double r62458 = pow(r62415, r62457);
        double r62459 = r62456 + r62458;
        double r62460 = r62442 / r62459;
        double r62461 = r62439 ? r62452 : r62460;
        double r62462 = r62417 ? r62437 : r62461;
        return r62462;
}

Error

Bits error versus x

Derivation

  1. Split input into 3 regimes
  2. if x < -4127.440397266408

    1. Initial program 60.2

      \[\sqrt[3]{x + 1} - \sqrt[3]{x}\]
    2. Using strategy rm
    3. Applied add-cube-cbrt60.8

      \[\leadsto \color{blue}{\left(\sqrt[3]{\sqrt[3]{x + 1}} \cdot \sqrt[3]{\sqrt[3]{x + 1}}\right) \cdot \sqrt[3]{\sqrt[3]{x + 1}}} - \sqrt[3]{x}\]
    4. Taylor expanded around inf 44.7

      \[\leadsto \color{blue}{\left(0.3333333333333333148296162562473909929395 \cdot {\left(\frac{1}{{x}^{2}}\right)}^{\frac{1}{3}} + 0.06172839506172839163511412152729462832212 \cdot {\left(\frac{1}{{x}^{8}}\right)}^{\frac{1}{3}}\right) - 0.1111111111111111049432054187491303309798 \cdot {\left(\frac{1}{{x}^{5}}\right)}^{\frac{1}{3}}}\]
    5. Simplified31.4

      \[\leadsto \color{blue}{\mathsf{fma}\left(0.3333333333333333148296162562473909929395, \sqrt[3]{\frac{1}{{x}^{2}}}, 0.06172839506172839163511412152729462832212 \cdot \sqrt[3]{\frac{1}{{x}^{8}}}\right) - 0.1111111111111111049432054187491303309798 \cdot \sqrt[3]{\frac{1}{{x}^{5}}}}\]

    if -4127.440397266408 < x < 0.0283861619384399

    1. Initial program 0.1

      \[\sqrt[3]{x + 1} - \sqrt[3]{x}\]
    2. Using strategy rm
    3. Applied flip3-+0.1

      \[\leadsto \sqrt[3]{\color{blue}{\frac{{x}^{3} + {1}^{3}}{x \cdot x + \left(1 \cdot 1 - x \cdot 1\right)}}} - \sqrt[3]{x}\]
    4. Applied cbrt-div0.1

      \[\leadsto \color{blue}{\frac{\sqrt[3]{{x}^{3} + {1}^{3}}}{\sqrt[3]{x \cdot x + \left(1 \cdot 1 - x \cdot 1\right)}}} - \sqrt[3]{x}\]
    5. Simplified0.1

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

    if 0.0283861619384399 < x

    1. Initial program 59.6

      \[\sqrt[3]{x + 1} - \sqrt[3]{x}\]
    2. Using strategy rm
    3. Applied flip3--59.4

      \[\leadsto \color{blue}{\frac{{\left(\sqrt[3]{x + 1}\right)}^{3} - {\left(\sqrt[3]{x}\right)}^{3}}{\sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1} + \left(\sqrt[3]{x} \cdot \sqrt[3]{x} + \sqrt[3]{x + 1} \cdot \sqrt[3]{x}\right)}}\]
    4. Simplified1.0

      \[\leadsto \frac{\color{blue}{1 + 0}}{\sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1} + \left(\sqrt[3]{x} \cdot \sqrt[3]{x} + \sqrt[3]{x + 1} \cdot \sqrt[3]{x}\right)}\]
    5. Simplified4.5

      \[\leadsto \frac{1 + 0}{\color{blue}{\sqrt[3]{1 + x} \cdot \left(\sqrt[3]{1 + x} + \sqrt[3]{x}\right) + {x}^{\frac{2}{3}}}}\]
  3. Recombined 3 regimes into one program.
  4. Final simplification8.9

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le -4127.440397266407671850174665451049804688:\\ \;\;\;\;\mathsf{fma}\left(0.3333333333333333148296162562473909929395, \sqrt[3]{\frac{1}{{x}^{2}}}, 0.06172839506172839163511412152729462832212 \cdot \sqrt[3]{\frac{1}{{x}^{8}}}\right) - 0.1111111111111111049432054187491303309798 \cdot \sqrt[3]{\frac{1}{{x}^{5}}}\\ \mathbf{elif}\;x \le 0.02838616193843989873868416395907843252644:\\ \;\;\;\;\frac{\sqrt[3]{{x}^{3} + {1}^{3}}}{\sqrt[3]{\mathsf{fma}\left(x, x, 1 \cdot \left(1 - x\right)\right)}} - \sqrt[3]{x}\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{\sqrt[3]{1 + x} \cdot \left(\sqrt[3]{1 + x} + \sqrt[3]{x}\right) + {x}^{\frac{2}{3}}}\\ \end{array}\]

Reproduce

herbie shell --seed 2019208 +o rules:numerics
(FPCore (x)
  :name "2cbrt (problem 3.3.4)"
  :precision binary64
  (- (cbrt (+ x 1)) (cbrt x)))