Average Error: 14.9 → 0.4
Time: 23.8s
Precision: 64
\[r \cdot \frac{\sin b}{\cos \left(a + b\right)}\]
\[\left(\frac{\sin b}{\left(\left(\cos b \cdot \cos b\right) \cdot \left(\cos a \cdot \cos a\right)\right) \cdot \left(\cos a \cdot \cos b\right) - \left(\sin a \cdot \sin b\right) \cdot \left(\left(\sin a \cdot \sin b\right) \cdot \left(\sin a \cdot \sin b\right)\right)} \cdot r\right) \cdot \left(\left(\cos a \cdot \cos b\right) \cdot \left(\cos a \cdot \cos b\right) + \left(\left(\sin a \cdot \sin b\right) \cdot \left(\cos a \cdot \cos b\right) + \left(\sin a \cdot \sin b\right) \cdot \left(\sin a \cdot \sin b\right)\right)\right)\]
r \cdot \frac{\sin b}{\cos \left(a + b\right)}
\left(\frac{\sin b}{\left(\left(\cos b \cdot \cos b\right) \cdot \left(\cos a \cdot \cos a\right)\right) \cdot \left(\cos a \cdot \cos b\right) - \left(\sin a \cdot \sin b\right) \cdot \left(\left(\sin a \cdot \sin b\right) \cdot \left(\sin a \cdot \sin b\right)\right)} \cdot r\right) \cdot \left(\left(\cos a \cdot \cos b\right) \cdot \left(\cos a \cdot \cos b\right) + \left(\left(\sin a \cdot \sin b\right) \cdot \left(\cos a \cdot \cos b\right) + \left(\sin a \cdot \sin b\right) \cdot \left(\sin a \cdot \sin b\right)\right)\right)
double f(double r, double a, double b) {
        double r821079 = r;
        double r821080 = b;
        double r821081 = sin(r821080);
        double r821082 = a;
        double r821083 = r821082 + r821080;
        double r821084 = cos(r821083);
        double r821085 = r821081 / r821084;
        double r821086 = r821079 * r821085;
        return r821086;
}

double f(double r, double a, double b) {
        double r821087 = b;
        double r821088 = sin(r821087);
        double r821089 = cos(r821087);
        double r821090 = r821089 * r821089;
        double r821091 = a;
        double r821092 = cos(r821091);
        double r821093 = r821092 * r821092;
        double r821094 = r821090 * r821093;
        double r821095 = r821092 * r821089;
        double r821096 = r821094 * r821095;
        double r821097 = sin(r821091);
        double r821098 = r821097 * r821088;
        double r821099 = r821098 * r821098;
        double r821100 = r821098 * r821099;
        double r821101 = r821096 - r821100;
        double r821102 = r821088 / r821101;
        double r821103 = r;
        double r821104 = r821102 * r821103;
        double r821105 = r821095 * r821095;
        double r821106 = r821098 * r821095;
        double r821107 = r821106 + r821099;
        double r821108 = r821105 + r821107;
        double r821109 = r821104 * r821108;
        return r821109;
}

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

    \[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 flip3--0.4

    \[\leadsto r \cdot \frac{\sin b}{\color{blue}{\frac{{\left(\cos a \cdot \cos b\right)}^{3} - {\left(\sin a \cdot \sin b\right)}^{3}}{\left(\cos a \cdot \cos b\right) \cdot \left(\cos a \cdot \cos b\right) + \left(\left(\sin a \cdot \sin b\right) \cdot \left(\sin a \cdot \sin b\right) + \left(\cos a \cdot \cos b\right) \cdot \left(\sin a \cdot \sin b\right)\right)}}}\]
  6. Applied associate-/r/0.4

    \[\leadsto r \cdot \color{blue}{\left(\frac{\sin b}{{\left(\cos a \cdot \cos b\right)}^{3} - {\left(\sin a \cdot \sin b\right)}^{3}} \cdot \left(\left(\cos a \cdot \cos b\right) \cdot \left(\cos a \cdot \cos b\right) + \left(\left(\sin a \cdot \sin b\right) \cdot \left(\sin a \cdot \sin b\right) + \left(\cos a \cdot \cos b\right) \cdot \left(\sin a \cdot \sin b\right)\right)\right)\right)}\]
  7. Applied associate-*r*0.5

    \[\leadsto \color{blue}{\left(r \cdot \frac{\sin b}{{\left(\cos a \cdot \cos b\right)}^{3} - {\left(\sin a \cdot \sin b\right)}^{3}}\right) \cdot \left(\left(\cos a \cdot \cos b\right) \cdot \left(\cos a \cdot \cos b\right) + \left(\left(\sin a \cdot \sin b\right) \cdot \left(\sin a \cdot \sin b\right) + \left(\cos a \cdot \cos b\right) \cdot \left(\sin a \cdot \sin b\right)\right)\right)}\]
  8. Simplified0.4

    \[\leadsto \color{blue}{\left(\frac{\sin b}{\left(\left(\cos a \cdot \cos b\right) \cdot \left(\cos a \cdot \cos b\right)\right) \cdot \left(\cos a \cdot \cos b\right) - \left(\sin a \cdot \sin b\right) \cdot \left(\left(\sin a \cdot \sin b\right) \cdot \left(\sin a \cdot \sin b\right)\right)} \cdot r\right)} \cdot \left(\left(\cos a \cdot \cos b\right) \cdot \left(\cos a \cdot \cos b\right) + \left(\left(\sin a \cdot \sin b\right) \cdot \left(\sin a \cdot \sin b\right) + \left(\cos a \cdot \cos b\right) \cdot \left(\sin a \cdot \sin b\right)\right)\right)\]
  9. Using strategy rm
  10. Applied swap-sqr0.4

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

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

Reproduce

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