\sqrt[3]{x + 1} - \sqrt[3]{x}\begin{array}{l}
\mathbf{if}\;x \le -4127.440397266407671850174665451049804688:\\
\;\;\;\;\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}}}\\
\mathbf{elif}\;x \le 0.02838616193843989873868416395907843252644:\\
\;\;\;\;\frac{\sqrt[3]{{x}^{3} + {1}^{3}}}{\sqrt[3]{\mathsf{fma}\left(x, x, 1 \cdot \left(1 - x\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 r62409 = x;
double r62410 = 1.0;
double r62411 = r62409 + r62410;
double r62412 = cbrt(r62411);
double r62413 = cbrt(r62409);
double r62414 = r62412 - r62413;
return r62414;
}
double f(double x) {
double r62415 = x;
double r62416 = -4127.440397266408;
bool r62417 = r62415 <= r62416;
double r62418 = 0.3333333333333333;
double r62419 = 1.0;
double r62420 = 2.0;
double r62421 = pow(r62415, r62420);
double r62422 = r62419 / r62421;
double r62423 = cbrt(r62422);
double r62424 = 0.06172839506172839;
double r62425 = 8.0;
double r62426 = pow(r62415, r62425);
double r62427 = r62419 / r62426;
double r62428 = cbrt(r62427);
double r62429 = r62424 * r62428;
double r62430 = fma(r62418, r62423, r62429);
double r62431 = 0.1111111111111111;
double r62432 = 5.0;
double r62433 = pow(r62415, r62432);
double r62434 = r62419 / r62433;
double r62435 = cbrt(r62434);
double r62436 = r62431 * r62435;
double r62437 = r62430 - r62436;
double r62438 = 0.0283861619384399;
bool r62439 = r62415 <= r62438;
double r62440 = 3.0;
double r62441 = pow(r62415, r62440);
double r62442 = 1.0;
double r62443 = pow(r62442, r62440);
double r62444 = r62441 + r62443;
double r62445 = cbrt(r62444);
double r62446 = r62442 - r62415;
double r62447 = r62442 * r62446;
double r62448 = fma(r62415, r62415, r62447);
double r62449 = cbrt(r62448);
double r62450 = r62445 / r62449;
double r62451 = cbrt(r62415);
double r62452 = r62450 - r62451;
double r62453 = r62442 + r62415;
double r62454 = cbrt(r62453);
double r62455 = r62454 + r62451;
double r62456 = r62454 * r62455;
double r62457 = 0.6666666666666666;
double r62458 = pow(r62415, r62457);
double r62459 = r62456 + r62458;
double r62460 = r62442 / r62459;
double r62461 = r62439 ? r62452 : r62460;
double r62462 = r62417 ? r62437 : r62461;
return r62462;
}



Bits error versus x
if x < -4127.440397266408Initial program 60.2
rmApplied add-cube-cbrt60.8
Taylor expanded around inf 44.7
Simplified31.4
if -4127.440397266408 < x < 0.0283861619384399Initial program 0.1
rmApplied flip3-+0.1
Applied cbrt-div0.1
Simplified0.1
if 0.0283861619384399 < x Initial program 59.6
rmApplied flip3--59.4
Simplified1.0
Simplified4.5
Final simplification8.9
herbie shell --seed 2019208 +o rules:numerics
(FPCore (x)
:name "2cbrt (problem 3.3.4)"
:precision binary64
(- (cbrt (+ x 1)) (cbrt x)))