\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(3 + \frac{2}{r \cdot r}\right) - \left(\frac{\sqrt[3]{\mathsf{fma}\left(v, -2, 3\right)}}{\frac{\sqrt[3]{1 - v}}{\sqrt{0.125}}} \cdot \left(\frac{\sqrt[3]{\mathsf{fma}\left(v, -2, 3\right)} \cdot \sqrt[3]{\mathsf{fma}\left(v, -2, 3\right)}}{\frac{\sqrt[3]{1 - v} \cdot \sqrt[3]{1 - v}}{\sqrt{0.125}}} \cdot \left(\left(w \cdot r\right) \cdot \left(w \cdot r\right)\right)\right) + 4.5\right)double f(double v, double w, double r) {
double r1283175 = 3.0;
double r1283176 = 2.0;
double r1283177 = r;
double r1283178 = r1283177 * r1283177;
double r1283179 = r1283176 / r1283178;
double r1283180 = r1283175 + r1283179;
double r1283181 = 0.125;
double r1283182 = v;
double r1283183 = r1283176 * r1283182;
double r1283184 = r1283175 - r1283183;
double r1283185 = r1283181 * r1283184;
double r1283186 = w;
double r1283187 = r1283186 * r1283186;
double r1283188 = r1283187 * r1283177;
double r1283189 = r1283188 * r1283177;
double r1283190 = r1283185 * r1283189;
double r1283191 = 1.0;
double r1283192 = r1283191 - r1283182;
double r1283193 = r1283190 / r1283192;
double r1283194 = r1283180 - r1283193;
double r1283195 = 4.5;
double r1283196 = r1283194 - r1283195;
return r1283196;
}
double f(double v, double w, double r) {
double r1283197 = 3.0;
double r1283198 = 2.0;
double r1283199 = r;
double r1283200 = r1283199 * r1283199;
double r1283201 = r1283198 / r1283200;
double r1283202 = r1283197 + r1283201;
double r1283203 = v;
double r1283204 = -2.0;
double r1283205 = fma(r1283203, r1283204, r1283197);
double r1283206 = cbrt(r1283205);
double r1283207 = 1.0;
double r1283208 = r1283207 - r1283203;
double r1283209 = cbrt(r1283208);
double r1283210 = 0.125;
double r1283211 = sqrt(r1283210);
double r1283212 = r1283209 / r1283211;
double r1283213 = r1283206 / r1283212;
double r1283214 = r1283206 * r1283206;
double r1283215 = r1283209 * r1283209;
double r1283216 = r1283215 / r1283211;
double r1283217 = r1283214 / r1283216;
double r1283218 = w;
double r1283219 = r1283218 * r1283199;
double r1283220 = r1283219 * r1283219;
double r1283221 = r1283217 * r1283220;
double r1283222 = r1283213 * r1283221;
double r1283223 = 4.5;
double r1283224 = r1283222 + r1283223;
double r1283225 = r1283202 - r1283224;
return r1283225;
}



Bits error versus v



Bits error versus w



Bits error versus r
Initial program 12.8
Simplified0.4
rmApplied fma-udef0.4
rmApplied add-sqr-sqrt0.6
Applied add-cube-cbrt0.7
Applied times-frac0.7
Applied add-cube-cbrt0.7
Applied times-frac0.5
Applied associate-*r*0.5
Final simplification0.5
herbie shell --seed 2019132 +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))