\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\left(3 + \frac{\frac{2}{r}}{r}\right) - \mathsf{fma}\left(\left(w \cdot r\right) \cdot \left(w \cdot r\right), \sqrt[3]{\left(\frac{0.125}{1 - v} \cdot \left(3 - v \cdot 2\right)\right) \cdot \left(\left(\frac{0.125}{1 - v} \cdot \left(3 - v \cdot 2\right)\right) \cdot \left(\frac{0.125}{1 - v} \cdot \left(3 - v \cdot 2\right)\right)\right)}, 4.5\right)double f(double v, double w, double r) {
double r1386004 = 3.0;
double r1386005 = 2.0;
double r1386006 = r;
double r1386007 = r1386006 * r1386006;
double r1386008 = r1386005 / r1386007;
double r1386009 = r1386004 + r1386008;
double r1386010 = 0.125;
double r1386011 = v;
double r1386012 = r1386005 * r1386011;
double r1386013 = r1386004 - r1386012;
double r1386014 = r1386010 * r1386013;
double r1386015 = w;
double r1386016 = r1386015 * r1386015;
double r1386017 = r1386016 * r1386006;
double r1386018 = r1386017 * r1386006;
double r1386019 = r1386014 * r1386018;
double r1386020 = 1.0;
double r1386021 = r1386020 - r1386011;
double r1386022 = r1386019 / r1386021;
double r1386023 = r1386009 - r1386022;
double r1386024 = 4.5;
double r1386025 = r1386023 - r1386024;
return r1386025;
}
double f(double v, double w, double r) {
double r1386026 = 3.0;
double r1386027 = 2.0;
double r1386028 = r;
double r1386029 = r1386027 / r1386028;
double r1386030 = r1386029 / r1386028;
double r1386031 = r1386026 + r1386030;
double r1386032 = w;
double r1386033 = r1386032 * r1386028;
double r1386034 = r1386033 * r1386033;
double r1386035 = 0.125;
double r1386036 = 1.0;
double r1386037 = v;
double r1386038 = r1386036 - r1386037;
double r1386039 = r1386035 / r1386038;
double r1386040 = r1386037 * r1386027;
double r1386041 = r1386026 - r1386040;
double r1386042 = r1386039 * r1386041;
double r1386043 = r1386042 * r1386042;
double r1386044 = r1386042 * r1386043;
double r1386045 = cbrt(r1386044);
double r1386046 = 4.5;
double r1386047 = fma(r1386034, r1386045, r1386046);
double r1386048 = r1386031 - r1386047;
return r1386048;
}



Bits error versus v



Bits error versus w



Bits error versus r
Initial program 12.9
Simplified0.4
rmApplied associate-/r*0.4
rmApplied add-cbrt-cube0.5
Final simplification0.5
herbie shell --seed 2019171 +o rules:numerics
(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))