Average Error: 12.2 → 0.4
Time: 2.3m
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{2}{r \cdot r}\right) - \left(r \cdot w\right) \cdot \frac{\mathsf{fma}\left(-2, v, 3\right)}{\frac{\frac{1 - v}{0.125}}{r \cdot w}}\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{2}{r \cdot r}\right) - \left(r \cdot w\right) \cdot \frac{\mathsf{fma}\left(-2, v, 3\right)}{\frac{\frac{1 - v}{0.125}}{r \cdot w}}\right) - 4.5
double f(double v, double w, double r) {
        double r14760532 = 3.0;
        double r14760533 = 2.0;
        double r14760534 = r;
        double r14760535 = r14760534 * r14760534;
        double r14760536 = r14760533 / r14760535;
        double r14760537 = r14760532 + r14760536;
        double r14760538 = 0.125;
        double r14760539 = v;
        double r14760540 = r14760533 * r14760539;
        double r14760541 = r14760532 - r14760540;
        double r14760542 = r14760538 * r14760541;
        double r14760543 = w;
        double r14760544 = r14760543 * r14760543;
        double r14760545 = r14760544 * r14760534;
        double r14760546 = r14760545 * r14760534;
        double r14760547 = r14760542 * r14760546;
        double r14760548 = 1.0;
        double r14760549 = r14760548 - r14760539;
        double r14760550 = r14760547 / r14760549;
        double r14760551 = r14760537 - r14760550;
        double r14760552 = 4.5;
        double r14760553 = r14760551 - r14760552;
        return r14760553;
}

double f(double v, double w, double r) {
        double r14760554 = 3.0;
        double r14760555 = 2.0;
        double r14760556 = r;
        double r14760557 = r14760556 * r14760556;
        double r14760558 = r14760555 / r14760557;
        double r14760559 = r14760554 + r14760558;
        double r14760560 = w;
        double r14760561 = r14760556 * r14760560;
        double r14760562 = -2.0;
        double r14760563 = v;
        double r14760564 = fma(r14760562, r14760563, r14760554);
        double r14760565 = 1.0;
        double r14760566 = r14760565 - r14760563;
        double r14760567 = 0.125;
        double r14760568 = r14760566 / r14760567;
        double r14760569 = r14760568 / r14760561;
        double r14760570 = r14760564 / r14760569;
        double r14760571 = r14760561 * r14760570;
        double r14760572 = r14760559 - r14760571;
        double r14760573 = 4.5;
        double r14760574 = r14760572 - r14760573;
        return r14760574;
}

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(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 fma-udef0.4

    \[\leadsto \left(3 + \frac{2}{r \cdot 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)}\]
  5. Applied associate--r+0.4

    \[\leadsto \color{blue}{\left(\left(3 + \frac{2}{r \cdot 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}\]
  6. Using strategy rm
  7. Applied add-cube-cbrt0.4

    \[\leadsto \left(\left(3 + \frac{2}{r \cdot 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) - \color{blue}{\left(\sqrt[3]{4.5} \cdot \sqrt[3]{4.5}\right) \cdot \sqrt[3]{4.5}}\]
  8. Applied add-sqr-sqrt22.1

    \[\leadsto \color{blue}{\sqrt{\left(3 + \frac{2}{r \cdot 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)} \cdot \sqrt{\left(3 + \frac{2}{r \cdot 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)}} - \left(\sqrt[3]{4.5} \cdot \sqrt[3]{4.5}\right) \cdot \sqrt[3]{4.5}\]
  9. Applied prod-diff22.1

    \[\leadsto \color{blue}{\mathsf{fma}\left(\left(\sqrt{\left(3 + \frac{2}{r \cdot 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), \left(\sqrt{\left(3 + \frac{2}{r \cdot 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), \left(-\sqrt[3]{4.5} \cdot \left(\sqrt[3]{4.5} \cdot \sqrt[3]{4.5}\right)\right)\right) + \mathsf{fma}\left(\left(-\sqrt[3]{4.5}\right), \left(\sqrt[3]{4.5} \cdot \sqrt[3]{4.5}\right), \left(\sqrt[3]{4.5} \cdot \left(\sqrt[3]{4.5} \cdot \sqrt[3]{4.5}\right)\right)\right)}\]
  10. Simplified0.4

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

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

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

Reproduce

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