\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} - \left(\sqrt[3]{\sqrt[3]{x} \cdot \sqrt[3]{x}} \cdot \sqrt[3]{\sqrt[3]{x}}\right) \cdot \sqrt[3]{x}}{\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 r64758 = x;
double r64759 = 1.0;
double r64760 = r64758 + r64759;
double r64761 = cbrt(r64760);
double r64762 = cbrt(r64758);
double r64763 = r64761 - r64762;
return r64763;
}
double f(double x) {
double r64764 = x;
double r64765 = -4.53999343152509e+61;
bool r64766 = r64764 <= r64765;
double r64767 = 1.0;
double r64768 = 2.0;
double r64769 = pow(r64764, r64768);
double r64770 = r64767 / r64769;
double r64771 = 0.3333333333333333;
double r64772 = pow(r64770, r64771);
double r64773 = 0.3333333333333333;
double r64774 = 0.06172839506172839;
double r64775 = 8.0;
double r64776 = pow(r64764, r64775);
double r64777 = r64767 / r64776;
double r64778 = pow(r64777, r64771);
double r64779 = r64774 * r64778;
double r64780 = 0.1111111111111111;
double r64781 = 5.0;
double r64782 = pow(r64764, r64781);
double r64783 = r64767 / r64782;
double r64784 = pow(r64783, r64771);
double r64785 = r64780 * r64784;
double r64786 = r64779 - r64785;
double r64787 = fma(r64772, r64773, r64786);
double r64788 = 2677.8139172161887;
bool r64789 = r64764 <= r64788;
double r64790 = 1.0;
double r64791 = r64764 + r64790;
double r64792 = cbrt(r64791);
double r64793 = r64792 * r64792;
double r64794 = cbrt(r64764);
double r64795 = r64794 * r64794;
double r64796 = cbrt(r64795);
double r64797 = cbrt(r64794);
double r64798 = r64796 * r64797;
double r64799 = r64798 * r64794;
double r64800 = r64793 - r64799;
double r64801 = r64792 + r64794;
double r64802 = r64800 / r64801;
double r64803 = 7.0;
double r64804 = pow(r64764, r64803);
double r64805 = r64767 / r64804;
double r64806 = pow(r64805, r64771);
double r64807 = 0.04938271604938271;
double r64808 = 0.6666666666666666;
double r64809 = r64767 / r64764;
double r64810 = pow(r64809, r64771);
double r64811 = r64808 * r64810;
double r64812 = 4.0;
double r64813 = pow(r64764, r64812);
double r64814 = r64767 / r64813;
double r64815 = pow(r64814, r64771);
double r64816 = r64780 * r64815;
double r64817 = r64811 - r64816;
double r64818 = fma(r64806, r64807, r64817);
double r64819 = r64797 * r64797;
double r64820 = r64819 * r64797;
double r64821 = r64792 + r64820;
double r64822 = r64818 / r64821;
double r64823 = r64789 ? r64802 : r64822;
double r64824 = r64766 ? r64787 : r64823;
return r64824;
}



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