Average Error: 29.9 → 8.9
Time: 16.2s
Precision: 64
\[\sqrt[3]{x + 1} - \sqrt[3]{x}\]
\[\begin{array}{l} \mathbf{if}\;x \le -0.9906799218317323685312203451758250594139:\\ \;\;\;\;\mathsf{fma}\left(\sqrt[3]{\frac{1}{{x}^{5}}}, -0.1111111111111111049432054187491303309798, \mathsf{fma}\left(0.3333333333333333148296162562473909929395, \sqrt[3]{\frac{1}{x \cdot x}}, 0.06172839506172839163511412152729462832212 \cdot \sqrt[3]{\frac{1}{{x}^{8}}}\right)\right)\\ \mathbf{elif}\;x \le 0.04777649667975737701741678620237507857382:\\ \;\;\;\;\log \left(e^{{\left(1 + x\right)}^{\frac{1}{3}} - \sqrt[3]{x}}\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{\left(\sqrt[3]{x} + \sqrt[3]{1 + x}\right) \cdot \sqrt[3]{1 + x} + {x}^{\frac{2}{3}}}\\ \end{array}\]
\sqrt[3]{x + 1} - \sqrt[3]{x}
\begin{array}{l}
\mathbf{if}\;x \le -0.9906799218317323685312203451758250594139:\\
\;\;\;\;\mathsf{fma}\left(\sqrt[3]{\frac{1}{{x}^{5}}}, -0.1111111111111111049432054187491303309798, \mathsf{fma}\left(0.3333333333333333148296162562473909929395, \sqrt[3]{\frac{1}{x \cdot x}}, 0.06172839506172839163511412152729462832212 \cdot \sqrt[3]{\frac{1}{{x}^{8}}}\right)\right)\\

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

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

\end{array}
double f(double x) {
        double r83016 = x;
        double r83017 = 1.0;
        double r83018 = r83016 + r83017;
        double r83019 = cbrt(r83018);
        double r83020 = cbrt(r83016);
        double r83021 = r83019 - r83020;
        return r83021;
}

double f(double x) {
        double r83022 = x;
        double r83023 = -0.9906799218317324;
        bool r83024 = r83022 <= r83023;
        double r83025 = 1.0;
        double r83026 = 5.0;
        double r83027 = pow(r83022, r83026);
        double r83028 = r83025 / r83027;
        double r83029 = cbrt(r83028);
        double r83030 = 0.1111111111111111;
        double r83031 = -r83030;
        double r83032 = 0.3333333333333333;
        double r83033 = r83022 * r83022;
        double r83034 = r83025 / r83033;
        double r83035 = cbrt(r83034);
        double r83036 = 0.06172839506172839;
        double r83037 = 8.0;
        double r83038 = pow(r83022, r83037);
        double r83039 = r83025 / r83038;
        double r83040 = cbrt(r83039);
        double r83041 = r83036 * r83040;
        double r83042 = fma(r83032, r83035, r83041);
        double r83043 = fma(r83029, r83031, r83042);
        double r83044 = 0.04777649667975738;
        bool r83045 = r83022 <= r83044;
        double r83046 = 1.0;
        double r83047 = r83046 + r83022;
        double r83048 = 0.3333333333333333;
        double r83049 = pow(r83047, r83048);
        double r83050 = cbrt(r83022);
        double r83051 = r83049 - r83050;
        double r83052 = exp(r83051);
        double r83053 = log(r83052);
        double r83054 = cbrt(r83047);
        double r83055 = r83050 + r83054;
        double r83056 = r83055 * r83054;
        double r83057 = 0.6666666666666666;
        double r83058 = pow(r83022, r83057);
        double r83059 = r83056 + r83058;
        double r83060 = r83046 / r83059;
        double r83061 = r83045 ? r83053 : r83060;
        double r83062 = r83024 ? r83043 : r83061;
        return r83062;
}

Error

Bits error versus x

Derivation

  1. Split input into 3 regimes
  2. if x < -0.9906799218317324

    1. Initial program 59.6

      \[\sqrt[3]{x + 1} - \sqrt[3]{x}\]
    2. Simplified59.6

      \[\leadsto \color{blue}{\sqrt[3]{1 + x} - \sqrt[3]{x}}\]
    3. Using strategy rm
    4. Applied add-cube-cbrt59.8

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

      \[\leadsto \color{blue}{\left(0.3333333333333333148296162562473909929395 \cdot {\left(\frac{1}{{x}^{2}}\right)}^{\frac{1}{3}} + 0.06172839506172839163511412152729462832212 \cdot {\left(\frac{1}{{x}^{8}}\right)}^{\frac{1}{3}}\right) - 0.1111111111111111049432054187491303309798 \cdot {\left(\frac{1}{{x}^{5}}\right)}^{\frac{1}{3}}}\]
    6. Simplified30.3

      \[\leadsto \color{blue}{\mathsf{fma}\left(\sqrt[3]{\frac{1}{{x}^{5}}}, -0.1111111111111111049432054187491303309798, \mathsf{fma}\left(0.3333333333333333148296162562473909929395, \sqrt[3]{\frac{1}{x \cdot x}}, 0.06172839506172839163511412152729462832212 \cdot \sqrt[3]{\frac{1}{{x}^{8}}}\right)\right)}\]

    if -0.9906799218317324 < x < 0.04777649667975738

    1. Initial program 0.0

      \[\sqrt[3]{x + 1} - \sqrt[3]{x}\]
    2. Simplified0.0

      \[\leadsto \color{blue}{\sqrt[3]{1 + x} - \sqrt[3]{x}}\]
    3. Using strategy rm
    4. Applied add-log-exp0.1

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

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

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

      \[\leadsto \log \color{blue}{\left(e^{\sqrt[3]{1 + x} - \sqrt[3]{x}}\right)}\]
    8. Using strategy rm
    9. Applied pow1/30.0

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

    if 0.04777649667975738 < x

    1. Initial program 59.3

      \[\sqrt[3]{x + 1} - \sqrt[3]{x}\]
    2. Simplified59.3

      \[\leadsto \color{blue}{\sqrt[3]{1 + x} - \sqrt[3]{x}}\]
    3. Using strategy rm
    4. Applied flip3--59.1

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

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le -0.9906799218317323685312203451758250594139:\\ \;\;\;\;\mathsf{fma}\left(\sqrt[3]{\frac{1}{{x}^{5}}}, -0.1111111111111111049432054187491303309798, \mathsf{fma}\left(0.3333333333333333148296162562473909929395, \sqrt[3]{\frac{1}{x \cdot x}}, 0.06172839506172839163511412152729462832212 \cdot \sqrt[3]{\frac{1}{{x}^{8}}}\right)\right)\\ \mathbf{elif}\;x \le 0.04777649667975737701741678620237507857382:\\ \;\;\;\;\log \left(e^{{\left(1 + x\right)}^{\frac{1}{3}} - \sqrt[3]{x}}\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{\left(\sqrt[3]{x} + \sqrt[3]{1 + x}\right) \cdot \sqrt[3]{1 + x} + {x}^{\frac{2}{3}}}\\ \end{array}\]

Reproduce

herbie shell --seed 2019174 +o rules:numerics
(FPCore (x)
  :name "2cbrt (problem 3.3.4)"
  (- (cbrt (+ x 1.0)) (cbrt x)))