Average Error: 0.1 → 0.1
Time: 4.7s
Precision: 64
\[0.0 \le e \le 1\]
\[\frac{e \cdot \sin v}{1 + e \cdot \cos v}\]
\[\frac{e \cdot \sin v}{1 + \log \left(e^{e \cdot \cos v}\right)}\]
\frac{e \cdot \sin v}{1 + e \cdot \cos v}
\frac{e \cdot \sin v}{1 + \log \left(e^{e \cdot \cos v}\right)}
double f(double e, double v) {
        double r10492 = e;
        double r10493 = v;
        double r10494 = sin(r10493);
        double r10495 = r10492 * r10494;
        double r10496 = 1.0;
        double r10497 = cos(r10493);
        double r10498 = r10492 * r10497;
        double r10499 = r10496 + r10498;
        double r10500 = r10495 / r10499;
        return r10500;
}

double f(double e, double v) {
        double r10501 = e;
        double r10502 = v;
        double r10503 = sin(r10502);
        double r10504 = r10501 * r10503;
        double r10505 = 1.0;
        double r10506 = cos(r10502);
        double r10507 = r10501 * r10506;
        double r10508 = exp(r10507);
        double r10509 = log(r10508);
        double r10510 = r10505 + r10509;
        double r10511 = r10504 / r10510;
        return r10511;
}

Error

Bits error versus e

Bits error versus v

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.1

    \[\frac{e \cdot \sin v}{1 + e \cdot \cos v}\]
  2. Using strategy rm
  3. Applied add-log-exp0.1

    \[\leadsto \frac{e \cdot \sin v}{1 + \color{blue}{\log \left(e^{e \cdot \cos v}\right)}}\]
  4. Final simplification0.1

    \[\leadsto \frac{e \cdot \sin v}{1 + \log \left(e^{e \cdot \cos v}\right)}\]

Reproduce

herbie shell --seed 2020083 
(FPCore (e v)
  :name "Trigonometry A"
  :precision binary64
  :pre (<= 0.0 e 1)
  (/ (* e (sin v)) (+ 1 (* e (cos v)))))