\frac{\left(\left(\left(\left(1 + 0.1049934946999999951788851149103720672429 \cdot \left(x \cdot x\right)\right) + 0.04240606040000000076517494562722276896238 \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) + 0.007264418199999999985194687468492702464573 \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + 5.064034000000000243502107366566633572802 \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.789971000000000009994005623070734145585 \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.7715471018999999763821051601553335785866 \cdot \left(x \cdot x\right)\right) + 0.2909738639000000182122107617033179849386 \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) + 0.06945557609999999937322456844412954524159 \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + 0.01400054419999999938406531896362139377743 \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.327945000000000442749725770852364803432 \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.789971000000000009994005623070734145585 \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 -12620786748.882755279541015625:\\
\;\;\;\;\left(\frac{0.1529819634592932686700805788859724998474}{x \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)} + \frac{\frac{0.2514179000665375252054900556686334311962}{x}}{x \cdot x}\right) + \frac{0.5}{x}\\
\mathbf{elif}\;x \le 783.8759464134847121385973878204822540283:\\
\;\;\;\;\mathsf{fma}\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right), \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \mathsf{fma}\left(x \cdot x, 1.789971000000000009994005623070734145585 \cdot 10^{-4}, 5.064034000000000243502107366566633572802 \cdot 10^{-4}\right), \mathsf{fma}\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right), \mathsf{fma}\left(x \cdot x, 0.007264418199999999985194687468492702464573, 0.04240606040000000076517494562722276896238\right), \mathsf{fma}\left(x \cdot x, 0.1049934946999999951788851149103720672429, 1\right)\right)\right) \cdot \frac{x}{\mathsf{fma}\left(2 \cdot 1.789971000000000009994005623070734145585 \cdot 10^{-4}, \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \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), \mathsf{fma}\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), \mathsf{fma}\left(8.327945000000000442749725770852364803432 \cdot 10^{-4} \cdot x, x, 0.01400054419999999938406531896362139377743\right), \mathsf{fma}\left(\mathsf{fma}\left(0.06945557609999999937322456844412954524159, x \cdot x, 0.2909738639000000182122107617033179849386\right), \left(x \cdot x\right) \cdot \left(x \cdot x\right), \mathsf{fma}\left(x \cdot x, 0.7715471018999999763821051601553335785866, 1\right)\right)\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\left(\frac{0.1529819634592932686700805788859724998474}{x \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)} + \frac{\frac{0.2514179000665375252054900556686334311962}{x}}{x \cdot x}\right) + \frac{0.5}{x}\\
\end{array}double f(double x) {
double r5617093 = 1.0;
double r5617094 = 0.1049934947;
double r5617095 = x;
double r5617096 = r5617095 * r5617095;
double r5617097 = r5617094 * r5617096;
double r5617098 = r5617093 + r5617097;
double r5617099 = 0.0424060604;
double r5617100 = r5617096 * r5617096;
double r5617101 = r5617099 * r5617100;
double r5617102 = r5617098 + r5617101;
double r5617103 = 0.0072644182;
double r5617104 = r5617100 * r5617096;
double r5617105 = r5617103 * r5617104;
double r5617106 = r5617102 + r5617105;
double r5617107 = 0.0005064034;
double r5617108 = r5617104 * r5617096;
double r5617109 = r5617107 * r5617108;
double r5617110 = r5617106 + r5617109;
double r5617111 = 0.0001789971;
double r5617112 = r5617108 * r5617096;
double r5617113 = r5617111 * r5617112;
double r5617114 = r5617110 + r5617113;
double r5617115 = 0.7715471019;
double r5617116 = r5617115 * r5617096;
double r5617117 = r5617093 + r5617116;
double r5617118 = 0.2909738639;
double r5617119 = r5617118 * r5617100;
double r5617120 = r5617117 + r5617119;
double r5617121 = 0.0694555761;
double r5617122 = r5617121 * r5617104;
double r5617123 = r5617120 + r5617122;
double r5617124 = 0.0140005442;
double r5617125 = r5617124 * r5617108;
double r5617126 = r5617123 + r5617125;
double r5617127 = 0.0008327945;
double r5617128 = r5617127 * r5617112;
double r5617129 = r5617126 + r5617128;
double r5617130 = 2.0;
double r5617131 = r5617130 * r5617111;
double r5617132 = r5617112 * r5617096;
double r5617133 = r5617131 * r5617132;
double r5617134 = r5617129 + r5617133;
double r5617135 = r5617114 / r5617134;
double r5617136 = r5617135 * r5617095;
return r5617136;
}
double f(double x) {
double r5617137 = x;
double r5617138 = -12620786748.882755;
bool r5617139 = r5617137 <= r5617138;
double r5617140 = 0.15298196345929327;
double r5617141 = r5617137 * r5617137;
double r5617142 = r5617141 * r5617141;
double r5617143 = r5617137 * r5617142;
double r5617144 = r5617140 / r5617143;
double r5617145 = 0.2514179000665375;
double r5617146 = r5617145 / r5617137;
double r5617147 = r5617146 / r5617141;
double r5617148 = r5617144 + r5617147;
double r5617149 = 0.5;
double r5617150 = r5617149 / r5617137;
double r5617151 = r5617148 + r5617150;
double r5617152 = 783.8759464134847;
bool r5617153 = r5617137 <= r5617152;
double r5617154 = 0.0001789971;
double r5617155 = 0.0005064034;
double r5617156 = fma(r5617141, r5617154, r5617155);
double r5617157 = r5617142 * r5617156;
double r5617158 = 0.0072644182;
double r5617159 = 0.0424060604;
double r5617160 = fma(r5617141, r5617158, r5617159);
double r5617161 = 0.1049934947;
double r5617162 = 1.0;
double r5617163 = fma(r5617141, r5617161, r5617162);
double r5617164 = fma(r5617142, r5617160, r5617163);
double r5617165 = fma(r5617142, r5617157, r5617164);
double r5617166 = 2.0;
double r5617167 = r5617166 * r5617154;
double r5617168 = r5617142 * r5617142;
double r5617169 = r5617142 * r5617168;
double r5617170 = 0.0008327945;
double r5617171 = r5617170 * r5617137;
double r5617172 = 0.0140005442;
double r5617173 = fma(r5617171, r5617137, r5617172);
double r5617174 = 0.0694555761;
double r5617175 = 0.2909738639;
double r5617176 = fma(r5617174, r5617141, r5617175);
double r5617177 = 0.7715471019;
double r5617178 = fma(r5617141, r5617177, r5617162);
double r5617179 = fma(r5617176, r5617142, r5617178);
double r5617180 = fma(r5617168, r5617173, r5617179);
double r5617181 = fma(r5617167, r5617169, r5617180);
double r5617182 = r5617137 / r5617181;
double r5617183 = r5617165 * r5617182;
double r5617184 = r5617153 ? r5617183 : r5617151;
double r5617185 = r5617139 ? r5617151 : r5617184;
return r5617185;
}



Bits error versus x
if x < -12620786748.882755 or 783.8759464134847 < x Initial program 59.5
Simplified59.6
Taylor expanded around inf 0.0
Simplified0.0
if -12620786748.882755 < x < 783.8759464134847Initial program 0.0
Simplified0.0
rmApplied div-inv0.0
Applied associate-*l*0.0
Simplified0.0
rmApplied *-un-lft-identity0.0
Applied *-un-lft-identity0.0
Applied times-frac0.0
Applied associate-*r*0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2019200 +o rules:numerics
(FPCore (x)
:name "Jmat.Real.dawson"
(* (/ (+ (+ (+ (+ (+ 1.0 (* 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 (* 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 0.0001789971) (* (* (* (* (* (* x x) (* x x)) (* x x)) (* x x)) (* x x)) (* x x))))) x))