Average Error: 0.1 → 0.1
Time: 55.6s
Precision: 64
\[0 \le e \le 1\]
\[\frac{e \cdot \sin v}{1 + e \cdot \cos v}\]
\[\frac{e}{(\left(\cos v\right) \cdot e + 1)_*} \cdot \sin v\]
\frac{e \cdot \sin v}{1 + e \cdot \cos v}
\frac{e}{(\left(\cos v\right) \cdot e + 1)_*} \cdot \sin v
double f(double e, double v) {
        double r1847034 = e;
        double r1847035 = v;
        double r1847036 = sin(r1847035);
        double r1847037 = r1847034 * r1847036;
        double r1847038 = 1.0;
        double r1847039 = cos(r1847035);
        double r1847040 = r1847034 * r1847039;
        double r1847041 = r1847038 + r1847040;
        double r1847042 = r1847037 / r1847041;
        return r1847042;
}

double f(double e, double v) {
        double r1847043 = e;
        double r1847044 = v;
        double r1847045 = cos(r1847044);
        double r1847046 = 1.0;
        double r1847047 = fma(r1847045, r1847043, r1847046);
        double r1847048 = r1847043 / r1847047;
        double r1847049 = sin(r1847044);
        double r1847050 = r1847048 * r1847049;
        return r1847050;
}

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

    \[\leadsto \color{blue}{\frac{e}{(\left(\cos v\right) \cdot e + 1)_*} \cdot \sin v}\]
  3. Final simplification0.1

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

Reproduce

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