Average Error: 29.4 → 7.1
Time: 12.8s
Precision: 64
\[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 r3732428 = a;
        double r3732429 = r3732428 * r3732428;
        double r3732430 = b;
        double r3732431 = r3732430 * r3732430;
        double r3732432 = r3732429 - r3732431;
        double r3732433 = r3732432 / r3732429;
        double r3732434 = fabs(r3732433);
        double r3732435 = sqrt(r3732434);
        return r3732435;
}

double f(double a, double b) {
        double r3732436 = 1.0;
        double r3732437 = b;
        double r3732438 = a;
        double r3732439 = r3732437 / r3732438;
        double r3732440 = r3732439 * r3732439;
        double r3732441 = r3732436 - r3732440;
        double r3732442 = fabs(r3732441);
        double r3732443 = sqrt(r3732442);
        return r3732443;
}

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 29.4

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

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

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

Reproduce

herbie shell --seed 2019164 
(FPCore (a b)
  :name "Eccentricity of an ellipse"
  :pre (<= 0 b a 1)
  (sqrt (fabs (/ (- (* a a) (* b b)) (* a a)))))