\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(3 - \mathsf{fma}\left(\frac{\frac{0.125}{\sqrt{\sqrt{\frac{1 - v}{\mathsf{fma}\left(-2, v, 3\right)}}}}}{\sqrt{\frac{1}{\sqrt[3]{\mathsf{fma}\left(-2, v, 3\right)} \cdot \sqrt[3]{\mathsf{fma}\left(-2, v, 3\right)}}}} \cdot \frac{\frac{r \cdot w}{\sqrt{\sqrt{\frac{1 - v}{\mathsf{fma}\left(-2, v, 3\right)}}}}}{\sqrt{\frac{1 - v}{\sqrt[3]{\mathsf{fma}\left(-2, v, 3\right)}}}}, r \cdot w, 4.5\right)\right)double f(double v, double w, double r) {
double r3884183 = 3.0;
double r3884184 = 2.0;
double r3884185 = r;
double r3884186 = r3884185 * r3884185;
double r3884187 = r3884184 / r3884186;
double r3884188 = r3884183 + r3884187;
double r3884189 = 0.125;
double r3884190 = v;
double r3884191 = r3884184 * r3884190;
double r3884192 = r3884183 - r3884191;
double r3884193 = r3884189 * r3884192;
double r3884194 = w;
double r3884195 = r3884194 * r3884194;
double r3884196 = r3884195 * r3884185;
double r3884197 = r3884196 * r3884185;
double r3884198 = r3884193 * r3884197;
double r3884199 = 1.0;
double r3884200 = r3884199 - r3884190;
double r3884201 = r3884198 / r3884200;
double r3884202 = r3884188 - r3884201;
double r3884203 = 4.5;
double r3884204 = r3884202 - r3884203;
return r3884204;
}
double f(double v, double w, double r) {
double r3884205 = 2.0;
double r3884206 = r;
double r3884207 = r3884205 / r3884206;
double r3884208 = r3884207 / r3884206;
double r3884209 = 3.0;
double r3884210 = 0.125;
double r3884211 = 1.0;
double r3884212 = v;
double r3884213 = r3884211 - r3884212;
double r3884214 = -2.0;
double r3884215 = fma(r3884214, r3884212, r3884209);
double r3884216 = r3884213 / r3884215;
double r3884217 = sqrt(r3884216);
double r3884218 = sqrt(r3884217);
double r3884219 = r3884210 / r3884218;
double r3884220 = cbrt(r3884215);
double r3884221 = r3884220 * r3884220;
double r3884222 = r3884211 / r3884221;
double r3884223 = sqrt(r3884222);
double r3884224 = r3884219 / r3884223;
double r3884225 = w;
double r3884226 = r3884206 * r3884225;
double r3884227 = r3884226 / r3884218;
double r3884228 = r3884213 / r3884220;
double r3884229 = sqrt(r3884228);
double r3884230 = r3884227 / r3884229;
double r3884231 = r3884224 * r3884230;
double r3884232 = 4.5;
double r3884233 = fma(r3884231, r3884226, r3884232);
double r3884234 = r3884209 - r3884233;
double r3884235 = r3884208 + r3884234;
return r3884235;
}



Bits error versus v



Bits error versus w



Bits error versus r
Initial program 12.1
Simplified0.3
rmApplied associate-/r*0.4
rmApplied add-sqr-sqrt0.4
Applied associate-/r*0.4
rmApplied add-cube-cbrt0.4
Applied *-un-lft-identity0.4
Applied *-un-lft-identity0.4
Applied distribute-lft-out--0.4
Applied times-frac0.4
Applied sqrt-prod0.5
Applied add-sqr-sqrt0.5
Applied times-frac0.4
Applied times-frac0.4
Final simplification0.4
herbie shell --seed 2019143 +o rules:numerics
(FPCore (v w r)
:name "Rosa's TurbineBenchmark"
(- (- (+ 3 (/ 2 (* r r))) (/ (* (* 0.125 (- 3 (* 2 v))) (* (* (* w w) r) r)) (- 1 v))) 4.5))