\left(\frac{\sqrt{2}}{4} \cdot \sqrt{1 - 3 \cdot \left(v \cdot v\right)}\right) \cdot \left(1 - v \cdot v\right)\sqrt{2} \cdot e^{\log \left(\frac{\mathsf{fma}\left(v, -v, 1\right)}{4} \cdot \sqrt{\mathsf{fma}\left(\left(-3\right) \cdot v, v, 1\right)}\right)}double f(double v) {
double r156517 = 2.0;
double r156518 = sqrt(r156517);
double r156519 = 4.0;
double r156520 = r156518 / r156519;
double r156521 = 1.0;
double r156522 = 3.0;
double r156523 = v;
double r156524 = r156523 * r156523;
double r156525 = r156522 * r156524;
double r156526 = r156521 - r156525;
double r156527 = sqrt(r156526);
double r156528 = r156520 * r156527;
double r156529 = r156521 - r156524;
double r156530 = r156528 * r156529;
return r156530;
}
double f(double v) {
double r156531 = 2.0;
double r156532 = sqrt(r156531);
double r156533 = v;
double r156534 = -r156533;
double r156535 = 1.0;
double r156536 = fma(r156533, r156534, r156535);
double r156537 = 4.0;
double r156538 = r156536 / r156537;
double r156539 = 3.0;
double r156540 = -r156539;
double r156541 = r156540 * r156533;
double r156542 = fma(r156541, r156533, r156535);
double r156543 = sqrt(r156542);
double r156544 = r156538 * r156543;
double r156545 = log(r156544);
double r156546 = exp(r156545);
double r156547 = r156532 * r156546;
return r156547;
}



Bits error versus v
Initial program 0.0
Simplified0.0
rmApplied add-exp-log0.0
Applied add-exp-log0.0
Applied div-exp0.0
Applied add-exp-log0.0
Applied prod-exp0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2019194 +o rules:numerics
(FPCore (v)
:name "Falkner and Boettcher, Appendix B, 2"
(* (* (/ (sqrt 2.0) 4.0) (sqrt (- 1.0 (* 3.0 (* v v))))) (- 1.0 (* v v))))