Average Error: 12.1 → 0.4
Time: 25.4s
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(\left(4.5 + \left(\left(r \cdot w\right) \cdot \left(\left(r \cdot w\right) \cdot 0.125\right)\right) \cdot \sqrt[3]{\frac{\mathsf{fma}\left(-2, v, 3\right)}{1 - v} \cdot \left(\frac{\mathsf{fma}\left(-2, v, 3\right)}{1 - v} \cdot \frac{\mathsf{fma}\left(-2, v, 3\right)}{1 - v}\right)}\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{2}{r \cdot r} - \left(\left(4.5 + \left(\left(r \cdot w\right) \cdot \left(\left(r \cdot w\right) \cdot 0.125\right)\right) \cdot \sqrt[3]{\frac{\mathsf{fma}\left(-2, v, 3\right)}{1 - v} \cdot \left(\frac{\mathsf{fma}\left(-2, v, 3\right)}{1 - v} \cdot \frac{\mathsf{fma}\left(-2, v, 3\right)}{1 - v}\right)}\right) - 3\right)
double f(double v, double w, double r) {
        double r1355305 = 3.0;
        double r1355306 = 2.0;
        double r1355307 = r;
        double r1355308 = r1355307 * r1355307;
        double r1355309 = r1355306 / r1355308;
        double r1355310 = r1355305 + r1355309;
        double r1355311 = 0.125;
        double r1355312 = v;
        double r1355313 = r1355306 * r1355312;
        double r1355314 = r1355305 - r1355313;
        double r1355315 = r1355311 * r1355314;
        double r1355316 = w;
        double r1355317 = r1355316 * r1355316;
        double r1355318 = r1355317 * r1355307;
        double r1355319 = r1355318 * r1355307;
        double r1355320 = r1355315 * r1355319;
        double r1355321 = 1.0;
        double r1355322 = r1355321 - r1355312;
        double r1355323 = r1355320 / r1355322;
        double r1355324 = r1355310 - r1355323;
        double r1355325 = 4.5;
        double r1355326 = r1355324 - r1355325;
        return r1355326;
}

double f(double v, double w, double r) {
        double r1355327 = 2.0;
        double r1355328 = r;
        double r1355329 = r1355328 * r1355328;
        double r1355330 = r1355327 / r1355329;
        double r1355331 = 4.5;
        double r1355332 = w;
        double r1355333 = r1355328 * r1355332;
        double r1355334 = 0.125;
        double r1355335 = r1355333 * r1355334;
        double r1355336 = r1355333 * r1355335;
        double r1355337 = -2.0;
        double r1355338 = v;
        double r1355339 = 3.0;
        double r1355340 = fma(r1355337, r1355338, r1355339);
        double r1355341 = 1.0;
        double r1355342 = r1355341 - r1355338;
        double r1355343 = r1355340 / r1355342;
        double r1355344 = r1355343 * r1355343;
        double r1355345 = r1355343 * r1355344;
        double r1355346 = cbrt(r1355345);
        double r1355347 = r1355336 * r1355346;
        double r1355348 = r1355331 + r1355347;
        double r1355349 = r1355348 - r1355339;
        double r1355350 = r1355330 - r1355349;
        return r1355350;
}

Error

Bits error versus v

Bits error versus w

Bits error versus r

Derivation

  1. Initial program 12.1

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

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

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

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

Reproduce

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