Average Error: 14.9 → 0.3
Time: 34.9s
Precision: 64
\[\frac{r \cdot \sin b}{\cos \left(a + b\right)}\]
\[r \cdot \frac{\sin b}{\mathsf{fma}\left(\left(\cos a\right), \left(\cos b\right), \left(\left(-\sin b\right) \cdot \sin a\right)\right)}\]
\frac{r \cdot \sin b}{\cos \left(a + b\right)}
r \cdot \frac{\sin b}{\mathsf{fma}\left(\left(\cos a\right), \left(\cos b\right), \left(\left(-\sin b\right) \cdot \sin a\right)\right)}
double f(double r, double a, double b) {
        double r1157848 = r;
        double r1157849 = b;
        double r1157850 = sin(r1157849);
        double r1157851 = r1157848 * r1157850;
        double r1157852 = a;
        double r1157853 = r1157852 + r1157849;
        double r1157854 = cos(r1157853);
        double r1157855 = r1157851 / r1157854;
        return r1157855;
}

double f(double r, double a, double b) {
        double r1157856 = r;
        double r1157857 = b;
        double r1157858 = sin(r1157857);
        double r1157859 = a;
        double r1157860 = cos(r1157859);
        double r1157861 = cos(r1157857);
        double r1157862 = -r1157858;
        double r1157863 = sin(r1157859);
        double r1157864 = r1157862 * r1157863;
        double r1157865 = fma(r1157860, r1157861, r1157864);
        double r1157866 = r1157858 / r1157865;
        double r1157867 = r1157856 * r1157866;
        return r1157867;
}

Error

Bits error versus r

Bits error versus a

Bits error versus b

Derivation

  1. Initial program 14.9

    \[\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 *-un-lft-identity0.3

    \[\leadsto \frac{r \cdot \sin b}{\color{blue}{1 \cdot \left(\cos a \cdot \cos b - \sin a \cdot \sin b\right)}}\]
  6. Applied times-frac0.3

    \[\leadsto \color{blue}{\frac{r}{1} \cdot \frac{\sin b}{\cos a \cdot \cos b - \sin a \cdot \sin b}}\]
  7. Simplified0.3

    \[\leadsto \color{blue}{r} \cdot \frac{\sin b}{\cos a \cdot \cos b - \sin a \cdot \sin b}\]
  8. Using strategy rm
  9. Applied fma-neg0.3

    \[\leadsto r \cdot \frac{\sin b}{\color{blue}{\mathsf{fma}\left(\left(\cos a\right), \left(\cos b\right), \left(-\sin a \cdot \sin b\right)\right)}}\]
  10. Final simplification0.3

    \[\leadsto r \cdot \frac{\sin b}{\mathsf{fma}\left(\left(\cos a\right), \left(\cos b\right), \left(\left(-\sin b\right) \cdot \sin a\right)\right)}\]

Reproduce

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