Average Error: 15.1 → 0.4
Time: 33.4s
Precision: 64
Internal Precision: 128
\[r \cdot \frac{\sin b}{\cos \left(a + b\right)}\]
\[\frac{\sin b}{(\left(\cos a\right) \cdot \left(\cos b\right) + \left(-\sqrt[3]{{\left(\sin a \cdot \sin b\right)}^{3}}\right))_*} \cdot r\]

Error

Bits error versus r

Bits error versus a

Bits error versus b

Derivation

  1. Initial program 15.1

    \[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 fma-neg0.3

    \[\leadsto r \cdot \frac{\sin b}{\color{blue}{(\left(\cos a\right) \cdot \left(\cos b\right) + \left(-\sin a \cdot \sin b\right))_*}}\]
  6. Using strategy rm
  7. Applied add-cbrt-cube0.4

    \[\leadsto r \cdot \frac{\sin b}{(\left(\cos a\right) \cdot \left(\cos b\right) + \left(-\sin a \cdot \color{blue}{\sqrt[3]{\left(\sin b \cdot \sin b\right) \cdot \sin b}}\right))_*}\]
  8. Applied add-cbrt-cube0.4

    \[\leadsto r \cdot \frac{\sin b}{(\left(\cos a\right) \cdot \left(\cos b\right) + \left(-\color{blue}{\sqrt[3]{\left(\sin a \cdot \sin a\right) \cdot \sin a}} \cdot \sqrt[3]{\left(\sin b \cdot \sin b\right) \cdot \sin b}\right))_*}\]
  9. Applied cbrt-unprod0.4

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

    \[\leadsto r \cdot \frac{\sin b}{(\left(\cos a\right) \cdot \left(\cos b\right) + \left(-\sqrt[3]{\color{blue}{{\left(\sin b \cdot \sin a\right)}^{3}}}\right))_*}\]
  11. Final simplification0.4

    \[\leadsto \frac{\sin b}{(\left(\cos a\right) \cdot \left(\cos b\right) + \left(-\sqrt[3]{{\left(\sin a \cdot \sin b\right)}^{3}}\right))_*} \cdot r\]

Runtime

Time bar (total: 33.4s)Debug logProfile

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