Average Error: 13.3 → 0.5
Time: 1.2m
Precision: 64
\[\left(\left(3.0 + \frac{2.0}{r \cdot r}\right) - \frac{\left(0.125 \cdot \left(3.0 - 2.0 \cdot v\right)\right) \cdot \left(\left(\left(w \cdot w\right) \cdot r\right) \cdot r\right)}{1.0 - v}\right) - 4.5\]
\[\frac{\frac{2.0}{r}}{r} - \left(\left(r \cdot w\right) \cdot \left(\left(\left(r \cdot w\right) \cdot \frac{\sqrt[3]{3.0 - v \cdot 2.0}}{\sqrt[3]{\frac{1.0 - v}{0.125}}}\right) \cdot \frac{\sqrt[3]{3.0 - v \cdot 2.0} \cdot \sqrt[3]{3.0 - v \cdot 2.0}}{\sqrt[3]{\frac{1.0 - v}{0.125}} \cdot \sqrt[3]{\frac{1.0 - v}{0.125}}}\right) - \left(3.0 - 4.5\right)\right)\]
\left(\left(3.0 + \frac{2.0}{r \cdot r}\right) - \frac{\left(0.125 \cdot \left(3.0 - 2.0 \cdot v\right)\right) \cdot \left(\left(\left(w \cdot w\right) \cdot r\right) \cdot r\right)}{1.0 - v}\right) - 4.5
\frac{\frac{2.0}{r}}{r} - \left(\left(r \cdot w\right) \cdot \left(\left(\left(r \cdot w\right) \cdot \frac{\sqrt[3]{3.0 - v \cdot 2.0}}{\sqrt[3]{\frac{1.0 - v}{0.125}}}\right) \cdot \frac{\sqrt[3]{3.0 - v \cdot 2.0} \cdot \sqrt[3]{3.0 - v \cdot 2.0}}{\sqrt[3]{\frac{1.0 - v}{0.125}} \cdot \sqrt[3]{\frac{1.0 - v}{0.125}}}\right) - \left(3.0 - 4.5\right)\right)
double f(double v, double w, double r) {
        double r2419890 = 3.0;
        double r2419891 = 2.0;
        double r2419892 = r;
        double r2419893 = r2419892 * r2419892;
        double r2419894 = r2419891 / r2419893;
        double r2419895 = r2419890 + r2419894;
        double r2419896 = 0.125;
        double r2419897 = v;
        double r2419898 = r2419891 * r2419897;
        double r2419899 = r2419890 - r2419898;
        double r2419900 = r2419896 * r2419899;
        double r2419901 = w;
        double r2419902 = r2419901 * r2419901;
        double r2419903 = r2419902 * r2419892;
        double r2419904 = r2419903 * r2419892;
        double r2419905 = r2419900 * r2419904;
        double r2419906 = 1.0;
        double r2419907 = r2419906 - r2419897;
        double r2419908 = r2419905 / r2419907;
        double r2419909 = r2419895 - r2419908;
        double r2419910 = 4.5;
        double r2419911 = r2419909 - r2419910;
        return r2419911;
}

double f(double v, double w, double r) {
        double r2419912 = 2.0;
        double r2419913 = r;
        double r2419914 = r2419912 / r2419913;
        double r2419915 = r2419914 / r2419913;
        double r2419916 = w;
        double r2419917 = r2419913 * r2419916;
        double r2419918 = 3.0;
        double r2419919 = v;
        double r2419920 = r2419919 * r2419912;
        double r2419921 = r2419918 - r2419920;
        double r2419922 = cbrt(r2419921);
        double r2419923 = 1.0;
        double r2419924 = r2419923 - r2419919;
        double r2419925 = 0.125;
        double r2419926 = r2419924 / r2419925;
        double r2419927 = cbrt(r2419926);
        double r2419928 = r2419922 / r2419927;
        double r2419929 = r2419917 * r2419928;
        double r2419930 = r2419922 * r2419922;
        double r2419931 = r2419927 * r2419927;
        double r2419932 = r2419930 / r2419931;
        double r2419933 = r2419929 * r2419932;
        double r2419934 = r2419917 * r2419933;
        double r2419935 = 4.5;
        double r2419936 = r2419918 - r2419935;
        double r2419937 = r2419934 - r2419936;
        double r2419938 = r2419915 - r2419937;
        return r2419938;
}

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 13.3

    \[\left(\left(3.0 + \frac{2.0}{r \cdot r}\right) - \frac{\left(0.125 \cdot \left(3.0 - 2.0 \cdot v\right)\right) \cdot \left(\left(\left(w \cdot w\right) \cdot r\right) \cdot r\right)}{1.0 - v}\right) - 4.5\]
  2. Simplified0.4

    \[\leadsto \color{blue}{\frac{2.0}{r \cdot r} - \left(\left(w \cdot r\right) \cdot \left(\frac{3.0 - v \cdot 2.0}{\frac{1.0 - v}{0.125}} \cdot \left(w \cdot r\right)\right) - \left(3.0 - 4.5\right)\right)}\]
  3. Using strategy rm
  4. Applied associate-/r*0.4

    \[\leadsto \color{blue}{\frac{\frac{2.0}{r}}{r}} - \left(\left(w \cdot r\right) \cdot \left(\frac{3.0 - v \cdot 2.0}{\frac{1.0 - v}{0.125}} \cdot \left(w \cdot r\right)\right) - \left(3.0 - 4.5\right)\right)\]
  5. Using strategy rm
  6. Applied add-cube-cbrt0.5

    \[\leadsto \frac{\frac{2.0}{r}}{r} - \left(\left(w \cdot r\right) \cdot \left(\frac{3.0 - v \cdot 2.0}{\color{blue}{\left(\sqrt[3]{\frac{1.0 - v}{0.125}} \cdot \sqrt[3]{\frac{1.0 - v}{0.125}}\right) \cdot \sqrt[3]{\frac{1.0 - v}{0.125}}}} \cdot \left(w \cdot r\right)\right) - \left(3.0 - 4.5\right)\right)\]
  7. Applied add-cube-cbrt0.5

    \[\leadsto \frac{\frac{2.0}{r}}{r} - \left(\left(w \cdot r\right) \cdot \left(\frac{\color{blue}{\left(\sqrt[3]{3.0 - v \cdot 2.0} \cdot \sqrt[3]{3.0 - v \cdot 2.0}\right) \cdot \sqrt[3]{3.0 - v \cdot 2.0}}}{\left(\sqrt[3]{\frac{1.0 - v}{0.125}} \cdot \sqrt[3]{\frac{1.0 - v}{0.125}}\right) \cdot \sqrt[3]{\frac{1.0 - v}{0.125}}} \cdot \left(w \cdot r\right)\right) - \left(3.0 - 4.5\right)\right)\]
  8. Applied times-frac0.5

    \[\leadsto \frac{\frac{2.0}{r}}{r} - \left(\left(w \cdot r\right) \cdot \left(\color{blue}{\left(\frac{\sqrt[3]{3.0 - v \cdot 2.0} \cdot \sqrt[3]{3.0 - v \cdot 2.0}}{\sqrt[3]{\frac{1.0 - v}{0.125}} \cdot \sqrt[3]{\frac{1.0 - v}{0.125}}} \cdot \frac{\sqrt[3]{3.0 - v \cdot 2.0}}{\sqrt[3]{\frac{1.0 - v}{0.125}}}\right)} \cdot \left(w \cdot r\right)\right) - \left(3.0 - 4.5\right)\right)\]
  9. Applied associate-*l*0.5

    \[\leadsto \frac{\frac{2.0}{r}}{r} - \left(\left(w \cdot r\right) \cdot \color{blue}{\left(\frac{\sqrt[3]{3.0 - v \cdot 2.0} \cdot \sqrt[3]{3.0 - v \cdot 2.0}}{\sqrt[3]{\frac{1.0 - v}{0.125}} \cdot \sqrt[3]{\frac{1.0 - v}{0.125}}} \cdot \left(\frac{\sqrt[3]{3.0 - v \cdot 2.0}}{\sqrt[3]{\frac{1.0 - v}{0.125}}} \cdot \left(w \cdot r\right)\right)\right)} - \left(3.0 - 4.5\right)\right)\]
  10. Final simplification0.5

    \[\leadsto \frac{\frac{2.0}{r}}{r} - \left(\left(r \cdot w\right) \cdot \left(\left(\left(r \cdot w\right) \cdot \frac{\sqrt[3]{3.0 - v \cdot 2.0}}{\sqrt[3]{\frac{1.0 - v}{0.125}}}\right) \cdot \frac{\sqrt[3]{3.0 - v \cdot 2.0} \cdot \sqrt[3]{3.0 - v \cdot 2.0}}{\sqrt[3]{\frac{1.0 - v}{0.125}} \cdot \sqrt[3]{\frac{1.0 - v}{0.125}}}\right) - \left(3.0 - 4.5\right)\right)\]

Reproduce

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