Average Error: 12.4 → 0.5
Time: 5.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\]
\[\frac{\frac{2}{r}}{r} - \left(\mathsf{fma}\left(\frac{0.125 \cdot \left(3 - 2 \cdot v\right)}{1 - v}, \sqrt{\sqrt{\left|w \cdot r\right|}} \cdot \left({\left(\sqrt{\left|w \cdot r\right|}\right)}^{\frac{3}{2}} \cdot \left|w \cdot r\right|\right), 4.5\right) - 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
\frac{\frac{2}{r}}{r} - \left(\mathsf{fma}\left(\frac{0.125 \cdot \left(3 - 2 \cdot v\right)}{1 - v}, \sqrt{\sqrt{\left|w \cdot r\right|}} \cdot \left({\left(\sqrt{\left|w \cdot r\right|}\right)}^{\frac{3}{2}} \cdot \left|w \cdot r\right|\right), 4.5\right) - 3\right)
double f(double v, double w, double r) {
        double r15359 = 3.0;
        double r15360 = 2.0;
        double r15361 = r;
        double r15362 = r15361 * r15361;
        double r15363 = r15360 / r15362;
        double r15364 = r15359 + r15363;
        double r15365 = 0.125;
        double r15366 = v;
        double r15367 = r15360 * r15366;
        double r15368 = r15359 - r15367;
        double r15369 = r15365 * r15368;
        double r15370 = w;
        double r15371 = r15370 * r15370;
        double r15372 = r15371 * r15361;
        double r15373 = r15372 * r15361;
        double r15374 = r15369 * r15373;
        double r15375 = 1.0;
        double r15376 = r15375 - r15366;
        double r15377 = r15374 / r15376;
        double r15378 = r15364 - r15377;
        double r15379 = 4.5;
        double r15380 = r15378 - r15379;
        return r15380;
}

double f(double v, double w, double r) {
        double r15381 = 2.0;
        double r15382 = r;
        double r15383 = r15381 / r15382;
        double r15384 = r15383 / r15382;
        double r15385 = 0.125;
        double r15386 = 3.0;
        double r15387 = v;
        double r15388 = r15381 * r15387;
        double r15389 = r15386 - r15388;
        double r15390 = r15385 * r15389;
        double r15391 = 1.0;
        double r15392 = r15391 - r15387;
        double r15393 = r15390 / r15392;
        double r15394 = w;
        double r15395 = r15394 * r15382;
        double r15396 = fabs(r15395);
        double r15397 = sqrt(r15396);
        double r15398 = sqrt(r15397);
        double r15399 = 1.5;
        double r15400 = pow(r15397, r15399);
        double r15401 = r15400 * r15396;
        double r15402 = r15398 * r15401;
        double r15403 = 4.5;
        double r15404 = fma(r15393, r15402, r15403);
        double r15405 = r15404 - r15386;
        double r15406 = r15384 - r15405;
        return r15406;
}

Error

Bits error versus v

Bits error versus w

Bits error versus r

Derivation

  1. Initial program 12.4

    \[\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 associate-/r*0.4

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

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

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

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

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

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

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

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

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

Reproduce

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