Average Error: 29.0 → 7.5
Time: 24.1s
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 r2349938 = a;
        double r2349939 = r2349938 * r2349938;
        double r2349940 = b;
        double r2349941 = r2349940 * r2349940;
        double r2349942 = r2349939 - r2349941;
        double r2349943 = r2349942 / r2349939;
        double r2349944 = fabs(r2349943);
        double r2349945 = sqrt(r2349944);
        return r2349945;
}

double f(double a, double b) {
        double r2349946 = 1.0;
        double r2349947 = b;
        double r2349948 = a;
        double r2349949 = r2349947 / r2349948;
        double r2349950 = r2349949 * r2349949;
        double r2349951 = r2349946 - r2349950;
        double r2349952 = fabs(r2349951);
        double r2349953 = sqrt(r2349952);
        return r2349953;
}

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

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

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

Reproduce

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