Average Error: 31.2 → 8.3
Time: 11.4s
Precision: 64
\[0.0 \le b \le a \le 1\]
\[\sqrt{\left|\frac{a \cdot a - b \cdot b}{a \cdot a}\right|}\]
\[\sqrt{\left|1 - \frac{b}{a} \cdot \frac{b}{a}\right|}\]
\sqrt{\left|\frac{a \cdot a - b \cdot b}{a \cdot a}\right|}
\sqrt{\left|1 - \frac{b}{a} \cdot \frac{b}{a}\right|}
double f(double a, double b) {
        double r2711431 = a;
        double r2711432 = r2711431 * r2711431;
        double r2711433 = b;
        double r2711434 = r2711433 * r2711433;
        double r2711435 = r2711432 - r2711434;
        double r2711436 = r2711435 / r2711432;
        double r2711437 = fabs(r2711436);
        double r2711438 = sqrt(r2711437);
        return r2711438;
}

double f(double a, double b) {
        double r2711439 = 1.0;
        double r2711440 = b;
        double r2711441 = a;
        double r2711442 = r2711440 / r2711441;
        double r2711443 = r2711442 * r2711442;
        double r2711444 = r2711439 - r2711443;
        double r2711445 = fabs(r2711444);
        double r2711446 = sqrt(r2711445);
        return r2711446;
}

Error

Bits error versus a

Bits error versus b

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 31.2

    \[\sqrt{\left|\frac{a \cdot a - b \cdot b}{a \cdot a}\right|}\]
  2. Simplified8.3

    \[\leadsto \color{blue}{\sqrt{\left|1 - \frac{b}{a} \cdot \frac{b}{a}\right|}}\]
  3. Final simplification8.3

    \[\leadsto \sqrt{\left|1 - \frac{b}{a} \cdot \frac{b}{a}\right|}\]

Reproduce

herbie shell --seed 2019172 +o rules:numerics
(FPCore (a b)
  :name "Eccentricity of an ellipse"
  :pre (<= 0.0 b a 1.0)
  (sqrt (fabs (/ (- (* a a) (* b b)) (* a a)))))