Average Error: 11.7 → 0.4
Time: 23.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(\left(3 + \frac{\frac{2}{r}}{r}\right) - \left(\left(r \cdot w\right) \cdot \left(r \cdot w\right)\right) \cdot \left(\sqrt{\frac{0.125}{\frac{1 - v}{\mathsf{fma}\left(-2, v, 3\right)}}} \cdot \sqrt{\frac{0.125}{\frac{1 - v}{\mathsf{fma}\left(-2, v, 3\right)}}}\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(\left(r \cdot w\right) \cdot \left(r \cdot w\right)\right) \cdot \left(\sqrt{\frac{0.125}{\frac{1 - v}{\mathsf{fma}\left(-2, v, 3\right)}}} \cdot \sqrt{\frac{0.125}{\frac{1 - v}{\mathsf{fma}\left(-2, v, 3\right)}}}\right)\right) - 4.5
double f(double v, double w, double r) {
        double r628786 = 3.0;
        double r628787 = 2.0;
        double r628788 = r;
        double r628789 = r628788 * r628788;
        double r628790 = r628787 / r628789;
        double r628791 = r628786 + r628790;
        double r628792 = 0.125;
        double r628793 = v;
        double r628794 = r628787 * r628793;
        double r628795 = r628786 - r628794;
        double r628796 = r628792 * r628795;
        double r628797 = w;
        double r628798 = r628797 * r628797;
        double r628799 = r628798 * r628788;
        double r628800 = r628799 * r628788;
        double r628801 = r628796 * r628800;
        double r628802 = 1.0;
        double r628803 = r628802 - r628793;
        double r628804 = r628801 / r628803;
        double r628805 = r628791 - r628804;
        double r628806 = 4.5;
        double r628807 = r628805 - r628806;
        return r628807;
}

double f(double v, double w, double r) {
        double r628808 = 3.0;
        double r628809 = 2.0;
        double r628810 = r;
        double r628811 = r628809 / r628810;
        double r628812 = r628811 / r628810;
        double r628813 = r628808 + r628812;
        double r628814 = w;
        double r628815 = r628810 * r628814;
        double r628816 = r628815 * r628815;
        double r628817 = 0.125;
        double r628818 = 1.0;
        double r628819 = v;
        double r628820 = r628818 - r628819;
        double r628821 = -2.0;
        double r628822 = fma(r628821, r628819, r628808);
        double r628823 = r628820 / r628822;
        double r628824 = r628817 / r628823;
        double r628825 = sqrt(r628824);
        double r628826 = r628825 * r628825;
        double r628827 = r628816 * r628826;
        double r628828 = r628813 - r628827;
        double r628829 = 4.5;
        double r628830 = r628828 - r628829;
        return r628830;
}

Error

Bits error versus v

Bits error versus w

Bits error versus r

Derivation

  1. Initial program 11.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. Simplified0.3

    \[\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. Using strategy rm
  4. Applied associate-/r*0.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. Applied associate--r+0.3

    \[\leadsto \color{blue}{\left(\left(3 + \frac{\frac{2}{r}}{r}\right) - \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)\right) - 4.5}\]
  8. Using strategy rm
  9. Applied add-sqr-sqrt0.4

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

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

Reproduce

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