\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(\frac{2}{r \cdot r} - \frac{\mathsf{fma}\left(-2, v, 3\right)}{1 - v} \cdot \left(\sqrt{\left(w \cdot r\right) \cdot \left(0.125 \cdot \left(w \cdot r\right)\right)} \cdot \sqrt{\left(w \cdot r\right) \cdot \left(0.125 \cdot \left(w \cdot r\right)\right)}\right)\right) - \left(4.5 - 3\right)double f(double v, double w, double r) {
double r1681224 = 3.0;
double r1681225 = 2.0;
double r1681226 = r;
double r1681227 = r1681226 * r1681226;
double r1681228 = r1681225 / r1681227;
double r1681229 = r1681224 + r1681228;
double r1681230 = 0.125;
double r1681231 = v;
double r1681232 = r1681225 * r1681231;
double r1681233 = r1681224 - r1681232;
double r1681234 = r1681230 * r1681233;
double r1681235 = w;
double r1681236 = r1681235 * r1681235;
double r1681237 = r1681236 * r1681226;
double r1681238 = r1681237 * r1681226;
double r1681239 = r1681234 * r1681238;
double r1681240 = 1.0;
double r1681241 = r1681240 - r1681231;
double r1681242 = r1681239 / r1681241;
double r1681243 = r1681229 - r1681242;
double r1681244 = 4.5;
double r1681245 = r1681243 - r1681244;
return r1681245;
}
double f(double v, double w, double r) {
double r1681246 = 2.0;
double r1681247 = r;
double r1681248 = r1681247 * r1681247;
double r1681249 = r1681246 / r1681248;
double r1681250 = -2.0;
double r1681251 = v;
double r1681252 = 3.0;
double r1681253 = fma(r1681250, r1681251, r1681252);
double r1681254 = 1.0;
double r1681255 = r1681254 - r1681251;
double r1681256 = r1681253 / r1681255;
double r1681257 = w;
double r1681258 = r1681257 * r1681247;
double r1681259 = 0.125;
double r1681260 = r1681259 * r1681258;
double r1681261 = r1681258 * r1681260;
double r1681262 = sqrt(r1681261);
double r1681263 = r1681262 * r1681262;
double r1681264 = r1681256 * r1681263;
double r1681265 = r1681249 - r1681264;
double r1681266 = 4.5;
double r1681267 = r1681266 - r1681252;
double r1681268 = r1681265 - r1681267;
return r1681268;
}



Bits error versus v



Bits error versus w



Bits error versus r
Initial program 12.4
Simplified0.3
rmApplied fma-udef0.3
Applied associate--l+0.3
Applied associate--r+0.3
rmApplied add-sqr-sqrt0.4
Final simplification0.4
herbie shell --seed 2019168 +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))