Average Error: 12.8 → 0.6
Time: 32.7s
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\]
\[\begin{array}{l} \mathbf{if}\;r \le -2.529071314108289553216263398312709726481 \cdot 10^{188} \lor \neg \left(r \le 5.21395643917214503895832514072602417905 \cdot 10^{209}\right):\\ \;\;\;\;\left(\left(3 + \frac{2}{r \cdot r}\right) - \frac{\frac{0.125}{\frac{1 - v}{3 - 2 \cdot v}}}{\frac{\frac{1}{\left(r \cdot w\right) \cdot w}}{r}}\right) - 4.5\\ \mathbf{else}:\\ \;\;\;\;\left(\left(3 + \frac{2}{r \cdot r}\right) - \frac{\left(3 - 2 \cdot v\right) \cdot 0.125}{\left(1 - v\right) \cdot \frac{\frac{1}{w}}{r \cdot \left(r \cdot w\right)}}\right) - 4.5\\ \end{array}\]
\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
\begin{array}{l}
\mathbf{if}\;r \le -2.529071314108289553216263398312709726481 \cdot 10^{188} \lor \neg \left(r \le 5.21395643917214503895832514072602417905 \cdot 10^{209}\right):\\
\;\;\;\;\left(\left(3 + \frac{2}{r \cdot r}\right) - \frac{\frac{0.125}{\frac{1 - v}{3 - 2 \cdot v}}}{\frac{\frac{1}{\left(r \cdot w\right) \cdot w}}{r}}\right) - 4.5\\

\mathbf{else}:\\
\;\;\;\;\left(\left(3 + \frac{2}{r \cdot r}\right) - \frac{\left(3 - 2 \cdot v\right) \cdot 0.125}{\left(1 - v\right) \cdot \frac{\frac{1}{w}}{r \cdot \left(r \cdot w\right)}}\right) - 4.5\\

\end{array}
double f(double v, double w, double r) {
        double r61282 = 3.0;
        double r61283 = 2.0;
        double r61284 = r;
        double r61285 = r61284 * r61284;
        double r61286 = r61283 / r61285;
        double r61287 = r61282 + r61286;
        double r61288 = 0.125;
        double r61289 = v;
        double r61290 = r61283 * r61289;
        double r61291 = r61282 - r61290;
        double r61292 = r61288 * r61291;
        double r61293 = w;
        double r61294 = r61293 * r61293;
        double r61295 = r61294 * r61284;
        double r61296 = r61295 * r61284;
        double r61297 = r61292 * r61296;
        double r61298 = 1.0;
        double r61299 = r61298 - r61289;
        double r61300 = r61297 / r61299;
        double r61301 = r61287 - r61300;
        double r61302 = 4.5;
        double r61303 = r61301 - r61302;
        return r61303;
}

double f(double v, double w, double r) {
        double r61304 = r;
        double r61305 = -2.5290713141082896e+188;
        bool r61306 = r61304 <= r61305;
        double r61307 = 5.213956439172145e+209;
        bool r61308 = r61304 <= r61307;
        double r61309 = !r61308;
        bool r61310 = r61306 || r61309;
        double r61311 = 3.0;
        double r61312 = 2.0;
        double r61313 = r61304 * r61304;
        double r61314 = r61312 / r61313;
        double r61315 = r61311 + r61314;
        double r61316 = 0.125;
        double r61317 = 1.0;
        double r61318 = v;
        double r61319 = r61317 - r61318;
        double r61320 = r61312 * r61318;
        double r61321 = r61311 - r61320;
        double r61322 = r61319 / r61321;
        double r61323 = r61316 / r61322;
        double r61324 = 1.0;
        double r61325 = w;
        double r61326 = r61304 * r61325;
        double r61327 = r61326 * r61325;
        double r61328 = r61324 / r61327;
        double r61329 = r61328 / r61304;
        double r61330 = r61323 / r61329;
        double r61331 = r61315 - r61330;
        double r61332 = 4.5;
        double r61333 = r61331 - r61332;
        double r61334 = r61321 * r61316;
        double r61335 = r61324 / r61325;
        double r61336 = r61304 * r61326;
        double r61337 = r61335 / r61336;
        double r61338 = r61319 * r61337;
        double r61339 = r61334 / r61338;
        double r61340 = r61315 - r61339;
        double r61341 = r61340 - r61332;
        double r61342 = r61310 ? r61333 : r61341;
        return r61342;
}

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. Split input into 2 regimes
  2. if r < -2.5290713141082896e+188 or 5.213956439172145e+209 < r

    1. Initial program 35.0

      \[\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. Using strategy rm
    3. Applied associate-/l*27.7

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

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

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

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

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

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

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

    if -2.5290713141082896e+188 < r < 5.213956439172145e+209

    1. Initial program 9.6

      \[\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. Using strategy rm
    3. Applied associate-/l*5.6

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

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

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

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

      \[\leadsto \left(\left(3 + \frac{2}{r \cdot r}\right) - \frac{0.125 \cdot \left(3 - 2 \cdot v\right)}{\color{blue}{\frac{1 - v}{1} \cdot \frac{\frac{1}{w \cdot \left(w \cdot r\right)}}{r}}}\right) - 4.5\]
    9. Simplified3.0

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;r \le -2.529071314108289553216263398312709726481 \cdot 10^{188} \lor \neg \left(r \le 5.21395643917214503895832514072602417905 \cdot 10^{209}\right):\\ \;\;\;\;\left(\left(3 + \frac{2}{r \cdot r}\right) - \frac{\frac{0.125}{\frac{1 - v}{3 - 2 \cdot v}}}{\frac{\frac{1}{\left(r \cdot w\right) \cdot w}}{r}}\right) - 4.5\\ \mathbf{else}:\\ \;\;\;\;\left(\left(3 + \frac{2}{r \cdot r}\right) - \frac{\left(3 - 2 \cdot v\right) \cdot 0.125}{\left(1 - v\right) \cdot \frac{\frac{1}{w}}{r \cdot \left(r \cdot w\right)}}\right) - 4.5\\ \end{array}\]

Reproduce

herbie shell --seed 2019194 
(FPCore (v w r)
  :name "Rosa's TurbineBenchmark"
  (- (- (+ 3.0 (/ 2.0 (* r r))) (/ (* (* 0.125 (- 3.0 (* 2.0 v))) (* (* (* w w) r) r)) (- 1.0 v))) 4.5))