\[\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: 17.7 s
Input Error: 17.0
Output Error: 7.5
Log:
Profile: 🕒
\(\begin{cases} \tan \left(x + \varepsilon\right) - \frac{\sin x}{\cos x} & \text{when } \varepsilon \le -0.0032873317f0 \\ \varepsilon & \text{when } \varepsilon \le 0.004007106f0 \\ \tan \left(x + \varepsilon\right) - \frac{\sin x}{\cos x} & \text{otherwise} \end{cases}\)

    if eps < -0.0032873317f0 or 0.004007106f0 < eps

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

    if -0.0032873317f0 < eps < 0.004007106f0

    1. Started with
      \[\tan \left(x + \varepsilon\right) - \tan x\]
      19.9
    2. Using strategy rm
      19.9
    3. Applied tan-cotan to get
      \[\tan \left(x + \varepsilon\right) - \color{red}{\tan x} \leadsto \tan \left(x + \varepsilon\right) - \color{blue}{\frac{1}{\cot x}}\]
      20.3
    4. Applied tan-cotan to get
      \[\color{red}{\tan \left(x + \varepsilon\right)} - \frac{1}{\cot x} \leadsto \color{blue}{\frac{1}{\cot \left(x + \varepsilon\right)}} - \frac{1}{\cot x}\]
      19.9
    5. Applied frac-sub to get
      \[\color{red}{\frac{1}{\cot \left(x + \varepsilon\right)} - \frac{1}{\cot x}} \leadsto \color{blue}{\frac{1 \cdot \cot x - \cot \left(x + \varepsilon\right) \cdot 1}{\cot \left(x + \varepsilon\right) \cdot \cot x}}\]
      19.9
    6. Applied simplify to get
      \[\frac{\color{red}{1 \cdot \cot x - \cot \left(x + \varepsilon\right) \cdot 1}}{\cot \left(x + \varepsilon\right) \cdot \cot x} \leadsto \frac{\color{blue}{\cot x - \cot \left(\varepsilon + x\right)}}{\cot \left(x + \varepsilon\right) \cdot \cot x}\]
      19.9
    7. Applied taylor to get
      \[\frac{\cot x - \cot \left(\varepsilon + x\right)}{\cot \left(x + \varepsilon\right) \cdot \cot x} \leadsto \varepsilon + \left(\varepsilon \cdot {x}^2 + {\varepsilon}^2 \cdot x\right)\]
      15.5
    8. Taylor expanded around 0 to get
      \[\color{red}{\varepsilon + \left(\varepsilon \cdot {x}^2 + {\varepsilon}^2 \cdot x\right)} \leadsto \color{blue}{\varepsilon + \left(\varepsilon \cdot {x}^2 + {\varepsilon}^2 \cdot x\right)}\]
      15.5
    9. Applied simplify to get
      \[\color{red}{\varepsilon + \left(\varepsilon \cdot {x}^2 + {\varepsilon}^2 \cdot x\right)} \leadsto \color{blue}{\left(\varepsilon + x\right) \cdot \left(x \cdot \varepsilon\right) + \varepsilon}\]
      15.4
    10. Applied taylor to get
      \[\left(\varepsilon + x\right) \cdot \left(x \cdot \varepsilon\right) + \varepsilon \leadsto 0 + \varepsilon\]
      0
    11. Taylor expanded around 0 to get
      \[\color{red}{0} + \varepsilon \leadsto \color{blue}{0} + \varepsilon\]
      0
    12. Applied simplify to get
      \[0 + \varepsilon \leadsto \varepsilon\]
      0

    13. Applied final simplification

  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)))))