Average Error: 14.5 → 0.0
Time: 11.6s
Precision: 64
\[0.0 \le b \le a \le 1\]
\[\sqrt{\left|\frac{a \cdot a - b \cdot b}{a \cdot a}\right|}\]
\[\sqrt{\left|\frac{1}{\frac{a}{a - b \cdot \frac{b}{a}}}\right|}\]
\sqrt{\left|\frac{a \cdot a - b \cdot b}{a \cdot a}\right|}
\sqrt{\left|\frac{1}{\frac{a}{a - b \cdot \frac{b}{a}}}\right|}
double f(double a, double b) {
        double r92559 = a;
        double r92560 = r92559 * r92559;
        double r92561 = b;
        double r92562 = r92561 * r92561;
        double r92563 = r92560 - r92562;
        double r92564 = r92563 / r92560;
        double r92565 = fabs(r92564);
        double r92566 = sqrt(r92565);
        return r92566;
}

double f(double a, double b) {
        double r92567 = 1.0;
        double r92568 = a;
        double r92569 = b;
        double r92570 = r92569 / r92568;
        double r92571 = r92569 * r92570;
        double r92572 = r92568 - r92571;
        double r92573 = r92568 / r92572;
        double r92574 = r92567 / r92573;
        double r92575 = fabs(r92574);
        double r92576 = sqrt(r92575);
        return r92576;
}

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 14.5

    \[\sqrt{\left|\frac{a \cdot a - b \cdot b}{a \cdot a}\right|}\]
  2. Using strategy rm
  3. Applied clear-num14.5

    \[\leadsto \sqrt{\left|\color{blue}{\frac{1}{\frac{a \cdot a}{a \cdot a - b \cdot b}}}\right|}\]
  4. Simplified0.0

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

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

Reproduce

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