r \cdot \frac{\sin b}{\cos \left(a + b\right)}\frac{r \cdot \sin b}{\mathsf{fma}\left(\cos a, \cos b, \left(-\sin b\right) \cdot \sin a\right) + \mathsf{fma}\left(-\sin b, \sin a, \mathsf{log1p}\left(\mathsf{expm1}\left(\sin a \cdot \sin b\right)\right)\right)}double f(double r, double a, double b) {
double r881303 = r;
double r881304 = b;
double r881305 = sin(r881304);
double r881306 = a;
double r881307 = r881306 + r881304;
double r881308 = cos(r881307);
double r881309 = r881305 / r881308;
double r881310 = r881303 * r881309;
return r881310;
}
double f(double r, double a, double b) {
double r881311 = r;
double r881312 = b;
double r881313 = sin(r881312);
double r881314 = r881311 * r881313;
double r881315 = a;
double r881316 = cos(r881315);
double r881317 = cos(r881312);
double r881318 = -r881313;
double r881319 = sin(r881315);
double r881320 = r881318 * r881319;
double r881321 = fma(r881316, r881317, r881320);
double r881322 = r881319 * r881313;
double r881323 = expm1(r881322);
double r881324 = log1p(r881323);
double r881325 = fma(r881318, r881319, r881324);
double r881326 = r881321 + r881325;
double r881327 = r881314 / r881326;
return r881327;
}



Bits error versus r



Bits error versus a



Bits error versus b
Initial program 14.8
rmApplied cos-sum0.3
rmApplied prod-diff0.3
rmApplied associate-*r/0.3
rmApplied log1p-expm1-u0.3
Final simplification0.3
herbie shell --seed 2019135 +o rules:numerics
(FPCore (r a b)
:name "r*sin(b)/cos(a+b), B"
(* r (/ (sin b) (cos (+ a b)))))