\sqrt[3]{x + 1} - \sqrt[3]{x}\begin{array}{l}
\mathbf{if}\;x \le -0.995295059253408442856425608624704182148:\\
\;\;\;\;\mathsf{fma}\left(0.3333333333333333148296162562473909929395, \sqrt[3]{\frac{1}{{x}^{2}}}, \sqrt[3]{\frac{1}{{x}^{8}}} \cdot 0.06172839506172839163511412152729462832212\right) - \sqrt[3]{\frac{1}{{x}^{5}}} \cdot 0.1111111111111111049432054187491303309798\\
\mathbf{elif}\;x \le 0.001027884863765269989055450849946282687597:\\
\;\;\;\;\mathsf{fma}\left(\sqrt[3]{\sqrt{x + 1}}, \sqrt[3]{\sqrt{x + 1}}, -\sqrt[3]{-x} \cdot \sqrt[3]{-1}\right) + \sqrt[3]{-x} \cdot \left(\left(-\sqrt[3]{-1}\right) + \sqrt[3]{-1}\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{1}{\mathsf{fma}\left(\sqrt[3]{1 + x} + \sqrt[3]{x}, \sqrt[3]{1 + x}, {x}^{\frac{2}{3}}\right)}\\
\end{array}double f(double x) {
double r81149 = x;
double r81150 = 1.0;
double r81151 = r81149 + r81150;
double r81152 = cbrt(r81151);
double r81153 = cbrt(r81149);
double r81154 = r81152 - r81153;
return r81154;
}
double f(double x) {
double r81155 = x;
double r81156 = -0.9952950592534084;
bool r81157 = r81155 <= r81156;
double r81158 = 0.3333333333333333;
double r81159 = 1.0;
double r81160 = 2.0;
double r81161 = pow(r81155, r81160);
double r81162 = r81159 / r81161;
double r81163 = cbrt(r81162);
double r81164 = 8.0;
double r81165 = pow(r81155, r81164);
double r81166 = r81159 / r81165;
double r81167 = cbrt(r81166);
double r81168 = 0.06172839506172839;
double r81169 = r81167 * r81168;
double r81170 = fma(r81158, r81163, r81169);
double r81171 = 5.0;
double r81172 = pow(r81155, r81171);
double r81173 = r81159 / r81172;
double r81174 = cbrt(r81173);
double r81175 = 0.1111111111111111;
double r81176 = r81174 * r81175;
double r81177 = r81170 - r81176;
double r81178 = 0.00102788486376527;
bool r81179 = r81155 <= r81178;
double r81180 = 1.0;
double r81181 = r81155 + r81180;
double r81182 = sqrt(r81181);
double r81183 = cbrt(r81182);
double r81184 = -r81155;
double r81185 = cbrt(r81184);
double r81186 = -1.0;
double r81187 = cbrt(r81186);
double r81188 = r81185 * r81187;
double r81189 = -r81188;
double r81190 = fma(r81183, r81183, r81189);
double r81191 = -r81187;
double r81192 = r81191 + r81187;
double r81193 = r81185 * r81192;
double r81194 = r81190 + r81193;
double r81195 = r81180 + r81155;
double r81196 = cbrt(r81195);
double r81197 = cbrt(r81155);
double r81198 = r81196 + r81197;
double r81199 = 0.6666666666666666;
double r81200 = pow(r81155, r81199);
double r81201 = fma(r81198, r81196, r81200);
double r81202 = r81180 / r81201;
double r81203 = r81179 ? r81194 : r81202;
double r81204 = r81157 ? r81177 : r81203;
return r81204;
}



Bits error versus x
if x < -0.9952950592534084Initial program 59.8
Taylor expanded around inf 44.2
Simplified30.6
if -0.9952950592534084 < x < 0.00102788486376527Initial program 0.0
Taylor expanded around -inf 31.9
Simplified0.0
rmApplied add-sqr-sqrt0.0
Applied cbrt-prod0.0
Applied prod-diff0.0
Simplified0.0
if 0.00102788486376527 < x Initial program 59.2
rmApplied flip3--59.0
Simplified1.0
Simplified4.4
Final simplification8.7
herbie shell --seed 2019350 +o rules:numerics
(FPCore (x)
:name "2cbrt (problem 3.3.4)"
:precision binary64
(- (cbrt (+ x 1)) (cbrt x)))