Average Error: 30.8 → 8.3
Time: 16.5s
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|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 r3802600 = a;
        double r3802601 = r3802600 * r3802600;
        double r3802602 = b;
        double r3802603 = r3802602 * r3802602;
        double r3802604 = r3802601 - r3802603;
        double r3802605 = r3802604 / r3802601;
        double r3802606 = fabs(r3802605);
        double r3802607 = sqrt(r3802606);
        return r3802607;
}

double f(double a, double b) {
        double r3802608 = 1.0;
        double r3802609 = b;
        double r3802610 = a;
        double r3802611 = r3802609 / r3802610;
        double r3802612 = r3802611 * r3802611;
        double r3802613 = r3802608 - r3802612;
        double r3802614 = fabs(r3802613);
        double r3802615 = sqrt(r3802614);
        return r3802615;
}

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 30.8

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

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

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

Reproduce

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