\frac{r \cdot \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 r1058263 = r;
double r1058264 = b;
double r1058265 = sin(r1058264);
double r1058266 = r1058263 * r1058265;
double r1058267 = a;
double r1058268 = r1058267 + r1058264;
double r1058269 = cos(r1058268);
double r1058270 = r1058266 / r1058269;
return r1058270;
}
double f(double r, double a, double b) {
double r1058271 = r;
double r1058272 = b;
double r1058273 = sin(r1058272);
double r1058274 = r1058271 * r1058273;
double r1058275 = a;
double r1058276 = cos(r1058275);
double r1058277 = cos(r1058272);
double r1058278 = -r1058273;
double r1058279 = sin(r1058275);
double r1058280 = r1058278 * r1058279;
double r1058281 = fma(r1058276, r1058277, r1058280);
double r1058282 = r1058279 * r1058273;
double r1058283 = expm1(r1058282);
double r1058284 = log1p(r1058283);
double r1058285 = fma(r1058278, r1058279, r1058284);
double r1058286 = r1058281 + r1058285;
double r1058287 = r1058274 / r1058286;
return r1058287;
}



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 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), A"
(/ (* r (sin b)) (cos (+ a b))))