double f(double x) {
double r21800818 = 1.0;
double r21800819 = 0.1049934947;
double r21800820 = x;
double r21800821 = r21800820 * r21800820;
double r21800822 = r21800819 * r21800821;
double r21800823 = r21800818 + r21800822;
double r21800824 = 0.0424060604;
double r21800825 = r21800821 * r21800821;
double r21800826 = r21800824 * r21800825;
double r21800827 = r21800823 + r21800826;
double r21800828 = 0.0072644182;
double r21800829 = r21800825 * r21800821;
double r21800830 = r21800828 * r21800829;
double r21800831 = r21800827 + r21800830;
double r21800832 = 0.0005064034;
double r21800833 = r21800829 * r21800821;
double r21800834 = r21800832 * r21800833;
double r21800835 = r21800831 + r21800834;
double r21800836 = 0.0001789971;
double r21800837 = r21800833 * r21800821;
double r21800838 = r21800836 * r21800837;
double r21800839 = r21800835 + r21800838;
double r21800840 = 0.7715471019;
double r21800841 = r21800840 * r21800821;
double r21800842 = r21800818 + r21800841;
double r21800843 = 0.2909738639;
double r21800844 = r21800843 * r21800825;
double r21800845 = r21800842 + r21800844;
double r21800846 = 0.0694555761;
double r21800847 = r21800846 * r21800829;
double r21800848 = r21800845 + r21800847;
double r21800849 = 0.0140005442;
double r21800850 = r21800849 * r21800833;
double r21800851 = r21800848 + r21800850;
double r21800852 = 0.0008327945;
double r21800853 = r21800852 * r21800837;
double r21800854 = r21800851 + r21800853;
double r21800855 = 2.0;
double r21800856 = r21800855 * r21800836;
double r21800857 = r21800837 * r21800821;
double r21800858 = r21800856 * r21800857;
double r21800859 = r21800854 + r21800858;
double r21800860 = r21800839 / r21800859;
double r21800861 = r21800860 * r21800820;
return r21800861;
}
double f(double x) {
double r21800862 = x;
double r21800863 = -7580.493665732174;
bool r21800864 = r21800862 <= r21800863;
double r21800865 = 0.5;
double r21800866 = 0.2514179000665375;
double r21800867 = r21800862 * r21800862;
double r21800868 = r21800866 / r21800867;
double r21800869 = r21800865 + r21800868;
double r21800870 = r21800869 / r21800862;
double r21800871 = 0.15298196345929327;
double r21800872 = 5.0;
double r21800873 = pow(r21800862, r21800872);
double r21800874 = r21800871 / r21800873;
double r21800875 = r21800870 + r21800874;
double r21800876 = 7855168.569128081;
bool r21800877 = r21800862 <= r21800876;
double r21800878 = 0.0001789971;
double r21800879 = r21800867 * r21800867;
double r21800880 = r21800879 * r21800867;
double r21800881 = r21800880 * r21800879;
double r21800882 = 0.0005064034;
double r21800883 = r21800879 * r21800879;
double r21800884 = 0.0072644182;
double r21800885 = 0.0424060604;
double r21800886 = 0.1049934947;
double r21800887 = 1.0;
double r21800888 = fma(r21800886, r21800867, r21800887);
double r21800889 = cbrt(r21800888);
double r21800890 = sqrt(r21800889);
double r21800891 = r21800890 * r21800890;
double r21800892 = r21800891 * r21800889;
double r21800893 = r21800892 * r21800889;
double r21800894 = fma(r21800879, r21800885, r21800893);
double r21800895 = fma(r21800884, r21800880, r21800894);
double r21800896 = fma(r21800882, r21800883, r21800895);
double r21800897 = fma(r21800878, r21800881, r21800896);
double r21800898 = 2.0;
double r21800899 = r21800898 * r21800878;
double r21800900 = r21800880 * r21800880;
double r21800901 = 0.0008327945;
double r21800902 = r21800901 * r21800883;
double r21800903 = 0.0140005442;
double r21800904 = 0.2909738639;
double r21800905 = 0.0694555761;
double r21800906 = r21800905 * r21800880;
double r21800907 = fma(r21800904, r21800879, r21800906);
double r21800908 = 0.7715471019;
double r21800909 = fma(r21800867, r21800908, r21800887);
double r21800910 = r21800907 + r21800909;
double r21800911 = fma(r21800883, r21800903, r21800910);
double r21800912 = fma(r21800902, r21800867, r21800911);
double r21800913 = fma(r21800899, r21800900, r21800912);
double r21800914 = r21800897 / r21800913;
double r21800915 = r21800862 * r21800914;
double r21800916 = r21800877 ? r21800915 : r21800875;
double r21800917 = r21800864 ? r21800875 : r21800916;
return r21800917;
}
\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 -7580.493665732174:\\
\;\;\;\;\frac{0.5 + \frac{0.2514179000665375}{x \cdot x}}{x} + \frac{0.15298196345929327}{{x}^{5}}\\
\mathbf{elif}\;x \le 7855168.569128081:\\
\;\;\;\;x \cdot \frac{(0.0001789971 \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(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) + \left((0.0005064034 \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) + \left((0.0072644182 \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) + \left((\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot 0.0424060604 + \left(\left(\left(\sqrt{\sqrt[3]{(0.1049934947 \cdot \left(x \cdot x\right) + 1)_*}} \cdot \sqrt{\sqrt[3]{(0.1049934947 \cdot \left(x \cdot x\right) + 1)_*}}\right) \cdot \sqrt[3]{(0.1049934947 \cdot \left(x \cdot x\right) + 1)_*}\right) \cdot \sqrt[3]{(0.1049934947 \cdot \left(x \cdot x\right) + 1)_*}\right))_*\right))_*\right))_*\right))_*}{(\left(2 \cdot 0.0001789971\right) \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(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + \left((\left(0.0008327945 \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)\right) \cdot \left(x \cdot x\right) + \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) \cdot 0.0140005442 + \left((0.2909738639 \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) + \left(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))_* + (\left(x \cdot x\right) \cdot 0.7715471019 + 1)_*\right))_*\right))_*\right))_*}\\
\mathbf{else}:\\
\;\;\;\;\frac{0.5 + \frac{0.2514179000665375}{x \cdot x}}{x} + \frac{0.15298196345929327}{{x}^{5}}\\
\end{array}


Bits error versus x
if x < -7580.493665732174 or 7855168.569128081 < x Initial program 58.5
Simplified58.5
Taylor expanded around -inf 0.0
Simplified0.0
if -7580.493665732174 < x < 7855168.569128081Initial program 0.0
Simplified0.0
rmApplied add-cube-cbrt0.0
rmApplied add-sqr-sqrt0.0
Final simplification0.0
herbie shell --seed 2019101 +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))