Average Error: 12.7 → 1.8
Time: 26.0s
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}\;v \le -5.530004232362771987750995437263756157593 \cdot 10^{67}:\\ \;\;\;\;\left(\frac{2}{r \cdot r} + \left(3 - 4.5\right)\right) - \left(\left(\left(r \cdot w\right) \cdot \left(r \cdot w\right)\right) \cdot 0.25 - 0.125 \cdot \left(\frac{\left(r \cdot w\right) \cdot \left(r \cdot w\right)}{v} + \frac{r \cdot w}{v} \cdot \frac{r \cdot w}{v}\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\frac{2}{r \cdot r} + \left(3 - 4.5\right)\right) - \left(r \cdot w\right) \cdot \left(\frac{0.125}{1 - v} \cdot \left(\left(r \cdot w\right) \cdot \left(3 - 2 \cdot v\right)\right)\right)\\ \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}\;v \le -5.530004232362771987750995437263756157593 \cdot 10^{67}:\\
\;\;\;\;\left(\frac{2}{r \cdot r} + \left(3 - 4.5\right)\right) - \left(\left(\left(r \cdot w\right) \cdot \left(r \cdot w\right)\right) \cdot 0.25 - 0.125 \cdot \left(\frac{\left(r \cdot w\right) \cdot \left(r \cdot w\right)}{v} + \frac{r \cdot w}{v} \cdot \frac{r \cdot w}{v}\right)\right)\\

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

\end{array}
double f(double v, double w, double r) {
        double r1482260 = 3.0;
        double r1482261 = 2.0;
        double r1482262 = r;
        double r1482263 = r1482262 * r1482262;
        double r1482264 = r1482261 / r1482263;
        double r1482265 = r1482260 + r1482264;
        double r1482266 = 0.125;
        double r1482267 = v;
        double r1482268 = r1482261 * r1482267;
        double r1482269 = r1482260 - r1482268;
        double r1482270 = r1482266 * r1482269;
        double r1482271 = w;
        double r1482272 = r1482271 * r1482271;
        double r1482273 = r1482272 * r1482262;
        double r1482274 = r1482273 * r1482262;
        double r1482275 = r1482270 * r1482274;
        double r1482276 = 1.0;
        double r1482277 = r1482276 - r1482267;
        double r1482278 = r1482275 / r1482277;
        double r1482279 = r1482265 - r1482278;
        double r1482280 = 4.5;
        double r1482281 = r1482279 - r1482280;
        return r1482281;
}

double f(double v, double w, double r) {
        double r1482282 = v;
        double r1482283 = -5.530004232362772e+67;
        bool r1482284 = r1482282 <= r1482283;
        double r1482285 = 2.0;
        double r1482286 = r;
        double r1482287 = r1482286 * r1482286;
        double r1482288 = r1482285 / r1482287;
        double r1482289 = 3.0;
        double r1482290 = 4.5;
        double r1482291 = r1482289 - r1482290;
        double r1482292 = r1482288 + r1482291;
        double r1482293 = w;
        double r1482294 = r1482286 * r1482293;
        double r1482295 = r1482294 * r1482294;
        double r1482296 = 0.25;
        double r1482297 = r1482295 * r1482296;
        double r1482298 = 0.125;
        double r1482299 = r1482295 / r1482282;
        double r1482300 = r1482294 / r1482282;
        double r1482301 = r1482300 * r1482300;
        double r1482302 = r1482299 + r1482301;
        double r1482303 = r1482298 * r1482302;
        double r1482304 = r1482297 - r1482303;
        double r1482305 = r1482292 - r1482304;
        double r1482306 = 1.0;
        double r1482307 = r1482306 - r1482282;
        double r1482308 = r1482298 / r1482307;
        double r1482309 = r1482285 * r1482282;
        double r1482310 = r1482289 - r1482309;
        double r1482311 = r1482294 * r1482310;
        double r1482312 = r1482308 * r1482311;
        double r1482313 = r1482294 * r1482312;
        double r1482314 = r1482292 - r1482313;
        double r1482315 = r1482284 ? r1482305 : r1482314;
        return r1482315;
}

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 v < -5.530004232362772e+67

    1. Initial program 18.9

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

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

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

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

    if -5.530004232362772e+67 < v

    1. Initial program 11.2

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

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

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;v \le -5.530004232362771987750995437263756157593 \cdot 10^{67}:\\ \;\;\;\;\left(\frac{2}{r \cdot r} + \left(3 - 4.5\right)\right) - \left(\left(\left(r \cdot w\right) \cdot \left(r \cdot w\right)\right) \cdot 0.25 - 0.125 \cdot \left(\frac{\left(r \cdot w\right) \cdot \left(r \cdot w\right)}{v} + \frac{r \cdot w}{v} \cdot \frac{r \cdot w}{v}\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\frac{2}{r \cdot r} + \left(3 - 4.5\right)\right) - \left(r \cdot w\right) \cdot \left(\frac{0.125}{1 - v} \cdot \left(\left(r \cdot w\right) \cdot \left(3 - 2 \cdot v\right)\right)\right)\\ \end{array}\]

Reproduce

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