r \cdot \frac{\sin b}{\cos \left(a + b\right)}\frac{r}{1 \cdot \mathsf{fma}\left(\frac{\cos a}{\sin b}, \cos b, -\sin a\right)}double f(double r, double a, double b) {
double r18395 = r;
double r18396 = b;
double r18397 = sin(r18396);
double r18398 = a;
double r18399 = r18398 + r18396;
double r18400 = cos(r18399);
double r18401 = r18397 / r18400;
double r18402 = r18395 * r18401;
return r18402;
}
double f(double r, double a, double b) {
double r18403 = r;
double r18404 = 1.0;
double r18405 = a;
double r18406 = cos(r18405);
double r18407 = b;
double r18408 = sin(r18407);
double r18409 = r18406 / r18408;
double r18410 = cos(r18407);
double r18411 = sin(r18405);
double r18412 = -r18411;
double r18413 = fma(r18409, r18410, r18412);
double r18414 = r18404 * r18413;
double r18415 = r18403 / r18414;
return r18415;
}



Bits error versus r



Bits error versus a



Bits error versus b
Initial program 15.1
rmApplied cos-sum0.3
rmApplied associate-*r/0.3
rmApplied associate-/l*0.4
rmApplied *-un-lft-identity0.4
Applied *-un-lft-identity0.4
Applied times-frac0.4
Simplified0.4
Simplified0.4
Final simplification0.4
herbie shell --seed 2020100 +o rules:numerics
(FPCore (r a b)
:name "r*sin(b)/cos(a+b), B"
:precision binary64
(* r (/ (sin b) (cos (+ a b)))))