Average Error: 15.0 → 0.4
Time: 39.9s
Precision: 64
\[r \cdot \frac{\sin b}{\cos \left(a + b\right)}\]
\[\frac{1}{\cos a \cdot \cos b - \sin b \cdot \sin a} \cdot \left(r \cdot \sin b\right)\]
double f(double r, double a, double b) {
        double r1339157 = r;
        double r1339158 = b;
        double r1339159 = sin(r1339158);
        double r1339160 = a;
        double r1339161 = r1339160 + r1339158;
        double r1339162 = cos(r1339161);
        double r1339163 = r1339159 / r1339162;
        double r1339164 = r1339157 * r1339163;
        return r1339164;
}

double f(double r, double a, double b) {
        double r1339165 = 1.0;
        double r1339166 = a;
        double r1339167 = cos(r1339166);
        double r1339168 = b;
        double r1339169 = cos(r1339168);
        double r1339170 = r1339167 * r1339169;
        double r1339171 = sin(r1339168);
        double r1339172 = sin(r1339166);
        double r1339173 = r1339171 * r1339172;
        double r1339174 = r1339170 - r1339173;
        double r1339175 = r1339165 / r1339174;
        double r1339176 = r;
        double r1339177 = r1339176 * r1339171;
        double r1339178 = r1339175 * r1339177;
        return r1339178;
}

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

Error

Bits error versus r

Bits error versus a

Bits error versus b

Derivation

  1. Initial program 15.0

    \[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 fma-neg0.3

    \[\leadsto r \cdot \frac{\sin b}{\color{blue}{(\left(\cos a\right) \cdot \left(\cos b\right) + \left(-\sin a \cdot \sin b\right))_*}}\]
  6. Using strategy rm
  7. Applied div-inv0.4

    \[\leadsto r \cdot \color{blue}{\left(\sin b \cdot \frac{1}{(\left(\cos a\right) \cdot \left(\cos b\right) + \left(-\sin a \cdot \sin b\right))_*}\right)}\]
  8. Applied associate-*r*0.4

    \[\leadsto \color{blue}{\left(r \cdot \sin b\right) \cdot \frac{1}{(\left(\cos a\right) \cdot \left(\cos b\right) + \left(-\sin a \cdot \sin b\right))_*}}\]
  9. Simplified0.4

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

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

Reproduce

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