Average Error: 29.5 → 11.8
Time: 5.7s
Precision: 64
\[\sqrt[3]{x + 1} - \sqrt[3]{x}\]
\[\begin{array}{l} \mathbf{if}\;x \le -4.50213572021831194 \cdot 10^{61}:\\ \;\;\;\;\mathsf{fma}\left({\left(\frac{1}{{x}^{2}}\right)}^{\frac{1}{3}}, 0.333333333333333315, 0.061728395061728392 \cdot {\left(\frac{1}{{x}^{8}}\right)}^{\frac{1}{3}} - 0.1111111111111111 \cdot {\left(\frac{1}{{x}^{5}}\right)}^{\frac{1}{3}}\right)\\ \mathbf{elif}\;x \le 3065.55860304998032:\\ \;\;\;\;\frac{\sqrt[3]{{x}^{3} + {1}^{3}}}{\sqrt[3]{x \cdot x + \left(1 \cdot 1 - x \cdot 1\right)}} - \sqrt[3]{x}\\ \mathbf{else}:\\ \;\;\;\;\frac{\mathsf{fma}\left({\left(\frac{1}{{x}^{7}}\right)}^{\frac{1}{3}}, 0.04938271604938271, 0.66666666666666663 \cdot {\left(\frac{1}{x}\right)}^{\frac{1}{3}} - 0.1111111111111111 \cdot {\left(\frac{1}{{x}^{4}}\right)}^{\frac{1}{3}}\right)}{\sqrt[3]{x + 1} + \sqrt[3]{x}}\\ \end{array}\]
\sqrt[3]{x + 1} - \sqrt[3]{x}
\begin{array}{l}
\mathbf{if}\;x \le -4.50213572021831194 \cdot 10^{61}:\\
\;\;\;\;\mathsf{fma}\left({\left(\frac{1}{{x}^{2}}\right)}^{\frac{1}{3}}, 0.333333333333333315, 0.061728395061728392 \cdot {\left(\frac{1}{{x}^{8}}\right)}^{\frac{1}{3}} - 0.1111111111111111 \cdot {\left(\frac{1}{{x}^{5}}\right)}^{\frac{1}{3}}\right)\\

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

\mathbf{else}:\\
\;\;\;\;\frac{\mathsf{fma}\left({\left(\frac{1}{{x}^{7}}\right)}^{\frac{1}{3}}, 0.04938271604938271, 0.66666666666666663 \cdot {\left(\frac{1}{x}\right)}^{\frac{1}{3}} - 0.1111111111111111 \cdot {\left(\frac{1}{{x}^{4}}\right)}^{\frac{1}{3}}\right)}{\sqrt[3]{x + 1} + \sqrt[3]{x}}\\

\end{array}
double f(double x) {
        double r53209 = x;
        double r53210 = 1.0;
        double r53211 = r53209 + r53210;
        double r53212 = cbrt(r53211);
        double r53213 = cbrt(r53209);
        double r53214 = r53212 - r53213;
        return r53214;
}

double f(double x) {
        double r53215 = x;
        double r53216 = -4.502135720218312e+61;
        bool r53217 = r53215 <= r53216;
        double r53218 = 1.0;
        double r53219 = 2.0;
        double r53220 = pow(r53215, r53219);
        double r53221 = r53218 / r53220;
        double r53222 = 0.3333333333333333;
        double r53223 = pow(r53221, r53222);
        double r53224 = 0.3333333333333333;
        double r53225 = 0.06172839506172839;
        double r53226 = 8.0;
        double r53227 = pow(r53215, r53226);
        double r53228 = r53218 / r53227;
        double r53229 = pow(r53228, r53222);
        double r53230 = r53225 * r53229;
        double r53231 = 0.1111111111111111;
        double r53232 = 5.0;
        double r53233 = pow(r53215, r53232);
        double r53234 = r53218 / r53233;
        double r53235 = pow(r53234, r53222);
        double r53236 = r53231 * r53235;
        double r53237 = r53230 - r53236;
        double r53238 = fma(r53223, r53224, r53237);
        double r53239 = 3065.5586030499803;
        bool r53240 = r53215 <= r53239;
        double r53241 = 3.0;
        double r53242 = pow(r53215, r53241);
        double r53243 = 1.0;
        double r53244 = pow(r53243, r53241);
        double r53245 = r53242 + r53244;
        double r53246 = cbrt(r53245);
        double r53247 = r53215 * r53215;
        double r53248 = r53243 * r53243;
        double r53249 = r53215 * r53243;
        double r53250 = r53248 - r53249;
        double r53251 = r53247 + r53250;
        double r53252 = cbrt(r53251);
        double r53253 = r53246 / r53252;
        double r53254 = cbrt(r53215);
        double r53255 = r53253 - r53254;
        double r53256 = 7.0;
        double r53257 = pow(r53215, r53256);
        double r53258 = r53218 / r53257;
        double r53259 = pow(r53258, r53222);
        double r53260 = 0.04938271604938271;
        double r53261 = 0.6666666666666666;
        double r53262 = r53218 / r53215;
        double r53263 = pow(r53262, r53222);
        double r53264 = r53261 * r53263;
        double r53265 = 4.0;
        double r53266 = pow(r53215, r53265);
        double r53267 = r53218 / r53266;
        double r53268 = pow(r53267, r53222);
        double r53269 = r53231 * r53268;
        double r53270 = r53264 - r53269;
        double r53271 = fma(r53259, r53260, r53270);
        double r53272 = r53215 + r53243;
        double r53273 = cbrt(r53272);
        double r53274 = r53273 + r53254;
        double r53275 = r53271 / r53274;
        double r53276 = r53240 ? r53255 : r53275;
        double r53277 = r53217 ? r53238 : r53276;
        return r53277;
}

Error

Bits error versus x

Derivation

  1. Split input into 3 regimes
  2. if x < -4.502135720218312e+61

    1. Initial program 61.2

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

      \[\leadsto \color{blue}{\left(0.333333333333333315 \cdot {\left(\frac{1}{{x}^{2}}\right)}^{\frac{1}{3}} + 0.061728395061728392 \cdot {\left(\frac{1}{{x}^{8}}\right)}^{\frac{1}{3}}\right) - 0.1111111111111111 \cdot {\left(\frac{1}{{x}^{5}}\right)}^{\frac{1}{3}}}\]
    3. Simplified39.5

      \[\leadsto \color{blue}{\mathsf{fma}\left({\left(\frac{1}{{x}^{2}}\right)}^{\frac{1}{3}}, 0.333333333333333315, 0.061728395061728392 \cdot {\left(\frac{1}{{x}^{8}}\right)}^{\frac{1}{3}} - 0.1111111111111111 \cdot {\left(\frac{1}{{x}^{5}}\right)}^{\frac{1}{3}}\right)}\]

    if -4.502135720218312e+61 < x < 3065.5586030499803

    1. Initial program 5.0

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

      \[\leadsto \sqrt[3]{\color{blue}{\frac{{x}^{3} + {1}^{3}}{x \cdot x + \left(1 \cdot 1 - x \cdot 1\right)}}} - \sqrt[3]{x}\]
    4. Applied cbrt-div4.9

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

    if 3065.5586030499803 < x

    1. Initial program 60.0

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

      \[\leadsto \color{blue}{\frac{\sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1} - \sqrt[3]{x} \cdot \sqrt[3]{x}}{\sqrt[3]{x + 1} + \sqrt[3]{x}}}\]
    4. Taylor expanded around inf 5.1

      \[\leadsto \frac{\color{blue}{\left(0.04938271604938271 \cdot {\left(\frac{1}{{x}^{7}}\right)}^{\frac{1}{3}} + 0.66666666666666663 \cdot {\left(\frac{1}{x}\right)}^{\frac{1}{3}}\right) - 0.1111111111111111 \cdot {\left(\frac{1}{{x}^{4}}\right)}^{\frac{1}{3}}}}{\sqrt[3]{x + 1} + \sqrt[3]{x}}\]
    5. Simplified5.1

      \[\leadsto \frac{\color{blue}{\mathsf{fma}\left({\left(\frac{1}{{x}^{7}}\right)}^{\frac{1}{3}}, 0.04938271604938271, 0.66666666666666663 \cdot {\left(\frac{1}{x}\right)}^{\frac{1}{3}} - 0.1111111111111111 \cdot {\left(\frac{1}{{x}^{4}}\right)}^{\frac{1}{3}}\right)}}{\sqrt[3]{x + 1} + \sqrt[3]{x}}\]
  3. Recombined 3 regimes into one program.
  4. Final simplification11.8

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le -4.50213572021831194 \cdot 10^{61}:\\ \;\;\;\;\mathsf{fma}\left({\left(\frac{1}{{x}^{2}}\right)}^{\frac{1}{3}}, 0.333333333333333315, 0.061728395061728392 \cdot {\left(\frac{1}{{x}^{8}}\right)}^{\frac{1}{3}} - 0.1111111111111111 \cdot {\left(\frac{1}{{x}^{5}}\right)}^{\frac{1}{3}}\right)\\ \mathbf{elif}\;x \le 3065.55860304998032:\\ \;\;\;\;\frac{\sqrt[3]{{x}^{3} + {1}^{3}}}{\sqrt[3]{x \cdot x + \left(1 \cdot 1 - x \cdot 1\right)}} - \sqrt[3]{x}\\ \mathbf{else}:\\ \;\;\;\;\frac{\mathsf{fma}\left({\left(\frac{1}{{x}^{7}}\right)}^{\frac{1}{3}}, 0.04938271604938271, 0.66666666666666663 \cdot {\left(\frac{1}{x}\right)}^{\frac{1}{3}} - 0.1111111111111111 \cdot {\left(\frac{1}{{x}^{4}}\right)}^{\frac{1}{3}}\right)}{\sqrt[3]{x + 1} + \sqrt[3]{x}}\\ \end{array}\]

Reproduce

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