Average Error: 0.0 → 0.0
Time: 4.8s
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(\left(\frac{\sqrt{2}}{4} \cdot \sqrt{1 - 3 \cdot \left(v \cdot v\right)}\right) \cdot \left(1 - 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)
e^{\log \left(\left(\frac{\sqrt{2}}{4} \cdot \sqrt{1 - 3 \cdot \left(v \cdot v\right)}\right) \cdot \left(1 - v \cdot v\right)\right)}
double f(double v) {
        double r330060 = 2.0;
        double r330061 = sqrt(r330060);
        double r330062 = 4.0;
        double r330063 = r330061 / r330062;
        double r330064 = 1.0;
        double r330065 = 3.0;
        double r330066 = v;
        double r330067 = r330066 * r330066;
        double r330068 = r330065 * r330067;
        double r330069 = r330064 - r330068;
        double r330070 = sqrt(r330069);
        double r330071 = r330063 * r330070;
        double r330072 = r330064 - r330067;
        double r330073 = r330071 * r330072;
        return r330073;
}

double f(double v) {
        double r330074 = 2.0;
        double r330075 = sqrt(r330074);
        double r330076 = 4.0;
        double r330077 = r330075 / r330076;
        double r330078 = 1.0;
        double r330079 = 3.0;
        double r330080 = v;
        double r330081 = r330080 * r330080;
        double r330082 = r330079 * r330081;
        double r330083 = r330078 - r330082;
        double r330084 = sqrt(r330083);
        double r330085 = r330077 * r330084;
        double r330086 = r330078 - r330081;
        double r330087 = r330085 * r330086;
        double r330088 = log(r330087);
        double r330089 = exp(r330088);
        return r330089;
}

Error

Bits error versus v

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

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-exp-log0.0

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

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

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

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

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

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

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

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

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

Reproduce

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