Average Error: 15.1 → 0.3
Time: 9.7s
Precision: 64
\[r \cdot \frac{\sin b}{\cos \left(a + b\right)}\]
\[\frac{r}{\mathsf{fma}\left(\cos a, \cos b, -\sin b \cdot \sin a\right)} \cdot \sin b\]
r \cdot \frac{\sin b}{\cos \left(a + b\right)}
\frac{r}{\mathsf{fma}\left(\cos a, \cos b, -\sin b \cdot \sin a\right)} \cdot \sin b
double f(double r, double a, double b) {
        double r19125 = r;
        double r19126 = b;
        double r19127 = sin(r19126);
        double r19128 = a;
        double r19129 = r19128 + r19126;
        double r19130 = cos(r19129);
        double r19131 = r19127 / r19130;
        double r19132 = r19125 * r19131;
        return r19132;
}

double f(double r, double a, double b) {
        double r19133 = r;
        double r19134 = a;
        double r19135 = cos(r19134);
        double r19136 = b;
        double r19137 = cos(r19136);
        double r19138 = sin(r19136);
        double r19139 = sin(r19134);
        double r19140 = r19138 * r19139;
        double r19141 = -r19140;
        double r19142 = fma(r19135, r19137, r19141);
        double r19143 = r19133 / r19142;
        double r19144 = r19143 * r19138;
        return r19144;
}

Error

Bits error versus r

Bits error versus a

Bits error versus b

Derivation

  1. Initial program 15.1

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

    \[\leadsto r \cdot \frac{\sin b}{\color{blue}{\cos a \cdot \cos b - \sin a \cdot \sin b}}\]
  4. Using strategy rm
  5. Applied clear-num0.4

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

    \[\leadsto r \cdot \frac{1}{\color{blue}{\frac{\mathsf{fma}\left(\cos a, \cos b, -\sin b \cdot \sin a\right)}{\sin b}}}\]
  7. Using strategy rm
  8. Applied associate-/r/0.4

    \[\leadsto r \cdot \color{blue}{\left(\frac{1}{\mathsf{fma}\left(\cos a, \cos b, -\sin b \cdot \sin a\right)} \cdot \sin b\right)}\]
  9. Applied associate-*r*0.4

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

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

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

Reproduce

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