r \cdot \frac{\sin b}{\cos \left(a + b\right)}\frac{\frac{r \cdot \sin b}{\mathsf{fma}\left(\cos a, \cos b, \sin a \cdot \sin b\right)}}{\cos a \cdot \cos b - \sin b \cdot \sin a} \cdot \left(\cos a \cdot \cos b + \mathsf{log1p}\left(\mathsf{expm1}\left(\sin b \cdot \sin a\right)\right)\right)double f(double r, double a, double b) {
double r26771 = r;
double r26772 = b;
double r26773 = sin(r26772);
double r26774 = a;
double r26775 = r26774 + r26772;
double r26776 = cos(r26775);
double r26777 = r26773 / r26776;
double r26778 = r26771 * r26777;
return r26778;
}
double f(double r, double a, double b) {
double r26779 = r;
double r26780 = b;
double r26781 = sin(r26780);
double r26782 = r26779 * r26781;
double r26783 = a;
double r26784 = cos(r26783);
double r26785 = cos(r26780);
double r26786 = sin(r26783);
double r26787 = r26786 * r26781;
double r26788 = fma(r26784, r26785, r26787);
double r26789 = r26782 / r26788;
double r26790 = r26784 * r26785;
double r26791 = r26781 * r26786;
double r26792 = r26790 - r26791;
double r26793 = r26789 / r26792;
double r26794 = expm1(r26791);
double r26795 = log1p(r26794);
double r26796 = r26790 + r26795;
double r26797 = r26793 * r26796;
return r26797;
}



Bits error versus r



Bits error versus a



Bits error versus b
Initial program 15.0
rmApplied cos-sum0.3
Simplified0.3
rmApplied log1p-expm1-u0.3
rmApplied flip--0.4
Applied associate-/r/0.4
Applied associate-*r*0.4
Simplified0.4
Final simplification0.4
herbie shell --seed 2019199 +o rules:numerics
(FPCore (r a b)
:name "r*sin(b)/cos(a+b), B"
(* r (/ (sin b) (cos (+ a b)))))