Average Error: 12.7 → 0.4
Time: 6.0s
Precision: 64
\[\left(\left(3 + \frac{2}{r \cdot r}\right) - \frac{\left(0.125 \cdot \left(3 - 2 \cdot v\right)\right) \cdot \left(\left(\left(w \cdot w\right) \cdot r\right) \cdot r\right)}{1 - v}\right) - 4.5\]
\[\mathsf{fma}\left(-\sqrt[3]{{\left(\frac{0.125 \cdot \left(3 - 2 \cdot v\right)}{1 - v}\right)}^{3}}, {\left(\left|w \cdot r\right|\right)}^{2}, \frac{2}{r \cdot r}\right) - \left(4.5 - 3\right)\]
\left(\left(3 + \frac{2}{r \cdot r}\right) - \frac{\left(0.125 \cdot \left(3 - 2 \cdot v\right)\right) \cdot \left(\left(\left(w \cdot w\right) \cdot r\right) \cdot r\right)}{1 - v}\right) - 4.5
\mathsf{fma}\left(-\sqrt[3]{{\left(\frac{0.125 \cdot \left(3 - 2 \cdot v\right)}{1 - v}\right)}^{3}}, {\left(\left|w \cdot r\right|\right)}^{2}, \frac{2}{r \cdot r}\right) - \left(4.5 - 3\right)
double f(double v, double w, double r) {
        double r17847 = 3.0;
        double r17848 = 2.0;
        double r17849 = r;
        double r17850 = r17849 * r17849;
        double r17851 = r17848 / r17850;
        double r17852 = r17847 + r17851;
        double r17853 = 0.125;
        double r17854 = v;
        double r17855 = r17848 * r17854;
        double r17856 = r17847 - r17855;
        double r17857 = r17853 * r17856;
        double r17858 = w;
        double r17859 = r17858 * r17858;
        double r17860 = r17859 * r17849;
        double r17861 = r17860 * r17849;
        double r17862 = r17857 * r17861;
        double r17863 = 1.0;
        double r17864 = r17863 - r17854;
        double r17865 = r17862 / r17864;
        double r17866 = r17852 - r17865;
        double r17867 = 4.5;
        double r17868 = r17866 - r17867;
        return r17868;
}

double f(double v, double w, double r) {
        double r17869 = 0.125;
        double r17870 = 3.0;
        double r17871 = 2.0;
        double r17872 = v;
        double r17873 = r17871 * r17872;
        double r17874 = r17870 - r17873;
        double r17875 = r17869 * r17874;
        double r17876 = 1.0;
        double r17877 = r17876 - r17872;
        double r17878 = r17875 / r17877;
        double r17879 = 3.0;
        double r17880 = pow(r17878, r17879);
        double r17881 = cbrt(r17880);
        double r17882 = -r17881;
        double r17883 = w;
        double r17884 = r;
        double r17885 = r17883 * r17884;
        double r17886 = fabs(r17885);
        double r17887 = 2.0;
        double r17888 = pow(r17886, r17887);
        double r17889 = r17884 * r17884;
        double r17890 = r17871 / r17889;
        double r17891 = fma(r17882, r17888, r17890);
        double r17892 = 4.5;
        double r17893 = r17892 - r17870;
        double r17894 = r17891 - r17893;
        return r17894;
}

Error

Bits error versus v

Bits error versus w

Bits error versus r

Derivation

  1. Initial program 12.7

    \[\left(\left(3 + \frac{2}{r \cdot r}\right) - \frac{\left(0.125 \cdot \left(3 - 2 \cdot v\right)\right) \cdot \left(\left(\left(w \cdot w\right) \cdot r\right) \cdot r\right)}{1 - v}\right) - 4.5\]
  2. Simplified8.3

    \[\leadsto \color{blue}{\frac{2}{r \cdot r} - \left(\mathsf{fma}\left(\frac{0.125 \cdot \left(3 - 2 \cdot v\right)}{1 - v}, \left(\left(w \cdot w\right) \cdot r\right) \cdot r, 4.5\right) - 3\right)}\]
  3. Using strategy rm
  4. Applied add-sqr-sqrt8.4

    \[\leadsto \frac{2}{r \cdot r} - \left(\mathsf{fma}\left(\frac{0.125 \cdot \left(3 - 2 \cdot v\right)}{1 - v}, \color{blue}{\sqrt{\left(\left(w \cdot w\right) \cdot r\right) \cdot r} \cdot \sqrt{\left(\left(w \cdot w\right) \cdot r\right) \cdot r}}, 4.5\right) - 3\right)\]
  5. Simplified8.3

    \[\leadsto \frac{2}{r \cdot r} - \left(\mathsf{fma}\left(\frac{0.125 \cdot \left(3 - 2 \cdot v\right)}{1 - v}, \color{blue}{\left|w \cdot r\right|} \cdot \sqrt{\left(\left(w \cdot w\right) \cdot r\right) \cdot r}, 4.5\right) - 3\right)\]
  6. Simplified0.4

    \[\leadsto \frac{2}{r \cdot r} - \left(\mathsf{fma}\left(\frac{0.125 \cdot \left(3 - 2 \cdot v\right)}{1 - v}, \left|w \cdot r\right| \cdot \color{blue}{\left|w \cdot r\right|}, 4.5\right) - 3\right)\]
  7. Using strategy rm
  8. Applied fma-udef0.4

    \[\leadsto \frac{2}{r \cdot r} - \left(\color{blue}{\left(\frac{0.125 \cdot \left(3 - 2 \cdot v\right)}{1 - v} \cdot \left(\left|w \cdot r\right| \cdot \left|w \cdot r\right|\right) + 4.5\right)} - 3\right)\]
  9. Applied associate--l+0.3

    \[\leadsto \frac{2}{r \cdot r} - \color{blue}{\left(\frac{0.125 \cdot \left(3 - 2 \cdot v\right)}{1 - v} \cdot \left(\left|w \cdot r\right| \cdot \left|w \cdot r\right|\right) + \left(4.5 - 3\right)\right)}\]
  10. Applied associate--r+0.3

    \[\leadsto \color{blue}{\left(\frac{2}{r \cdot r} - \frac{0.125 \cdot \left(3 - 2 \cdot v\right)}{1 - v} \cdot \left(\left|w \cdot r\right| \cdot \left|w \cdot r\right|\right)\right) - \left(4.5 - 3\right)}\]
  11. Simplified0.3

    \[\leadsto \color{blue}{\mathsf{fma}\left(-\frac{0.125 \cdot \left(3 - 2 \cdot v\right)}{1 - v}, {\left(\left|w \cdot r\right|\right)}^{2}, \frac{2}{r \cdot r}\right)} - \left(4.5 - 3\right)\]
  12. Using strategy rm
  13. Applied add-cbrt-cube7.2

    \[\leadsto \mathsf{fma}\left(-\frac{0.125 \cdot \left(3 - 2 \cdot v\right)}{\color{blue}{\sqrt[3]{\left(\left(1 - v\right) \cdot \left(1 - v\right)\right) \cdot \left(1 - v\right)}}}, {\left(\left|w \cdot r\right|\right)}^{2}, \frac{2}{r \cdot r}\right) - \left(4.5 - 3\right)\]
  14. Applied add-cbrt-cube21.9

    \[\leadsto \mathsf{fma}\left(-\frac{0.125 \cdot \color{blue}{\sqrt[3]{\left(\left(3 - 2 \cdot v\right) \cdot \left(3 - 2 \cdot v\right)\right) \cdot \left(3 - 2 \cdot v\right)}}}{\sqrt[3]{\left(\left(1 - v\right) \cdot \left(1 - v\right)\right) \cdot \left(1 - v\right)}}, {\left(\left|w \cdot r\right|\right)}^{2}, \frac{2}{r \cdot r}\right) - \left(4.5 - 3\right)\]
  15. Applied add-cbrt-cube21.8

    \[\leadsto \mathsf{fma}\left(-\frac{\color{blue}{\sqrt[3]{\left(0.125 \cdot 0.125\right) \cdot 0.125}} \cdot \sqrt[3]{\left(\left(3 - 2 \cdot v\right) \cdot \left(3 - 2 \cdot v\right)\right) \cdot \left(3 - 2 \cdot v\right)}}{\sqrt[3]{\left(\left(1 - v\right) \cdot \left(1 - v\right)\right) \cdot \left(1 - v\right)}}, {\left(\left|w \cdot r\right|\right)}^{2}, \frac{2}{r \cdot r}\right) - \left(4.5 - 3\right)\]
  16. Applied cbrt-unprod21.8

    \[\leadsto \mathsf{fma}\left(-\frac{\color{blue}{\sqrt[3]{\left(\left(0.125 \cdot 0.125\right) \cdot 0.125\right) \cdot \left(\left(\left(3 - 2 \cdot v\right) \cdot \left(3 - 2 \cdot v\right)\right) \cdot \left(3 - 2 \cdot v\right)\right)}}}{\sqrt[3]{\left(\left(1 - v\right) \cdot \left(1 - v\right)\right) \cdot \left(1 - v\right)}}, {\left(\left|w \cdot r\right|\right)}^{2}, \frac{2}{r \cdot r}\right) - \left(4.5 - 3\right)\]
  17. Applied cbrt-undiv21.8

    \[\leadsto \mathsf{fma}\left(-\color{blue}{\sqrt[3]{\frac{\left(\left(0.125 \cdot 0.125\right) \cdot 0.125\right) \cdot \left(\left(\left(3 - 2 \cdot v\right) \cdot \left(3 - 2 \cdot v\right)\right) \cdot \left(3 - 2 \cdot v\right)\right)}{\left(\left(1 - v\right) \cdot \left(1 - v\right)\right) \cdot \left(1 - v\right)}}}, {\left(\left|w \cdot r\right|\right)}^{2}, \frac{2}{r \cdot r}\right) - \left(4.5 - 3\right)\]
  18. Simplified0.4

    \[\leadsto \mathsf{fma}\left(-\sqrt[3]{\color{blue}{{\left(\frac{0.125 \cdot \left(3 - 2 \cdot v\right)}{1 - v}\right)}^{3}}}, {\left(\left|w \cdot r\right|\right)}^{2}, \frac{2}{r \cdot r}\right) - \left(4.5 - 3\right)\]
  19. Final simplification0.4

    \[\leadsto \mathsf{fma}\left(-\sqrt[3]{{\left(\frac{0.125 \cdot \left(3 - 2 \cdot v\right)}{1 - v}\right)}^{3}}, {\left(\left|w \cdot r\right|\right)}^{2}, \frac{2}{r \cdot r}\right) - \left(4.5 - 3\right)\]

Reproduce

herbie shell --seed 2020001 +o rules:numerics
(FPCore (v w r)
  :name "Rosa's TurbineBenchmark"
  :precision binary64
  (- (- (+ 3 (/ 2 (* r r))) (/ (* (* 0.125 (- 3 (* 2 v))) (* (* (* w w) r) r)) (- 1 v))) 4.5))