Average Error: 0.1 → 0.1
Time: 6.5s
Precision: 64
\[0.0 \le e \le 1\]
\[\frac{e \cdot \sin v}{1 + e \cdot \cos v}\]
\[\left(\frac{e}{\mathsf{fma}\left(\cos v, e, 1\right)} \cdot \frac{\sin v}{1 - e \cdot \cos v}\right) \cdot \left(1 - e \cdot \cos v\right)\]
\frac{e \cdot \sin v}{1 + e \cdot \cos v}
\left(\frac{e}{\mathsf{fma}\left(\cos v, e, 1\right)} \cdot \frac{\sin v}{1 - e \cdot \cos v}\right) \cdot \left(1 - e \cdot \cos v\right)
double f(double e, double v) {
        double r18369 = e;
        double r18370 = v;
        double r18371 = sin(r18370);
        double r18372 = r18369 * r18371;
        double r18373 = 1.0;
        double r18374 = cos(r18370);
        double r18375 = r18369 * r18374;
        double r18376 = r18373 + r18375;
        double r18377 = r18372 / r18376;
        return r18377;
}

double f(double e, double v) {
        double r18378 = e;
        double r18379 = v;
        double r18380 = cos(r18379);
        double r18381 = 1.0;
        double r18382 = fma(r18380, r18378, r18381);
        double r18383 = r18378 / r18382;
        double r18384 = sin(r18379);
        double r18385 = r18378 * r18380;
        double r18386 = r18381 - r18385;
        double r18387 = r18384 / r18386;
        double r18388 = r18383 * r18387;
        double r18389 = r18388 * r18386;
        return r18389;
}

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

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

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

Reproduce

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