r \cdot \frac{\sin b}{\cos \left(a + b\right)}\frac{r \cdot \sin b}{\frac{\left(\left(\cos a \cdot \cos a\right) \cdot \cos a\right) \cdot \left(\left(\cos b \cdot \cos b\right) \cdot \cos b\right) - {\left(\sin b \cdot \sin a\right)}^{3}}{\mathsf{fma}\left(\cos a \cdot \cos b, \cos a \cdot \cos b, \left(\sin b \cdot \sin a\right) \cdot \mathsf{fma}\left(\cos a, \cos b, \sin b \cdot \sin a\right)\right)}}double f(double r, double a, double b) {
double r28902 = r;
double r28903 = b;
double r28904 = sin(r28903);
double r28905 = a;
double r28906 = r28905 + r28903;
double r28907 = cos(r28906);
double r28908 = r28904 / r28907;
double r28909 = r28902 * r28908;
return r28909;
}
double f(double r, double a, double b) {
double r28910 = r;
double r28911 = b;
double r28912 = sin(r28911);
double r28913 = r28910 * r28912;
double r28914 = a;
double r28915 = cos(r28914);
double r28916 = r28915 * r28915;
double r28917 = r28916 * r28915;
double r28918 = cos(r28911);
double r28919 = r28918 * r28918;
double r28920 = r28919 * r28918;
double r28921 = r28917 * r28920;
double r28922 = sin(r28914);
double r28923 = r28912 * r28922;
double r28924 = 3.0;
double r28925 = pow(r28923, r28924);
double r28926 = r28921 - r28925;
double r28927 = r28915 * r28918;
double r28928 = fma(r28915, r28918, r28923);
double r28929 = r28923 * r28928;
double r28930 = fma(r28927, r28927, r28929);
double r28931 = r28926 / r28930;
double r28932 = r28913 / r28931;
return r28932;
}



Bits error versus r



Bits error versus a



Bits error versus b
Initial program 14.2
rmApplied cos-sum0.3
Simplified0.3
rmApplied associate-*r/0.3
rmApplied flip3--0.4
Simplified0.4
rmApplied add-cbrt-cube0.7
Applied add-cbrt-cube0.9
Applied cbrt-unprod0.9
Applied rem-cube-cbrt0.4
Final simplification0.4
herbie shell --seed 2019208 +o rules:numerics
(FPCore (r a b)
:name "r*sin(b)/cos(a+b), B"
:precision binary64
(* r (/ (sin b) (cos (+ a b)))))