Average Error: 12.5 → 0.4
Time: 25.8s
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{2}{r \cdot r} + \left(3 - \mathsf{fma}\left(\frac{\left(w \cdot r\right) \cdot 0.125}{{\left(\left(\frac{1 - v}{\mathsf{fma}\left(-2, v, 3\right)} \cdot \frac{1 - v}{\mathsf{fma}\left(-2, v, 3\right)}\right) \cdot \frac{1 - v}{\mathsf{fma}\left(-2, v, 3\right)}\right)}^{\frac{1}{3}}}, w \cdot r, 4.5\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
\frac{2}{r \cdot r} + \left(3 - \mathsf{fma}\left(\frac{\left(w \cdot r\right) \cdot 0.125}{{\left(\left(\frac{1 - v}{\mathsf{fma}\left(-2, v, 3\right)} \cdot \frac{1 - v}{\mathsf{fma}\left(-2, v, 3\right)}\right) \cdot \frac{1 - v}{\mathsf{fma}\left(-2, v, 3\right)}\right)}^{\frac{1}{3}}}, w \cdot r, 4.5\right)\right)
double f(double v, double w, double r) {
        double r813395 = 3.0;
        double r813396 = 2.0;
        double r813397 = r;
        double r813398 = r813397 * r813397;
        double r813399 = r813396 / r813398;
        double r813400 = r813395 + r813399;
        double r813401 = 0.125;
        double r813402 = v;
        double r813403 = r813396 * r813402;
        double r813404 = r813395 - r813403;
        double r813405 = r813401 * r813404;
        double r813406 = w;
        double r813407 = r813406 * r813406;
        double r813408 = r813407 * r813397;
        double r813409 = r813408 * r813397;
        double r813410 = r813405 * r813409;
        double r813411 = 1.0;
        double r813412 = r813411 - r813402;
        double r813413 = r813410 / r813412;
        double r813414 = r813400 - r813413;
        double r813415 = 4.5;
        double r813416 = r813414 - r813415;
        return r813416;
}

double f(double v, double w, double r) {
        double r813417 = 2.0;
        double r813418 = r;
        double r813419 = r813418 * r813418;
        double r813420 = r813417 / r813419;
        double r813421 = 3.0;
        double r813422 = w;
        double r813423 = r813422 * r813418;
        double r813424 = 0.125;
        double r813425 = r813423 * r813424;
        double r813426 = 1.0;
        double r813427 = v;
        double r813428 = r813426 - r813427;
        double r813429 = -2.0;
        double r813430 = fma(r813429, r813427, r813421);
        double r813431 = r813428 / r813430;
        double r813432 = r813431 * r813431;
        double r813433 = r813432 * r813431;
        double r813434 = 0.3333333333333333;
        double r813435 = pow(r813433, r813434);
        double r813436 = r813425 / r813435;
        double r813437 = 4.5;
        double r813438 = fma(r813436, r813423, r813437);
        double r813439 = r813421 - r813438;
        double r813440 = r813420 + r813439;
        return r813440;
}

Error

Bits error versus v

Bits error versus w

Bits error versus r

Derivation

  1. Initial program 12.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\]
  2. Simplified0.4

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

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

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

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

    \[\leadsto \frac{2}{r \cdot r} + \left(3 - \mathsf{fma}\left(\frac{0.125 \cdot \left(w \cdot r\right)}{\sqrt[3]{\color{blue}{\frac{1 - v}{\mathsf{fma}\left(-2, v, 3\right)} \cdot \left(\frac{1 - v}{\mathsf{fma}\left(-2, v, 3\right)} \cdot \frac{1 - v}{\mathsf{fma}\left(-2, v, 3\right)}\right)}}}, w \cdot r, 4.5\right)\right)\]
  8. Using strategy rm
  9. Applied pow1/30.4

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

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

Reproduce

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