\sqrt[3]{x + 1} - \sqrt[3]{x}\begin{array}{l}
\mathbf{if}\;x \le -5010.644987029124422406312078237533569336:\\
\;\;\;\;\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}:\\
\;\;\;\;e^{\log \left(\sqrt[3]{\sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1}} \cdot \sqrt[3]{\sqrt[3]{x + 1}} - \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 r41405 = x;
double r41406 = 1.0;
double r41407 = r41405 + r41406;
double r41408 = cbrt(r41407);
double r41409 = cbrt(r41405);
double r41410 = r41408 - r41409;
return r41410;
}
double f(double x) {
double r41411 = x;
double r41412 = -5010.644987029124;
bool r41413 = r41411 <= r41412;
double r41414 = 0.3333333333333333;
double r41415 = 1.0;
double r41416 = 2.0;
double r41417 = pow(r41411, r41416);
double r41418 = r41415 / r41417;
double r41419 = cbrt(r41418);
double r41420 = 8.0;
double r41421 = pow(r41411, r41420);
double r41422 = r41415 / r41421;
double r41423 = cbrt(r41422);
double r41424 = 0.06172839506172839;
double r41425 = r41423 * r41424;
double r41426 = fma(r41414, r41419, r41425);
double r41427 = 5.0;
double r41428 = pow(r41411, r41427);
double r41429 = r41415 / r41428;
double r41430 = cbrt(r41429);
double r41431 = 0.1111111111111111;
double r41432 = r41430 * r41431;
double r41433 = r41426 - r41432;
double r41434 = 0.00031979440843076613;
bool r41435 = r41411 <= r41434;
double r41436 = 1.0;
double r41437 = r41411 + r41436;
double r41438 = cbrt(r41437);
double r41439 = r41438 * r41438;
double r41440 = cbrt(r41439);
double r41441 = cbrt(r41438);
double r41442 = r41440 * r41441;
double r41443 = cbrt(r41411);
double r41444 = r41442 - r41443;
double r41445 = log(r41444);
double r41446 = exp(r41445);
double r41447 = r41436 + r41411;
double r41448 = cbrt(r41447);
double r41449 = r41448 + r41443;
double r41450 = 0.6666666666666666;
double r41451 = pow(r41411, r41450);
double r41452 = fma(r41449, r41448, r41451);
double r41453 = r41436 / r41452;
double r41454 = r41435 ? r41446 : r41453;
double r41455 = r41413 ? r41433 : r41454;
return r41455;
}



Bits error versus x
if x < -5010.644987029124Initial program 60.0
Taylor expanded around inf 45.2
Simplified31.1
if -5010.644987029124 < 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 add-exp-log0.1
Simplified0.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)))