Average Error: 15.1 → 0.3
Time: 34.3s
Precision: 64
\[r \cdot \frac{\sin b}{\cos \left(a + b\right)}\]
\[\frac{r \cdot \sin b}{\cos a \cdot \cos b - (e^{\log_* (1 + \sin b \cdot \sin a)} - 1)^*}\]
double f(double r, double a, double b) {
        double r1106596 = r;
        double r1106597 = b;
        double r1106598 = sin(r1106597);
        double r1106599 = a;
        double r1106600 = r1106599 + r1106597;
        double r1106601 = cos(r1106600);
        double r1106602 = r1106598 / r1106601;
        double r1106603 = r1106596 * r1106602;
        return r1106603;
}

double f(double r, double a, double b) {
        double r1106604 = r;
        double r1106605 = b;
        double r1106606 = sin(r1106605);
        double r1106607 = r1106604 * r1106606;
        double r1106608 = a;
        double r1106609 = cos(r1106608);
        double r1106610 = cos(r1106605);
        double r1106611 = r1106609 * r1106610;
        double r1106612 = sin(r1106608);
        double r1106613 = r1106606 * r1106612;
        double r1106614 = log1p(r1106613);
        double r1106615 = expm1(r1106614);
        double r1106616 = r1106611 - r1106615;
        double r1106617 = r1106607 / r1106616;
        return r1106617;
}

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

Error

Bits error versus r

Bits error versus a

Bits error versus b

Derivation

  1. Initial program 15.1

    \[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. Using strategy rm
  5. Applied associate-*r/0.3

    \[\leadsto \color{blue}{\frac{r \cdot \sin b}{\cos a \cdot \cos b - \sin a \cdot \sin b}}\]
  6. Using strategy rm
  7. Applied expm1-log1p-u0.3

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

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

Reproduce

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