Average Error: 11.6 → 0.5
Time: 41.2s
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(3 + \frac{\frac{2}{r}}{r}\right) - \left(4.5 + \left(\frac{\sqrt{0.125}}{\frac{1 - v}{\sqrt[3]{\mathsf{fma}\left(-2, v, 3\right)}}} \cdot \left(\left(w \cdot r\right) \cdot \left(w \cdot r\right)\right)\right) \cdot \frac{\sqrt{0.125}}{\frac{1}{\sqrt[3]{\mathsf{fma}\left(-2, v, 3\right)} \cdot \sqrt[3]{\mathsf{fma}\left(-2, v, 3\right)}}}\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
\left(3 + \frac{\frac{2}{r}}{r}\right) - \left(4.5 + \left(\frac{\sqrt{0.125}}{\frac{1 - v}{\sqrt[3]{\mathsf{fma}\left(-2, v, 3\right)}}} \cdot \left(\left(w \cdot r\right) \cdot \left(w \cdot r\right)\right)\right) \cdot \frac{\sqrt{0.125}}{\frac{1}{\sqrt[3]{\mathsf{fma}\left(-2, v, 3\right)} \cdot \sqrt[3]{\mathsf{fma}\left(-2, v, 3\right)}}}\right)
double f(double v, double w, double r) {
        double r989970 = 3.0;
        double r989971 = 2.0;
        double r989972 = r;
        double r989973 = r989972 * r989972;
        double r989974 = r989971 / r989973;
        double r989975 = r989970 + r989974;
        double r989976 = 0.125;
        double r989977 = v;
        double r989978 = r989971 * r989977;
        double r989979 = r989970 - r989978;
        double r989980 = r989976 * r989979;
        double r989981 = w;
        double r989982 = r989981 * r989981;
        double r989983 = r989982 * r989972;
        double r989984 = r989983 * r989972;
        double r989985 = r989980 * r989984;
        double r989986 = 1.0;
        double r989987 = r989986 - r989977;
        double r989988 = r989985 / r989987;
        double r989989 = r989975 - r989988;
        double r989990 = 4.5;
        double r989991 = r989989 - r989990;
        return r989991;
}

double f(double v, double w, double r) {
        double r989992 = 3.0;
        double r989993 = 2.0;
        double r989994 = r;
        double r989995 = r989993 / r989994;
        double r989996 = r989995 / r989994;
        double r989997 = r989992 + r989996;
        double r989998 = 4.5;
        double r989999 = 0.125;
        double r990000 = sqrt(r989999);
        double r990001 = 1.0;
        double r990002 = v;
        double r990003 = r990001 - r990002;
        double r990004 = -2.0;
        double r990005 = fma(r990004, r990002, r989992);
        double r990006 = cbrt(r990005);
        double r990007 = r990003 / r990006;
        double r990008 = r990000 / r990007;
        double r990009 = w;
        double r990010 = r990009 * r989994;
        double r990011 = r990010 * r990010;
        double r990012 = r990008 * r990011;
        double r990013 = r990006 * r990006;
        double r990014 = r990001 / r990013;
        double r990015 = r990000 / r990014;
        double r990016 = r990012 * r990015;
        double r990017 = r989998 + r990016;
        double r990018 = r989997 - r990017;
        return r990018;
}

Error

Bits error versus v

Bits error versus w

Bits error versus r

Derivation

  1. Initial program 11.6

    \[\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(\frac{0.125}{\frac{1 - v}{\mathsf{fma}\left(-2, v, 3\right)}}, \left(w \cdot r\right) \cdot \left(w \cdot r\right), 4.5\right)}\]
  3. Taylor expanded around -inf 0.4

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

    \[\leadsto \left(3 + \color{blue}{\frac{\frac{2}{r}}{r}}\right) - \mathsf{fma}\left(\frac{0.125}{\frac{1 - v}{\mathsf{fma}\left(-2, v, 3\right)}}, \left(w \cdot r\right) \cdot \left(w \cdot r\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{0.125}{\frac{1 - v}{\mathsf{fma}\left(-2, v, 3\right)}} \cdot \left(\left(w \cdot r\right) \cdot \left(w \cdot r\right)\right) + 4.5\right)}\]
  7. Using strategy rm
  8. Applied add-cube-cbrt0.5

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

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

    \[\leadsto \left(3 + \frac{\frac{2}{r}}{r}\right) - \left(\frac{0.125}{\frac{\color{blue}{1 \cdot 1} - 1 \cdot v}{\left(\sqrt[3]{\mathsf{fma}\left(-2, v, 3\right)} \cdot \sqrt[3]{\mathsf{fma}\left(-2, v, 3\right)}\right) \cdot \sqrt[3]{\mathsf{fma}\left(-2, v, 3\right)}}} \cdot \left(\left(w \cdot r\right) \cdot \left(w \cdot r\right)\right) + 4.5\right)\]
  11. Applied distribute-lft-out--0.5

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

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

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

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

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

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

Reproduce

herbie shell --seed 2019151 +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))