Average Error: 15.3 → 0.4
Time: 6.7s
Precision: 64
\[\frac{r \cdot \sin b}{\cos \left(a + b\right)}\]
\[\frac{r}{\frac{\cos a \cdot \cos b - \sin a \cdot \sin b}{\sin b}}\]
\frac{r \cdot \sin b}{\cos \left(a + b\right)}
\frac{r}{\frac{\cos a \cdot \cos b - \sin a \cdot \sin b}{\sin b}}
double f(double r, double a, double b) {
        double r18316 = r;
        double r18317 = b;
        double r18318 = sin(r18317);
        double r18319 = r18316 * r18318;
        double r18320 = a;
        double r18321 = r18320 + r18317;
        double r18322 = cos(r18321);
        double r18323 = r18319 / r18322;
        return r18323;
}

double f(double r, double a, double b) {
        double r18324 = r;
        double r18325 = a;
        double r18326 = cos(r18325);
        double r18327 = b;
        double r18328 = cos(r18327);
        double r18329 = r18326 * r18328;
        double r18330 = sin(r18325);
        double r18331 = sin(r18327);
        double r18332 = r18330 * r18331;
        double r18333 = r18329 - r18332;
        double r18334 = r18333 / r18331;
        double r18335 = r18324 / r18334;
        return r18335;
}

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

    \[\frac{r \cdot \sin b}{\cos \left(a + b\right)}\]
  2. Using strategy rm
  3. Applied cos-sum0.3

    \[\leadsto \frac{r \cdot \sin b}{\color{blue}{\cos a \cdot \cos b - \sin a \cdot \sin b}}\]
  4. Using strategy rm
  5. Applied associate-/l*0.4

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

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

Reproduce

herbie shell --seed 2019352 +o rules:numerics
(FPCore (r a b)
  :name "r*sin(b)/cos(a+b), A"
  :precision binary64
  (/ (* r (sin b)) (cos (+ a b))))