Average Error: 29.9 → 0.4
Time: 14.8s
Precision: 64
\[\sqrt[3]{x + 1} - \sqrt[3]{x}\]
\[\begin{array}{l} \mathbf{if}\;\sqrt[3]{1 + x} - \sqrt[3]{x} \le 8.979724498203723 \cdot 10^{-06}:\\ \;\;\;\;\left(\sqrt[3]{x} - \sqrt[3]{-1} \cdot \sqrt[3]{-x}\right) + \left(\frac{\frac{-1}{9}}{x} + \frac{1}{3}\right) \cdot \frac{\sqrt[3]{x}}{x}\\ \mathbf{else}:\\ \;\;\;\;\sqrt[3]{1 + x} - \sqrt[3]{x}\\ \end{array}\]
double f(double x) {
        double r4908202 = x;
        double r4908203 = 1.0;
        double r4908204 = r4908202 + r4908203;
        double r4908205 = cbrt(r4908204);
        double r4908206 = cbrt(r4908202);
        double r4908207 = r4908205 - r4908206;
        return r4908207;
}

double f(double x) {
        double r4908208 = 1.0;
        double r4908209 = x;
        double r4908210 = r4908208 + r4908209;
        double r4908211 = cbrt(r4908210);
        double r4908212 = cbrt(r4908209);
        double r4908213 = r4908211 - r4908212;
        double r4908214 = 8.979724498203723e-06;
        bool r4908215 = r4908213 <= r4908214;
        double r4908216 = -1.0;
        double r4908217 = cbrt(r4908216);
        double r4908218 = -r4908209;
        double r4908219 = cbrt(r4908218);
        double r4908220 = r4908217 * r4908219;
        double r4908221 = r4908212 - r4908220;
        double r4908222 = -0.1111111111111111;
        double r4908223 = r4908222 / r4908209;
        double r4908224 = 0.3333333333333333;
        double r4908225 = r4908223 + r4908224;
        double r4908226 = r4908212 / r4908209;
        double r4908227 = r4908225 * r4908226;
        double r4908228 = r4908221 + r4908227;
        double r4908229 = r4908215 ? r4908228 : r4908213;
        return r4908229;
}

\sqrt[3]{x + 1} - \sqrt[3]{x}
\begin{array}{l}
\mathbf{if}\;\sqrt[3]{1 + x} - \sqrt[3]{x} \le 8.979724498203723 \cdot 10^{-06}:\\
\;\;\;\;\left(\sqrt[3]{x} - \sqrt[3]{-1} \cdot \sqrt[3]{-x}\right) + \left(\frac{\frac{-1}{9}}{x} + \frac{1}{3}\right) \cdot \frac{\sqrt[3]{x}}{x}\\

\mathbf{else}:\\
\;\;\;\;\sqrt[3]{1 + x} - \sqrt[3]{x}\\

\end{array}

Error

Bits error versus x

Derivation

  1. Split input into 2 regimes
  2. if (- (cbrt (+ x 1)) (cbrt x)) < 8.979724498203723e-06

    1. Initial program 60.6

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

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

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

    if 8.979724498203723e-06 < (- (cbrt (+ x 1)) (cbrt x))

    1. Initial program 0.2

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

      \[\leadsto \sqrt[3]{x + 1} - \color{blue}{{x}^{\frac{1}{3}}}\]
    3. Simplified0.2

      \[\leadsto \sqrt[3]{x + 1} - \color{blue}{\sqrt[3]{x}}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification0.4

    \[\leadsto \begin{array}{l} \mathbf{if}\;\sqrt[3]{1 + x} - \sqrt[3]{x} \le 8.979724498203723 \cdot 10^{-06}:\\ \;\;\;\;\left(\sqrt[3]{x} - \sqrt[3]{-1} \cdot \sqrt[3]{-x}\right) + \left(\frac{\frac{-1}{9}}{x} + \frac{1}{3}\right) \cdot \frac{\sqrt[3]{x}}{x}\\ \mathbf{else}:\\ \;\;\;\;\sqrt[3]{1 + x} - \sqrt[3]{x}\\ \end{array}\]

Reproduce

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