\frac{r \cdot \sin b}{\cos \left(a + b\right)}\frac{r}{\frac{\cos a \cdot \cos b - \mathsf{expm1}\left(\mathsf{log1p}\left(\sin a \cdot \sin b\right)\right)}{\sin b}}double f(double r, double a, double b) {
double r20047 = r;
double r20048 = b;
double r20049 = sin(r20048);
double r20050 = r20047 * r20049;
double r20051 = a;
double r20052 = r20051 + r20048;
double r20053 = cos(r20052);
double r20054 = r20050 / r20053;
return r20054;
}
double f(double r, double a, double b) {
double r20055 = r;
double r20056 = a;
double r20057 = cos(r20056);
double r20058 = b;
double r20059 = cos(r20058);
double r20060 = r20057 * r20059;
double r20061 = sin(r20056);
double r20062 = sin(r20058);
double r20063 = r20061 * r20062;
double r20064 = log1p(r20063);
double r20065 = expm1(r20064);
double r20066 = r20060 - r20065;
double r20067 = r20066 / r20062;
double r20068 = r20055 / r20067;
return r20068;
}



Bits error versus r



Bits error versus a



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