Average Error: 29.4 → 18.4
Time: 7.1s
Precision: 64
\[\sqrt[3]{x + 1} - \sqrt[3]{x}\]
\[\begin{array}{l} \mathbf{if}\;x \le -4.5156390863232472 \cdot 10^{61} \lor \neg \left(x \le 18479.8139155514982\right):\\ \;\;\;\;\mathsf{log1p}\left(e^{\log \left(\mathsf{fma}\left(0.006172839506172839, \frac{1}{{x}^{2}}, \mathsf{fma}\left(0.055555555555555552, {\left(\frac{1}{{x}^{4}}\right)}^{\frac{1}{3}}, \mathsf{fma}\left(0.333333333333333315, {\left(\frac{1}{{x}^{2}}\right)}^{\frac{1}{3}}, 0.061728395061728392 \cdot {\left(\frac{1}{{x}^{8}}\right)}^{\frac{1}{3}}\right)\right) - \mathsf{fma}\left(0.1111111111111111, {\left(\frac{1}{{x}^{5}}\right)}^{\frac{1}{3}}, 0.037037037037037035 \cdot {\left(\frac{1}{{x}^{7}}\right)}^{\frac{1}{3}}\right)\right)\right)}\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\sqrt[3]{x + 1} - \sqrt[3]{\sqrt[3]{x}} \cdot \sqrt[3]{\sqrt[3]{x} \cdot \sqrt[3]{x}}\right) + \sqrt[3]{\sqrt[3]{x} \cdot \sqrt[3]{x}} \cdot \left(\left(-\sqrt[3]{\sqrt[3]{x}}\right) + \sqrt[3]{\sqrt[3]{x}}\right)\\ \end{array}\]
\sqrt[3]{x + 1} - \sqrt[3]{x}
\begin{array}{l}
\mathbf{if}\;x \le -4.5156390863232472 \cdot 10^{61} \lor \neg \left(x \le 18479.8139155514982\right):\\
\;\;\;\;\mathsf{log1p}\left(e^{\log \left(\mathsf{fma}\left(0.006172839506172839, \frac{1}{{x}^{2}}, \mathsf{fma}\left(0.055555555555555552, {\left(\frac{1}{{x}^{4}}\right)}^{\frac{1}{3}}, \mathsf{fma}\left(0.333333333333333315, {\left(\frac{1}{{x}^{2}}\right)}^{\frac{1}{3}}, 0.061728395061728392 \cdot {\left(\frac{1}{{x}^{8}}\right)}^{\frac{1}{3}}\right)\right) - \mathsf{fma}\left(0.1111111111111111, {\left(\frac{1}{{x}^{5}}\right)}^{\frac{1}{3}}, 0.037037037037037035 \cdot {\left(\frac{1}{{x}^{7}}\right)}^{\frac{1}{3}}\right)\right)\right)}\right)\\

\mathbf{else}:\\
\;\;\;\;\left(\sqrt[3]{x + 1} - \sqrt[3]{\sqrt[3]{x}} \cdot \sqrt[3]{\sqrt[3]{x} \cdot \sqrt[3]{x}}\right) + \sqrt[3]{\sqrt[3]{x} \cdot \sqrt[3]{x}} \cdot \left(\left(-\sqrt[3]{\sqrt[3]{x}}\right) + \sqrt[3]{\sqrt[3]{x}}\right)\\

\end{array}
double f(double x) {
        double r84144 = x;
        double r84145 = 1.0;
        double r84146 = r84144 + r84145;
        double r84147 = cbrt(r84146);
        double r84148 = cbrt(r84144);
        double r84149 = r84147 - r84148;
        return r84149;
}

double f(double x) {
        double r84150 = x;
        double r84151 = -4.515639086323247e+61;
        bool r84152 = r84150 <= r84151;
        double r84153 = 18479.8139155515;
        bool r84154 = r84150 <= r84153;
        double r84155 = !r84154;
        bool r84156 = r84152 || r84155;
        double r84157 = 0.006172839506172839;
        double r84158 = 1.0;
        double r84159 = 2.0;
        double r84160 = pow(r84150, r84159);
        double r84161 = r84158 / r84160;
        double r84162 = 0.05555555555555555;
        double r84163 = 4.0;
        double r84164 = pow(r84150, r84163);
        double r84165 = r84158 / r84164;
        double r84166 = 0.3333333333333333;
        double r84167 = pow(r84165, r84166);
        double r84168 = 0.3333333333333333;
        double r84169 = pow(r84161, r84166);
        double r84170 = 0.06172839506172839;
        double r84171 = 8.0;
        double r84172 = pow(r84150, r84171);
        double r84173 = r84158 / r84172;
        double r84174 = pow(r84173, r84166);
        double r84175 = r84170 * r84174;
        double r84176 = fma(r84168, r84169, r84175);
        double r84177 = fma(r84162, r84167, r84176);
        double r84178 = 0.1111111111111111;
        double r84179 = 5.0;
        double r84180 = pow(r84150, r84179);
        double r84181 = r84158 / r84180;
        double r84182 = pow(r84181, r84166);
        double r84183 = 0.037037037037037035;
        double r84184 = 7.0;
        double r84185 = pow(r84150, r84184);
        double r84186 = r84158 / r84185;
        double r84187 = pow(r84186, r84166);
        double r84188 = r84183 * r84187;
        double r84189 = fma(r84178, r84182, r84188);
        double r84190 = r84177 - r84189;
        double r84191 = fma(r84157, r84161, r84190);
        double r84192 = log(r84191);
        double r84193 = exp(r84192);
        double r84194 = log1p(r84193);
        double r84195 = 1.0;
        double r84196 = r84150 + r84195;
        double r84197 = cbrt(r84196);
        double r84198 = cbrt(r84150);
        double r84199 = cbrt(r84198);
        double r84200 = r84198 * r84198;
        double r84201 = cbrt(r84200);
        double r84202 = r84199 * r84201;
        double r84203 = r84197 - r84202;
        double r84204 = -r84199;
        double r84205 = r84204 + r84199;
        double r84206 = r84201 * r84205;
        double r84207 = r84203 + r84206;
        double r84208 = r84156 ? r84194 : r84207;
        return r84208;
}

Error

Bits error versus x

Derivation

  1. Split input into 2 regimes
  2. if x < -4.515639086323247e+61 or 18479.8139155515 < x

    1. Initial program 60.7

      \[\sqrt[3]{x + 1} - \sqrt[3]{x}\]
    2. Using strategy rm
    3. Applied log1p-expm1-u60.7

      \[\leadsto \color{blue}{\mathsf{log1p}\left(\mathsf{expm1}\left(\sqrt[3]{x + 1} - \sqrt[3]{x}\right)\right)}\]
    4. Using strategy rm
    5. Applied add-log-exp63.7

      \[\leadsto \mathsf{log1p}\left(\mathsf{expm1}\left(\sqrt[3]{x + 1} - \color{blue}{\log \left(e^{\sqrt[3]{x}}\right)}\right)\right)\]
    6. Applied add-log-exp63.7

      \[\leadsto \mathsf{log1p}\left(\mathsf{expm1}\left(\color{blue}{\log \left(e^{\sqrt[3]{x + 1}}\right)} - \log \left(e^{\sqrt[3]{x}}\right)\right)\right)\]
    7. Applied diff-log63.7

      \[\leadsto \mathsf{log1p}\left(\mathsf{expm1}\left(\color{blue}{\log \left(\frac{e^{\sqrt[3]{x + 1}}}{e^{\sqrt[3]{x}}}\right)}\right)\right)\]
    8. Simplified60.7

      \[\leadsto \mathsf{log1p}\left(\mathsf{expm1}\left(\log \color{blue}{\left(e^{\sqrt[3]{x + 1} - \sqrt[3]{x}}\right)}\right)\right)\]
    9. Using strategy rm
    10. Applied add-exp-log60.7

      \[\leadsto \mathsf{log1p}\left(\color{blue}{e^{\log \left(\mathsf{expm1}\left(\log \left(e^{\sqrt[3]{x + 1} - \sqrt[3]{x}}\right)\right)\right)}}\right)\]
    11. Taylor expanded around inf 36.0

      \[\leadsto \mathsf{log1p}\left(e^{\log \color{blue}{\left(\left(0.006172839506172839 \cdot \frac{1}{{x}^{2}} + \left(0.055555555555555552 \cdot {\left(\frac{1}{{x}^{4}}\right)}^{\frac{1}{3}} + \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)\right)\right) - \left(0.1111111111111111 \cdot {\left(\frac{1}{{x}^{5}}\right)}^{\frac{1}{3}} + 0.037037037037037035 \cdot {\left(\frac{1}{{x}^{7}}\right)}^{\frac{1}{3}}\right)\right)}}\right)\]
    12. Simplified36.0

      \[\leadsto \mathsf{log1p}\left(e^{\log \color{blue}{\left(\mathsf{fma}\left(0.006172839506172839, \frac{1}{{x}^{2}}, \mathsf{fma}\left(0.055555555555555552, {\left(\frac{1}{{x}^{4}}\right)}^{\frac{1}{3}}, \mathsf{fma}\left(0.333333333333333315, {\left(\frac{1}{{x}^{2}}\right)}^{\frac{1}{3}}, 0.061728395061728392 \cdot {\left(\frac{1}{{x}^{8}}\right)}^{\frac{1}{3}}\right)\right) - \mathsf{fma}\left(0.1111111111111111, {\left(\frac{1}{{x}^{5}}\right)}^{\frac{1}{3}}, 0.037037037037037035 \cdot {\left(\frac{1}{{x}^{7}}\right)}^{\frac{1}{3}}\right)\right)\right)}}\right)\]

    if -4.515639086323247e+61 < x < 18479.8139155515

    1. Initial program 4.7

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

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

      \[\leadsto \sqrt[3]{x + 1} - \color{blue}{\sqrt[3]{\sqrt[3]{x} \cdot \sqrt[3]{x}} \cdot \sqrt[3]{\sqrt[3]{x}}}\]
    5. Applied *-un-lft-identity4.6

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

      \[\leadsto \color{blue}{\sqrt[3]{1} \cdot \sqrt[3]{x + 1}} - \sqrt[3]{\sqrt[3]{x} \cdot \sqrt[3]{x}} \cdot \sqrt[3]{\sqrt[3]{x}}\]
    7. Applied prod-diff4.5

      \[\leadsto \color{blue}{\mathsf{fma}\left(\sqrt[3]{1}, \sqrt[3]{x + 1}, -\sqrt[3]{\sqrt[3]{x}} \cdot \sqrt[3]{\sqrt[3]{x} \cdot \sqrt[3]{x}}\right) + \mathsf{fma}\left(-\sqrt[3]{\sqrt[3]{x}}, \sqrt[3]{\sqrt[3]{x} \cdot \sqrt[3]{x}}, \sqrt[3]{\sqrt[3]{x}} \cdot \sqrt[3]{\sqrt[3]{x} \cdot \sqrt[3]{x}}\right)}\]
    8. Simplified4.5

      \[\leadsto \color{blue}{\left(\sqrt[3]{x + 1} - \sqrt[3]{\sqrt[3]{x}} \cdot \sqrt[3]{\sqrt[3]{x} \cdot \sqrt[3]{x}}\right)} + \mathsf{fma}\left(-\sqrt[3]{\sqrt[3]{x}}, \sqrt[3]{\sqrt[3]{x} \cdot \sqrt[3]{x}}, \sqrt[3]{\sqrt[3]{x}} \cdot \sqrt[3]{\sqrt[3]{x} \cdot \sqrt[3]{x}}\right)\]
    9. Simplified4.6

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le -4.5156390863232472 \cdot 10^{61} \lor \neg \left(x \le 18479.8139155514982\right):\\ \;\;\;\;\mathsf{log1p}\left(e^{\log \left(\mathsf{fma}\left(0.006172839506172839, \frac{1}{{x}^{2}}, \mathsf{fma}\left(0.055555555555555552, {\left(\frac{1}{{x}^{4}}\right)}^{\frac{1}{3}}, \mathsf{fma}\left(0.333333333333333315, {\left(\frac{1}{{x}^{2}}\right)}^{\frac{1}{3}}, 0.061728395061728392 \cdot {\left(\frac{1}{{x}^{8}}\right)}^{\frac{1}{3}}\right)\right) - \mathsf{fma}\left(0.1111111111111111, {\left(\frac{1}{{x}^{5}}\right)}^{\frac{1}{3}}, 0.037037037037037035 \cdot {\left(\frac{1}{{x}^{7}}\right)}^{\frac{1}{3}}\right)\right)\right)}\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\sqrt[3]{x + 1} - \sqrt[3]{\sqrt[3]{x}} \cdot \sqrt[3]{\sqrt[3]{x} \cdot \sqrt[3]{x}}\right) + \sqrt[3]{\sqrt[3]{x} \cdot \sqrt[3]{x}} \cdot \left(\left(-\sqrt[3]{\sqrt[3]{x}}\right) + \sqrt[3]{\sqrt[3]{x}}\right)\\ \end{array}\]

Reproduce

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