\frac{r \cdot \sin b}{\cos \left(a + b\right)}\frac{r \cdot \sin b}{\mathsf{expm1}\left(\mathsf{log1p}\left(\cos a \cdot \cos b - \sin b \cdot \sin a\right)\right)}double f(double r, double a, double b) {
double r1014726 = r;
double r1014727 = b;
double r1014728 = sin(r1014727);
double r1014729 = r1014726 * r1014728;
double r1014730 = a;
double r1014731 = r1014730 + r1014727;
double r1014732 = cos(r1014731);
double r1014733 = r1014729 / r1014732;
return r1014733;
}
double f(double r, double a, double b) {
double r1014734 = r;
double r1014735 = b;
double r1014736 = sin(r1014735);
double r1014737 = r1014734 * r1014736;
double r1014738 = a;
double r1014739 = cos(r1014738);
double r1014740 = cos(r1014735);
double r1014741 = r1014739 * r1014740;
double r1014742 = sin(r1014738);
double r1014743 = r1014736 * r1014742;
double r1014744 = r1014741 - r1014743;
double r1014745 = log1p(r1014744);
double r1014746 = expm1(r1014745);
double r1014747 = r1014737 / r1014746;
return r1014747;
}



Bits error versus r



Bits error versus a



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