\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;
}



Bits error versus x
if x < -3603.0229397151825Initial program 60.0
Taylor expanded around inf 45.2
Simplified31.1
if -3603.0229397151825 < x < 0.00031979440843076613Initial program 0.1
rmApplied add-cube-cbrt0.1
Applied cbrt-prod0.1
Applied fma-neg0.1
rmApplied add-cube-cbrt0.1
rmApplied fma-udef0.1
if 0.00031979440843076613 < x Initial program 58.8
rmApplied flip3--58.7
Simplified1.0
Simplified4.4
Final simplification8.8
herbie shell --seed 2019326 +o rules:numerics
(FPCore (x)
:name "2cbrt (problem 3.3.4)"
:precision binary64
(- (cbrt (+ x 1)) (cbrt x)))