\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 -1960.3004820890449:\\
\;\;\;\;\frac{0.15298196345929327}{\left(x \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)} + \left(\frac{0.2514179000665375}{x \cdot \left(x \cdot x\right)} + \frac{0.5}{x}\right)\\
\mathbf{elif}\;x \le 688.7434514242325:\\
\;\;\;\;x \cdot \frac{\mathsf{fma}\left(0.0001789971 \cdot \left(\left(x \cdot x\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right), \left(x \cdot x\right) \cdot \left(x \cdot x\right), \mathsf{fma}\left(\left(x \cdot x\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right), \left(x \cdot x\right) \cdot 0.0005064034, \mathsf{fma}\left(\left(x \cdot x\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right), 0.0072644182, \mathsf{fma}\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right), 0.0424060604, \mathsf{fma}\left(x \cdot x, 0.1049934947, 1\right)\right)\right)\right)\right)}{\mathsf{fma}\left(0.0008327945 \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), x \cdot x, \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) \cdot 0.0140005442\right) + \mathsf{fma}\left(0.0001789971 \cdot 2, \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) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right), \mathsf{fma}\left(x \cdot x, 0.7715471019, 1\right) + \mathsf{fma}\left(0.2909738639, \left(x \cdot x\right) \cdot \left(x \cdot x\right), \left(\left(x \cdot x\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) \cdot 0.0694555761\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{0.15298196345929327}{\left(x \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)} + \left(\frac{0.2514179000665375}{x \cdot \left(x \cdot x\right)} + \frac{0.5}{x}\right)\\
\end{array}double f(double x) {
double r5844220 = 1.0;
double r5844221 = 0.1049934947;
double r5844222 = x;
double r5844223 = r5844222 * r5844222;
double r5844224 = r5844221 * r5844223;
double r5844225 = r5844220 + r5844224;
double r5844226 = 0.0424060604;
double r5844227 = r5844223 * r5844223;
double r5844228 = r5844226 * r5844227;
double r5844229 = r5844225 + r5844228;
double r5844230 = 0.0072644182;
double r5844231 = r5844227 * r5844223;
double r5844232 = r5844230 * r5844231;
double r5844233 = r5844229 + r5844232;
double r5844234 = 0.0005064034;
double r5844235 = r5844231 * r5844223;
double r5844236 = r5844234 * r5844235;
double r5844237 = r5844233 + r5844236;
double r5844238 = 0.0001789971;
double r5844239 = r5844235 * r5844223;
double r5844240 = r5844238 * r5844239;
double r5844241 = r5844237 + r5844240;
double r5844242 = 0.7715471019;
double r5844243 = r5844242 * r5844223;
double r5844244 = r5844220 + r5844243;
double r5844245 = 0.2909738639;
double r5844246 = r5844245 * r5844227;
double r5844247 = r5844244 + r5844246;
double r5844248 = 0.0694555761;
double r5844249 = r5844248 * r5844231;
double r5844250 = r5844247 + r5844249;
double r5844251 = 0.0140005442;
double r5844252 = r5844251 * r5844235;
double r5844253 = r5844250 + r5844252;
double r5844254 = 0.0008327945;
double r5844255 = r5844254 * r5844239;
double r5844256 = r5844253 + r5844255;
double r5844257 = 2.0;
double r5844258 = r5844257 * r5844238;
double r5844259 = r5844239 * r5844223;
double r5844260 = r5844258 * r5844259;
double r5844261 = r5844256 + r5844260;
double r5844262 = r5844241 / r5844261;
double r5844263 = r5844262 * r5844222;
return r5844263;
}
double f(double x) {
double r5844264 = x;
double r5844265 = -1960.3004820890449;
bool r5844266 = r5844264 <= r5844265;
double r5844267 = 0.15298196345929327;
double r5844268 = r5844264 * r5844264;
double r5844269 = r5844264 * r5844268;
double r5844270 = r5844269 * r5844268;
double r5844271 = r5844267 / r5844270;
double r5844272 = 0.2514179000665375;
double r5844273 = r5844272 / r5844269;
double r5844274 = 0.5;
double r5844275 = r5844274 / r5844264;
double r5844276 = r5844273 + r5844275;
double r5844277 = r5844271 + r5844276;
double r5844278 = 688.7434514242325;
bool r5844279 = r5844264 <= r5844278;
double r5844280 = 0.0001789971;
double r5844281 = r5844268 * r5844268;
double r5844282 = r5844268 * r5844281;
double r5844283 = r5844280 * r5844282;
double r5844284 = 0.0005064034;
double r5844285 = r5844268 * r5844284;
double r5844286 = 0.0072644182;
double r5844287 = 0.0424060604;
double r5844288 = 0.1049934947;
double r5844289 = 1.0;
double r5844290 = fma(r5844268, r5844288, r5844289);
double r5844291 = fma(r5844281, r5844287, r5844290);
double r5844292 = fma(r5844282, r5844286, r5844291);
double r5844293 = fma(r5844282, r5844285, r5844292);
double r5844294 = fma(r5844283, r5844281, r5844293);
double r5844295 = 0.0008327945;
double r5844296 = r5844281 * r5844281;
double r5844297 = r5844295 * r5844296;
double r5844298 = 0.0140005442;
double r5844299 = r5844296 * r5844298;
double r5844300 = fma(r5844297, r5844268, r5844299);
double r5844301 = 2.0;
double r5844302 = r5844280 * r5844301;
double r5844303 = r5844296 * r5844281;
double r5844304 = 0.7715471019;
double r5844305 = fma(r5844268, r5844304, r5844289);
double r5844306 = 0.2909738639;
double r5844307 = 0.0694555761;
double r5844308 = r5844282 * r5844307;
double r5844309 = fma(r5844306, r5844281, r5844308);
double r5844310 = r5844305 + r5844309;
double r5844311 = fma(r5844302, r5844303, r5844310);
double r5844312 = r5844300 + r5844311;
double r5844313 = r5844294 / r5844312;
double r5844314 = r5844264 * r5844313;
double r5844315 = r5844279 ? r5844314 : r5844277;
double r5844316 = r5844266 ? r5844277 : r5844315;
return r5844316;
}



Bits error versus x
if x < -1960.3004820890449 or 688.7434514242325 < x Initial program 58.2
rmApplied *-un-lft-identity58.2
Applied associate-*r*58.2
Simplified58.3
Taylor expanded around inf 0.0
Simplified0.0
if -1960.3004820890449 < x < 688.7434514242325Initial program 0.0
rmApplied *-un-lft-identity0.0
Applied associate-*r*0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2019163 +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))