Average Error: 0.0 → 0.0
Time: 25.3s
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)\]
\[\mathsf{fma}\left(-v \cdot v, \frac{\sqrt{\mathsf{fma}\left(3, -v \cdot v, 1\right)}}{\frac{4}{\sqrt{2}}}, \frac{\sqrt{\mathsf{fma}\left(3, -v \cdot v, 1\right)}}{\frac{4}{\sqrt{2}}}\right)\]
\left(\frac{\sqrt{2}}{4} \cdot \sqrt{1 - 3 \cdot \left(v \cdot v\right)}\right) \cdot \left(1 - v \cdot v\right)
\mathsf{fma}\left(-v \cdot v, \frac{\sqrt{\mathsf{fma}\left(3, -v \cdot v, 1\right)}}{\frac{4}{\sqrt{2}}}, \frac{\sqrt{\mathsf{fma}\left(3, -v \cdot v, 1\right)}}{\frac{4}{\sqrt{2}}}\right)
double f(double v) {
        double r5824449 = 2.0;
        double r5824450 = sqrt(r5824449);
        double r5824451 = 4.0;
        double r5824452 = r5824450 / r5824451;
        double r5824453 = 1.0;
        double r5824454 = 3.0;
        double r5824455 = v;
        double r5824456 = r5824455 * r5824455;
        double r5824457 = r5824454 * r5824456;
        double r5824458 = r5824453 - r5824457;
        double r5824459 = sqrt(r5824458);
        double r5824460 = r5824452 * r5824459;
        double r5824461 = r5824453 - r5824456;
        double r5824462 = r5824460 * r5824461;
        return r5824462;
}

double f(double v) {
        double r5824463 = v;
        double r5824464 = r5824463 * r5824463;
        double r5824465 = -r5824464;
        double r5824466 = 3.0;
        double r5824467 = 1.0;
        double r5824468 = fma(r5824466, r5824465, r5824467);
        double r5824469 = sqrt(r5824468);
        double r5824470 = 4.0;
        double r5824471 = 2.0;
        double r5824472 = sqrt(r5824471);
        double r5824473 = r5824470 / r5824472;
        double r5824474 = r5824469 / r5824473;
        double r5824475 = fma(r5824465, r5824474, r5824474);
        return r5824475;
}

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}{\mathsf{fma}\left(-v \cdot v, \frac{\sqrt{\mathsf{fma}\left(3, -v \cdot v, 1\right)}}{\frac{4}{\sqrt{2}}}, \frac{\sqrt{\mathsf{fma}\left(3, -v \cdot v, 1\right)}}{\frac{4}{\sqrt{2}}}\right)}\]
  3. Final simplification0.0

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

Reproduce

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