\sqrt[3]{x + 1} - \sqrt[3]{x}\begin{array}{l}
\mathbf{if}\;x \le -4.44550295877382874955346526182022673206 \cdot 10^{61} \lor \neg \left(x \le 3214.257238783484808664070442318916320801\right):\\
\;\;\;\;\mathsf{fma}\left({\left(\frac{1}{{x}^{2}}\right)}^{\frac{1}{3}}, 0.3333333333333333148296162562473909929395, 0.06172839506172839163511412152729462832212 \cdot {\left(\frac{1}{{x}^{8}}\right)}^{\frac{1}{3}} - 0.1111111111111111049432054187491303309798 \cdot {\left(\frac{1}{{x}^{5}}\right)}^{\frac{1}{3}}\right)\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(\sqrt[3]{\frac{\sqrt[3]{{x}^{3} + {1}^{3}} \cdot \sqrt[3]{{x}^{3} + {1}^{3}}}{\sqrt[3]{x \cdot x + \left(1 \cdot 1 - x \cdot 1\right)} \cdot \sqrt[3]{x \cdot x + \left(1 \cdot 1 - x \cdot 1\right)}}}, \sqrt[3]{\sqrt[3]{x + 1}}, -\sqrt[3]{x}\right)\\
\end{array}double f(double x) {
double r81607 = x;
double r81608 = 1.0;
double r81609 = r81607 + r81608;
double r81610 = cbrt(r81609);
double r81611 = cbrt(r81607);
double r81612 = r81610 - r81611;
return r81612;
}
double f(double x) {
double r81613 = x;
double r81614 = -4.445502958773829e+61;
bool r81615 = r81613 <= r81614;
double r81616 = 3214.257238783485;
bool r81617 = r81613 <= r81616;
double r81618 = !r81617;
bool r81619 = r81615 || r81618;
double r81620 = 1.0;
double r81621 = 2.0;
double r81622 = pow(r81613, r81621);
double r81623 = r81620 / r81622;
double r81624 = 0.3333333333333333;
double r81625 = pow(r81623, r81624);
double r81626 = 0.3333333333333333;
double r81627 = 0.06172839506172839;
double r81628 = 8.0;
double r81629 = pow(r81613, r81628);
double r81630 = r81620 / r81629;
double r81631 = pow(r81630, r81624);
double r81632 = r81627 * r81631;
double r81633 = 0.1111111111111111;
double r81634 = 5.0;
double r81635 = pow(r81613, r81634);
double r81636 = r81620 / r81635;
double r81637 = pow(r81636, r81624);
double r81638 = r81633 * r81637;
double r81639 = r81632 - r81638;
double r81640 = fma(r81625, r81626, r81639);
double r81641 = 3.0;
double r81642 = pow(r81613, r81641);
double r81643 = 1.0;
double r81644 = pow(r81643, r81641);
double r81645 = r81642 + r81644;
double r81646 = cbrt(r81645);
double r81647 = r81646 * r81646;
double r81648 = r81613 * r81613;
double r81649 = r81643 * r81643;
double r81650 = r81613 * r81643;
double r81651 = r81649 - r81650;
double r81652 = r81648 + r81651;
double r81653 = cbrt(r81652);
double r81654 = r81653 * r81653;
double r81655 = r81647 / r81654;
double r81656 = cbrt(r81655);
double r81657 = r81613 + r81643;
double r81658 = cbrt(r81657);
double r81659 = cbrt(r81658);
double r81660 = cbrt(r81613);
double r81661 = -r81660;
double r81662 = fma(r81656, r81659, r81661);
double r81663 = r81619 ? r81640 : r81662;
return r81663;
}



Bits error versus x
if x < -4.445502958773829e+61 or 3214.257238783485 < x Initial program 60.7
Taylor expanded around inf 35.9
Simplified35.9
if -4.445502958773829e+61 < x < 3214.257238783485Initial program 4.7
rmApplied add-cube-cbrt4.7
Applied cbrt-prod4.7
Applied fma-neg4.7
rmApplied flip3-+4.7
Applied cbrt-div4.6
Applied flip3-+4.6
Applied cbrt-div4.6
Applied frac-times4.6
Final simplification18.5
herbie shell --seed 2019352 +o rules:numerics
(FPCore (x)
:name "2cbrt (problem 3.3.4)"
:precision binary64
(- (cbrt (+ x 1)) (cbrt x)))