r \cdot \frac{\sin b}{\cos \left(a + b\right)}\frac{\frac{r}{\sin b \cdot \sin a + \cos a \cdot \cos b} \cdot \frac{\left(\cos a \cdot \cos b - \sin b \cdot \sin a\right) \cdot \left(\sin b \cdot \sin a + \cos a \cdot \cos b\right)}{\cos a \cdot \cos b - \sin b \cdot \sin a}}{\cos a \cdot \cos b - \sin b \cdot \sin a} \cdot \sin bdouble f(double r, double a, double b) {
double r31047 = r;
double r31048 = b;
double r31049 = sin(r31048);
double r31050 = a;
double r31051 = r31050 + r31048;
double r31052 = cos(r31051);
double r31053 = r31049 / r31052;
double r31054 = r31047 * r31053;
return r31054;
}
double f(double r, double a, double b) {
double r31055 = r;
double r31056 = b;
double r31057 = sin(r31056);
double r31058 = a;
double r31059 = sin(r31058);
double r31060 = r31057 * r31059;
double r31061 = cos(r31058);
double r31062 = cos(r31056);
double r31063 = r31061 * r31062;
double r31064 = r31060 + r31063;
double r31065 = r31055 / r31064;
double r31066 = r31063 - r31060;
double r31067 = r31066 * r31064;
double r31068 = r31067 / r31066;
double r31069 = r31065 * r31068;
double r31070 = r31069 / r31066;
double r31071 = r31070 * r31057;
return r31071;
}



Bits error versus r



Bits error versus a



Bits error versus b
Results
Initial program 15.4
Simplified15.4
rmApplied cos-sum0.3
Simplified0.3
Simplified0.3
rmApplied flip--0.4
Applied associate-/r/0.5
Simplified0.4
rmApplied flip-+0.5
Applied associate-*r/0.4
Simplified0.4
Final simplification0.4
herbie shell --seed 2019174
(FPCore (r a b)
:name "r*sin(b)/cos(a+b), B"
(* r (/ (sin b) (cos (+ a b)))))