r \cdot \frac{\sin b}{\cos \left(a + b\right)}\frac{r \cdot \sin b}{\mathsf{fma}\left(\cos a, \cos b, -\mathsf{log1p}\left(\mathsf{expm1}\left(\sin a \cdot \sin b\right)\right)\right)}double f(double r, double a, double b) {
double r1071732 = r;
double r1071733 = b;
double r1071734 = sin(r1071733);
double r1071735 = a;
double r1071736 = r1071735 + r1071733;
double r1071737 = cos(r1071736);
double r1071738 = r1071734 / r1071737;
double r1071739 = r1071732 * r1071738;
return r1071739;
}
double f(double r, double a, double b) {
double r1071740 = r;
double r1071741 = b;
double r1071742 = sin(r1071741);
double r1071743 = r1071740 * r1071742;
double r1071744 = a;
double r1071745 = cos(r1071744);
double r1071746 = cos(r1071741);
double r1071747 = sin(r1071744);
double r1071748 = r1071747 * r1071742;
double r1071749 = expm1(r1071748);
double r1071750 = log1p(r1071749);
double r1071751 = -r1071750;
double r1071752 = fma(r1071745, r1071746, r1071751);
double r1071753 = r1071743 / r1071752;
return r1071753;
}



Bits error versus r



Bits error versus a



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