Average Error: 0.0 → 0.0
Time: 19.6s
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)\]
\[e^{\log \left(\frac{\left(\sqrt{2} - \left(v \cdot v\right) \cdot \sqrt{2}\right) \cdot \sqrt{\mathsf{fma}\left(v \cdot v, -3, 1\right)}}{4}\right)}\]
\left(\frac{\sqrt{2}}{4} \cdot \sqrt{1 - 3 \cdot \left(v \cdot v\right)}\right) \cdot \left(1 - v \cdot v\right)
e^{\log \left(\frac{\left(\sqrt{2} - \left(v \cdot v\right) \cdot \sqrt{2}\right) \cdot \sqrt{\mathsf{fma}\left(v \cdot v, -3, 1\right)}}{4}\right)}
double f(double v) {
        double r5990171 = 2.0;
        double r5990172 = sqrt(r5990171);
        double r5990173 = 4.0;
        double r5990174 = r5990172 / r5990173;
        double r5990175 = 1.0;
        double r5990176 = 3.0;
        double r5990177 = v;
        double r5990178 = r5990177 * r5990177;
        double r5990179 = r5990176 * r5990178;
        double r5990180 = r5990175 - r5990179;
        double r5990181 = sqrt(r5990180);
        double r5990182 = r5990174 * r5990181;
        double r5990183 = r5990175 - r5990178;
        double r5990184 = r5990182 * r5990183;
        return r5990184;
}

double f(double v) {
        double r5990185 = 2.0;
        double r5990186 = sqrt(r5990185);
        double r5990187 = v;
        double r5990188 = r5990187 * r5990187;
        double r5990189 = r5990188 * r5990186;
        double r5990190 = r5990186 - r5990189;
        double r5990191 = -3.0;
        double r5990192 = 1.0;
        double r5990193 = fma(r5990188, r5990191, r5990192);
        double r5990194 = sqrt(r5990193);
        double r5990195 = r5990190 * r5990194;
        double r5990196 = 4.0;
        double r5990197 = r5990195 / r5990196;
        double r5990198 = log(r5990197);
        double r5990199 = exp(r5990198);
        return r5990199;
}

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

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

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

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

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

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

Reproduce

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