r \cdot \frac{\sin b}{\cos \left(a + b\right)}r \cdot \left(\frac{\sin b}{\frac{\cos a \cdot \cos b - \sin a \cdot \sin b}{\cos a \cdot \cos b + \sin a \cdot \sin b}} \cdot \frac{1}{\cos a \cdot \cos b + \sin a \cdot \sin b}\right)double f(double r, double a, double b) {
double r932567 = r;
double r932568 = b;
double r932569 = sin(r932568);
double r932570 = a;
double r932571 = r932570 + r932568;
double r932572 = cos(r932571);
double r932573 = r932569 / r932572;
double r932574 = r932567 * r932573;
return r932574;
}
double f(double r, double a, double b) {
double r932575 = r;
double r932576 = b;
double r932577 = sin(r932576);
double r932578 = a;
double r932579 = cos(r932578);
double r932580 = cos(r932576);
double r932581 = r932579 * r932580;
double r932582 = sin(r932578);
double r932583 = r932582 * r932577;
double r932584 = r932581 - r932583;
double r932585 = r932581 + r932583;
double r932586 = r932584 / r932585;
double r932587 = r932577 / r932586;
double r932588 = 1.0;
double r932589 = r932588 / r932585;
double r932590 = r932587 * r932589;
double r932591 = r932575 * r932590;
return r932591;
}



Bits error versus r



Bits error versus a



Bits error versus b
Results
Initial program 15.1
rmApplied cos-sum0.3
rmApplied flip--0.4
rmApplied *-un-lft-identity0.4
Applied difference-of-squares0.3
Applied times-frac0.3
Applied *-un-lft-identity0.3
Applied times-frac0.4
Final simplification0.4
herbie shell --seed 2019146 +o rules:numerics
(FPCore (r a b)
:name "r*sin(b)/cos(a+b), B"
(* r (/ (sin b) (cos (+ a b)))))