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 r25775 = r;
double r25776 = b;
double r25777 = sin(r25776);
double r25778 = a;
double r25779 = r25778 + r25776;
double r25780 = cos(r25779);
double r25781 = r25777 / r25780;
double r25782 = r25775 * r25781;
return r25782;
}
double f(double r, double a, double b) {
double r25783 = r;
double r25784 = b;
double r25785 = sin(r25784);
double r25786 = r25783 * r25785;
double r25787 = a;
double r25788 = cos(r25787);
double r25789 = cos(r25784);
double r25790 = sin(r25787);
double r25791 = r25790 * r25785;
double r25792 = expm1(r25791);
double r25793 = log1p(r25792);
double r25794 = -r25793;
double r25795 = fma(r25788, r25789, r25794);
double r25796 = r25786 / r25795;
return r25796;
}



Bits error versus r



Bits error versus a



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