\[1 - \left(\frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(0.254829592 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(-0.284496736 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(1.421413741 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(-1.453152027 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot 1.061405429\right)\right)\right)\right)\right) \cdot e^{-\left|x\right| \cdot \left|x\right|}\]
Test:
Jmat.Real.erf
Bits:
128 bits
Bits error versus x
Time: 10.4 s
Input Error: 12.1
Output Error: 11.3
Log:
Profile: 🕒
\(1 - \frac{(\left((\left(\frac{1.061405429}{(0.3275911 * \left(\left|x\right|\right) + 1)_*} + -1.453152027\right) * \left(\frac{\frac{1}{(0.3275911 * \left(\left|x\right|\right) + 1)_*}}{(0.3275911 * \left(\left|x\right|\right) + 1)_*}\right) + \left({\left(\sqrt{\frac{1.421413741}{(0.3275911 * \left(\left|x\right|\right) + 1)_*}}\right)}^2 + -0.284496736\right))_*\right) * \left(\frac{\frac{1}{(0.3275911 * \left(\left|x\right|\right) + 1)_*}}{0.3275911 \cdot \left|x\right| + 1}\right) + \left(\frac{0.254829592}{0.3275911 \cdot \left|x\right| + 1}\right))_*}{e^{\left|x\right| \cdot \left|x\right|}}\)
  1. Started with
    \[1 - \left(\frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(0.254829592 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(-0.284496736 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(1.421413741 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(-1.453152027 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot 1.061405429\right)\right)\right)\right)\right) \cdot e^{-\left|x\right| \cdot \left|x\right|}\]
    12.1
  2. Applied simplify to get
    \[\color{red}{1 - \left(\frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(0.254829592 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(-0.284496736 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(1.421413741 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(-1.453152027 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot 1.061405429\right)\right)\right)\right)\right) \cdot e^{-\left|x\right| \cdot \left|x\right|}} \leadsto \color{blue}{1 - \frac{(\left((\left(\frac{1.061405429}{(0.3275911 * \left(\left|x\right|\right) + 1)_*} + -1.453152027\right) * \left(\frac{\frac{1}{(0.3275911 * \left(\left|x\right|\right) + 1)_*}}{(0.3275911 * \left(\left|x\right|\right) + 1)_*}\right) + \left(\frac{1.421413741}{(0.3275911 * \left(\left|x\right|\right) + 1)_*} + -0.284496736\right))_*\right) * \left(\frac{\frac{1}{(0.3275911 * \left(\left|x\right|\right) + 1)_*}}{(0.3275911 * \left(\left|x\right|\right) + 1)_*}\right) + \left(\frac{0.254829592}{(0.3275911 * \left(\left|x\right|\right) + 1)_*}\right))_*}{e^{\left|x\right| \cdot \left|x\right|}}}\]
    13.0
  3. Using strategy rm
    13.0
  4. Applied add-sqr-sqrt to get
    \[1 - \frac{(\left((\left(\frac{1.061405429}{(0.3275911 * \left(\left|x\right|\right) + 1)_*} + -1.453152027\right) * \left(\frac{\frac{1}{(0.3275911 * \left(\left|x\right|\right) + 1)_*}}{(0.3275911 * \left(\left|x\right|\right) + 1)_*}\right) + \left(\color{red}{\frac{1.421413741}{(0.3275911 * \left(\left|x\right|\right) + 1)_*}} + -0.284496736\right))_*\right) * \left(\frac{\frac{1}{(0.3275911 * \left(\left|x\right|\right) + 1)_*}}{(0.3275911 * \left(\left|x\right|\right) + 1)_*}\right) + \left(\frac{0.254829592}{(0.3275911 * \left(\left|x\right|\right) + 1)_*}\right))_*}{e^{\left|x\right| \cdot \left|x\right|}} \leadsto 1 - \frac{(\left((\left(\frac{1.061405429}{(0.3275911 * \left(\left|x\right|\right) + 1)_*} + -1.453152027\right) * \left(\frac{\frac{1}{(0.3275911 * \left(\left|x\right|\right) + 1)_*}}{(0.3275911 * \left(\left|x\right|\right) + 1)_*}\right) + \left(\color{blue}{{\left(\sqrt{\frac{1.421413741}{(0.3275911 * \left(\left|x\right|\right) + 1)_*}}\right)}^2} + -0.284496736\right))_*\right) * \left(\frac{\frac{1}{(0.3275911 * \left(\left|x\right|\right) + 1)_*}}{(0.3275911 * \left(\left|x\right|\right) + 1)_*}\right) + \left(\frac{0.254829592}{(0.3275911 * \left(\left|x\right|\right) + 1)_*}\right))_*}{e^{\left|x\right| \cdot \left|x\right|}}\]
    11.3
  5. Using strategy rm
    11.3
  6. Applied fma-udef to get
    \[1 - \frac{(\left((\left(\frac{1.061405429}{(0.3275911 * \left(\left|x\right|\right) + 1)_*} + -1.453152027\right) * \left(\frac{\frac{1}{(0.3275911 * \left(\left|x\right|\right) + 1)_*}}{(0.3275911 * \left(\left|x\right|\right) + 1)_*}\right) + \left({\left(\sqrt{\frac{1.421413741}{(0.3275911 * \left(\left|x\right|\right) + 1)_*}}\right)}^2 + -0.284496736\right))_*\right) * \left(\frac{\frac{1}{(0.3275911 * \left(\left|x\right|\right) + 1)_*}}{(0.3275911 * \left(\left|x\right|\right) + 1)_*}\right) + \left(\frac{0.254829592}{\color{red}{(0.3275911 * \left(\left|x\right|\right) + 1)_*}}\right))_*}{e^{\left|x\right| \cdot \left|x\right|}} \leadsto 1 - \frac{(\left((\left(\frac{1.061405429}{(0.3275911 * \left(\left|x\right|\right) + 1)_*} + -1.453152027\right) * \left(\frac{\frac{1}{(0.3275911 * \left(\left|x\right|\right) + 1)_*}}{(0.3275911 * \left(\left|x\right|\right) + 1)_*}\right) + \left({\left(\sqrt{\frac{1.421413741}{(0.3275911 * \left(\left|x\right|\right) + 1)_*}}\right)}^2 + -0.284496736\right))_*\right) * \left(\frac{\frac{1}{(0.3275911 * \left(\left|x\right|\right) + 1)_*}}{(0.3275911 * \left(\left|x\right|\right) + 1)_*}\right) + \left(\frac{0.254829592}{\color{blue}{0.3275911 \cdot \left|x\right| + 1}}\right))_*}{e^{\left|x\right| \cdot \left|x\right|}}\]
    11.3
  7. Using strategy rm
    11.3
  8. Applied fma-udef to get
    \[1 - \frac{(\left((\left(\frac{1.061405429}{(0.3275911 * \left(\left|x\right|\right) + 1)_*} + -1.453152027\right) * \left(\frac{\frac{1}{(0.3275911 * \left(\left|x\right|\right) + 1)_*}}{(0.3275911 * \left(\left|x\right|\right) + 1)_*}\right) + \left({\left(\sqrt{\frac{1.421413741}{(0.3275911 * \left(\left|x\right|\right) + 1)_*}}\right)}^2 + -0.284496736\right))_*\right) * \left(\frac{\frac{1}{(0.3275911 * \left(\left|x\right|\right) + 1)_*}}{\color{red}{(0.3275911 * \left(\left|x\right|\right) + 1)_*}}\right) + \left(\frac{0.254829592}{0.3275911 \cdot \left|x\right| + 1}\right))_*}{e^{\left|x\right| \cdot \left|x\right|}} \leadsto 1 - \frac{(\left((\left(\frac{1.061405429}{(0.3275911 * \left(\left|x\right|\right) + 1)_*} + -1.453152027\right) * \left(\frac{\frac{1}{(0.3275911 * \left(\left|x\right|\right) + 1)_*}}{(0.3275911 * \left(\left|x\right|\right) + 1)_*}\right) + \left({\left(\sqrt{\frac{1.421413741}{(0.3275911 * \left(\left|x\right|\right) + 1)_*}}\right)}^2 + -0.284496736\right))_*\right) * \left(\frac{\frac{1}{(0.3275911 * \left(\left|x\right|\right) + 1)_*}}{\color{blue}{0.3275911 \cdot \left|x\right| + 1}}\right) + \left(\frac{0.254829592}{0.3275911 \cdot \left|x\right| + 1}\right))_*}{e^{\left|x\right| \cdot \left|x\right|}}\]
    11.3

  9. Removed slow pow expressions

Original test:


(lambda ((x default))
  #:name "Jmat.Real.erf"
  (- 1 (* (* (/ 1 (+ 1 (* 0.3275911 (fabs x)))) (+ 0.254829592 (* (/ 1 (+ 1 (* 0.3275911 (fabs x)))) (+ -0.284496736 (* (/ 1 (+ 1 (* 0.3275911 (fabs x)))) (+ 1.421413741 (* (/ 1 (+ 1 (* 0.3275911 (fabs x)))) (+ -1.453152027 (* (/ 1 (+ 1 (* 0.3275911 (fabs x)))) 1.061405429))))))))) (exp (- (* (fabs x) (fabs x)))))))