double f(double r, double a, double b) {
double r971566 = r;
double r971567 = b;
double r971568 = sin(r971567);
double r971569 = r971566 * r971568;
double r971570 = a;
double r971571 = r971570 + r971567;
double r971572 = cos(r971571);
double r971573 = r971569 / r971572;
return r971573;
}
double f(double r, double a, double b) {
double r971574 = r;
double r971575 = b;
double r971576 = sin(r971575);
double r971577 = r971574 * r971576;
double r971578 = a;
double r971579 = cos(r971578);
double r971580 = cos(r971575);
double r971581 = sin(r971578);
double r971582 = r971581 * r971576;
double r971583 = log1p(r971582);
double r971584 = expm1(r971583);
double r971585 = -r971584;
double r971586 = fma(r971579, r971580, r971585);
double r971587 = r971577 / r971586;
return r971587;
}
\frac{r \cdot \sin b}{\cos \left(a + b\right)}\frac{r \cdot \sin b}{(\left(\cos a\right) \cdot \left(\cos b\right) + \left(-(e^{\log_* (1 + \sin a \cdot \sin b)} - 1)^*\right))_*}


Bits error versus r



Bits error versus a



Bits error versus b
Initial program 15.0
rmApplied cos-sum0.3
rmApplied fma-neg0.3
rmApplied expm1-log1p-u0.3
Final simplification0.3
herbie shell --seed 2019102 +o rules:numerics
(FPCore (r a b)
:name "r*sin(b)/cos(a+b), A"
(/ (* r (sin b)) (cos (+ a b))))