Average Error: 15.5 → 0.4
Time: 21.4s
Precision: 64
\[r \cdot \frac{\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)}\]
r \cdot \frac{\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 r1027151 = r;
        double r1027152 = b;
        double r1027153 = sin(r1027152);
        double r1027154 = a;
        double r1027155 = r1027154 + r1027152;
        double r1027156 = cos(r1027155);
        double r1027157 = r1027153 / r1027156;
        double r1027158 = r1027151 * r1027157;
        return r1027158;
}

double f(double r, double a, double b) {
        double r1027159 = r;
        double r1027160 = b;
        double r1027161 = sin(r1027160);
        double r1027162 = r1027159 * r1027161;
        double r1027163 = a;
        double r1027164 = cos(r1027163);
        double r1027165 = cos(r1027160);
        double r1027166 = r1027164 * r1027165;
        double r1027167 = sin(r1027163);
        double r1027168 = r1027161 * r1027167;
        double r1027169 = log1p(r1027168);
        double r1027170 = expm1(r1027169);
        double r1027171 = r1027166 - r1027170;
        double r1027172 = r1027162 / r1027171;
        return r1027172;
}

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

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

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

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

    \[\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 2019165 +o rules:numerics
(FPCore (r a b)
  :name "r*sin(b)/cos(a+b), B"
  (* r (/ (sin b) (cos (+ a b)))))