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 r9528 = e;
        double r9529 = v;
        double r9530 = sin(r9529);
        double r9531 = r9528 * r9530;
        double r9532 = 1.0;
        double r9533 = cos(r9529);
        double r9534 = r9528 * r9533;
        double r9535 = r9532 + r9534;
        double r9536 = r9531 / r9535;
        return r9536;
}

double f(double e, double v) {
        double r9537 = e;
        double r9538 = v;
        double r9539 = sin(r9538);
        double r9540 = r9537 * r9539;
        double r9541 = 1.0;
        double r9542 = cos(r9538);
        double r9543 = r9537 * r9542;
        double r9544 = exp(r9543);
        double r9545 = log(r9544);
        double r9546 = r9541 + r9545;
        double r9547 = r9540 / r9546;
        return r9547;
}

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 +o rules:numerics
(FPCore (e v)
  :name "Trigonometry A"
  :precision binary64
  :pre (<= 0.0 e 1)
  (/ (* e (sin v)) (+ 1 (* e (cos v)))))