Average Error: 14.7 → 0.0
Time: 9.9s
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|e^{\mathsf{log1p}\left(\frac{b}{a} \cdot \left(-\frac{b}{a}\right)\right)}\right|}\]
\sqrt{\left|\frac{a \cdot a - b \cdot b}{a \cdot a}\right|}
\sqrt{\left|e^{\mathsf{log1p}\left(\frac{b}{a} \cdot \left(-\frac{b}{a}\right)\right)}\right|}
double f(double a, double b) {
        double r45384 = a;
        double r45385 = r45384 * r45384;
        double r45386 = b;
        double r45387 = r45386 * r45386;
        double r45388 = r45385 - r45387;
        double r45389 = r45388 / r45385;
        double r45390 = fabs(r45389);
        double r45391 = sqrt(r45390);
        return r45391;
}

double f(double a, double b) {
        double r45392 = b;
        double r45393 = a;
        double r45394 = r45392 / r45393;
        double r45395 = -r45394;
        double r45396 = r45394 * r45395;
        double r45397 = log1p(r45396);
        double r45398 = exp(r45397);
        double r45399 = fabs(r45398);
        double r45400 = sqrt(r45399);
        return r45400;
}

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

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

    \[\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 - \frac{b}{a} \cdot b}}}\right|}\]
  5. Using strategy rm
  6. Applied add-exp-log4.1

    \[\leadsto \sqrt{\left|\frac{1}{\frac{a}{\color{blue}{e^{\log \left(a - \frac{b}{a} \cdot b\right)}}}}\right|}\]
  7. Applied add-exp-log0.3

    \[\leadsto \sqrt{\left|\frac{1}{\frac{\color{blue}{e^{\log a}}}{e^{\log \left(a - \frac{b}{a} \cdot b\right)}}}\right|}\]
  8. Applied div-exp0.3

    \[\leadsto \sqrt{\left|\frac{1}{\color{blue}{e^{\log a - \log \left(a - \frac{b}{a} \cdot b\right)}}}\right|}\]
  9. Applied rec-exp0.3

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

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

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

Reproduce

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