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



Bits error versus x
if x < -0.994187787075435Initial program 59.4
rmApplied add-cube-cbrt59.5
rmApplied add-cube-cbrt59.5
Applied cbrt-prod59.6
Applied prod-diff59.6
Simplified60.0
Simplified59.9
Taylor expanded around inf 45.7
Simplified31.9
if -0.994187787075435 < x < 8.802284754780285e-06Initial program 0.0
rmApplied add-cube-cbrt0.0
Taylor expanded around 0 31.3
Simplified0.2
if 8.802284754780285e-06 < x Initial program 58.6
rmApplied flip3--58.4
Simplified1.0
Simplified4.4
Final simplification9.2
herbie shell --seed 2019212 +o rules:numerics
(FPCore (x)
:name "2cbrt (problem 3.3.4)"
:precision binary64
(- (cbrt (+ x 1)) (cbrt x)))