Average Error: 14.7 → 0.3
Time: 25.5s
Precision: 64
\[\frac{r \cdot \sin b}{\cos \left(a + b\right)}\]
\[\frac{-r}{\mathsf{fma}\left(-\cos b, \cos a, \sin b \cdot \sin a\right)} \cdot \sin b\]
\frac{r \cdot \sin b}{\cos \left(a + b\right)}
\frac{-r}{\mathsf{fma}\left(-\cos b, \cos a, \sin b \cdot \sin a\right)} \cdot \sin b
double f(double r, double a, double b) {
        double r27152 = r;
        double r27153 = b;
        double r27154 = sin(r27153);
        double r27155 = r27152 * r27154;
        double r27156 = a;
        double r27157 = r27156 + r27153;
        double r27158 = cos(r27157);
        double r27159 = r27155 / r27158;
        return r27159;
}

double f(double r, double a, double b) {
        double r27160 = r;
        double r27161 = -r27160;
        double r27162 = b;
        double r27163 = cos(r27162);
        double r27164 = -r27163;
        double r27165 = a;
        double r27166 = cos(r27165);
        double r27167 = sin(r27162);
        double r27168 = sin(r27165);
        double r27169 = r27167 * r27168;
        double r27170 = fma(r27164, r27166, r27169);
        double r27171 = r27161 / r27170;
        double r27172 = r27171 * r27167;
        return r27172;
}

Error

Bits error versus r

Bits error versus a

Bits error versus b

Derivation

  1. Initial program 14.7

    \[\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 frac-2neg0.3

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

    \[\leadsto \frac{-r \cdot \sin b}{\color{blue}{\mathsf{fma}\left(-\cos b, \cos a, \sin b \cdot \sin a\right)}}\]
  7. Using strategy rm
  8. Applied distribute-lft-neg-in0.3

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

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

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

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

Reproduce

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