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 r1071758 = r;
double r1071759 = b;
double r1071760 = sin(r1071759);
double r1071761 = a;
double r1071762 = r1071761 + r1071759;
double r1071763 = cos(r1071762);
double r1071764 = r1071760 / r1071763;
double r1071765 = r1071758 * r1071764;
return r1071765;
}
double f(double r, double a, double b) {
double r1071766 = r;
double r1071767 = b;
double r1071768 = sin(r1071767);
double r1071769 = r1071766 * r1071768;
double r1071770 = a;
double r1071771 = cos(r1071770);
double r1071772 = cos(r1071767);
double r1071773 = sin(r1071770);
double r1071774 = r1071773 * r1071768;
double r1071775 = expm1(r1071774);
double r1071776 = log1p(r1071775);
double r1071777 = -r1071776;
double r1071778 = fma(r1071771, r1071772, r1071777);
double r1071779 = r1071769 / r1071778;
return r1071779;
}



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)))))