Average Error: 12.8 → 0.3
Time: 46.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{\frac{2}{r}}{r} - \left(\left(\left(\frac{3 - v \cdot 2}{\frac{1 - v}{0.125}} \cdot w\right) \cdot r\right) \cdot \left(r \cdot w\right) - \left(3 - 4.5\right)\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{\frac{2}{r}}{r} - \left(\left(\left(\frac{3 - v \cdot 2}{\frac{1 - v}{0.125}} \cdot w\right) \cdot r\right) \cdot \left(r \cdot w\right) - \left(3 - 4.5\right)\right)
double f(double v, double w, double r) {
        double r1560038 = 3.0;
        double r1560039 = 2.0;
        double r1560040 = r;
        double r1560041 = r1560040 * r1560040;
        double r1560042 = r1560039 / r1560041;
        double r1560043 = r1560038 + r1560042;
        double r1560044 = 0.125;
        double r1560045 = v;
        double r1560046 = r1560039 * r1560045;
        double r1560047 = r1560038 - r1560046;
        double r1560048 = r1560044 * r1560047;
        double r1560049 = w;
        double r1560050 = r1560049 * r1560049;
        double r1560051 = r1560050 * r1560040;
        double r1560052 = r1560051 * r1560040;
        double r1560053 = r1560048 * r1560052;
        double r1560054 = 1.0;
        double r1560055 = r1560054 - r1560045;
        double r1560056 = r1560053 / r1560055;
        double r1560057 = r1560043 - r1560056;
        double r1560058 = 4.5;
        double r1560059 = r1560057 - r1560058;
        return r1560059;
}

double f(double v, double w, double r) {
        double r1560060 = 2.0;
        double r1560061 = r;
        double r1560062 = r1560060 / r1560061;
        double r1560063 = r1560062 / r1560061;
        double r1560064 = 3.0;
        double r1560065 = v;
        double r1560066 = r1560065 * r1560060;
        double r1560067 = r1560064 - r1560066;
        double r1560068 = 1.0;
        double r1560069 = r1560068 - r1560065;
        double r1560070 = 0.125;
        double r1560071 = r1560069 / r1560070;
        double r1560072 = r1560067 / r1560071;
        double r1560073 = w;
        double r1560074 = r1560072 * r1560073;
        double r1560075 = r1560074 * r1560061;
        double r1560076 = r1560061 * r1560073;
        double r1560077 = r1560075 * r1560076;
        double r1560078 = 4.5;
        double r1560079 = r1560064 - r1560078;
        double r1560080 = r1560077 - r1560079;
        double r1560081 = r1560063 - r1560080;
        return r1560081;
}

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

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

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

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

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

Reproduce

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