\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 -235666.04337387797:\\
\;\;\;\;\frac{0.5}{x} + \left(\frac{0.15298196345929327}{x \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)} + \frac{0.2514179000665375}{\left(x \cdot x\right) \cdot x}\right)\\
\mathbf{elif}\;x \le 679.3256952797226:\\
\;\;\;\;x \cdot \frac{\sqrt{\left(\left(0.0072644182 \cdot \left(\left(x \cdot x\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) + \left(\left(1 + \left(x \cdot x\right) \cdot 0.1049934947\right) + 0.0424060604 \cdot \left(\left(x \cdot x\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(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right)\right) \cdot 0.0005064034\right) + 0.0001789971 \cdot \left(\left(\left(x \cdot x\right) \cdot \left(\left(x \cdot x\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right)\right) \cdot \left(x \cdot x\right)\right)}}{\frac{\left(\left(\left(\left(x \cdot x\right) \cdot \left(\left(x \cdot x\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(2 \cdot 0.0001789971\right) + \left(0.0008327945 \cdot \left(\left(\left(x \cdot x\right) \cdot \left(\left(x \cdot x\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right)\right) \cdot \left(x \cdot x\right)\right) + \left(\left(\left(\left(\left(x \cdot x\right) \cdot 0.7715471019 + 1\right) + \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot 0.2909738639\right) + 0.0694555761 \cdot \left(\left(x \cdot x\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(\left(x \cdot x\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right)\right) \cdot 0.0140005442\right)\right)}{\sqrt{\left(\left(0.0072644182 \cdot \left(\left(x \cdot x\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) + \left(\left(1 + \left(x \cdot x\right) \cdot 0.1049934947\right) + 0.0424060604 \cdot \left(\left(x \cdot x\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(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right)\right) \cdot 0.0005064034\right) + 0.0001789971 \cdot \left(\left(\left(x \cdot x\right) \cdot \left(\left(x \cdot x\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right)\right) \cdot \left(x \cdot x\right)\right)}}}\\
\mathbf{else}:\\
\;\;\;\;\frac{0.5}{x} + \left(\frac{0.15298196345929327}{x \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)} + \frac{0.2514179000665375}{\left(x \cdot x\right) \cdot x}\right)\\
\end{array}double f(double x) {
double r5881110 = 1.0;
double r5881111 = 0.1049934947;
double r5881112 = x;
double r5881113 = r5881112 * r5881112;
double r5881114 = r5881111 * r5881113;
double r5881115 = r5881110 + r5881114;
double r5881116 = 0.0424060604;
double r5881117 = r5881113 * r5881113;
double r5881118 = r5881116 * r5881117;
double r5881119 = r5881115 + r5881118;
double r5881120 = 0.0072644182;
double r5881121 = r5881117 * r5881113;
double r5881122 = r5881120 * r5881121;
double r5881123 = r5881119 + r5881122;
double r5881124 = 0.0005064034;
double r5881125 = r5881121 * r5881113;
double r5881126 = r5881124 * r5881125;
double r5881127 = r5881123 + r5881126;
double r5881128 = 0.0001789971;
double r5881129 = r5881125 * r5881113;
double r5881130 = r5881128 * r5881129;
double r5881131 = r5881127 + r5881130;
double r5881132 = 0.7715471019;
double r5881133 = r5881132 * r5881113;
double r5881134 = r5881110 + r5881133;
double r5881135 = 0.2909738639;
double r5881136 = r5881135 * r5881117;
double r5881137 = r5881134 + r5881136;
double r5881138 = 0.0694555761;
double r5881139 = r5881138 * r5881121;
double r5881140 = r5881137 + r5881139;
double r5881141 = 0.0140005442;
double r5881142 = r5881141 * r5881125;
double r5881143 = r5881140 + r5881142;
double r5881144 = 0.0008327945;
double r5881145 = r5881144 * r5881129;
double r5881146 = r5881143 + r5881145;
double r5881147 = 2.0;
double r5881148 = r5881147 * r5881128;
double r5881149 = r5881129 * r5881113;
double r5881150 = r5881148 * r5881149;
double r5881151 = r5881146 + r5881150;
double r5881152 = r5881131 / r5881151;
double r5881153 = r5881152 * r5881112;
return r5881153;
}
double f(double x) {
double r5881154 = x;
double r5881155 = -235666.04337387797;
bool r5881156 = r5881154 <= r5881155;
double r5881157 = 0.5;
double r5881158 = r5881157 / r5881154;
double r5881159 = 0.15298196345929327;
double r5881160 = r5881154 * r5881154;
double r5881161 = r5881160 * r5881160;
double r5881162 = r5881154 * r5881161;
double r5881163 = r5881159 / r5881162;
double r5881164 = 0.2514179000665375;
double r5881165 = r5881160 * r5881154;
double r5881166 = r5881164 / r5881165;
double r5881167 = r5881163 + r5881166;
double r5881168 = r5881158 + r5881167;
double r5881169 = 679.3256952797226;
bool r5881170 = r5881154 <= r5881169;
double r5881171 = 0.0072644182;
double r5881172 = r5881160 * r5881161;
double r5881173 = r5881171 * r5881172;
double r5881174 = 1.0;
double r5881175 = 0.1049934947;
double r5881176 = r5881160 * r5881175;
double r5881177 = r5881174 + r5881176;
double r5881178 = 0.0424060604;
double r5881179 = r5881178 * r5881161;
double r5881180 = r5881177 + r5881179;
double r5881181 = r5881173 + r5881180;
double r5881182 = r5881160 * r5881172;
double r5881183 = 0.0005064034;
double r5881184 = r5881182 * r5881183;
double r5881185 = r5881181 + r5881184;
double r5881186 = 0.0001789971;
double r5881187 = r5881182 * r5881160;
double r5881188 = r5881186 * r5881187;
double r5881189 = r5881185 + r5881188;
double r5881190 = sqrt(r5881189);
double r5881191 = r5881187 * r5881160;
double r5881192 = 2.0;
double r5881193 = r5881192 * r5881186;
double r5881194 = r5881191 * r5881193;
double r5881195 = 0.0008327945;
double r5881196 = r5881195 * r5881187;
double r5881197 = 0.7715471019;
double r5881198 = r5881160 * r5881197;
double r5881199 = r5881198 + r5881174;
double r5881200 = 0.2909738639;
double r5881201 = r5881161 * r5881200;
double r5881202 = r5881199 + r5881201;
double r5881203 = 0.0694555761;
double r5881204 = r5881203 * r5881172;
double r5881205 = r5881202 + r5881204;
double r5881206 = 0.0140005442;
double r5881207 = r5881182 * r5881206;
double r5881208 = r5881205 + r5881207;
double r5881209 = r5881196 + r5881208;
double r5881210 = r5881194 + r5881209;
double r5881211 = r5881210 / r5881190;
double r5881212 = r5881190 / r5881211;
double r5881213 = r5881154 * r5881212;
double r5881214 = r5881170 ? r5881213 : r5881168;
double r5881215 = r5881156 ? r5881168 : r5881214;
return r5881215;
}



Bits error versus x
Results
if x < -235666.04337387797 or 679.3256952797226 < x Initial program 58.9
Taylor expanded around inf 0.0
Simplified0.0
if -235666.04337387797 < x < 679.3256952797226Initial program 0.0
rmApplied add-sqr-sqrt0.0
Applied associate-/l*0.0
Final simplification0.0
herbie shell --seed 2019144 +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))