Average Error: 14.7 → 0.3
Time: 19.1s
Precision: 64
\[\frac{r \cdot \sin b}{\cos \left(a + b\right)}\]
\[\frac{r \cdot \sin b}{\cos a \cdot \cos b - \mathsf{expm1}\left(\mathsf{log1p}\left(\sin b \cdot \sin a\right)\right)}\]
\frac{r \cdot \sin b}{\cos \left(a + b\right)}
\frac{r \cdot \sin b}{\cos a \cdot \cos b - \mathsf{expm1}\left(\mathsf{log1p}\left(\sin b \cdot \sin a\right)\right)}
double f(double r, double a, double b) {
        double r450980 = r;
        double r450981 = b;
        double r450982 = sin(r450981);
        double r450983 = r450980 * r450982;
        double r450984 = a;
        double r450985 = r450984 + r450981;
        double r450986 = cos(r450985);
        double r450987 = r450983 / r450986;
        return r450987;
}

double f(double r, double a, double b) {
        double r450988 = r;
        double r450989 = b;
        double r450990 = sin(r450989);
        double r450991 = r450988 * r450990;
        double r450992 = a;
        double r450993 = cos(r450992);
        double r450994 = cos(r450989);
        double r450995 = r450993 * r450994;
        double r450996 = sin(r450992);
        double r450997 = r450990 * r450996;
        double r450998 = log1p(r450997);
        double r450999 = expm1(r450998);
        double r451000 = r450995 - r450999;
        double r451001 = r450991 / r451000;
        return r451001;
}

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

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

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

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

Reproduce

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