Average Error: 30.0 → 0.4
Time: 15.9s
Precision: 64
\[\sqrt[3]{x + 1} - \sqrt[3]{x}\]
\[\begin{array}{l} \mathbf{if}\;x \le -117719.96592234219:\\ \;\;\;\;\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)\\ \mathbf{elif}\;x \le 63824.49669460044:\\ \;\;\;\;\sqrt[3]{\sqrt[3]{x + 1}} \cdot \sqrt[3]{\sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1}} - \sqrt[3]{x}\\ \mathbf{else}:\\ \;\;\;\;\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)\\ \end{array}\]
double f(double x) {
        double r2196034 = x;
        double r2196035 = 1.0;
        double r2196036 = r2196034 + r2196035;
        double r2196037 = cbrt(r2196036);
        double r2196038 = cbrt(r2196034);
        double r2196039 = r2196037 - r2196038;
        return r2196039;
}

double f(double x) {
        double r2196040 = x;
        double r2196041 = -117719.96592234219;
        bool r2196042 = r2196040 <= r2196041;
        double r2196043 = cbrt(r2196040);
        double r2196044 = r2196043 / r2196040;
        double r2196045 = 0.3333333333333333;
        double r2196046 = -0.1111111111111111;
        double r2196047 = r2196046 / r2196040;
        double r2196048 = r2196045 + r2196047;
        double r2196049 = r2196044 * r2196048;
        double r2196050 = -1.0;
        double r2196051 = cbrt(r2196050);
        double r2196052 = -r2196040;
        double r2196053 = cbrt(r2196052);
        double r2196054 = r2196051 * r2196053;
        double r2196055 = r2196043 - r2196054;
        double r2196056 = r2196049 + r2196055;
        double r2196057 = 63824.49669460044;
        bool r2196058 = r2196040 <= r2196057;
        double r2196059 = 1.0;
        double r2196060 = r2196040 + r2196059;
        double r2196061 = cbrt(r2196060);
        double r2196062 = cbrt(r2196061);
        double r2196063 = r2196061 * r2196061;
        double r2196064 = cbrt(r2196063);
        double r2196065 = r2196062 * r2196064;
        double r2196066 = r2196065 - r2196043;
        double r2196067 = r2196058 ? r2196066 : r2196056;
        double r2196068 = r2196042 ? r2196056 : r2196067;
        return r2196068;
}

\sqrt[3]{x + 1} - \sqrt[3]{x}
\begin{array}{l}
\mathbf{if}\;x \le -117719.96592234219:\\
\;\;\;\;\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)\\

\mathbf{elif}\;x \le 63824.49669460044:\\
\;\;\;\;\sqrt[3]{\sqrt[3]{x + 1}} \cdot \sqrt[3]{\sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1}} - \sqrt[3]{x}\\

\mathbf{else}:\\
\;\;\;\;\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)\\

\end{array}

Error

Bits error versus x

Derivation

  1. Split input into 2 regimes
  2. if x < -117719.96592234219 or 63824.49669460044 < x

    1. Initial program 60.5

      \[\sqrt[3]{x + 1} - \sqrt[3]{x}\]
    2. Using strategy rm
    3. Applied add-cube-cbrt60.7

      \[\leadsto \sqrt[3]{\color{blue}{\left(\sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1}\right) \cdot \sqrt[3]{x + 1}}} - \sqrt[3]{x}\]
    4. Applied cbrt-prod60.7

      \[\leadsto \color{blue}{\sqrt[3]{\sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1}} \cdot \sqrt[3]{\sqrt[3]{x + 1}}} - \sqrt[3]{x}\]
    5. 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)}\]
    6. 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 -117719.96592234219 < x < 63824.49669460044

    1. Initial program 0.2

      \[\sqrt[3]{x + 1} - \sqrt[3]{x}\]
    2. Using strategy rm
    3. Applied add-cube-cbrt0.2

      \[\leadsto \sqrt[3]{\color{blue}{\left(\sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1}\right) \cdot \sqrt[3]{x + 1}}} - \sqrt[3]{x}\]
    4. Applied cbrt-prod0.2

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le -117719.96592234219:\\ \;\;\;\;\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)\\ \mathbf{elif}\;x \le 63824.49669460044:\\ \;\;\;\;\sqrt[3]{\sqrt[3]{x + 1}} \cdot \sqrt[3]{\sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1}} - \sqrt[3]{x}\\ \mathbf{else}:\\ \;\;\;\;\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)\\ \end{array}\]

Reproduce

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