Average Error: 11.3 → 10.4
Time: 4.8s
Precision: binary64
\[\left(\sqrt{\frac{2}{\pi}} \cdot e^{\frac{-{a}^{2}}{2}} + a \cdot \mathsf{erf}\left(\left(\frac{a}{\sqrt{2}}\right)\right)\right) - \left(\sqrt{\frac{2}{\pi}} \cdot e^{\frac{-{b}^{2}}{2}} + a \cdot \mathsf{erf}\left(\left(\frac{b}{\sqrt{2}}\right)\right)\right)\]
\[\sqrt{\frac{2}{\pi}} \cdot \left(e^{\frac{-{a}^{2}}{2}} - e^{\frac{-{b}^{2}}{2}}\right) + a \cdot \left(\mathsf{erf}\left(\left(\frac{a}{\sqrt{2}}\right)\right) - \mathsf{erf}\left(\left(\frac{b}{\sqrt{2}}\right)\right)\right)\]

Error

Bits error versus a

Bits error versus b

Derivation

  1. Initial program 11.3

    \[\left(\sqrt{\frac{2}{\pi}} \cdot e^{\frac{-{a}^{2}}{2}} + a \cdot \mathsf{erf}\left(\left(\frac{a}{\sqrt{2}}\right)\right)\right) - \left(\sqrt{\frac{2}{\pi}} \cdot e^{\frac{-{b}^{2}}{2}} + a \cdot \mathsf{erf}\left(\left(\frac{b}{\sqrt{2}}\right)\right)\right)\]
  2. Simplified10.4

    \[\leadsto \color{blue}{\sqrt{\frac{2}{\pi}} \cdot \left(e^{\frac{-{a}^{2}}{2}} - e^{\frac{-{b}^{2}}{2}}\right) + a \cdot \left(\mathsf{erf}\left(\left(\frac{a}{\sqrt{2}}\right)\right) - \mathsf{erf}\left(\left(\frac{b}{\sqrt{2}}\right)\right)\right)}\]
  3. Final simplification10.4

    \[\leadsto \sqrt{\frac{2}{\pi}} \cdot \left(e^{\frac{-{a}^{2}}{2}} - e^{\frac{-{b}^{2}}{2}}\right) + a \cdot \left(\mathsf{erf}\left(\left(\frac{a}{\sqrt{2}}\right)\right) - \mathsf{erf}\left(\left(\frac{b}{\sqrt{2}}\right)\right)\right)\]

Reproduce

herbie shell --seed 2020152 
(FPCore (a b)
  :name "(- (+ (* (sqrt (/ 2.0 PI)) (exp (/ (- (pow a 2.0)) 2.0))) (* a (erf (/ a (sqrt 2.0))))) (+ (* (sqrt (/ 2.0 PI)) (exp (/ (- (pow b 2.0)) 2.0))) (* a (erf (/ b (sqrt 2.0))))))"
  :precision binary64
  (- (+ (* (sqrt (/ 2.0 PI)) (exp (/ (neg (pow a 2.0)) 2.0))) (* a (erf (/ a (sqrt 2.0))))) (+ (* (sqrt (/ 2.0 PI)) (exp (/ (neg (pow b 2.0)) 2.0))) (* a (erf (/ b (sqrt 2.0)))))))