\sqrt[3]{x + 1} - \sqrt[3]{x}\begin{array}{l}
\mathbf{if}\;x \le -4221.179793202217297221068292856216430664:\\
\;\;\;\;\mathsf{fma}\left(0.06172839506172839163511412152729462832212, \sqrt[3]{\frac{1}{{x}^{8}}}, \mathsf{fma}\left(\sqrt[3]{\frac{1}{x \cdot x}}, 0.3333333333333333148296162562473909929395, \sqrt[3]{\frac{1}{{x}^{5}}} \cdot \left(-0.1111111111111111049432054187491303309798\right)\right)\right)\\
\mathbf{elif}\;x \le 2.627646657846368341371692551461380915612 \cdot 10^{-7}:\\
\;\;\;\;\sqrt[3]{1 + x} - \sqrt[3]{x}\\
\mathbf{else}:\\
\;\;\;\;\frac{1}{{x}^{\frac{2}{3}} + \left(\sqrt[3]{x} + \sqrt[3]{1 + x}\right) \cdot \sqrt[3]{1 + x}}\\
\end{array}double f(double x) {
double r84415 = x;
double r84416 = 1.0;
double r84417 = r84415 + r84416;
double r84418 = cbrt(r84417);
double r84419 = cbrt(r84415);
double r84420 = r84418 - r84419;
return r84420;
}
double f(double x) {
double r84421 = x;
double r84422 = -4221.179793202217;
bool r84423 = r84421 <= r84422;
double r84424 = 0.06172839506172839;
double r84425 = 1.0;
double r84426 = 8.0;
double r84427 = pow(r84421, r84426);
double r84428 = r84425 / r84427;
double r84429 = cbrt(r84428);
double r84430 = r84421 * r84421;
double r84431 = r84425 / r84430;
double r84432 = cbrt(r84431);
double r84433 = 0.3333333333333333;
double r84434 = 5.0;
double r84435 = pow(r84421, r84434);
double r84436 = r84425 / r84435;
double r84437 = cbrt(r84436);
double r84438 = 0.1111111111111111;
double r84439 = -r84438;
double r84440 = r84437 * r84439;
double r84441 = fma(r84432, r84433, r84440);
double r84442 = fma(r84424, r84429, r84441);
double r84443 = 2.6276466578463683e-07;
bool r84444 = r84421 <= r84443;
double r84445 = 1.0;
double r84446 = r84445 + r84421;
double r84447 = cbrt(r84446);
double r84448 = cbrt(r84421);
double r84449 = r84447 - r84448;
double r84450 = 0.6666666666666666;
double r84451 = pow(r84421, r84450);
double r84452 = r84448 + r84447;
double r84453 = r84452 * r84447;
double r84454 = r84451 + r84453;
double r84455 = r84445 / r84454;
double r84456 = r84444 ? r84449 : r84455;
double r84457 = r84423 ? r84442 : r84456;
return r84457;
}



Bits error versus x
if x < -4221.179793202217Initial program 60.1
rmApplied add-cube-cbrt60.3
Applied cbrt-prod60.6
Simplified60.6
Simplified60.6
Taylor expanded around inf 45.5
Simplified31.7
if -4221.179793202217 < x < 2.6276466578463683e-07Initial program 0.1
if 2.6276466578463683e-07 < x Initial program 58.4
rmApplied flip3--58.3
Simplified1.0
Simplified4.4
Final simplification8.9
herbie shell --seed 2019195 +o rules:numerics
(FPCore (x)
:name "2cbrt (problem 3.3.4)"
(- (cbrt (+ x 1.0)) (cbrt x)))