Average Error: 14.8 → 0.3
Time: 21.5s
Precision: 64
\[r \cdot \frac{\sin b}{\cos \left(a + b\right)}\]
\[\frac{\sin b}{\cos a \cdot \cos b - \mathsf{expm1}\left(\mathsf{log1p}\left(\sin a \cdot \sin b\right)\right)} \cdot r\]
r \cdot \frac{\sin b}{\cos \left(a + b\right)}
\frac{\sin b}{\cos a \cdot \cos b - \mathsf{expm1}\left(\mathsf{log1p}\left(\sin a \cdot \sin b\right)\right)} \cdot r
double f(double r, double a, double b) {
        double r413626 = r;
        double r413627 = b;
        double r413628 = sin(r413627);
        double r413629 = a;
        double r413630 = r413629 + r413627;
        double r413631 = cos(r413630);
        double r413632 = r413628 / r413631;
        double r413633 = r413626 * r413632;
        return r413633;
}

double f(double r, double a, double b) {
        double r413634 = b;
        double r413635 = sin(r413634);
        double r413636 = a;
        double r413637 = cos(r413636);
        double r413638 = cos(r413634);
        double r413639 = r413637 * r413638;
        double r413640 = sin(r413636);
        double r413641 = r413640 * r413635;
        double r413642 = log1p(r413641);
        double r413643 = expm1(r413642);
        double r413644 = r413639 - r413643;
        double r413645 = r413635 / r413644;
        double r413646 = r;
        double r413647 = r413645 * r413646;
        return r413647;
}

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

    \[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. Applied associate-*r*0.4

    \[\leadsto \color{blue}{\left(r \cdot \sin b\right) \cdot \frac{1}{\cos a \cdot \cos b - \sin a \cdot \sin b}}\]
  7. Using strategy rm
  8. Applied associate-*l*0.4

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

    \[\leadsto r \cdot \color{blue}{\frac{\sin b}{\cos a \cdot \cos b - \sin b \cdot \sin a}}\]
  10. Using strategy rm
  11. Applied expm1-log1p-u0.3

    \[\leadsto r \cdot \frac{\sin b}{\cos a \cdot \cos b - \color{blue}{\mathsf{expm1}\left(\mathsf{log1p}\left(\sin b \cdot \sin a\right)\right)}}\]
  12. Final simplification0.3

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

Reproduce

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