\sqrt[3]{x + 1} - \sqrt[3]{x}\begin{array}{l}
\mathbf{if}\;x \le -4.539993431525089741023971091851498224407 \cdot 10^{61}:\\
\;\;\;\;\mathsf{fma}\left({\left(\frac{1}{{x}^{2}}\right)}^{\frac{1}{3}}, 0.3333333333333333148296162562473909929395, 0.06172839506172839163511412152729462832212 \cdot {\left(\frac{1}{{x}^{8}}\right)}^{\frac{1}{3}} - 0.1111111111111111049432054187491303309798 \cdot {\left(\frac{1}{{x}^{5}}\right)}^{\frac{1}{3}}\right)\\
\mathbf{elif}\;x \le 2677.813917216188656311715021729469299316:\\
\;\;\;\;\frac{\sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1} - \sqrt[3]{x} \cdot \left(\sqrt[3]{\sqrt[3]{x} \cdot \sqrt[3]{x}} \cdot \sqrt[3]{\sqrt[3]{x}}\right)}{\sqrt[3]{x + 1} + \sqrt[3]{x}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\mathsf{fma}\left({\left(\frac{1}{{x}^{7}}\right)}^{\frac{1}{3}}, 0.0493827160493827133080912972218357026577, 0.6666666666666666296592325124947819858789 \cdot {\left(\frac{1}{x}\right)}^{\frac{1}{3}} - 0.1111111111111111049432054187491303309798 \cdot {\left(\frac{1}{{x}^{4}}\right)}^{\frac{1}{3}}\right)}{\sqrt[3]{x + 1} + \left(\sqrt[3]{\sqrt[3]{x}} \cdot \sqrt[3]{\sqrt[3]{x}}\right) \cdot \sqrt[3]{\sqrt[3]{x}}}\\
\end{array}double f(double x) {
double r57793 = x;
double r57794 = 1.0;
double r57795 = r57793 + r57794;
double r57796 = cbrt(r57795);
double r57797 = cbrt(r57793);
double r57798 = r57796 - r57797;
return r57798;
}
double f(double x) {
double r57799 = x;
double r57800 = -4.53999343152509e+61;
bool r57801 = r57799 <= r57800;
double r57802 = 1.0;
double r57803 = 2.0;
double r57804 = pow(r57799, r57803);
double r57805 = r57802 / r57804;
double r57806 = 0.3333333333333333;
double r57807 = pow(r57805, r57806);
double r57808 = 0.3333333333333333;
double r57809 = 0.06172839506172839;
double r57810 = 8.0;
double r57811 = pow(r57799, r57810);
double r57812 = r57802 / r57811;
double r57813 = pow(r57812, r57806);
double r57814 = r57809 * r57813;
double r57815 = 0.1111111111111111;
double r57816 = 5.0;
double r57817 = pow(r57799, r57816);
double r57818 = r57802 / r57817;
double r57819 = pow(r57818, r57806);
double r57820 = r57815 * r57819;
double r57821 = r57814 - r57820;
double r57822 = fma(r57807, r57808, r57821);
double r57823 = 2677.8139172161887;
bool r57824 = r57799 <= r57823;
double r57825 = 1.0;
double r57826 = r57799 + r57825;
double r57827 = cbrt(r57826);
double r57828 = r57827 * r57827;
double r57829 = cbrt(r57799);
double r57830 = r57829 * r57829;
double r57831 = cbrt(r57830);
double r57832 = cbrt(r57829);
double r57833 = r57831 * r57832;
double r57834 = r57829 * r57833;
double r57835 = r57828 - r57834;
double r57836 = r57827 + r57829;
double r57837 = r57835 / r57836;
double r57838 = 7.0;
double r57839 = pow(r57799, r57838);
double r57840 = r57802 / r57839;
double r57841 = pow(r57840, r57806);
double r57842 = 0.04938271604938271;
double r57843 = 0.6666666666666666;
double r57844 = r57802 / r57799;
double r57845 = pow(r57844, r57806);
double r57846 = r57843 * r57845;
double r57847 = 4.0;
double r57848 = pow(r57799, r57847);
double r57849 = r57802 / r57848;
double r57850 = pow(r57849, r57806);
double r57851 = r57815 * r57850;
double r57852 = r57846 - r57851;
double r57853 = fma(r57841, r57842, r57852);
double r57854 = r57832 * r57832;
double r57855 = r57854 * r57832;
double r57856 = r57827 + r57855;
double r57857 = r57853 / r57856;
double r57858 = r57824 ? r57837 : r57857;
double r57859 = r57801 ? r57822 : r57858;
return r57859;
}



Bits error versus x
if x < -4.53999343152509e+61Initial program 61.2
Taylor expanded around inf 40.0
Simplified40.0
if -4.53999343152509e+61 < x < 2677.8139172161887Initial program 4.7
rmApplied flip--4.7
rmApplied add-cube-cbrt4.7
Applied cbrt-prod4.6
if 2677.8139172161887 < x Initial program 60.2
rmApplied flip--60.2
rmApplied add-cube-cbrt60.2
Taylor expanded around inf 5.1
Simplified5.1
Final simplification12.0
herbie shell --seed 2020001 +o rules:numerics
(FPCore (x)
:name "2cbrt (problem 3.3.4)"
:precision binary64
(- (cbrt (+ x 1)) (cbrt x)))