r \cdot \frac{\sin b}{\cos \left(a + b\right)}\frac{\sin b \cdot r}{\mathsf{fma}\left(\cos a, \cos b, \mathsf{expm1}\left(\mathsf{log1p}\left(\left(-\sin a\right) \cdot \sin b\right)\right)\right)}double f(double r, double a, double b) {
double r26282 = r;
double r26283 = b;
double r26284 = sin(r26283);
double r26285 = a;
double r26286 = r26285 + r26283;
double r26287 = cos(r26286);
double r26288 = r26284 / r26287;
double r26289 = r26282 * r26288;
return r26289;
}
double f(double r, double a, double b) {
double r26290 = b;
double r26291 = sin(r26290);
double r26292 = r;
double r26293 = r26291 * r26292;
double r26294 = a;
double r26295 = cos(r26294);
double r26296 = cos(r26290);
double r26297 = sin(r26294);
double r26298 = -r26297;
double r26299 = r26298 * r26291;
double r26300 = log1p(r26299);
double r26301 = expm1(r26300);
double r26302 = fma(r26295, r26296, r26301);
double r26303 = r26293 / r26302;
return r26303;
}



Bits error versus r



Bits error versus a



Bits error versus b
Initial program 14.8
rmApplied cos-sum0.3
Simplified0.3
rmApplied fma-neg0.3
Simplified0.3
rmApplied associate-*r/0.3
Simplified0.3
rmApplied expm1-log1p-u0.3
Final simplification0.3
herbie shell --seed 2019305 +o rules:numerics
(FPCore (r a b)
:name "r*sin(b)/cos(a+b), B"
:precision binary64
(* r (/ (sin b) (cos (+ a b)))))