Average Error: 0.0 → 0.0
Time: 1.6m
Precision: 64
\[\left(\frac{\sqrt{2}}{4} \cdot \sqrt{1 - 3 \cdot \left(v \cdot v\right)}\right) \cdot \left(1 - v \cdot v\right)\]
\[\sqrt{\mathsf{fma}\left(\left(v \cdot v\right), -3, 1\right)} \cdot \left(\left(1 - v \cdot v\right) \cdot \frac{\sqrt{2}}{4}\right)\]
\left(\frac{\sqrt{2}}{4} \cdot \sqrt{1 - 3 \cdot \left(v \cdot v\right)}\right) \cdot \left(1 - v \cdot v\right)
\sqrt{\mathsf{fma}\left(\left(v \cdot v\right), -3, 1\right)} \cdot \left(\left(1 - v \cdot v\right) \cdot \frac{\sqrt{2}}{4}\right)
double f(double v) {
        double r46493748 = 2.0;
        double r46493749 = sqrt(r46493748);
        double r46493750 = 4.0;
        double r46493751 = r46493749 / r46493750;
        double r46493752 = 1.0;
        double r46493753 = 3.0;
        double r46493754 = v;
        double r46493755 = r46493754 * r46493754;
        double r46493756 = r46493753 * r46493755;
        double r46493757 = r46493752 - r46493756;
        double r46493758 = sqrt(r46493757);
        double r46493759 = r46493751 * r46493758;
        double r46493760 = r46493752 - r46493755;
        double r46493761 = r46493759 * r46493760;
        return r46493761;
}

double f(double v) {
        double r46493762 = v;
        double r46493763 = r46493762 * r46493762;
        double r46493764 = -3.0;
        double r46493765 = 1.0;
        double r46493766 = fma(r46493763, r46493764, r46493765);
        double r46493767 = sqrt(r46493766);
        double r46493768 = r46493765 - r46493763;
        double r46493769 = 2.0;
        double r46493770 = sqrt(r46493769);
        double r46493771 = 4.0;
        double r46493772 = r46493770 / r46493771;
        double r46493773 = r46493768 * r46493772;
        double r46493774 = r46493767 * r46493773;
        return r46493774;
}

Error

Bits error versus v

Derivation

  1. Initial program 0.0

    \[\left(\frac{\sqrt{2}}{4} \cdot \sqrt{1 - 3 \cdot \left(v \cdot v\right)}\right) \cdot \left(1 - v \cdot v\right)\]
  2. Simplified0.0

    \[\leadsto \color{blue}{\left(\left(1 - v \cdot v\right) \cdot \frac{\sqrt{2}}{4}\right) \cdot \sqrt{\mathsf{fma}\left(\left(v \cdot v\right), -3, 1\right)}}\]
  3. Final simplification0.0

    \[\leadsto \sqrt{\mathsf{fma}\left(\left(v \cdot v\right), -3, 1\right)} \cdot \left(\left(1 - v \cdot v\right) \cdot \frac{\sqrt{2}}{4}\right)\]

Reproduce

herbie shell --seed 2019128 +o rules:numerics
(FPCore (v)
  :name "Falkner and Boettcher, Appendix B, 2"
  (* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v))))