Average Error: 0.1 → 0.1
Time: 3.3m
Precision: 64
\[\frac{e \cdot \sin v}{1 + e \cdot \cos v}\]
\[\frac{e \cdot \sin v}{1 - \left(e \cdot \cos v\right) \cdot \left(e \cdot \cos v\right)} \cdot \left(1 - e \cdot \cos v\right)\]
double f(double e, double v) {
        double r7377443 = e;
        double r7377444 = v;
        double r7377445 = sin(r7377444);
        double r7377446 = r7377443 * r7377445;
        double r7377447 = 1.0;
        double r7377448 = cos(r7377444);
        double r7377449 = r7377443 * r7377448;
        double r7377450 = r7377447 + r7377449;
        double r7377451 = r7377446 / r7377450;
        return r7377451;
}

double f(double e, double v) {
        double r7377452 = e;
        double r7377453 = v;
        double r7377454 = sin(r7377453);
        double r7377455 = r7377452 * r7377454;
        double r7377456 = 1.0;
        double r7377457 = cos(r7377453);
        double r7377458 = r7377452 * r7377457;
        double r7377459 = r7377458 * r7377458;
        double r7377460 = r7377456 - r7377459;
        double r7377461 = r7377455 / r7377460;
        double r7377462 = r7377456 - r7377458;
        double r7377463 = r7377461 * r7377462;
        return r7377463;
}

\frac{e \cdot \sin v}{1 + e \cdot \cos v}
\frac{e \cdot \sin v}{1 - \left(e \cdot \cos v\right) \cdot \left(e \cdot \cos v\right)} \cdot \left(1 - e \cdot \cos v\right)

Error

Bits error versus e

Bits error versus v

Derivation

  1. Initial program 0.1

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

    \[\leadsto \frac{e \cdot \sin v}{\color{blue}{\frac{1 \cdot 1 - \left(e \cdot \cos v\right) \cdot \left(e \cdot \cos v\right)}{1 - e \cdot \cos v}}}\]
  4. Applied associate-/r/0.1

    \[\leadsto \color{blue}{\frac{e \cdot \sin v}{1 \cdot 1 - \left(e \cdot \cos v\right) \cdot \left(e \cdot \cos v\right)} \cdot \left(1 - e \cdot \cos v\right)}\]
  5. Final simplification0.1

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

Reproduce

herbie shell --seed 2019101 +o rules:numerics
(FPCore (e v)
  :name "Trigonometry A"
  :pre (<= 0 e 1)
  (/ (* e (sin v)) (+ 1 (* e (cos v)))))