Average Error: 29.9 → 19.1
Time: 6.0s
Precision: 64
\[\sqrt[3]{x + 1} - \sqrt[3]{x}\]
\[\begin{array}{l} \mathbf{if}\;x \le -4.4788638807140642 \cdot 10^{61} \lor \neg \left(x \le 4007.8839921622375\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}:\\ \;\;\;\;\mathsf{fma}\left(\sqrt[3]{\sqrt[3]{x + 1}} \cdot \sqrt[3]{\sqrt[3]{x + 1}}, \sqrt[3]{\sqrt[3]{x + 1}}, -\sqrt[3]{x}\right)\\ \end{array}\]
\sqrt[3]{x + 1} - \sqrt[3]{x}
\begin{array}{l}
\mathbf{if}\;x \le -4.4788638807140642 \cdot 10^{61} \lor \neg \left(x \le 4007.8839921622375\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}:\\
\;\;\;\;\mathsf{fma}\left(\sqrt[3]{\sqrt[3]{x + 1}} \cdot \sqrt[3]{\sqrt[3]{x + 1}}, \sqrt[3]{\sqrt[3]{x + 1}}, -\sqrt[3]{x}\right)\\

\end{array}
double f(double x) {
        double r74653 = x;
        double r74654 = 1.0;
        double r74655 = r74653 + r74654;
        double r74656 = cbrt(r74655);
        double r74657 = cbrt(r74653);
        double r74658 = r74656 - r74657;
        return r74658;
}

double f(double x) {
        double r74659 = x;
        double r74660 = -4.478863880714064e+61;
        bool r74661 = r74659 <= r74660;
        double r74662 = 4007.8839921622375;
        bool r74663 = r74659 <= r74662;
        double r74664 = !r74663;
        bool r74665 = r74661 || r74664;
        double r74666 = 1.0;
        double r74667 = 2.0;
        double r74668 = pow(r74659, r74667);
        double r74669 = r74666 / r74668;
        double r74670 = 0.3333333333333333;
        double r74671 = pow(r74669, r74670);
        double r74672 = 0.3333333333333333;
        double r74673 = 0.06172839506172839;
        double r74674 = 8.0;
        double r74675 = pow(r74659, r74674);
        double r74676 = r74666 / r74675;
        double r74677 = pow(r74676, r74670);
        double r74678 = r74673 * r74677;
        double r74679 = 0.1111111111111111;
        double r74680 = 5.0;
        double r74681 = pow(r74659, r74680);
        double r74682 = r74666 / r74681;
        double r74683 = pow(r74682, r74670);
        double r74684 = r74679 * r74683;
        double r74685 = r74678 - r74684;
        double r74686 = fma(r74671, r74672, r74685);
        double r74687 = 1.0;
        double r74688 = r74659 + r74687;
        double r74689 = cbrt(r74688);
        double r74690 = cbrt(r74689);
        double r74691 = r74690 * r74690;
        double r74692 = cbrt(r74659);
        double r74693 = -r74692;
        double r74694 = fma(r74691, r74690, r74693);
        double r74695 = r74665 ? r74686 : r74694;
        return r74695;
}

Error

Bits error versus x

Derivation

  1. Split input into 2 regimes
  2. if x < -4.478863880714064e+61 or 4007.8839921622375 < x

    1. Initial program 60.5

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

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

      \[\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.478863880714064e+61 < x < 4007.8839921622375

    1. Initial program 4.9

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

      \[\leadsto \color{blue}{\left(\sqrt[3]{\sqrt[3]{x + 1}} \cdot \sqrt[3]{\sqrt[3]{x + 1}}\right) \cdot \sqrt[3]{\sqrt[3]{x + 1}}} - \sqrt[3]{x}\]
    4. Applied fma-neg4.9

      \[\leadsto \color{blue}{\mathsf{fma}\left(\sqrt[3]{\sqrt[3]{x + 1}} \cdot \sqrt[3]{\sqrt[3]{x + 1}}, \sqrt[3]{\sqrt[3]{x + 1}}, -\sqrt[3]{x}\right)}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification19.1

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

Reproduce

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