\frac{\left(\left(\left(\left(1 + 0.1049934947 \cdot \left(x \cdot x\right)\right) + 0.042406060400000001 \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) + 0.00726441819999999999 \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + 5.0640340000000002 \cdot 10^{-4} \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) + 1.789971 \cdot 10^{-4} \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.77154710189999998 \cdot \left(x \cdot x\right)\right) + 0.29097386390000002 \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) + 0.069455576099999999 \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + 0.014000544199999999 \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) + 8.32794500000000044 \cdot 10^{-4} \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 1.789971 \cdot 10^{-4}\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.3807117430573685 \cdot 10^{23} \lor \neg \left(x \le 901.19586720631469\right):\\
\;\;\;\;\mathsf{fma}\left(0.25141790006653753, \frac{1}{{x}^{3}}, \mathsf{fma}\left(0.1529819634592933, \frac{1}{{x}^{5}}, 0.5 \cdot \frac{1}{x}\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{\left(\left(\left(\left(1 + 0.1049934947 \cdot \left(x \cdot x\right)\right) + 0.042406060400000001 \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) + 0.00726441819999999999 \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + 5.0640340000000002 \cdot 10^{-4} \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) + 1.789971 \cdot 10^{-4} \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.77154710189999998 \cdot \left(x \cdot x\right)\right) + 0.29097386390000002 \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) + 0.069455576099999999 \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + 0.014000544199999999 \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) + 8.32794500000000044 \cdot 10^{-4} \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 1.789971 \cdot 10^{-4}\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\\
\end{array}double f(double x) {
double r201617 = 1.0;
double r201618 = 0.1049934947;
double r201619 = x;
double r201620 = r201619 * r201619;
double r201621 = r201618 * r201620;
double r201622 = r201617 + r201621;
double r201623 = 0.0424060604;
double r201624 = r201620 * r201620;
double r201625 = r201623 * r201624;
double r201626 = r201622 + r201625;
double r201627 = 0.0072644182;
double r201628 = r201624 * r201620;
double r201629 = r201627 * r201628;
double r201630 = r201626 + r201629;
double r201631 = 0.0005064034;
double r201632 = r201628 * r201620;
double r201633 = r201631 * r201632;
double r201634 = r201630 + r201633;
double r201635 = 0.0001789971;
double r201636 = r201632 * r201620;
double r201637 = r201635 * r201636;
double r201638 = r201634 + r201637;
double r201639 = 0.7715471019;
double r201640 = r201639 * r201620;
double r201641 = r201617 + r201640;
double r201642 = 0.2909738639;
double r201643 = r201642 * r201624;
double r201644 = r201641 + r201643;
double r201645 = 0.0694555761;
double r201646 = r201645 * r201628;
double r201647 = r201644 + r201646;
double r201648 = 0.0140005442;
double r201649 = r201648 * r201632;
double r201650 = r201647 + r201649;
double r201651 = 0.0008327945;
double r201652 = r201651 * r201636;
double r201653 = r201650 + r201652;
double r201654 = 2.0;
double r201655 = r201654 * r201635;
double r201656 = r201636 * r201620;
double r201657 = r201655 * r201656;
double r201658 = r201653 + r201657;
double r201659 = r201638 / r201658;
double r201660 = r201659 * r201619;
return r201660;
}
double f(double x) {
double r201661 = x;
double r201662 = -1.3807117430573685e+23;
bool r201663 = r201661 <= r201662;
double r201664 = 901.1958672063147;
bool r201665 = r201661 <= r201664;
double r201666 = !r201665;
bool r201667 = r201663 || r201666;
double r201668 = 0.2514179000665375;
double r201669 = 1.0;
double r201670 = 3.0;
double r201671 = pow(r201661, r201670);
double r201672 = r201669 / r201671;
double r201673 = 0.15298196345929327;
double r201674 = 5.0;
double r201675 = pow(r201661, r201674);
double r201676 = r201669 / r201675;
double r201677 = 0.5;
double r201678 = r201669 / r201661;
double r201679 = r201677 * r201678;
double r201680 = fma(r201673, r201676, r201679);
double r201681 = fma(r201668, r201672, r201680);
double r201682 = 1.0;
double r201683 = 0.1049934947;
double r201684 = r201661 * r201661;
double r201685 = r201683 * r201684;
double r201686 = r201682 + r201685;
double r201687 = 0.0424060604;
double r201688 = r201684 * r201684;
double r201689 = r201687 * r201688;
double r201690 = r201686 + r201689;
double r201691 = 0.0072644182;
double r201692 = r201688 * r201684;
double r201693 = r201691 * r201692;
double r201694 = r201690 + r201693;
double r201695 = 0.0005064034;
double r201696 = r201692 * r201684;
double r201697 = r201695 * r201696;
double r201698 = r201694 + r201697;
double r201699 = 0.0001789971;
double r201700 = r201696 * r201684;
double r201701 = r201699 * r201700;
double r201702 = r201698 + r201701;
double r201703 = 0.7715471019;
double r201704 = r201703 * r201684;
double r201705 = r201682 + r201704;
double r201706 = 0.2909738639;
double r201707 = r201706 * r201688;
double r201708 = r201705 + r201707;
double r201709 = 0.0694555761;
double r201710 = r201709 * r201692;
double r201711 = r201708 + r201710;
double r201712 = 0.0140005442;
double r201713 = r201712 * r201696;
double r201714 = r201711 + r201713;
double r201715 = 0.0008327945;
double r201716 = r201715 * r201700;
double r201717 = r201714 + r201716;
double r201718 = 2.0;
double r201719 = r201718 * r201699;
double r201720 = r201700 * r201684;
double r201721 = r201719 * r201720;
double r201722 = r201717 + r201721;
double r201723 = r201702 / r201722;
double r201724 = r201723 * r201661;
double r201725 = r201667 ? r201681 : r201724;
return r201725;
}



Bits error versus x
if x < -1.3807117430573685e+23 or 901.1958672063147 < x Initial program 61.1
Simplified61.1
Taylor expanded around inf 0.0
Simplified0.0
if -1.3807117430573685e+23 < x < 901.1958672063147Initial program 0.0
Final simplification0.0
herbie shell --seed 2020003 +o rules:numerics
(FPCore (x)
:name "Jmat.Real.dawson"
:precision binary64
(* (/ (+ (+ (+ (+ (+ 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))