\sqrt[3]{x + 1} - \sqrt[3]{x}\begin{array}{l}
\mathbf{if}\;x \le -0.9906799218317323685312203451758250594139:\\
\;\;\;\;\mathsf{fma}\left(\sqrt[3]{\frac{1}{{x}^{5}}}, -0.1111111111111111049432054187491303309798, \mathsf{fma}\left(0.3333333333333333148296162562473909929395, \sqrt[3]{\frac{1}{x \cdot x}}, 0.06172839506172839163511412152729462832212 \cdot \sqrt[3]{\frac{1}{{x}^{8}}}\right)\right)\\
\mathbf{elif}\;x \le 0.04777649667975737701741678620237507857382:\\
\;\;\;\;\log \left(e^{{\left(1 + x\right)}^{\frac{1}{3}} - \sqrt[3]{x}}\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{1}{\left(\sqrt[3]{x} + \sqrt[3]{1 + x}\right) \cdot \sqrt[3]{1 + x} + {x}^{\frac{2}{3}}}\\
\end{array}double f(double x) {
double r83016 = x;
double r83017 = 1.0;
double r83018 = r83016 + r83017;
double r83019 = cbrt(r83018);
double r83020 = cbrt(r83016);
double r83021 = r83019 - r83020;
return r83021;
}
double f(double x) {
double r83022 = x;
double r83023 = -0.9906799218317324;
bool r83024 = r83022 <= r83023;
double r83025 = 1.0;
double r83026 = 5.0;
double r83027 = pow(r83022, r83026);
double r83028 = r83025 / r83027;
double r83029 = cbrt(r83028);
double r83030 = 0.1111111111111111;
double r83031 = -r83030;
double r83032 = 0.3333333333333333;
double r83033 = r83022 * r83022;
double r83034 = r83025 / r83033;
double r83035 = cbrt(r83034);
double r83036 = 0.06172839506172839;
double r83037 = 8.0;
double r83038 = pow(r83022, r83037);
double r83039 = r83025 / r83038;
double r83040 = cbrt(r83039);
double r83041 = r83036 * r83040;
double r83042 = fma(r83032, r83035, r83041);
double r83043 = fma(r83029, r83031, r83042);
double r83044 = 0.04777649667975738;
bool r83045 = r83022 <= r83044;
double r83046 = 1.0;
double r83047 = r83046 + r83022;
double r83048 = 0.3333333333333333;
double r83049 = pow(r83047, r83048);
double r83050 = cbrt(r83022);
double r83051 = r83049 - r83050;
double r83052 = exp(r83051);
double r83053 = log(r83052);
double r83054 = cbrt(r83047);
double r83055 = r83050 + r83054;
double r83056 = r83055 * r83054;
double r83057 = 0.6666666666666666;
double r83058 = pow(r83022, r83057);
double r83059 = r83056 + r83058;
double r83060 = r83046 / r83059;
double r83061 = r83045 ? r83053 : r83060;
double r83062 = r83024 ? r83043 : r83061;
return r83062;
}



Bits error versus x
if x < -0.9906799218317324Initial program 59.6
Simplified59.6
rmApplied add-cube-cbrt59.8
Taylor expanded around inf 44.8
Simplified30.3
if -0.9906799218317324 < x < 0.04777649667975738Initial program 0.0
Simplified0.0
rmApplied add-log-exp0.1
Applied add-log-exp0.1
Applied diff-log0.1
Simplified0.1
rmApplied pow1/30.0
if 0.04777649667975738 < x Initial program 59.3
Simplified59.3
rmApplied flip3--59.1
Simplified1.0
Simplified4.5
Final simplification8.9
herbie shell --seed 2019174 +o rules:numerics
(FPCore (x)
:name "2cbrt (problem 3.3.4)"
(- (cbrt (+ x 1.0)) (cbrt x)))