Average Error: 29.9 → 9.2
Time: 14.4s
Precision: 64
\[\sqrt[3]{x + 1} - \sqrt[3]{x}\]
\[\begin{array}{l} \mathbf{if}\;x \le -0.9941877870754349810766825612518005073071:\\ \;\;\;\;\left(\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}}}\right) + \left(\sqrt[3]{x} - \sqrt[3]{x}\right)\\ \mathbf{elif}\;x \le 8.802284754780285007413377640350660158219 \cdot 10^{-6}:\\ \;\;\;\;\mathsf{fma}\left(\mathsf{fma}\left(x, 0.3333333333333333148296162562473909929395, 1\right), \sqrt[3]{1}, {x}^{2} \cdot \left(\sqrt[3]{1} \cdot 0.05555555555555555247160270937456516548991 - \sqrt[3]{\frac{1}{{1}^{5}}} \cdot \frac{1}{6}\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 -0.9941877870754349810766825612518005073071:\\
\;\;\;\;\left(\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}}}\right) + \left(\sqrt[3]{x} - \sqrt[3]{x}\right)\\

\mathbf{elif}\;x \le 8.802284754780285007413377640350660158219 \cdot 10^{-6}:\\
\;\;\;\;\mathsf{fma}\left(\mathsf{fma}\left(x, 0.3333333333333333148296162562473909929395, 1\right), \sqrt[3]{1}, {x}^{2} \cdot \left(\sqrt[3]{1} \cdot 0.05555555555555555247160270937456516548991 - \sqrt[3]{\frac{1}{{1}^{5}}} \cdot \frac{1}{6}\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 r53373 = x;
        double r53374 = 1.0;
        double r53375 = r53373 + r53374;
        double r53376 = cbrt(r53375);
        double r53377 = cbrt(r53373);
        double r53378 = r53376 - r53377;
        return r53378;
}

double f(double x) {
        double r53379 = x;
        double r53380 = -0.994187787075435;
        bool r53381 = r53379 <= r53380;
        double r53382 = 0.3333333333333333;
        double r53383 = 1.0;
        double r53384 = 2.0;
        double r53385 = pow(r53379, r53384);
        double r53386 = r53383 / r53385;
        double r53387 = cbrt(r53386);
        double r53388 = 0.06172839506172839;
        double r53389 = 8.0;
        double r53390 = pow(r53379, r53389);
        double r53391 = r53383 / r53390;
        double r53392 = cbrt(r53391);
        double r53393 = r53388 * r53392;
        double r53394 = fma(r53382, r53387, r53393);
        double r53395 = 0.1111111111111111;
        double r53396 = 5.0;
        double r53397 = pow(r53379, r53396);
        double r53398 = r53383 / r53397;
        double r53399 = cbrt(r53398);
        double r53400 = r53395 * r53399;
        double r53401 = r53394 - r53400;
        double r53402 = cbrt(r53379);
        double r53403 = r53402 - r53402;
        double r53404 = r53401 + r53403;
        double r53405 = 8.802284754780285e-06;
        bool r53406 = r53379 <= r53405;
        double r53407 = fma(r53379, r53382, r53383);
        double r53408 = 1.0;
        double r53409 = cbrt(r53408);
        double r53410 = 0.05555555555555555;
        double r53411 = r53409 * r53410;
        double r53412 = pow(r53408, r53396);
        double r53413 = r53383 / r53412;
        double r53414 = cbrt(r53413);
        double r53415 = 0.16666666666666666;
        double r53416 = r53414 * r53415;
        double r53417 = r53411 - r53416;
        double r53418 = r53385 * r53417;
        double r53419 = fma(r53407, r53409, r53418);
        double r53420 = r53419 - r53402;
        double r53421 = r53408 + r53379;
        double r53422 = cbrt(r53421);
        double r53423 = r53422 + r53402;
        double r53424 = r53422 * r53423;
        double r53425 = 0.6666666666666666;
        double r53426 = pow(r53379, r53425);
        double r53427 = r53424 + r53426;
        double r53428 = r53408 / r53427;
        double r53429 = r53406 ? r53420 : r53428;
        double r53430 = r53381 ? r53404 : r53429;
        return r53430;
}

Error

Bits error versus x

Derivation

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

    1. Initial program 59.4

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

      \[\leadsto \sqrt[3]{x + 1} - \color{blue}{\left(\sqrt[3]{\sqrt[3]{x}} \cdot \sqrt[3]{\sqrt[3]{x}}\right) \cdot \sqrt[3]{\sqrt[3]{x}}}\]
    4. Using strategy rm
    5. Applied add-cube-cbrt59.5

      \[\leadsto \sqrt[3]{\color{blue}{\left(\sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1}\right) \cdot \sqrt[3]{x + 1}}} - \left(\sqrt[3]{\sqrt[3]{x}} \cdot \sqrt[3]{\sqrt[3]{x}}\right) \cdot \sqrt[3]{\sqrt[3]{x}}\]
    6. Applied cbrt-prod59.6

      \[\leadsto \color{blue}{\sqrt[3]{\sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1}} \cdot \sqrt[3]{\sqrt[3]{x + 1}}} - \left(\sqrt[3]{\sqrt[3]{x}} \cdot \sqrt[3]{\sqrt[3]{x}}\right) \cdot \sqrt[3]{\sqrt[3]{x}}\]
    7. Applied prod-diff59.6

      \[\leadsto \color{blue}{\mathsf{fma}\left(\sqrt[3]{\sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1}}, \sqrt[3]{\sqrt[3]{x + 1}}, -\sqrt[3]{\sqrt[3]{x}} \cdot \left(\sqrt[3]{\sqrt[3]{x}} \cdot \sqrt[3]{\sqrt[3]{x}}\right)\right) + \mathsf{fma}\left(-\sqrt[3]{\sqrt[3]{x}}, \sqrt[3]{\sqrt[3]{x}} \cdot \sqrt[3]{\sqrt[3]{x}}, \sqrt[3]{\sqrt[3]{x}} \cdot \left(\sqrt[3]{\sqrt[3]{x}} \cdot \sqrt[3]{\sqrt[3]{x}}\right)\right)}\]
    8. Simplified60.0

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

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

      \[\leadsto \color{blue}{\left(\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}}\right)} + \left(\sqrt[3]{x} - \sqrt[3]{x}\right)\]
    11. Simplified31.9

      \[\leadsto \color{blue}{\left(\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}}}\right)} + \left(\sqrt[3]{x} - \sqrt[3]{x}\right)\]

    if -0.994187787075435 < x < 8.802284754780285e-06

    1. Initial program 0.0

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

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

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

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

    if 8.802284754780285e-06 < x

    1. Initial program 58.6

      \[\sqrt[3]{x + 1} - \sqrt[3]{x}\]
    2. Using strategy rm
    3. Applied flip3--58.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.4

      \[\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 simplification9.2

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le -0.9941877870754349810766825612518005073071:\\ \;\;\;\;\left(\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}}}\right) + \left(\sqrt[3]{x} - \sqrt[3]{x}\right)\\ \mathbf{elif}\;x \le 8.802284754780285007413377640350660158219 \cdot 10^{-6}:\\ \;\;\;\;\mathsf{fma}\left(\mathsf{fma}\left(x, 0.3333333333333333148296162562473909929395, 1\right), \sqrt[3]{1}, {x}^{2} \cdot \left(\sqrt[3]{1} \cdot 0.05555555555555555247160270937456516548991 - \sqrt[3]{\frac{1}{{1}^{5}}} \cdot \frac{1}{6}\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 2019212 +o rules:numerics
(FPCore (x)
  :name "2cbrt (problem 3.3.4)"
  :precision binary64
  (- (cbrt (+ x 1)) (cbrt x)))