\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(\left(3 + \frac{\frac{2}{r}}{r}\right) - \left(\left(\frac{0.125 \cdot \left(3 - 2 \cdot v\right)}{1 - v} \cdot w\right) \cdot r\right) \cdot \left(w \cdot r\right)\right) - 4.5double f(double v, double w, double r) {
double r2376150 = 3.0;
double r2376151 = 2.0;
double r2376152 = r;
double r2376153 = r2376152 * r2376152;
double r2376154 = r2376151 / r2376153;
double r2376155 = r2376150 + r2376154;
double r2376156 = 0.125;
double r2376157 = v;
double r2376158 = r2376151 * r2376157;
double r2376159 = r2376150 - r2376158;
double r2376160 = r2376156 * r2376159;
double r2376161 = w;
double r2376162 = r2376161 * r2376161;
double r2376163 = r2376162 * r2376152;
double r2376164 = r2376163 * r2376152;
double r2376165 = r2376160 * r2376164;
double r2376166 = 1.0;
double r2376167 = r2376166 - r2376157;
double r2376168 = r2376165 / r2376167;
double r2376169 = r2376155 - r2376168;
double r2376170 = 4.5;
double r2376171 = r2376169 - r2376170;
return r2376171;
}
double f(double v, double w, double r) {
double r2376172 = 3.0;
double r2376173 = 2.0;
double r2376174 = r;
double r2376175 = r2376173 / r2376174;
double r2376176 = r2376175 / r2376174;
double r2376177 = r2376172 + r2376176;
double r2376178 = 0.125;
double r2376179 = v;
double r2376180 = r2376173 * r2376179;
double r2376181 = r2376172 - r2376180;
double r2376182 = r2376178 * r2376181;
double r2376183 = 1.0;
double r2376184 = r2376183 - r2376179;
double r2376185 = r2376182 / r2376184;
double r2376186 = w;
double r2376187 = r2376185 * r2376186;
double r2376188 = r2376187 * r2376174;
double r2376189 = r2376186 * r2376174;
double r2376190 = r2376188 * r2376189;
double r2376191 = r2376177 - r2376190;
double r2376192 = 4.5;
double r2376193 = r2376191 - r2376192;
return r2376193;
}



Bits error versus v



Bits error versus w



Bits error versus r
Results
Initial program 13.1
Simplified0.4
rmApplied fma-udef0.4
Applied associate--r+0.4
rmApplied associate-*r*0.3
rmApplied associate-*r*0.3
rmApplied associate-/r*0.3
Final simplification0.3
herbie shell --seed 2019174 +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))