Average Error: 14.9 → 0.4
Time: 16.9s
Precision: 64
\[r \cdot \frac{\sin b}{\cos \left(a + b\right)}\]
\[r \cdot \frac{1}{\frac{\cos a \cdot \cos b - \sin b \cdot \sin a}{\sin b}}\]
r \cdot \frac{\sin b}{\cos \left(a + b\right)}
r \cdot \frac{1}{\frac{\cos a \cdot \cos b - \sin b \cdot \sin a}{\sin b}}
double f(double r, double a, double b) {
        double r26451 = r;
        double r26452 = b;
        double r26453 = sin(r26452);
        double r26454 = a;
        double r26455 = r26454 + r26452;
        double r26456 = cos(r26455);
        double r26457 = r26453 / r26456;
        double r26458 = r26451 * r26457;
        return r26458;
}

double f(double r, double a, double b) {
        double r26459 = r;
        double r26460 = 1.0;
        double r26461 = a;
        double r26462 = cos(r26461);
        double r26463 = b;
        double r26464 = cos(r26463);
        double r26465 = r26462 * r26464;
        double r26466 = sin(r26463);
        double r26467 = sin(r26461);
        double r26468 = r26466 * r26467;
        double r26469 = r26465 - r26468;
        double r26470 = r26469 / r26466;
        double r26471 = r26460 / r26470;
        double r26472 = r26459 * r26471;
        return r26472;
}

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

    \[\leadsto r \cdot \frac{\sin b}{\cos a \cdot \cos b - \color{blue}{\sin b \cdot \sin a}}\]
  5. Using strategy rm
  6. Applied clear-num0.4

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

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

Reproduce

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