r \cdot \frac{\sin b}{\cos \left(a + b\right)}\frac{r \cdot \sin b}{\left(\cos a \cdot \cos b\right) \cdot \left(\cos a \cdot \cos b\right) - \left(\left(\sin b \cdot \sin a\right) \cdot \sin b\right) \cdot \sin a} \cdot \left(\cos a \cdot \cos b + \sin b \cdot \sin a\right)double f(double r, double a, double b) {
double r27202 = r;
double r27203 = b;
double r27204 = sin(r27203);
double r27205 = a;
double r27206 = r27205 + r27203;
double r27207 = cos(r27206);
double r27208 = r27204 / r27207;
double r27209 = r27202 * r27208;
return r27209;
}
double f(double r, double a, double b) {
double r27210 = r;
double r27211 = b;
double r27212 = sin(r27211);
double r27213 = r27210 * r27212;
double r27214 = a;
double r27215 = cos(r27214);
double r27216 = cos(r27211);
double r27217 = r27215 * r27216;
double r27218 = r27217 * r27217;
double r27219 = sin(r27214);
double r27220 = r27212 * r27219;
double r27221 = r27220 * r27212;
double r27222 = r27221 * r27219;
double r27223 = r27218 - r27222;
double r27224 = r27213 / r27223;
double r27225 = r27217 + r27220;
double r27226 = r27224 * r27225;
return r27226;
}



Bits error versus r



Bits error versus a



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