Average Error: 12.1 → 0.4
Time: 27.9s
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{\frac{2}{r}}{r}\right) - \frac{3 - v \cdot 2}{\frac{1 - v}{w \cdot r}} \cdot \frac{0.125}{\frac{1}{w \cdot r}}\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{\frac{2}{r}}{r}\right) - \frac{3 - v \cdot 2}{\frac{1 - v}{w \cdot r}} \cdot \frac{0.125}{\frac{1}{w \cdot r}}\right) - 4.5
double f(double v, double w, double r) {
        double r1717323 = 3.0;
        double r1717324 = 2.0;
        double r1717325 = r;
        double r1717326 = r1717325 * r1717325;
        double r1717327 = r1717324 / r1717326;
        double r1717328 = r1717323 + r1717327;
        double r1717329 = 0.125;
        double r1717330 = v;
        double r1717331 = r1717324 * r1717330;
        double r1717332 = r1717323 - r1717331;
        double r1717333 = r1717329 * r1717332;
        double r1717334 = w;
        double r1717335 = r1717334 * r1717334;
        double r1717336 = r1717335 * r1717325;
        double r1717337 = r1717336 * r1717325;
        double r1717338 = r1717333 * r1717337;
        double r1717339 = 1.0;
        double r1717340 = r1717339 - r1717330;
        double r1717341 = r1717338 / r1717340;
        double r1717342 = r1717328 - r1717341;
        double r1717343 = 4.5;
        double r1717344 = r1717342 - r1717343;
        return r1717344;
}

double f(double v, double w, double r) {
        double r1717345 = 3.0;
        double r1717346 = 2.0;
        double r1717347 = r;
        double r1717348 = r1717346 / r1717347;
        double r1717349 = r1717348 / r1717347;
        double r1717350 = r1717345 + r1717349;
        double r1717351 = v;
        double r1717352 = r1717351 * r1717346;
        double r1717353 = r1717345 - r1717352;
        double r1717354 = 1.0;
        double r1717355 = r1717354 - r1717351;
        double r1717356 = w;
        double r1717357 = r1717356 * r1717347;
        double r1717358 = r1717355 / r1717357;
        double r1717359 = r1717353 / r1717358;
        double r1717360 = 0.125;
        double r1717361 = r1717354 / r1717357;
        double r1717362 = r1717360 / r1717361;
        double r1717363 = r1717359 * r1717362;
        double r1717364 = r1717350 - r1717363;
        double r1717365 = 4.5;
        double r1717366 = r1717364 - r1717365;
        return r1717366;
}

Error

Bits error versus v

Bits error versus w

Bits error versus r

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

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.4

    \[\leadsto \color{blue}{\left(\left(3 + \frac{2}{r \cdot r}\right) - \frac{\left(3 - v \cdot 2\right) \cdot 0.125}{\frac{\frac{1 - v}{w \cdot r}}{w \cdot r}}\right) - 4.5}\]
  3. Using strategy rm
  4. Applied associate-/r*0.4

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

    \[\leadsto \left(\left(3 + \frac{\frac{2}{r}}{r}\right) - \frac{\left(3 - v \cdot 2\right) \cdot 0.125}{\color{blue}{\frac{1 - v}{w \cdot r} \cdot \frac{1}{w \cdot r}}}\right) - 4.5\]
  7. Applied times-frac0.4

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

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

Reproduce

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