Average Error: 14.9 → 0.4
Time: 33.8s
Precision: 64
\[\frac{r \cdot \sin b}{\cos \left(a + b\right)}\]
\[\frac{r \cdot \sin b}{\mathsf{expm1}\left(\mathsf{log1p}\left(\cos a \cdot \cos b - \sin b \cdot \sin a\right)\right)}\]
\frac{r \cdot \sin b}{\cos \left(a + b\right)}
\frac{r \cdot \sin b}{\mathsf{expm1}\left(\mathsf{log1p}\left(\cos a \cdot \cos b - \sin b \cdot \sin a\right)\right)}
double f(double r, double a, double b) {
        double r1014726 = r;
        double r1014727 = b;
        double r1014728 = sin(r1014727);
        double r1014729 = r1014726 * r1014728;
        double r1014730 = a;
        double r1014731 = r1014730 + r1014727;
        double r1014732 = cos(r1014731);
        double r1014733 = r1014729 / r1014732;
        return r1014733;
}

double f(double r, double a, double b) {
        double r1014734 = r;
        double r1014735 = b;
        double r1014736 = sin(r1014735);
        double r1014737 = r1014734 * r1014736;
        double r1014738 = a;
        double r1014739 = cos(r1014738);
        double r1014740 = cos(r1014735);
        double r1014741 = r1014739 * r1014740;
        double r1014742 = sin(r1014738);
        double r1014743 = r1014736 * r1014742;
        double r1014744 = r1014741 - r1014743;
        double r1014745 = log1p(r1014744);
        double r1014746 = expm1(r1014745);
        double r1014747 = r1014737 / r1014746;
        return r1014747;
}

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 14.9

    \[\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. Using strategy rm
  7. Applied expm1-log1p-u0.4

    \[\leadsto \frac{r \cdot \sin b}{\color{blue}{\mathsf{expm1}\left(\mathsf{log1p}\left(\cos a \cdot \cos b - \log \left(e^{\sin a \cdot \sin b}\right)\right)\right)}}\]
  8. Simplified0.4

    \[\leadsto \frac{r \cdot \sin b}{\mathsf{expm1}\left(\color{blue}{\mathsf{log1p}\left(\cos b \cdot \cos a - \sin b \cdot \sin a\right)}\right)}\]
  9. Final simplification0.4

    \[\leadsto \frac{r \cdot \sin b}{\mathsf{expm1}\left(\mathsf{log1p}\left(\cos a \cdot \cos b - \sin b \cdot \sin a\right)\right)}\]

Reproduce

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