r \cdot \frac{\sin b}{\cos \left(a + b\right)}r \cdot \frac{\sin b}{\cos a \cdot \cos b - \mathsf{expm1}\left(\mathsf{log1p}\left(\sin a \cdot \sin b\right)\right)}double f(double r, double a, double b) {
double r17681 = r;
double r17682 = b;
double r17683 = sin(r17682);
double r17684 = a;
double r17685 = r17684 + r17682;
double r17686 = cos(r17685);
double r17687 = r17683 / r17686;
double r17688 = r17681 * r17687;
return r17688;
}
double f(double r, double a, double b) {
double r17689 = r;
double r17690 = b;
double r17691 = sin(r17690);
double r17692 = a;
double r17693 = cos(r17692);
double r17694 = cos(r17690);
double r17695 = r17693 * r17694;
double r17696 = sin(r17692);
double r17697 = r17696 * r17691;
double r17698 = log1p(r17697);
double r17699 = expm1(r17698);
double r17700 = r17695 - r17699;
double r17701 = r17691 / r17700;
double r17702 = r17689 * r17701;
return r17702;
}



Bits error versus r



Bits error versus a



Bits error versus b
Results
Initial program 15.0
rmApplied cos-sum0.3
rmApplied expm1-log1p-u0.3
Final simplification0.3
herbie shell --seed 2019346 +o rules:numerics
(FPCore (r a b)
:name "r*sin(b)/cos(a+b), B"
:precision binary64
(* r (/ (sin b) (cos (+ a b)))))