Average Error: 15.0 → 0.3
Time: 13.0s
Precision: 64
\[\frac{r \cdot \sin b}{\cos \left(a + b\right)}\]
\[\frac{r \cdot \sin b}{\frac{\mathsf{fma}\left(\cos a, \cos b, \sin b \cdot \sin a\right) \cdot \mathsf{fma}\left(\cos a, \cos b, -\sin b \cdot \sin a\right)}{\mathsf{fma}\left(\cos a, \cos b, \sin b \cdot \sin a\right)}}\]
\frac{r \cdot \sin b}{\cos \left(a + b\right)}
\frac{r \cdot \sin b}{\frac{\mathsf{fma}\left(\cos a, \cos b, \sin b \cdot \sin a\right) \cdot \mathsf{fma}\left(\cos a, \cos b, -\sin b \cdot \sin a\right)}{\mathsf{fma}\left(\cos a, \cos b, \sin b \cdot \sin a\right)}}
double f(double r, double a, double b) {
        double r19138 = r;
        double r19139 = b;
        double r19140 = sin(r19139);
        double r19141 = r19138 * r19140;
        double r19142 = a;
        double r19143 = r19142 + r19139;
        double r19144 = cos(r19143);
        double r19145 = r19141 / r19144;
        return r19145;
}

double f(double r, double a, double b) {
        double r19146 = r;
        double r19147 = b;
        double r19148 = sin(r19147);
        double r19149 = r19146 * r19148;
        double r19150 = a;
        double r19151 = cos(r19150);
        double r19152 = cos(r19147);
        double r19153 = sin(r19150);
        double r19154 = r19148 * r19153;
        double r19155 = fma(r19151, r19152, r19154);
        double r19156 = -r19154;
        double r19157 = fma(r19151, r19152, r19156);
        double r19158 = r19155 * r19157;
        double r19159 = r19158 / r19155;
        double r19160 = r19149 / r19159;
        return r19160;
}

Error

Bits error versus r

Bits error versus a

Bits error versus b

Derivation

  1. Initial program 15.0

    \[\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 flip--0.4

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

    \[\leadsto \frac{r \cdot \sin b}{\frac{\color{blue}{\mathsf{fma}\left(\cos a, \cos b, \sin b \cdot \sin a\right) \cdot \mathsf{fma}\left(\cos a, \cos b, -\sin b \cdot \sin a\right)}}{\cos a \cdot \cos b + \sin a \cdot \sin b}}\]
  7. Simplified0.3

    \[\leadsto \frac{r \cdot \sin b}{\frac{\mathsf{fma}\left(\cos a, \cos b, \sin b \cdot \sin a\right) \cdot \mathsf{fma}\left(\cos a, \cos b, -\sin b \cdot \sin a\right)}{\color{blue}{\mathsf{fma}\left(\cos a, \cos b, \sin b \cdot \sin a\right)}}}\]
  8. Using strategy rm
  9. Applied *-un-lft-identity0.3

    \[\leadsto \color{blue}{1 \cdot \frac{r \cdot \sin b}{\frac{\mathsf{fma}\left(\cos a, \cos b, \sin b \cdot \sin a\right) \cdot \mathsf{fma}\left(\cos a, \cos b, -\sin b \cdot \sin a\right)}{\mathsf{fma}\left(\cos a, \cos b, \sin b \cdot \sin a\right)}}}\]
  10. Final simplification0.3

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

Reproduce

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