\frac{r \cdot \sin b}{\cos \left(a + b\right)}r \cdot \frac{-\sin b}{\mathsf{fma}\left(\cos a, -\cos b, \mathsf{expm1}\left(\mathsf{log1p}\left(\sin b \cdot \sin a\right)\right)\right)}double f(double r, double a, double b) {
double r25793 = r;
double r25794 = b;
double r25795 = sin(r25794);
double r25796 = r25793 * r25795;
double r25797 = a;
double r25798 = r25797 + r25794;
double r25799 = cos(r25798);
double r25800 = r25796 / r25799;
return r25800;
}
double f(double r, double a, double b) {
double r25801 = r;
double r25802 = b;
double r25803 = sin(r25802);
double r25804 = -r25803;
double r25805 = a;
double r25806 = cos(r25805);
double r25807 = cos(r25802);
double r25808 = -r25807;
double r25809 = sin(r25805);
double r25810 = r25803 * r25809;
double r25811 = log1p(r25810);
double r25812 = expm1(r25811);
double r25813 = fma(r25806, r25808, r25812);
double r25814 = r25804 / r25813;
double r25815 = r25801 * r25814;
return r25815;
}



Bits error versus r



Bits error versus a



Bits error versus b
Initial program 15.3
rmApplied cos-sum0.3
rmApplied frac-2neg0.3
Simplified0.3
rmApplied *-un-lft-identity0.3
Applied distribute-rgt-neg-in0.3
Applied times-frac0.3
Simplified0.3
rmApplied expm1-log1p-u0.3
Final simplification0.3
herbie shell --seed 2019326 +o rules:numerics
(FPCore (r a b)
:name "r*sin(b)/cos(a+b), A"
:precision binary64
(/ (* r (sin b)) (cos (+ a b))))