Average Error: 30.4 → 0.2
Time: 1.1m
Precision: 64
Internal Precision: 2432
\[\frac{1 - \cos x}{\sin x}\]
\[\begin{array}{l} \mathbf{if}\;\frac{\sin x}{1 - \cos x} \le -1.0388904609212473:\\ \;\;\;\;(e^{\log_* (1 + \frac{\sin x}{1 + \cos x})} - 1)^*\\ \mathbf{if}\;\frac{\sin x}{1 - \cos x} \le 2.1509551556367295:\\ \;\;\;\;\frac{{1}^{3} - {\left(\cos x\right)}^{3}}{(\left(\sin x\right) \cdot \left((\left(\cos x\right) \cdot \left(\cos x\right) + \left(\cos x\right))_*\right) + \left(\sin x\right))_*}\\ \mathbf{else}:\\ \;\;\;\;(e^{\log_* (1 + \frac{\sin x}{1 + \cos x})} - 1)^*\\ \end{array}\]

Error

Bits error versus x

Target

Original30.4
Target0
Herbie0.2
\[\tan \left(\frac{x}{2}\right)\]

Derivation

  1. Split input into 2 regimes
  2. if (/ (sin x) (- 1 (cos x))) < -1.0388904609212473 or 2.1509551556367295 < (/ (sin x) (- 1 (cos x)))

    1. Initial program 43.6

      \[\frac{1 - \cos x}{\sin x}\]
    2. Using strategy rm
    3. Applied flip--43.7

      \[\leadsto \frac{\color{blue}{\frac{1 \cdot 1 - \cos x \cdot \cos x}{1 + \cos x}}}{\sin x}\]
    4. Applied simplify20.8

      \[\leadsto \frac{\frac{\color{blue}{\sin x \cdot \sin x}}{1 + \cos x}}{\sin x}\]
    5. Using strategy rm
    6. Applied expm1-log1p-u20.9

      \[\leadsto \color{blue}{(e^{\log_* (1 + \frac{\frac{\sin x \cdot \sin x}{1 + \cos x}}{\sin x})} - 1)^*}\]
    7. Applied simplify0.1

      \[\leadsto (e^{\color{blue}{\log_* (1 + \frac{\sin x}{1 + \cos x})}} - 1)^*\]

    if -1.0388904609212473 < (/ (sin x) (- 1 (cos x))) < 2.1509551556367295

    1. Initial program 0.4

      \[\frac{1 - \cos x}{\sin x}\]
    2. Using strategy rm
    3. Applied flip3--0.5

      \[\leadsto \frac{\color{blue}{\frac{{1}^{3} - {\left(\cos x\right)}^{3}}{1 \cdot 1 + \left(\cos x \cdot \cos x + 1 \cdot \cos x\right)}}}{\sin x}\]
    4. Applied associate-/l/0.5

      \[\leadsto \color{blue}{\frac{{1}^{3} - {\left(\cos x\right)}^{3}}{\sin x \cdot \left(1 \cdot 1 + \left(\cos x \cdot \cos x + 1 \cdot \cos x\right)\right)}}\]
    5. Applied simplify0.4

      \[\leadsto \frac{{1}^{3} - {\left(\cos x\right)}^{3}}{\color{blue}{(\left(\sin x\right) \cdot \left((\left(\cos x\right) \cdot \left(\cos x\right) + \left(\cos x\right))_*\right) + \left(\sin x\right))_*}}\]
  3. Recombined 2 regimes into one program.

Runtime

Time bar (total: 1.1m)Debug logProfile

herbie shell --seed '#(1064300848 3212030778 2049303162 3567222883 2277747821 1384278011)' +o rules:numerics
(FPCore (x)
  :name "tanhf (example 3.4)"
  :herbie-expected 2

  :herbie-target
  (tan (/ x 2))

  (/ (- 1 (cos x)) (sin x)))