Average Error: 14.2 → 0.0
Time: 17.8s
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{a - b \cdot \frac{b}{a}}{a}\right|}\]
\sqrt{\left|\frac{a \cdot a - b \cdot b}{a \cdot a}\right|}
\sqrt{\left|\frac{a - b \cdot \frac{b}{a}}{a}\right|}
double f(double a, double b) {
        double r67705 = a;
        double r67706 = r67705 * r67705;
        double r67707 = b;
        double r67708 = r67707 * r67707;
        double r67709 = r67706 - r67708;
        double r67710 = r67709 / r67706;
        double r67711 = fabs(r67710);
        double r67712 = sqrt(r67711);
        return r67712;
}

double f(double a, double b) {
        double r67713 = a;
        double r67714 = b;
        double r67715 = r67714 / r67713;
        double r67716 = r67714 * r67715;
        double r67717 = r67713 - r67716;
        double r67718 = r67717 / r67713;
        double r67719 = fabs(r67718);
        double r67720 = sqrt(r67719);
        return r67720;
}

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

    \[\sqrt{\left|\frac{a \cdot a - b \cdot b}{a \cdot a}\right|}\]
  2. Using strategy rm
  3. Applied associate-/r*14.4

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

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

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

Reproduce

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