Average Error: 29.0 → 7.6
Time: 28.6s
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 r3109737 = a;
        double r3109738 = r3109737 * r3109737;
        double r3109739 = b;
        double r3109740 = r3109739 * r3109739;
        double r3109741 = r3109738 - r3109740;
        double r3109742 = r3109741 / r3109738;
        double r3109743 = fabs(r3109742);
        double r3109744 = sqrt(r3109743);
        return r3109744;
}

double f(double a, double b) {
        double r3109745 = 1.0;
        double r3109746 = b;
        double r3109747 = a;
        double r3109748 = r3109746 / r3109747;
        double r3109749 = r3109748 * r3109748;
        double r3109750 = r3109745 - r3109749;
        double r3109751 = fabs(r3109750);
        double r3109752 = sqrt(r3109751);
        return r3109752;
}

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

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

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

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

Reproduce

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