Average Error: 0.0 → 0.0
Time: 43.2s
Precision: 64
\[\left(\frac{\sqrt{2.0}}{4.0} \cdot \sqrt{1.0 - 3.0 \cdot \left(v \cdot v\right)}\right) \cdot \left(1.0 - v \cdot v\right)\]
\[\frac{\left(1.0 - v \cdot v\right) \cdot \left(\sqrt{1.0 \cdot 1.0 - \left(3.0 \cdot \left(v \cdot v\right)\right) \cdot \left(3.0 \cdot \left(v \cdot v\right)\right)} \cdot \frac{\sqrt{2.0}}{4.0}\right)}{\sqrt{1.0 + 3.0 \cdot \left(v \cdot v\right)}}\]
\left(\frac{\sqrt{2.0}}{4.0} \cdot \sqrt{1.0 - 3.0 \cdot \left(v \cdot v\right)}\right) \cdot \left(1.0 - v \cdot v\right)
\frac{\left(1.0 - v \cdot v\right) \cdot \left(\sqrt{1.0 \cdot 1.0 - \left(3.0 \cdot \left(v \cdot v\right)\right) \cdot \left(3.0 \cdot \left(v \cdot v\right)\right)} \cdot \frac{\sqrt{2.0}}{4.0}\right)}{\sqrt{1.0 + 3.0 \cdot \left(v \cdot v\right)}}
double f(double v) {
        double r4531211 = 2.0;
        double r4531212 = sqrt(r4531211);
        double r4531213 = 4.0;
        double r4531214 = r4531212 / r4531213;
        double r4531215 = 1.0;
        double r4531216 = 3.0;
        double r4531217 = v;
        double r4531218 = r4531217 * r4531217;
        double r4531219 = r4531216 * r4531218;
        double r4531220 = r4531215 - r4531219;
        double r4531221 = sqrt(r4531220);
        double r4531222 = r4531214 * r4531221;
        double r4531223 = r4531215 - r4531218;
        double r4531224 = r4531222 * r4531223;
        return r4531224;
}

double f(double v) {
        double r4531225 = 1.0;
        double r4531226 = v;
        double r4531227 = r4531226 * r4531226;
        double r4531228 = r4531225 - r4531227;
        double r4531229 = r4531225 * r4531225;
        double r4531230 = 3.0;
        double r4531231 = r4531230 * r4531227;
        double r4531232 = r4531231 * r4531231;
        double r4531233 = r4531229 - r4531232;
        double r4531234 = sqrt(r4531233);
        double r4531235 = 2.0;
        double r4531236 = sqrt(r4531235);
        double r4531237 = 4.0;
        double r4531238 = r4531236 / r4531237;
        double r4531239 = r4531234 * r4531238;
        double r4531240 = r4531228 * r4531239;
        double r4531241 = r4531225 + r4531231;
        double r4531242 = sqrt(r4531241);
        double r4531243 = r4531240 / r4531242;
        return r4531243;
}

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.0}}{4.0} \cdot \sqrt{1.0 - 3.0 \cdot \left(v \cdot v\right)}\right) \cdot \left(1.0 - v \cdot v\right)\]
  2. Using strategy rm
  3. Applied flip--0.0

    \[\leadsto \left(\frac{\sqrt{2.0}}{4.0} \cdot \sqrt{\color{blue}{\frac{1.0 \cdot 1.0 - \left(3.0 \cdot \left(v \cdot v\right)\right) \cdot \left(3.0 \cdot \left(v \cdot v\right)\right)}{1.0 + 3.0 \cdot \left(v \cdot v\right)}}}\right) \cdot \left(1.0 - v \cdot v\right)\]
  4. Applied sqrt-div0.0

    \[\leadsto \left(\frac{\sqrt{2.0}}{4.0} \cdot \color{blue}{\frac{\sqrt{1.0 \cdot 1.0 - \left(3.0 \cdot \left(v \cdot v\right)\right) \cdot \left(3.0 \cdot \left(v \cdot v\right)\right)}}{\sqrt{1.0 + 3.0 \cdot \left(v \cdot v\right)}}}\right) \cdot \left(1.0 - v \cdot v\right)\]
  5. Applied associate-*r/0.0

    \[\leadsto \color{blue}{\frac{\frac{\sqrt{2.0}}{4.0} \cdot \sqrt{1.0 \cdot 1.0 - \left(3.0 \cdot \left(v \cdot v\right)\right) \cdot \left(3.0 \cdot \left(v \cdot v\right)\right)}}{\sqrt{1.0 + 3.0 \cdot \left(v \cdot v\right)}}} \cdot \left(1.0 - v \cdot v\right)\]
  6. Applied associate-*l/0.0

    \[\leadsto \color{blue}{\frac{\left(\frac{\sqrt{2.0}}{4.0} \cdot \sqrt{1.0 \cdot 1.0 - \left(3.0 \cdot \left(v \cdot v\right)\right) \cdot \left(3.0 \cdot \left(v \cdot v\right)\right)}\right) \cdot \left(1.0 - v \cdot v\right)}{\sqrt{1.0 + 3.0 \cdot \left(v \cdot v\right)}}}\]
  7. Final simplification0.0

    \[\leadsto \frac{\left(1.0 - v \cdot v\right) \cdot \left(\sqrt{1.0 \cdot 1.0 - \left(3.0 \cdot \left(v \cdot v\right)\right) \cdot \left(3.0 \cdot \left(v \cdot v\right)\right)} \cdot \frac{\sqrt{2.0}}{4.0}\right)}{\sqrt{1.0 + 3.0 \cdot \left(v \cdot v\right)}}\]

Reproduce

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