\sqrt[3]{x + 1} - \sqrt[3]{x}\begin{array}{l}
\mathbf{if}\;x \le -5360.111716394548238895367830991744995117:\\
\;\;\;\;\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 2.49286436971119829163808651051326137349 \cdot 10^{-5}:\\
\;\;\;\;\mathsf{fma}\left(\sqrt[3]{\sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1}}, \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 r48615 = x;
double r48616 = 1.0;
double r48617 = r48615 + r48616;
double r48618 = cbrt(r48617);
double r48619 = cbrt(r48615);
double r48620 = r48618 - r48619;
return r48620;
}
double f(double x) {
double r48621 = x;
double r48622 = -5360.111716394548;
bool r48623 = r48621 <= r48622;
double r48624 = 0.3333333333333333;
double r48625 = 1.0;
double r48626 = 2.0;
double r48627 = pow(r48621, r48626);
double r48628 = r48625 / r48627;
double r48629 = cbrt(r48628);
double r48630 = 0.06172839506172839;
double r48631 = 8.0;
double r48632 = pow(r48621, r48631);
double r48633 = r48625 / r48632;
double r48634 = cbrt(r48633);
double r48635 = r48630 * r48634;
double r48636 = fma(r48624, r48629, r48635);
double r48637 = 0.1111111111111111;
double r48638 = 5.0;
double r48639 = pow(r48621, r48638);
double r48640 = r48625 / r48639;
double r48641 = cbrt(r48640);
double r48642 = r48637 * r48641;
double r48643 = r48636 - r48642;
double r48644 = 2.4928643697111983e-05;
bool r48645 = r48621 <= r48644;
double r48646 = 1.0;
double r48647 = r48621 + r48646;
double r48648 = cbrt(r48647);
double r48649 = r48648 * r48648;
double r48650 = cbrt(r48649);
double r48651 = cbrt(r48648);
double r48652 = cbrt(r48621);
double r48653 = -r48652;
double r48654 = fma(r48650, r48651, r48653);
double r48655 = r48646 + r48621;
double r48656 = cbrt(r48655);
double r48657 = r48656 + r48652;
double r48658 = 0.6666666666666666;
double r48659 = pow(r48621, r48658);
double r48660 = fma(r48657, r48656, r48659);
double r48661 = r48646 / r48660;
double r48662 = r48645 ? r48654 : r48661;
double r48663 = r48623 ? r48643 : r48662;
return r48663;
}



Bits error versus x
if x < -5360.111716394548Initial program 60.1
rmApplied *-un-lft-identity60.1
Applied cbrt-prod60.1
Applied add-cube-cbrt60.3
Applied cbrt-prod60.6
Applied prod-diff60.7
Simplified60.6
Simplified60.6
Taylor expanded around inf 45.9
Simplified31.3
if -5360.111716394548 < x < 2.4928643697111983e-05Initial program 0.1
rmApplied *-un-lft-identity0.1
Applied cbrt-prod0.1
Applied add-cube-cbrt0.1
Applied cbrt-prod0.1
Applied prod-diff0.1
Simplified0.1
Simplified0.1
rmApplied fma-neg0.1
if 2.4928643697111983e-05 < x Initial program 59.1
rmApplied flip3--58.9
Simplified1.0
Simplified4.4
Final simplification8.8
herbie shell --seed 2019304 +o rules:numerics
(FPCore (x)
:name "2cbrt (problem 3.3.4)"
:precision binary64
(- (cbrt (+ x 1)) (cbrt x)))