Average Error: 29.8 → 15.3
Time: 5.9s
Precision: 64
\[\sqrt[3]{x + 1} - \sqrt[3]{x}\]
\[\begin{array}{l} \mathbf{if}\;x \le -3618.8027686995374 \lor \neg \left(x \le 8001.0700410453628\right):\\ \;\;\;\;\sqrt[3]{\mathsf{fma}\left(-0.037037037037037035, \frac{1}{{x}^{3}}, \mathsf{fma}\left(0.0329218106995884732, \frac{1}{{x}^{4}}, \frac{\frac{0.037037037037037035}{x}}{x}\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(\sqrt{\sqrt[3]{\sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1}}} \cdot \sqrt{\sqrt[3]{\sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1}}}, \sqrt[3]{\sqrt[3]{x + 1}}, -\sqrt[3]{x}\right)\\ \end{array}\]
\sqrt[3]{x + 1} - \sqrt[3]{x}
\begin{array}{l}
\mathbf{if}\;x \le -3618.8027686995374 \lor \neg \left(x \le 8001.0700410453628\right):\\
\;\;\;\;\sqrt[3]{\mathsf{fma}\left(-0.037037037037037035, \frac{1}{{x}^{3}}, \mathsf{fma}\left(0.0329218106995884732, \frac{1}{{x}^{4}}, \frac{\frac{0.037037037037037035}{x}}{x}\right)\right)}\\

\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(\sqrt{\sqrt[3]{\sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1}}} \cdot \sqrt{\sqrt[3]{\sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1}}}, \sqrt[3]{\sqrt[3]{x + 1}}, -\sqrt[3]{x}\right)\\

\end{array}
double f(double x) {
        double r71773 = x;
        double r71774 = 1.0;
        double r71775 = r71773 + r71774;
        double r71776 = cbrt(r71775);
        double r71777 = cbrt(r71773);
        double r71778 = r71776 - r71777;
        return r71778;
}

double f(double x) {
        double r71779 = x;
        double r71780 = -3618.8027686995374;
        bool r71781 = r71779 <= r71780;
        double r71782 = 8001.070041045363;
        bool r71783 = r71779 <= r71782;
        double r71784 = !r71783;
        bool r71785 = r71781 || r71784;
        double r71786 = 0.037037037037037035;
        double r71787 = -r71786;
        double r71788 = 1.0;
        double r71789 = 3.0;
        double r71790 = pow(r71779, r71789);
        double r71791 = r71788 / r71790;
        double r71792 = 0.03292181069958847;
        double r71793 = 4.0;
        double r71794 = pow(r71779, r71793);
        double r71795 = r71788 / r71794;
        double r71796 = r71786 / r71779;
        double r71797 = r71796 / r71779;
        double r71798 = fma(r71792, r71795, r71797);
        double r71799 = fma(r71787, r71791, r71798);
        double r71800 = cbrt(r71799);
        double r71801 = 1.0;
        double r71802 = r71779 + r71801;
        double r71803 = cbrt(r71802);
        double r71804 = r71803 * r71803;
        double r71805 = cbrt(r71804);
        double r71806 = sqrt(r71805);
        double r71807 = r71806 * r71806;
        double r71808 = cbrt(r71803);
        double r71809 = cbrt(r71779);
        double r71810 = -r71809;
        double r71811 = fma(r71807, r71808, r71810);
        double r71812 = r71785 ? r71800 : r71811;
        return r71812;
}

Error

Bits error versus x

Derivation

  1. Split input into 2 regimes
  2. if x < -3618.8027686995374 or 8001.070041045363 < x

    1. Initial program 60.2

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

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

      \[\leadsto \sqrt[3]{\color{blue}{{\left(\sqrt[3]{x + 1} - \sqrt[3]{x}\right)}^{3}}}\]
    5. Taylor expanded around inf 31.6

      \[\leadsto \sqrt[3]{\color{blue}{\left(0.037037037037037035 \cdot \frac{1}{{x}^{2}} + 0.0329218106995884732 \cdot \frac{1}{{x}^{4}}\right) - 0.037037037037037035 \cdot \frac{1}{{x}^{3}}}}\]
    6. Simplified30.8

      \[\leadsto \sqrt[3]{\color{blue}{\mathsf{fma}\left(-0.037037037037037035, \frac{1}{{x}^{3}}, \mathsf{fma}\left(0.0329218106995884732, \frac{1}{{x}^{4}}, \frac{\frac{0.037037037037037035}{x}}{x}\right)\right)}}\]

    if -3618.8027686995374 < x < 8001.070041045363

    1. Initial program 0.1

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

      \[\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.1

      \[\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. Applied fma-neg0.1

      \[\leadsto \color{blue}{\mathsf{fma}\left(\sqrt[3]{\sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1}}, \sqrt[3]{\sqrt[3]{x + 1}}, -\sqrt[3]{x}\right)}\]
    6. Using strategy rm
    7. Applied add-sqr-sqrt0.1

      \[\leadsto \mathsf{fma}\left(\color{blue}{\sqrt{\sqrt[3]{\sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1}}} \cdot \sqrt{\sqrt[3]{\sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1}}}}, \sqrt[3]{\sqrt[3]{x + 1}}, -\sqrt[3]{x}\right)\]
  3. Recombined 2 regimes into one program.
  4. Final simplification15.3

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le -3618.8027686995374 \lor \neg \left(x \le 8001.0700410453628\right):\\ \;\;\;\;\sqrt[3]{\mathsf{fma}\left(-0.037037037037037035, \frac{1}{{x}^{3}}, \mathsf{fma}\left(0.0329218106995884732, \frac{1}{{x}^{4}}, \frac{\frac{0.037037037037037035}{x}}{x}\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(\sqrt{\sqrt[3]{\sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1}}} \cdot \sqrt{\sqrt[3]{\sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1}}}, \sqrt[3]{\sqrt[3]{x + 1}}, -\sqrt[3]{x}\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2020036 +o rules:numerics
(FPCore (x)
  :name "2cbrt (problem 3.3.4)"
  :precision binary64
  (- (cbrt (+ x 1)) (cbrt x)))