\frac{\left(\left(\left(\left(1 + 0.1049934947 \cdot \left(x \cdot x\right)\right) + 0.042406060400000001 \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) + 0.00726441819999999999 \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + 5.0640340000000002 \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.789971 \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.77154710189999998 \cdot \left(x \cdot x\right)\right) + 0.29097386390000002 \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) + 0.069455576099999999 \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + 0.014000544199999999 \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.32794500000000044 \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.789971 \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 -708.557354395608286 \lor \neg \left(x \le 703.486669679423699\right):\\
\;\;\;\;\frac{0.25141790006653753}{{x}^{3}} + \left(\frac{0.5}{x} + \frac{0.1529819634592933}{{x}^{5}}\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{\left({\left(x \cdot x\right)}^{4} \cdot \left(5.0640340000000002 \cdot 10^{-4} + \left(x \cdot \sqrt{1.789971 \cdot 10^{-4}}\right) \cdot \left(x \cdot \sqrt{1.789971 \cdot 10^{-4}}\right)\right) + \mathsf{fma}\left(0.00726441819999999999, {x}^{6}, \mathsf{fma}\left({x}^{4}, 0.042406060400000001, \mathsf{fma}\left(x \cdot x, 0.1049934947, 1\right)\right)\right)\right) \cdot x}{\mathsf{fma}\left(1.789971 \cdot 10^{-4}, 2 \cdot {\left(x \cdot x\right)}^{6}, \mathsf{fma}\left(0.29097386390000002, {x}^{4}, \sqrt{\mathsf{fma}\left(0.77154710189999998 \cdot x, x, 1\right)} \cdot \sqrt{\mathsf{fma}\left(0.77154710189999998 \cdot x, x, 1\right)}\right) + \mathsf{fma}\left({x}^{6}, 0.069455576099999999, {\left(x \cdot x\right)}^{4} \cdot \left(\left(x \cdot x\right) \cdot 8.32794500000000044 \cdot 10^{-4} + 0.014000544199999999\right)\right)\right)}\\
\end{array}double f(double x) {
double r219399 = 1.0;
double r219400 = 0.1049934947;
double r219401 = x;
double r219402 = r219401 * r219401;
double r219403 = r219400 * r219402;
double r219404 = r219399 + r219403;
double r219405 = 0.0424060604;
double r219406 = r219402 * r219402;
double r219407 = r219405 * r219406;
double r219408 = r219404 + r219407;
double r219409 = 0.0072644182;
double r219410 = r219406 * r219402;
double r219411 = r219409 * r219410;
double r219412 = r219408 + r219411;
double r219413 = 0.0005064034;
double r219414 = r219410 * r219402;
double r219415 = r219413 * r219414;
double r219416 = r219412 + r219415;
double r219417 = 0.0001789971;
double r219418 = r219414 * r219402;
double r219419 = r219417 * r219418;
double r219420 = r219416 + r219419;
double r219421 = 0.7715471019;
double r219422 = r219421 * r219402;
double r219423 = r219399 + r219422;
double r219424 = 0.2909738639;
double r219425 = r219424 * r219406;
double r219426 = r219423 + r219425;
double r219427 = 0.0694555761;
double r219428 = r219427 * r219410;
double r219429 = r219426 + r219428;
double r219430 = 0.0140005442;
double r219431 = r219430 * r219414;
double r219432 = r219429 + r219431;
double r219433 = 0.0008327945;
double r219434 = r219433 * r219418;
double r219435 = r219432 + r219434;
double r219436 = 2.0;
double r219437 = r219436 * r219417;
double r219438 = r219418 * r219402;
double r219439 = r219437 * r219438;
double r219440 = r219435 + r219439;
double r219441 = r219420 / r219440;
double r219442 = r219441 * r219401;
return r219442;
}
double f(double x) {
double r219443 = x;
double r219444 = -708.5573543956083;
bool r219445 = r219443 <= r219444;
double r219446 = 703.4866696794237;
bool r219447 = r219443 <= r219446;
double r219448 = !r219447;
bool r219449 = r219445 || r219448;
double r219450 = 0.2514179000665375;
double r219451 = 3.0;
double r219452 = pow(r219443, r219451);
double r219453 = r219450 / r219452;
double r219454 = 0.5;
double r219455 = r219454 / r219443;
double r219456 = 0.15298196345929327;
double r219457 = 5.0;
double r219458 = pow(r219443, r219457);
double r219459 = r219456 / r219458;
double r219460 = r219455 + r219459;
double r219461 = r219453 + r219460;
double r219462 = r219443 * r219443;
double r219463 = 4.0;
double r219464 = pow(r219462, r219463);
double r219465 = 0.0005064034;
double r219466 = 0.0001789971;
double r219467 = sqrt(r219466);
double r219468 = r219443 * r219467;
double r219469 = r219468 * r219468;
double r219470 = r219465 + r219469;
double r219471 = r219464 * r219470;
double r219472 = 0.0072644182;
double r219473 = 6.0;
double r219474 = pow(r219443, r219473);
double r219475 = pow(r219443, r219463);
double r219476 = 0.0424060604;
double r219477 = 0.1049934947;
double r219478 = 1.0;
double r219479 = fma(r219462, r219477, r219478);
double r219480 = fma(r219475, r219476, r219479);
double r219481 = fma(r219472, r219474, r219480);
double r219482 = r219471 + r219481;
double r219483 = r219482 * r219443;
double r219484 = 2.0;
double r219485 = pow(r219462, r219473);
double r219486 = r219484 * r219485;
double r219487 = 0.2909738639;
double r219488 = 0.7715471019;
double r219489 = r219488 * r219443;
double r219490 = fma(r219489, r219443, r219478);
double r219491 = sqrt(r219490);
double r219492 = r219491 * r219491;
double r219493 = fma(r219487, r219475, r219492);
double r219494 = 0.0694555761;
double r219495 = 0.0008327945;
double r219496 = r219462 * r219495;
double r219497 = 0.0140005442;
double r219498 = r219496 + r219497;
double r219499 = r219464 * r219498;
double r219500 = fma(r219474, r219494, r219499);
double r219501 = r219493 + r219500;
double r219502 = fma(r219466, r219486, r219501);
double r219503 = r219483 / r219502;
double r219504 = r219449 ? r219461 : r219503;
return r219504;
}



Bits error versus x
if x < -708.5573543956083 or 703.4866696794237 < x Initial program 59.3
Simplified59.3
Taylor expanded around inf 0.0
Simplified0.0
if -708.5573543956083 < x < 703.4866696794237Initial program 0.0
Simplified0.0
rmApplied add-sqr-sqrt0.0
rmApplied add-sqr-sqrt0.0
Applied unswap-sqr0.0
Final simplification0.0
herbie shell --seed 2020047 +o rules:numerics
(FPCore (x)
:name "Jmat.Real.dawson"
:precision binary64
(* (/ (+ (+ (+ (+ (+ 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))