\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(\frac{\sqrt{2}}{4} \cdot \mathsf{expm1}\left(\mathsf{log1p}\left(\sqrt{1 - 3 \cdot \left(v \cdot v\right)}\right)\right)\right)\right) \cdot \left(1 - v \cdot v\right)double f(double v) {
double r411129 = 2.0;
double r411130 = sqrt(r411129);
double r411131 = 4.0;
double r411132 = r411130 / r411131;
double r411133 = 1.0;
double r411134 = 3.0;
double r411135 = v;
double r411136 = r411135 * r411135;
double r411137 = r411134 * r411136;
double r411138 = r411133 - r411137;
double r411139 = sqrt(r411138);
double r411140 = r411132 * r411139;
double r411141 = r411133 - r411136;
double r411142 = r411140 * r411141;
return r411142;
}
double f(double v) {
double r411143 = 2.0;
double r411144 = sqrt(r411143);
double r411145 = 4.0;
double r411146 = r411144 / r411145;
double r411147 = 1.0;
double r411148 = 3.0;
double r411149 = v;
double r411150 = r411149 * r411149;
double r411151 = r411148 * r411150;
double r411152 = r411147 - r411151;
double r411153 = sqrt(r411152);
double r411154 = log1p(r411153);
double r411155 = expm1(r411154);
double r411156 = r411146 * r411155;
double r411157 = log1p(r411156);
double r411158 = expm1(r411157);
double r411159 = r411147 - r411150;
double r411160 = r411158 * r411159;
return r411160;
}



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