Average Error: 7.5 → 4.2
Time: 1.3s
Precision: binary64
\[e^{\frac{\left(-\left(x - a\right)\right) \cdot \left(x - a\right)}{\left(2 \cdot b\right) \cdot b}}\]
\[\begin{array}{l} \mathbf{if}\;\frac{\left(-\left(x - a\right)\right) \cdot \left(x - a\right)}{\left(2 \cdot b\right) \cdot b} \le -4.133323499500901 \cdot 10^{-252}:\\ \;\;\;\;e^{\frac{\left(-\left(x - a\right)\right) \cdot \left(x - a\right)}{\left(2 \cdot b\right) \cdot b}}\\ \mathbf{else}:\\ \;\;\;\;{\left(e^{a - x}\right)}^{\left(\frac{x - a}{\left(2 \cdot b\right) \cdot b}\right)}\\ \end{array}\]

Error

Bits error versus x

Bits error versus a

Bits error versus b

Derivation

  1. Split input into 2 regimes
  2. if (/ (* (neg (- x a)) (- x a)) (* (* 2.0 b) b)) < -4.133323499500901e-252

    1. Initial program 0.0

      \[e^{\frac{\left(-\left(x - a\right)\right) \cdot \left(x - a\right)}{\left(2 \cdot b\right) \cdot b}}\]

    if -4.133323499500901e-252 < (/ (* (neg (- x a)) (- x a)) (* (* 2.0 b) b))

    1. Initial program 23.3

      \[e^{\frac{\left(-\left(x - a\right)\right) \cdot \left(x - a\right)}{\left(2 \cdot b\right) \cdot b}}\]
    2. Simplified13.0

      \[\leadsto \color{blue}{{\left(e^{a - x}\right)}^{\left(\frac{x - a}{\left(2 \cdot b\right) \cdot b}\right)}}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification4.2

    \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{\left(-\left(x - a\right)\right) \cdot \left(x - a\right)}{\left(2 \cdot b\right) \cdot b} \le -4.133323499500901 \cdot 10^{-252}:\\ \;\;\;\;e^{\frac{\left(-\left(x - a\right)\right) \cdot \left(x - a\right)}{\left(2 \cdot b\right) \cdot b}}\\ \mathbf{else}:\\ \;\;\;\;{\left(e^{a - x}\right)}^{\left(\frac{x - a}{\left(2 \cdot b\right) \cdot b}\right)}\\ \end{array}\]

Reproduce

herbie shell --seed 2020153 
(FPCore (x a b)
  :name "(exp (/ (* (- (- x a)) (- x a)) (* (* 2 b) b)))"
  :precision binary64
  (exp (/ (* (neg (- x a)) (- x a)) (* (* 2.0 b) b))))