r \cdot \frac{\sin b}{\cos \left(a + b\right)}\frac{r \cdot \sin b}{\mathsf{log1p}\left(\mathsf{expm1}\left(\mathsf{fma}\left(\cos a, \cos b, -\sin a \cdot \sin b\right)\right)\right)}double f(double r, double a, double b) {
double r16594 = r;
double r16595 = b;
double r16596 = sin(r16595);
double r16597 = a;
double r16598 = r16597 + r16595;
double r16599 = cos(r16598);
double r16600 = r16596 / r16599;
double r16601 = r16594 * r16600;
return r16601;
}
double f(double r, double a, double b) {
double r16602 = r;
double r16603 = b;
double r16604 = sin(r16603);
double r16605 = r16602 * r16604;
double r16606 = a;
double r16607 = cos(r16606);
double r16608 = cos(r16603);
double r16609 = sin(r16606);
double r16610 = r16609 * r16604;
double r16611 = -r16610;
double r16612 = fma(r16607, r16608, r16611);
double r16613 = expm1(r16612);
double r16614 = log1p(r16613);
double r16615 = r16605 / r16614;
return r16615;
}



Bits error versus r



Bits error versus a



Bits error versus b
Initial program 15.3
rmApplied cos-sum0.3
rmApplied associate-*r/0.3
rmApplied fma-neg0.3
rmApplied log1p-expm1-u0.4
Final simplification0.4
herbie shell --seed 2020018 +o rules:numerics
(FPCore (r a b)
:name "r*sin(b)/cos(a+b), B"
:precision binary64
(* r (/ (sin b) (cos (+ a b)))))