\left(\frac{\sqrt{2}}{4} \cdot \sqrt{1 - 3 \cdot \left(v \cdot v\right)}\right) \cdot \left(1 - v \cdot v\right)\frac{\sqrt{2}}{4} \cdot \left(\sqrt{1 - 3 \cdot \left(v \cdot v\right)} \cdot 1 + \sqrt{1 - 3 \cdot \left(v \cdot v\right)} \cdot \left(-v \cdot v\right)\right)double f(double v) {
double r307606 = 2.0;
double r307607 = sqrt(r307606);
double r307608 = 4.0;
double r307609 = r307607 / r307608;
double r307610 = 1.0;
double r307611 = 3.0;
double r307612 = v;
double r307613 = r307612 * r307612;
double r307614 = r307611 * r307613;
double r307615 = r307610 - r307614;
double r307616 = sqrt(r307615);
double r307617 = r307609 * r307616;
double r307618 = r307610 - r307613;
double r307619 = r307617 * r307618;
return r307619;
}
double f(double v) {
double r307620 = 2.0;
double r307621 = sqrt(r307620);
double r307622 = 4.0;
double r307623 = r307621 / r307622;
double r307624 = 1.0;
double r307625 = 3.0;
double r307626 = v;
double r307627 = r307626 * r307626;
double r307628 = r307625 * r307627;
double r307629 = r307624 - r307628;
double r307630 = sqrt(r307629);
double r307631 = r307630 * r307624;
double r307632 = -r307627;
double r307633 = r307630 * r307632;
double r307634 = r307631 + r307633;
double r307635 = r307623 * r307634;
return r307635;
}



Bits error versus v
Results
Initial program 0.0
rmApplied associate-*l*0.0
rmApplied sub-neg0.0
Applied distribute-lft-in0.0
Final simplification0.0
herbie shell --seed 2020002 +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))))