\frac{r \cdot \sin b}{\cos \left(a + b\right)}\frac{r \cdot \sin b}{\cos a \cdot \cos b - \mathsf{expm1}\left(\mathsf{log1p}\left(\sin b \cdot \sin a\right)\right)}double f(double r, double a, double b) {
double r450980 = r;
double r450981 = b;
double r450982 = sin(r450981);
double r450983 = r450980 * r450982;
double r450984 = a;
double r450985 = r450984 + r450981;
double r450986 = cos(r450985);
double r450987 = r450983 / r450986;
return r450987;
}
double f(double r, double a, double b) {
double r450988 = r;
double r450989 = b;
double r450990 = sin(r450989);
double r450991 = r450988 * r450990;
double r450992 = a;
double r450993 = cos(r450992);
double r450994 = cos(r450989);
double r450995 = r450993 * r450994;
double r450996 = sin(r450992);
double r450997 = r450990 * r450996;
double r450998 = log1p(r450997);
double r450999 = expm1(r450998);
double r451000 = r450995 - r450999;
double r451001 = r450991 / r451000;
return r451001;
}



Bits error versus r



Bits error versus a



Bits error versus b
Results
Initial program 14.7
rmApplied cos-sum0.3
rmApplied expm1-log1p-u0.3
Final simplification0.3
herbie shell --seed 2019156 +o rules:numerics
(FPCore (r a b)
:name "r*sin(b)/cos(a+b), A"
(/ (* r (sin b)) (cos (+ a b))))