Average Error: 13.1 → 1.0
Time: 2.1m
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\]
\[\left(\left(3 + \frac{\frac{2}{r}}{r}\right) - \left(\frac{1}{\sqrt[3]{\frac{1 - v}{0.125}} \cdot \sqrt[3]{\frac{1 - v}{0.125}}} \cdot \left(\frac{\mathsf{fma}\left(v, -2, 3\right)}{\sqrt[3]{\frac{1 - v}{0.125}}} \cdot \left(w \cdot r\right)\right)\right) \cdot \left(w \cdot r\right)\right) - 4.5\]
\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
\left(\left(3 + \frac{\frac{2}{r}}{r}\right) - \left(\frac{1}{\sqrt[3]{\frac{1 - v}{0.125}} \cdot \sqrt[3]{\frac{1 - v}{0.125}}} \cdot \left(\frac{\mathsf{fma}\left(v, -2, 3\right)}{\sqrt[3]{\frac{1 - v}{0.125}}} \cdot \left(w \cdot r\right)\right)\right) \cdot \left(w \cdot r\right)\right) - 4.5
double f(double v, double w, double r) {
        double r12370851 = 3.0;
        double r12370852 = 2.0;
        double r12370853 = r;
        double r12370854 = r12370853 * r12370853;
        double r12370855 = r12370852 / r12370854;
        double r12370856 = r12370851 + r12370855;
        double r12370857 = 0.125;
        double r12370858 = v;
        double r12370859 = r12370852 * r12370858;
        double r12370860 = r12370851 - r12370859;
        double r12370861 = r12370857 * r12370860;
        double r12370862 = w;
        double r12370863 = r12370862 * r12370862;
        double r12370864 = r12370863 * r12370853;
        double r12370865 = r12370864 * r12370853;
        double r12370866 = r12370861 * r12370865;
        double r12370867 = 1.0;
        double r12370868 = r12370867 - r12370858;
        double r12370869 = r12370866 / r12370868;
        double r12370870 = r12370856 - r12370869;
        double r12370871 = 4.5;
        double r12370872 = r12370870 - r12370871;
        return r12370872;
}

double f(double v, double w, double r) {
        double r12370873 = 3.0;
        double r12370874 = 2.0;
        double r12370875 = r;
        double r12370876 = r12370874 / r12370875;
        double r12370877 = r12370876 / r12370875;
        double r12370878 = r12370873 + r12370877;
        double r12370879 = 1.0;
        double r12370880 = v;
        double r12370881 = r12370879 - r12370880;
        double r12370882 = 0.125;
        double r12370883 = r12370881 / r12370882;
        double r12370884 = cbrt(r12370883);
        double r12370885 = r12370884 * r12370884;
        double r12370886 = r12370879 / r12370885;
        double r12370887 = -2.0;
        double r12370888 = fma(r12370880, r12370887, r12370873);
        double r12370889 = r12370888 / r12370884;
        double r12370890 = w;
        double r12370891 = r12370890 * r12370875;
        double r12370892 = r12370889 * r12370891;
        double r12370893 = r12370886 * r12370892;
        double r12370894 = r12370893 * r12370891;
        double r12370895 = r12370878 - r12370894;
        double r12370896 = 4.5;
        double r12370897 = r12370895 - r12370896;
        return r12370897;
}

Error

Bits error versus v

Bits error versus w

Bits error versus r

Derivation

  1. Initial program 13.1

    \[\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. Simplified0.4

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

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

    \[\leadsto \left(3 + \frac{\frac{2}{r}}{r}\right) - \color{blue}{\left(\frac{\mathsf{fma}\left(v, -2, 3\right)}{\frac{1 - v}{0.125}} \cdot \left(\left(w \cdot r\right) \cdot \left(w \cdot r\right)\right) + 4.5\right)}\]
  7. Applied associate--r+0.4

    \[\leadsto \color{blue}{\left(\left(3 + \frac{\frac{2}{r}}{r}\right) - \frac{\mathsf{fma}\left(v, -2, 3\right)}{\frac{1 - v}{0.125}} \cdot \left(\left(w \cdot r\right) \cdot \left(w \cdot r\right)\right)\right) - 4.5}\]
  8. Using strategy rm
  9. Applied associate-*r*0.4

    \[\leadsto \left(\left(3 + \frac{\frac{2}{r}}{r}\right) - \color{blue}{\left(\frac{\mathsf{fma}\left(v, -2, 3\right)}{\frac{1 - v}{0.125}} \cdot \left(w \cdot r\right)\right) \cdot \left(w \cdot r\right)}\right) - 4.5\]
  10. Using strategy rm
  11. Applied add-cube-cbrt0.5

    \[\leadsto \left(\left(3 + \frac{\frac{2}{r}}{r}\right) - \left(\frac{\mathsf{fma}\left(v, -2, 3\right)}{\color{blue}{\left(\sqrt[3]{\frac{1 - v}{0.125}} \cdot \sqrt[3]{\frac{1 - v}{0.125}}\right) \cdot \sqrt[3]{\frac{1 - v}{0.125}}}} \cdot \left(w \cdot r\right)\right) \cdot \left(w \cdot r\right)\right) - 4.5\]
  12. Applied *-un-lft-identity0.5

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

    \[\leadsto \left(\left(3 + \frac{\frac{2}{r}}{r}\right) - \left(\color{blue}{\left(\frac{1}{\sqrt[3]{\frac{1 - v}{0.125}} \cdot \sqrt[3]{\frac{1 - v}{0.125}}} \cdot \frac{\mathsf{fma}\left(v, -2, 3\right)}{\sqrt[3]{\frac{1 - v}{0.125}}}\right)} \cdot \left(w \cdot r\right)\right) \cdot \left(w \cdot r\right)\right) - 4.5\]
  14. Applied associate-*l*1.0

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

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

Reproduce

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