Average Error: 0.0 → 0.0
Time: 17.4s
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)\]
\[\left(1 - v \cdot v\right) \cdot \left(\frac{\sqrt{2}}{4} \cdot \log \left(e^{\sqrt{\mathsf{fma}\left(v \cdot v, -3, 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)
\left(1 - v \cdot v\right) \cdot \left(\frac{\sqrt{2}}{4} \cdot \log \left(e^{\sqrt{\mathsf{fma}\left(v \cdot v, -3, 1\right)}}\right)\right)
double f(double v) {
        double r5805419 = 2.0;
        double r5805420 = sqrt(r5805419);
        double r5805421 = 4.0;
        double r5805422 = r5805420 / r5805421;
        double r5805423 = 1.0;
        double r5805424 = 3.0;
        double r5805425 = v;
        double r5805426 = r5805425 * r5805425;
        double r5805427 = r5805424 * r5805426;
        double r5805428 = r5805423 - r5805427;
        double r5805429 = sqrt(r5805428);
        double r5805430 = r5805422 * r5805429;
        double r5805431 = r5805423 - r5805426;
        double r5805432 = r5805430 * r5805431;
        return r5805432;
}

double f(double v) {
        double r5805433 = 1.0;
        double r5805434 = v;
        double r5805435 = r5805434 * r5805434;
        double r5805436 = r5805433 - r5805435;
        double r5805437 = 2.0;
        double r5805438 = sqrt(r5805437);
        double r5805439 = 4.0;
        double r5805440 = r5805438 / r5805439;
        double r5805441 = -3.0;
        double r5805442 = fma(r5805435, r5805441, r5805433);
        double r5805443 = sqrt(r5805442);
        double r5805444 = exp(r5805443);
        double r5805445 = log(r5805444);
        double r5805446 = r5805440 * r5805445;
        double r5805447 = r5805436 * r5805446;
        return r5805447;
}

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. Using strategy rm
  3. Applied add-log-exp0.0

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

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

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

Reproduce

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