Average Error: 30.1 → 11.8
Time: 7.1s
Precision: 64
\[\sqrt[3]{x + 1} - \sqrt[3]{x}\]
\[\begin{array}{l} \mathbf{if}\;x \le -4.46844580859389832 \cdot 10^{61}:\\ \;\;\;\;\left(0.333333333333333315 \cdot {\left(\frac{1}{{x}^{2}}\right)}^{\frac{1}{3}} + 0.061728395061728392 \cdot {\left(\frac{1}{{x}^{8}}\right)}^{\frac{1}{3}}\right) - 0.1111111111111111 \cdot {\left(\frac{1}{{x}^{5}}\right)}^{\frac{1}{3}}\\ \mathbf{elif}\;x \le 5.8335499050307714 \cdot 10^{-4}:\\ \;\;\;\;\log \left(e^{\frac{\sqrt[3]{{x}^{3} + {1}^{3}}}{\sqrt[3]{x \cdot x + \left(1 \cdot 1 - x \cdot 1\right)}} - \sqrt[3]{x}}\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{0 + 1}{\sqrt[3]{x + 1} \cdot \left(\sqrt[3]{x + 1} + \sqrt[3]{x}\right) + {x}^{\frac{2}{3}}}\\ \end{array}\]
\sqrt[3]{x + 1} - \sqrt[3]{x}
\begin{array}{l}
\mathbf{if}\;x \le -4.46844580859389832 \cdot 10^{61}:\\
\;\;\;\;\left(0.333333333333333315 \cdot {\left(\frac{1}{{x}^{2}}\right)}^{\frac{1}{3}} + 0.061728395061728392 \cdot {\left(\frac{1}{{x}^{8}}\right)}^{\frac{1}{3}}\right) - 0.1111111111111111 \cdot {\left(\frac{1}{{x}^{5}}\right)}^{\frac{1}{3}}\\

\mathbf{elif}\;x \le 5.8335499050307714 \cdot 10^{-4}:\\
\;\;\;\;\log \left(e^{\frac{\sqrt[3]{{x}^{3} + {1}^{3}}}{\sqrt[3]{x \cdot x + \left(1 \cdot 1 - x \cdot 1\right)}} - \sqrt[3]{x}}\right)\\

\mathbf{else}:\\
\;\;\;\;\frac{0 + 1}{\sqrt[3]{x + 1} \cdot \left(\sqrt[3]{x + 1} + \sqrt[3]{x}\right) + {x}^{\frac{2}{3}}}\\

\end{array}
double f(double x) {
        double r77398 = x;
        double r77399 = 1.0;
        double r77400 = r77398 + r77399;
        double r77401 = cbrt(r77400);
        double r77402 = cbrt(r77398);
        double r77403 = r77401 - r77402;
        return r77403;
}

double f(double x) {
        double r77404 = x;
        double r77405 = -4.4684458085938983e+61;
        bool r77406 = r77404 <= r77405;
        double r77407 = 0.3333333333333333;
        double r77408 = 1.0;
        double r77409 = 2.0;
        double r77410 = pow(r77404, r77409);
        double r77411 = r77408 / r77410;
        double r77412 = 0.3333333333333333;
        double r77413 = pow(r77411, r77412);
        double r77414 = r77407 * r77413;
        double r77415 = 0.06172839506172839;
        double r77416 = 8.0;
        double r77417 = pow(r77404, r77416);
        double r77418 = r77408 / r77417;
        double r77419 = pow(r77418, r77412);
        double r77420 = r77415 * r77419;
        double r77421 = r77414 + r77420;
        double r77422 = 0.1111111111111111;
        double r77423 = 5.0;
        double r77424 = pow(r77404, r77423);
        double r77425 = r77408 / r77424;
        double r77426 = pow(r77425, r77412);
        double r77427 = r77422 * r77426;
        double r77428 = r77421 - r77427;
        double r77429 = 0.0005833549905030771;
        bool r77430 = r77404 <= r77429;
        double r77431 = 3.0;
        double r77432 = pow(r77404, r77431);
        double r77433 = 1.0;
        double r77434 = pow(r77433, r77431);
        double r77435 = r77432 + r77434;
        double r77436 = cbrt(r77435);
        double r77437 = r77404 * r77404;
        double r77438 = r77433 * r77433;
        double r77439 = r77404 * r77433;
        double r77440 = r77438 - r77439;
        double r77441 = r77437 + r77440;
        double r77442 = cbrt(r77441);
        double r77443 = r77436 / r77442;
        double r77444 = cbrt(r77404);
        double r77445 = r77443 - r77444;
        double r77446 = exp(r77445);
        double r77447 = log(r77446);
        double r77448 = 0.0;
        double r77449 = r77448 + r77433;
        double r77450 = r77404 + r77433;
        double r77451 = cbrt(r77450);
        double r77452 = r77451 + r77444;
        double r77453 = r77451 * r77452;
        double r77454 = 0.6666666666666666;
        double r77455 = pow(r77404, r77454);
        double r77456 = r77453 + r77455;
        double r77457 = r77449 / r77456;
        double r77458 = r77430 ? r77447 : r77457;
        double r77459 = r77406 ? r77428 : r77458;
        return r77459;
}

Error

Bits error versus x

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Split input into 3 regimes
  2. if x < -4.4684458085938983e+61

    1. Initial program 61.2

      \[\sqrt[3]{x + 1} - \sqrt[3]{x}\]
    2. Taylor expanded around inf 39.3

      \[\leadsto \color{blue}{\left(0.333333333333333315 \cdot {\left(\frac{1}{{x}^{2}}\right)}^{\frac{1}{3}} + 0.061728395061728392 \cdot {\left(\frac{1}{{x}^{8}}\right)}^{\frac{1}{3}}\right) - 0.1111111111111111 \cdot {\left(\frac{1}{{x}^{5}}\right)}^{\frac{1}{3}}}\]

    if -4.4684458085938983e+61 < x < 0.0005833549905030771

    1. Initial program 5.3

      \[\sqrt[3]{x + 1} - \sqrt[3]{x}\]
    2. Using strategy rm
    3. Applied add-log-exp5.8

      \[\leadsto \sqrt[3]{x + 1} - \color{blue}{\log \left(e^{\sqrt[3]{x}}\right)}\]
    4. Applied add-log-exp5.8

      \[\leadsto \color{blue}{\log \left(e^{\sqrt[3]{x + 1}}\right)} - \log \left(e^{\sqrt[3]{x}}\right)\]
    5. Applied diff-log5.8

      \[\leadsto \color{blue}{\log \left(\frac{e^{\sqrt[3]{x + 1}}}{e^{\sqrt[3]{x}}}\right)}\]
    6. Simplified5.3

      \[\leadsto \log \color{blue}{\left(e^{\sqrt[3]{x + 1} - \sqrt[3]{x}}\right)}\]
    7. Using strategy rm
    8. Applied flip3-+5.3

      \[\leadsto \log \left(e^{\sqrt[3]{\color{blue}{\frac{{x}^{3} + {1}^{3}}{x \cdot x + \left(1 \cdot 1 - x \cdot 1\right)}}} - \sqrt[3]{x}}\right)\]
    9. Applied cbrt-div5.2

      \[\leadsto \log \left(e^{\color{blue}{\frac{\sqrt[3]{{x}^{3} + {1}^{3}}}{\sqrt[3]{x \cdot x + \left(1 \cdot 1 - x \cdot 1\right)}}} - \sqrt[3]{x}}\right)\]

    if 0.0005833549905030771 < x

    1. Initial program 58.7

      \[\sqrt[3]{x + 1} - \sqrt[3]{x}\]
    2. Using strategy rm
    3. Applied flip3--58.6

      \[\leadsto \color{blue}{\frac{{\left(\sqrt[3]{x + 1}\right)}^{3} - {\left(\sqrt[3]{x}\right)}^{3}}{\sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1} + \left(\sqrt[3]{x} \cdot \sqrt[3]{x} + \sqrt[3]{x + 1} \cdot \sqrt[3]{x}\right)}}\]
    4. Simplified1.0

      \[\leadsto \frac{\color{blue}{0 + 1}}{\sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1} + \left(\sqrt[3]{x} \cdot \sqrt[3]{x} + \sqrt[3]{x + 1} \cdot \sqrt[3]{x}\right)}\]
    5. Simplified4.5

      \[\leadsto \frac{0 + 1}{\color{blue}{\sqrt[3]{x + 1} \cdot \left(\sqrt[3]{x + 1} + \sqrt[3]{x}\right) + {x}^{\frac{2}{3}}}}\]
  3. Recombined 3 regimes into one program.
  4. Final simplification11.8

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le -4.46844580859389832 \cdot 10^{61}:\\ \;\;\;\;\left(0.333333333333333315 \cdot {\left(\frac{1}{{x}^{2}}\right)}^{\frac{1}{3}} + 0.061728395061728392 \cdot {\left(\frac{1}{{x}^{8}}\right)}^{\frac{1}{3}}\right) - 0.1111111111111111 \cdot {\left(\frac{1}{{x}^{5}}\right)}^{\frac{1}{3}}\\ \mathbf{elif}\;x \le 5.8335499050307714 \cdot 10^{-4}:\\ \;\;\;\;\log \left(e^{\frac{\sqrt[3]{{x}^{3} + {1}^{3}}}{\sqrt[3]{x \cdot x + \left(1 \cdot 1 - x \cdot 1\right)}} - \sqrt[3]{x}}\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{0 + 1}{\sqrt[3]{x + 1} \cdot \left(\sqrt[3]{x + 1} + \sqrt[3]{x}\right) + {x}^{\frac{2}{3}}}\\ \end{array}\]

Reproduce

herbie shell --seed 2020065 
(FPCore (x)
  :name "2cbrt (problem 3.3.4)"
  :precision binary64
  (- (cbrt (+ x 1)) (cbrt x)))