Average Error: 36.8 → 0.8
Time: 46.6s
Precision: 64
Ground Truth: 128
\[\sin \left(x + \varepsilon\right) - \sin x\]
\[\begin{array}{l} \mathbf{if}\;\varepsilon \le -1.0210580186871404 \cdot 10^{-93}:\\ \;\;\;\;\sqrt[3]{{\left(\cos x \cdot \sin \varepsilon - \left(\sin x - \sin x \cdot \cos \varepsilon\right)\right)}^3}\\ \mathbf{if}\;\varepsilon \le 2.4194360613066497 \cdot 10^{-107}:\\ \;\;\;\;\varepsilon - \left(\left(x + \varepsilon\right) \cdot \left(x \cdot \varepsilon\right)\right) \cdot \frac{1}{2}\\ \mathbf{else}:\\ \;\;\;\;\sqrt[3]{{\left(\cos x \cdot \sin \varepsilon - \left(\sin x - \sin x \cdot \cos \varepsilon\right)\right)}^3}\\ \end{array}\]

Error

Bits error versus x

Bits error versus eps

Target

Original36.8
Comparison24.9
Herbie0.8
\[ 2 \cdot \left(\cos \left(x + \frac{\varepsilon}{2}\right) \cdot \sin \left(\frac{\varepsilon}{2}\right)\right) \]

Derivation

  1. Split input into 2 regimes.
  2. if eps < -1.0210580186871404e-93 or 2.4194360613066497e-107 < eps

    1. Initial program 31.0

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

      \[\leadsto \color{blue}{\left(\sin x \cdot \cos \varepsilon + \cos x \cdot \sin \varepsilon\right)} - \sin x\]
    4. Applied associate--l+ 7.5

      \[\leadsto \color{blue}{\sin x \cdot \cos \varepsilon + \left(\cos x \cdot \sin \varepsilon - \sin x\right)}\]
    5. Using strategy rm
    6. Applied add-cube-cbrt 7.7

      \[\leadsto \sin x \cdot \color{blue}{{\left(\sqrt[3]{\cos \varepsilon}\right)}^3} + \left(\cos x \cdot \sin \varepsilon - \sin x\right)\]
    7. Applied add-cube-cbrt 7.8

      \[\leadsto \color{blue}{{\left(\sqrt[3]{\sin x}\right)}^3} \cdot {\left(\sqrt[3]{\cos \varepsilon}\right)}^3 + \left(\cos x \cdot \sin \varepsilon - \sin x\right)\]
    8. Applied cube-unprod 7.8

      \[\leadsto \color{blue}{{\left(\sqrt[3]{\sin x} \cdot \sqrt[3]{\cos \varepsilon}\right)}^3} + \left(\cos x \cdot \sin \varepsilon - \sin x\right)\]
    9. Using strategy rm
    10. Applied add-cbrt-cube 8.2

      \[\leadsto \color{blue}{\sqrt[3]{{\left({\left(\sqrt[3]{\sin x} \cdot \sqrt[3]{\cos \varepsilon}\right)}^3 + \left(\cos x \cdot \sin \varepsilon - \sin x\right)\right)}^3}}\]
    11. Applied simplify 1.1

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

    if -1.0210580186871404e-93 < eps < 2.4194360613066497e-107

    1. Initial program 48.8

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

      \[\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 10.7

      \[\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}}\]
  3. Recombined 2 regimes into one program.
  4. Removed slow pow expressions

Runtime

Total time: 46.6s Debug log

Please report a bug with the following info:

herbie --seed '#(3156327554 3089673427 2722897680 863775740 3950877736 2254516128)'
(FPCore (x eps)
  :name "NMSE example 3.3"

  :target
  (* 2 (* (cos (+ x (/ eps 2))) (sin (/ eps 2))))

  (- (sin (+ x eps)) (sin x)))