Average Error: 37.0 → 3.8
Time: 1.0m
Precision: 64
Ground Truth: 128
\[\cos \left(x + \varepsilon\right) - \cos x\]
\[\begin{array}{l} \mathbf{if}\;\varepsilon \le -3.043772507835201 \cdot 10^{-13}:\\ \;\;\;\;\cos x \cdot \cos \varepsilon - \log \left(e^{\cos x + \sin \varepsilon \cdot \sin x}\right)\\ \mathbf{if}\;\varepsilon \le 2.6514267721199557 \cdot 10^{-08}:\\ \;\;\;\;\left(\varepsilon \cdot \frac{1}{6}\right) \cdot {x}^3 - \varepsilon \cdot \left(\frac{1}{2} \cdot \varepsilon + x\right)\\ \mathbf{else}:\\ \;\;\;\;\log \left(e^{\left(\cos \varepsilon \cdot \cos x - \cos x\right) - \sin x \cdot \sin \varepsilon}\right)\\ \end{array}\]

Error

Bits error versus x

Bits error versus eps

Derivation

  1. Split input into 3 regimes.
  2. if eps < -3.043772507835201e-13

    1. Initial program 30.6

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

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

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

      \[\leadsto \cos x \cdot \cos \varepsilon - \left(\sin x \cdot \sin \varepsilon + \color{blue}{\log \left(e^{\cos x}\right)}\right)\]
    7. Applied add-log-exp 1.9

      \[\leadsto \cos x \cdot \cos \varepsilon - \left(\color{blue}{\log \left(e^{\sin x \cdot \sin \varepsilon}\right)} + \log \left(e^{\cos x}\right)\right)\]
    8. Applied sum-log 1.9

      \[\leadsto \cos x \cdot \cos \varepsilon - \color{blue}{\log \left(e^{\sin x \cdot \sin \varepsilon} \cdot e^{\cos x}\right)}\]
    9. Applied simplify 1.8

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

    if -3.043772507835201e-13 < eps < 2.6514267721199557e-08

    1. Initial program 45.5

      \[\cos \left(x + \varepsilon\right) - \cos x\]
    2. Applied taylor 7.0

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

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

      \[\leadsto \color{blue}{\left(\varepsilon \cdot \frac{1}{6}\right) \cdot {x}^3 - \varepsilon \cdot \left(\frac{1}{2} \cdot \varepsilon + x\right)}\]

    if 2.6514267721199557e-08 < eps

    1. Initial program 31.5

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

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

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

      \[\leadsto \cos x \cdot \cos \varepsilon - \left(\sin x \cdot \sin \varepsilon + \color{blue}{\log \left(e^{\cos x}\right)}\right)\]
    7. Applied add-log-exp 1.4

      \[\leadsto \cos x \cdot \cos \varepsilon - \left(\color{blue}{\log \left(e^{\sin x \cdot \sin \varepsilon}\right)} + \log \left(e^{\cos x}\right)\right)\]
    8. Applied sum-log 1.4

      \[\leadsto \cos x \cdot \cos \varepsilon - \color{blue}{\log \left(e^{\sin x \cdot \sin \varepsilon} \cdot e^{\cos x}\right)}\]
    9. Applied add-log-exp 1.6

      \[\leadsto \color{blue}{\log \left(e^{\cos x \cdot \cos \varepsilon}\right)} - \log \left(e^{\sin x \cdot \sin \varepsilon} \cdot e^{\cos x}\right)\]
    10. Applied diff-log 1.7

      \[\leadsto \color{blue}{\log \left(\frac{e^{\cos x \cdot \cos \varepsilon}}{e^{\sin x \cdot \sin \varepsilon} \cdot e^{\cos x}}\right)}\]
    11. Applied simplify 1.3

      \[\leadsto \log \color{blue}{\left(e^{\left(\cos \varepsilon \cdot \cos x - \cos x\right) - \sin x \cdot \sin \varepsilon}\right)}\]
  3. Recombined 3 regimes into one program.
  4. Removed slow pow expressions

Runtime

Total time: 1.0m Debug log

Please report a bug with the following info:

herbie --seed '#(2912972902 3153023583 909927537 2443413518 4264939960 3148664052)'
(FPCore (x eps)
  :name "NMSE problem 3.3.5"
  (- (cos (+ x eps)) (cos x)))