\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\begin{array}{l}
\mathbf{if}\;r \le -3.77314112548563262 \cdot 10^{187}:\\
\;\;\;\;\left(\left(3 + \frac{2}{r \cdot r}\right) - \frac{0.125 \cdot \left(3 - 2 \cdot v\right)}{\frac{1 - v}{\left(w \cdot \left(w \cdot r\right)\right) \cdot r}}\right) - 4.5\\
\mathbf{elif}\;r \le 3.2167090734555916 \cdot 10^{147}:\\
\;\;\;\;\left(\left(3 + \frac{2}{r \cdot r}\right) - \left(0.375 - 0.25 \cdot v\right) \cdot \frac{w \cdot \left(\left(w \cdot r\right) \cdot r\right)}{1 - v}\right) - 4.5\\
\mathbf{else}:\\
\;\;\;\;\left(\left(3 + \frac{\sqrt{2}}{\frac{r \cdot r}{\sqrt{2}}}\right) - \left(0.375 - 0.25 \cdot v\right) \cdot \frac{\left(w \cdot \left(w \cdot r\right)\right) \cdot r}{1 - v}\right) - 4.5\\
\end{array}double f(double v, double w, double r) {
double r16099 = 3.0;
double r16100 = 2.0;
double r16101 = r;
double r16102 = r16101 * r16101;
double r16103 = r16100 / r16102;
double r16104 = r16099 + r16103;
double r16105 = 0.125;
double r16106 = v;
double r16107 = r16100 * r16106;
double r16108 = r16099 - r16107;
double r16109 = r16105 * r16108;
double r16110 = w;
double r16111 = r16110 * r16110;
double r16112 = r16111 * r16101;
double r16113 = r16112 * r16101;
double r16114 = r16109 * r16113;
double r16115 = 1.0;
double r16116 = r16115 - r16106;
double r16117 = r16114 / r16116;
double r16118 = r16104 - r16117;
double r16119 = 4.5;
double r16120 = r16118 - r16119;
return r16120;
}
double f(double v, double w, double r) {
double r16121 = r;
double r16122 = -3.773141125485633e+187;
bool r16123 = r16121 <= r16122;
double r16124 = 3.0;
double r16125 = 2.0;
double r16126 = r16121 * r16121;
double r16127 = r16125 / r16126;
double r16128 = r16124 + r16127;
double r16129 = 0.125;
double r16130 = v;
double r16131 = r16125 * r16130;
double r16132 = r16124 - r16131;
double r16133 = r16129 * r16132;
double r16134 = 1.0;
double r16135 = r16134 - r16130;
double r16136 = w;
double r16137 = r16136 * r16121;
double r16138 = r16136 * r16137;
double r16139 = r16138 * r16121;
double r16140 = r16135 / r16139;
double r16141 = r16133 / r16140;
double r16142 = r16128 - r16141;
double r16143 = 4.5;
double r16144 = r16142 - r16143;
double r16145 = 3.2167090734555916e+147;
bool r16146 = r16121 <= r16145;
double r16147 = 0.375;
double r16148 = 0.25;
double r16149 = r16148 * r16130;
double r16150 = r16147 - r16149;
double r16151 = r16137 * r16121;
double r16152 = r16136 * r16151;
double r16153 = r16152 / r16135;
double r16154 = r16150 * r16153;
double r16155 = r16128 - r16154;
double r16156 = r16155 - r16143;
double r16157 = sqrt(r16125);
double r16158 = r16126 / r16157;
double r16159 = r16157 / r16158;
double r16160 = r16124 + r16159;
double r16161 = r16139 / r16135;
double r16162 = r16150 * r16161;
double r16163 = r16160 - r16162;
double r16164 = r16163 - r16143;
double r16165 = r16146 ? r16156 : r16164;
double r16166 = r16123 ? r16144 : r16165;
return r16166;
}



Bits error versus v



Bits error versus w



Bits error versus r
Results
if r < -3.773141125485633e+187Initial program 32.1
rmApplied associate-*l*11.7
rmApplied associate-/l*0.5
if -3.773141125485633e+187 < r < 3.2167090734555916e+147Initial program 9.6
rmApplied associate-*l*7.4
rmApplied *-un-lft-identity7.4
Applied times-frac3.1
Simplified3.1
Taylor expanded around 0 3.1
rmApplied associate-*l*0.4
if 3.2167090734555916e+147 < r Initial program 25.9
rmApplied associate-*l*10.7
rmApplied *-un-lft-identity10.7
Applied times-frac0.4
Simplified0.4
Taylor expanded around 0 0.4
rmApplied add-sqr-sqrt0.4
Applied associate-/l*0.4
Final simplification0.4
herbie shell --seed 2020046
(FPCore (v w r)
:name "Rosa's TurbineBenchmark"
:precision binary64
(- (- (+ 3 (/ 2 (* r r))) (/ (* (* 0.125 (- 3 (* 2 v))) (* (* (* w w) r) r)) (- 1 v))) 4.5))