Average Error: 0.0 → 0.0
Time: 4.3s
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{expm1}\left(\mathsf{log1p}\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)\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{expm1}\left(\mathsf{log1p}\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)\right)
double f(double v) {
        double r141048 = 2.0;
        double r141049 = sqrt(r141048);
        double r141050 = 4.0;
        double r141051 = r141049 / r141050;
        double r141052 = 1.0;
        double r141053 = 3.0;
        double r141054 = v;
        double r141055 = r141054 * r141054;
        double r141056 = r141053 * r141055;
        double r141057 = r141052 - r141056;
        double r141058 = sqrt(r141057);
        double r141059 = r141051 * r141058;
        double r141060 = r141052 - r141055;
        double r141061 = r141059 * r141060;
        return r141061;
}

double f(double v) {
        double r141062 = 2.0;
        double r141063 = sqrt(r141062);
        double r141064 = 4.0;
        double r141065 = r141063 / r141064;
        double r141066 = 1.0;
        double r141067 = 3.0;
        double r141068 = v;
        double r141069 = r141068 * r141068;
        double r141070 = r141067 * r141069;
        double r141071 = r141066 - r141070;
        double r141072 = sqrt(r141071);
        double r141073 = r141065 * r141072;
        double r141074 = r141066 - r141069;
        double r141075 = r141073 * r141074;
        double r141076 = log1p(r141075);
        double r141077 = expm1(r141076);
        return r141077;
}

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 expm1-log1p-u0.0

    \[\leadsto \color{blue}{\mathsf{expm1}\left(\mathsf{log1p}\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)\right)}\]
  4. Final simplification0.0

    \[\leadsto \mathsf{expm1}\left(\mathsf{log1p}\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)\right)\]

Reproduce

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