\frac{\left(\left(\left(\left(1 + 0.1049934946999999951788851149103720672429 \cdot \left(x \cdot x\right)\right) + 0.04240606040000000076517494562722276896238 \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) + 0.007264418199999999985194687468492702464573 \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + 5.064034000000000243502107366566633572802 \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.789971000000000009994005623070734145585 \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.7715471018999999763821051601553335785866 \cdot \left(x \cdot x\right)\right) + 0.2909738639000000182122107617033179849386 \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) + 0.06945557609999999937322456844412954524159 \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + 0.01400054419999999938406531896362139377743 \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.327945000000000442749725770852364803432 \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.789971000000000009994005623070734145585 \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 -1305599.8543158508837223052978515625:\\
\;\;\;\;\frac{0.1529819634592932686700805788859724998474}{\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot x} + \left(\frac{0.2514179000665375252054900556686334311962}{x \cdot \left(x \cdot x\right)} + \frac{0.5}{x}\right)\\
\mathbf{elif}\;x \le 687.3073729785394334612647071480751037598:\\
\;\;\;\;\frac{\left(x \cdot x\right) \cdot \left(0.1049934946999999951788851149103720672429 + \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(5.064034000000000243502107366566633572802 \cdot 10^{-4} + \left(x \cdot x\right) \cdot 1.789971000000000009994005623070734145585 \cdot 10^{-4}\right)\right) + \left(\left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot 0.007264418199999999985194687468492702464573 + \left(0.04240606040000000076517494562722276896238 \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) + 1\right)\right)}{\left(\left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(0.06945557609999999937322456844412954524159 + 0.01400054419999999938406531896362139377743 \cdot \left(x \cdot x\right)\right) + \left(0.7715471018999999763821051601553335785866 + \left(x \cdot x\right) \cdot 0.2909738639000000182122107617033179849386\right)\right) \cdot \left(x \cdot x\right) + 1\right) + \left(\left(\left(x \cdot x\right) \cdot 1.789971000000000009994005623070734145585 \cdot 10^{-4}\right) \cdot 2 + 8.327945000000000442749725770852364803432 \cdot 10^{-4}\right) \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right)} \cdot x\\
\mathbf{else}:\\
\;\;\;\;\frac{0.1529819634592932686700805788859724998474}{\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot x} + \left(\frac{0.2514179000665375252054900556686334311962}{x \cdot \left(x \cdot x\right)} + \frac{0.5}{x}\right)\\
\end{array}double f(double x) {
double r6641649 = 1.0;
double r6641650 = 0.1049934947;
double r6641651 = x;
double r6641652 = r6641651 * r6641651;
double r6641653 = r6641650 * r6641652;
double r6641654 = r6641649 + r6641653;
double r6641655 = 0.0424060604;
double r6641656 = r6641652 * r6641652;
double r6641657 = r6641655 * r6641656;
double r6641658 = r6641654 + r6641657;
double r6641659 = 0.0072644182;
double r6641660 = r6641656 * r6641652;
double r6641661 = r6641659 * r6641660;
double r6641662 = r6641658 + r6641661;
double r6641663 = 0.0005064034;
double r6641664 = r6641660 * r6641652;
double r6641665 = r6641663 * r6641664;
double r6641666 = r6641662 + r6641665;
double r6641667 = 0.0001789971;
double r6641668 = r6641664 * r6641652;
double r6641669 = r6641667 * r6641668;
double r6641670 = r6641666 + r6641669;
double r6641671 = 0.7715471019;
double r6641672 = r6641671 * r6641652;
double r6641673 = r6641649 + r6641672;
double r6641674 = 0.2909738639;
double r6641675 = r6641674 * r6641656;
double r6641676 = r6641673 + r6641675;
double r6641677 = 0.0694555761;
double r6641678 = r6641677 * r6641660;
double r6641679 = r6641676 + r6641678;
double r6641680 = 0.0140005442;
double r6641681 = r6641680 * r6641664;
double r6641682 = r6641679 + r6641681;
double r6641683 = 0.0008327945;
double r6641684 = r6641683 * r6641668;
double r6641685 = r6641682 + r6641684;
double r6641686 = 2.0;
double r6641687 = r6641686 * r6641667;
double r6641688 = r6641668 * r6641652;
double r6641689 = r6641687 * r6641688;
double r6641690 = r6641685 + r6641689;
double r6641691 = r6641670 / r6641690;
double r6641692 = r6641691 * r6641651;
return r6641692;
}
double f(double x) {
double r6641693 = x;
double r6641694 = -1305599.854315851;
bool r6641695 = r6641693 <= r6641694;
double r6641696 = 0.15298196345929327;
double r6641697 = r6641693 * r6641693;
double r6641698 = r6641697 * r6641697;
double r6641699 = r6641698 * r6641693;
double r6641700 = r6641696 / r6641699;
double r6641701 = 0.2514179000665375;
double r6641702 = r6641693 * r6641697;
double r6641703 = r6641701 / r6641702;
double r6641704 = 0.5;
double r6641705 = r6641704 / r6641693;
double r6641706 = r6641703 + r6641705;
double r6641707 = r6641700 + r6641706;
double r6641708 = 687.3073729785394;
bool r6641709 = r6641693 <= r6641708;
double r6641710 = 0.1049934947;
double r6641711 = r6641698 * r6641697;
double r6641712 = 0.0005064034;
double r6641713 = 0.0001789971;
double r6641714 = r6641697 * r6641713;
double r6641715 = r6641712 + r6641714;
double r6641716 = r6641711 * r6641715;
double r6641717 = r6641710 + r6641716;
double r6641718 = r6641697 * r6641717;
double r6641719 = 0.0072644182;
double r6641720 = r6641711 * r6641719;
double r6641721 = 0.0424060604;
double r6641722 = r6641721 * r6641698;
double r6641723 = 1.0;
double r6641724 = r6641722 + r6641723;
double r6641725 = r6641720 + r6641724;
double r6641726 = r6641718 + r6641725;
double r6641727 = 0.0694555761;
double r6641728 = 0.0140005442;
double r6641729 = r6641728 * r6641697;
double r6641730 = r6641727 + r6641729;
double r6641731 = r6641698 * r6641730;
double r6641732 = 0.7715471019;
double r6641733 = 0.2909738639;
double r6641734 = r6641697 * r6641733;
double r6641735 = r6641732 + r6641734;
double r6641736 = r6641731 + r6641735;
double r6641737 = r6641736 * r6641697;
double r6641738 = r6641737 + r6641723;
double r6641739 = 2.0;
double r6641740 = r6641714 * r6641739;
double r6641741 = 0.0008327945;
double r6641742 = r6641740 + r6641741;
double r6641743 = r6641698 * r6641711;
double r6641744 = r6641742 * r6641743;
double r6641745 = r6641738 + r6641744;
double r6641746 = r6641726 / r6641745;
double r6641747 = r6641746 * r6641693;
double r6641748 = r6641709 ? r6641747 : r6641707;
double r6641749 = r6641695 ? r6641707 : r6641748;
return r6641749;
}



Bits error versus x
Results
if x < -1305599.854315851 or 687.3073729785394 < x Initial program 59.7
Simplified59.7
Taylor expanded around inf 0.0
Simplified0.0
if -1305599.854315851 < x < 687.3073729785394Initial program 0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2019172
(FPCore (x)
:name "Jmat.Real.dawson"
(* (/ (+ (+ (+ (+ (+ 1.0 (* 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 (* 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 0.0001789971) (* (* (* (* (* (* x x) (* x x)) (* x x)) (* x x)) (* x x)) (* x x))))) x))