double f(double x) {
double r47536686 = 1.0;
double r47536687 = 0.1049934947;
double r47536688 = x;
double r47536689 = r47536688 * r47536688;
double r47536690 = r47536687 * r47536689;
double r47536691 = r47536686 + r47536690;
double r47536692 = 0.0424060604;
double r47536693 = r47536689 * r47536689;
double r47536694 = r47536692 * r47536693;
double r47536695 = r47536691 + r47536694;
double r47536696 = 0.0072644182;
double r47536697 = r47536693 * r47536689;
double r47536698 = r47536696 * r47536697;
double r47536699 = r47536695 + r47536698;
double r47536700 = 0.0005064034;
double r47536701 = r47536697 * r47536689;
double r47536702 = r47536700 * r47536701;
double r47536703 = r47536699 + r47536702;
double r47536704 = 0.0001789971;
double r47536705 = r47536701 * r47536689;
double r47536706 = r47536704 * r47536705;
double r47536707 = r47536703 + r47536706;
double r47536708 = 0.7715471019;
double r47536709 = r47536708 * r47536689;
double r47536710 = r47536686 + r47536709;
double r47536711 = 0.2909738639;
double r47536712 = r47536711 * r47536693;
double r47536713 = r47536710 + r47536712;
double r47536714 = 0.0694555761;
double r47536715 = r47536714 * r47536697;
double r47536716 = r47536713 + r47536715;
double r47536717 = 0.0140005442;
double r47536718 = r47536717 * r47536701;
double r47536719 = r47536716 + r47536718;
double r47536720 = 0.0008327945;
double r47536721 = r47536720 * r47536705;
double r47536722 = r47536719 + r47536721;
double r47536723 = 2.0;
double r47536724 = r47536723 * r47536704;
double r47536725 = r47536705 * r47536689;
double r47536726 = r47536724 * r47536725;
double r47536727 = r47536722 + r47536726;
double r47536728 = r47536707 / r47536727;
double r47536729 = r47536728 * r47536688;
return r47536729;
}
double f(double x) {
double r47536730 = x;
double r47536731 = -418382894.5701382;
bool r47536732 = r47536730 <= r47536731;
double r47536733 = 0.5;
double r47536734 = 0.2514179000665375;
double r47536735 = r47536730 * r47536730;
double r47536736 = r47536734 / r47536735;
double r47536737 = r47536733 + r47536736;
double r47536738 = r47536737 / r47536730;
double r47536739 = 0.15298196345929327;
double r47536740 = 5.0;
double r47536741 = pow(r47536730, r47536740);
double r47536742 = r47536739 / r47536741;
double r47536743 = r47536738 + r47536742;
double r47536744 = 28308.919067585488;
bool r47536745 = r47536730 <= r47536744;
double r47536746 = 1.0;
double r47536747 = r47536735 * r47536735;
double r47536748 = r47536747 * r47536735;
double r47536749 = r47536735 * r47536748;
double r47536750 = r47536735 * r47536749;
double r47536751 = r47536735 * r47536750;
double r47536752 = 0.0001789971;
double r47536753 = 2.0;
double r47536754 = r47536752 * r47536753;
double r47536755 = r47536751 * r47536754;
double r47536756 = 0.0140005442;
double r47536757 = r47536749 * r47536756;
double r47536758 = 0.7715471019;
double r47536759 = r47536758 * r47536735;
double r47536760 = r47536759 + r47536746;
double r47536761 = 0.2909738639;
double r47536762 = r47536747 * r47536761;
double r47536763 = r47536760 + r47536762;
double r47536764 = 0.0694555761;
double r47536765 = r47536764 * r47536748;
double r47536766 = r47536763 + r47536765;
double r47536767 = r47536757 + r47536766;
double r47536768 = 0.0008327945;
double r47536769 = r47536750 * r47536768;
double r47536770 = r47536767 + r47536769;
double r47536771 = r47536755 + r47536770;
double r47536772 = r47536746 / r47536771;
double r47536773 = r47536730 * r47536772;
double r47536774 = r47536747 * r47536747;
double r47536775 = r47536752 * r47536774;
double r47536776 = 0.0072644182;
double r47536777 = r47536776 * r47536747;
double r47536778 = 0.0005064034;
double r47536779 = 0.0424060604;
double r47536780 = 0.1049934947;
double r47536781 = fma(r47536780, r47536735, r47536746);
double r47536782 = fma(r47536747, r47536779, r47536781);
double r47536783 = r47536782 * r47536782;
double r47536784 = r47536782 * r47536783;
double r47536785 = cbrt(r47536784);
double r47536786 = fma(r47536778, r47536774, r47536785);
double r47536787 = fma(r47536735, r47536777, r47536786);
double r47536788 = fma(r47536735, r47536775, r47536787);
double r47536789 = r47536773 * r47536788;
double r47536790 = r47536745 ? r47536789 : r47536743;
double r47536791 = r47536732 ? r47536743 : r47536790;
return r47536791;
}
\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 -418382894.5701382:\\
\;\;\;\;\frac{0.5 + \frac{0.2514179000665375}{x \cdot x}}{x} + \frac{0.15298196345929327}{{x}^{5}}\\
\mathbf{elif}\;x \le 28308.919067585488:\\
\;\;\;\;\left(x \cdot \frac{1}{\left(\left(x \cdot x\right) \cdot \left(\left(x \cdot x\right) \cdot \left(\left(x \cdot x\right) \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right)\right)\right) \cdot \left(0.0001789971 \cdot 2\right) + \left(\left(\left(\left(x \cdot x\right) \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) \cdot 0.0140005442 + \left(\left(\left(0.7715471019 \cdot \left(x \cdot x\right) + 1\right) + \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot 0.2909738639\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)\right) + \left(\left(x \cdot x\right) \cdot \left(\left(x \cdot x\right) \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right)\right) \cdot 0.0008327945\right)}\right) \cdot (\left(x \cdot x\right) \cdot \left(0.0001789971 \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right)\right) + \left((\left(x \cdot x\right) \cdot \left(0.0072644182 \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) + \left((0.0005064034 \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) + \left(\sqrt[3]{(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot 0.0424060604 + \left((0.1049934947 \cdot \left(x \cdot x\right) + 1)_*\right))_* \cdot \left((\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot 0.0424060604 + \left((0.1049934947 \cdot \left(x \cdot x\right) + 1)_*\right))_* \cdot (\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot 0.0424060604 + \left((0.1049934947 \cdot \left(x \cdot x\right) + 1)_*\right))_*\right)}\right))_*\right))_*\right))_*\\
\mathbf{else}:\\
\;\;\;\;\frac{0.5 + \frac{0.2514179000665375}{x \cdot x}}{x} + \frac{0.15298196345929327}{{x}^{5}}\\
\end{array}


Bits error versus x
if x < -418382894.5701382 or 28308.919067585488 < x Initial program 58.9
Taylor expanded around 0 58.9
Simplified58.9
rmApplied div-inv59.0
Applied associate-*l*59.0
Simplified59.0
Taylor expanded around -inf 0.0
Simplified0.0
if -418382894.5701382 < x < 28308.919067585488Initial program 0.0
Taylor expanded around 0 0.0
Simplified0.0
rmApplied div-inv0.0
Applied associate-*l*0.0
Simplified0.0
rmApplied add-cbrt-cube0.0
Final simplification0.0
herbie shell --seed 2019102 +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))