Average Error: 0.0 → 0.2
Time: 4.5s
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(0.375, \frac{\sqrt{2} \cdot {v}^{4}}{\sqrt{1}}, 0.25 \cdot \left(\sqrt{2} \cdot \sqrt{1}\right) - \mathsf{fma}\left(0.25, \sqrt{2} \cdot \left({v}^{2} \cdot \sqrt{1}\right), \mathsf{fma}\left(0.28125, \frac{\sqrt{2} \cdot {v}^{4}}{{\left(\sqrt{1}\right)}^{3}}, 0.375 \cdot \frac{\sqrt{2} \cdot {v}^{2}}{\sqrt{1}}\right)\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)
\mathsf{fma}\left(0.375, \frac{\sqrt{2} \cdot {v}^{4}}{\sqrt{1}}, 0.25 \cdot \left(\sqrt{2} \cdot \sqrt{1}\right) - \mathsf{fma}\left(0.25, \sqrt{2} \cdot \left({v}^{2} \cdot \sqrt{1}\right), \mathsf{fma}\left(0.28125, \frac{\sqrt{2} \cdot {v}^{4}}{{\left(\sqrt{1}\right)}^{3}}, 0.375 \cdot \frac{\sqrt{2} \cdot {v}^{2}}{\sqrt{1}}\right)\right)\right)
double f(double v) {
        double r272372 = 2.0;
        double r272373 = sqrt(r272372);
        double r272374 = 4.0;
        double r272375 = r272373 / r272374;
        double r272376 = 1.0;
        double r272377 = 3.0;
        double r272378 = v;
        double r272379 = r272378 * r272378;
        double r272380 = r272377 * r272379;
        double r272381 = r272376 - r272380;
        double r272382 = sqrt(r272381);
        double r272383 = r272375 * r272382;
        double r272384 = r272376 - r272379;
        double r272385 = r272383 * r272384;
        return r272385;
}

double f(double v) {
        double r272386 = 0.375;
        double r272387 = 2.0;
        double r272388 = sqrt(r272387);
        double r272389 = v;
        double r272390 = 4.0;
        double r272391 = pow(r272389, r272390);
        double r272392 = r272388 * r272391;
        double r272393 = 1.0;
        double r272394 = sqrt(r272393);
        double r272395 = r272392 / r272394;
        double r272396 = 0.25;
        double r272397 = r272388 * r272394;
        double r272398 = r272396 * r272397;
        double r272399 = 2.0;
        double r272400 = pow(r272389, r272399);
        double r272401 = r272400 * r272394;
        double r272402 = r272388 * r272401;
        double r272403 = 0.28125;
        double r272404 = 3.0;
        double r272405 = pow(r272394, r272404);
        double r272406 = r272392 / r272405;
        double r272407 = r272388 * r272400;
        double r272408 = r272407 / r272394;
        double r272409 = r272386 * r272408;
        double r272410 = fma(r272403, r272406, r272409);
        double r272411 = fma(r272396, r272402, r272410);
        double r272412 = r272398 - r272411;
        double r272413 = fma(r272386, r272395, r272412);
        return r272413;
}

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. Taylor expanded around 0 0.2

    \[\leadsto \color{blue}{\left(0.375 \cdot \frac{\sqrt{2} \cdot {v}^{4}}{\sqrt{1}} + 0.25 \cdot \left(\sqrt{2} \cdot \sqrt{1}\right)\right) - \left(0.25 \cdot \left(\sqrt{2} \cdot \left({v}^{2} \cdot \sqrt{1}\right)\right) + \left(0.28125 \cdot \frac{\sqrt{2} \cdot {v}^{4}}{{\left(\sqrt{1}\right)}^{3}} + 0.375 \cdot \frac{\sqrt{2} \cdot {v}^{2}}{\sqrt{1}}\right)\right)}\]
  3. Simplified0.2

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

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

Reproduce

herbie shell --seed 2020018 +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))))