Average Error: 12.7 → 0.3
Time: 25.6s
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(\frac{3 - v \cdot 2}{\frac{1 - v}{0.125}} \cdot \left(r \cdot w\right)\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(\frac{3 - v \cdot 2}{\frac{1 - v}{0.125}} \cdot \left(r \cdot w\right)\right) \cdot \left(r \cdot w\right) - \left(3 - 4.5\right)\right)
double f(double v, double w, double r) {
        double r1416938 = 3.0;
        double r1416939 = 2.0;
        double r1416940 = r;
        double r1416941 = r1416940 * r1416940;
        double r1416942 = r1416939 / r1416941;
        double r1416943 = r1416938 + r1416942;
        double r1416944 = 0.125;
        double r1416945 = v;
        double r1416946 = r1416939 * r1416945;
        double r1416947 = r1416938 - r1416946;
        double r1416948 = r1416944 * r1416947;
        double r1416949 = w;
        double r1416950 = r1416949 * r1416949;
        double r1416951 = r1416950 * r1416940;
        double r1416952 = r1416951 * r1416940;
        double r1416953 = r1416948 * r1416952;
        double r1416954 = 1.0;
        double r1416955 = r1416954 - r1416945;
        double r1416956 = r1416953 / r1416955;
        double r1416957 = r1416943 - r1416956;
        double r1416958 = 4.5;
        double r1416959 = r1416957 - r1416958;
        return r1416959;
}

double f(double v, double w, double r) {
        double r1416960 = 2.0;
        double r1416961 = r;
        double r1416962 = r1416960 / r1416961;
        double r1416963 = r1416962 / r1416961;
        double r1416964 = 3.0;
        double r1416965 = v;
        double r1416966 = r1416965 * r1416960;
        double r1416967 = r1416964 - r1416966;
        double r1416968 = 1.0;
        double r1416969 = r1416968 - r1416965;
        double r1416970 = 0.125;
        double r1416971 = r1416969 / r1416970;
        double r1416972 = r1416967 / r1416971;
        double r1416973 = w;
        double r1416974 = r1416961 * r1416973;
        double r1416975 = r1416972 * r1416974;
        double r1416976 = r1416975 * r1416974;
        double r1416977 = 4.5;
        double r1416978 = r1416964 - r1416977;
        double r1416979 = r1416976 - r1416978;
        double r1416980 = r1416963 - r1416979;
        return r1416980;
}

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.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. 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 \color{blue}{\frac{\frac{2}{r}}{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)\]
  5. Final simplification0.3

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

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))