Average Error: 14.8 → 0.3
Time: 28.3s
Precision: 64
\[\frac{r \cdot \sin b}{\cos \left(a + b\right)}\]
\[\frac{r \cdot \sin b}{(\left(\cos a\right) \cdot \left(\cos b\right) + \left(\left(-\sin b\right) \cdot \sin a\right))_*}\]
\frac{r \cdot \sin b}{\cos \left(a + b\right)}
\frac{r \cdot \sin b}{(\left(\cos a\right) \cdot \left(\cos b\right) + \left(\left(-\sin b\right) \cdot \sin a\right))_*}
double f(double r, double a, double b) {
        double r958497 = r;
        double r958498 = b;
        double r958499 = sin(r958498);
        double r958500 = r958497 * r958499;
        double r958501 = a;
        double r958502 = r958501 + r958498;
        double r958503 = cos(r958502);
        double r958504 = r958500 / r958503;
        return r958504;
}

double f(double r, double a, double b) {
        double r958505 = r;
        double r958506 = b;
        double r958507 = sin(r958506);
        double r958508 = r958505 * r958507;
        double r958509 = a;
        double r958510 = cos(r958509);
        double r958511 = cos(r958506);
        double r958512 = -r958507;
        double r958513 = sin(r958509);
        double r958514 = r958512 * r958513;
        double r958515 = fma(r958510, r958511, r958514);
        double r958516 = r958508 / r958515;
        return r958516;
}

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. 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 fma-neg0.3

    \[\leadsto \frac{r \cdot \sin b}{\color{blue}{(\left(\cos a\right) \cdot \left(\cos b\right) + \left(-\sin a \cdot \sin b\right))_*}}\]
  6. Using strategy rm
  7. Applied *-commutative0.3

    \[\leadsto \frac{r \cdot \sin b}{(\left(\cos a\right) \cdot \left(\cos b\right) + \left(-\color{blue}{\sin b \cdot \sin a}\right))_*}\]
  8. Final simplification0.3

    \[\leadsto \frac{r \cdot \sin b}{(\left(\cos a\right) \cdot \left(\cos b\right) + \left(\left(-\sin b\right) \cdot \sin a\right))_*}\]

Reproduce

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