\[\frac{e^{x} - 1}{x}\]
Test:
Kahan's exp quotient
Bits:
128 bits
Bits error versus x
Time: 5.7 s
Input Error: 43.2
Output Error: 0.2
Log:
Profile: 🕒
\(\begin{cases} \frac{e^{x}}{x} - \frac{1}{x} & \text{when } x \le -8.102966659834604 \cdot 10^{-08} \\ \frac{1}{6} \cdot {x}^2 + \left(1 + \frac{1}{2} \cdot x\right) & \text{otherwise} \end{cases}\)

    if x < -8.102966659834604e-08

    1. Started with
      \[\frac{e^{x} - 1}{x}\]
      0.2
    2. Using strategy rm
      0.2
    3. Applied div-sub to get
      \[\color{red}{\frac{e^{x} - 1}{x}} \leadsto \color{blue}{\frac{e^{x}}{x} - \frac{1}{x}}\]
      0.3

    if -8.102966659834604e-08 < x

    1. Started with
      \[\frac{e^{x} - 1}{x}\]
      60.7
    2. Applied taylor to get
      \[\frac{e^{x} - 1}{x} \leadsto \frac{1}{6} \cdot {x}^2 + \left(1 + \frac{1}{2} \cdot x\right)\]
      0.1
    3. Taylor expanded around 0 to get
      \[\color{red}{\frac{1}{6} \cdot {x}^2 + \left(1 + \frac{1}{2} \cdot x\right)} \leadsto \color{blue}{\frac{1}{6} \cdot {x}^2 + \left(1 + \frac{1}{2} \cdot x\right)}\]
      0.1

  1. Removed slow pow expressions

Original test:


(lambda ((x default))
  #:name "Kahan's exp quotient"
  (/ (- (exp x) 1) x)
  #:target
  (if (and (< x 1) (> x -1)) (/ (- (exp x) 1) (log (exp x))) (/ (- (exp x) 1) x)))