Average Error: 29.9 → 12.5
Time: 6.3s
Precision: 64
\[\sqrt[3]{x + 1} - \sqrt[3]{x}\]
\[\begin{array}{l} \mathbf{if}\;x \le -4.5096422144891263 \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 2863.24513512135809:\\ \;\;\;\;\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.5096422144891263 \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 2863.24513512135809:\\
\;\;\;\;\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 r52259 = x;
        double r52260 = 1.0;
        double r52261 = r52259 + r52260;
        double r52262 = cbrt(r52261);
        double r52263 = cbrt(r52259);
        double r52264 = r52262 - r52263;
        return r52264;
}

double f(double x) {
        double r52265 = x;
        double r52266 = -4.5096422144891263e+61;
        bool r52267 = r52265 <= r52266;
        double r52268 = 1.0;
        double r52269 = 2.0;
        double r52270 = pow(r52265, r52269);
        double r52271 = r52268 / r52270;
        double r52272 = 0.3333333333333333;
        double r52273 = pow(r52271, r52272);
        double r52274 = 0.3333333333333333;
        double r52275 = 0.06172839506172839;
        double r52276 = 8.0;
        double r52277 = pow(r52265, r52276);
        double r52278 = r52268 / r52277;
        double r52279 = pow(r52278, r52272);
        double r52280 = r52275 * r52279;
        double r52281 = 0.1111111111111111;
        double r52282 = 5.0;
        double r52283 = pow(r52265, r52282);
        double r52284 = r52268 / r52283;
        double r52285 = pow(r52284, r52272);
        double r52286 = r52281 * r52285;
        double r52287 = r52280 - r52286;
        double r52288 = fma(r52273, r52274, r52287);
        double r52289 = 2863.245135121358;
        bool r52290 = r52265 <= r52289;
        double r52291 = 3.0;
        double r52292 = pow(r52265, r52291);
        double r52293 = 1.0;
        double r52294 = pow(r52293, r52291);
        double r52295 = r52292 + r52294;
        double r52296 = cbrt(r52295);
        double r52297 = r52265 * r52265;
        double r52298 = r52293 * r52293;
        double r52299 = r52265 * r52293;
        double r52300 = r52298 - r52299;
        double r52301 = r52297 + r52300;
        double r52302 = cbrt(r52301);
        double r52303 = r52296 / r52302;
        double r52304 = cbrt(r52265);
        double r52305 = r52303 - r52304;
        double r52306 = 7.0;
        double r52307 = pow(r52265, r52306);
        double r52308 = r52268 / r52307;
        double r52309 = pow(r52308, r52272);
        double r52310 = 0.04938271604938271;
        double r52311 = 0.6666666666666666;
        double r52312 = r52268 / r52265;
        double r52313 = pow(r52312, r52272);
        double r52314 = r52311 * r52313;
        double r52315 = 4.0;
        double r52316 = pow(r52265, r52315);
        double r52317 = r52268 / r52316;
        double r52318 = pow(r52317, r52272);
        double r52319 = r52281 * r52318;
        double r52320 = r52314 - r52319;
        double r52321 = fma(r52309, r52310, r52320);
        double r52322 = r52265 + r52293;
        double r52323 = cbrt(r52322);
        double r52324 = r52323 + r52304;
        double r52325 = r52321 / r52324;
        double r52326 = r52290 ? r52305 : r52325;
        double r52327 = r52267 ? r52288 : r52326;
        return r52327;
}

Error

Bits error versus x

Derivation

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

    1. Initial program 61.2

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

      \[\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. Simplified41.6

      \[\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.5096422144891263e+61 < x < 2863.245135121358

    1. Initial program 5.2

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

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

      \[\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 2863.245135121358 < x

    1. Initial program 60.1

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

      \[\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 simplification12.5

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le -4.5096422144891263 \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 2863.24513512135809:\\ \;\;\;\;\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 2020081 +o rules:numerics
(FPCore (x)
  :name "2cbrt (problem 3.3.4)"
  :precision binary64
  (- (cbrt (+ x 1)) (cbrt x)))