Average Error: 29.9 → 12.2
Time: 6.0s
Precision: 64
\[\sqrt[3]{x + 1} - \sqrt[3]{x}\]
\[\begin{array}{l} \mathbf{if}\;x \le -4.4537552488591828 \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 3314.7841445986287:\\ \;\;\;\;\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.4537552488591828 \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 3314.7841445986287:\\
\;\;\;\;\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 r80929 = x;
        double r80930 = 1.0;
        double r80931 = r80929 + r80930;
        double r80932 = cbrt(r80931);
        double r80933 = cbrt(r80929);
        double r80934 = r80932 - r80933;
        return r80934;
}

double f(double x) {
        double r80935 = x;
        double r80936 = -4.453755248859183e+61;
        bool r80937 = r80935 <= r80936;
        double r80938 = 1.0;
        double r80939 = 2.0;
        double r80940 = pow(r80935, r80939);
        double r80941 = r80938 / r80940;
        double r80942 = 0.3333333333333333;
        double r80943 = pow(r80941, r80942);
        double r80944 = 0.3333333333333333;
        double r80945 = 0.06172839506172839;
        double r80946 = 8.0;
        double r80947 = pow(r80935, r80946);
        double r80948 = r80938 / r80947;
        double r80949 = pow(r80948, r80942);
        double r80950 = r80945 * r80949;
        double r80951 = 0.1111111111111111;
        double r80952 = 5.0;
        double r80953 = pow(r80935, r80952);
        double r80954 = r80938 / r80953;
        double r80955 = pow(r80954, r80942);
        double r80956 = r80951 * r80955;
        double r80957 = r80950 - r80956;
        double r80958 = fma(r80943, r80944, r80957);
        double r80959 = 3314.7841445986287;
        bool r80960 = r80935 <= r80959;
        double r80961 = 3.0;
        double r80962 = pow(r80935, r80961);
        double r80963 = 1.0;
        double r80964 = pow(r80963, r80961);
        double r80965 = r80962 + r80964;
        double r80966 = cbrt(r80965);
        double r80967 = r80935 * r80935;
        double r80968 = r80963 * r80963;
        double r80969 = r80935 * r80963;
        double r80970 = r80968 - r80969;
        double r80971 = r80967 + r80970;
        double r80972 = cbrt(r80971);
        double r80973 = r80966 / r80972;
        double r80974 = cbrt(r80935);
        double r80975 = r80973 - r80974;
        double r80976 = 7.0;
        double r80977 = pow(r80935, r80976);
        double r80978 = r80938 / r80977;
        double r80979 = pow(r80978, r80942);
        double r80980 = 0.04938271604938271;
        double r80981 = 0.6666666666666666;
        double r80982 = r80938 / r80935;
        double r80983 = pow(r80982, r80942);
        double r80984 = r80981 * r80983;
        double r80985 = 4.0;
        double r80986 = pow(r80935, r80985);
        double r80987 = r80938 / r80986;
        double r80988 = pow(r80987, r80942);
        double r80989 = r80951 * r80988;
        double r80990 = r80984 - r80989;
        double r80991 = fma(r80979, r80980, r80990);
        double r80992 = r80935 + r80963;
        double r80993 = cbrt(r80992);
        double r80994 = r80993 + r80974;
        double r80995 = r80991 / r80994;
        double r80996 = r80960 ? r80975 : r80995;
        double r80997 = r80937 ? r80958 : r80996;
        return r80997;
}

Error

Bits error versus x

Derivation

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

    1. Initial program 61.2

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

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

      \[\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.453755248859183e+61 < x < 3314.7841445986287

    1. Initial program 4.8

      \[\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}\]

    if 3314.7841445986287 < 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.2

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