\frac{\left(\left(\left(\left(1 + 0.1049934947 \cdot \left(x \cdot x\right)\right) + 0.0424060604 \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) + 0.0072644182 \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + 0.0005064034 \cdot \left(\left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + 0.0001789971 \cdot \left(\left(\left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)}{\left(\left(\left(\left(\left(1 + 0.7715471019 \cdot \left(x \cdot x\right)\right) + 0.2909738639 \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) + 0.0694555761 \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + 0.0140005442 \cdot \left(\left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + 0.0008327945 \cdot \left(\left(\left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + \left(2 \cdot 0.0001789971\right) \cdot \left(\left(\left(\left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)} \cdot x\begin{array}{l}
\mathbf{if}\;x \le -1.1349577297696527:\\
\;\;\;\;\frac{0.2514179000665375}{\left(x \cdot x\right) \cdot x} + \left(\frac{0.5}{x} + \frac{0.15298196345929327}{{x}^{5}}\right)\\
\mathbf{elif}\;x \le 1.1391870338076322:\\
\;\;\;\;\mathsf{fma}\left({x}^{5}, 0.265709700396151, x - x \cdot \left(\left(x \cdot x\right) \cdot 0.6665536072\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{0.2514179000665375}{\left(x \cdot x\right) \cdot x} + \left(\frac{0.5}{x} + \frac{0.15298196345929327}{{x}^{5}}\right)\\
\end{array}double f(double x) {
double r6050698 = 1.0;
double r6050699 = 0.1049934947;
double r6050700 = x;
double r6050701 = r6050700 * r6050700;
double r6050702 = r6050699 * r6050701;
double r6050703 = r6050698 + r6050702;
double r6050704 = 0.0424060604;
double r6050705 = r6050701 * r6050701;
double r6050706 = r6050704 * r6050705;
double r6050707 = r6050703 + r6050706;
double r6050708 = 0.0072644182;
double r6050709 = r6050705 * r6050701;
double r6050710 = r6050708 * r6050709;
double r6050711 = r6050707 + r6050710;
double r6050712 = 0.0005064034;
double r6050713 = r6050709 * r6050701;
double r6050714 = r6050712 * r6050713;
double r6050715 = r6050711 + r6050714;
double r6050716 = 0.0001789971;
double r6050717 = r6050713 * r6050701;
double r6050718 = r6050716 * r6050717;
double r6050719 = r6050715 + r6050718;
double r6050720 = 0.7715471019;
double r6050721 = r6050720 * r6050701;
double r6050722 = r6050698 + r6050721;
double r6050723 = 0.2909738639;
double r6050724 = r6050723 * r6050705;
double r6050725 = r6050722 + r6050724;
double r6050726 = 0.0694555761;
double r6050727 = r6050726 * r6050709;
double r6050728 = r6050725 + r6050727;
double r6050729 = 0.0140005442;
double r6050730 = r6050729 * r6050713;
double r6050731 = r6050728 + r6050730;
double r6050732 = 0.0008327945;
double r6050733 = r6050732 * r6050717;
double r6050734 = r6050731 + r6050733;
double r6050735 = 2.0;
double r6050736 = r6050735 * r6050716;
double r6050737 = r6050717 * r6050701;
double r6050738 = r6050736 * r6050737;
double r6050739 = r6050734 + r6050738;
double r6050740 = r6050719 / r6050739;
double r6050741 = r6050740 * r6050700;
return r6050741;
}
double f(double x) {
double r6050742 = x;
double r6050743 = -1.1349577297696527;
bool r6050744 = r6050742 <= r6050743;
double r6050745 = 0.2514179000665375;
double r6050746 = r6050742 * r6050742;
double r6050747 = r6050746 * r6050742;
double r6050748 = r6050745 / r6050747;
double r6050749 = 0.5;
double r6050750 = r6050749 / r6050742;
double r6050751 = 0.15298196345929327;
double r6050752 = 5.0;
double r6050753 = pow(r6050742, r6050752);
double r6050754 = r6050751 / r6050753;
double r6050755 = r6050750 + r6050754;
double r6050756 = r6050748 + r6050755;
double r6050757 = 1.1391870338076322;
bool r6050758 = r6050742 <= r6050757;
double r6050759 = 0.265709700396151;
double r6050760 = 0.6665536072;
double r6050761 = r6050746 * r6050760;
double r6050762 = r6050742 * r6050761;
double r6050763 = r6050742 - r6050762;
double r6050764 = fma(r6050753, r6050759, r6050763);
double r6050765 = r6050758 ? r6050764 : r6050756;
double r6050766 = r6050744 ? r6050756 : r6050765;
return r6050766;
}



Bits error versus x
if x < -1.1349577297696527 or 1.1391870338076322 < x Initial program 57.7
Taylor expanded around inf 0.2
Simplified0.2
if -1.1349577297696527 < x < 1.1391870338076322Initial program 0.0
Taylor expanded around 0 0.3
Simplified0.3
Final simplification0.3
herbie shell --seed 2019168 +o rules:numerics
(FPCore (x)
:name "Jmat.Real.dawson"
(* (/ (+ (+ (+ (+ (+ 1 (* 0.1049934947 (* x x))) (* 0.0424060604 (* (* x x) (* x x)))) (* 0.0072644182 (* (* (* x x) (* x x)) (* x x)))) (* 0.0005064034 (* (* (* (* x x) (* x x)) (* x x)) (* x x)))) (* 0.0001789971 (* (* (* (* (* x x) (* x x)) (* x x)) (* x x)) (* x x)))) (+ (+ (+ (+ (+ (+ 1 (* 0.7715471019 (* x x))) (* 0.2909738639 (* (* x x) (* x x)))) (* 0.0694555761 (* (* (* x x) (* x x)) (* x x)))) (* 0.0140005442 (* (* (* (* x x) (* x x)) (* x x)) (* x x)))) (* 0.0008327945 (* (* (* (* (* x x) (* x x)) (* x x)) (* x x)) (* x x)))) (* (* 2 0.0001789971) (* (* (* (* (* (* x x) (* x x)) (* x x)) (* x x)) (* x x)) (* x x))))) x))