Error: 35.9 → 2.1
Time: 41.2s
Precision: 64
Ground Truth: 128
\[\sin \left(x + \varepsilon\right) - \sin x\]
\[\begin{cases} \left(\sin x \cdot \cos \varepsilon + \cos x \cdot \sin \varepsilon\right) - \sin x & \text{when } \varepsilon \le -2.5569065403496266 \cdot 10^{-24} \\ \varepsilon - \left(\left(x + \varepsilon\right) \cdot \left(x \cdot \varepsilon\right)\right) \cdot \frac{1}{2} & \text{when } \varepsilon \le 1.7471295764195059 \cdot 10^{-59} \\ \left(\sin x \cdot \cos \varepsilon + \cos x \cdot \sin \varepsilon\right) - \sin x & \text{otherwise} \end{cases}\]

Error

Bits error versus x

Bits error versus eps

Derivation

    if eps < -2.5569065403496266e-24 or 1.7471295764195059e-59 < eps

    1. Initial program 30.0

      \[\sin \left(x + \varepsilon\right) - \sin x\]
    2. Using strategy rm
    3. Applied sin-sum 3.5

      \[\leadsto \color{blue}{\left(\sin x \cdot \cos \varepsilon + \cos x \cdot \sin \varepsilon\right)} - \sin x\]

    if -2.5569065403496266e-24 < eps < 1.7471295764195059e-59

    1. Initial program 44.5

      \[\sin \left(x + \varepsilon\right) - \sin x\]
    2. Applied taylor 8.8

      \[\leadsto \varepsilon - \left(\frac{1}{2} \cdot \left(\varepsilon \cdot {x}^2\right) + \frac{1}{2} \cdot \left({\varepsilon}^2 \cdot x\right)\right)\]
    3. Taylor expanded around 0 8.8

      \[\leadsto \color{blue}{\varepsilon - \left(\frac{1}{2} \cdot \left(\varepsilon \cdot {x}^2\right) + \frac{1}{2} \cdot \left({\varepsilon}^2 \cdot x\right)\right)}\]
    4. Applied simplify 0.1

      \[\leadsto \color{blue}{\varepsilon - \left(\left(x + \varepsilon\right) \cdot \left(x \cdot \varepsilon\right)\right) \cdot \frac{1}{2}}\]
  1. Removed slow pow expressions

Runtime

Total time: 41.2s Debug log

Please report a bug with the following info:

herbie --seed '#(1966202471 1143122768 372068966 4194751085 2958254147 2705735398)'
(FPCore (x eps)
  :name "NMSE example 3.3"
  
  :target
  (* 2 (* (cos (+ x (/ eps 2))) (sin (/ eps 2))))(- (sin (+ x eps)) (sin x)))