\left(\frac{\sqrt{2}}{4} \cdot \sqrt{1 - 3 \cdot \left(v \cdot v\right)}\right) \cdot \left(1 - v \cdot v\right)\mathsf{expm1}\left(\mathsf{log1p}\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)\right)double f(double v) {
double r141048 = 2.0;
double r141049 = sqrt(r141048);
double r141050 = 4.0;
double r141051 = r141049 / r141050;
double r141052 = 1.0;
double r141053 = 3.0;
double r141054 = v;
double r141055 = r141054 * r141054;
double r141056 = r141053 * r141055;
double r141057 = r141052 - r141056;
double r141058 = sqrt(r141057);
double r141059 = r141051 * r141058;
double r141060 = r141052 - r141055;
double r141061 = r141059 * r141060;
return r141061;
}
double f(double v) {
double r141062 = 2.0;
double r141063 = sqrt(r141062);
double r141064 = 4.0;
double r141065 = r141063 / r141064;
double r141066 = 1.0;
double r141067 = 3.0;
double r141068 = v;
double r141069 = r141068 * r141068;
double r141070 = r141067 * r141069;
double r141071 = r141066 - r141070;
double r141072 = sqrt(r141071);
double r141073 = r141065 * r141072;
double r141074 = r141066 - r141069;
double r141075 = r141073 * r141074;
double r141076 = log1p(r141075);
double r141077 = expm1(r141076);
return r141077;
}



Bits error versus v
Results
Initial program 0.0
rmApplied expm1-log1p-u0.0
Final simplification0.0
herbie shell --seed 2020027 +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))))