\left(\frac{\sqrt{2}}{4} \cdot \sqrt{1 - 3 \cdot \left(v \cdot v\right)}\right) \cdot \left(1 - v \cdot v\right)e^{\log \left(\left(\frac{\sqrt{2}}{4} \cdot \sqrt{1 - 3 \cdot \left(v \cdot v\right)}\right) \cdot \left(1 - v \cdot v\right)\right)}double f(double v) {
double r330060 = 2.0;
double r330061 = sqrt(r330060);
double r330062 = 4.0;
double r330063 = r330061 / r330062;
double r330064 = 1.0;
double r330065 = 3.0;
double r330066 = v;
double r330067 = r330066 * r330066;
double r330068 = r330065 * r330067;
double r330069 = r330064 - r330068;
double r330070 = sqrt(r330069);
double r330071 = r330063 * r330070;
double r330072 = r330064 - r330067;
double r330073 = r330071 * r330072;
return r330073;
}
double f(double v) {
double r330074 = 2.0;
double r330075 = sqrt(r330074);
double r330076 = 4.0;
double r330077 = r330075 / r330076;
double r330078 = 1.0;
double r330079 = 3.0;
double r330080 = v;
double r330081 = r330080 * r330080;
double r330082 = r330079 * r330081;
double r330083 = r330078 - r330082;
double r330084 = sqrt(r330083);
double r330085 = r330077 * r330084;
double r330086 = r330078 - r330081;
double r330087 = r330085 * r330086;
double r330088 = log(r330087);
double r330089 = exp(r330088);
return r330089;
}



Bits error versus v
Results
Initial program 0.0
rmApplied add-exp-log0.0
Applied add-exp-log0.0
Applied add-exp-log0.0
Applied add-exp-log0.0
Applied div-exp0.0
Applied prod-exp0.0
Applied prod-exp0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2020057 +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))))