\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(2 \cdot {r}^{-2} + 3\right) - \mathsf{fma}\left(\left(w \cdot r\right) \cdot \left(w \cdot r\right), \mathsf{expm1}\left(\mathsf{log1p}\left(\frac{0.125 \cdot \mathsf{fma}\left(v, -2, 3\right)}{1 - v}\right)\right), 4.5\right)double f(double v, double w, double r) {
double r28188 = 3.0;
double r28189 = 2.0;
double r28190 = r;
double r28191 = r28190 * r28190;
double r28192 = r28189 / r28191;
double r28193 = r28188 + r28192;
double r28194 = 0.125;
double r28195 = v;
double r28196 = r28189 * r28195;
double r28197 = r28188 - r28196;
double r28198 = r28194 * r28197;
double r28199 = w;
double r28200 = r28199 * r28199;
double r28201 = r28200 * r28190;
double r28202 = r28201 * r28190;
double r28203 = r28198 * r28202;
double r28204 = 1.0;
double r28205 = r28204 - r28195;
double r28206 = r28203 / r28205;
double r28207 = r28193 - r28206;
double r28208 = 4.5;
double r28209 = r28207 - r28208;
return r28209;
}
double f(double v, double w, double r) {
double r28210 = 2.0;
double r28211 = r;
double r28212 = -2.0;
double r28213 = pow(r28211, r28212);
double r28214 = r28210 * r28213;
double r28215 = 3.0;
double r28216 = r28214 + r28215;
double r28217 = w;
double r28218 = r28217 * r28211;
double r28219 = r28218 * r28218;
double r28220 = 0.125;
double r28221 = v;
double r28222 = -r28210;
double r28223 = fma(r28221, r28222, r28215);
double r28224 = r28220 * r28223;
double r28225 = 1.0;
double r28226 = r28225 - r28221;
double r28227 = r28224 / r28226;
double r28228 = log1p(r28227);
double r28229 = expm1(r28228);
double r28230 = 4.5;
double r28231 = fma(r28219, r28229, r28230);
double r28232 = r28216 - r28231;
return r28232;
}



Bits error versus v



Bits error versus w



Bits error versus r
Initial program 13.1
Simplified13.4
Taylor expanded around 0 17.7
Simplified0.4
rmApplied div-inv0.4
Simplified0.4
rmApplied pow10.4
Applied inv-pow0.4
Applied pow-div0.3
Simplified0.3
rmApplied expm1-log1p-u0.4
Simplified0.4
Final simplification0.4
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))