Average Error: 0.0 → 0.0
Time: 15.9s
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{2} \cdot e^{\log \left(\frac{\mathsf{fma}\left(v, -v, 1\right)}{4} \cdot \sqrt{\mathsf{fma}\left(\left(-3\right) \cdot v, v, 1\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{2} \cdot e^{\log \left(\frac{\mathsf{fma}\left(v, -v, 1\right)}{4} \cdot \sqrt{\mathsf{fma}\left(\left(-3\right) \cdot v, v, 1\right)}\right)}
double f(double v) {
        double r156517 = 2.0;
        double r156518 = sqrt(r156517);
        double r156519 = 4.0;
        double r156520 = r156518 / r156519;
        double r156521 = 1.0;
        double r156522 = 3.0;
        double r156523 = v;
        double r156524 = r156523 * r156523;
        double r156525 = r156522 * r156524;
        double r156526 = r156521 - r156525;
        double r156527 = sqrt(r156526);
        double r156528 = r156520 * r156527;
        double r156529 = r156521 - r156524;
        double r156530 = r156528 * r156529;
        return r156530;
}

double f(double v) {
        double r156531 = 2.0;
        double r156532 = sqrt(r156531);
        double r156533 = v;
        double r156534 = -r156533;
        double r156535 = 1.0;
        double r156536 = fma(r156533, r156534, r156535);
        double r156537 = 4.0;
        double r156538 = r156536 / r156537;
        double r156539 = 3.0;
        double r156540 = -r156539;
        double r156541 = r156540 * r156533;
        double r156542 = fma(r156541, r156533, r156535);
        double r156543 = sqrt(r156542);
        double r156544 = r156538 * r156543;
        double r156545 = log(r156544);
        double r156546 = exp(r156545);
        double r156547 = r156532 * r156546;
        return r156547;
}

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}{\sqrt{2} \cdot \left(\sqrt{\mathsf{fma}\left(3, \left(-v\right) \cdot v, 1\right)} \cdot \frac{\mathsf{fma}\left(-v, v, 1\right)}{4}\right)}\]
  3. Using strategy rm
  4. Applied add-exp-log0.0

    \[\leadsto \sqrt{2} \cdot \left(\sqrt{\mathsf{fma}\left(3, \left(-v\right) \cdot v, 1\right)} \cdot \frac{\mathsf{fma}\left(-v, v, 1\right)}{\color{blue}{e^{\log 4}}}\right)\]
  5. Applied add-exp-log0.0

    \[\leadsto \sqrt{2} \cdot \left(\sqrt{\mathsf{fma}\left(3, \left(-v\right) \cdot v, 1\right)} \cdot \frac{\color{blue}{e^{\log \left(\mathsf{fma}\left(-v, v, 1\right)\right)}}}{e^{\log 4}}\right)\]
  6. Applied div-exp0.0

    \[\leadsto \sqrt{2} \cdot \left(\sqrt{\mathsf{fma}\left(3, \left(-v\right) \cdot v, 1\right)} \cdot \color{blue}{e^{\log \left(\mathsf{fma}\left(-v, v, 1\right)\right) - \log 4}}\right)\]
  7. Applied add-exp-log0.0

    \[\leadsto \sqrt{2} \cdot \left(\color{blue}{e^{\log \left(\sqrt{\mathsf{fma}\left(3, \left(-v\right) \cdot v, 1\right)}\right)}} \cdot e^{\log \left(\mathsf{fma}\left(-v, v, 1\right)\right) - \log 4}\right)\]
  8. Applied prod-exp0.0

    \[\leadsto \sqrt{2} \cdot \color{blue}{e^{\log \left(\sqrt{\mathsf{fma}\left(3, \left(-v\right) \cdot v, 1\right)}\right) + \left(\log \left(\mathsf{fma}\left(-v, v, 1\right)\right) - \log 4\right)}}\]
  9. Simplified0.0

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

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

Reproduce

herbie shell --seed 2019194 +o rules:numerics
(FPCore (v)
  :name "Falkner and Boettcher, Appendix B, 2"
  (* (* (/ (sqrt 2.0) 4.0) (sqrt (- 1.0 (* 3.0 (* v v))))) (- 1.0 (* v v))))