Average Error: 15.1 → 0.3
Time: 30.5s
Precision: 64
\[r \cdot \frac{\sin b}{\cos \left(a + b\right)}\]
\[\frac{r \cdot \sin b}{\cos a \cdot \cos b - \mathsf{log1p}\left(\mathsf{expm1}\left(\sin b \cdot \sin a\right)\right)}\]
r \cdot \frac{\sin b}{\cos \left(a + b\right)}
\frac{r \cdot \sin b}{\cos a \cdot \cos b - \mathsf{log1p}\left(\mathsf{expm1}\left(\sin b \cdot \sin a\right)\right)}
double f(double r, double a, double b) {
        double r704740 = r;
        double r704741 = b;
        double r704742 = sin(r704741);
        double r704743 = a;
        double r704744 = r704743 + r704741;
        double r704745 = cos(r704744);
        double r704746 = r704742 / r704745;
        double r704747 = r704740 * r704746;
        return r704747;
}

double f(double r, double a, double b) {
        double r704748 = r;
        double r704749 = b;
        double r704750 = sin(r704749);
        double r704751 = r704748 * r704750;
        double r704752 = a;
        double r704753 = cos(r704752);
        double r704754 = cos(r704749);
        double r704755 = r704753 * r704754;
        double r704756 = sin(r704752);
        double r704757 = r704750 * r704756;
        double r704758 = expm1(r704757);
        double r704759 = log1p(r704758);
        double r704760 = r704755 - r704759;
        double r704761 = r704751 / r704760;
        return r704761;
}

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

    \[\leadsto r \cdot \frac{\sin b}{\cos a \cdot \cos b - \color{blue}{\mathsf{log1p}\left(\mathsf{expm1}\left(\sin a \cdot \sin b\right)\right)}}\]
  6. Using strategy rm
  7. Applied associate-*r/0.3

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

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

Reproduce

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