\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 -270163396314.34866:\\
\;\;\;\;\frac{0.2514179000665375}{\left(x \cdot x\right) \cdot x} + \left(\frac{0.5}{x} + \frac{0.15298196345929327}{\left(x \cdot x\right) \cdot \left(\left(x \cdot x\right) \cdot x\right)}\right)\\
\mathbf{elif}\;x \le 686.8741099213117:\\
\;\;\;\;\frac{x \cdot \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(x \cdot x, 0.0001789971, 0.0005064034\right), \mathsf{fma}\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right), \mathsf{fma}\left(x, 0.0072644182 \cdot x, 0.0424060604\right), \mathsf{fma}\left(x \cdot 0.1049934947, x, 1\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), 0.0140005442, \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(x \cdot x, 0.0008327945, \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(2 \cdot 0.0001789971\right)\right), \mathsf{fma}\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right), \mathsf{fma}\left(0.0694555761, x \cdot x, 0.2909738639\right), \mathsf{fma}\left(x \cdot x, 0.7715471019, 1\right)\right)\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{0.2514179000665375}{\left(x \cdot x\right) \cdot x} + \left(\frac{0.5}{x} + \frac{0.15298196345929327}{\left(x \cdot x\right) \cdot \left(\left(x \cdot x\right) \cdot x\right)}\right)\\
\end{array}double f(double x) {
double r6306328 = 1.0;
double r6306329 = 0.1049934947;
double r6306330 = x;
double r6306331 = r6306330 * r6306330;
double r6306332 = r6306329 * r6306331;
double r6306333 = r6306328 + r6306332;
double r6306334 = 0.0424060604;
double r6306335 = r6306331 * r6306331;
double r6306336 = r6306334 * r6306335;
double r6306337 = r6306333 + r6306336;
double r6306338 = 0.0072644182;
double r6306339 = r6306335 * r6306331;
double r6306340 = r6306338 * r6306339;
double r6306341 = r6306337 + r6306340;
double r6306342 = 0.0005064034;
double r6306343 = r6306339 * r6306331;
double r6306344 = r6306342 * r6306343;
double r6306345 = r6306341 + r6306344;
double r6306346 = 0.0001789971;
double r6306347 = r6306343 * r6306331;
double r6306348 = r6306346 * r6306347;
double r6306349 = r6306345 + r6306348;
double r6306350 = 0.7715471019;
double r6306351 = r6306350 * r6306331;
double r6306352 = r6306328 + r6306351;
double r6306353 = 0.2909738639;
double r6306354 = r6306353 * r6306335;
double r6306355 = r6306352 + r6306354;
double r6306356 = 0.0694555761;
double r6306357 = r6306356 * r6306339;
double r6306358 = r6306355 + r6306357;
double r6306359 = 0.0140005442;
double r6306360 = r6306359 * r6306343;
double r6306361 = r6306358 + r6306360;
double r6306362 = 0.0008327945;
double r6306363 = r6306362 * r6306347;
double r6306364 = r6306361 + r6306363;
double r6306365 = 2.0;
double r6306366 = r6306365 * r6306346;
double r6306367 = r6306347 * r6306331;
double r6306368 = r6306366 * r6306367;
double r6306369 = r6306364 + r6306368;
double r6306370 = r6306349 / r6306369;
double r6306371 = r6306370 * r6306330;
return r6306371;
}
double f(double x) {
double r6306372 = x;
double r6306373 = -270163396314.34866;
bool r6306374 = r6306372 <= r6306373;
double r6306375 = 0.2514179000665375;
double r6306376 = r6306372 * r6306372;
double r6306377 = r6306376 * r6306372;
double r6306378 = r6306375 / r6306377;
double r6306379 = 0.5;
double r6306380 = r6306379 / r6306372;
double r6306381 = 0.15298196345929327;
double r6306382 = r6306376 * r6306377;
double r6306383 = r6306381 / r6306382;
double r6306384 = r6306380 + r6306383;
double r6306385 = r6306378 + r6306384;
double r6306386 = 686.8741099213117;
bool r6306387 = r6306372 <= r6306386;
double r6306388 = r6306376 * r6306376;
double r6306389 = r6306388 * r6306388;
double r6306390 = 0.0001789971;
double r6306391 = 0.0005064034;
double r6306392 = fma(r6306376, r6306390, r6306391);
double r6306393 = 0.0072644182;
double r6306394 = r6306393 * r6306372;
double r6306395 = 0.0424060604;
double r6306396 = fma(r6306372, r6306394, r6306395);
double r6306397 = 0.1049934947;
double r6306398 = r6306372 * r6306397;
double r6306399 = 1.0;
double r6306400 = fma(r6306398, r6306372, r6306399);
double r6306401 = fma(r6306388, r6306396, r6306400);
double r6306402 = fma(r6306389, r6306392, r6306401);
double r6306403 = r6306372 * r6306402;
double r6306404 = 0.0140005442;
double r6306405 = 0.0008327945;
double r6306406 = 2.0;
double r6306407 = r6306406 * r6306390;
double r6306408 = r6306388 * r6306407;
double r6306409 = fma(r6306376, r6306405, r6306408);
double r6306410 = 0.0694555761;
double r6306411 = 0.2909738639;
double r6306412 = fma(r6306410, r6306376, r6306411);
double r6306413 = 0.7715471019;
double r6306414 = fma(r6306376, r6306413, r6306399);
double r6306415 = fma(r6306388, r6306412, r6306414);
double r6306416 = fma(r6306389, r6306409, r6306415);
double r6306417 = fma(r6306389, r6306404, r6306416);
double r6306418 = r6306403 / r6306417;
double r6306419 = r6306387 ? r6306418 : r6306385;
double r6306420 = r6306374 ? r6306385 : r6306419;
return r6306420;
}



Bits error versus x
if x < -270163396314.34866 or 686.8741099213117 < x Initial program 59.3
Simplified59.2
Taylor expanded around inf 0.0
Simplified0.0
if -270163396314.34866 < x < 686.8741099213117Initial program 0.0
Simplified0.0
rmApplied *-un-lft-identity0.0
Applied add-sqr-sqrt0.0
Applied times-frac0.0
rmApplied associate-*r/0.0
Applied associate-*l/0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2019164 +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))