\sqrt[3]{x + 1} - \sqrt[3]{x}\begin{array}{l}
\mathbf{if}\;x \le -4.45593027296653583 \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 2.2954140183814659 \cdot 10^{-10}:\\
\;\;\;\;\mathsf{fma}\left(\frac{\sqrt[3]{x \cdot x - 1 \cdot 1}}{\sqrt[3]{{x}^{3} - {1}^{3}}}, \sqrt[3]{x \cdot x + \left(1 \cdot 1 + x \cdot 1\right)}, -\sqrt[3]{x}\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{0 + 1}{\mathsf{fma}\left(\sqrt[3]{x + 1}, \sqrt[3]{x + 1} + \sqrt[3]{x}, {x}^{\frac{2}{3}}\right)}\\
\end{array}double code(double x) {
return (cbrt((x + 1.0)) - cbrt(x));
}
double code(double x) {
double VAR;
if ((x <= -4.455930272966536e+61)) {
VAR = fma(pow((1.0 / pow(x, 2.0)), 0.3333333333333333), 0.3333333333333333, ((0.06172839506172839 * pow((1.0 / pow(x, 8.0)), 0.3333333333333333)) - (0.1111111111111111 * pow((1.0 / pow(x, 5.0)), 0.3333333333333333))));
} else {
double VAR_1;
if ((x <= 2.295414018381466e-10)) {
VAR_1 = fma((cbrt(((x * x) - (1.0 * 1.0))) / cbrt((pow(x, 3.0) - pow(1.0, 3.0)))), cbrt(((x * x) + ((1.0 * 1.0) + (x * 1.0)))), -cbrt(x));
} else {
VAR_1 = ((0.0 + 1.0) / fma(cbrt((x + 1.0)), (cbrt((x + 1.0)) + cbrt(x)), pow(x, 0.6666666666666666)));
}
VAR = VAR_1;
}
return VAR;
}



Bits error versus x
Results
if x < -4.455930272966536e+61Initial program 61.2
Taylor expanded around inf 41.3
Simplified41.3
if -4.455930272966536e+61 < x < 2.295414018381466e-10Initial program 4.9
rmApplied flip-+4.9
Applied cbrt-div4.8
rmApplied flip3--4.8
Applied cbrt-div4.8
Applied associate-/r/4.8
Applied fma-neg4.8
if 2.295414018381466e-10 < x Initial program 57.6
rmApplied flip3--57.5
Simplified1.0
Simplified4.3
Final simplification12.0
herbie shell --seed 2020078 +o rules:numerics
(FPCore (x)
:name "2cbrt (problem 3.3.4)"
:precision binary64
(- (cbrt (+ x 1)) (cbrt x)))