\frac{r \cdot \sin b}{\cos \left(a + b\right)}r \cdot \frac{\sin b}{\cos b \cdot \cos a - \mathsf{log1p}\left(\mathsf{expm1}\left(\sin a \cdot \sin b\right)\right)}double f(double r, double a, double b) {
double r16471 = r;
double r16472 = b;
double r16473 = sin(r16472);
double r16474 = r16471 * r16473;
double r16475 = a;
double r16476 = r16475 + r16472;
double r16477 = cos(r16476);
double r16478 = r16474 / r16477;
return r16478;
}
double f(double r, double a, double b) {
double r16479 = r;
double r16480 = b;
double r16481 = sin(r16480);
double r16482 = cos(r16480);
double r16483 = a;
double r16484 = cos(r16483);
double r16485 = r16482 * r16484;
double r16486 = sin(r16483);
double r16487 = r16486 * r16481;
double r16488 = expm1(r16487);
double r16489 = log1p(r16488);
double r16490 = r16485 - r16489;
double r16491 = r16481 / r16490;
double r16492 = r16479 * r16491;
return r16492;
}



Bits error versus r



Bits error versus a



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