Average Error: 15.0 → 0.3
Time: 27.8s
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(-(e^{\log_* (1 + \sin a \cdot \sin b)} - 1)^*\right))_*}\]
double f(double r, double a, double b) {
        double r971566 = r;
        double r971567 = b;
        double r971568 = sin(r971567);
        double r971569 = r971566 * r971568;
        double r971570 = a;
        double r971571 = r971570 + r971567;
        double r971572 = cos(r971571);
        double r971573 = r971569 / r971572;
        return r971573;
}

double f(double r, double a, double b) {
        double r971574 = r;
        double r971575 = b;
        double r971576 = sin(r971575);
        double r971577 = r971574 * r971576;
        double r971578 = a;
        double r971579 = cos(r971578);
        double r971580 = cos(r971575);
        double r971581 = sin(r971578);
        double r971582 = r971581 * r971576;
        double r971583 = log1p(r971582);
        double r971584 = expm1(r971583);
        double r971585 = -r971584;
        double r971586 = fma(r971579, r971580, r971585);
        double r971587 = r971577 / r971586;
        return r971587;
}

\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(-(e^{\log_* (1 + \sin a \cdot \sin b)} - 1)^*\right))_*}

Error

Bits error versus r

Bits error versus a

Bits error versus b

Derivation

  1. Initial program 15.0

    \[\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 expm1-log1p-u0.3

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

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

Reproduce

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