\left(\frac{\sqrt{2}}{4} \cdot \sqrt{1 - 3 \cdot \left(v \cdot v\right)}\right) \cdot \left(1 - v \cdot v\right)\mathsf{fma}\left(0.375, \frac{\sqrt{2} \cdot {v}^{4}}{\sqrt{1}}, 0.25 \cdot \left(\sqrt{2} \cdot \sqrt{1}\right) - \mathsf{fma}\left(0.25, \sqrt{2} \cdot \left({v}^{2} \cdot \sqrt{1}\right), \mathsf{fma}\left(0.28125, \frac{\sqrt{2} \cdot {v}^{4}}{{\left(\sqrt{1}\right)}^{3}}, 0.375 \cdot \frac{\sqrt{2} \cdot {v}^{2}}{\sqrt{1}}\right)\right)\right)double f(double v) {
double r272372 = 2.0;
double r272373 = sqrt(r272372);
double r272374 = 4.0;
double r272375 = r272373 / r272374;
double r272376 = 1.0;
double r272377 = 3.0;
double r272378 = v;
double r272379 = r272378 * r272378;
double r272380 = r272377 * r272379;
double r272381 = r272376 - r272380;
double r272382 = sqrt(r272381);
double r272383 = r272375 * r272382;
double r272384 = r272376 - r272379;
double r272385 = r272383 * r272384;
return r272385;
}
double f(double v) {
double r272386 = 0.375;
double r272387 = 2.0;
double r272388 = sqrt(r272387);
double r272389 = v;
double r272390 = 4.0;
double r272391 = pow(r272389, r272390);
double r272392 = r272388 * r272391;
double r272393 = 1.0;
double r272394 = sqrt(r272393);
double r272395 = r272392 / r272394;
double r272396 = 0.25;
double r272397 = r272388 * r272394;
double r272398 = r272396 * r272397;
double r272399 = 2.0;
double r272400 = pow(r272389, r272399);
double r272401 = r272400 * r272394;
double r272402 = r272388 * r272401;
double r272403 = 0.28125;
double r272404 = 3.0;
double r272405 = pow(r272394, r272404);
double r272406 = r272392 / r272405;
double r272407 = r272388 * r272400;
double r272408 = r272407 / r272394;
double r272409 = r272386 * r272408;
double r272410 = fma(r272403, r272406, r272409);
double r272411 = fma(r272396, r272402, r272410);
double r272412 = r272398 - r272411;
double r272413 = fma(r272386, r272395, r272412);
return r272413;
}



Bits error versus v
Initial program 0.0
Taylor expanded around 0 0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2020018 +o rules:numerics
(FPCore (v)
:name "Falkner and Boettcher, Appendix B, 2"
:precision binary64
(* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v))))