Average Error: 29.6 → 8.8
Time: 18.8s
Precision: 64
\[\sqrt[3]{x + 1} - \sqrt[3]{x}\]
\[\begin{array}{l} \mathbf{if}\;x \le -3603.022939715182474174071103334426879883:\\ \;\;\;\;\mathsf{fma}\left(0.3333333333333333148296162562473909929395, \sqrt[3]{\frac{1}{{x}^{2}}}, \sqrt[3]{\frac{1}{{x}^{8}}} \cdot 0.06172839506172839163511412152729462832212\right) - \sqrt[3]{\frac{1}{{x}^{5}}} \cdot 0.1111111111111111049432054187491303309798\\ \mathbf{elif}\;x \le 3.197944084307661311537829273987654232769 \cdot 10^{-4}:\\ \;\;\;\;\sqrt[3]{\sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1}} \cdot \sqrt[3]{\sqrt[3]{x + 1}} + \left(-\left(\sqrt[3]{\sqrt[3]{x}} \cdot \sqrt[3]{\sqrt[3]{x}}\right) \cdot \sqrt[3]{\sqrt[3]{x}}\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{\mathsf{fma}\left(\sqrt[3]{1 + x} + \sqrt[3]{x}, \sqrt[3]{1 + x}, {x}^{\frac{2}{3}}\right)}\\ \end{array}\]
\sqrt[3]{x + 1} - \sqrt[3]{x}
\begin{array}{l}
\mathbf{if}\;x \le -3603.022939715182474174071103334426879883:\\
\;\;\;\;\mathsf{fma}\left(0.3333333333333333148296162562473909929395, \sqrt[3]{\frac{1}{{x}^{2}}}, \sqrt[3]{\frac{1}{{x}^{8}}} \cdot 0.06172839506172839163511412152729462832212\right) - \sqrt[3]{\frac{1}{{x}^{5}}} \cdot 0.1111111111111111049432054187491303309798\\

\mathbf{elif}\;x \le 3.197944084307661311537829273987654232769 \cdot 10^{-4}:\\
\;\;\;\;\sqrt[3]{\sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1}} \cdot \sqrt[3]{\sqrt[3]{x + 1}} + \left(-\left(\sqrt[3]{\sqrt[3]{x}} \cdot \sqrt[3]{\sqrt[3]{x}}\right) \cdot \sqrt[3]{\sqrt[3]{x}}\right)\\

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

\end{array}
double f(double x) {
        double r41479 = x;
        double r41480 = 1.0;
        double r41481 = r41479 + r41480;
        double r41482 = cbrt(r41481);
        double r41483 = cbrt(r41479);
        double r41484 = r41482 - r41483;
        return r41484;
}

double f(double x) {
        double r41485 = x;
        double r41486 = -3603.0229397151825;
        bool r41487 = r41485 <= r41486;
        double r41488 = 0.3333333333333333;
        double r41489 = 1.0;
        double r41490 = 2.0;
        double r41491 = pow(r41485, r41490);
        double r41492 = r41489 / r41491;
        double r41493 = cbrt(r41492);
        double r41494 = 8.0;
        double r41495 = pow(r41485, r41494);
        double r41496 = r41489 / r41495;
        double r41497 = cbrt(r41496);
        double r41498 = 0.06172839506172839;
        double r41499 = r41497 * r41498;
        double r41500 = fma(r41488, r41493, r41499);
        double r41501 = 5.0;
        double r41502 = pow(r41485, r41501);
        double r41503 = r41489 / r41502;
        double r41504 = cbrt(r41503);
        double r41505 = 0.1111111111111111;
        double r41506 = r41504 * r41505;
        double r41507 = r41500 - r41506;
        double r41508 = 0.00031979440843076613;
        bool r41509 = r41485 <= r41508;
        double r41510 = 1.0;
        double r41511 = r41485 + r41510;
        double r41512 = cbrt(r41511);
        double r41513 = r41512 * r41512;
        double r41514 = cbrt(r41513);
        double r41515 = cbrt(r41512);
        double r41516 = r41514 * r41515;
        double r41517 = cbrt(r41485);
        double r41518 = cbrt(r41517);
        double r41519 = r41518 * r41518;
        double r41520 = r41519 * r41518;
        double r41521 = -r41520;
        double r41522 = r41516 + r41521;
        double r41523 = r41510 + r41485;
        double r41524 = cbrt(r41523);
        double r41525 = r41524 + r41517;
        double r41526 = 0.6666666666666666;
        double r41527 = pow(r41485, r41526);
        double r41528 = fma(r41525, r41524, r41527);
        double r41529 = r41510 / r41528;
        double r41530 = r41509 ? r41522 : r41529;
        double r41531 = r41487 ? r41507 : r41530;
        return r41531;
}

Error

Bits error versus x

Derivation

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

    1. Initial program 60.0

      \[\sqrt[3]{x + 1} - \sqrt[3]{x}\]
    2. Taylor expanded around inf 45.2

      \[\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}}}\]
    3. Simplified31.1

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

    if -3603.0229397151825 < x < 0.00031979440843076613

    1. Initial program 0.1

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

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

      \[\leadsto \color{blue}{\sqrt[3]{\sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1}} \cdot \sqrt[3]{\sqrt[3]{x + 1}}} - \sqrt[3]{x}\]
    5. Applied fma-neg0.1

      \[\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]{x}\right)}\]
    6. Using strategy rm
    7. Applied add-cube-cbrt0.1

      \[\leadsto \mathsf{fma}\left(\sqrt[3]{\sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1}}, \sqrt[3]{\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}}}\right)\]
    8. Using strategy rm
    9. Applied fma-udef0.1

      \[\leadsto \color{blue}{\sqrt[3]{\sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1}} \cdot \sqrt[3]{\sqrt[3]{x + 1}} + \left(-\left(\sqrt[3]{\sqrt[3]{x}} \cdot \sqrt[3]{\sqrt[3]{x}}\right) \cdot \sqrt[3]{\sqrt[3]{x}}\right)}\]

    if 0.00031979440843076613 < x

    1. Initial program 58.8

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

      \[\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}{0 + 1}}{\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{0 + 1}{\color{blue}{\mathsf{fma}\left(\sqrt[3]{1 + x} + \sqrt[3]{x}, \sqrt[3]{1 + x}, {x}^{\frac{2}{3}}\right)}}\]
  3. Recombined 3 regimes into one program.
  4. Final simplification8.8

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

Reproduce

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