Average Error: 30.2 → 1.1
Time: 1.9m
Precision: 64
Internal Precision: 2432
\[\frac{1 - \cos x}{\sin x}\]
\[\frac{\sin x}{\sqrt{\cos x + 1}} \cdot \frac{1}{\sqrt{\cos x + 1}}\]

Error

Bits error versus x

Target

Original30.2
Target0.0
Herbie1.1
\[\tan \left(\frac{x}{2}\right)\]

Derivation

  1. Initial program 30.2

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

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

    \[\leadsto \frac{\frac{\color{blue}{\sin x \cdot \sin x}}{1 + \cos x}}{\sin x}\]
  5. Using strategy rm
  6. Applied *-un-lft-identity14.9

    \[\leadsto \frac{\frac{\sin x \cdot \sin x}{1 + \cos x}}{\color{blue}{1 \cdot \sin x}}\]
  7. Applied add-sqr-sqrt15.3

    \[\leadsto \frac{\frac{\sin x \cdot \sin x}{\color{blue}{\sqrt{1 + \cos x} \cdot \sqrt{1 + \cos x}}}}{1 \cdot \sin x}\]
  8. Applied times-frac15.2

    \[\leadsto \frac{\color{blue}{\frac{\sin x}{\sqrt{1 + \cos x}} \cdot \frac{\sin x}{\sqrt{1 + \cos x}}}}{1 \cdot \sin x}\]
  9. Applied times-frac1.1

    \[\leadsto \color{blue}{\frac{\frac{\sin x}{\sqrt{1 + \cos x}}}{1} \cdot \frac{\frac{\sin x}{\sqrt{1 + \cos x}}}{\sin x}}\]
  10. Applied simplify1.1

    \[\leadsto \color{blue}{\frac{\sin x}{\sqrt{\cos x + 1}}} \cdot \frac{\frac{\sin x}{\sqrt{1 + \cos x}}}{\sin x}\]
  11. Applied simplify1.1

    \[\leadsto \frac{\sin x}{\sqrt{\cos x + 1}} \cdot \color{blue}{\frac{1}{\sqrt{\cos x + 1}}}\]
  12. Removed slow pow expressions.

Runtime

Time bar (total: 1.9m)Debug log

herbie shell --seed '#(2094665535 3654809497 1731717781 3082199462 566033875 575777438)' 
(FPCore (x)
  :name "tanhf (example 3.4)"
  :herbie-expected 1

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

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