Average Error: 15.2 → 0.4
Time: 6.2s
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 r16549 = r;
        double r16550 = b;
        double r16551 = sin(r16550);
        double r16552 = r16549 * r16551;
        double r16553 = a;
        double r16554 = r16553 + r16550;
        double r16555 = cos(r16554);
        double r16556 = r16552 / r16555;
        return r16556;
}

double f(double r, double a, double b) {
        double r16557 = r;
        double r16558 = b;
        double r16559 = sin(r16558);
        double r16560 = r16557 * r16559;
        double r16561 = a;
        double r16562 = cos(r16561);
        double r16563 = cos(r16558);
        double r16564 = r16562 * r16563;
        double r16565 = sin(r16561);
        double r16566 = r16565 * r16559;
        double r16567 = exp(r16566);
        double r16568 = log(r16567);
        double r16569 = r16564 - r16568;
        double r16570 = r16560 / r16569;
        return r16570;
}

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.2

    \[\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 2020018 
(FPCore (r a b)
  :name "r*sin(b)/cos(a+b), A"
  :precision binary64
  (/ (* r (sin b)) (cos (+ a b))))