Average Error: 30.2 → 9.0
Time: 17.0s
Precision: 64
\[\sqrt[3]{x + 1} - \sqrt[3]{x}\]
\[\begin{array}{l} \mathbf{if}\;x \le -4661.327623294632758188527077436447143555:\\ \;\;\;\;\mathsf{fma}\left(0.3333333333333333148296162562473909929395, \sqrt[3]{\frac{1}{{x}^{2}}}, \sqrt[3]{\frac{1}{{x}^{8}}} \cdot 0.06172839506172839163511412152729462832212\right) - \sqrt[3]{\frac{1}{{x}^{5}}} \cdot 0.1111111111111111049432054187491303309798\\ \mathbf{elif}\;x \le 1.421809655538258285959601900927395945473 \cdot 10^{-4}:\\ \;\;\;\;\log \left(e^{\sqrt[3]{x + 1} - \left(\sqrt[3]{\sqrt[3]{x}} \cdot \sqrt[3]{\sqrt[3]{x}}\right) \cdot \sqrt[3]{\sqrt[3]{x}}}\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{\mathsf{fma}\left(\sqrt[3]{1 + x} + \sqrt[3]{x}, \sqrt[3]{1 + x}, {x}^{\frac{2}{3}}\right)}\\ \end{array}\]
\sqrt[3]{x + 1} - \sqrt[3]{x}
\begin{array}{l}
\mathbf{if}\;x \le -4661.327623294632758188527077436447143555:\\
\;\;\;\;\mathsf{fma}\left(0.3333333333333333148296162562473909929395, \sqrt[3]{\frac{1}{{x}^{2}}}, \sqrt[3]{\frac{1}{{x}^{8}}} \cdot 0.06172839506172839163511412152729462832212\right) - \sqrt[3]{\frac{1}{{x}^{5}}} \cdot 0.1111111111111111049432054187491303309798\\

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

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

\end{array}
double f(double x) {
        double r48023 = x;
        double r48024 = 1.0;
        double r48025 = r48023 + r48024;
        double r48026 = cbrt(r48025);
        double r48027 = cbrt(r48023);
        double r48028 = r48026 - r48027;
        return r48028;
}

double f(double x) {
        double r48029 = x;
        double r48030 = -4661.327623294633;
        bool r48031 = r48029 <= r48030;
        double r48032 = 0.3333333333333333;
        double r48033 = 1.0;
        double r48034 = 2.0;
        double r48035 = pow(r48029, r48034);
        double r48036 = r48033 / r48035;
        double r48037 = cbrt(r48036);
        double r48038 = 8.0;
        double r48039 = pow(r48029, r48038);
        double r48040 = r48033 / r48039;
        double r48041 = cbrt(r48040);
        double r48042 = 0.06172839506172839;
        double r48043 = r48041 * r48042;
        double r48044 = fma(r48032, r48037, r48043);
        double r48045 = 5.0;
        double r48046 = pow(r48029, r48045);
        double r48047 = r48033 / r48046;
        double r48048 = cbrt(r48047);
        double r48049 = 0.1111111111111111;
        double r48050 = r48048 * r48049;
        double r48051 = r48044 - r48050;
        double r48052 = 0.00014218096555382583;
        bool r48053 = r48029 <= r48052;
        double r48054 = 1.0;
        double r48055 = r48029 + r48054;
        double r48056 = cbrt(r48055);
        double r48057 = cbrt(r48029);
        double r48058 = cbrt(r48057);
        double r48059 = r48058 * r48058;
        double r48060 = r48059 * r48058;
        double r48061 = r48056 - r48060;
        double r48062 = exp(r48061);
        double r48063 = log(r48062);
        double r48064 = r48054 + r48029;
        double r48065 = cbrt(r48064);
        double r48066 = r48065 + r48057;
        double r48067 = 0.6666666666666666;
        double r48068 = pow(r48029, r48067);
        double r48069 = fma(r48066, r48065, r48068);
        double r48070 = r48054 / r48069;
        double r48071 = r48053 ? r48063 : r48070;
        double r48072 = r48031 ? r48051 : r48071;
        return r48072;
}

Error

Bits error versus x

Derivation

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

    1. Initial program 60.3

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

      \[\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}}}\]
    3. Simplified31.1

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

    if -4661.327623294633 < x < 0.00014218096555382583

    1. Initial program 0.1

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

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

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

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

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

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

    if 0.00014218096555382583 < x

    1. Initial program 59.1

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

      \[\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}{\mathsf{fma}\left(\sqrt[3]{1 + x} + \sqrt[3]{x}, \sqrt[3]{1 + x}, {x}^{\frac{2}{3}}\right)}}\]
  3. Recombined 3 regimes into one program.
  4. Final simplification9.0

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

Reproduce

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