Average Error: 15.3 → 0.4
Time: 13.1s
Precision: 64
\[\frac{r \cdot \sin b}{\cos \left(a + b\right)}\]
\[\frac{r \cdot \sin b}{\cos a \cdot \cos b - \log \left(e^{\sin a \cdot \sin b}\right)}\]
\frac{r \cdot \sin b}{\cos \left(a + b\right)}
\frac{r \cdot \sin b}{\cos a \cdot \cos b - \log \left(e^{\sin a \cdot \sin b}\right)}
double f(double r, double a, double b) {
        double r17720 = r;
        double r17721 = b;
        double r17722 = sin(r17721);
        double r17723 = r17720 * r17722;
        double r17724 = a;
        double r17725 = r17724 + r17721;
        double r17726 = cos(r17725);
        double r17727 = r17723 / r17726;
        return r17727;
}

double f(double r, double a, double b) {
        double r17728 = r;
        double r17729 = b;
        double r17730 = sin(r17729);
        double r17731 = r17728 * r17730;
        double r17732 = a;
        double r17733 = cos(r17732);
        double r17734 = cos(r17729);
        double r17735 = r17733 * r17734;
        double r17736 = sin(r17732);
        double r17737 = r17736 * r17730;
        double r17738 = exp(r17737);
        double r17739 = log(r17738);
        double r17740 = r17735 - r17739;
        double r17741 = r17731 / r17740;
        return r17741;
}

Error

Bits error versus r

Bits error versus a

Bits error versus b

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 15.3

    \[\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 add-log-exp0.4

    \[\leadsto \frac{r \cdot \sin b}{\cos a \cdot \cos b - \color{blue}{\log \left(e^{\sin a \cdot \sin b}\right)}}\]
  6. Final simplification0.4

    \[\leadsto \frac{r \cdot \sin b}{\cos a \cdot \cos b - \log \left(e^{\sin a \cdot \sin b}\right)}\]

Reproduce

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