\[\tan \left(x + \varepsilon\right) - \tan x\]
Test:
NMSE problem 3.3.2
Bits:
128 bits
Bits error versus x
Bits error versus eps
Time: 30.2 s
Input Error: 36.6
Output Error: 24.7
Log:
Profile: 🕒
\(\begin{cases} \frac{\sin x \cdot \cos \varepsilon + \cos x \cdot \sin \varepsilon}{\cos \left(x + \varepsilon\right)} - \tan x & \text{when } \varepsilon \le -3.484092632009674 \cdot 10^{-67} \\ \varepsilon + \left({\varepsilon}^{3} \cdot {x}^2 + {\varepsilon}^{4} \cdot {x}^{3}\right) & \text{when } \varepsilon \le 2.1094196219887136 \cdot 10^{-42} \\ \frac{\sin x \cdot \cos \varepsilon + \cos x \cdot \sin \varepsilon}{\cos \left(x + \varepsilon\right)} - \tan x & \text{otherwise} \end{cases}\)

    if eps < -3.484092632009674e-67 or 2.1094196219887136e-42 < eps

    1. Started with
      \[\tan \left(x + \varepsilon\right) - \tan x\]
      29.9
    2. Using strategy rm
      29.9
    3. Applied tan-quot to get
      \[\color{red}{\tan \left(x + \varepsilon\right)} - \tan x \leadsto \color{blue}{\frac{\sin \left(x + \varepsilon\right)}{\cos \left(x + \varepsilon\right)}} - \tan x\]
      29.9
    4. Using strategy rm
      29.9
    5. Applied sin-sum to get
      \[\frac{\color{red}{\sin \left(x + \varepsilon\right)}}{\cos \left(x + \varepsilon\right)} - \tan x \leadsto \frac{\color{blue}{\sin x \cdot \cos \varepsilon + \cos x \cdot \sin \varepsilon}}{\cos \left(x + \varepsilon\right)} - \tan x\]
      28.2

    if -3.484092632009674e-67 < eps < 2.1094196219887136e-42

    1. Started with
      \[\tan \left(x + \varepsilon\right) - \tan x\]
      46.2
    2. Applied taylor to get
      \[\tan \left(x + \varepsilon\right) - \tan x \leadsto \varepsilon + \left({\varepsilon}^{3} \cdot {x}^2 + {\varepsilon}^{4} \cdot {x}^{3}\right)\]
      19.7
    3. Taylor expanded around 0 to get
      \[\color{red}{\varepsilon + \left({\varepsilon}^{3} \cdot {x}^2 + {\varepsilon}^{4} \cdot {x}^{3}\right)} \leadsto \color{blue}{\varepsilon + \left({\varepsilon}^{3} \cdot {x}^2 + {\varepsilon}^{4} \cdot {x}^{3}\right)}\]
      19.7

  1. Removed slow pow expressions

Original test:


(lambda ((x default) (eps default))
  #:name "NMSE problem 3.3.2"
  (- (tan (+ x eps)) (tan x))
  #:target
  (/ (sin eps) (* (cos x) (cos (+ x eps)))))