Average Error: 15.0 → 0.0
Time: 17.9s
Precision: 64
\[0.0 \le b \le a \le 1\]
\[\sqrt{\left|\frac{a \cdot a - b \cdot b}{a \cdot a}\right|}\]
\[\log \left(e^{\sqrt{\left|1 - \frac{b}{\frac{a}{b} \cdot a}\right|}}\right)\]
\sqrt{\left|\frac{a \cdot a - b \cdot b}{a \cdot a}\right|}
\log \left(e^{\sqrt{\left|1 - \frac{b}{\frac{a}{b} \cdot a}\right|}}\right)
double f(double a, double b) {
        double r58674 = a;
        double r58675 = r58674 * r58674;
        double r58676 = b;
        double r58677 = r58676 * r58676;
        double r58678 = r58675 - r58677;
        double r58679 = r58678 / r58675;
        double r58680 = fabs(r58679);
        double r58681 = sqrt(r58680);
        return r58681;
}

double f(double a, double b) {
        double r58682 = 1.0;
        double r58683 = b;
        double r58684 = a;
        double r58685 = r58684 / r58683;
        double r58686 = r58685 * r58684;
        double r58687 = r58683 / r58686;
        double r58688 = r58682 - r58687;
        double r58689 = fabs(r58688);
        double r58690 = sqrt(r58689);
        double r58691 = exp(r58690);
        double r58692 = log(r58691);
        return r58692;
}

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 15.0

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

    \[\leadsto \color{blue}{\sqrt{\left|1 - \frac{b \cdot b}{a \cdot a}\right|}}\]
  3. Using strategy rm
  4. Applied associate-/l*15.0

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

    \[\leadsto \sqrt{\left|1 - \frac{b}{\color{blue}{\frac{a}{b} \cdot a}}\right|}\]
  6. Using strategy rm
  7. Applied add-log-exp0.0

    \[\leadsto \color{blue}{\log \left(e^{\sqrt{\left|1 - \frac{b}{\frac{a}{b} \cdot a}\right|}}\right)}\]
  8. Final simplification0.0

    \[\leadsto \log \left(e^{\sqrt{\left|1 - \frac{b}{\frac{a}{b} \cdot a}\right|}}\right)\]

Reproduce

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