Average Error: 15.1 → 0.3
Time: 32.2s
Precision: 64
\[\frac{r \cdot \sin b}{\cos \left(a + b\right)}\]
\[\frac{r \cdot \sin b}{\cos a \cdot \cos b - \sin b \cdot \sin a}\]
double f(double r, double a, double b) {
        double r1086915 = r;
        double r1086916 = b;
        double r1086917 = sin(r1086916);
        double r1086918 = r1086915 * r1086917;
        double r1086919 = a;
        double r1086920 = r1086919 + r1086916;
        double r1086921 = cos(r1086920);
        double r1086922 = r1086918 / r1086921;
        return r1086922;
}

double f(double r, double a, double b) {
        double r1086923 = r;
        double r1086924 = b;
        double r1086925 = sin(r1086924);
        double r1086926 = r1086923 * r1086925;
        double r1086927 = a;
        double r1086928 = cos(r1086927);
        double r1086929 = cos(r1086924);
        double r1086930 = r1086928 * r1086929;
        double r1086931 = sin(r1086927);
        double r1086932 = r1086925 * r1086931;
        double r1086933 = r1086930 - r1086932;
        double r1086934 = r1086926 / r1086933;
        return r1086934;
}

\frac{r \cdot \sin b}{\cos \left(a + b\right)}
\frac{r \cdot \sin b}{\cos a \cdot \cos b - \sin b \cdot \sin a}

Error

Bits error versus r

Bits error versus a

Bits error versus b

Derivation

  1. Initial program 15.1

    \[\frac{r \cdot \sin b}{\cos \left(a + b\right)}\]
  2. Using strategy rm
  3. Applied cos-sum0.3

    \[\leadsto \frac{r \cdot \sin b}{\color{blue}{\cos a \cdot \cos b - \sin a \cdot \sin b}}\]
  4. Using strategy rm
  5. Applied expm1-log1p-u0.3

    \[\leadsto \frac{r \cdot \sin b}{\cos a \cdot \cos b - \color{blue}{(e^{\log_* (1 + \sin a \cdot \sin b)} - 1)^*}}\]
  6. Using strategy rm
  7. Applied *-un-lft-identity0.3

    \[\leadsto \frac{r \cdot \sin b}{\color{blue}{1 \cdot \left(\cos a \cdot \cos b - (e^{\log_* (1 + \sin a \cdot \sin b)} - 1)^*\right)}}\]
  8. Applied times-frac0.3

    \[\leadsto \color{blue}{\frac{r}{1} \cdot \frac{\sin b}{\cos a \cdot \cos b - (e^{\log_* (1 + \sin a \cdot \sin b)} - 1)^*}}\]
  9. Simplified0.3

    \[\leadsto \color{blue}{r} \cdot \frac{\sin b}{\cos a \cdot \cos b - (e^{\log_* (1 + \sin a \cdot \sin b)} - 1)^*}\]
  10. Simplified0.3

    \[\leadsto r \cdot \color{blue}{\frac{\sin b}{\cos a \cdot \cos b - \sin a \cdot \sin b}}\]
  11. Using strategy rm
  12. Applied associate-*r/0.3

    \[\leadsto \color{blue}{\frac{r \cdot \sin b}{\cos a \cdot \cos b - \sin a \cdot \sin b}}\]
  13. Final simplification0.3

    \[\leadsto \frac{r \cdot \sin b}{\cos a \cdot \cos b - \sin b \cdot \sin a}\]

Reproduce

herbie shell --seed 2019101 +o rules:numerics
(FPCore (r a b)
  :name "r*sin(b)/cos(a+b), A"
  (/ (* r (sin b)) (cos (+ a b))))