\frac{e \cdot \sin v}{1 + e \cdot \cos v}\mathsf{log1p}\left(\mathsf{expm1}\left(\frac{1}{\frac{\mathsf{fma}\left(\cos v, e, 1\right)}{e}} \cdot \sin v\right)\right)double f(double e, double v) {
double r23432 = e;
double r23433 = v;
double r23434 = sin(r23433);
double r23435 = r23432 * r23434;
double r23436 = 1.0;
double r23437 = cos(r23433);
double r23438 = r23432 * r23437;
double r23439 = r23436 + r23438;
double r23440 = r23435 / r23439;
return r23440;
}
double f(double e, double v) {
double r23441 = 1.0;
double r23442 = v;
double r23443 = cos(r23442);
double r23444 = e;
double r23445 = 1.0;
double r23446 = fma(r23443, r23444, r23445);
double r23447 = r23446 / r23444;
double r23448 = r23441 / r23447;
double r23449 = sin(r23442);
double r23450 = r23448 * r23449;
double r23451 = expm1(r23450);
double r23452 = log1p(r23451);
return r23452;
}



Bits error versus e



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