Average Error: 29.7 → 19.1
Time: 7.2s
Precision: 64
\[\sqrt[3]{x + 1} - \sqrt[3]{x}\]
\[\begin{array}{l} \mathbf{if}\;x \le -4.4954988095195466 \cdot 10^{61} \lor \neg \left(x \le 4040.64961886434185\right):\\ \;\;\;\;\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{else}:\\ \;\;\;\;\frac{\sqrt[3]{{x}^{3} + {1}^{3}}}{\sqrt[3]{x \cdot x + \left(1 \cdot 1 - x \cdot 1\right)}} - \sqrt[3]{x}\\ \end{array}\]
\sqrt[3]{x + 1} - \sqrt[3]{x}
\begin{array}{l}
\mathbf{if}\;x \le -4.4954988095195466 \cdot 10^{61} \lor \neg \left(x \le 4040.64961886434185\right):\\
\;\;\;\;\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{else}:\\
\;\;\;\;\frac{\sqrt[3]{{x}^{3} + {1}^{3}}}{\sqrt[3]{x \cdot x + \left(1 \cdot 1 - x \cdot 1\right)}} - \sqrt[3]{x}\\

\end{array}
double f(double x) {
        double r82289 = x;
        double r82290 = 1.0;
        double r82291 = r82289 + r82290;
        double r82292 = cbrt(r82291);
        double r82293 = cbrt(r82289);
        double r82294 = r82292 - r82293;
        return r82294;
}

double f(double x) {
        double r82295 = x;
        double r82296 = -4.4954988095195466e+61;
        bool r82297 = r82295 <= r82296;
        double r82298 = 4040.649618864342;
        bool r82299 = r82295 <= r82298;
        double r82300 = !r82299;
        bool r82301 = r82297 || r82300;
        double r82302 = 1.0;
        double r82303 = 2.0;
        double r82304 = pow(r82295, r82303);
        double r82305 = r82302 / r82304;
        double r82306 = 0.3333333333333333;
        double r82307 = pow(r82305, r82306);
        double r82308 = 0.3333333333333333;
        double r82309 = 0.06172839506172839;
        double r82310 = 8.0;
        double r82311 = pow(r82295, r82310);
        double r82312 = r82302 / r82311;
        double r82313 = pow(r82312, r82306);
        double r82314 = r82309 * r82313;
        double r82315 = 0.1111111111111111;
        double r82316 = 5.0;
        double r82317 = pow(r82295, r82316);
        double r82318 = r82302 / r82317;
        double r82319 = pow(r82318, r82306);
        double r82320 = r82315 * r82319;
        double r82321 = r82314 - r82320;
        double r82322 = fma(r82307, r82308, r82321);
        double r82323 = 3.0;
        double r82324 = pow(r82295, r82323);
        double r82325 = 1.0;
        double r82326 = pow(r82325, r82323);
        double r82327 = r82324 + r82326;
        double r82328 = cbrt(r82327);
        double r82329 = r82295 * r82295;
        double r82330 = r82325 * r82325;
        double r82331 = r82295 * r82325;
        double r82332 = r82330 - r82331;
        double r82333 = r82329 + r82332;
        double r82334 = cbrt(r82333);
        double r82335 = r82328 / r82334;
        double r82336 = cbrt(r82295);
        double r82337 = r82335 - r82336;
        double r82338 = r82301 ? r82322 : r82337;
        return r82338;
}

Error

Bits error versus x

Derivation

  1. Split input into 2 regimes
  2. if x < -4.4954988095195466e+61 or 4040.649618864342 < x

    1. Initial program 60.7

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

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

      \[\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.4954988095195466e+61 < x < 4040.649618864342

    1. Initial program 4.7

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

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

      \[\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}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification19.1

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le -4.4954988095195466 \cdot 10^{61} \lor \neg \left(x \le 4040.64961886434185\right):\\ \;\;\;\;\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{else}:\\ \;\;\;\;\frac{\sqrt[3]{{x}^{3} + {1}^{3}}}{\sqrt[3]{x \cdot x + \left(1 \cdot 1 - x \cdot 1\right)}} - \sqrt[3]{x}\\ \end{array}\]

Reproduce

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