Average Error: 15.3 → 0.3
Time: 7.2s
Precision: 64
\[r \cdot \frac{\sin b}{\cos \left(a + b\right)}\]
\[\frac{\sin b}{\cos a \cdot \cos b - \sin a \cdot \sin b} \cdot r\]
r \cdot \frac{\sin b}{\cos \left(a + b\right)}
\frac{\sin b}{\cos a \cdot \cos b - \sin a \cdot \sin b} \cdot r
double f(double r, double a, double b) {
        double r19999 = r;
        double r20000 = b;
        double r20001 = sin(r20000);
        double r20002 = a;
        double r20003 = r20002 + r20000;
        double r20004 = cos(r20003);
        double r20005 = r20001 / r20004;
        double r20006 = r19999 * r20005;
        return r20006;
}

double f(double r, double a, double b) {
        double r20007 = b;
        double r20008 = sin(r20007);
        double r20009 = a;
        double r20010 = cos(r20009);
        double r20011 = cos(r20007);
        double r20012 = r20010 * r20011;
        double r20013 = sin(r20009);
        double r20014 = r20013 * r20008;
        double r20015 = r20012 - r20014;
        double r20016 = r20008 / r20015;
        double r20017 = r;
        double r20018 = r20016 * r20017;
        return r20018;
}

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

    \[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 *-commutative0.3

    \[\leadsto \color{blue}{\frac{\sin b}{\cos a \cdot \cos b - \sin a \cdot \sin b} \cdot r}\]
  6. Final simplification0.3

    \[\leadsto \frac{\sin b}{\cos a \cdot \cos b - \sin a \cdot \sin b} \cdot r\]

Reproduce

herbie shell --seed 2020018 
(FPCore (r a b)
  :name "r*sin(b)/cos(a+b), B"
  :precision binary64
  (* r (/ (sin b) (cos (+ a b)))))