Average Error: 29.8 → 0.6
Time: 15.7s
Precision: 64
\[\sqrt[3]{x + 1} - \sqrt[3]{x}\]
\[\sqrt{\frac{1}{\mathsf{fma}\left(\sqrt[3]{x}, \sqrt[3]{x} + \sqrt[3]{x + 1}, \sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1}\right)}} \cdot \sqrt{\frac{1}{\mathsf{fma}\left(\sqrt[3]{x}, \sqrt[3]{x} + \sqrt[3]{x + 1}, \sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1}\right)}}\]
\sqrt[3]{x + 1} - \sqrt[3]{x}
\sqrt{\frac{1}{\mathsf{fma}\left(\sqrt[3]{x}, \sqrt[3]{x} + \sqrt[3]{x + 1}, \sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1}\right)}} \cdot \sqrt{\frac{1}{\mathsf{fma}\left(\sqrt[3]{x}, \sqrt[3]{x} + \sqrt[3]{x + 1}, \sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1}\right)}}
double f(double x) {
        double r81656 = x;
        double r81657 = 1.0;
        double r81658 = r81656 + r81657;
        double r81659 = cbrt(r81658);
        double r81660 = cbrt(r81656);
        double r81661 = r81659 - r81660;
        return r81661;
}

double f(double x) {
        double r81662 = 1.0;
        double r81663 = x;
        double r81664 = cbrt(r81663);
        double r81665 = r81663 + r81662;
        double r81666 = cbrt(r81665);
        double r81667 = r81664 + r81666;
        double r81668 = r81666 * r81666;
        double r81669 = fma(r81664, r81667, r81668);
        double r81670 = r81662 / r81669;
        double r81671 = sqrt(r81670);
        double r81672 = r81671 * r81671;
        return r81672;
}

Error

Bits error versus x

Derivation

  1. Initial program 29.8

    \[\sqrt[3]{x + 1} - \sqrt[3]{x}\]
  2. Simplified29.8

    \[\leadsto \color{blue}{\sqrt[3]{1 + x} - \sqrt[3]{x}}\]
  3. Using strategy rm
  4. Applied add-log-exp31.4

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

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

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

    \[\leadsto \log \color{blue}{\left(e^{\sqrt[3]{1 + x} - \sqrt[3]{x}}\right)}\]
  8. Using strategy rm
  9. Applied flip3--29.8

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

    \[\leadsto \log \left(e^{\frac{\color{blue}{1 + 0}}{\sqrt[3]{1 + x} \cdot \sqrt[3]{1 + x} + \left(\sqrt[3]{x} \cdot \sqrt[3]{x} + \sqrt[3]{1 + x} \cdot \sqrt[3]{x}\right)}}\right)\]
  11. Simplified29.4

    \[\leadsto \log \left(e^{\frac{1 + 0}{\color{blue}{\mathsf{fma}\left(\sqrt[3]{x}, \sqrt[3]{x} + \sqrt[3]{1 + x}, \sqrt[3]{1 + x} \cdot \sqrt[3]{1 + x}\right)}}}\right)\]
  12. Using strategy rm
  13. Applied add-sqr-sqrt29.4

    \[\leadsto \color{blue}{\sqrt{\log \left(e^{\frac{1 + 0}{\mathsf{fma}\left(\sqrt[3]{x}, \sqrt[3]{x} + \sqrt[3]{1 + x}, \sqrt[3]{1 + x} \cdot \sqrt[3]{1 + x}\right)}}\right)} \cdot \sqrt{\log \left(e^{\frac{1 + 0}{\mathsf{fma}\left(\sqrt[3]{x}, \sqrt[3]{x} + \sqrt[3]{1 + x}, \sqrt[3]{1 + x} \cdot \sqrt[3]{1 + x}\right)}}\right)}}\]
  14. Simplified29.4

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

    \[\leadsto \sqrt{\frac{1}{\mathsf{fma}\left(\sqrt[3]{x}, \sqrt[3]{x} + \sqrt[3]{x + 1}, \sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1}\right)}} \cdot \color{blue}{\sqrt{\frac{1}{\mathsf{fma}\left(\sqrt[3]{x}, \sqrt[3]{x} + \sqrt[3]{x + 1}, \sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1}\right)}}}\]
  16. Final simplification0.6

    \[\leadsto \sqrt{\frac{1}{\mathsf{fma}\left(\sqrt[3]{x}, \sqrt[3]{x} + \sqrt[3]{x + 1}, \sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1}\right)}} \cdot \sqrt{\frac{1}{\mathsf{fma}\left(\sqrt[3]{x}, \sqrt[3]{x} + \sqrt[3]{x + 1}, \sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1}\right)}}\]

Reproduce

herbie shell --seed 2019194 +o rules:numerics
(FPCore (x)
  :name "2cbrt (problem 3.3.4)"
  (- (cbrt (+ x 1.0)) (cbrt x)))