Average Error: 29.7 → 9.3
Time: 20.2s
Precision: 64
\[\sqrt[3]{x + 1} - \sqrt[3]{x}\]
\[\begin{array}{l} \mathbf{if}\;x \le -3865.382861149344535078853368759155273438:\\ \;\;\;\;\mathsf{fma}\left(0.3333333333333333148296162562473909929395, \sqrt[3]{\frac{1}{{x}^{2}}}, \sqrt[3]{\frac{1}{{x}^{8}}} \cdot 0.06172839506172839163511412152729462832212\right) - \sqrt[3]{\frac{1}{{x}^{5}}} \cdot 0.1111111111111111049432054187491303309798\\ \mathbf{elif}\;x \le 4.799156511993158112663217912917390517435 \cdot 10^{-8}:\\ \;\;\;\;\log \left(e^{\sqrt{\sqrt[3]{x + 1} - \sqrt[3]{x}} \cdot \sqrt{\sqrt[3]{x + 1} - \sqrt[3]{x}}}\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{\mathsf{fma}\left(\sqrt[3]{1 + x} + \sqrt[3]{x}, \sqrt[3]{1 + x}, {x}^{\frac{2}{3}}\right)}\\ \end{array}\]
\sqrt[3]{x + 1} - \sqrt[3]{x}
\begin{array}{l}
\mathbf{if}\;x \le -3865.382861149344535078853368759155273438:\\
\;\;\;\;\mathsf{fma}\left(0.3333333333333333148296162562473909929395, \sqrt[3]{\frac{1}{{x}^{2}}}, \sqrt[3]{\frac{1}{{x}^{8}}} \cdot 0.06172839506172839163511412152729462832212\right) - \sqrt[3]{\frac{1}{{x}^{5}}} \cdot 0.1111111111111111049432054187491303309798\\

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

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

\end{array}
double f(double x) {
        double r51667 = x;
        double r51668 = 1.0;
        double r51669 = r51667 + r51668;
        double r51670 = cbrt(r51669);
        double r51671 = cbrt(r51667);
        double r51672 = r51670 - r51671;
        return r51672;
}

double f(double x) {
        double r51673 = x;
        double r51674 = -3865.3828611493445;
        bool r51675 = r51673 <= r51674;
        double r51676 = 0.3333333333333333;
        double r51677 = 1.0;
        double r51678 = 2.0;
        double r51679 = pow(r51673, r51678);
        double r51680 = r51677 / r51679;
        double r51681 = cbrt(r51680);
        double r51682 = 8.0;
        double r51683 = pow(r51673, r51682);
        double r51684 = r51677 / r51683;
        double r51685 = cbrt(r51684);
        double r51686 = 0.06172839506172839;
        double r51687 = r51685 * r51686;
        double r51688 = fma(r51676, r51681, r51687);
        double r51689 = 5.0;
        double r51690 = pow(r51673, r51689);
        double r51691 = r51677 / r51690;
        double r51692 = cbrt(r51691);
        double r51693 = 0.1111111111111111;
        double r51694 = r51692 * r51693;
        double r51695 = r51688 - r51694;
        double r51696 = 4.799156511993158e-08;
        bool r51697 = r51673 <= r51696;
        double r51698 = 1.0;
        double r51699 = r51673 + r51698;
        double r51700 = cbrt(r51699);
        double r51701 = cbrt(r51673);
        double r51702 = r51700 - r51701;
        double r51703 = sqrt(r51702);
        double r51704 = r51703 * r51703;
        double r51705 = exp(r51704);
        double r51706 = log(r51705);
        double r51707 = r51698 + r51673;
        double r51708 = cbrt(r51707);
        double r51709 = r51708 + r51701;
        double r51710 = 0.6666666666666666;
        double r51711 = pow(r51673, r51710);
        double r51712 = fma(r51709, r51708, r51711);
        double r51713 = r51698 / r51712;
        double r51714 = r51697 ? r51706 : r51713;
        double r51715 = r51675 ? r51695 : r51714;
        return r51715;
}

Error

Bits error versus x

Derivation

  1. Split input into 3 regimes
  2. if x < -3865.3828611493445

    1. Initial program 60.3

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

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

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

    if -3865.3828611493445 < x < 4.799156511993158e-08

    1. Initial program 0.1

      \[\sqrt[3]{x + 1} - \sqrt[3]{x}\]
    2. Using strategy rm
    3. Applied add-log-exp0.1

      \[\leadsto \sqrt[3]{x + 1} - \color{blue}{\log \left(e^{\sqrt[3]{x}}\right)}\]
    4. Applied add-log-exp0.1

      \[\leadsto \color{blue}{\log \left(e^{\sqrt[3]{x + 1}}\right)} - \log \left(e^{\sqrt[3]{x}}\right)\]
    5. Applied diff-log0.1

      \[\leadsto \color{blue}{\log \left(\frac{e^{\sqrt[3]{x + 1}}}{e^{\sqrt[3]{x}}}\right)}\]
    6. Simplified0.1

      \[\leadsto \log \color{blue}{\left(e^{\sqrt[3]{x + 1} - \sqrt[3]{x}}\right)}\]
    7. Using strategy rm
    8. Applied add-sqr-sqrt0.1

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

    if 4.799156511993158e-08 < x

    1. Initial program 58.2

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

      \[\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}{\mathsf{fma}\left(\sqrt[3]{1 + x} + \sqrt[3]{x}, \sqrt[3]{1 + x}, {x}^{\frac{2}{3}}\right)}}\]
  3. Recombined 3 regimes into one program.
  4. Final simplification9.3

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le -3865.382861149344535078853368759155273438:\\ \;\;\;\;\mathsf{fma}\left(0.3333333333333333148296162562473909929395, \sqrt[3]{\frac{1}{{x}^{2}}}, \sqrt[3]{\frac{1}{{x}^{8}}} \cdot 0.06172839506172839163511412152729462832212\right) - \sqrt[3]{\frac{1}{{x}^{5}}} \cdot 0.1111111111111111049432054187491303309798\\ \mathbf{elif}\;x \le 4.799156511993158112663217912917390517435 \cdot 10^{-8}:\\ \;\;\;\;\log \left(e^{\sqrt{\sqrt[3]{x + 1} - \sqrt[3]{x}} \cdot \sqrt{\sqrt[3]{x + 1} - \sqrt[3]{x}}}\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{\mathsf{fma}\left(\sqrt[3]{1 + x} + \sqrt[3]{x}, \sqrt[3]{1 + x}, {x}^{\frac{2}{3}}\right)}\\ \end{array}\]

Reproduce

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