Average Error: 0.0 → 0.0
Time: 12.7s
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(\frac{\sqrt{2}}{4} - \frac{\sqrt{2}}{4} \cdot \left(v \cdot v\right)\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(\frac{\sqrt{2}}{4} - \frac{\sqrt{2}}{4} \cdot \left(v \cdot v\right)\right)
double f(double v) {
        double r5023261 = 2.0;
        double r5023262 = sqrt(r5023261);
        double r5023263 = 4.0;
        double r5023264 = r5023262 / r5023263;
        double r5023265 = 1.0;
        double r5023266 = 3.0;
        double r5023267 = v;
        double r5023268 = r5023267 * r5023267;
        double r5023269 = r5023266 * r5023268;
        double r5023270 = r5023265 - r5023269;
        double r5023271 = sqrt(r5023270);
        double r5023272 = r5023264 * r5023271;
        double r5023273 = r5023265 - r5023268;
        double r5023274 = r5023272 * r5023273;
        return r5023274;
}

double f(double v) {
        double r5023275 = v;
        double r5023276 = r5023275 * r5023275;
        double r5023277 = -3.0;
        double r5023278 = 1.0;
        double r5023279 = fma(r5023276, r5023277, r5023278);
        double r5023280 = sqrt(r5023279);
        double r5023281 = 2.0;
        double r5023282 = sqrt(r5023281);
        double r5023283 = 4.0;
        double r5023284 = r5023282 / r5023283;
        double r5023285 = r5023284 * r5023276;
        double r5023286 = r5023284 - r5023285;
        double r5023287 = r5023280 * r5023286;
        return r5023287;
}

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(\frac{\sqrt{2}}{4} - \frac{\sqrt{2}}{4} \cdot \left(v \cdot v\right)\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(\frac{\sqrt{2}}{4} - \frac{\sqrt{2}}{4} \cdot \left(v \cdot v\right)\right)\]

Reproduce

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