Average Error: 14.9 → 0.4
Time: 34.7s
Precision: 64
\[r \cdot \frac{\sin b}{\cos \left(a + b\right)}\]
\[\left(\frac{1}{\cos a \cdot \cos b - \sin b \cdot \sin a} \cdot \sin b\right) \cdot r\]
r \cdot \frac{\sin b}{\cos \left(a + b\right)}
\left(\frac{1}{\cos a \cdot \cos b - \sin b \cdot \sin a} \cdot \sin b\right) \cdot r
double f(double r, double a, double b) {
        double r1158649 = r;
        double r1158650 = b;
        double r1158651 = sin(r1158650);
        double r1158652 = a;
        double r1158653 = r1158652 + r1158650;
        double r1158654 = cos(r1158653);
        double r1158655 = r1158651 / r1158654;
        double r1158656 = r1158649 * r1158655;
        return r1158656;
}

double f(double r, double a, double b) {
        double r1158657 = 1.0;
        double r1158658 = a;
        double r1158659 = cos(r1158658);
        double r1158660 = b;
        double r1158661 = cos(r1158660);
        double r1158662 = r1158659 * r1158661;
        double r1158663 = sin(r1158660);
        double r1158664 = sin(r1158658);
        double r1158665 = r1158663 * r1158664;
        double r1158666 = r1158662 - r1158665;
        double r1158667 = r1158657 / r1158666;
        double r1158668 = r1158667 * r1158663;
        double r1158669 = r;
        double r1158670 = r1158668 * r1158669;
        return r1158670;
}

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 div-inv0.4

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

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

Reproduce

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