Average Error: 30.4 → 11.7
Time: 6.3s
Precision: 64
\[\sqrt[3]{x + 1} - \sqrt[3]{x}\]
\[\begin{array}{l} \mathbf{if}\;x \le -4.4424562017088699 \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 2733.6734526060145:\\ \;\;\;\;\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.4424562017088699 \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 2733.6734526060145:\\
\;\;\;\;\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 r66188 = x;
        double r66189 = 1.0;
        double r66190 = r66188 + r66189;
        double r66191 = cbrt(r66190);
        double r66192 = cbrt(r66188);
        double r66193 = r66191 - r66192;
        return r66193;
}

double f(double x) {
        double r66194 = x;
        double r66195 = -4.44245620170887e+61;
        bool r66196 = r66194 <= r66195;
        double r66197 = 1.0;
        double r66198 = 2.0;
        double r66199 = pow(r66194, r66198);
        double r66200 = r66197 / r66199;
        double r66201 = 0.3333333333333333;
        double r66202 = pow(r66200, r66201);
        double r66203 = 0.3333333333333333;
        double r66204 = 0.06172839506172839;
        double r66205 = 8.0;
        double r66206 = pow(r66194, r66205);
        double r66207 = r66197 / r66206;
        double r66208 = pow(r66207, r66201);
        double r66209 = r66204 * r66208;
        double r66210 = 0.1111111111111111;
        double r66211 = 5.0;
        double r66212 = pow(r66194, r66211);
        double r66213 = r66197 / r66212;
        double r66214 = pow(r66213, r66201);
        double r66215 = r66210 * r66214;
        double r66216 = r66209 - r66215;
        double r66217 = fma(r66202, r66203, r66216);
        double r66218 = 2733.6734526060145;
        bool r66219 = r66194 <= r66218;
        double r66220 = 3.0;
        double r66221 = pow(r66194, r66220);
        double r66222 = 1.0;
        double r66223 = pow(r66222, r66220);
        double r66224 = r66221 + r66223;
        double r66225 = cbrt(r66224);
        double r66226 = r66194 * r66194;
        double r66227 = r66222 * r66222;
        double r66228 = r66194 * r66222;
        double r66229 = r66227 - r66228;
        double r66230 = r66226 + r66229;
        double r66231 = cbrt(r66230);
        double r66232 = r66225 / r66231;
        double r66233 = cbrt(r66194);
        double r66234 = r66232 - r66233;
        double r66235 = 7.0;
        double r66236 = pow(r66194, r66235);
        double r66237 = r66197 / r66236;
        double r66238 = pow(r66237, r66201);
        double r66239 = 0.04938271604938271;
        double r66240 = 0.6666666666666666;
        double r66241 = r66197 / r66194;
        double r66242 = pow(r66241, r66201);
        double r66243 = r66240 * r66242;
        double r66244 = 4.0;
        double r66245 = pow(r66194, r66244);
        double r66246 = r66197 / r66245;
        double r66247 = pow(r66246, r66201);
        double r66248 = r66210 * r66247;
        double r66249 = r66243 - r66248;
        double r66250 = fma(r66238, r66239, r66249);
        double r66251 = r66194 + r66222;
        double r66252 = cbrt(r66251);
        double r66253 = r66252 + r66233;
        double r66254 = r66250 / r66253;
        double r66255 = r66219 ? r66234 : r66254;
        double r66256 = r66196 ? r66217 : r66255;
        return r66256;
}

Error

Bits error versus x

Derivation

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

    1. Initial program 61.2

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

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

      \[\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.44245620170887e+61 < x < 2733.6734526060145

    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 2733.6734526060145 < x

    1. Initial program 60.2

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

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

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