\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 -12620786748.882755279541015625:\\
\;\;\;\;\left(\frac{0.1529819634592932686700805788859724998474}{x \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)} + \frac{\frac{0.2514179000665375252054900556686334311962}{x}}{x \cdot x}\right) + \frac{0.5}{x}\\
\mathbf{elif}\;x \le 783.8759464134847121385973878204822540283:\\
\;\;\;\;\mathsf{fma}\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right), \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \mathsf{fma}\left(x \cdot x, 1.789971000000000009994005623070734145585 \cdot 10^{-4}, 5.064034000000000243502107366566633572802 \cdot 10^{-4}\right), \mathsf{fma}\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right), \mathsf{fma}\left(x \cdot x, 0.007264418199999999985194687468492702464573, 0.04240606040000000076517494562722276896238\right), \mathsf{fma}\left(x \cdot x, 0.1049934946999999951788851149103720672429, 1\right)\right)\right) \cdot \frac{x}{\mathsf{fma}\left(2 \cdot 1.789971000000000009994005623070734145585 \cdot 10^{-4}, \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(\left(x \cdot x\right) \cdot \left(x \cdot x\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), \mathsf{fma}\left(8.327945000000000442749725770852364803432 \cdot 10^{-4} \cdot x, x, 0.01400054419999999938406531896362139377743\right), \mathsf{fma}\left(\mathsf{fma}\left(0.06945557609999999937322456844412954524159, x \cdot x, 0.2909738639000000182122107617033179849386\right), \left(x \cdot x\right) \cdot \left(x \cdot x\right), \mathsf{fma}\left(x \cdot x, 0.7715471018999999763821051601553335785866, 1\right)\right)\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\left(\frac{0.1529819634592932686700805788859724998474}{x \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)} + \frac{\frac{0.2514179000665375252054900556686334311962}{x}}{x \cdot x}\right) + \frac{0.5}{x}\\
\end{array}double f(double x) {
double r5691778 = 1.0;
double r5691779 = 0.1049934947;
double r5691780 = x;
double r5691781 = r5691780 * r5691780;
double r5691782 = r5691779 * r5691781;
double r5691783 = r5691778 + r5691782;
double r5691784 = 0.0424060604;
double r5691785 = r5691781 * r5691781;
double r5691786 = r5691784 * r5691785;
double r5691787 = r5691783 + r5691786;
double r5691788 = 0.0072644182;
double r5691789 = r5691785 * r5691781;
double r5691790 = r5691788 * r5691789;
double r5691791 = r5691787 + r5691790;
double r5691792 = 0.0005064034;
double r5691793 = r5691789 * r5691781;
double r5691794 = r5691792 * r5691793;
double r5691795 = r5691791 + r5691794;
double r5691796 = 0.0001789971;
double r5691797 = r5691793 * r5691781;
double r5691798 = r5691796 * r5691797;
double r5691799 = r5691795 + r5691798;
double r5691800 = 0.7715471019;
double r5691801 = r5691800 * r5691781;
double r5691802 = r5691778 + r5691801;
double r5691803 = 0.2909738639;
double r5691804 = r5691803 * r5691785;
double r5691805 = r5691802 + r5691804;
double r5691806 = 0.0694555761;
double r5691807 = r5691806 * r5691789;
double r5691808 = r5691805 + r5691807;
double r5691809 = 0.0140005442;
double r5691810 = r5691809 * r5691793;
double r5691811 = r5691808 + r5691810;
double r5691812 = 0.0008327945;
double r5691813 = r5691812 * r5691797;
double r5691814 = r5691811 + r5691813;
double r5691815 = 2.0;
double r5691816 = r5691815 * r5691796;
double r5691817 = r5691797 * r5691781;
double r5691818 = r5691816 * r5691817;
double r5691819 = r5691814 + r5691818;
double r5691820 = r5691799 / r5691819;
double r5691821 = r5691820 * r5691780;
return r5691821;
}
double f(double x) {
double r5691822 = x;
double r5691823 = -12620786748.882755;
bool r5691824 = r5691822 <= r5691823;
double r5691825 = 0.15298196345929327;
double r5691826 = r5691822 * r5691822;
double r5691827 = r5691826 * r5691826;
double r5691828 = r5691822 * r5691827;
double r5691829 = r5691825 / r5691828;
double r5691830 = 0.2514179000665375;
double r5691831 = r5691830 / r5691822;
double r5691832 = r5691831 / r5691826;
double r5691833 = r5691829 + r5691832;
double r5691834 = 0.5;
double r5691835 = r5691834 / r5691822;
double r5691836 = r5691833 + r5691835;
double r5691837 = 783.8759464134847;
bool r5691838 = r5691822 <= r5691837;
double r5691839 = 0.0001789971;
double r5691840 = 0.0005064034;
double r5691841 = fma(r5691826, r5691839, r5691840);
double r5691842 = r5691827 * r5691841;
double r5691843 = 0.0072644182;
double r5691844 = 0.0424060604;
double r5691845 = fma(r5691826, r5691843, r5691844);
double r5691846 = 0.1049934947;
double r5691847 = 1.0;
double r5691848 = fma(r5691826, r5691846, r5691847);
double r5691849 = fma(r5691827, r5691845, r5691848);
double r5691850 = fma(r5691827, r5691842, r5691849);
double r5691851 = 2.0;
double r5691852 = r5691851 * r5691839;
double r5691853 = r5691827 * r5691827;
double r5691854 = r5691827 * r5691853;
double r5691855 = 0.0008327945;
double r5691856 = r5691855 * r5691822;
double r5691857 = 0.0140005442;
double r5691858 = fma(r5691856, r5691822, r5691857);
double r5691859 = 0.0694555761;
double r5691860 = 0.2909738639;
double r5691861 = fma(r5691859, r5691826, r5691860);
double r5691862 = 0.7715471019;
double r5691863 = fma(r5691826, r5691862, r5691847);
double r5691864 = fma(r5691861, r5691827, r5691863);
double r5691865 = fma(r5691853, r5691858, r5691864);
double r5691866 = fma(r5691852, r5691854, r5691865);
double r5691867 = r5691822 / r5691866;
double r5691868 = r5691850 * r5691867;
double r5691869 = r5691838 ? r5691868 : r5691836;
double r5691870 = r5691824 ? r5691836 : r5691869;
return r5691870;
}



Bits error versus x
if x < -12620786748.882755 or 783.8759464134847 < x Initial program 59.5
Simplified59.6
Taylor expanded around inf 0.0
Simplified0.0
if -12620786748.882755 < x < 783.8759464134847Initial program 0.0
Simplified0.0
rmApplied div-inv0.0
Applied associate-*l*0.0
Simplified0.0
rmApplied *-un-lft-identity0.0
Applied *-un-lft-identity0.0
Applied times-frac0.0
Applied associate-*r*0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2019200 +o rules:numerics
(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))