\sqrt[3]{x + 1} - \sqrt[3]{x}\begin{array}{l}
\mathbf{if}\;\sqrt[3]{x + 1} - \sqrt[3]{x} \le 1.63025788424420170485973358154296875 \cdot 10^{-7}:\\
\;\;\;\;\left(\sqrt[3]{x} - \sqrt[3]{-1} \cdot \sqrt[3]{-x}\right) + \frac{\sqrt[3]{x}}{x} \cdot \left(0.3333333333333333148296162562473909929395 - \frac{0.1111111111111111049432054187491303309798}{x}\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\sqrt[3]{1} \cdot \left(x \cdot \left(0.3333333333333333148296162562473909929395 + 0.05555555555555555247160270937456516548991 \cdot x\right) + 1\right) - \left(\left(x \cdot x\right) \cdot \sqrt[3]{\frac{1}{{1}^{5}}}\right) \cdot \frac{1}{6}\right) - \sqrt[3]{x}\\
\end{array}double f(double x) {
double r71360 = x;
double r71361 = 1.0;
double r71362 = r71360 + r71361;
double r71363 = cbrt(r71362);
double r71364 = cbrt(r71360);
double r71365 = r71363 - r71364;
return r71365;
}
double f(double x) {
double r71366 = x;
double r71367 = 1.0;
double r71368 = r71366 + r71367;
double r71369 = cbrt(r71368);
double r71370 = cbrt(r71366);
double r71371 = r71369 - r71370;
double r71372 = 1.6302578842442017e-07;
bool r71373 = r71371 <= r71372;
double r71374 = -1.0;
double r71375 = cbrt(r71374);
double r71376 = -r71366;
double r71377 = cbrt(r71376);
double r71378 = r71375 * r71377;
double r71379 = r71370 - r71378;
double r71380 = r71370 / r71366;
double r71381 = 0.3333333333333333;
double r71382 = 0.1111111111111111;
double r71383 = r71382 / r71366;
double r71384 = r71381 - r71383;
double r71385 = r71380 * r71384;
double r71386 = r71379 + r71385;
double r71387 = cbrt(r71367);
double r71388 = 0.05555555555555555;
double r71389 = r71388 * r71366;
double r71390 = r71381 + r71389;
double r71391 = r71366 * r71390;
double r71392 = 1.0;
double r71393 = r71391 + r71392;
double r71394 = r71387 * r71393;
double r71395 = r71366 * r71366;
double r71396 = 5.0;
double r71397 = pow(r71367, r71396);
double r71398 = r71392 / r71397;
double r71399 = cbrt(r71398);
double r71400 = r71395 * r71399;
double r71401 = 0.16666666666666666;
double r71402 = r71400 * r71401;
double r71403 = r71394 - r71402;
double r71404 = r71403 - r71370;
double r71405 = r71373 ? r71386 : r71404;
return r71405;
}



Bits error versus x
Results
if (- (cbrt (+ x 1.0)) (cbrt x)) < 1.6302578842442017e-07Initial program 60.9
rmApplied add-cube-cbrt61.2
Taylor expanded around -inf 64.0
Simplified0.6
if 1.6302578842442017e-07 < (- (cbrt (+ x 1.0)) (cbrt x)) Initial program 0.5
rmApplied add-cube-cbrt0.6
Taylor expanded around 0 33.1
Simplified2.2
Final simplification1.4
herbie shell --seed 2019351
(FPCore (x)
:name "2cbrt (problem 3.3.4)"
:precision binary64
(- (cbrt (+ x 1)) (cbrt x)))