\sqrt[3]{x + 1} - \sqrt[3]{x}\begin{array}{l}
\mathbf{if}\;x \le -4.4771775817553536 \cdot 10^{61} \lor \neg \left(x \le 7658.2932455647642\right):\\
\;\;\;\;\mathsf{log1p}\left(\mathsf{fma}\left(0.006172839506172839, \frac{1}{{x}^{2}}, \mathsf{fma}\left(0.055555555555555552, {\left(\frac{1}{{x}^{4}}\right)}^{\frac{1}{3}}, \mathsf{fma}\left(0.333333333333333315, {\left(\frac{1}{{x}^{2}}\right)}^{\frac{1}{3}}, 0.061728395061728392 \cdot {\left(\frac{1}{{x}^{8}}\right)}^{\frac{1}{3}}\right)\right) - \mathsf{fma}\left(0.1111111111111111, {\left(\frac{1}{{x}^{5}}\right)}^{\frac{1}{3}}, 0.037037037037037035 \cdot {\left(\frac{1}{{x}^{7}}\right)}^{\frac{1}{3}}\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(\sqrt[3]{\sqrt[3]{x + 1}} \cdot \sqrt[3]{\sqrt[3]{x + 1}}, \sqrt[3]{\sqrt[3]{x + 1}}, -\left(\sqrt[3]{\sqrt[3]{x}} \cdot \sqrt[3]{\sqrt[3]{x}}\right) \cdot \sqrt[3]{\sqrt[3]{x}}\right)\\
\end{array}double f(double x) {
double r60632 = x;
double r60633 = 1.0;
double r60634 = r60632 + r60633;
double r60635 = cbrt(r60634);
double r60636 = cbrt(r60632);
double r60637 = r60635 - r60636;
return r60637;
}
double f(double x) {
double r60638 = x;
double r60639 = -4.4771775817553536e+61;
bool r60640 = r60638 <= r60639;
double r60641 = 7658.293245564764;
bool r60642 = r60638 <= r60641;
double r60643 = !r60642;
bool r60644 = r60640 || r60643;
double r60645 = 0.006172839506172839;
double r60646 = 1.0;
double r60647 = 2.0;
double r60648 = pow(r60638, r60647);
double r60649 = r60646 / r60648;
double r60650 = 0.05555555555555555;
double r60651 = 4.0;
double r60652 = pow(r60638, r60651);
double r60653 = r60646 / r60652;
double r60654 = 0.3333333333333333;
double r60655 = pow(r60653, r60654);
double r60656 = 0.3333333333333333;
double r60657 = pow(r60649, r60654);
double r60658 = 0.06172839506172839;
double r60659 = 8.0;
double r60660 = pow(r60638, r60659);
double r60661 = r60646 / r60660;
double r60662 = pow(r60661, r60654);
double r60663 = r60658 * r60662;
double r60664 = fma(r60656, r60657, r60663);
double r60665 = fma(r60650, r60655, r60664);
double r60666 = 0.1111111111111111;
double r60667 = 5.0;
double r60668 = pow(r60638, r60667);
double r60669 = r60646 / r60668;
double r60670 = pow(r60669, r60654);
double r60671 = 0.037037037037037035;
double r60672 = 7.0;
double r60673 = pow(r60638, r60672);
double r60674 = r60646 / r60673;
double r60675 = pow(r60674, r60654);
double r60676 = r60671 * r60675;
double r60677 = fma(r60666, r60670, r60676);
double r60678 = r60665 - r60677;
double r60679 = fma(r60645, r60649, r60678);
double r60680 = log1p(r60679);
double r60681 = 1.0;
double r60682 = r60638 + r60681;
double r60683 = cbrt(r60682);
double r60684 = cbrt(r60683);
double r60685 = r60684 * r60684;
double r60686 = cbrt(r60638);
double r60687 = cbrt(r60686);
double r60688 = r60687 * r60687;
double r60689 = r60688 * r60687;
double r60690 = -r60689;
double r60691 = fma(r60685, r60684, r60690);
double r60692 = r60644 ? r60680 : r60691;
return r60692;
}



Bits error versus x
if x < -4.4771775817553536e+61 or 7658.293245564764 < x Initial program 60.5
rmApplied log1p-expm1-u60.5
Taylor expanded around inf 36.4
Simplified36.4
if -4.4771775817553536e+61 < x < 7658.293245564764Initial program 5.3
rmApplied add-cube-cbrt5.3
Applied fma-neg5.3
rmApplied add-cube-cbrt5.2
Final simplification18.9
herbie shell --seed 2020027 +o rules:numerics
(FPCore (x)
:name "2cbrt (problem 3.3.4)"
:precision binary64
(- (cbrt (+ x 1)) (cbrt x)))