Average Error: 29.3 → 11.9
Time: 6.0s
Precision: 64
\[\sqrt[3]{x + 1} - \sqrt[3]{x}\]
\[\begin{array}{l} \mathbf{if}\;x \le -4.514659243240918023579410276165009573193 \cdot 10^{61}:\\ \;\;\;\;\left(0.3333333333333333148296162562473909929395 \cdot {\left(\frac{1}{{x}^{2}}\right)}^{\frac{1}{3}} + 0.06172839506172839163511412152729462832212 \cdot {\left(\frac{1}{{x}^{8}}\right)}^{\frac{1}{3}}\right) - 0.1111111111111111049432054187491303309798 \cdot {\left(\frac{1}{{x}^{5}}\right)}^{\frac{1}{3}}\\ \mathbf{elif}\;x \le 1.255581048238640526995287057963803650784 \cdot 10^{-10}:\\ \;\;\;\;\sqrt[3]{\sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1}} \cdot \sqrt[3]{\sqrt[3]{x + 1}} - \left(\sqrt[3]{\sqrt[3]{x}} \cdot \sqrt[3]{\sqrt[3]{x}}\right) \cdot \sqrt[3]{\sqrt[3]{x}}\\ \mathbf{else}:\\ \;\;\;\;\frac{0 + 1}{\sqrt[3]{x + 1} \cdot \left(\sqrt[3]{x + 1} + \sqrt[3]{x}\right) + {x}^{\frac{2}{3}}}\\ \end{array}\]
\sqrt[3]{x + 1} - \sqrt[3]{x}
\begin{array}{l}
\mathbf{if}\;x \le -4.514659243240918023579410276165009573193 \cdot 10^{61}:\\
\;\;\;\;\left(0.3333333333333333148296162562473909929395 \cdot {\left(\frac{1}{{x}^{2}}\right)}^{\frac{1}{3}} + 0.06172839506172839163511412152729462832212 \cdot {\left(\frac{1}{{x}^{8}}\right)}^{\frac{1}{3}}\right) - 0.1111111111111111049432054187491303309798 \cdot {\left(\frac{1}{{x}^{5}}\right)}^{\frac{1}{3}}\\

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

\mathbf{else}:\\
\;\;\;\;\frac{0 + 1}{\sqrt[3]{x + 1} \cdot \left(\sqrt[3]{x + 1} + \sqrt[3]{x}\right) + {x}^{\frac{2}{3}}}\\

\end{array}
double f(double x) {
        double r73821 = x;
        double r73822 = 1.0;
        double r73823 = r73821 + r73822;
        double r73824 = cbrt(r73823);
        double r73825 = cbrt(r73821);
        double r73826 = r73824 - r73825;
        return r73826;
}

double f(double x) {
        double r73827 = x;
        double r73828 = -4.514659243240918e+61;
        bool r73829 = r73827 <= r73828;
        double r73830 = 0.3333333333333333;
        double r73831 = 1.0;
        double r73832 = 2.0;
        double r73833 = pow(r73827, r73832);
        double r73834 = r73831 / r73833;
        double r73835 = 0.3333333333333333;
        double r73836 = pow(r73834, r73835);
        double r73837 = r73830 * r73836;
        double r73838 = 0.06172839506172839;
        double r73839 = 8.0;
        double r73840 = pow(r73827, r73839);
        double r73841 = r73831 / r73840;
        double r73842 = pow(r73841, r73835);
        double r73843 = r73838 * r73842;
        double r73844 = r73837 + r73843;
        double r73845 = 0.1111111111111111;
        double r73846 = 5.0;
        double r73847 = pow(r73827, r73846);
        double r73848 = r73831 / r73847;
        double r73849 = pow(r73848, r73835);
        double r73850 = r73845 * r73849;
        double r73851 = r73844 - r73850;
        double r73852 = 1.2555810482386405e-10;
        bool r73853 = r73827 <= r73852;
        double r73854 = 1.0;
        double r73855 = r73827 + r73854;
        double r73856 = cbrt(r73855);
        double r73857 = r73856 * r73856;
        double r73858 = cbrt(r73857);
        double r73859 = cbrt(r73856);
        double r73860 = r73858 * r73859;
        double r73861 = cbrt(r73827);
        double r73862 = cbrt(r73861);
        double r73863 = r73862 * r73862;
        double r73864 = r73863 * r73862;
        double r73865 = r73860 - r73864;
        double r73866 = 0.0;
        double r73867 = r73866 + r73854;
        double r73868 = r73856 + r73861;
        double r73869 = r73856 * r73868;
        double r73870 = 0.6666666666666666;
        double r73871 = pow(r73827, r73870);
        double r73872 = r73869 + r73871;
        double r73873 = r73867 / r73872;
        double r73874 = r73853 ? r73865 : r73873;
        double r73875 = r73829 ? r73851 : r73874;
        return r73875;
}

Error

Bits error versus x

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

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

    1. Initial program 61.2

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

      \[\leadsto \color{blue}{\left(0.3333333333333333148296162562473909929395 \cdot {\left(\frac{1}{{x}^{2}}\right)}^{\frac{1}{3}} + 0.06172839506172839163511412152729462832212 \cdot {\left(\frac{1}{{x}^{8}}\right)}^{\frac{1}{3}}\right) - 0.1111111111111111049432054187491303309798 \cdot {\left(\frac{1}{{x}^{5}}\right)}^{\frac{1}{3}}}\]

    if -4.514659243240918e+61 < x < 1.2555810482386405e-10

    1. Initial program 5.0

      \[\sqrt[3]{x + 1} - \sqrt[3]{x}\]
    2. Using strategy rm
    3. Applied add-cube-cbrt5.0

      \[\leadsto \sqrt[3]{\color{blue}{\left(\sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1}\right) \cdot \sqrt[3]{x + 1}}} - \sqrt[3]{x}\]
    4. Applied cbrt-prod5.0

      \[\leadsto \color{blue}{\sqrt[3]{\sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1}} \cdot \sqrt[3]{\sqrt[3]{x + 1}}} - \sqrt[3]{x}\]
    5. Using strategy rm
    6. Applied add-cube-cbrt4.9

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

    if 1.2555810482386405e-10 < x

    1. Initial program 57.6

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

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

      \[\leadsto \frac{\color{blue}{0 + 1}}{\sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1} + \left(\sqrt[3]{x} \cdot \sqrt[3]{x} + \sqrt[3]{x + 1} \cdot \sqrt[3]{x}\right)}\]
    5. Simplified4.4

      \[\leadsto \frac{0 + 1}{\color{blue}{\sqrt[3]{x + 1} \cdot \left(\sqrt[3]{x + 1} + \sqrt[3]{x}\right) + {x}^{\frac{2}{3}}}}\]
  3. Recombined 3 regimes into one program.
  4. Final simplification11.9

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le -4.514659243240918023579410276165009573193 \cdot 10^{61}:\\ \;\;\;\;\left(0.3333333333333333148296162562473909929395 \cdot {\left(\frac{1}{{x}^{2}}\right)}^{\frac{1}{3}} + 0.06172839506172839163511412152729462832212 \cdot {\left(\frac{1}{{x}^{8}}\right)}^{\frac{1}{3}}\right) - 0.1111111111111111049432054187491303309798 \cdot {\left(\frac{1}{{x}^{5}}\right)}^{\frac{1}{3}}\\ \mathbf{elif}\;x \le 1.255581048238640526995287057963803650784 \cdot 10^{-10}:\\ \;\;\;\;\sqrt[3]{\sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1}} \cdot \sqrt[3]{\sqrt[3]{x + 1}} - \left(\sqrt[3]{\sqrt[3]{x}} \cdot \sqrt[3]{\sqrt[3]{x}}\right) \cdot \sqrt[3]{\sqrt[3]{x}}\\ \mathbf{else}:\\ \;\;\;\;\frac{0 + 1}{\sqrt[3]{x + 1} \cdot \left(\sqrt[3]{x + 1} + \sqrt[3]{x}\right) + {x}^{\frac{2}{3}}}\\ \end{array}\]

Reproduce

herbie shell --seed 2019346 
(FPCore (x)
  :name "2cbrt (problem 3.3.4)"
  :precision binary64
  (- (cbrt (+ x 1)) (cbrt x)))