Average Error: 14.7 → 0.3
Time: 19.7s
Precision: 64
\[r \cdot \frac{\sin b}{\cos \left(a + b\right)}\]
\[\frac{r \cdot \sin b}{\mathsf{fma}\left(\cos a, \cos b, \left(-\sin a\right) \cdot \sin b\right)}\]
r \cdot \frac{\sin b}{\cos \left(a + b\right)}
\frac{r \cdot \sin b}{\mathsf{fma}\left(\cos a, \cos b, \left(-\sin a\right) \cdot \sin b\right)}
double f(double r, double a, double b) {
        double r25864 = r;
        double r25865 = b;
        double r25866 = sin(r25865);
        double r25867 = a;
        double r25868 = r25867 + r25865;
        double r25869 = cos(r25868);
        double r25870 = r25866 / r25869;
        double r25871 = r25864 * r25870;
        return r25871;
}

double f(double r, double a, double b) {
        double r25872 = r;
        double r25873 = b;
        double r25874 = sin(r25873);
        double r25875 = r25872 * r25874;
        double r25876 = a;
        double r25877 = cos(r25876);
        double r25878 = cos(r25873);
        double r25879 = sin(r25876);
        double r25880 = -r25879;
        double r25881 = r25880 * r25874;
        double r25882 = fma(r25877, r25878, r25881);
        double r25883 = r25875 / r25882;
        return r25883;
}

Error

Bits error versus r

Bits error versus a

Bits error versus b

Derivation

  1. Initial program 14.7

    \[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. Simplified0.3

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

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

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

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

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

Reproduce

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