Average Error: 12.2 → 0.5
Time: 41.7s
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) - \mathsf{fma}\left(\sqrt{\frac{3 - v \cdot 2}{\frac{1 - v}{\left(w \cdot r\right) \cdot \left(w \cdot r\right)}}} \cdot \sqrt{\frac{3 - v \cdot 2}{\frac{1 - v}{\left(w \cdot r\right) \cdot \left(w \cdot r\right)}}}, 0.125, 4.5\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) - \mathsf{fma}\left(\sqrt{\frac{3 - v \cdot 2}{\frac{1 - v}{\left(w \cdot r\right) \cdot \left(w \cdot r\right)}}} \cdot \sqrt{\frac{3 - v \cdot 2}{\frac{1 - v}{\left(w \cdot r\right) \cdot \left(w \cdot r\right)}}}, 0.125, 4.5\right)
double f(double v, double w, double r) {
        double r1315643 = 3.0;
        double r1315644 = 2.0;
        double r1315645 = r;
        double r1315646 = r1315645 * r1315645;
        double r1315647 = r1315644 / r1315646;
        double r1315648 = r1315643 + r1315647;
        double r1315649 = 0.125;
        double r1315650 = v;
        double r1315651 = r1315644 * r1315650;
        double r1315652 = r1315643 - r1315651;
        double r1315653 = r1315649 * r1315652;
        double r1315654 = w;
        double r1315655 = r1315654 * r1315654;
        double r1315656 = r1315655 * r1315645;
        double r1315657 = r1315656 * r1315645;
        double r1315658 = r1315653 * r1315657;
        double r1315659 = 1.0;
        double r1315660 = r1315659 - r1315650;
        double r1315661 = r1315658 / r1315660;
        double r1315662 = r1315648 - r1315661;
        double r1315663 = 4.5;
        double r1315664 = r1315662 - r1315663;
        return r1315664;
}

double f(double v, double w, double r) {
        double r1315665 = 3.0;
        double r1315666 = 2.0;
        double r1315667 = r;
        double r1315668 = r1315666 / r1315667;
        double r1315669 = r1315668 / r1315667;
        double r1315670 = r1315665 + r1315669;
        double r1315671 = v;
        double r1315672 = r1315671 * r1315666;
        double r1315673 = r1315665 - r1315672;
        double r1315674 = 1.0;
        double r1315675 = r1315674 - r1315671;
        double r1315676 = w;
        double r1315677 = r1315676 * r1315667;
        double r1315678 = r1315677 * r1315677;
        double r1315679 = r1315675 / r1315678;
        double r1315680 = r1315673 / r1315679;
        double r1315681 = sqrt(r1315680);
        double r1315682 = r1315681 * r1315681;
        double r1315683 = 0.125;
        double r1315684 = 4.5;
        double r1315685 = fma(r1315682, r1315683, r1315684);
        double r1315686 = r1315670 - r1315685;
        return r1315686;
}

Error

Bits error versus v

Bits error versus w

Bits error versus r

Derivation

  1. Initial program 12.2

    \[\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(\frac{2}{r \cdot r} + 3\right) - \mathsf{fma}\left(\frac{3 - v \cdot 2}{\frac{1 - v}{\left(w \cdot r\right) \cdot \left(w \cdot r\right)}}, 0.125, 4.5\right)}\]
  3. Using strategy rm
  4. Applied associate-/r*0.4

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

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

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

Reproduce

herbie shell --seed 2019200 +o rules:numerics
(FPCore (v w r)
  :name "Rosa's TurbineBenchmark"
  (- (- (+ 3.0 (/ 2.0 (* r r))) (/ (* (* 0.125 (- 3.0 (* 2.0 v))) (* (* (* w w) r) r)) (- 1.0 v))) 4.5))