\frac{r \cdot \sin b}{\cos \left(a + b\right)}r \cdot \frac{\sin b}{\mathsf{fma}\left(\cos b, \cos a, -\mathsf{expm1}\left(\mathsf{log1p}\left(\sin a \cdot \sin b\right)\right)\right)}double f(double r, double a, double b) {
double r17499 = r;
double r17500 = b;
double r17501 = sin(r17500);
double r17502 = r17499 * r17501;
double r17503 = a;
double r17504 = r17503 + r17500;
double r17505 = cos(r17504);
double r17506 = r17502 / r17505;
return r17506;
}
double f(double r, double a, double b) {
double r17507 = r;
double r17508 = b;
double r17509 = sin(r17508);
double r17510 = cos(r17508);
double r17511 = a;
double r17512 = cos(r17511);
double r17513 = sin(r17511);
double r17514 = r17513 * r17509;
double r17515 = log1p(r17514);
double r17516 = expm1(r17515);
double r17517 = -r17516;
double r17518 = fma(r17510, r17512, r17517);
double r17519 = r17509 / r17518;
double r17520 = r17507 * r17519;
return r17520;
}



Bits error versus r



Bits error versus a



Bits error versus b
Initial program 15.2
rmApplied cos-sum0.3
rmApplied *-un-lft-identity0.3
Applied times-frac0.3
Simplified0.3
Simplified0.3
rmApplied fma-neg0.3
rmApplied expm1-log1p-u0.3
Final simplification0.3
herbie shell --seed 2020064 +o rules:numerics
(FPCore (r a b)
:name "r*sin(b)/cos(a+b), A"
:precision binary64
(/ (* r (sin b)) (cos (+ a b))))