\frac{r \cdot \sin b}{\cos \left(a + b\right)}\frac{r}{\mathsf{fma}\left(\cos b, \cos a, \sin a \cdot \sin b\right)} \cdot \frac{\sin b \cdot \mathsf{fma}\left(\cos a, \cos b, \sin a \cdot \sin b\right)}{\cos b \cdot \cos a - \sin a \cdot \sin b}double code(double r, double a, double b) {
return ((r * sin(b)) / cos((a + b)));
}
double code(double r, double a, double b) {
return ((r / fma(cos(b), cos(a), (sin(a) * sin(b)))) * ((sin(b) * fma(cos(a), cos(b), (sin(a) * sin(b)))) / ((cos(b) * cos(a)) - (sin(a) * sin(b)))));
}



Bits error versus r



Bits error versus a



Bits error versus b
Results
Initial program 15.0
rmApplied cos-sum0.3
rmApplied flip--0.4
Applied associate-/r/0.4
Simplified0.5
rmApplied associate-*l*0.4
Simplified0.4
Final simplification0.4
herbie shell --seed 2020049 +o rules:numerics
(FPCore (r a b)
:name "r*sin(b)/cos(a+b), A"
:precision binary64
(/ (* r (sin b)) (cos (+ a b))))