Average Error: 14.8 → 0.4
Time: 18.9s
Precision: 64
\[\frac{r \cdot \sin b}{\cos \left(a + b\right)}\]
\[\frac{r}{\mathsf{fma}\left(\sin a, \sin b, \cos a \cdot \cos b\right)} \cdot \left(\frac{\sin b}{\mathsf{fma}\left(\sin a, -\sin b, \cos a \cdot \cos b\right)} \cdot \mathsf{fma}\left(\sin a, \sin b, \cos a \cdot \cos b\right)\right)\]
\frac{r \cdot \sin b}{\cos \left(a + b\right)}
\frac{r}{\mathsf{fma}\left(\sin a, \sin b, \cos a \cdot \cos b\right)} \cdot \left(\frac{\sin b}{\mathsf{fma}\left(\sin a, -\sin b, \cos a \cdot \cos b\right)} \cdot \mathsf{fma}\left(\sin a, \sin b, \cos a \cdot \cos b\right)\right)
double f(double r, double a, double b) {
        double r26372 = r;
        double r26373 = b;
        double r26374 = sin(r26373);
        double r26375 = r26372 * r26374;
        double r26376 = a;
        double r26377 = r26376 + r26373;
        double r26378 = cos(r26377);
        double r26379 = r26375 / r26378;
        return r26379;
}

double f(double r, double a, double b) {
        double r26380 = r;
        double r26381 = a;
        double r26382 = sin(r26381);
        double r26383 = b;
        double r26384 = sin(r26383);
        double r26385 = cos(r26381);
        double r26386 = cos(r26383);
        double r26387 = r26385 * r26386;
        double r26388 = fma(r26382, r26384, r26387);
        double r26389 = r26380 / r26388;
        double r26390 = -r26384;
        double r26391 = fma(r26382, r26390, r26387);
        double r26392 = r26384 / r26391;
        double r26393 = r26392 * r26388;
        double r26394 = r26389 * r26393;
        return r26394;
}

Error

Bits error versus r

Bits error versus a

Bits error versus b

Derivation

  1. Initial program 14.8

    \[\frac{r \cdot \sin b}{\cos \left(a + b\right)}\]
  2. Simplified14.8

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

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

    \[\leadsto \frac{r \cdot \sin b}{\color{blue}{\cos a \cdot \cos b} - \sin b \cdot \sin a}\]
  6. Using strategy rm
  7. Applied flip--0.4

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

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

    \[\leadsto \frac{r \cdot \sin b}{\frac{\mathsf{fma}\left(\sin a, \sin b, \cos a \cdot \cos b\right) \cdot \mathsf{fma}\left(-\sin b, \sin a, \cos a \cdot \cos b\right)}{\color{blue}{\mathsf{fma}\left(\sin a, \sin b, \cos a \cdot \cos b\right)}}}\]
  10. Using strategy rm
  11. Applied *-un-lft-identity0.3

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

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

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

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

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

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

Reproduce

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