double f(double e, double v) {
double r3208612 = e;
double r3208613 = v;
double r3208614 = sin(r3208613);
double r3208615 = r3208612 * r3208614;
double r3208616 = 1.0;
double r3208617 = cos(r3208613);
double r3208618 = r3208612 * r3208617;
double r3208619 = r3208616 + r3208618;
double r3208620 = r3208615 / r3208619;
return r3208620;
}
double f(double e, double v) {
double r3208621 = e;
double r3208622 = v;
double r3208623 = cos(r3208622);
double r3208624 = 1.0;
double r3208625 = fma(r3208623, r3208621, r3208624);
double r3208626 = r3208621 / r3208625;
double r3208627 = sin(r3208622);
double r3208628 = r3208626 * r3208627;
double r3208629 = log1p(r3208628);
double r3208630 = expm1(r3208629);
return r3208630;
}
\frac{e \cdot \sin v}{1 + e \cdot \cos v}(e^{\log_* (1 + \frac{e}{(\left(\cos v\right) \cdot e + 1)_*} \cdot \sin v)} - 1)^*


Bits error versus e



Bits error versus v
Initial program 0.1
Simplified0.1
rmApplied expm1-log1p-u0.1
Final simplification0.1
herbie shell --seed 2019102 +o rules:numerics
(FPCore (e v)
:name "Trigonometry A"
:pre (<= 0 e 1)
(/ (* e (sin v)) (+ 1 (* e (cos v)))))