\sqrt[3]{x + 1} - \sqrt[3]{x}\begin{array}{l}
\mathbf{if}\;x \le -0.9868159492179903180542055451951455324888:\\
\;\;\;\;\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 1.423501264395558678311832436245820364987 \cdot 10^{-16}:\\
\;\;\;\;{\left(x + 1\right)}^{\frac{1}{3}} - \sqrt[3]{x}\\
\mathbf{else}:\\
\;\;\;\;\frac{1}{\sqrt[3]{1 + x} \cdot \left(\sqrt[3]{x + 1} + \sqrt[3]{x}\right) + {x}^{\frac{2}{3}}}\\
\end{array}double f(double x) {
double r87618 = x;
double r87619 = 1.0;
double r87620 = r87618 + r87619;
double r87621 = cbrt(r87620);
double r87622 = cbrt(r87618);
double r87623 = r87621 - r87622;
return r87623;
}
double f(double x) {
double r87624 = x;
double r87625 = -0.9868159492179903;
bool r87626 = r87624 <= r87625;
double r87627 = 0.3333333333333333;
double r87628 = 1.0;
double r87629 = 2.0;
double r87630 = pow(r87624, r87629);
double r87631 = r87628 / r87630;
double r87632 = cbrt(r87631);
double r87633 = 8.0;
double r87634 = pow(r87624, r87633);
double r87635 = r87628 / r87634;
double r87636 = cbrt(r87635);
double r87637 = 0.06172839506172839;
double r87638 = r87636 * r87637;
double r87639 = fma(r87627, r87632, r87638);
double r87640 = 5.0;
double r87641 = pow(r87624, r87640);
double r87642 = r87628 / r87641;
double r87643 = cbrt(r87642);
double r87644 = 0.1111111111111111;
double r87645 = r87643 * r87644;
double r87646 = r87639 - r87645;
double r87647 = 1.4235012643955587e-16;
bool r87648 = r87624 <= r87647;
double r87649 = 1.0;
double r87650 = r87624 + r87649;
double r87651 = 0.3333333333333333;
double r87652 = pow(r87650, r87651);
double r87653 = cbrt(r87624);
double r87654 = r87652 - r87653;
double r87655 = r87649 + r87624;
double r87656 = cbrt(r87655);
double r87657 = cbrt(r87650);
double r87658 = r87657 + r87653;
double r87659 = r87656 * r87658;
double r87660 = 0.6666666666666666;
double r87661 = pow(r87624, r87660);
double r87662 = r87659 + r87661;
double r87663 = r87649 / r87662;
double r87664 = r87648 ? r87654 : r87663;
double r87665 = r87626 ? r87646 : r87664;
return r87665;
}



Bits error versus x
if x < -0.9868159492179903Initial program 59.6
Taylor expanded around inf 44.9
Simplified31.3
if -0.9868159492179903 < x < 1.4235012643955587e-16Initial program 0.0
rmApplied pow1/30.0
if 1.4235012643955587e-16 < x Initial program 56.2
rmApplied *-un-lft-identity56.2
Applied cbrt-prod56.2
Applied add-cube-cbrt56.4
Applied prod-diff56.4
Simplified56.4
Simplified56.4
rmApplied add-cube-cbrt56.5
rmApplied add-cbrt-cube56.5
Simplified56.3
rmApplied flip3--56.2
Applied cube-div56.1
Applied cbrt-div56.2
Simplified28.4
Simplified4.2
Final simplification8.9
herbie shell --seed 2019351 +o rules:numerics
(FPCore (x)
:name "2cbrt (problem 3.3.4)"
:precision binary64
(- (cbrt (+ x 1)) (cbrt x)))