Average Error: 12.8 → 0.3
Time: 1.2m
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 -1.180726222619468209881332366838631950923 \cdot 10^{153} \lor \neg \left(r \le 6.830905623761732335167628795725702116653 \cdot 10^{-19}\right):\\ \;\;\;\;\left(\left(3 + \frac{\frac{2}{r}}{r}\right) - \frac{\frac{0.125}{\frac{1 - v}{3 - 2 \cdot v}}}{\frac{\frac{\frac{1}{w}}{r \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}{\frac{1 - v}{\left(r \cdot \left(r \cdot w\right)\right) \cdot w}}\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 -1.180726222619468209881332366838631950923 \cdot 10^{153} \lor \neg \left(r \le 6.830905623761732335167628795725702116653 \cdot 10^{-19}\right):\\
\;\;\;\;\left(\left(3 + \frac{\frac{2}{r}}{r}\right) - \frac{\frac{0.125}{\frac{1 - v}{3 - 2 \cdot v}}}{\frac{\frac{\frac{1}{w}}{r \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}{\frac{1 - v}{\left(r \cdot \left(r \cdot w\right)\right) \cdot w}}\right) - 4.5\\

\end{array}
double f(double v, double w, double r) {
        double r174292 = 3.0;
        double r174293 = 2.0;
        double r174294 = r;
        double r174295 = r174294 * r174294;
        double r174296 = r174293 / r174295;
        double r174297 = r174292 + r174296;
        double r174298 = 0.125;
        double r174299 = v;
        double r174300 = r174293 * r174299;
        double r174301 = r174292 - r174300;
        double r174302 = r174298 * r174301;
        double r174303 = w;
        double r174304 = r174303 * r174303;
        double r174305 = r174304 * r174294;
        double r174306 = r174305 * r174294;
        double r174307 = r174302 * r174306;
        double r174308 = 1.0;
        double r174309 = r174308 - r174299;
        double r174310 = r174307 / r174309;
        double r174311 = r174297 - r174310;
        double r174312 = 4.5;
        double r174313 = r174311 - r174312;
        return r174313;
}

double f(double v, double w, double r) {
        double r174314 = r;
        double r174315 = -1.1807262226194682e+153;
        bool r174316 = r174314 <= r174315;
        double r174317 = 6.830905623761732e-19;
        bool r174318 = r174314 <= r174317;
        double r174319 = !r174318;
        bool r174320 = r174316 || r174319;
        double r174321 = 3.0;
        double r174322 = 2.0;
        double r174323 = r174322 / r174314;
        double r174324 = r174323 / r174314;
        double r174325 = r174321 + r174324;
        double r174326 = 0.125;
        double r174327 = 1.0;
        double r174328 = v;
        double r174329 = r174327 - r174328;
        double r174330 = r174322 * r174328;
        double r174331 = r174321 - r174330;
        double r174332 = r174329 / r174331;
        double r174333 = r174326 / r174332;
        double r174334 = 1.0;
        double r174335 = w;
        double r174336 = r174334 / r174335;
        double r174337 = r174314 * r174335;
        double r174338 = r174336 / r174337;
        double r174339 = r174338 / r174314;
        double r174340 = r174333 / r174339;
        double r174341 = r174325 - r174340;
        double r174342 = 4.5;
        double r174343 = r174341 - r174342;
        double r174344 = r174314 * r174314;
        double r174345 = r174322 / r174344;
        double r174346 = r174321 + r174345;
        double r174347 = r174331 * r174326;
        double r174348 = r174314 * r174337;
        double r174349 = r174348 * r174335;
        double r174350 = r174329 / r174349;
        double r174351 = r174347 / r174350;
        double r174352 = r174346 - r174351;
        double r174353 = r174352 - r174342;
        double r174354 = r174320 ? r174343 : r174353;
        return r174354;
}

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 < -1.1807262226194682e+153 or 6.830905623761732e-19 < r

    1. Initial program 17.7

      \[\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*11.0

      \[\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.7

      \[\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.7

      \[\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.7

      \[\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.3

      \[\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.3

      \[\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.3

      \[\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\]
    11. Using strategy rm
    12. Applied associate-/r*0.3

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

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

    if -1.1807262226194682e+153 < r < 6.830905623761732e-19

    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*7.0

      \[\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.6

      \[\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 div-inv3.6

      \[\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)}}}{r}}\right) - 4.5\]
    7. Applied associate-/l*3.6

      \[\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}{\frac{r}{\frac{1}{w \cdot \left(w \cdot r\right)}}}}}\right) - 4.5\]
    8. Simplified0.3

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;r \le -1.180726222619468209881332366838631950923 \cdot 10^{153} \lor \neg \left(r \le 6.830905623761732335167628795725702116653 \cdot 10^{-19}\right):\\ \;\;\;\;\left(\left(3 + \frac{\frac{2}{r}}{r}\right) - \frac{\frac{0.125}{\frac{1 - v}{3 - 2 \cdot v}}}{\frac{\frac{\frac{1}{w}}{r \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}{\frac{1 - v}{\left(r \cdot \left(r \cdot w\right)\right) \cdot w}}\right) - 4.5\\ \end{array}\]

Reproduce

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