r \cdot \frac{\sin b}{\cos \left(a + b\right)}\frac{r \cdot \sin b}{\mathsf{fma}\left(\cos a, \cos b, -\mathsf{log1p}\left(\mathsf{expm1}\left(\sin a \cdot \sin b\right)\right)\right)}double f(double r, double a, double b) {
double r19243 = r;
double r19244 = b;
double r19245 = sin(r19244);
double r19246 = a;
double r19247 = r19246 + r19244;
double r19248 = cos(r19247);
double r19249 = r19245 / r19248;
double r19250 = r19243 * r19249;
return r19250;
}
double f(double r, double a, double b) {
double r19251 = r;
double r19252 = b;
double r19253 = sin(r19252);
double r19254 = r19251 * r19253;
double r19255 = a;
double r19256 = cos(r19255);
double r19257 = cos(r19252);
double r19258 = sin(r19255);
double r19259 = r19258 * r19253;
double r19260 = expm1(r19259);
double r19261 = log1p(r19260);
double r19262 = -r19261;
double r19263 = fma(r19256, r19257, r19262);
double r19264 = r19254 / r19263;
return r19264;
}



Bits error versus r



Bits error versus a



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