r \cdot \frac{\sin b}{\cos \left(a + b\right)}\sin b \cdot \frac{r}{\cos a \cdot \cos b - \mathsf{expm1}\left(\mathsf{log1p}\left(\sin b \cdot \sin a\right)\right)}double f(double r, double a, double b) {
double r29421 = r;
double r29422 = b;
double r29423 = sin(r29422);
double r29424 = a;
double r29425 = r29424 + r29422;
double r29426 = cos(r29425);
double r29427 = r29423 / r29426;
double r29428 = r29421 * r29427;
return r29428;
}
double f(double r, double a, double b) {
double r29429 = b;
double r29430 = sin(r29429);
double r29431 = r;
double r29432 = a;
double r29433 = cos(r29432);
double r29434 = cos(r29429);
double r29435 = r29433 * r29434;
double r29436 = sin(r29432);
double r29437 = r29430 * r29436;
double r29438 = log1p(r29437);
double r29439 = expm1(r29438);
double r29440 = r29435 - r29439;
double r29441 = r29431 / r29440;
double r29442 = r29430 * r29441;
return r29442;
}



Bits error versus r



Bits error versus a



Bits error versus b
Results
Initial program 15.4
Simplified15.4
rmApplied cos-sum0.3
Simplified0.3
Simplified0.3
rmApplied expm1-log1p-u0.4
Final simplification0.4
herbie shell --seed 2019196 +o rules:numerics
(FPCore (r a b)
:name "r*sin(b)/cos(a+b), B"
(* r (/ (sin b) (cos (+ a b)))))