Average Error: 14.9 → 0.3
Time: 13.4s
Precision: 64
\[\frac{r \cdot \sin b}{\cos \left(a + b\right)}\]
\[r \cdot \frac{\sin b}{\mathsf{fma}\left(\cos a, \cos b, -\sin a \cdot \sin b\right)}\]
\frac{r \cdot \sin b}{\cos \left(a + b\right)}
r \cdot \frac{\sin b}{\mathsf{fma}\left(\cos a, \cos b, -\sin a \cdot \sin b\right)}
double f(double r, double a, double b) {
        double r17631 = r;
        double r17632 = b;
        double r17633 = sin(r17632);
        double r17634 = r17631 * r17633;
        double r17635 = a;
        double r17636 = r17635 + r17632;
        double r17637 = cos(r17636);
        double r17638 = r17634 / r17637;
        return r17638;
}

double f(double r, double a, double b) {
        double r17639 = r;
        double r17640 = b;
        double r17641 = sin(r17640);
        double r17642 = a;
        double r17643 = cos(r17642);
        double r17644 = cos(r17640);
        double r17645 = sin(r17642);
        double r17646 = r17645 * r17641;
        double r17647 = -r17646;
        double r17648 = fma(r17643, r17644, r17647);
        double r17649 = r17641 / r17648;
        double r17650 = r17639 * r17649;
        return r17650;
}

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(\cos a, \cos b, -\sin a \cdot \sin b\right)}}\]
  10. Final simplification0.3

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

Reproduce

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