\frac{r \cdot \sin b}{\cos \left(a + b\right)}\frac{r \cdot \sin b}{\mathsf{expm1}\left(\mathsf{log1p}\left(\mathsf{fma}\left(\cos a, \cos b, -\sin a \cdot \sin b\right)\right)\right)}double f(double r, double a, double b) {
double r16522 = r;
double r16523 = b;
double r16524 = sin(r16523);
double r16525 = r16522 * r16524;
double r16526 = a;
double r16527 = r16526 + r16523;
double r16528 = cos(r16527);
double r16529 = r16525 / r16528;
return r16529;
}
double f(double r, double a, double b) {
double r16530 = r;
double r16531 = b;
double r16532 = sin(r16531);
double r16533 = r16530 * r16532;
double r16534 = a;
double r16535 = cos(r16534);
double r16536 = cos(r16531);
double r16537 = sin(r16534);
double r16538 = r16537 * r16532;
double r16539 = -r16538;
double r16540 = fma(r16535, r16536, r16539);
double r16541 = log1p(r16540);
double r16542 = expm1(r16541);
double r16543 = r16533 / r16542;
return r16543;
}



Bits error versus r



Bits error versus a



Bits error versus b
Initial program 15.2
rmApplied cos-sum0.3
rmApplied fma-neg0.3
rmApplied expm1-log1p-u0.4
Final simplification0.4
herbie shell --seed 2020018 +o rules:numerics
(FPCore (r a b)
:name "r*sin(b)/cos(a+b), A"
:precision binary64
(/ (* r (sin b)) (cos (+ a b))))