Average Error: 14.7 → 0.4
Time: 23.6s
Precision: 64
\[\frac{r \cdot \sin b}{\cos \left(a + b\right)}\]
\[-\frac{\sin b}{\frac{\mathsf{fma}\left(\sin a, \sin b, \left(-\cos a\right) \cdot \cos b\right)}{r}}\]
\frac{r \cdot \sin b}{\cos \left(a + b\right)}
-\frac{\sin b}{\frac{\mathsf{fma}\left(\sin a, \sin b, \left(-\cos a\right) \cdot \cos b\right)}{r}}
double f(double r, double a, double b) {
        double r25137 = r;
        double r25138 = b;
        double r25139 = sin(r25138);
        double r25140 = r25137 * r25139;
        double r25141 = a;
        double r25142 = r25141 + r25138;
        double r25143 = cos(r25142);
        double r25144 = r25140 / r25143;
        return r25144;
}

double f(double r, double a, double b) {
        double r25145 = b;
        double r25146 = sin(r25145);
        double r25147 = a;
        double r25148 = sin(r25147);
        double r25149 = cos(r25147);
        double r25150 = -r25149;
        double r25151 = cos(r25145);
        double r25152 = r25150 * r25151;
        double r25153 = fma(r25148, r25146, r25152);
        double r25154 = r;
        double r25155 = r25153 / r25154;
        double r25156 = r25146 / r25155;
        double r25157 = -r25156;
        return r25157;
}

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 a, \cos b, \sin a \cdot \sin b\right)}}\]
  7. Taylor expanded around inf 0.3

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

    \[\leadsto \frac{-r \cdot \sin b}{\color{blue}{\mathsf{fma}\left(\sin a, \sin b, \left(-\cos a\right) \cdot \cos b\right)}}\]
  9. Using strategy rm
  10. Applied neg-sub00.3

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

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

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

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

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

Reproduce

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