Average Error: 29.1 → 7.3
Time: 34.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 r12999909 = a;
        double r12999910 = r12999909 * r12999909;
        double r12999911 = b;
        double r12999912 = r12999911 * r12999911;
        double r12999913 = r12999910 - r12999912;
        double r12999914 = r12999913 / r12999910;
        double r12999915 = fabs(r12999914);
        double r12999916 = sqrt(r12999915);
        return r12999916;
}

double f(double a, double b) {
        double r12999917 = 1.0;
        double r12999918 = b;
        double r12999919 = a;
        double r12999920 = r12999918 / r12999919;
        double r12999921 = r12999920 * r12999920;
        double r12999922 = r12999917 - r12999921;
        double r12999923 = fabs(r12999922);
        double r12999924 = sqrt(r12999923);
        return r12999924;
}

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

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

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

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

Reproduce

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