Average Error: 29.8 → 7.7
Time: 27.0s
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 r2285958 = a;
        double r2285959 = r2285958 * r2285958;
        double r2285960 = b;
        double r2285961 = r2285960 * r2285960;
        double r2285962 = r2285959 - r2285961;
        double r2285963 = r2285962 / r2285959;
        double r2285964 = fabs(r2285963);
        double r2285965 = sqrt(r2285964);
        return r2285965;
}

double f(double a, double b) {
        double r2285966 = 1.0;
        double r2285967 = b;
        double r2285968 = a;
        double r2285969 = r2285967 / r2285968;
        double r2285970 = r2285969 * r2285969;
        double r2285971 = r2285966 - r2285970;
        double r2285972 = fabs(r2285971);
        double r2285973 = sqrt(r2285972);
        return r2285973;
}

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

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

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

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

Reproduce

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