\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 -33838267.754617505:\\
\;\;\;\;\frac{0.5 + \frac{0.2514179000665375}{x \cdot x}}{x} + \frac{0.15298196345929327}{{x}^{5}}\\
\mathbf{elif}\;x \le 1241746.964982558:\\
\;\;\;\;x \cdot \frac{\mathsf{fma}\left(\left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(\left(x \cdot x\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right)\right), 0.0001789971, \left(\mathsf{fma}\left(0.0005064034, \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), \left(\mathsf{fma}\left(\left(\left(x \cdot x\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right), 0.0072644182, \left(\mathsf{fma}\left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right), 0.0424060604, \left(\mathsf{fma}\left(\left(x \cdot x\right), 0.1049934947, 1\right)\right)\right)\right)\right)\right)\right)\right)\right)}{\mathsf{fma}\left(\left(0.0001789971 \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot 2\right)\right), \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), \left(\mathsf{fma}\left(\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), \left(0.0008327945 \cdot \left(x \cdot x\right)\right), \left(\mathsf{fma}\left(0.0140005442, \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), \left(\mathsf{fma}\left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right), \left(0.2909738639 + \left(x \cdot x\right) \cdot 0.0694555761\right), \left(\mathsf{fma}\left(\left(x \cdot x\right), 0.7715471019, 1\right)\right)\right)\right)\right)\right)\right)\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{0.5 + \frac{0.2514179000665375}{x \cdot x}}{x} + \frac{0.15298196345929327}{{x}^{5}}\\
\end{array}double f(double x) {
double r69767632 = 1.0;
double r69767633 = 0.1049934947;
double r69767634 = x;
double r69767635 = r69767634 * r69767634;
double r69767636 = r69767633 * r69767635;
double r69767637 = r69767632 + r69767636;
double r69767638 = 0.0424060604;
double r69767639 = r69767635 * r69767635;
double r69767640 = r69767638 * r69767639;
double r69767641 = r69767637 + r69767640;
double r69767642 = 0.0072644182;
double r69767643 = r69767639 * r69767635;
double r69767644 = r69767642 * r69767643;
double r69767645 = r69767641 + r69767644;
double r69767646 = 0.0005064034;
double r69767647 = r69767643 * r69767635;
double r69767648 = r69767646 * r69767647;
double r69767649 = r69767645 + r69767648;
double r69767650 = 0.0001789971;
double r69767651 = r69767647 * r69767635;
double r69767652 = r69767650 * r69767651;
double r69767653 = r69767649 + r69767652;
double r69767654 = 0.7715471019;
double r69767655 = r69767654 * r69767635;
double r69767656 = r69767632 + r69767655;
double r69767657 = 0.2909738639;
double r69767658 = r69767657 * r69767639;
double r69767659 = r69767656 + r69767658;
double r69767660 = 0.0694555761;
double r69767661 = r69767660 * r69767643;
double r69767662 = r69767659 + r69767661;
double r69767663 = 0.0140005442;
double r69767664 = r69767663 * r69767647;
double r69767665 = r69767662 + r69767664;
double r69767666 = 0.0008327945;
double r69767667 = r69767666 * r69767651;
double r69767668 = r69767665 + r69767667;
double r69767669 = 2.0;
double r69767670 = r69767669 * r69767650;
double r69767671 = r69767651 * r69767635;
double r69767672 = r69767670 * r69767671;
double r69767673 = r69767668 + r69767672;
double r69767674 = r69767653 / r69767673;
double r69767675 = r69767674 * r69767634;
return r69767675;
}
double f(double x) {
double r69767676 = x;
double r69767677 = -33838267.754617505;
bool r69767678 = r69767676 <= r69767677;
double r69767679 = 0.5;
double r69767680 = 0.2514179000665375;
double r69767681 = r69767676 * r69767676;
double r69767682 = r69767680 / r69767681;
double r69767683 = r69767679 + r69767682;
double r69767684 = r69767683 / r69767676;
double r69767685 = 0.15298196345929327;
double r69767686 = 5.0;
double r69767687 = pow(r69767676, r69767686);
double r69767688 = r69767685 / r69767687;
double r69767689 = r69767684 + r69767688;
double r69767690 = 1241746.964982558;
bool r69767691 = r69767676 <= r69767690;
double r69767692 = r69767681 * r69767681;
double r69767693 = r69767681 * r69767692;
double r69767694 = r69767692 * r69767693;
double r69767695 = 0.0001789971;
double r69767696 = 0.0005064034;
double r69767697 = r69767692 * r69767692;
double r69767698 = 0.0072644182;
double r69767699 = 0.0424060604;
double r69767700 = 0.1049934947;
double r69767701 = 1.0;
double r69767702 = fma(r69767681, r69767700, r69767701);
double r69767703 = fma(r69767692, r69767699, r69767702);
double r69767704 = fma(r69767693, r69767698, r69767703);
double r69767705 = fma(r69767696, r69767697, r69767704);
double r69767706 = fma(r69767694, r69767695, r69767705);
double r69767707 = 2.0;
double r69767708 = r69767692 * r69767707;
double r69767709 = r69767695 * r69767708;
double r69767710 = 0.0008327945;
double r69767711 = r69767710 * r69767681;
double r69767712 = 0.0140005442;
double r69767713 = 0.2909738639;
double r69767714 = 0.0694555761;
double r69767715 = r69767681 * r69767714;
double r69767716 = r69767713 + r69767715;
double r69767717 = 0.7715471019;
double r69767718 = fma(r69767681, r69767717, r69767701);
double r69767719 = fma(r69767692, r69767716, r69767718);
double r69767720 = fma(r69767712, r69767697, r69767719);
double r69767721 = fma(r69767697, r69767711, r69767720);
double r69767722 = fma(r69767709, r69767697, r69767721);
double r69767723 = r69767706 / r69767722;
double r69767724 = r69767676 * r69767723;
double r69767725 = r69767691 ? r69767724 : r69767689;
double r69767726 = r69767678 ? r69767689 : r69767725;
return r69767726;
}



Bits error versus x
if x < -33838267.754617505 or 1241746.964982558 < x Initial program 59.3
Simplified59.3
rmApplied *-un-lft-identity59.3
Applied associate-*r*59.3
Simplified59.3
Taylor expanded around inf 0.0
Simplified0.0
if -33838267.754617505 < x < 1241746.964982558Initial program 0.0
Simplified0.0
rmApplied *-un-lft-identity0.0
Applied associate-*r*0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2019125 +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))