\sqrt[3]{x + 1} - \sqrt[3]{x}\begin{array}{l}
\mathbf{if}\;x \le -3568.684213158036072854883968830108642578:\\
\;\;\;\;\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 0.04970871362191315451228845745390572119504:\\
\;\;\;\;\mathsf{fma}\left(\sqrt{\sqrt[3]{\sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1}}} \cdot \sqrt{\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 r47640 = x;
double r47641 = 1.0;
double r47642 = r47640 + r47641;
double r47643 = cbrt(r47642);
double r47644 = cbrt(r47640);
double r47645 = r47643 - r47644;
return r47645;
}
double f(double x) {
double r47646 = x;
double r47647 = -3568.684213158036;
bool r47648 = r47646 <= r47647;
double r47649 = 0.3333333333333333;
double r47650 = 1.0;
double r47651 = 2.0;
double r47652 = pow(r47646, r47651);
double r47653 = r47650 / r47652;
double r47654 = cbrt(r47653);
double r47655 = 8.0;
double r47656 = pow(r47646, r47655);
double r47657 = r47650 / r47656;
double r47658 = cbrt(r47657);
double r47659 = 0.06172839506172839;
double r47660 = r47658 * r47659;
double r47661 = fma(r47649, r47654, r47660);
double r47662 = 5.0;
double r47663 = pow(r47646, r47662);
double r47664 = r47650 / r47663;
double r47665 = cbrt(r47664);
double r47666 = 0.1111111111111111;
double r47667 = r47665 * r47666;
double r47668 = r47661 - r47667;
double r47669 = 0.049708713621913155;
bool r47670 = r47646 <= r47669;
double r47671 = 1.0;
double r47672 = r47646 + r47671;
double r47673 = cbrt(r47672);
double r47674 = r47673 * r47673;
double r47675 = cbrt(r47674);
double r47676 = sqrt(r47675);
double r47677 = r47676 * r47676;
double r47678 = cbrt(r47673);
double r47679 = cbrt(r47646);
double r47680 = -r47679;
double r47681 = fma(r47677, r47678, r47680);
double r47682 = r47671 + r47646;
double r47683 = cbrt(r47682);
double r47684 = r47683 + r47679;
double r47685 = 0.6666666666666666;
double r47686 = pow(r47646, r47685);
double r47687 = fma(r47684, r47683, r47686);
double r47688 = r47671 / r47687;
double r47689 = r47670 ? r47681 : r47688;
double r47690 = r47648 ? r47668 : r47689;
return r47690;
}



Bits error versus x
if x < -3568.684213158036Initial program 60.1
Taylor expanded around inf 45.7
Simplified31.4
if -3568.684213158036 < x < 0.049708713621913155Initial program 0.1
rmApplied add-cube-cbrt0.1
Applied cbrt-prod0.1
Applied fma-neg0.1
rmApplied add-sqr-sqrt0.1
if 0.049708713621913155 < x Initial program 59.3
rmApplied flip3--59.2
Simplified1.0
Simplified4.5
Final simplification9.1
herbie shell --seed 2019303 +o rules:numerics
(FPCore (x)
:name "2cbrt (problem 3.3.4)"
:precision binary64
(- (cbrt (+ x 1)) (cbrt x)))