\frac{e \cdot \sin v}{1 + e \cdot \cos v}\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{\sin v}{\mathsf{fma}\left(\cos v, e, 1\right)}\right)\right) \cdot edouble f(double e, double v) {
double r1026441 = e;
double r1026442 = v;
double r1026443 = sin(r1026442);
double r1026444 = r1026441 * r1026443;
double r1026445 = 1.0;
double r1026446 = cos(r1026442);
double r1026447 = r1026441 * r1026446;
double r1026448 = r1026445 + r1026447;
double r1026449 = r1026444 / r1026448;
return r1026449;
}
double f(double e, double v) {
double r1026450 = v;
double r1026451 = sin(r1026450);
double r1026452 = cos(r1026450);
double r1026453 = e;
double r1026454 = 1.0;
double r1026455 = fma(r1026452, r1026453, r1026454);
double r1026456 = r1026451 / r1026455;
double r1026457 = log1p(r1026456);
double r1026458 = expm1(r1026457);
double r1026459 = r1026458 * r1026453;
return r1026459;
}



Bits error versus e



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