\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 r64730 = x;
double r64731 = 1.0;
double r64732 = r64730 + r64731;
double r64733 = cbrt(r64732);
double r64734 = cbrt(r64730);
double r64735 = r64733 - r64734;
return r64735;
}
double f(double x) {
double r64736 = x;
double r64737 = -4.53999343152509e+61;
bool r64738 = r64736 <= r64737;
double r64739 = 1.0;
double r64740 = 2.0;
double r64741 = pow(r64736, r64740);
double r64742 = r64739 / r64741;
double r64743 = 0.3333333333333333;
double r64744 = pow(r64742, r64743);
double r64745 = 0.3333333333333333;
double r64746 = 0.06172839506172839;
double r64747 = 8.0;
double r64748 = pow(r64736, r64747);
double r64749 = r64739 / r64748;
double r64750 = pow(r64749, r64743);
double r64751 = r64746 * r64750;
double r64752 = 0.1111111111111111;
double r64753 = 5.0;
double r64754 = pow(r64736, r64753);
double r64755 = r64739 / r64754;
double r64756 = pow(r64755, r64743);
double r64757 = r64752 * r64756;
double r64758 = r64751 - r64757;
double r64759 = fma(r64744, r64745, r64758);
double r64760 = 2677.8139172161887;
bool r64761 = r64736 <= r64760;
double r64762 = 1.0;
double r64763 = r64736 + r64762;
double r64764 = cbrt(r64763);
double r64765 = r64764 * r64764;
double r64766 = cbrt(r64736);
double r64767 = r64766 * r64766;
double r64768 = cbrt(r64767);
double r64769 = cbrt(r64766);
double r64770 = r64768 * r64769;
double r64771 = r64766 * r64770;
double r64772 = r64765 - r64771;
double r64773 = r64764 + r64766;
double r64774 = r64772 / r64773;
double r64775 = 7.0;
double r64776 = pow(r64736, r64775);
double r64777 = r64739 / r64776;
double r64778 = pow(r64777, r64743);
double r64779 = 0.04938271604938271;
double r64780 = 0.6666666666666666;
double r64781 = r64739 / r64736;
double r64782 = pow(r64781, r64743);
double r64783 = r64780 * r64782;
double r64784 = 4.0;
double r64785 = pow(r64736, r64784);
double r64786 = r64739 / r64785;
double r64787 = pow(r64786, r64743);
double r64788 = r64752 * r64787;
double r64789 = r64783 - r64788;
double r64790 = fma(r64778, r64779, r64789);
double r64791 = r64769 * r64769;
double r64792 = r64791 * r64769;
double r64793 = r64764 + r64792;
double r64794 = r64790 / r64793;
double r64795 = r64761 ? r64774 : r64794;
double r64796 = r64738 ? r64759 : r64795;
return r64796;
}



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)))