r \cdot \frac{\sin b}{\cos \left(a + b\right)}\frac{\sin b}{\cos a \cdot \cos b - \mathsf{expm1}\left(\mathsf{log1p}\left(\sin a \cdot \sin b\right)\right)} \cdot rdouble f(double r, double a, double b) {
double r413626 = r;
double r413627 = b;
double r413628 = sin(r413627);
double r413629 = a;
double r413630 = r413629 + r413627;
double r413631 = cos(r413630);
double r413632 = r413628 / r413631;
double r413633 = r413626 * r413632;
return r413633;
}
double f(double r, double a, double b) {
double r413634 = b;
double r413635 = sin(r413634);
double r413636 = a;
double r413637 = cos(r413636);
double r413638 = cos(r413634);
double r413639 = r413637 * r413638;
double r413640 = sin(r413636);
double r413641 = r413640 * r413635;
double r413642 = log1p(r413641);
double r413643 = expm1(r413642);
double r413644 = r413639 - r413643;
double r413645 = r413635 / r413644;
double r413646 = r;
double r413647 = r413645 * r413646;
return r413647;
}



Bits error versus r



Bits error versus a



Bits error versus b
Results
Initial program 14.8
rmApplied cos-sum0.3
rmApplied div-inv0.4
Applied associate-*r*0.4
rmApplied associate-*l*0.4
Simplified0.3
rmApplied expm1-log1p-u0.3
Final simplification0.3
herbie shell --seed 2019154 +o rules:numerics
(FPCore (r a b)
:name "r*sin(b)/cos(a+b), B"
(* r (/ (sin b) (cos (+ a b)))))