\frac{r \cdot \sin b}{\cos \left(a + b\right)}r \cdot \frac{\sin b}{\mathsf{log1p}\left(\mathsf{expm1}\left(\cos b \cdot \cos a\right)\right) - \sin a \cdot \sin b}double f(double r, double a, double b) {
double r17002 = r;
double r17003 = b;
double r17004 = sin(r17003);
double r17005 = r17002 * r17004;
double r17006 = a;
double r17007 = r17006 + r17003;
double r17008 = cos(r17007);
double r17009 = r17005 / r17008;
return r17009;
}
double f(double r, double a, double b) {
double r17010 = r;
double r17011 = b;
double r17012 = sin(r17011);
double r17013 = cos(r17011);
double r17014 = a;
double r17015 = cos(r17014);
double r17016 = r17013 * r17015;
double r17017 = expm1(r17016);
double r17018 = log1p(r17017);
double r17019 = sin(r17014);
double r17020 = r17019 * r17012;
double r17021 = r17018 - r17020;
double r17022 = r17012 / r17021;
double r17023 = r17010 * r17022;
return r17023;
}



Bits error versus r



Bits error versus a



Bits error versus b
Results
Initial program 14.9
rmApplied cos-sum0.3
rmApplied *-un-lft-identity0.3
Applied times-frac0.3
Simplified0.3
Simplified0.3
rmApplied log1p-expm1-u0.4
Final simplification0.4
herbie shell --seed 2020083 +o rules:numerics
(FPCore (r a b)
:name "r*sin(b)/cos(a+b), A"
:precision binary64
(/ (* r (sin b)) (cos (+ a b))))