\sqrt[3]{x + 1} - \sqrt[3]{x}\begin{array}{l}
\mathbf{if}\;x \le -4.46844580859389832 \cdot 10^{61}:\\
\;\;\;\;\mathsf{fma}\left({\left(\frac{1}{{x}^{2}}\right)}^{\frac{1}{3}}, 0.333333333333333315, 0.061728395061728392 \cdot {\left(\frac{1}{{x}^{8}}\right)}^{\frac{1}{3}} - 0.1111111111111111 \cdot {\left(\frac{1}{{x}^{5}}\right)}^{\frac{1}{3}}\right)\\
\mathbf{elif}\;x \le 2770.78323808666801:\\
\;\;\;\;\mathsf{fma}\left(\sqrt[3]{\sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1}}, \sqrt[3]{\sqrt[3]{\sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1}} \cdot \sqrt[3]{\sqrt[3]{x + 1}}}, -\sqrt[3]{x}\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{\mathsf{fma}\left({\left(\frac{1}{{x}^{7}}\right)}^{\frac{1}{3}}, 0.04938271604938271, 0.66666666666666663 \cdot {\left(\frac{1}{x}\right)}^{\frac{1}{3}} - 0.1111111111111111 \cdot {\left(\frac{1}{{x}^{4}}\right)}^{\frac{1}{3}}\right)}{\sqrt[3]{x + 1} + \sqrt[3]{x}}\\
\end{array}double f(double x) {
double r75737 = x;
double r75738 = 1.0;
double r75739 = r75737 + r75738;
double r75740 = cbrt(r75739);
double r75741 = cbrt(r75737);
double r75742 = r75740 - r75741;
return r75742;
}
double f(double x) {
double r75743 = x;
double r75744 = -4.4684458085938983e+61;
bool r75745 = r75743 <= r75744;
double r75746 = 1.0;
double r75747 = 2.0;
double r75748 = pow(r75743, r75747);
double r75749 = r75746 / r75748;
double r75750 = 0.3333333333333333;
double r75751 = pow(r75749, r75750);
double r75752 = 0.3333333333333333;
double r75753 = 0.06172839506172839;
double r75754 = 8.0;
double r75755 = pow(r75743, r75754);
double r75756 = r75746 / r75755;
double r75757 = pow(r75756, r75750);
double r75758 = r75753 * r75757;
double r75759 = 0.1111111111111111;
double r75760 = 5.0;
double r75761 = pow(r75743, r75760);
double r75762 = r75746 / r75761;
double r75763 = pow(r75762, r75750);
double r75764 = r75759 * r75763;
double r75765 = r75758 - r75764;
double r75766 = fma(r75751, r75752, r75765);
double r75767 = 2770.783238086668;
bool r75768 = r75743 <= r75767;
double r75769 = 1.0;
double r75770 = r75743 + r75769;
double r75771 = cbrt(r75770);
double r75772 = r75771 * r75771;
double r75773 = cbrt(r75772);
double r75774 = cbrt(r75771);
double r75775 = r75773 * r75774;
double r75776 = cbrt(r75775);
double r75777 = cbrt(r75743);
double r75778 = -r75777;
double r75779 = fma(r75773, r75776, r75778);
double r75780 = 7.0;
double r75781 = pow(r75743, r75780);
double r75782 = r75746 / r75781;
double r75783 = pow(r75782, r75750);
double r75784 = 0.04938271604938271;
double r75785 = 0.6666666666666666;
double r75786 = r75746 / r75743;
double r75787 = pow(r75786, r75750);
double r75788 = r75785 * r75787;
double r75789 = 4.0;
double r75790 = pow(r75743, r75789);
double r75791 = r75746 / r75790;
double r75792 = pow(r75791, r75750);
double r75793 = r75759 * r75792;
double r75794 = r75788 - r75793;
double r75795 = fma(r75783, r75784, r75794);
double r75796 = r75771 + r75777;
double r75797 = r75795 / r75796;
double r75798 = r75768 ? r75779 : r75797;
double r75799 = r75745 ? r75766 : r75798;
return r75799;
}



Bits error versus x
if x < -4.4684458085938983e+61Initial program 61.2
Taylor expanded around inf 39.3
Simplified39.3
if -4.4684458085938983e+61 < x < 2770.783238086668Initial program 5.3
rmApplied add-cube-cbrt5.3
Applied cbrt-prod5.3
Applied fma-neg5.2
rmApplied add-cube-cbrt5.2
Applied cbrt-prod5.2
if 2770.783238086668 < x Initial program 60.1
rmApplied flip--60.1
Taylor expanded around inf 5.1
Simplified5.1
Final simplification11.9
herbie shell --seed 2020065 +o rules:numerics
(FPCore (x)
:name "2cbrt (problem 3.3.4)"
:precision binary64
(- (cbrt (+ x 1)) (cbrt x)))